00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef HK_KDEQUERYPARTWIDGET_H
00013 #define HK_KDEQUERYPARTWIDGET_H
00014
00015 #include <qvariant.h>
00016 #include <qwidgetstack.h>
00017 #include <kate/view.h>
00018 #include <kate/document.h>
00019
00020 #include "hk_dsquery.h"
00021 #include "hk_datasource.h"
00022 #include "hk_database.h"
00023
00024 class QVBoxLayout;
00025 class QHBoxLayout;
00026 class QGridLayout;
00027 class QButtonGroup;
00028 class QTable;
00029 class QToolButton;
00030 class QProgressDialog;
00031 class QMultiLineEdit;
00032 class hk_kdetoolbar;
00033 class hk_kdegrid;
00034 class hk_kdegridpart;
00035 class hk_kdeqbe;
00036 class hk_kdequerypart;
00037
00038 class hk_kdequerypartwidgetprivate;
00039
00052 class hk_kdequerypartwidget : public QWidgetStack ,public hk_dsquery
00053 {
00054 friend class hk_kdequerypart;
00055 Q_OBJECT
00056
00057 public:
00058 virtual ~hk_kdequerypartwidget();
00059 virtual bool set_mode(enum_mode s);
00063 bool in_designmode(void) const ;
00064 virtual void set_datasource(hk_datasource*);
00065
00070 void set_autoclose(bool c);
00071 bool autoclose(void)const;
00072
00076 void set_nodesignmode(bool n);
00077
00078 bool save_query(const hk_string& n="",bool ask=true);
00079 bool load_query(void);
00080 hk_dsgrid *grid(void);
00081 virtual hk_qbe* qbe(void);
00082 hk_kdeqbe* kdeqbe(void) const;
00083 virtual void reset_has_changed(void);
00084 virtual void show_widget(void);
00085 virtual void hide_widget(void);
00086 virtual bool close_widget(void);
00087
00088 signals:
00089 void signal_closed(QWidget*);
00090 void signal_qbetypechanged(void);
00091
00092 public slots:
00093 void designbutton_clicked(void);
00094 void querybutton_clicked(void);
00095 void query_changed(void);
00096 void savebutton_clicked(void);
00097 void saveasbutton_clicked(void);
00098 void close_query(void);
00099 void print(void);
00100 void action_useqbe(void);
00101 void copy_clicked(void);
00102 void copybackendsql_clicked(void);
00103 void paste_clicked(void);
00104 void replace_clicked(void);
00105 void find_clicked(void);
00106 void findnext_clicked(void);
00107 void findprevious_clicked(void);
00108 void cut_clicked(void);
00109 void undo_clicked(void);
00110 void redo_clicked(void);
00111 void selectall_clicked(void);
00112 void configeditor_clicked(void);
00113 void storeresult_clicked(void);
00114
00115 virtual void show ();
00116 virtual void showMaximized ();
00117
00118
00119 protected:
00120 hk_kdequerypartwidget(hk_kdequerypart*,QWidget* w=0,const char* n=0,WFlags f=0);
00121 virtual void before_source_vanishes(void);
00122 virtual void closeEvent ( QCloseEvent* e);
00123 void keyPressEvent ( QKeyEvent * e );
00124 virtual void set_has_changed(enum_has_changed forcesetting=standard);
00125 static bool set_progress(long int,long int,const hk_string&);
00126 protected slots:
00127 void qbe_has_changed(void);
00128 void exec_cancelled(void);
00129
00130 private:
00131 KRadioAction* p_designaction;
00132 KRadioAction* p_viewaction;
00133 KAction* p_saveaction;
00134 KAction* p_saveasaction;
00135 KAction* p_printaction;
00136
00137 KAction* p_copyaction;
00138 KAction* p_copybackendsqlaction;
00139 KAction* p_cutaction;
00140 KAction* p_undoaction;
00141 KAction* p_redoaction;
00142 KAction* p_pasteaction;
00143 KAction* p_replaceaction;
00144 KAction* p_findaction;
00145 KAction* p_findnextaction;
00146 KAction* p_findpreviousaction;
00147 KAction* p_selectallaction;
00148 KAction* p_storeresultaction;
00149 KAction* p_configeditoraction;
00150
00151 KToggleAction* p_qbeaction;
00152 KAction* p_addaction;
00153 KToggleAction* p_distinctaction;
00154 KWidgetAction* p_qbetypeselectaction;
00155 QComboBox* p_qbetypeselect;
00156 void set_caption(void);
00157 void internal_set_designmode(void);
00158 void internal_set_viewmode(void);
00159
00160 static bool p_cancel;
00161 hk_kdequerypartwidgetprivate* p_private;
00162 static QProgressDialog* p_progressdialog;
00163 void before_execute(void);
00164 void after_execute(void);
00165
00166 };
00167 #endif