00001 #ifndef COSTTYPETAB_H
00002 #define COSTTYPETAB_H
00003
00004 #include "mainwindow.h"
00005 #include "../Dialogs/owncapitalcalculationdialog.h"
00006 #include "../Models/costpositionmodel.h"
00007 #include "../Models/costpositionfiltermodel.h"
00008
00009 #include "ui_CostTypeTab.h"
00010 #include "ui_WidgetAcceptCosts.h"
00011 #include "ui_WidgetCompleteCosts.h"
00012 #include "ui_WidgetDelimitAmount.h"
00013 #include "ui_WidgetNormalize.h"
00014 #include "ui_WidgetReassess.h"
00015 #include "ui_WidgetWages.h"
00016
00017 class QMdiArea;
00018 class CostPositionItem;
00019 class WidgetAcceptCosts;
00020 class WidgetCompleteCosts;
00021 class WidgetDelimitAmount;
00022 class WidgetNormalize;
00023 class WidgetReassess;
00024 class WidgetWages;
00025 class CostPositionProxyModel;
00026 class CostTypeModel;
00027
00028 class CostTypeTab : public QWidget, private Ui::CostTypeTab
00029 {
00030 Q_OBJECT;
00031
00032 public:
00033 CostTypeTab(QMdiArea *mdiarea, QWidget *parent = 0);
00034 QDomElement userCategories() const;
00035 QModelIndex getIndexOfPosition(QString name);
00036 void readCostPositions();
00037
00038
00039 WidgetCompleteCosts *groupBoxCompleteCosts;
00040
00041 public slots:
00042 void clearEntries(bool clearEntries = true);
00043 void enterEditPositionInformation(const CostTypeModel *model, const QModelIndexList affectedRows);
00044 void loadUserCategories(const QDomElement cat);
00045
00046 private slots:
00047 void categoryChanged(QModelIndex);
00048 void actionChanged(int c);
00049 void showNewPositionDialog();
00050 void showManagePositionsDialog();
00051 void setRevenues();
00052 void addOrEditPositionTable();
00053 void addPositionToTable();
00054 void editPosition();
00055 void wrongPermissionsCostTypePositions();
00056
00057 private:
00058 void createControls();
00059 void createActions();
00060 QString positionName();
00061
00062 CostPositionModel *costpositionmodel;
00063 CostPositionFilterModel *filter;
00064
00065 WidgetAcceptCosts *groupBoxAcceptCosts;
00066
00067 WidgetDelimitAmount *groupBoxDelimitAmount;
00068 WidgetNormalize *groupBoxNormalize;
00069 WidgetReassess *groupBoxReassess;
00070 WidgetWages *groupBoxWages;
00071
00072 QStringList splitUpInputString(QString input);
00073
00074 void getAllRowsAffected(CostTypeChild *window, QList<int> *affectedRows, int rowid);
00075
00076 QMdiArea *mdiArea;
00077
00078
00079 int sideBarIsReservedForEditingOfExistingRows;
00080 QModelIndexList selectedRowsForEditing;
00081
00082 };
00083
00084 class WidgetAcceptCosts : public QGroupBox, public Ui::WidgetAcceptCosts
00085 {
00086 Q_OBJECT;
00087 public:
00088 WidgetAcceptCosts(QGroupBox *parent = 0);
00089 };
00090
00091 class WidgetCompleteCosts : public QGroupBox, public Ui::WidgetCompleteCosts
00092 {
00093 Q_OBJECT;
00094 public:
00095 WidgetCompleteCosts(QGroupBox *parent = 0);
00096 private:
00097 void createActions();
00098
00099 private slots:
00100 void interestTypeChanged(int type);
00101
00102 signals:
00103 void showOwnCapitalCalculationDialog();
00104 };
00105
00106 class WidgetDelimitAmount : public QGroupBox, public Ui::WidgetDelimitAmount
00107 {
00108 Q_OBJECT;
00109 public:
00110 WidgetDelimitAmount(QGroupBox *parent = 0);
00111 };
00112
00113 class WidgetNormalize : public QGroupBox, public Ui::WidgetNormalize
00114 {
00115 Q_OBJECT;
00116 public:
00117 WidgetNormalize(QGroupBox *parent = 0);
00118 };
00119
00120 class WidgetReassess : public QGroupBox, public Ui::WidgetReassess
00121 {
00122 Q_OBJECT;
00123 public:
00124 WidgetReassess(QGroupBox *parent = 0);
00125 private:
00126 void createActions();
00127 private slots:
00128 void valueRadioChanged(bool s);
00129 void indexRadioChanged(bool s);
00130 };
00131
00132 class WidgetWages : public QGroupBox, public Ui::WidgetWages
00133 {
00134 Q_OBJECT;
00135 public:
00136 WidgetWages(QGroupBox *parent = 0);
00137 };
00138
00139 #endif