Data classes and services for number series and seasons. Fixed release
build.
This commit is contained in:
+44
-1
@@ -15,6 +15,8 @@
|
|||||||
#include "users/users.h"
|
#include "users/users.h"
|
||||||
#include "roles/roles.h"
|
#include "roles/roles.h"
|
||||||
#include "permissionservice.h"
|
#include "permissionservice.h"
|
||||||
|
#include "seasonservice.h"
|
||||||
|
#include "numberseriesservice.h"
|
||||||
|
|
||||||
Context::~Context()
|
Context::~Context()
|
||||||
{
|
{
|
||||||
@@ -50,7 +52,7 @@ void Context::loadPlugins()
|
|||||||
m_plugins.append(new Users);
|
m_plugins.append(new Users);
|
||||||
m_plugins.append(new Roles);
|
m_plugins.append(new Roles);
|
||||||
|
|
||||||
QDir pluginsDir(qApp->applicationDirPath() + "/../plugins");
|
QDir pluginsDir(qApp->applicationDirPath() + "/../../plugins");
|
||||||
|
|
||||||
foreach (QString fileName, pluginsDir.entryList(QStringList() << "*.so" << "*.dll")) {
|
foreach (QString fileName, pluginsDir.entryList(QStringList() << "*.so" << "*.dll")) {
|
||||||
QPluginLoader pluginLoader(pluginsDir.absoluteFilePath(fileName));
|
QPluginLoader pluginLoader(pluginsDir.absoluteFilePath(fileName));
|
||||||
@@ -86,6 +88,8 @@ void Context::openDb(const QString &path)
|
|||||||
m_dbOpened = true;
|
m_dbOpened = true;
|
||||||
|
|
||||||
checkPermissions();
|
checkPermissions();
|
||||||
|
checkSeason();
|
||||||
|
checkNumberSeries();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Context::destroy()
|
void Context::destroy()
|
||||||
@@ -253,3 +257,42 @@ void Context::checkPermissions()
|
|||||||
|
|
||||||
permService.checkForAdmin();
|
permService.checkForAdmin();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Context::checkSeason()
|
||||||
|
{
|
||||||
|
SeasonService srv;
|
||||||
|
QSharedPointer<Season> season = srv.active();
|
||||||
|
|
||||||
|
if (season.isNull())
|
||||||
|
{
|
||||||
|
season = QSharedPointer<Season>(new Season());
|
||||||
|
season->setName("<<new season>>");
|
||||||
|
season->setValidFrom(QDate::currentDate());
|
||||||
|
season->setActive(true);
|
||||||
|
srv.save(season);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Context::checkNumberSeries()
|
||||||
|
{
|
||||||
|
NumberSeriesService srv;
|
||||||
|
SeasonService sesSrv;
|
||||||
|
QSharedPointer<Season> curSeason = sesSrv.active();
|
||||||
|
|
||||||
|
foreach (IPlugin *plugin, m_plugins) {
|
||||||
|
if (plugin->hasNumberSeries())
|
||||||
|
{
|
||||||
|
QSharedPointer<NumberSeries> numSer = srv.forPlugin(plugin->pluginId());
|
||||||
|
|
||||||
|
if (numSer.isNull())
|
||||||
|
{
|
||||||
|
numSer = QSharedPointer<NumberSeries>(new NumberSeries());
|
||||||
|
numSer->setPrefix(plugin->numberSeriesPrefix());
|
||||||
|
numSer->setPluginId(plugin->pluginId());
|
||||||
|
numSer->setSeason(curSeason);
|
||||||
|
|
||||||
|
srv.save(numSer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -55,6 +55,8 @@ private:
|
|||||||
void solveDep(IPlugin *plugin, const QSqlDatabase &db, const QMap<QString, int> &schemaMap);
|
void solveDep(IPlugin *plugin, const QSqlDatabase &db, const QMap<QString, int> &schemaMap);
|
||||||
void createSchema(IPlugin *plugin, const QSqlDatabase &db, const QMap<QString, int> &schemaMap);
|
void createSchema(IPlugin *plugin, const QSqlDatabase &db, const QMap<QString, int> &schemaMap);
|
||||||
void checkPermissions();
|
void checkPermissions();
|
||||||
|
void checkSeason();
|
||||||
|
void checkNumberSeries();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // CONTEXT_H
|
#endif // CONTEXT_H
|
||||||
|
|||||||
+10
-2
@@ -52,7 +52,11 @@ SOURCES += \
|
|||||||
settingsform.cpp \
|
settingsform.cpp \
|
||||||
settings/globalsettingsform.cpp \
|
settings/globalsettingsform.cpp \
|
||||||
permissionevaluator.cpp \
|
permissionevaluator.cpp \
|
||||||
objectbinder.cpp
|
objectbinder.cpp \
|
||||||
|
data/numberseries.cpp \
|
||||||
|
data/season.cpp \
|
||||||
|
seasonservice.cpp \
|
||||||
|
numberseriesservice.cpp
|
||||||
|
|
||||||
HEADERS += core.h\
|
HEADERS += core.h\
|
||||||
core_global.h \
|
core_global.h \
|
||||||
@@ -104,7 +108,11 @@ HEADERS += core.h\
|
|||||||
settings/globalsettingsform.h \
|
settings/globalsettingsform.h \
|
||||||
formbinder.h \
|
formbinder.h \
|
||||||
permissionevaluator.h \
|
permissionevaluator.h \
|
||||||
objectbinder.h
|
objectbinder.h \
|
||||||
|
data/numberseries.h \
|
||||||
|
data/season.h \
|
||||||
|
seasonservice.h \
|
||||||
|
numberseriesservice.h
|
||||||
|
|
||||||
unix {
|
unix {
|
||||||
target.path = /usr/lib
|
target.path = /usr/lib
|
||||||
|
|||||||
@@ -4,11 +4,15 @@
|
|||||||
class User;
|
class User;
|
||||||
class Permission;
|
class Permission;
|
||||||
class Role;
|
class Role;
|
||||||
|
class Season;
|
||||||
|
class NumberSeries;
|
||||||
|
|
||||||
#include "user.h"
|
#include "user.h"
|
||||||
#include "role.h"
|
#include "role.h"
|
||||||
#include "permission.h"
|
#include "permission.h"
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
#include "search.h"
|
||||||
|
#include "numberseries.h"
|
||||||
|
|
||||||
#endif // COREDATA_H
|
#endif // COREDATA_H
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,75 @@
|
|||||||
|
#include "numberseries.h"
|
||||||
|
#include "../context.h"
|
||||||
|
#include "../iplugin.h"
|
||||||
|
|
||||||
|
NumberSeries::NumberSeries(QObject *parent) : QObject(parent)
|
||||||
|
{
|
||||||
|
m_id = 0;
|
||||||
|
m_lastNumber = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int NumberSeries::id() const
|
||||||
|
{
|
||||||
|
return m_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
void NumberSeries::setId(int id)
|
||||||
|
{
|
||||||
|
m_id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString NumberSeries::prefix() const
|
||||||
|
{
|
||||||
|
return m_prefix;
|
||||||
|
}
|
||||||
|
|
||||||
|
void NumberSeries::setPrefix(const QString &prefix)
|
||||||
|
{
|
||||||
|
m_prefix = prefix;
|
||||||
|
}
|
||||||
|
|
||||||
|
int NumberSeries::lastNumber() const
|
||||||
|
{
|
||||||
|
return m_lastNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
void NumberSeries::setLastNumber(int lastNumber)
|
||||||
|
{
|
||||||
|
m_lastNumber = lastNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString NumberSeries::pluginId() const
|
||||||
|
{
|
||||||
|
return m_pluginId;
|
||||||
|
}
|
||||||
|
|
||||||
|
void NumberSeries::setPluginId(const QString &pluginId)
|
||||||
|
{
|
||||||
|
m_pluginId = pluginId;
|
||||||
|
}
|
||||||
|
|
||||||
|
QSharedPointer<Season> NumberSeries::season() const
|
||||||
|
{
|
||||||
|
return m_season;
|
||||||
|
}
|
||||||
|
|
||||||
|
void NumberSeries::setSeason(const QSharedPointer<Season> &season)
|
||||||
|
{
|
||||||
|
m_season = season;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString NumberSeries::seasonName() const
|
||||||
|
{
|
||||||
|
if (!m_season.isNull())
|
||||||
|
{
|
||||||
|
return m_season->name();
|
||||||
|
}
|
||||||
|
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
QString NumberSeries::pluginName() const
|
||||||
|
{
|
||||||
|
IPlugin *plugin = Context::instance().plugin(m_pluginId);
|
||||||
|
return plugin != NULL ? plugin->pluginName() : "";
|
||||||
|
}
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
#ifndef NUMBERSERIES_H
|
||||||
|
#define NUMBERSERIES_H
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
#include <QSharedPointer>
|
||||||
|
|
||||||
|
#include <odb/core.hxx>
|
||||||
|
|
||||||
|
#include "season.h"
|
||||||
|
|
||||||
|
#pragma db object
|
||||||
|
class NumberSeries : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
Q_PROPERTY(QString prefix READ prefix WRITE setPrefix)
|
||||||
|
Q_PROPERTY(int lastNumber READ lastNumber WRITE setLastNumber)
|
||||||
|
Q_PROPERTY(QString pluginName READ pluginName)
|
||||||
|
Q_PROPERTY(QString seasonName READ seasonName)
|
||||||
|
public:
|
||||||
|
explicit NumberSeries(QObject *parent = 0);
|
||||||
|
|
||||||
|
int id() const;
|
||||||
|
void setId(int id);
|
||||||
|
|
||||||
|
QString prefix() const;
|
||||||
|
void setPrefix(const QString &prefix);
|
||||||
|
|
||||||
|
int lastNumber() const;
|
||||||
|
void setLastNumber(int lastNumber);
|
||||||
|
|
||||||
|
QString pluginId() const;
|
||||||
|
void setPluginId(const QString &pluginId);
|
||||||
|
|
||||||
|
QSharedPointer<Season> season() const;
|
||||||
|
void setSeason(const QSharedPointer<Season> &season);
|
||||||
|
|
||||||
|
QString seasonName() const;
|
||||||
|
|
||||||
|
QString pluginName() const;
|
||||||
|
|
||||||
|
private:
|
||||||
|
friend class odb::access;
|
||||||
|
|
||||||
|
#pragma db id auto
|
||||||
|
int m_id;
|
||||||
|
QString m_prefix;
|
||||||
|
int m_lastNumber;
|
||||||
|
QString m_pluginId;
|
||||||
|
QSharedPointer<Season> m_season;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // NUMBERSERIES_H
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
#include "season.h"
|
||||||
|
|
||||||
|
Season::Season(QObject *parent)
|
||||||
|
:QObject(parent)
|
||||||
|
{
|
||||||
|
m_id = 0;
|
||||||
|
m_active = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString Season::name() const
|
||||||
|
{
|
||||||
|
return m_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Season::setName(const QString &name)
|
||||||
|
{
|
||||||
|
m_name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDate Season::validFrom() const
|
||||||
|
{
|
||||||
|
return m_validFrom;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Season::setValidFrom(const QDate &validFrom)
|
||||||
|
{
|
||||||
|
m_validFrom = validFrom;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDate Season::validTo() const
|
||||||
|
{
|
||||||
|
return m_validTo;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Season::setValidTo(const QDate &validTo)
|
||||||
|
{
|
||||||
|
m_validTo = validTo;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Season::active() const
|
||||||
|
{
|
||||||
|
return m_active;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Season::setActive(bool active)
|
||||||
|
{
|
||||||
|
m_active = active;
|
||||||
|
}
|
||||||
|
|
||||||
|
int Season::id() const
|
||||||
|
{
|
||||||
|
return m_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Season::setId(int id)
|
||||||
|
{
|
||||||
|
m_id = id;
|
||||||
|
}
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
#ifndef SEASON_H
|
||||||
|
#define SEASON_H
|
||||||
|
|
||||||
|
#include "core_global.h"
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
#include <QString>
|
||||||
|
#include <QDate>
|
||||||
|
|
||||||
|
#include <odb/core.hxx>
|
||||||
|
|
||||||
|
#pragma db object
|
||||||
|
class CORESHARED_EXPORT Season : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
Q_PROPERTY(QString name READ name WRITE setName)
|
||||||
|
Q_PROPERTY(QDate validFrom READ validFrom WRITE setValidFrom)
|
||||||
|
Q_PROPERTY(QDate validTo READ validTo WRITE setValidTo)
|
||||||
|
Q_PROPERTY(bool active READ active WRITE setActive)
|
||||||
|
public:
|
||||||
|
explicit Season(QObject *parent = 0);
|
||||||
|
|
||||||
|
QString name() const;
|
||||||
|
void setName(const QString &name);
|
||||||
|
|
||||||
|
QDate validFrom() const;
|
||||||
|
void setValidFrom(const QDate &validFrom);
|
||||||
|
|
||||||
|
QDate validTo() const;
|
||||||
|
void setValidTo(const QDate &validTo);
|
||||||
|
|
||||||
|
bool active() const;
|
||||||
|
void setActive(bool active);
|
||||||
|
|
||||||
|
int id() const;
|
||||||
|
void setId(int id);
|
||||||
|
|
||||||
|
private:
|
||||||
|
friend class odb::access;
|
||||||
|
|
||||||
|
#pragma db id auto
|
||||||
|
int m_id;
|
||||||
|
QString m_name;
|
||||||
|
QDate m_validFrom;
|
||||||
|
QDate m_validTo;
|
||||||
|
bool m_active;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // SEASON_H
|
||||||
@@ -77,6 +77,9 @@ public:
|
|||||||
virtual QIcon pluginIcon() { return QIcon(); }
|
virtual QIcon pluginIcon() { return QIcon(); }
|
||||||
QMap<QString, QString> translations() { return m_translations; }
|
QMap<QString, QString> translations() { return m_translations; }
|
||||||
|
|
||||||
|
virtual bool hasNumberSeries() { return false; }
|
||||||
|
virtual QString numberSeriesPrefix() { return ""; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
QTranslator* translatorFrom(QString fileName) {
|
QTranslator* translatorFrom(QString fileName) {
|
||||||
QTranslator *trans = new QTranslator();
|
QTranslator *trans = new QTranslator();
|
||||||
|
|||||||
@@ -74,6 +74,23 @@ CREATE TABLE \"Permission\" (
|
|||||||
\"createDate\" TEXT NULL,
|
\"createDate\" TEXT NULL,
|
||||||
\"active\" INTEGER NOT NULL);
|
\"active\" INTEGER NOT NULL);
|
||||||
|
|
||||||
|
CREATE TABLE \"Season\" (
|
||||||
|
\"id\" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||||
|
\"name\" TEXT NULL,
|
||||||
|
\"validFrom\" TEXT NULL,
|
||||||
|
\"validTo\" TEXT NULL,
|
||||||
|
\"active\" INTEGER NOT NULL);
|
||||||
|
|
||||||
|
CREATE TABLE \"NumberSeries\" (
|
||||||
|
\"id\" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||||
|
\"prefix\" TEXT NULL,
|
||||||
|
\"lastNumber\" INTEGER NOT NULL,
|
||||||
|
\"pluginId\" TEXT NULL,
|
||||||
|
\"season\" INTEGER NULL,
|
||||||
|
CONSTRAINT \"season_fk\"
|
||||||
|
FOREIGN KEY (\"season\")
|
||||||
|
REFERENCES \"Season\" (\"id\")
|
||||||
|
DEFERRABLE INITIALLY DEFERRED);
|
||||||
" ],
|
" ],
|
||||||
"dependencies" : []
|
"dependencies" : []
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,53 @@
|
|||||||
|
#include "numberseriesservice.h"
|
||||||
|
#include "seasonservice.h"
|
||||||
|
#include "core-odb.hxx"
|
||||||
|
|
||||||
|
NumberSeriesService::NumberSeriesService()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
QSharedPointer<NumberSeries> NumberSeriesService::forPluginAndSeason(QString pluginId, QSharedPointer<Season> season)
|
||||||
|
{
|
||||||
|
QList<QSharedPointer<NumberSeries> > series = all(QString("pluginId = '%1' AND season = %2").arg(pluginId, QString::number(season->id())));
|
||||||
|
|
||||||
|
if (!series.isEmpty())
|
||||||
|
{
|
||||||
|
return series[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
return QSharedPointer<NumberSeries>();
|
||||||
|
}
|
||||||
|
|
||||||
|
QSharedPointer<NumberSeries> NumberSeriesService::forPlugin(QString pluginId)
|
||||||
|
{
|
||||||
|
SeasonService sesSrv;
|
||||||
|
QSharedPointer<Season> currentSeason = sesSrv.active();
|
||||||
|
|
||||||
|
if (!currentSeason.isNull())
|
||||||
|
{
|
||||||
|
return forPluginAndSeason(pluginId, currentSeason);
|
||||||
|
}
|
||||||
|
|
||||||
|
return QSharedPointer<NumberSeries>();
|
||||||
|
}
|
||||||
|
|
||||||
|
QSharedPointer<NumberSeries> NumberSeriesService::nextForPlugin(QString pluginId)
|
||||||
|
{
|
||||||
|
QSharedPointer<NumberSeries> numSer = forPlugin(pluginId);
|
||||||
|
|
||||||
|
if (numSer.isNull())
|
||||||
|
{
|
||||||
|
return QSharedPointer<NumberSeries>();
|
||||||
|
}
|
||||||
|
|
||||||
|
numSer->setLastNumber(numSer->lastNumber() + 1);
|
||||||
|
update(numSer);
|
||||||
|
|
||||||
|
return numSer;
|
||||||
|
}
|
||||||
|
|
||||||
|
QList<QSharedPointer<NumberSeries> > NumberSeriesService::allForSeason(QSharedPointer<Season> season)
|
||||||
|
{
|
||||||
|
return all(QString("season = %1").arg(QString::number(season->id())));
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
#ifndef NUMBERSERIESSERVICE_H
|
||||||
|
#define NUMBERSERIESSERVICE_H
|
||||||
|
|
||||||
|
#include "data/numberseries.h"
|
||||||
|
#include "data/season.h"
|
||||||
|
#include "service.h"
|
||||||
|
#include "core_global.h"
|
||||||
|
|
||||||
|
class CORESHARED_EXPORT NumberSeriesService : public Service<NumberSeries>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
NumberSeriesService();
|
||||||
|
|
||||||
|
QSharedPointer<NumberSeries> forPluginAndSeason(QString pluginId, QSharedPointer<Season> season);
|
||||||
|
QSharedPointer<NumberSeries> forPlugin(QString pluginId);
|
||||||
|
QSharedPointer<NumberSeries> nextForPlugin(QString pluginId);
|
||||||
|
QList<QSharedPointer<NumberSeries> > allForSeason(QSharedPointer<Season> season);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // NUMBERSERIESSERVICE_H
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
#include "seasonservice.h"
|
||||||
|
|
||||||
|
#include "core-odb.hxx"
|
||||||
|
|
||||||
|
SeasonService::SeasonService()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
QSharedPointer<Season> SeasonService::active()
|
||||||
|
{
|
||||||
|
QList<QSharedPointer<Season> > seasons = all("active = 1");
|
||||||
|
if (seasons.count() > 0)
|
||||||
|
{
|
||||||
|
return seasons[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
return QSharedPointer<Season>();
|
||||||
|
}
|
||||||
|
|
||||||
|
void SeasonService::activate(QSharedPointer<Season> season)
|
||||||
|
{
|
||||||
|
Transaction tx;
|
||||||
|
|
||||||
|
foreach (QSharedPointer<Season> ses, all()) {
|
||||||
|
ses->setActive(false);
|
||||||
|
update(ses);
|
||||||
|
}
|
||||||
|
|
||||||
|
season->setActive(true);
|
||||||
|
update(season);
|
||||||
|
|
||||||
|
tx.commit();
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
#ifndef SEASONSERVICE_H
|
||||||
|
#define SEASONSERVICE_H
|
||||||
|
|
||||||
|
#include <QSharedPointer>
|
||||||
|
|
||||||
|
#include "data/season.h"
|
||||||
|
#include "service.h"
|
||||||
|
#include "core_global.h"
|
||||||
|
|
||||||
|
class CORESHARED_EXPORT SeasonService : public Service<Season>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
SeasonService();
|
||||||
|
QSharedPointer<Season> active();
|
||||||
|
void activate(QSharedPointer<Season> season);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // SEASONSERVICE_H
|
||||||
+2
-2
@@ -6,7 +6,7 @@
|
|||||||
#DEFINES += DECEXTFLAG=1 # default is 1
|
#DEFINES += DECEXTFLAG=1 # default is 1
|
||||||
#DEFINES += DECLITEND=0 # default is 1
|
#DEFINES += DECLITEND=0 # default is 1
|
||||||
|
|
||||||
CONFIG += debug
|
#CONFIG += debug
|
||||||
|
|
||||||
|
|
||||||
if(win32) {
|
if(win32) {
|
||||||
@@ -24,7 +24,7 @@ if(win32) {
|
|||||||
#msvc2010 onwards above flags are deprecated.
|
#msvc2010 onwards above flags are deprecated.
|
||||||
|
|
||||||
# Use Run-time checks for stack corruption and uninitialized var use
|
# Use Run-time checks for stack corruption and uninitialized var use
|
||||||
QMAKE_CXXFLAGS += /RTC1
|
#QMAKE_CXXFLAGS += /RTC1
|
||||||
}
|
}
|
||||||
|
|
||||||
} # end win32
|
} # end win32
|
||||||
|
|||||||
@@ -31,3 +31,13 @@ QTranslator *Shop::translator()
|
|||||||
{
|
{
|
||||||
return translatorFrom(":/translations/shop_");
|
return translatorFrom(":/translations/shop_");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Shop::hasNumberSeries()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString Shop::numberSeriesPrefix()
|
||||||
|
{
|
||||||
|
return "PD";
|
||||||
|
}
|
||||||
|
|||||||
@@ -24,6 +24,8 @@ public:
|
|||||||
virtual QIcon pluginIcon();
|
virtual QIcon pluginIcon();
|
||||||
virtual QWidget *ui() override;
|
virtual QWidget *ui() override;
|
||||||
QTranslator *translator();
|
QTranslator *translator();
|
||||||
|
bool hasNumberSeries();
|
||||||
|
QString numberSeriesPrefix();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // SHOP_H
|
#endif // SHOP_H
|
||||||
|
|||||||
Reference in New Issue
Block a user