Back to index

fet  5.18.0
timetableprintform.h
Go to the documentation of this file.
00001 /***************************************************************************
00002                                 FET
00003                           -------------------
00004    copyright             : (C) by Liviu Lalescu, Volker Dirr
00005     email                : Liviu Lalescu: see http://lalescu.ro/liviu/ , Volker Dirr: see http://www.timetabling.de/
00006  ***************************************************************************
00007                           timetableprintform.h  -  description
00008                              -------------------
00009     begin                : March 2010
00010     copyright            : (C) by Volker Dirr
00011                          : http://www.timetabling.de/
00012  ***************************************************************************
00013  *                                                                         *
00014  *   This program is free software; you can redistribute it and/or modify  *
00015  *   it under the terms of the GNU General Public License as published by  *
00016  *   the Free Software Foundation; either version 2 of the License, or     *
00017  *   (at your option) any later version.                                   *
00018  *                                                                         *
00019  ***************************************************************************/
00020 
00021 #ifndef TIMETABLEPRINTFORM_H
00022 #define TIMETABLEPRINTFORM_H
00023 
00024 #include <QObject>
00025 #include <QList>
00026 
00027 #include <QTextDocument> //maybe better TextEdit, so you can also edit?!
00028 #include <QSpinBox>
00029 #include <QDialog>
00030 
00031 class QTableWidget;
00032 class QRadioButton;
00033 class QCheckBox;
00034 class QPushButton;
00035 class QTableWidgetItem;
00036 class QComboBox;
00037 class QGroupBox;
00038 class QToolButton;
00039 class QSizePolicy;
00040 class QListWidget;
00041 
00042 class StartTimetablePrint: public QObject{
00043        Q_OBJECT
00044 
00045 public:
00046        StartTimetablePrint();
00047        ~StartTimetablePrint();
00048 
00049        static void startTimetablePrint(QWidget* parent);
00050 };
00051 
00052 class TimetablePrintForm: public QDialog{
00053        Q_OBJECT
00054        
00055 public:
00056        TimetablePrintForm(QWidget* parent);
00057        ~TimetablePrintForm();
00058 
00059 private:
00060        QTextDocument *textDocument;
00061 
00062        QComboBox* CBTables;
00063        QListWidget* namesList;
00064        QPushButton* pbSelectAll;
00065        QPushButton* pbUnselectAll;
00066 
00067        QGroupBox* actionsBox;
00068        QRadioButton* RBDaysHorizontal;
00069        QRadioButton* RBDaysVertical;
00070        QRadioButton* RBTimeHorizontal;
00071        QRadioButton* RBTimeVertical;
00072        //By Liviu Lalescu - unused anymore
00073        //QCheckBox* CBDivideTimeAxisByDay;
00074        QRadioButton* RBTimeHorizontalDay;
00075        QRadioButton* RBTimeVerticalDay;
00076 
00077        QGroupBox* optionsBox;
00078        QComboBox* CBBreak;
00079        QComboBox* CBWhiteSpace;
00080 //     QComboBox* CBprinterMode;
00081        QComboBox* CBpaperSize;
00082        QComboBox* CBorientationMode;
00083        QSpinBox* activitiesPadding;
00084        QSpinBox* tablePadding;
00085        QSpinBox* fontSizeTable;
00086        QSpinBox* maxNames;
00087        
00088        QSpinBox* leftPageMargin;
00089        QSpinBox* topPageMargin;
00090        QSpinBox* rightPageMargin;
00091        QSpinBox* bottomPageMargin;
00092        
00093 //     QCheckBox* markNotAvailable;
00094 //     QCheckBox* markBreak;
00095 //     QCheckBox* printSameStartingTime;
00096        QCheckBox* printDetailedTables;
00097        QCheckBox* printActivityTags;      //TODO: to this with combo box: "always", "never", "if available".
00098                                                                //maybe TODO: do it similar with students, teachers, rooms, ...
00099        QPushButton* pbPrintPreviewSmall;
00100        QPushButton* pbPrintPreviewFull;
00101        QPushButton* pbPrint;
00102        
00103        QPushButton* pbClose;
00104 
00105 private slots:
00106        void selectAll();
00107        void unselectAll();
00108 
00109        void updateNamesList();
00110        void updateHTMLprintString(bool printAll);
00111        
00112        //void updateCBDivideTimeAxisByDay();
00113 
00114        void print();
00115        void printPreviewFull();
00116        void updatePreviewFull(QPrinter* printer);
00117        void printPreviewSmall();
00118        void updatePreviewSmall(QPrinter* printer);
00119 };
00120 
00121 #endif