the plugin SDK offers the info for a directory for plugin relevant data, resp. configuration files and so on. With
Code: Select all
git clone http://schrell.de/PluginTools.gitCode: Select all
#pragma once
#include <QString>
#include <QObject>
#include "ConfigFile.h"
#include "PluginHub.h"
#include "PluginDependency.h"
#include "PluginImageSettings.h"
#include "PluginOptionList.h"
#define ASPM_CHECK_FOR_UPDATES "ASPM_CHECK_FOR_UPDATES"
#define ASPM_TOOLBOX_HEIGHT "ASPM_TOOLBOX_HEIGHT"
class ConfigurationMapper : public QObject {
Q_OBJECT
public:
ConfigurationMapper(QString filename);
bool getBool(const QString key, bool def);
QString getString(const QString key, QString def);
int getInt(const QString key, int def);
void setString(const QString key, const QString val);
bool checkForUpdates();
int toolBoxHeight();
private:
ConfigFile *m_cf;
};
Code: Select all
#include "ConfigurationMapper.h"
#include <QDebug>
#include <QString>
#include <QStringList>
#include "PluginHub.h"
#include "PluginDependency.h"
#include "PluginImageSettings.h"
#include "PluginOptionList.h"
#include "ConfigFile.h"
ConfigurationMapper::ConfigurationMapper(QString fileName) {
m_cf = new ConfigFile(fileName);
m_cf->autoWrite(true);
}
bool ConfigurationMapper::getBool(const QString key, bool def = false) {
QString val = m_cf->getValue(key);
if (val == 0) return def;
return val == "true";
}
QString ConfigurationMapper::getString(const QString key, QString def = "") {
QString val = m_cf->getValue(key);
if (val == 0) return def;
return val;
}
int ConfigurationMapper::getInt(const QString key, int def = 0) {
QString val = m_cf->getValue(key);
if (val == 0) return def;
return val.toInt();
}
void ConfigurationMapper::setString(const QString key, const QString val) {
m_cf->setValue(key, val);
}
bool ConfigurationMapper::checkForUpdates() {
return getBool(ASPM_CHECK_FOR_UPDATES, true);
}
int ConfigurationMapper::toolBoxHeight() {
return getInt(ASPM_TOOLBOX_HEIGHT, 400);
}
Init:
Code: Select all
QString configDir = m_hub->property("pluginStorageHome").toString() + "/asPluginManager";
QDir qdir;
qdir.mkdir(configDir);
QString configPath = configDir + "/asPluginManager.conf";
m_config = new ConfigurationMapper(configPath);
if (m_config == NULL) {
QMessageBox::information(NULL,"asPluginManager",tr("Configuration file problem with file:") + "<br/>" + configPath);
return false;
}
Code: Select all
if (m_config->checkForUpdates()) {
...
}
...
uiWidget->setMinimumSize(100, min(height, m_config->toolBoxHeight()));- A ConfigurationMapperBase will preimplement the getter and setter methods. Your will extend it with your own methods
- Integrated dir/path management
Andreas
