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_kdedbdesignerwindow;
00044
00045 class knodamainwindowbase : public QWidget ,public hk_dsvisible
00046 {
00047 Q_OBJECT
00048
00049 public:
00050 knodamainwindowbase( KMainWindow* parent = 0,const char* name = 0, WFlags fl = 0,const QString& database="",const QString& form="" );
00051 virtual ~knodamainwindowbase();
00052 void set_connection(hk_connection* c);
00053 hk_connection* connection(void) {return p_connection;}
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 virtual void slot_open_localdatabase(void);
00092 hk_database* database(){return p_database;}
00093 virtual void show_exportdbdrivers();
00094 virtual void show_importdbdrivers();
00095 void exportdbdriver_selected(int);
00096 void importdbdriver_selected(int);
00097 void slot_store_connection();
00098 void slot_referentialintegrity();
00099 void designer_deleted(void);
00100 protected:
00101 QHBoxLayout* knodamainwindowbaseLayout;
00102 QGridLayout* Layout8;
00103 QVBoxLayout* Layout3;
00104 QVBoxLayout* ButtonGroup3Layout;
00105 QVBoxLayout* ButtonGroup2Layout;
00106 hk_connection* p_connection;
00107 hk_database* p_database;
00108 virtual void list_changes(listtype type);
00109 bool eventFilter(QObject*,QEvent*);
00110 private:
00111 enum enum_function{f_exportdb,f_importdb};
00112 void show_drivers(KPopupMenu* menu, enum_function);
00113 void open_autoform();
00114 void set_buttons();
00115 void set_databasebuttons();
00116 void set_tablebuttons();
00117 void set_querybuttons();
00118 void set_formbuttons();
00119 void set_reportbuttons();
00120 void set_minimalbuttons();
00121 void set_normalbuttons();
00122 hk_kdeform* new_form(void);
00123 hk_kdereport* new_report(void);
00124 hk_kdetable* new_table(void);
00125 hk_kdequery* new_query(void);
00126 hk_kdequery* new_view(void);
00127 QString p_databasestring;
00128 QString p_sdatabasestring;
00129 QString p_tablestring;
00130 QString p_sviewstring;
00131 QString p_viewstring;
00132 QString p_querystring;
00133 QString p_formstring;
00134 QString p_reportstring;
00135 QString p_stablestring;
00136 QString p_squerystring;
00137 QString p_sformstring;
00138 QString p_sreportstring;
00139
00140 KAction* p_newaction;
00141 KAction* p_alteraction;
00142 KAction* p_startaction;
00143 KAction* p_deleteaction;
00144 KAction* p_copyaction;
00145 KAction* p_pasteaction;
00146 KAction* p_renameaction;
00147 KActionMenu* p_exportaction;
00148 KAction* p_exportcsvaction;
00149 KAction* p_exportxmlaction;
00150 KActionMenu* p_importaction;
00151 KAction* p_importcsvaction;
00152 KAction* p_databasesettingaction;
00153 KAction* p_objecthandleraction;
00154 KAction* p_passwordaction;
00155 KAction* p_openlocaldbaction;
00156 KActionMenu* p_importdatabaseaction;
00157 KActionMenu* p_exportdatabaseaction;
00158 KAction* p_storeconnection;
00159 KAction* p_referentialintegrityaction;
00160 QPopupMenu* p_popup;
00161 QString p_selecteddb;
00162 QString p_selectedform;
00163
00164 KMainWindow* p_parent;
00165 hk_kdedbdesignerwindow* p_designer;
00166 };
00167
00168
00169 class hk_listbox : public QListBox,public hk_class
00170 {
00171 Q_OBJECT
00172 friend class knodamainwindowbase;
00173 public:
00174 hk_listbox(knodamainwindowbase* w);
00175 ~hk_listbox();
00176 bool cancel(void){return p_cancelcopying;}
00177 static bool set_progress(long int,long int,const hk_string&);
00178 public slots:
00179 void copying_cancelled();
00180 protected:
00181 virtual void contextMenuEvent(QContextMenuEvent* );
00182 virtual void mouseReleaseEvent(QMouseEvent*);
00183 virtual void mouseMoveEvent(QMouseEvent*);
00184
00185 void dragEnterEvent(QDragEnterEvent*);
00186 void dropEvent(QDropEvent*);
00187 hk_string create_draginfo(void);
00188 bool decode_action(QMimeSource* event);
00189 bool execute_action(void);
00190 bool copy_presentationfile(void);
00191 bool copy_table(void);
00192 bool copy_view(void);
00193 bool copy_database(void);
00194 hk_connection* find_connection(void);
00195 hk_kdeschemadialog* p_schemadialog;
00196 QPopupMenu* p_popup;
00197 knodamainwindowbase* p_window;
00198 bool p_dragging;
00199 QPoint p_dragstartposition;
00200
00201 hk_string xname,xtype,xdirectory,xserver,xhost,xtcp,xuser,xdbname;
00202 objecttype ftype;
00203 objecttype actiontype;
00204 static QProgressDialog* p_progressdialog;
00205 static bool p_cancelcopying;
00206
00207 } ;
00208
00209 class hk_kdeschemadialog : public QDialog
00210 {
00211 Q_OBJECT
00212
00213 public:
00214 hk_kdeschemadialog( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
00215 ~hk_kdeschemadialog();
00216
00217 QButtonGroup* ButtonGroup1;
00218 QRadioButton* schemaonlyfield;
00219 QRadioButton* datafield;
00220 QPushButton* buttonOk;
00221 QPushButton* buttonCancel;
00222
00223 protected:
00224 QHBoxLayout* hk_kdeschemadialogLayout;
00225 QVBoxLayout* ButtonGroup1Layout;
00226 QVBoxLayout* Layout2;
00227 };
00228 #endif // knodamainwindowbase_H