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