Skip to content
Snippets Groups Projects
Commit ed0fd7eb authored by Wuttke, Joachim's avatar Wuttke, Joachim
Browse files

sort String vs Path, and other cleanup

parent 2cce05ac
No related branches found
No related tags found
1 merge request!427Reduce include dependences in GUI; break cyclic dependence between View and Model
...@@ -19,8 +19,8 @@ file(GLOB_RECURSE forms_files *.ui) ...@@ -19,8 +19,8 @@ file(GLOB_RECURSE forms_files *.ui)
set(resource_files set(resource_files
gui.qrc gui.qrc
Views/SampleDesigner/SampleDesigner.qrc View/SampleDesigner/SampleDesigner.qrc
Views/MaskWidgets/MaskWidgets.qrc View/MaskWidgets/MaskWidgets.qrc
) )
# --- Qt configuration --------- # --- Qt configuration ---------
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
// ************************************************************************************************ // ************************************************************************************************
#include "GUI/Util/Path.h" #include "GUI/Util/Path.h"
#include "GUI/Util/hostosinfo.h"
#include "BAVersion.h" #include "BAVersion.h"
#include <QDateTime> #include <QDateTime>
#include <QDir> #include <QDir>
...@@ -22,6 +23,7 @@ ...@@ -22,6 +23,7 @@
#include <QVector> #include <QVector>
namespace { namespace {
QMap<QString, QString> initializeCharacterMap() QMap<QString, QString> initializeCharacterMap()
{ {
QMap<QString, QString> result; QMap<QString, QString> result;
...@@ -36,11 +38,25 @@ QMap<QString, QString> initializeCharacterMap() ...@@ -36,11 +38,25 @@ QMap<QString, QString> initializeCharacterMap()
} }
const QMap<QString, QString> invalidCharacterMap = initializeCharacterMap(); const QMap<QString, QString> invalidCharacterMap = initializeCharacterMap();
} // Anonymous namespace
namespace GUI::Util::Path { } // namespace
QString GUI::Util::Path::withTildeHomePath(const QString& path)
{
if (GUI::Util::OS::HostOsInfo::isWindowsHost())
return path;
static const QString homePath = QDir::homePath();
QFileInfo fi(QDir::cleanPath(path));
QString outPath = fi.absoluteFilePath();
if (outPath.startsWith(homePath))
return QLatin1Char('~') + outPath.mid(homePath.size());
return path;
}
QString getBornAgainVersionString() QString GUI::Util::Path::getBornAgainVersionString()
{ {
return QString::fromStdString(BornAgain::GetVersionNumber()); return QString::fromStdString(BornAgain::GetVersionNumber());
} }
...@@ -54,7 +70,7 @@ QString getBornAgainVersionString() ...@@ -54,7 +70,7 @@ QString getBornAgainVersionString()
//! > greaterthan //! > greaterthan
//! | pipe //! | pipe
//! ? questionmark //! ? questionmark
QString getValidFileName(const QString& proposed_name) QString GUI::Util::Path::getValidFileName(const QString& proposed_name)
{ {
QString result = proposed_name; QString result = proposed_name;
for (auto it = invalidCharacterMap.begin(); it != invalidCharacterMap.end(); ++it) for (auto it = invalidCharacterMap.begin(); it != invalidCharacterMap.end(); ++it)
...@@ -63,7 +79,8 @@ QString getValidFileName(const QString& proposed_name) ...@@ -63,7 +79,8 @@ QString getValidFileName(const QString& proposed_name)
} }
//! parses version string into 3 numbers, returns true in the case of success //! parses version string into 3 numbers, returns true in the case of success
bool parseVersion(const QString& version, int& major_num, int& minor_num, int& patch_num) bool GUI::Util::Path::parseVersion(
const QString& version, int& major_num, int& minor_num, int& patch_num)
{ {
major_num = minor_num = patch_num = 0; major_num = minor_num = patch_num = 0;
bool success(true); bool success(true);
...@@ -82,7 +99,7 @@ bool parseVersion(const QString& version, int& major_num, int& minor_num, int& p ...@@ -82,7 +99,7 @@ bool parseVersion(const QString& version, int& major_num, int& minor_num, int& p
return success; return success;
} }
int versionCode(const QString& version) int GUI::Util::Path::versionCode(const QString& version)
{ {
int result(-1); int result(-1);
...@@ -96,13 +113,13 @@ int versionCode(const QString& version) ...@@ -96,13 +113,13 @@ int versionCode(const QString& version)
} }
//! returns true if current BornAgain version match minimal required version //! returns true if current BornAgain version match minimal required version
bool isVersionMatchMinimal(const QString& version, const QString& minimal_version) bool GUI::Util::Path::isVersionMatchMinimal(const QString& version, const QString& minimal_version)
{ {
return versionCode(version) >= versionCode(minimal_version); return versionCode(version) >= versionCode(minimal_version);
} }
//! Returns file directory from the full file path //! Returns file directory from the full file path
QString fileDir(const QString& fileName) QString GUI::Util::Path::fileDir(const QString& fileName)
{ {
QFileInfo info(fileName); QFileInfo info(fileName);
if (info.exists()) if (info.exists())
...@@ -112,23 +129,13 @@ QString fileDir(const QString& fileName) ...@@ -112,23 +129,13 @@ QString fileDir(const QString& fileName)
//! Returns base name of file. //! Returns base name of file.
QString baseName(const QString& fileName) QString GUI::Util::Path::baseName(const QString& fileName)
{ {
QFileInfo info(fileName); QFileInfo info(fileName);
return info.baseName(); return info.baseName();
} }
QStringList fromStdStrings(const std::vector<std::string>& container) QString GUI::Util::Path::createUuid()
{
QStringList result;
for (std::string str : container)
result.append(QString::fromStdString(str));
return result;
}
QString createUuid()
{ {
return QUuid::createUuid().toString(); return QUuid::createUuid().toString();
} }
} // namespace GUI::Util::Path
...@@ -21,6 +21,8 @@ ...@@ -21,6 +21,8 @@
namespace GUI::Util::Path { namespace GUI::Util::Path {
QString withTildeHomePath(const QString& path);
QString getBornAgainVersionString(); QString getBornAgainVersionString();
QString getValidFileName(const QString& proposed_name); QString getValidFileName(const QString& proposed_name);
......
...@@ -16,22 +16,6 @@ ...@@ -16,22 +16,6 @@
#include "GUI/Util/hostosinfo.h" #include "GUI/Util/hostosinfo.h"
#include <QDir> #include <QDir>
QString GUI::Util::String::withTildeHomePath(const QString& path)
{
if (GUI::Util::OS::HostOsInfo::isWindowsHost())
return path;
static const QString homePath = QDir::homePath();
QFileInfo fi(QDir::cleanPath(path));
QString outPath = fi.absoluteFilePath();
if (outPath.startsWith(homePath))
outPath = QLatin1Char('~') + outPath.mid(homePath.size());
else
outPath = path;
return outPath;
}
QStringList GUI::Util::String::fromStdStrings(const std::vector<std::string>& container) QStringList GUI::Util::String::fromStdStrings(const std::vector<std::string>& container)
{ {
QStringList result; QStringList result;
......
...@@ -19,8 +19,6 @@ ...@@ -19,8 +19,6 @@
namespace GUI::Util::String { namespace GUI::Util::String {
QString withTildeHomePath(const QString& path);
QStringList fromStdStrings(const std::vector<std::string>& container); QStringList fromStdStrings(const std::vector<std::string>& container);
QString readTextFile(const QString& fileName); QString readTextFile(const QString& fileName);
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
#include "GUI/View/Toplevel/SampleView.h" #include "GUI/View/Toplevel/SampleView.h"
#include "GUI/Util/hostosinfo.h" #include "GUI/Util/hostosinfo.h"
#include "GUI/Util/mainwindow_constants.h" #include "GUI/Util/mainwindow_constants.h"
#include "GUI/Util/String.h" #include "GUI/Util/Path.h"
#include <QDesktopServices> #include <QDesktopServices>
#include <QDir> #include <QDir>
#include <QMenuBar> #include <QMenuBar>
...@@ -206,7 +206,7 @@ void ActionManager::onAboutToShowFileMenu() ...@@ -206,7 +206,7 @@ void ActionManager::onAboutToShowFileMenu()
int orderNr = 1; int orderNr = 1;
for (QString file : m_mainWindow->projectManager()->recentProjects()) { for (QString file : m_mainWindow->projectManager()->recentProjects()) {
hasRecentProjects = true; hasRecentProjects = true;
QString actionText = GUI::Util::String::withTildeHomePath(QDir::toNativeSeparators(file)); QString actionText = GUI::Util::Path::withTildeHomePath(QDir::toNativeSeparators(file));
if (orderNr < 10) if (orderNr < 10)
actionText = QString("&%1 ").arg(orderNr) + actionText; actionText = QString("&%1 ").arg(orderNr) + actionText;
QAction* action = m_recentProjectsMenu->addAction(actionText); QAction* action = m_recentProjectsMenu->addAction(actionText);
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
#include "GUI/Model/Project/ProjectDocument.h" #include "GUI/Model/Project/ProjectDocument.h"
#include "GUI/Model/Sample/SampleModel.h" #include "GUI/Model/Sample/SampleModel.h"
#include "GUI/View/SampleDesigner/GroupBoxCollapser.h" #include "GUI/View/SampleDesigner/GroupBoxCollapser.h"
#include "GUI/Util/String.h" #include "GUI/Util/Path.h"
#include "ui_ProjectSettingsView.h" #include "ui_ProjectSettingsView.h"
#include <QDir> #include <QDir>
#include <QMessageBox> #include <QMessageBox>
...@@ -102,7 +102,7 @@ void ProjectSettingsView::updateInformation() ...@@ -102,7 +102,7 @@ void ProjectSettingsView::updateInformation()
QString name = m_document->projectName(); QString name = m_document->projectName();
if (m_document->hasValidNameAndPath()) if (m_document->hasValidNameAndPath())
location = location =
GUI::Util::String::withTildeHomePath( GUI::Util::Path::withTildeHomePath(
QDir::toNativeSeparators(m_document->projectFileName())); QDir::toNativeSeparators(m_document->projectFileName()));
m_ui->currentProjectName->setText(name); m_ui->currentProjectName->setText(name);
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
#include "GUI/View/Main/ProjectManager.h" #include "GUI/View/Main/ProjectManager.h"
#include "GUI/View/SampleDesigner/GroupBoxCollapser.h" #include "GUI/View/SampleDesigner/GroupBoxCollapser.h"
#include "GUI/Util/LayoutUtils.h" #include "GUI/Util/LayoutUtils.h"
#include "GUI/Util/String.h" #include "GUI/Util/Path.h"
#include "ui_WelcomeView.h" #include "ui_WelcomeView.h"
#include <QCommandLinkButton> #include <QCommandLinkButton>
...@@ -60,7 +60,7 @@ void WelcomeView::updateRecentProjectPanel() ...@@ -60,7 +60,7 @@ void WelcomeView::updateRecentProjectPanel()
auto button = new QCommandLinkButton; auto button = new QCommandLinkButton;
button->setText(QFileInfo(file).baseName()); button->setText(QFileInfo(file).baseName());
button->setDescription( button->setDescription(
GUI::Util::String::withTildeHomePath(QDir::toNativeSeparators(file))); GUI::Util::Path::withTildeHomePath(QDir::toNativeSeparators(file)));
button->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Minimum); button->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Minimum);
connect(button, &QCommandLinkButton::clicked, [=] { projectManager()->openProject(file); }); connect(button, &QCommandLinkButton::clicked, [=] { projectManager()->openProject(file); });
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 4.0.2
*
* This file is not intended to be easily readable and contains a number of
* coding conventions designed to improve portability and efficiency. Do not make
* changes to this file unless you know what you are doing--modify the SWIG
* interface file instead.
* ----------------------------------------------------------------------------- */
#ifndef SWIG_libBornAgainFit_WRAP_H_
#define SWIG_libBornAgainFit_WRAP_H_
#include <map>
#include <string>
class SwigDirector_PyCallback : public PyCallback, public Swig::Director {
public:
SwigDirector_PyCallback(PyObject *self, PyCallback::CallbackType callback_type = PyCallback::SCALAR);
virtual ~SwigDirector_PyCallback();
virtual double call_scalar(mumufit::Parameters pars) const;
virtual std::vector< double, std::allocator< double > > call_residuals(mumufit::Parameters pars) const;
/* Internal director utilities */
public:
bool swig_get_inner(const char *swig_protected_method_name) const {
std::map<std::string, bool>::const_iterator iv = swig_inner.find(swig_protected_method_name);
return (iv != swig_inner.end() ? iv->second : false);
}
void swig_set_inner(const char *swig_protected_method_name, bool swig_val) const {
swig_inner[swig_protected_method_name] = swig_val;
}
private:
mutable std::map<std::string, bool> swig_inner;
#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
/* VTable implementation */
PyObject *swig_get_method(size_t method_index, const char *method_name) const {
PyObject *method = vtable[method_index];
if (!method) {
swig::SwigVar_PyObject name = SWIG_Python_str_FromChar(method_name);
method = PyObject_GetAttr(swig_get_self(), name);
if (!method) {
std::string msg = "Method in class PyCallback doesn't exist, undefined ";
msg += method_name;
Swig::DirectorMethodException::raise(msg.c_str());
}
vtable[method_index] = method;
}
return method;
}
private:
mutable swig::SwigVar_PyObject vtable[2];
#endif
};
#endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment