Added postregister plugin.
parent
dbbf4a0a67
commit
af9edeafae
@ -0,0 +1,76 @@
|
||||
#include "postdata.h"
|
||||
|
||||
PostData::PostData(QObject *parent)
|
||||
:QObject(parent)
|
||||
{
|
||||
}
|
||||
|
||||
QString PostData::townPart() const
|
||||
{
|
||||
return m_townPart;
|
||||
}
|
||||
|
||||
void PostData::setTownPart(const QString &townPart)
|
||||
{
|
||||
m_townPart = townPart;
|
||||
}
|
||||
|
||||
int PostData::id() const
|
||||
{
|
||||
return m_id;
|
||||
}
|
||||
|
||||
void PostData::setId(int id)
|
||||
{
|
||||
m_id = id;
|
||||
}
|
||||
|
||||
QString PostData::zipCode() const
|
||||
{
|
||||
return m_zipCode;
|
||||
}
|
||||
|
||||
void PostData::setZipCode(const QString &zipCode)
|
||||
{
|
||||
m_zipCode = zipCode;
|
||||
}
|
||||
|
||||
QString PostData::postName() const
|
||||
{
|
||||
return m_postName;
|
||||
}
|
||||
|
||||
void PostData::setPostName(const QString &postName)
|
||||
{
|
||||
m_postName = postName;
|
||||
}
|
||||
|
||||
QString PostData::code() const
|
||||
{
|
||||
return m_code;
|
||||
}
|
||||
|
||||
void PostData::setCode(const QString &code)
|
||||
{
|
||||
m_code = code;
|
||||
}
|
||||
|
||||
QString PostData::township() const
|
||||
{
|
||||
return m_township;
|
||||
}
|
||||
|
||||
void PostData::setTownship(const QString &township)
|
||||
{
|
||||
m_township = township;
|
||||
}
|
||||
|
||||
QString PostData::town() const
|
||||
{
|
||||
return m_town;
|
||||
}
|
||||
|
||||
void PostData::setTown(const QString &town)
|
||||
{
|
||||
m_town = town;
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
#ifndef POSTDATA_H
|
||||
#define POSTDATA_H
|
||||
|
||||
#include <QString>
|
||||
#include <QObject>
|
||||
#include <odb/core.hxx>
|
||||
|
||||
#pragma db object
|
||||
class PostData : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(QString townPart READ townPart WRITE setTownPart)
|
||||
Q_PROPERTY(QString zipCode READ zipCode WRITE setZipCode)
|
||||
Q_PROPERTY(QString postName READ postName WRITE setPostName)
|
||||
Q_PROPERTY(QString code READ code WRITE setCode)
|
||||
Q_PROPERTY(QString township READ township WRITE setTownship)
|
||||
Q_PROPERTY(QString town READ town WRITE setTown)
|
||||
|
||||
public:
|
||||
Q_INVOKABLE explicit PostData(QObject *parent = NULL);
|
||||
|
||||
QString townPart() const;
|
||||
void setTownPart(const QString &townPart);
|
||||
|
||||
int id() const;
|
||||
void setId(int id);
|
||||
|
||||
QString zipCode() const;
|
||||
void setZipCode(const QString &zipCode);
|
||||
|
||||
QString postName() const;
|
||||
void setPostName(const QString &postName);
|
||||
|
||||
QString code() const;
|
||||
void setCode(const QString &code);
|
||||
|
||||
QString township() const;
|
||||
void setTownship(const QString &township);
|
||||
|
||||
QString town() const;
|
||||
void setTown(const QString &town);
|
||||
|
||||
private:
|
||||
friend class odb::access;
|
||||
#pragma db id auto
|
||||
int m_id;
|
||||
QString m_townPart;
|
||||
QString m_zipCode;
|
||||
QString m_postName;
|
||||
QString m_code;
|
||||
QString m_township;
|
||||
QString m_town;
|
||||
};
|
||||
|
||||
#endif // POSTDATA_H
|
@ -0,0 +1 @@
|
||||
<?xml version="1.0" ?><svg clip-rule="evenodd" fill-rule="evenodd" image-rendering="optimizeQuality" shape-rendering="geometricPrecision" text-rendering="geometricPrecision" viewBox="0 0 500 500" xmlns="http://www.w3.org/2000/svg"><defs><linearGradient gradientUnits="userSpaceOnUse" id="a" x1="250" x2="250" y1="284.547" y2="122.267"><stop offset="0" stop-color="#008BFF"/><stop offset="1" stop-color="#0af"/></linearGradient></defs><g><circle cx="250" cy="250" fill="none" r="210" stroke="#434242" stroke-width="30"/><rect fill="#434242" height="29.998" rx="10" ry="10" width="260" x="120" y="350"/><path d="M270 90l60 60c5 5 10 10 10 20s-10 20-20 20h-40v125c0 8-7 15-15 15h-30c-8 0-15-7-15-15v-125h-40c-10 0-20-10-20-20s5-15 10-20l60-60c13-13 27-13 40 0z" fill="url(#a)" stroke="#434242" stroke-width="10"/></g></svg>
|
After Width: | Height: | Size: 820 B |
@ -0,0 +1,46 @@
|
||||
#include "importdialog.h"
|
||||
#include "ui_importdialog.h"
|
||||
|
||||
#include <service.h>
|
||||
#include <csvimporter.h>
|
||||
#include <QDesktopWidget>
|
||||
#include <QFileDialog>
|
||||
|
||||
#include "data/postdata.h"
|
||||
#include "postregister-odb.hxx"
|
||||
#include "importprogressform.h"
|
||||
|
||||
ImportDialog::ImportDialog(QWidget *parent) :
|
||||
QDialog(parent),
|
||||
ui(new Ui::ImportDialog)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
}
|
||||
|
||||
ImportDialog::~ImportDialog()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void ImportDialog::on_buttonBox_accepted()
|
||||
{
|
||||
QString fileName = ui->editFile->text();
|
||||
Service<PostData> service;
|
||||
PostData pd;
|
||||
CsvImporter importer(pd.metaObject());
|
||||
|
||||
importer.setImportFile(fileName);
|
||||
importer.setSeparator(ui->editSparator->text());
|
||||
|
||||
ImportProgressForm *progress = new ImportProgressForm();
|
||||
progress->move(QApplication::desktop()->screen()->rect().center() - progress->rect().center());
|
||||
progress->setWindowModality(Qt::ApplicationModal);
|
||||
progress->show();
|
||||
service.importData(&importer, progress);
|
||||
}
|
||||
|
||||
void ImportDialog::on_btnFile_clicked()
|
||||
{
|
||||
QString file = QFileDialog::getOpenFileName(this, tr("Import file"), "", tr("All Files (*.*)"));
|
||||
ui->editFile->setText(file);
|
||||
}
|
@ -0,0 +1,27 @@
|
||||
#ifndef IMPORTDIALOG_H
|
||||
#define IMPORTDIALOG_H
|
||||
|
||||
#include <QDialog>
|
||||
|
||||
namespace Ui {
|
||||
class ImportDialog;
|
||||
}
|
||||
|
||||
class ImportDialog : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit ImportDialog(QWidget *parent = 0);
|
||||
~ImportDialog();
|
||||
|
||||
private slots:
|
||||
void on_buttonBox_accepted();
|
||||
|
||||
void on_btnFile_clicked();
|
||||
|
||||
private:
|
||||
Ui::ImportDialog *ui;
|
||||
};
|
||||
|
||||
#endif // IMPORTDIALOG_H
|
@ -0,0 +1,122 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>ImportDialog</class>
|
||||
<widget class="QDialog" name="ImportDialog">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>518</width>
|
||||
<height>152</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Dialog</string>
|
||||
</property>
|
||||
<layout class="QFormLayout" name="formLayout">
|
||||
<property name="horizontalSpacing">
|
||||
<number>10</number>
|
||||
</property>
|
||||
<property name="verticalSpacing">
|
||||
<number>10</number>
|
||||
</property>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>CSV file</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QWidget" name="widget" native="true">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<property name="spacing">
|
||||
<number>3</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="editFile"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="btnFile">
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0" colspan="2">
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>Field separator</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QLineEdit" name="editSparator">
|
||||
<property name="text">
|
||||
<string>;</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>accepted()</signal>
|
||||
<receiver>ImportDialog</receiver>
|
||||
<slot>accept()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>248</x>
|
||||
<y>254</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>157</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>rejected()</signal>
|
||||
<receiver>ImportDialog</receiver>
|
||||
<slot>reject()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>316</x>
|
||||
<y>260</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>286</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
</ui>
|
@ -0,0 +1,34 @@
|
||||
#include "importprogressform.h"
|
||||
#include "ui_importprogressform.h"
|
||||
|
||||
ImportProgressForm::ImportProgressForm(QWidget *parent) :
|
||||
QWidget(parent),
|
||||
ui(new Ui::ImportProgressForm)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
ui->progressBar->setRange(0, 100);
|
||||
ui->progressBar->setValue(0);
|
||||
|
||||
m_terminate = false;
|
||||
}
|
||||
|
||||
ImportProgressForm::~ImportProgressForm()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void ImportProgressForm::on_btnCancel_clicked()
|
||||
{
|
||||
m_terminate = true;
|
||||
this->close();
|
||||
}
|
||||
|
||||
void ImportProgressForm::updateProgress(int currentPos)
|
||||
{
|
||||
ui->progressBar->setValue(currentPos);
|
||||
}
|
||||
|
||||
bool ImportProgressForm::terminate()
|
||||
{
|
||||
return m_terminate;
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
#ifndef IMPORTPROGRESSFORM_H
|
||||
#define IMPORTPROGRESSFORM_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <iimportprogress.h>
|
||||
|
||||
namespace Ui {
|
||||
class ImportProgressForm;
|
||||
}
|
||||
|
||||
class ImportProgressForm : public QWidget, public IImportProgress
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit ImportProgressForm(QWidget *parent = 0);
|
||||
~ImportProgressForm();
|
||||
|
||||
private slots:
|
||||
void on_btnCancel_clicked();
|
||||
|
||||
private:
|
||||
Ui::ImportProgressForm *ui;
|
||||
bool m_terminate;
|
||||
|
||||
// IImportProgress interface
|
||||
public:
|
||||
void updateProgress(int currentPos);
|
||||
bool terminate();
|
||||
};
|
||||
|
||||
#endif // IMPORTPROGRESSFORM_H
|
@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>ImportProgressForm</class>
|
||||
<widget class="QWidget" name="ImportProgressForm">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>369</width>
|
||||
<height>134</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QProgressBar" name="progressBar">
|
||||
<property name="value">
|
||||
<number>24</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btnCancel">
|
||||
<property name="text">
|
||||
<string>Cancel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
@ -0,0 +1,18 @@
|
||||
#include "postregister.h"
|
||||
|
||||
#include "postregistergrid.h"
|
||||
|
||||
PostRegister::PostRegister()
|
||||
{
|
||||
}
|
||||
|
||||
void PostRegister::initServiceUi()
|
||||
{
|
||||
m_service = new Service<PostData>();
|
||||
m_ui = new PostRegisterGrid();
|
||||
}
|
||||
|
||||
bool PostRegister::showIcon()
|
||||
{
|
||||
return false;
|
||||
}
|
@ -0,0 +1,26 @@
|
||||
#ifndef POSTREGISTER_H
|
||||
#define POSTREGISTER_H
|
||||
|
||||
#include "postregister_global.h"
|
||||
#include <QObject>
|
||||
#include <imetadataplugin.h>
|
||||
|
||||
class POSTREGISTERSHARED_EXPORT PostRegister : public QObject, IMetaDataPlugin
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
Q_PLUGIN_METADATA(IID PluginInterface_iid FILE "postregister.json")
|
||||
Q_INTERFACES(IPlugin)
|
||||
public:
|
||||
PostRegister();
|
||||
|
||||
// IMetaDataPlugin interface
|
||||
protected:
|
||||
void initServiceUi();
|
||||
|
||||
// IPlugin interface
|
||||
public:
|
||||
bool showIcon();
|
||||
};
|
||||
|
||||
#endif // POSTREGISTER_H
|
@ -0,0 +1,34 @@
|
||||
{
|
||||
"id" : "POSTREGISTER",
|
||||
"name" : {
|
||||
"default" : "Post register",
|
||||
"CZ" : "Číselník PSČ"
|
||||
},
|
||||
"descriptoin" : {
|
||||
"default" : "",
|
||||
"CZ" : ""
|
||||
},
|
||||
"schemaVersion" : 1,
|
||||
"sql" : [
|
||||
"CREATE TABLE \"PostData\" (
|
||||
\"id\" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||
\"townPart\" TEXT NULL,
|
||||
\"zipCode\" TEXT NULL,
|
||||
\"postName\" TEXT NULL,
|
||||
\"code\" TEXT NULL,
|
||||
\"township\" TEXT NULL,
|
||||
\"town\" TEXT NULL);
|
||||
"
|
||||
],
|
||||
"dependencies" : [ ],
|
||||
"translations" : {
|
||||
"CZ" : {
|
||||
"townPart" : "Část obce",
|
||||
"zipCode" : "PSČ",
|
||||
"postName" : "Pošta",
|
||||
"code" : "Kód",
|
||||
"township" : "Okres",
|
||||
"town" : "Obec"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,52 @@
|
||||
#-------------------------------------------------
|
||||
#
|
||||
# Project created by QtCreator 2017-04-21T08:14:36
|
||||
#
|
||||
#-------------------------------------------------
|
||||
|
||||
QT += widgets sql
|
||||
|
||||
TARGET = postregister
|
||||
TEMPLATE = lib
|
||||
|
||||
DEFINES += POSTREGISTER_LIBRARY
|
||||
|
||||
# The following define makes your compiler emit warnings if you use
|
||||
# any feature of Qt which as been marked as deprecated (the exact warnings
|
||||
# depend on your compiler). Please consult the documentation of the
|
||||
# deprecated API in order to know how to port your code away from it.
|
||||
DEFINES += QT_DEPRECATED_WARNINGS
|
||||
|
||||
# You can also make your code fail to compile if you use deprecated APIs.
|
||||
# In order to do so, uncomment the following line.
|
||||
# You can also select to disable deprecated APIs only up to a certain version of Qt.
|
||||
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
|
||||
|
||||
SOURCES += postregister.cpp \
|
||||
data/postdata.cpp \
|
||||
postregistergrid.cpp \
|
||||
importdialog.cpp \
|
||||
importprogressform.cpp
|
||||
|
||||
HEADERS += postregister.h\
|
||||
postregister_global.h \
|
||||
data/postdata.h \
|
||||
postregistergrid.h \
|
||||
importdialog.h \
|
||||
importprogressform.h
|
||||
|
||||
include(../config_plugin.pri)
|
||||
|
||||
ODB_FILES = postregister/data/postdata.h
|
||||
H_DIR = $$PWD/data/*.h
|
||||
include(../odb.pri)
|
||||
|
||||
DISTFILES += \
|
||||
postregister.json
|
||||
|
||||
FORMS += \
|
||||
importdialog.ui \
|
||||
importprogressform.ui
|
||||
|
||||
RESOURCES += \
|
||||
postregisterrc.qrc
|
@ -0,0 +1,12 @@
|
||||
#ifndef POSTREGISTER_GLOBAL_H
|
||||
#define POSTREGISTER_GLOBAL_H
|
||||
|
||||
#include <QtCore/qglobal.h>
|
||||
|
||||
#if defined(POSTREGISTER_LIBRARY)
|
||||
# define POSTREGISTERSHARED_EXPORT Q_DECL_EXPORT
|
||||
#else
|
||||
# define POSTREGISTERSHARED_EXPORT Q_DECL_IMPORT
|
||||
#endif
|
||||
|
||||
#endif // POSTREGISTER_GLOBAL_H
|
@ -0,0 +1,45 @@
|
||||
#include "postregistergrid.h"
|
||||
#include <QHBoxLayout>
|
||||
#include <QToolButton>
|
||||
|
||||
#include "postregister-odb.hxx"
|
||||
#include "importdialog.h"
|
||||
|
||||
PostRegisterGrid::PostRegisterGrid(QWidget *parent)
|
||||
:GridForm<PostData>(parent)
|
||||
{
|
||||
setTableModel(new AutoTableModel<PostData>());
|
||||
QHBoxLayout *tbLayout = qobject_cast<QHBoxLayout*>(this->toolbar()->layout());
|
||||
|
||||
if (tbLayout != NULL)
|
||||
{
|
||||
QToolButton *btnImport = new QToolButton(this->toolbar());
|
||||
btnImport->setIcon(QIcon(":/icons/import.svg"));
|
||||
btnImport->setAutoRaise(true);
|
||||
btnImport->setIconSize(QSize(24, 24));
|
||||
btnImport->setToolTip(tr("Import"));
|
||||
tbLayout->insertWidget(tbLayout->count() - 1, btnImport);
|
||||
|
||||
connect(btnImport, &QToolButton::clicked, [this](){
|
||||
ImportDialog *dlg = new ImportDialog(this);
|
||||
dlg->setAttribute(Qt::WA_DeleteOnClose);
|
||||
|
||||
dlg->show();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
bool PostRegisterGrid::canAddRecord()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool PostRegisterGrid::canEditRecord()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool PostRegisterGrid::canDeleteRecord()
|
||||
{
|
||||
return false;
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
#ifndef POSTREGISTERGRID_H
|
||||
#define POSTREGISTERGRID_H
|
||||
|
||||
#include <core.h>
|
||||
#include "data/postdata.h"
|
||||
|
||||
class PostRegisterGrid : public GridForm<PostData>
|
||||
{
|
||||
public:
|
||||
PostRegisterGrid(QWidget *parent = NULL);
|
||||
|
||||
// IGridForm interface
|
||||
protected:
|
||||
bool canAddRecord();
|
||||
bool canEditRecord();
|
||||
bool canDeleteRecord();
|
||||
};
|
||||
|
||||
#endif // POSTREGISTERGRID_H
|
@ -0,0 +1,5 @@
|
||||
<RCC>
|
||||
<qresource prefix="/">
|
||||
<file>icons/import.svg</file>
|
||||
</qresource>
|
||||
</RCC>
|
Loading…
Reference in New Issue