00001 #ifndef PRICECOMPARISONCHILD_H 00002 #define PRICECOMPARISONCHILD_H 00003 00004 00005 #include <QTableView> 00006 #include <QDomDocument> 00007 #include <QPushButton> 00008 00009 #include "childwindow.h" 00010 #include "../Models/abstractmodel.h" 00011 #include "../Models/documentchoosermodel.h" 00012 #include "../Models/costunitmodel.h" 00013 #include "../Views/piechartview.h" 00014 00015 QT_BEGIN_NAMESPACE 00016 class QLabel; 00017 class QSortFilterProxyModel; 00018 class QItemSelectionModel; 00019 class QGridLayout; 00020 QT_END_NAMESPACE 00021 00022 class Settings; 00023 00024 class ChooseProductButton : public QPushButton 00025 { 00026 Q_OBJECT; 00027 00028 public: 00029 ChooseProductButton(int id, QString text, QWidget *parent = 0); 00030 void setIndex(int gridIndex); 00031 00032 public slots: 00033 void clickedWithID(); 00034 00035 private: 00036 int id; 00037 00038 signals: 00039 void clickedInclID(int); 00040 00041 }; 00042 00043 class PriceComparisonChild : public ChildWindow 00044 { 00045 Q_OBJECT 00046 00047 public: 00048 PriceComparisonChild(Settings &set); 00049 00050 void setDocumentInfoModel(AbstractModel *model); 00051 void setModelList(DocumentChooserModel *m); 00052 00053 bool loadDocument(const QDomElement fileName); 00054 QDomElement saveDocumentNodes(); 00055 00056 QGridLayout *grid; 00057 00058 public slots: 00059 void createProductComparisonView(); 00060 void recalculateShownProducts(); 00061 void chooseProductDialog(int id); 00062 void documentSelected(DocumentItem callByValueItem, int id, QString name, QDomElement file); 00063 00064 private: 00065 void createControls(); 00066 DocumentItem* referenceFromItem(DocumentItem callByValueItem); 00067 00068 bool maybeSave(); 00069 00070 void createComparisonView(); 00071 00072 Settings *settings; 00073 00074 AbstractModel *fileInfo; 00075 00076 // products shown in the comparison 00077 QList<CostUnitModel*> products; 00078 00079 // reference to all models of the project -- from MainWindow 00080 DocumentChooserModel *modelList; 00081 00082 protected: 00083 void closeEvent(QCloseEvent *event); 00084 }; 00085 00086 #endif