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

[j.838b] some classes no longer inherit from DataAccessWidget (#838) ()

Merging branch 'j.838b'  into 'main'.

See merge request !2151
parents 62244ef3 fa25560e
No related branches found
No related tags found
1 merge request!2151some classes no longer inherit from DataAccessWidget (#838)
Pipeline #120613 passed
Showing
with 78 additions and 132 deletions
......@@ -130,7 +130,7 @@ void ApplicationOptions::processOptions()
}
else if (m_variables_map.count("version")) {
std::cout << "BornAgain-" << GUI::Base::Path::getBornAgainVersionString().toStdString()
std::cout << "BornAgain-" << GUI::Path::getBornAgainVersionString().toStdString()
<< std::endl;
exit(0);
}
......
......@@ -62,7 +62,7 @@ int main(int argc, char* argv[])
int ret = -1;
QApplication app(argc, argv);
app.setApplicationName("BornAgain");
app.setApplicationVersion(GUI::Base::Path::getBornAgainVersionString());
app.setApplicationVersion(GUI::Path::getBornAgainVersionString());
app.setOrganizationName("BornAgain");
#ifndef Q_OS_MAC
app.setWindowIcon(QIcon(":/images/BornAgain.ico"));
......@@ -73,7 +73,7 @@ int main(int argc, char* argv[])
auto style = applicationSettings.styleToUse();
applicationSettings.loadStyle(style);
QString dir = GUI::Base::Path::appDataFolder();
QString dir = GUI::Path::appDataFolder();
if (!QDir().exists(dir))
QDir().mkpath(dir);
......
......@@ -21,7 +21,7 @@
#include "GUI/Model/Data/Data2DItem.h"
#include "GUI/Model/Device/InstrumentItems.h"
#include "GUI/Model/Mask/ProjectionItems.h"
#include "GUI/Support/Util/ItemFileNameUtil.h"
#include "GUI/Support/Util/Path.h"
#include "GUI/Support/XML/Backup.h"
#include "GUI/Support/XML/DeserializationException.h"
......@@ -149,7 +149,7 @@ const Datafield* DatafileItem::nativeDatafield() const
//! Sets Datafield to underlying item.
void DatafileItem::setDatafield(const Datafield& data)
void DatafileItem::setTheDatafield(const Datafield& data)
{
initDataItem(data.rank(), m_dataItem);
dataItem()->setDatafield(data);
......@@ -230,10 +230,10 @@ void DatafileItem::rotateData()
void DatafileItem::updateFileName()
{
if (DataItem* item = dataItem())
item->setFileName(GUI::FilenameUtil::realDataFileName(realItemName()));
item->setFileName(GUI::Path::intensityDataFileName(realItemName(), "realdata"));
if (DataItem* item = nativeDataItem())
item->setFileName(GUI::FilenameUtil::nativeDataFileName(realItemName()));
item->setFileName(GUI::Path::intensityDataFileName(realItemName(), "nativedata"));
}
void DatafileItem::writeTo(QXmlStreamWriter* w) const
......
......@@ -63,7 +63,7 @@ public:
const Datafield* nativeDatafield() const;
void setDatafield(const Datafield& data);
void setTheDatafield(const Datafield& data);
// instrument
......
......@@ -27,7 +27,7 @@ const QString XML_INSTRUMENT_COLLECTION_TAG = "InstrumentCollection";
QString instrumentLibraryFilePath()
{
return GUI::Base::Path::appDataFolder() + "/BornAgainInstrumentLibrary.balib";
return GUI::Path::appDataFolder() + "/BornAgainInstrumentLibrary.balib";
}
} // namespace
......
......@@ -29,7 +29,7 @@
#include "GUI/Model/Job/ParameterTreeBuilder.h"
#include "GUI/Model/Job/ParameterTreeItems.h"
#include "GUI/Model/Sample/SampleItem.h"
#include "GUI/Support/Util/ItemFileNameUtil.h"
#include "GUI/Support/Util/Path.h"
#include "GUI/Support/XML/Backup.h"
#include <stdexcept> // domain_error
......@@ -249,11 +249,6 @@ void JobItem::setResults(const Datafield& result)
updateFileName();
}
FitSuiteItem* JobItem::fitSuiteItem()
{
return m_fitSuiteItem.get();
}
FitSuiteItem* JobItem::createFitSuiteItem()
{
if (m_fitSuiteItem)
......@@ -286,15 +281,12 @@ FitParameterContainerItem* JobItem::fitParameterContainerItem()
DataItem* JobItem::createNewDataItem()
{
DataItem* dataItem;
if (rank() == 1)
dataItem = new Data1DItem();
return new Data1DItem();
else if (rank() == 2)
dataItem = new Data2DItem();
return new Data2DItem();
else
ASSERT_NEVER;
return dataItem;
}
void JobItem::createSimulatedDataItem()
......@@ -674,13 +666,13 @@ void JobItem::readDatafiles(const QString& projectDir, MessageService* messageSe
void JobItem::updateFileName()
{
if (DataItem* item = simulatedDataItem())
item->setFileName(GUI::FilenameUtil::jobResultsFileName(jobName()));
item->setFileName(GUI::Path::intensityDataFileName(jobName(), "jobdata"));
if (DatafileItem* real = realItem()) {
if (DataItem* item = real->dataItem())
item->setFileName(GUI::FilenameUtil::jobReferenceFileName(jobName()));
item->setFileName(GUI::Path::intensityDataFileName(jobName(), "refdata"));
if (DataItem* item = real->nativeDataItem())
item->setFileName(GUI::FilenameUtil::jobNativeDataFileName(identifier()));
item->setFileName(GUI::Path::intensityDataFileName(identifier(), "nativedata"));
}
}
......@@ -40,7 +40,7 @@ public:
JobItem();
~JobItem();
// job properties
//... job properties
QString identifier() const { return m_identifier; }
void setIdentifier(const QString& identifier) { m_identifier = identifier; }
......@@ -90,32 +90,33 @@ public:
void createParameterTree(bool recreateBackupValues);
// sample
//... sample
SampleItem* sampleItem();
void copySampleIntoJob(const SampleItem* sample);
// instrument
//... instrument
InstrumentItem* instrumentItem() const;
void copyInstrumentIntoJob(const InstrumentItem* instrument);
// simulation
//... simulation
const SimulationOptionsItem& simulationOptionsItem() const;
void copySimulationOptionsIntoJob(const SimulationOptionsItem& options);
void setResults(const Datafield& result);
// fitting
//... fitting
FitSuiteItem* fitSuiteItem();
FitSuiteItem* fitSuiteItem() { return m_fitSuiteItem.get(); }
const FitSuiteItem* fitSuiteItem() const { return m_fitSuiteItem.get(); }
FitSuiteItem* createFitSuiteItem();
void createFitContainers();
ParameterContainerItem* parameterContainerItem();
FitParameterContainerItem* fitParameterContainerItem();
// data
//... data
void createSimulatedDataItem();
Data2DItem* data2DItem();
......@@ -131,7 +132,7 @@ public:
void updateFileName();
// write/read
//... write/read
void writeTo(QXmlStreamWriter* w) const;
void readFrom(QXmlStreamReader* r);
......@@ -152,7 +153,6 @@ private:
void cropRealData();
void importMasksFromDatafileItem();
private:
std::unique_ptr<SimulationOptionsItem> m_simulationOptionsItem;
std::unique_ptr<ParameterContainerItem> m_parameterContainer;
std::unique_ptr<SampleItem> m_sampleItem;
......
......@@ -15,7 +15,9 @@
#include "GUI/Model/Model/JobModel.h"
#include "GUI/Model/Device/DatafileItem.h"
#include "GUI/Model/Device/InstrumentItems.h"
#include "GUI/Model/Job/JobItem.h"
#include "GUI/Model/Job/ParameterTreeItems.h"
#include "GUI/Model/Model/JobQueueData.h"
#include "GUI/Model/Sample/SampleItem.h"
namespace {
......@@ -36,6 +38,8 @@ JobModel::JobModel(QObject* parent)
setObjectName("JobModel");
}
JobModel::~JobModel() = default;
JobItem* JobModel::jobItemForIdentifier(const QString& identifier)
{
for (auto* jobItem : jobItems())
......
......@@ -16,20 +16,25 @@
#define BORNAGAIN_GUI_MODEL_MODEL_JOBMODEL_H
#include "Base/Types/OwningVector.h"
#include "GUI/Model/Job/JobItem.h"
#include "GUI/Model/Model/DatafilesCleaner.h"
#include "GUI/Model/Model/JobQueueData.h"
#include <QObject>
class InstrumentItem;
class JobItem;
class JobQueueData;
class SampleItem;
class DatafileItem;
class DataItem;
class MessageService;
class SimulationOptionsItem;
class QXmlStreamReader;
class QXmlStreamWriter;
class JobModel : public QObject {
Q_OBJECT
public:
explicit JobModel(QObject* parent = nullptr);
~JobModel() override;
JobItem* jobItemForIdentifier(const QString& identifier);
......
......@@ -14,6 +14,7 @@
#include "GUI/Model/Model/JobQueueData.h"
#include "Base/Util/Assert.h"
#include "GUI/Model/Job/JobItem.h"
#include "GUI/Model/Model/JobModel.h"
#include "GUI/Model/ToCore/SimulationToCore.h"
#include "GUI/Support/Data/JobWorker.h"
......
......@@ -226,7 +226,7 @@ QString ProjectDocument::documentVersion() const
{
QString result(m_currentVersion);
if (result.isEmpty())
result = GUI::Base::Path::getBornAgainVersionString();
result = GUI::Path::getBornAgainVersionString();
return result;
}
......@@ -243,7 +243,7 @@ void ProjectDocument::writeProject(QIODevice* device)
w.setAutoFormatting(true);
w.writeStartDocument();
w.writeStartElement(Tag::BornAgain);
QString version_string = GUI::Base::Path::getBornAgainVersionString();
QString version_string = GUI::Path::getBornAgainVersionString();
w.writeAttribute(XML::Attrib::BA_Version, version_string);
XML::writeAttribute(&w, XML::Attrib::version, uint(2));
......@@ -300,8 +300,8 @@ ProjectDocument::ReadResult ProjectDocument::readProject(QIODevice* device,
Q_UNUSED(version)
m_currentVersion = r.attributes().value(XML::Attrib::BA_Version).toString();
if (!GUI::Base::Path::isVersionMatchMinimal(m_currentVersion,
minimal_supported_version)) {
if (!GUI::Path::isVersionMatchMinimal(m_currentVersion,
minimal_supported_version)) {
QString message = QString("Cannot open document version '%1', "
"minimal supported version '%2'")
.arg(m_currentVersion)
......
// ************************************************************************************************
//
// BornAgain: simulate and fit reflection and scattering
//
//! @file GUI/Support/Util/ItemFileNameUtil.cpp
//! @brief Defines auxiliary functions in ItemFileNameUtils namespace.
//!
//! @homepage http://www.bornagainproject.org
//! @license GNU General Public License v3 or higher (see COPYING)
//! @copyright Forschungszentrum Jülich GmbH 2018
//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS)
//
// ************************************************************************************************
#include "GUI/Support/Util/ItemFileNameUtil.h"
#include "GUI/Support/Util/Path.h"
namespace {
const QString jobdata_file_prefix = "jobdata";
const QString refdata_file_prefix = "refdata";
const QString realdata_file_prefix = "realdata";
const QString instrument_file_prefix = "instrdata";
const QString nativedata_file_prefix = "nativedata";
//! Constructs the name of the file for intensity data.
QString intensityDataFileName(const QString& itemName, const QString& prefix)
{
QString bodyName = GUI::Base::Path::getValidFileName(itemName);
return QString("%1_%2.int").arg(prefix).arg(bodyName);
}
} // namespace
//! Constructs the name of the file with simulated intensities.
QString GUI::FilenameUtil::jobResultsFileName(const QString& itemName)
{
return intensityDataFileName(itemName, jobdata_file_prefix);
}
//! Constructs the name of the file with reference data.
QString GUI::FilenameUtil::jobReferenceFileName(const QString& itemName)
{
return intensityDataFileName(itemName, refdata_file_prefix);
}
QString GUI::FilenameUtil::jobNativeDataFileName(const QString& id)
{
return intensityDataFileName(id, nativedata_file_prefix);
}
//! Constructs the name of the intensity file belonging to real data item.
QString GUI::FilenameUtil::realDataFileName(const QString& dataName)
{
return intensityDataFileName(dataName, realdata_file_prefix);
}
QString GUI::FilenameUtil::nativeDataFileName(const QString& dataName)
{
return intensityDataFileName(dataName, nativedata_file_prefix);
}
......@@ -42,7 +42,7 @@ const QMap<QString, QString> invalidCharacterMap = initializeCharacterMap();
} // namespace
QString GUI::Base::Path::withTildeHomePath(const QString& path)
QString GUI::Path::withTildeHomePath(const QString& path)
{
#ifdef Q_OS_WIN
return path;
......@@ -57,7 +57,7 @@ QString GUI::Base::Path::withTildeHomePath(const QString& path)
return path;
}
QString GUI::Base::Path::getBornAgainVersionString()
QString GUI::Path::getBornAgainVersionString()
{
return QString::fromStdString(BornAgain::GetVersionNumber());
}
......@@ -71,7 +71,7 @@ QString GUI::Base::Path::getBornAgainVersionString()
//! > greaterthan
//! | pipe
//! ? questionmark
QString GUI::Base::Path::getValidFileName(const QString& proposed_name)
QString GUI::Path::getValidFileName(const QString& proposed_name)
{
QString result = proposed_name;
for (auto it = invalidCharacterMap.begin(); it != invalidCharacterMap.end(); ++it)
......@@ -79,8 +79,15 @@ QString GUI::Base::Path::getValidFileName(const QString& proposed_name)
return result;
}
//! Constructs the name of the file for intensity data.
QString GUI::Path::intensityDataFileName(const QString& itemName, const QString& prefix)
{
return prefix + "_" + getValidFileName(itemName) + ".int";
}
//! parses version string into 2 numbers, returns true in the case of success
bool GUI::Base::Path::parseVersion(const QString& version, int& major_num, int& minor_num)
bool GUI::Path::parseVersion(const QString& version, int& major_num, int& minor_num)
{
major_num = 0;
minor_num = 0;
......@@ -98,7 +105,7 @@ bool GUI::Base::Path::parseVersion(const QString& version, int& major_num, int&
return success;
}
int GUI::Base::Path::versionCode(const QString& version)
int GUI::Path::versionCode(const QString& version)
{
int ba_major;
int ba_minor;
......@@ -109,13 +116,13 @@ int GUI::Base::Path::versionCode(const QString& version)
}
//! Returns true if current BornAgain version match minimal required version
bool GUI::Base::Path::isVersionMatchMinimal(const QString& version, const QString& minimal_version)
bool GUI::Path::isVersionMatchMinimal(const QString& version, const QString& minimal_version)
{
return versionCode(version) >= versionCode(minimal_version);
}
//! Returns file directory from the full file path
QString GUI::Base::Path::fileDir(const QString& fname)
QString GUI::Path::fileDir(const QString& fname)
{
QFileInfo info(fname);
if (info.exists())
......@@ -125,18 +132,18 @@ QString GUI::Base::Path::fileDir(const QString& fname)
//! Returns base name of file.
QString GUI::Base::Path::baseName(const QString& fname)
QString GUI::Path::baseName(const QString& fname)
{
QFileInfo info(fname);
return info.baseName();
}
QString GUI::Base::Path::appDataFolder()
QString GUI::Path::appDataFolder()
{
return QStandardPaths::writableLocation(QStandardPaths::AppDataLocation);
}
QString GUI::Base::Path::getPathFromIndex(const QModelIndex& index)
QString GUI::Path::getPathFromIndex(const QModelIndex& index)
{
if (!index.isValid())
return "";
......
......@@ -19,7 +19,7 @@
class QModelIndex;
namespace GUI::Base::Path {
namespace GUI::Path {
QString withTildeHomePath(const QString& path);
......@@ -27,6 +27,8 @@ QString getBornAgainVersionString();
QString getValidFileName(const QString& proposed_name);
QString intensityDataFileName(const QString& itemName, const QString& prefix);
QString fileDir(const QString& fname);
QString baseName(const QString& fname);
......@@ -43,6 +45,6 @@ QString appDataFolder();
QString getPathFromIndex(const QModelIndex& index);
} // namespace GUI::Base::Path
} // namespace GUI::Path
#endif // BORNAGAIN_GUI_SUPPORT_UTIL_PATH_H
......@@ -18,6 +18,7 @@
#include "GUI/Model/Data/DataItem.h"
#include "GUI/Model/Device/DatafileItem.h"
#include "GUI/Model/Device/InstrumentItems.h"
#include "GUI/Model/Job/JobItem.h"
#include "GUI/Model/Project/ProjectDocument.h"
#include <QFormLayout>
......@@ -31,9 +32,9 @@ DataPropertyWidget::DataPropertyWidget(QWidget* parent)
m_mainLayout->setSpacing(5);
}
void DataPropertyWidget::setJobOrDatafileItem(QObject* job_or_real_Item)
void DataPropertyWidget::setJobOrDatafileItem(QObject* item)
{
setBaseItem(job_or_real_Item);
setBaseItem(item);
createPanelElements();
}
......
......@@ -21,14 +21,14 @@ class DataItem;
class InstrumentItem;
class QFormLayout;
//! Base class for Scale2DEditor and SpecularDataPropertyWidget.
//! Base class for Scale2DEditor and Scale1DEditor.
class DataPropertyWidget : public DataAccessWidget {
Q_OBJECT
public:
explicit DataPropertyWidget(QWidget* parent = nullptr);
void setJobOrDatafileItem(QObject* job_or_real_Item) override;
void setJobOrDatafileItem(QObject* item) override;
signals:
void axesRangeResetRequested();
......
......@@ -19,9 +19,8 @@
#include "GUI/View/Plotter/PlotStatusLabel.h"
#include <QVBoxLayout>
ColorMapCanvas::ColorMapCanvas(QWidget* parent)
: QWidget(parent)
, m_colorMap(new ColorMap(this))
ColorMapCanvas::ColorMapCanvas()
: m_colorMap(new ColorMap)
, m_canvasEvent(new FontScalingEvent(m_colorMap, this))
, m_statusLabel(new PlotStatusLabel(m_colorMap, this))
{
......
......@@ -29,7 +29,7 @@ class QCustomPlot;
class ColorMapCanvas : public QWidget {
Q_OBJECT
public:
explicit ColorMapCanvas(QWidget* parent = nullptr);
explicit ColorMapCanvas();
void itemToCanvas(Data2DItem* item);
......
......@@ -35,9 +35,9 @@ const QString SettingsKeyInterpolation = SettingsGroup + "Interpolation";
} // namespace
IntensityDataCanvas::IntensityDataCanvas(QWidget* parent)
: DataAccessWidget(parent)
, m_colorMapCanvas(new ColorMapCanvas(this))
IntensityDataCanvas::IntensityDataCanvas()
: DataAccessWidget(nullptr)
, m_colorMapCanvas(new ColorMapCanvas)
, m_resetViewAction(nullptr)
, m_rotateDataAction(nullptr)
, m_savePlotAction(nullptr)
......@@ -70,9 +70,9 @@ IntensityDataCanvas::IntensityDataCanvas(QWidget* parent)
&IntensityDataCanvas::onMousePress, Qt::UniqueConnection);
}
void IntensityDataCanvas::setJobOrDatafileItem(QObject* job_or_real_Item)
void IntensityDataCanvas::setJobOrDatafileItem(QObject* item)
{
setBaseItem(job_or_real_Item);
setBaseItem(item);
m_colorMapCanvas->itemToCanvas(currentData2DItem());
if (!m_rotateDataAction)
......@@ -81,12 +81,12 @@ void IntensityDataCanvas::setJobOrDatafileItem(QObject* job_or_real_Item)
QSize IntensityDataCanvas::sizeHint() const
{
return QSize(500, 400);
return {500, 400};
}
QSize IntensityDataCanvas::minimumSizeHint() const
{
return QSize(128, 128);
return {128, 128};
}
QList<QAction*> IntensityDataCanvas::actionList()
......
......@@ -26,9 +26,9 @@ class QAction;
class IntensityDataCanvas : public DataAccessWidget {
public:
explicit IntensityDataCanvas(QWidget* parent = nullptr);
explicit IntensityDataCanvas();
void setJobOrDatafileItem(QObject* job_or_real_Item) override;
void setJobOrDatafileItem(QObject* item) override;
QSize sizeHint() const override;
QSize minimumSizeHint() const override;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment