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 KPopupMenu;
00039 class hk_kdeform;
00040 class hk_kdereport;
00041 class hk_kdetable;
00042 class hk_kdequery;
00043 class hk_kdemodule;
00044 class hk_kdedbdesignerwindow;
00045
00046 class knodamainwindowbase : public QWidget ,public hk_dsvisible
00047 {
00048 Q_OBJECT
00049
00050 public:
00051 knodamainwindowbase( KMainWindow* parent = 0,const char* name = 0, WFlags fl = 0,const QString& database="",const QString& form="" );
00052 virtual ~knodamainwindowbase();
00053 void set_connection(hk_connection* c);
00054 hk_connection* connection(void) {return p_connection;}
00055 hk_listbox* itemslist;
00056 QLabel* TextLabel1;
00057 QLabel* TextLabel1_2;
00058 QLabel* databasename;
00059 QButtonGroup* ButtonGroup2;
00060 QRadioButton* querybutton;
00061 QRadioButton* reportbutton;
00062 QRadioButton* modulebutton;
00063 QRadioButton* tablebutton;
00064 QRadioButton* viewbutton;
00065 QRadioButton* formbutton;
00066 QRadioButton* databasebutton;
00067 QButtonGroup* ButtonGroup3;
00068 QPushButton* newbutton;
00069 QPushButton* startbutton;
00070 QPushButton* alterbutton;
00071 QPushButton* deletebutton;
00072 QPopupMenu* popupmenu(void);
00073
00074 public slots:
00075 virtual void alter_clicked();
00076 virtual void delete_clicked();
00077 virtual void function_select(objecttype);
00078 virtual void functionbutton_select(int);
00079 virtual void function_select(void);
00080 virtual void itemslist_doubleclicked();
00081 virtual void new_clicked();
00082 virtual void start_clicked();
00083 virtual void rename_clicked();
00084 virtual void importcsv_clicked();
00085 virtual void exportcsv_clicked();
00086 virtual void exportxml_clicked();
00087 virtual void itemslist_clicked(QListBoxItem*);
00088 virtual void newpassworddialog_selected(void);
00089 virtual void copy_clicked(void);
00090 virtual void paste_clicked(void);
00091 virtual void clipboarddata_has_changed(void);
00092 virtual void databasesettings_clicked(void);
00093 virtual void objecthandler_clicked(void);
00094 virtual void slot_open_localdatabase(void);
00095 hk_database* database(){return p_database;}
00096 virtual void show_exportdbdrivers();
00097 virtual void show_importdbdrivers();
00098 void exportdbdriver_selected(int);
00099 void importdbdriver_selected(int);
00100 void slot_store_connection();
00101 void slot_referentialintegrity();
00102 void designer_deleted(void);
00103 protected:
00104 QHBoxLayout* knodamainwindowbaseLayout;
00105 QGridLayout* Layout8;
00106 QVBoxLayout* Layout3;
00107 QVBoxLayout* ButtonGroup3Layout;
00108 QVBoxLayout* ButtonGroup2Layout;
00109 hk_connection* p_connection;
00110 hk_database* p_database;
00111 virtual void list_changes(listtype type);
00112 bool eventFilter(QObject*,QEvent*);
00113 private:
00114 enum enum_function{f_exportdb,f_importdb};
00115 void show_drivers(KPopupMenu* menu, enum_function);
00116 void open_autoform();
00117 void set_buttons();
00118 void set_databasebuttons();
00119 void set_tablebuttons();
00120 void set_querybuttons();
00121 void set_formbuttons();
00122 void set_reportbuttons();
00123 void set_minimalbuttons();
00124 void set_normalbuttons();
00125 void set_modulebuttons();
00126 hk_kdeform* new_form(void);
00127 hk_kdereport* new_report(void);
00128 hk_kdetable* new_table(void);
00129 hk_kdequery* new_query(void);
00130 hk_kdequery* new_view(void);
00131 hk_kdemodule* new_module(void);
00132 QString p_databasestring;
00133 QString p_sdatabasestring;
00134 QString p_tablestring;
00135 QString p_sviewstring;
00136 QString p_viewstring;
00137 QString p_querystring;
00138 QString p_formstring;
00139 QString p_modulestring;
00140 QString p_reportstring;
00141 QString p_stablestring;
00142 QString p_squerystring;
00143 QString p_sformstring;
00144 QString p_sreportstring;
00145 QString p_smodulestring;
00146
00147 KAction* p_newaction;
00148 KAction* p_alteraction;
00149 KAction* p_startaction;
00150 KAction* p_deleteaction;
00151 KAction* p_copyaction;
00152 KAction* p_pasteaction;
00153 KAction* p_renameaction;
00154 KActionMenu* p_exportaction;
00155 KAction* p_exportcsvaction;
00156 KAction* p_exportxmlaction;
00157 KActionMenu* p_importaction;
00158 KAction* p_importcsvaction;
00159 KAction* p_databasesettingaction;
00160 KAction* p_objecthandleraction;
00161 KAction* p_passwordaction;
00162 KAction* p_openlocaldbaction;
00163 KActionMenu* p_importdatabaseaction;
00164 KActionMenu* p_exportdatabaseaction;
00165 KAction* p_storeconnection;
00166 KAction* p_referentialintegrityaction;
00167 QPopupMenu* p_popup;
00168 QString p_selecteddb;
00169 QString p_selectedform;
00170
00171 KMainWindow* p_parent;
00172 hk_kdedbdesignerwindow* p_designer;
00173 };
00174
00175
00176 class hk_listbox : public QListBox,public hk_class
00177 {
00178 Q_OBJECT
00179 friend class knodamainwindowbase;
00180 public:
00181 hk_listbox(knodamainwindowbase* w);
00182 ~hk_listbox();
00183 bool cancel(void){return p_cancelcopying;}
00184 static bool set_progress(long int,long int,const hk_string&);
00185 public slots:
00186 void copying_cancelled();
00187 protected:
00188 virtual void contextMenuEvent(QContextMenuEvent* );
00189 virtual void mouseReleaseEvent(QMouseEvent*);
00190 virtual void mouseMoveEvent(QMouseEvent*);
00191
00192 void dragEnterEvent(QDragEnterEvent*);
00193 void dropEvent(QDropEvent*);
00194 hk_string create_draginfo(void);
00195 bool decode_action(QMimeSource* event);
00196 bool execute_action(void);
00197 bool copy_presentationfile(void);
00198 bool copy_table(void);
00199 bool copy_view(void);
00200 bool copy_database(void);
00201 hk_connection* find_connection(void);
00202 hk_kdeschemadialog* p_schemadialog;
00203 QPopupMenu* p_popup;
00204 knodamainwindowbase* p_window;
00205 bool p_dragging;
00206 QPoint p_dragstartposition;
00207
00208 hk_string xname,xtype,xdirectory,xserver,xhost,xtcp,xuser,xdbname;
00209 objecttype ftype;
00210 objecttype actiontype;
00211 static QProgressDialog* p_progressdialog;
00212 static bool p_cancelcopying;
00213
00214 } ;
00215
00216 class hk_kdeschemadialog : public QDialog
00217 {
00218 Q_OBJECT
00219
00220 public:
00221 hk_kdeschemadialog( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
00222 ~hk_kdeschemadialog();
00223
00224 QButtonGroup* ButtonGroup1;
00225 QRadioButton* schemaonlyfield;
00226 QRadioButton* datafield;
00227 QPushButton* buttonOk;
00228 QPushButton* buttonCancel;
00229
00230 protected:
00231 QHBoxLayout* hk_kdeschemadialogLayout;
00232 QVBoxLayout* ButtonGroup1Layout;
00233 QVBoxLayout* Layout2;
00234 };
00235 #endif // knodamainwindowbase_H