Added base classes for plugin UI.
parent
07bb708437
commit
02c5bbe788
@ -0,0 +1,14 @@
|
||||
#include "accgrid.h"
|
||||
|
||||
#include "tablemodel.h"
|
||||
|
||||
AccGrid::AccGrid(QWidget *parent) :
|
||||
GridForm<Person>(parent)
|
||||
{
|
||||
setTableModel(new TableModel());
|
||||
}
|
||||
|
||||
AccGrid::~AccGrid()
|
||||
{
|
||||
}
|
||||
|
@ -0,0 +1,18 @@
|
||||
#ifndef ACCGRID_H
|
||||
#define ACCGRID_H
|
||||
|
||||
#include <core.h>
|
||||
#include "data/person.h"
|
||||
|
||||
#include "accommodation-odb.hxx"
|
||||
|
||||
class AccGrid : public GridForm<Person>
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit AccGrid(QWidget *parent = NULL);
|
||||
~AccGrid();
|
||||
};
|
||||
|
||||
#endif // ACCGRID_H
|
@ -1,47 +0,0 @@
|
||||
#include "accommodationform.h"
|
||||
#include "ui_accommodationform.h"
|
||||
|
||||
#include <core.h>
|
||||
#include <autotablemodel.h>
|
||||
|
||||
#include "dialog.h"
|
||||
#include "data/person.h"
|
||||
|
||||
#include "tablemodel.h"
|
||||
|
||||
#include "accommodation-odb.hxx"
|
||||
|
||||
AccommodationForm::AccommodationForm(QWidget *parent) :
|
||||
QWidget(parent),
|
||||
ui(new Ui::AccommodationForm)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
}
|
||||
|
||||
AccommodationForm::~AccommodationForm()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void AccommodationForm::fillGrid()
|
||||
{
|
||||
Service<Person> service;
|
||||
TableModel *model = qobject_cast<TableModel*>(ui->tableView->model());
|
||||
|
||||
if (model == NULL) {
|
||||
model = new TableModel();
|
||||
}
|
||||
|
||||
model->setData(service.all());
|
||||
ui->tableView->setModel(model);
|
||||
}
|
||||
|
||||
void AccommodationForm::on_pushButton_clicked()
|
||||
{
|
||||
Dialog *d = new Dialog();
|
||||
if (ui->tableView->model()->rowCount() > 0)
|
||||
{
|
||||
d->setData(((TableModel*)ui->tableView->model())->itemFromIndex(ui->tableView->currentIndex()));
|
||||
}
|
||||
d->open();
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
#ifndef ACCOMMODATIONFORM_H
|
||||
#define ACCOMMODATIONFORM_H
|
||||
|
||||
#include <QWidget>
|
||||
|
||||
namespace Ui {
|
||||
class AccommodationForm;
|
||||
}
|
||||
|
||||
class AccommodationForm : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit AccommodationForm(QWidget *parent = 0);
|
||||
~AccommodationForm();
|
||||
|
||||
void fillGrid();
|
||||
|
||||
private slots:
|
||||
void on_pushButton_clicked();
|
||||
|
||||
private:
|
||||
Ui::AccommodationForm *ui;
|
||||
};
|
||||
|
||||
#endif // ACCOMMODATIONFORM_H
|
@ -1,41 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>AccommodationForm</class>
|
||||
<widget class="QWidget" name="AccommodationForm">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>828</width>
|
||||
<height>548</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QPushButton" name="pushButton">
|
||||
<property name="text">
|
||||
<string>PushButton</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QTableView" name="tableView">
|
||||
<property name="selectionMode">
|
||||
<enum>QAbstractItemView::SingleSelection</enum>
|
||||
</property>
|
||||
<property name="selectionBehavior">
|
||||
<enum>QAbstractItemView::SelectRows</enum>
|
||||
</property>
|
||||
<property name="sortingEnabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
@ -1,44 +0,0 @@
|
||||
#include "dialog.h"
|
||||
#include "ui_dialog.h"
|
||||
|
||||
#include <core.h>
|
||||
|
||||
#include "data/person.h"
|
||||
#include "accommodationservice.h"
|
||||
|
||||
#include "acform.h"
|
||||
|
||||
#include "accommodation-odb.hxx"
|
||||
|
||||
Dialog::Dialog(QWidget *parent) :
|
||||
QDialog(parent),
|
||||
ui(new Ui::Dialog)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
}
|
||||
|
||||
Dialog::~Dialog()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void Dialog::setData(QSharedPointer<Person> data)
|
||||
{
|
||||
m_data = data;
|
||||
|
||||
AcForm *form = new AcForm(this);
|
||||
form->setEntity(data);
|
||||
ui->verticalLayout->addWidget(form);
|
||||
}
|
||||
|
||||
void Dialog::on_buttonBox_accepted()
|
||||
{
|
||||
IPlugin *plugin = Context::instance().plugins().at(0);
|
||||
QSharedPointer<Person> p(new Person());
|
||||
|
||||
p->setFirstName(ui->lineEdit->text());
|
||||
p->setLastName(ui->lineEdit_2->text());
|
||||
|
||||
AccommodationService *service = (AccommodationService*)plugin->service<Person>();
|
||||
service->pokus(p);
|
||||
}
|
@ -1,31 +0,0 @@
|
||||
#ifndef DIALOG_H
|
||||
#define DIALOG_H
|
||||
|
||||
#include <QDialog>
|
||||
#include <QSharedPointer>
|
||||
|
||||
#include "data/person.h"
|
||||
|
||||
namespace Ui {
|
||||
class Dialog;
|
||||
}
|
||||
|
||||
class Dialog : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit Dialog(QWidget *parent = 0);
|
||||
~Dialog();
|
||||
|
||||
void setData(QSharedPointer<Person> data);
|
||||
|
||||
private slots:
|
||||
void on_buttonBox_accepted();
|
||||
|
||||
private:
|
||||
Ui::Dialog *ui;
|
||||
QSharedPointer<Person> m_data;
|
||||
};
|
||||
|
||||
#endif // DIALOG_H
|
@ -1,99 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>Dialog</class>
|
||||
<widget class="QDialog" name="Dialog">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>544</width>
|
||||
<height>444</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Dialog</string>
|
||||
</property>
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>30</x>
|
||||
<y>340</y>
|
||||
<width>341</width>
|
||||
<height>32</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>180</x>
|
||||
<y>40</y>
|
||||
<width>113</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="lineEdit_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>180</x>
|
||||
<y>90</y>
|
||||
<width>113</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QWidget" name="verticalLayoutWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>60</x>
|
||||
<y>130</y>
|
||||
<width>421</width>
|
||||
<height>191</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout"/>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>accepted()</signal>
|
||||
<receiver>Dialog</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>Dialog</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>
|
@ -1,13 +1,13 @@
|
||||
#ifndef COREDATA_H
|
||||
#define COREDATA_H
|
||||
|
||||
class User;
|
||||
class Permission;
|
||||
class Role;
|
||||
|
||||
#include "user.h"
|
||||
#include "role.h"
|
||||
#include "permission.h"
|
||||
|
||||
#endif // COREDATA_H
|
||||
|
||||
#ifndef COREDATA_H
|
||||
#define COREDATA_H
|
||||
|
||||
class User;
|
||||
class Permission;
|
||||
class Role;
|
||||
|
||||
#include "user.h"
|
||||
#include "role.h"
|
||||
#include "permission.h"
|
||||
|
||||
#endif // COREDATA_H
|
||||
|
||||
|
@ -0,0 +1,19 @@
|
||||
#include "defaultformhandler.h"
|
||||
|
||||
DefaultFormHandler::DefaultFormHandler()
|
||||
{
|
||||
m_dialog = new FormDialog();
|
||||
}
|
||||
|
||||
DefaultFormHandler::~DefaultFormHandler()
|
||||
{
|
||||
delete m_dialog;
|
||||
}
|
||||
|
||||
void DefaultFormHandler::showForm(IForm *formWidget)
|
||||
{
|
||||
m_dialog->setForm(formWidget);
|
||||
m_dialog->setModal(true);
|
||||
m_dialog->show();
|
||||
}
|
||||
|
@ -0,0 +1,32 @@
|
||||
#ifndef DEFAULTFORMHANDLER_H
|
||||
#define DEFAULTFORMHANDLER_H
|
||||
|
||||
#include "formdialog.h"
|
||||
#include "iform.h"
|
||||
|
||||
#include "core_global.h"
|
||||
|
||||
class CORESHARED_EXPORT IFormHandler
|
||||
{
|
||||
public:
|
||||
IFormHandler() {}
|
||||
virtual ~IFormHandler() {}
|
||||
|
||||
virtual void showForm(IForm *formWidget) = 0;
|
||||
};
|
||||
|
||||
class DefaultFormHandler : public IFormHandler
|
||||
{
|
||||
public:
|
||||
DefaultFormHandler();
|
||||
virtual ~DefaultFormHandler();
|
||||
|
||||
private:
|
||||
FormDialog *m_dialog;
|
||||
|
||||
// IFormHandler interface
|
||||
public:
|
||||
void showForm(IForm *formWidget) override;
|
||||
};
|
||||
|
||||
#endif // DEFAULTFORMHANDLER_H
|
@ -0,0 +1,31 @@
|
||||
#include "formdialog.h"
|
||||
#include "ui_formdialog.h"
|
||||
|
||||
FormDialog::FormDialog(QWidget *parent) :
|
||||
QDialog(parent),
|
||||
ui(new Ui::FormDialog)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
m_formSet = false;
|
||||
m_form = NULL;
|
||||
}
|
||||
|
||||
FormDialog::~FormDialog()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void FormDialog::setForm(IForm *formWidget)
|
||||
{
|
||||
if (m_form == NULL)
|
||||
{
|
||||
ui->verticalLayout->addWidget(formWidget);
|
||||
m_form = formWidget;
|
||||
setGeometry(formWidget->geometry());
|
||||
}
|
||||
}
|
||||
|
||||
void FormDialog::on_buttonBox_accepted()
|
||||
{
|
||||
m_form->saveRecord();
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
#ifndef FORMDIALOG_H
|
||||
#define FORMDIALOG_H
|
||||
|
||||
#include <QDialog>
|
||||
#include <QWidget>
|
||||
|
||||
#include "iform.h"
|
||||
|
||||
namespace Ui {
|
||||
class FormDialog;
|
||||
}
|
||||
|
||||
class FormDialog : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit FormDialog(QWidget *parent = 0);
|
||||
~FormDialog();
|
||||
|
||||
void setForm(IForm *formWidget);
|
||||
|
||||
private slots:
|
||||
void on_buttonBox_accepted();
|
||||
|
||||
private:
|
||||
bool m_formSet;
|
||||
IForm *m_form;
|
||||
Ui::FormDialog *ui;
|
||||
};
|
||||
|
||||
#endif // FORMDIALOG_H
|
@ -0,0 +1,79 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>FormDialog</class>
|
||||
<widget class="QDialog" name="FormDialog">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>543</width>
|
||||
<height>383</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Dialog</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<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>9</number>
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout"/>
|
||||
</item>
|
||||
<item>
|
||||
<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>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>accepted()</signal>
|
||||
<receiver>FormDialog</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>FormDialog</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,124 @@
|
||||
#ifndef GRIDFORM_H
|
||||
#define GRIDFORM_H
|
||||
|
||||
#include <QWidget>
|
||||
|
||||
#include "autoform.h"
|
||||
#include "autotablemodel.h"
|
||||
#include "context.h"
|
||||
#include "iplugin.h"
|
||||
|
||||
#include "igridform.h"
|
||||
|
||||
template<class T>
|
||||
class GridForm : public IGridForm
|
||||
{
|
||||
|
||||
public:
|
||||
explicit GridForm(QWidget *parent = 0) :
|
||||
IGridForm(parent)
|
||||
{
|
||||
m_form = NULL;
|
||||
m_tableModel = NULL;
|
||||
m_formHandler = new DefaultFormHandler();
|
||||
}
|
||||
virtual ~GridForm()
|
||||
{
|
||||
delete m_formHandler;
|
||||
}
|
||||
|
||||
void setForm(AutoForm<T> *form) {
|
||||
Q_ASSERT(m_form == NULL);
|
||||
|
||||
m_form = form;
|
||||
//m_form->setParent(this);
|
||||
|
||||
connect(m_form, SIGNAL(recordAdded()), this, SLOT(saveNew()));
|
||||
connect(m_form, SIGNAL(recordUpdated()), this, SLOT(saveUpdate()));
|
||||
}
|
||||
|
||||
void setTableModel(AutoTableModel<T> *tableModel) {
|
||||
Q_ASSERT(m_tableModel == NULL);
|
||||
|
||||
m_tableModel = tableModel;
|
||||
}
|
||||
|
||||
void setFormHandler(IFormHandler *handler) {
|
||||
delete m_formHandler;
|
||||
m_formHandler = handler;
|
||||
}
|
||||
|
||||
public slots:
|
||||
void fillData() {
|
||||
if (m_tableModel == NULL) {
|
||||
Q_ASSERT(false);
|
||||
return;
|
||||
}
|
||||
|
||||
m_tableModel->setData(service()->all());
|
||||
tableView()->setModel(m_tableModel);
|
||||
}
|
||||
|
||||
protected slots:
|
||||
void saveNew() {
|
||||
service()->save(m_form->entity());
|
||||
m_tableModel->addRow(m_form->entity());
|
||||
emit dataChanged();
|
||||
}
|
||||
|
||||
void saveUpdate() {
|
||||
service()->update(m_form->entity());
|
||||
emit dataChanged();
|
||||
}
|
||||
|
||||
private:
|
||||
AutoForm<T> *m_form;
|
||||
AutoTableModel<T> *m_tableModel;
|
||||
IFormHandler *m_formHandler;
|
||||
|
||||
Service<T> *service() {
|
||||
IPlugin *plugin = Context::instance().plugin(pluginId());
|
||||
if (plugin == NULL) {
|
||||
Q_ASSERT(false);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Service<T> *service = plugin->service<T>();
|
||||
if (service == NULL) {
|
||||
Q_ASSERT(false);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return service;
|
||||
}
|
||||
|
||||
// IGridForm interface
|
||||
protected:
|
||||
void handleNewRecord() override
|
||||
{
|
||||
if (m_form == NULL)
|
||||
{
|
||||
Q_ASSERT(false);
|
||||
return;
|
||||
}
|
||||
|
||||
m_form->setEntity(QSharedPointer<T>(new T()));
|
||||
m_form->setNewRec(true);
|
||||
m_formHandler->showForm(m_form);
|
||||
}
|
||||
|
||||
void handleEditRecord() override
|
||||
{
|
||||
if (m_form == NULL || m_tableModel == NULL || tableView()->currentIndex().row() < 0)
|
||||
{
|
||||
Q_ASSERT(false);
|
||||
return;
|
||||
}
|
||||
|
||||
m_form->setEntity(m_tableModel->itemFromIndex(tableView()->currentIndex()));
|
||||
m_form->setNewRec(false);
|
||||
m_formHandler->showForm(m_form);
|
||||
}
|
||||
};
|
||||
|
||||
#endif // GRIDFORM_H
|
@ -0,0 +1,88 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>GridForm</class>
|
||||
<widget class="QWidget" name="GridForm">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>680</width>
|
||||
<height>480</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QWidget" name="widget" native="true">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QToolButton" name="btnNew">
|
||||
<property name="text">
|
||||
<string>N</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="btnEdit">
|
||||
<property name="text">
|
||||
<string>E</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="btnDelete">
|
||||
<property name="text">
|
||||
<string>D</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="btnFilter">
|
||||
<property name="text">
|
||||
<string>F</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="btnPrint">
|
||||
<property name="text">
|
||||
<string>P</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QTableView" name="tableView">
|
||||
<property name="selectionMode">
|
||||
<enum>QAbstractItemView::SingleSelection</enum>
|
||||
</property>
|
||||
<property name="selectionBehavior">
|
||||
<enum>QAbstractItemView::SelectRows</enum>
|
||||
</property>
|
||||
<property name="sortingEnabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
@ -0,0 +1,10 @@
|
||||
#include "iform.h"
|
||||
|
||||
IForm::IForm(QWidget *parent) : QWidget(parent)
|
||||
{
|
||||
}
|
||||
|
||||
IForm::~IForm()
|
||||
{
|
||||
}
|
||||
|
@ -0,0 +1,23 @@
|
||||
#ifndef IFORM_H
|
||||
#define IFORM_H
|
||||
|
||||
#include <QWidget>
|
||||
|
||||
class IForm : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit IForm(QWidget *parent = 0);
|
||||
virtual ~IForm();
|
||||
|
||||
signals:
|
||||
void recordAdded();
|
||||
void recordUpdated();
|
||||
void validationError(QString errMessage);
|
||||
|
||||
public slots:
|
||||
virtual bool saveRecord() = 0;
|
||||
};
|
||||
|
||||
#endif // IFORM_H
|
@ -0,0 +1,40 @@
|
||||
#include "igridform.h"
|
||||
|
||||
#include "ui_gridform.h"
|
||||
|
||||
IGridForm::IGridForm(QWidget *parent) :
|
||||
QWidget(parent),
|
||||
ui(new Ui::GridForm)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
}
|
||||
|
||||
IGridForm::~IGridForm()
|
||||
{
|
||||
}
|
||||
|
||||
void IGridForm::setPluginId(const QString &pluginId)
|
||||
{
|
||||
m_pluginId = pluginId;
|
||||
}
|
||||
|
||||
QString IGridForm::pluginId()
|
||||
{
|
||||
return m_pluginId;
|
||||
}
|
||||
|
||||
QTableView *IGridForm::tableView()
|
||||
{
|
||||
return ui->tableView;
|
||||
}
|
||||
|
||||
|
||||
void IGridForm::on_btnNew_clicked()
|
||||
{
|
||||
handleNewRecord();
|
||||
}
|
||||
|
||||
void IGridForm::on_btnEdit_clicked()
|
||||
{
|
||||
handleEditRecord();
|
||||
}
|
@ -0,0 +1,52 @@
|
||||
#ifndef IGRIDFORM_H
|
||||
#define IGRIDFORM_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <QString>
|
||||
#include <QTableView>
|
||||
|
||||
#include "defaultformhandler.h"
|
||||
#include "core_global.h"
|
||||
|
||||
namespace Ui {
|
||||
class GridForm;
|
||||
}
|
||||
|
||||
class CORESHARED_EXPORT IGridForm : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit IGridForm(QWidget *parent = 0);
|
||||
virtual ~IGridForm();
|
||||
|
||||
void setPluginId(const QString &pluginId);
|
||||
QString pluginId();
|
||||
QTableView *tableView();
|
||||
|
||||
signals:
|
||||
void dataChanged();
|
||||
|
||||
public slots:
|
||||
virtual void fillData() = 0;
|
||||
|
||||
protected slots:
|
||||
virtual void saveNew() = 0;
|
||||
virtual void saveUpdate() = 0;
|
||||
|
||||
protected:
|
||||
virtual void handleNewRecord() = 0;
|
||||
virtual void handleEditRecord() = 0;
|
||||
//virtual void handleDeleteRecord() = 0;
|
||||
|
||||
private slots:
|
||||
void on_btnNew_clicked();
|
||||
void on_btnEdit_clicked();
|
||||
|
||||
private:
|
||||
QString m_pluginId;
|
||||
IFormHandler *m_formHandler;
|
||||
Ui::GridForm *ui;
|
||||
};
|
||||
|
||||
#endif // IGRIDFORM_H
|
Loading…
Reference in New Issue