Skip to content

Commit 50b97cd

Browse files
authored
Consistent plugin registry prefix (#29)
* Consistent plugin registry prefix * Consistent plugin registry prefix, part 2 * Fix build
1 parent c547e68 commit 50b97cd

7 files changed

Lines changed: 99 additions & 180 deletions

File tree

src/H510XLoader.cpp

Lines changed: 43 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
#include <QCheckBox>
1515
#include <QString>
1616
#include <QStringList>
17-
#include <QSettings>
1817
#include <QMessageBox>
1918

2019
Q_PLUGIN_METADATA(IID "nl.lumc.H510XLoader")
@@ -47,23 +46,12 @@ namespace
4746
// Alphabetic list of keys used to access settings from QSettings.
4847
namespace Keys
4948
{
50-
const QLatin1String conversionIndexKey("conversionIndex");
51-
const QLatin1String transformValueKey("transformValue");
52-
const QLatin1String storageValueKey("storageValue");
53-
const QLatin1String fileNameKey("fileName");
54-
const QLatin1String normalizeKey("normalize");
55-
const QLatin1String selectedNameFilterKey("selectedNameFilter");
56-
57-
}
58-
59-
// Call the specified function on the specified value, if it is valid.
60-
template <typename TFunction>
61-
void IfValid(const QVariant& value, const TFunction& function)
62-
{
63-
if (value.isValid())
64-
{
65-
function(value);
66-
}
49+
const QString conversionIndexKey("conversionIndex");
50+
const QString transformValueKey("transformValue");
51+
const QString storageValueKey("storageValue");
52+
const QString fileNameKey("fileName");
53+
const QString normalizeKey("normalize");
54+
const QString selectedNameFilterKey("selectedNameFilter");
6755
}
6856

6957
} // Unnamed namespace
@@ -74,8 +62,8 @@ namespace
7462
// =============================================================================
7563

7664
H510XLoader::H510XLoader(PluginFactory* factory)
77-
: LoaderPlugin(factory)
78-
65+
: LoaderPlugin(factory),
66+
_fileDialog()
7967
{
8068

8169
}
@@ -87,15 +75,13 @@ H510XLoader::~H510XLoader(void)
8775

8876
void H510XLoader::init()
8977
{
90-
9178
QStringList fileTypeOptions;
9279

9380
fileTypeOptions.append("10X (*.h5)");
9481

9582
_fileDialog.setOption(QFileDialog::DontUseNativeDialog);
9683
_fileDialog.setFileMode(QFileDialog::ExistingFiles);
9784
_fileDialog.setNameFilters(fileTypeOptions);
98-
9985
}
10086

10187
void H510XLoader::loadData()
@@ -107,7 +93,6 @@ void H510XLoader::loadData()
10793
};
10894
LockGuard lockGuard(Hdf5Lock());
10995

110-
QSettings settings(QString::fromLatin1("HDPS"), QString::fromLatin1("Plugins/H510XLoader"));
11196
QGridLayout* fileDialogLayout = dynamic_cast<QGridLayout*>(_fileDialog.layout());
11297

11398
int rowCount = fileDialogLayout->rowCount();
@@ -125,58 +110,54 @@ void H510XLoader::loadData()
125110
storageTypeComboBox->addItem(dataTypeList[i], i);
126111
}
127112

128-
storageTypeComboBox->setCurrentIndex([&settings]
113+
storageTypeComboBox->setCurrentIndex([this]
129114
{
130-
const auto value = settings.value(Keys::storageValueKey);
131-
if (value.isValid())return value.toInt();
132-
return 0;
115+
const auto value = getSetting(Keys::storageValueKey, 0);
116+
return value.toInt();
133117
}());
134118

135119
fileDialogLayout->addWidget(storageTypeLabel, rowCount, 0);
136120
fileDialogLayout->addWidget(storageTypeComboBox, rowCount, 1);
137121

138-
139122
TRANSFORM::Control transform(fileDialogLayout);
140123

141-
142-
IfValid(settings.value(Keys::conversionIndexKey), [&transform, &settings](const QVariant& value)
124+
const auto conversionIndexSetting = getSetting(Keys::conversionIndexKey, QVariant());
125+
if (conversionIndexSetting.isValid())
126+
{
127+
TRANSFORM::Index index = static_cast<TRANSFORM::Index>(conversionIndexSetting.toInt());
128+
if (index == TRANSFORM::ARCSIN5)
143129
{
144-
TRANSFORM::Index index = static_cast<TRANSFORM::Index>(value.toInt());
145-
if (index == TRANSFORM::ARCSIN5)
146-
{
147-
IfValid(settings.value(Keys::transformValueKey), [&transform, index](const QVariant& value)
148-
{
149-
TRANSFORM::Type transform_type;
150-
transform_type.first = index;
151-
transform_type.second = value.toDouble();
152-
transform.set(transform_type);
153-
});
154-
}
155-
else
130+
const auto transformValueSetting = getSetting(Keys::transformValueKey, QVariant());
131+
132+
if (transformValueSetting.isValid())
156133
{
157-
TRANSFORM::Type type_pair;
158-
type_pair.first = index;
159-
type_pair.second = 1.0f;
160-
transform.set(type_pair);
134+
TRANSFORM::Type transform_type;
135+
transform_type.first = index;
136+
transform_type.second = transformValueSetting.toDouble();
137+
transform.set(transform_type);
161138
}
139+
}
140+
else
141+
{
142+
TRANSFORM::Type type_pair;
143+
type_pair.first = index;
144+
type_pair.second = 1.0f;
145+
transform.set(type_pair);
146+
}
147+
}
162148

163-
});
149+
const auto selectedNameFilterSetting = getSetting(Keys::selectedNameFilterKey, QVariant());
150+
if (selectedNameFilterSetting.isValid())
151+
_fileDialog.selectNameFilter(selectedNameFilterSetting.toString());
164152

165-
QFileDialog& fileDialogRef = _fileDialog;
166-
IfValid(settings.value(Keys::selectedNameFilterKey), [&fileDialogRef](const QVariant& value)
167-
{
168-
fileDialogRef.selectNameFilter(value.toString());
169-
});
170-
IfValid(settings.value(Keys::fileNameKey), [&fileDialogRef](const QVariant& value)
171-
{
172-
fileDialogRef.selectFile(value.toString());
173-
});
153+
const auto fileNameSetting = getSetting(Keys::fileNameKey, QVariant());
154+
if (fileNameSetting.isValid())
155+
_fileDialog.selectFile(fileNameSetting.toString());
174156

175157
// keeping storageTypeComboBox for now since we probably should implement this functionality
176158
storageTypeComboBox->setVisible(false);
177159
storageTypeLabel->setVisible(false);
178160

179-
180161
transform.setVisible(true);
181162
transform.setTransform(0);
182163

@@ -190,17 +171,14 @@ void H510XLoader::loadData()
190171
}
191172
const QString firstFileName = fileNames.constFirst();
192173

193-
bool result = true;
194174
QString selectedNameFilter = _fileDialog.selectedNameFilter();
195175
const TRANSFORM::Type transform_setting = transform.get();
196176

197-
198-
settings.setValue(Keys::conversionIndexKey, transform_setting.first);
199-
settings.setValue(Keys::storageValueKey, storageTypeComboBox->currentIndex());
200-
settings.setValue(Keys::transformValueKey, transform_setting.second);
201-
settings.setValue(Keys::fileNameKey, firstFileName);
202-
settings.setValue(Keys::selectedNameFilterKey, selectedNameFilter);
203-
177+
setSetting(Keys::conversionIndexKey, transform_setting.first);
178+
setSetting(Keys::storageValueKey, storageTypeComboBox->currentIndex());
179+
setSetting(Keys::transformValueKey, transform_setting.second);
180+
setSetting(Keys::fileNameKey, firstFileName);
181+
setSetting(Keys::selectedNameFilterKey, selectedNameFilter);
204182

205183
for (const auto& fileName : fileNames)
206184
{

src/H510XLoader.h

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,6 @@ using namespace mv::plugin;
1313

1414
class H510XLoader : public LoaderPlugin
1515
{
16-
QFileDialog _fileDialog;
17-
18-
protected:
19-
20-
int _storageType;
21-
2216
public:
2317

2418
H510XLoader(PluginFactory* factory);
@@ -28,4 +22,6 @@ class H510XLoader : public LoaderPlugin
2822

2923
void loadData() Q_DECL_OVERRIDE;
3024

25+
private:
26+
QFileDialog _fileDialog = QFileDialog{};
3127
};

src/H5ADLoader.cpp

Lines changed: 17 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
#include <QCheckBox>
1414
#include <QString>
1515
#include <QStringList>
16-
#include <QSettings>
1716
#include <QMessageBox>
1817

1918
Q_PLUGIN_METADATA(IID "nl.lumc.H5ADLoader")
@@ -50,28 +49,14 @@ namespace
5049
// Alphabetic list of keys used to access settings from QSettings.
5150
namespace Keys
5251
{
53-
const QLatin1String storageValueKey("storageValue");
54-
const QLatin1String fileNameKey("fileName");
55-
56-
const QLatin1String selectedNameFilterKey("selectedNameFilter");
57-
58-
}
59-
60-
61-
// Call the specified function on the specified value, if it is valid.
62-
template <typename TFunction>
63-
void IfValid(const QVariant& value, const TFunction& function)
64-
{
65-
if (value.isValid())
66-
{
67-
function(value);
68-
}
52+
const QString storageValueKey("storageValue");
53+
const QString fileNameKey("fileName");
54+
const QString selectedNameFilterKey("selectedNameFilter");
6955
}
7056

7157
} // Unnamed namespace
7258

7359

74-
7560
H5ADLoader::H5ADLoader(PluginFactory* factory)
7661
: LoaderPlugin(factory)
7762
{
@@ -83,15 +68,13 @@ H5ADLoader::~H5ADLoader(void)
8368

8469
}
8570

86-
8771
void H5ADLoader::init()
8872
{
8973
QStringList fileTypeOptions;
9074
fileTypeOptions.append("H5AD (*.h5ad)");
9175
_fileDialog.setOption(QFileDialog::DontUseNativeDialog);
9276
_fileDialog.setFileMode(QFileDialog::ExistingFiles);
9377
_fileDialog.setNameFilters(fileTypeOptions);
94-
9578
}
9679

9780
void H5ADLoader::loadData()
@@ -103,7 +86,6 @@ void H5ADLoader::loadData()
10386
};
10487
LockGuard lockGuard(Hdf5Lock());
10588

106-
QSettings settings(QString::fromLatin1("ManiVault"), QString::fromLatin1("Plugins/H5ADLoader"));
10789
QGridLayout* fileDialogLayout = dynamic_cast<QGridLayout*>(_fileDialog.layout());
10890

10991
int rowCount = fileDialogLayout->rowCount();
@@ -121,25 +103,22 @@ void H5ADLoader::loadData()
121103
storageTypeComboBox->addItem(dataTypeList[i], i);
122104
}
123105

124-
storageTypeComboBox->setCurrentIndex([&settings]
106+
storageTypeComboBox->setCurrentIndex([this]
125107
{
126-
const auto value = settings.value(Keys::storageValueKey);
127-
if (value.isValid())return value.toInt();
128-
return 0;
108+
const auto value = getSetting(Keys::storageValueKey, 0).toInt();
109+
return value;
129110
}());
130111

131112
fileDialogLayout->addWidget(storageTypeLabel, rowCount, 0);
132113
fileDialogLayout->addWidget(storageTypeComboBox, rowCount, 1);
133114

134-
QFileDialog& fileDialogRef = _fileDialog;
135-
IfValid(settings.value(Keys::selectedNameFilterKey), [&fileDialogRef](const QVariant& value)
136-
{
137-
fileDialogRef.selectNameFilter(value.toString());
138-
});
139-
IfValid(settings.value(Keys::fileNameKey), [&fileDialogRef](const QVariant& value)
140-
{
141-
fileDialogRef.selectFile(value.toString());
142-
});
115+
const auto selectedNameFilterSetting = getSetting(Keys::selectedNameFilterKey, QVariant());
116+
if (selectedNameFilterSetting.isValid())
117+
_fileDialog.selectNameFilter(selectedNameFilterSetting.toString());
118+
119+
const auto fileNameSetting = getSetting(Keys::fileNameKey, QVariant());
120+
if (fileNameSetting.isValid())
121+
_fileDialog.selectFile(fileNameSetting.toString());
143122

144123
storageTypeComboBox->setVisible(true);
145124
storageTypeLabel->setVisible(true);
@@ -157,10 +136,10 @@ void H5ADLoader::loadData()
157136
bool result = true;
158137
QString selectedNameFilter = _fileDialog.selectedNameFilter();
159138

160-
settings.setValue(Keys::storageValueKey, storageTypeComboBox->currentIndex());
161-
settings.setValue(Keys::fileNameKey, firstFileName);
162-
settings.setValue(Keys::selectedNameFilterKey, selectedNameFilter);
163-
139+
setSetting(Keys::storageValueKey, storageTypeComboBox->currentIndex());
140+
setSetting(Keys::fileNameKey, firstFileName);
141+
setSetting(Keys::selectedNameFilterKey, selectedNameFilter);
142+
164143
HDF5_AD_Loader loader(_core);
165144
for (const auto& fileName : fileNames)
166145
{

src/H5ADLoader.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,4 @@ class H5ADLoader : public LoaderPlugin
2424

2525
private:
2626
QFileDialog _fileDialog = QFileDialog{};
27-
2827
};

src/HDF5_TOME_Loader.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ namespace TOME
4040
};
4141

4242

43-
bool LoadDesc(const H5::DataSet &dataset, TOME::descType &desc)
43+
static bool LoadDesc(const H5::DataSet &dataset, TOME::descType &desc)
4444
{
4545
try
4646
{
@@ -58,7 +58,7 @@ namespace TOME
5858
}
5959
enum { Exons = 1, Introns = 2, Exons_T, Introns_T };
6060

61-
void LoadData(H5::Group &group, std::shared_ptr<DataContainerInterface>&rawData, TRANSFORM::Type transformType, bool normalize_and_cpm, int test)
61+
static void LoadData(H5::Group &group, std::shared_ptr<DataContainerInterface>&rawData, TRANSFORM::Type transformType, bool normalize_and_cpm, int test)
6262
{
6363
#ifndef HIDE_CONSOLE
6464
std::cout << "Loading Data" << std::endl;

0 commit comments

Comments
 (0)