00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef KNODAMAINWINDOWBASE_H
00013 #define KNODAMAINWINDOWBASE_H
00014
00015 #include <qvariant.h>
00016 #include <qmainwindow.h>
00017 #include <qpopupmenu.h>
00018 #include <hk_classes.h>
00019 #include <qwidget.h>
00020 #include <qlistbox.h>
00021 #include <qdialog.h>
00022
00023 class QVBoxLayout;
00024 class QHBoxLayout;
00025 class QGridLayout;
00026 class QButtonGroup;
00027 class QLabel;
00028 class hk_listbox;
00029 class QListBoxItem;
00030 class QPushButton;
00031 class QRadioButton;
00032 class KAction;
00033 class KActionMenu;
00034 class QPopupMenu;
00035 class QProgressDialog;
00036 class hk_kdeschemadialog;
00037 class KMainWindow;
00038 class hk_kdeform;
00039 class hk_kdereport;
00040 class hk_kdetable;
00041 class hk_kdequery;
00042 class hk_kdeworkspace;
00043
00044 class knodamainwindowbase : public QWidget ,public hk_dsvisible
00045 {
00046 Q_OBJECT
00047
00048 public:
00049 knodamainwindowbase( KMainWindow* parent = 0, hk_kdeworkspace* ws=0,const char* name = 0, WFlags fl = 0,const QString& database="",const QString& form="" );
00050 virtual ~knodamainwindowbase();
00051 void set_connection(hk_connection* c);
00052 hk_connection* connection(void) {return p_connection;}
00053 hk_kdeworkspace* workspace() {return p_workspace;}
00054 hk_listbox* itemslist;
00055 QLabel* TextLabel1;
00056 QLabel* TextLabel1_2;
00057 QLabel* databasename;
00058 QButtonGroup* ButtonGroup2;
00059 QRadioButton* querybutton;
00060 QRadioButton* reportbutton;
00061 QRadioButton* tablebutton;
00062 QRadioButton* viewbutton;
00063 QRadioButton* formbutton;
00064 QRadioButton* databasebutton;
00065 QButtonGroup* ButtonGroup3;
00066 QPushButton* newbutton;
00067 QPushButton* startbutton;
00068 QPushButton* alterbutton;
00069 QPushButton* deletebutton;
00070 QPopupMenu* popupmenu(void);
00071
00072 public slots:
00073 virtual void alter_clicked();
00074 virtual void delete_clicked();
00075 virtual void function_select(int);
00076 virtual void function_select(void);
00077 virtual void itemslist_doubleclicked();
00078 virtual void new_clicked();
00079 virtual void start_clicked();
00080 virtual void rename_clicked();
00081 virtual void importcsv_clicked();
00082 virtual void exportcsv_clicked();
00083 virtual void exportxml_clicked();
00084 virtual void itemslist_clicked(QListBoxItem*);
00085 virtual void newpassworddialog_selected(void);
00086 virtual void copy_clicked(void);
00087 virtual void paste_clicked(void);
00088 virtual void clipboarddata_has_changed(void);
00089 virtual void databasesettings_clicked(void);
00090 virtual void objecthandler_clicked(void);
00091
00092 protected:
00093 QHBoxLayout* knodamainwindowbaseLayout;
00094 QGridLayout* Layout8;
00095 QVBoxLayout* Layout3;
00096 QVBoxLayout* ButtonGroup3Layout;
00097 QVBoxLayout* ButtonGroup2Layout;
00098 hk_connection* p_connection;
00099 hk_database* p_database;
00100 virtual void list_changes(listtype type);
00101 bool eventFilter(QObject*,QEvent*);
00102 private:
00103 void set_buttons();
00104 void set_databasebuttons();
00105 void set_tablebuttons();
00106 void set_querybuttons();
00107 void set_formbuttons();
00108 void set_reportbuttons();
00109 void set_minimalbuttons();
00110 void set_normalbuttons();
00111 hk_kdeform* new_form(void);
00112 hk_kdereport* new_report(void);
00113 hk_kdetable* new_table(void);
00114 hk_kdequery* new_query(void);
00115 hk_kdequery* new_view(void);
00116 QString p_databasestring;
00117 QString p_sdatabasestring;
00118 QString p_tablestring;
00119 QString p_sviewstring;
00120 QString p_viewstring;
00121 QString p_querystring;
00122 QString p_formstring;
00123 QString p_reportstring;
00124 QString p_stablestring;
00125 QString p_squerystring;
00126 QString p_sformstring;
00127 QString p_sreportstring;
00128
00129 KAction* p_newaction;
00130 KAction* p_alteraction;
00131 KAction* p_startaction;
00132 KAction* p_deleteaction;
00133 KAction* p_copyaction;
00134 KAction* p_pasteaction;
00135 KAction* p_renameaction;
00136 KActionMenu* p_exportaction;
00137 KAction* p_exportcsvaction;
00138 KAction* p_exportxmlaction;
00139 KActionMenu* p_importaction;
00140 KAction* p_importcsvaction;
00141 KAction* p_databasesettingaction;
00142 KAction* p_objecthandleraction;
00143 KAction* p_passwordaction;
00144 QPopupMenu* p_popup;
00145 QString p_selecteddb;
00146 QString p_selectedform;
00147
00148 KMainWindow* p_parent;
00149 hk_kdeworkspace* p_workspace;
00150 };
00151
00152
00153 class hk_listbox : public QListBox,public hk_class
00154 {
00155 Q_OBJECT
00156 friend class knodamainwindowbase;
00157 public:
00158 hk_listbox(knodamainwindowbase* w);
00159 ~hk_listbox();
00160 bool cancel(void){return p_cancelcopying;}
00161 static bool set_progress(long int,long int,const hk_string&);
00162 public slots:
00163 void copying_cancelled();
00164 protected:
00165 virtual void contextMenuEvent(QContextMenuEvent* );
00166 virtual void mouseReleaseEvent(QMouseEvent*);
00167 virtual void mouseMoveEvent(QMouseEvent*);
00168
00169 void dragEnterEvent(QDragEnterEvent*);
00170 void dropEvent(QDropEvent*);
00171 hk_string create_draginfo(void);
00172 bool decode_action(QMimeSource* event);
00173 bool execute_action(void);
00174 bool copy_presentationfile(void);
00175 bool copy_table(void);
00176 bool copy_view(void);
00177 bool copy_database(void);
00178 hk_connection* find_connection(void);
00179 hk_kdeschemadialog* p_schemadialog;
00180 QPopupMenu* p_popup;
00181 knodamainwindowbase* p_window;
00182 bool p_dragging;
00183 QPoint p_dragstartposition;
00184
00185 hk_string xname,xtype,xdirectory,xserver,xhost,xtcp,xuser,xdbname;
00186 objecttype ftype;
00187 objecttype actiontype;
00188 static QProgressDialog* p_progressdialog;
00189 static bool p_cancelcopying;
00190
00191 } ;
00192
00193 class hk_kdeschemadialog : public QDialog
00194 {
00195 Q_OBJECT
00196
00197 public:
00198 hk_kdeschemadialog( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
00199 ~hk_kdeschemadialog();
00200
00201 QButtonGroup* ButtonGroup1;
00202 QRadioButton* schemaonlyfield;
00203 QRadioButton* datafield;
00204 QPushButton* buttonOk;
00205 QPushButton* buttonCancel;
00206
00207 protected:
00208 QHBoxLayout* hk_kdeschemadialogLayout;
00209 QVBoxLayout* ButtonGroup1Layout;
00210 QVBoxLayout* Layout2;
00211 };
00212 #endif // knodamainwindowbase_H