00001 #ifndef MAINWINDOW_H 00002 #define MAINWINDOW_H 00003 00004 #include <QtGui/QMainWindow> 00005 #include <QtGui/QMenu> 00006 #include <QtGui/QMenuBar> 00007 #include <QtGui/QToolBar> 00008 #include <QtGui/QStatusBar> 00009 00010 #include <QPaintEvent> 00011 #include <QPainter> 00012 #include <QDockWidget> 00013 00014 #include <QTabWidget> 00015 #include <QTextEdit> 00016 #include <QRegExp> 00017 #include <QRegExpValidator> 00018 00019 #include <iostream> 00020 #include <QLineEdit> 00021 00022 #include <QList> 00023 #include <QUrl> 00024 #include <QFileDialog> 00025 #include <QDesktopServices> 00026 #include <QFileInfo> 00027 #include <QFile> 00028 #include <QTextStream> 00029 00030 #include <QCloseEvent> 00031 #include <QMessageBox> 00032 #include <QPushButton> 00033 #include <QIcon> 00034 #include <QObject> 00035 #include <QIODevice> 00036 #include <QPrintPreviewDialog> 00037 00038 #include "mesConfigs.h" 00039 #include "widgetDansOnglet.h" 00040 #include "widgetLigne.h" 00041 #include "Hierarchie.h" 00042 #include "Preferences.h" 00043 #include "RechercherRemplacer/FindDialog.h" //PLUS 00044 #include "FTPBrowser.h" 00045 00053 class Validation; 00054 00055 using namespace std; 00056 00062 class MainWindow : public QMainWindow 00063 { 00064 Q_OBJECT 00065 00066 private: 00067 // Principal 00068 QWidget *central_widget; 00069 QWidget *central_widget_haut; 00070 FindDialog *rechercher_remplacer; 00071 QComboBox * cb; 00072 00073 QMenuBar *menu_bar; 00074 QToolBar *tool_bar; 00075 QStatusBar *status_bar; 00076 Preferences *mes_preferences; 00077 WebBrowser * w; 00078 FTPBrowser * ftp; 00079 00080 // Menu 00081 QMenu *menu_fichier; 00082 QMenu *menu_edition; 00083 QMenu *menu_affichage; 00084 QMenu *menu_outils; 00085 QMenu *menu_aide; 00086 QMenu *sous_menu_outil; 00087 00088 // Actions Menu 00089 //-> Fichier 00090 QAction *action_menu_nouveau; 00091 QAction *action_menu_nouveau_projet; 00092 QAction *action_menu_ouvrir; 00093 QAction *action_menu_enregistrer; 00094 QAction *action_menu_enregistrer_sous; 00095 QAction *action_menu_enregistrer_tout; 00096 QAction *action_menu_imprimer; 00097 QAction *action_menu_quitter; 00098 //-> Edition 00099 QAction *action_menu_annuler; 00100 QAction *action_menu_retablir; 00101 QAction *action_menu_couper; 00102 QAction *action_menu_copier; 00103 QAction *action_menu_coller; 00104 QAction *action_menu_select_tout; 00105 QAction *action_menu_zoom_plus; 00106 QAction *action_menu_zoom_moins; 00107 QAction *action_menu_preferences; 00108 QAction *action_menu_rechercher_remplacer; //PLUS 00109 00110 //-> Affichage 00111 QAction *action_menu_afficher_cacher_num_ligne; 00112 QAction *action_menu_plein_ecran; 00113 //SousMenuOutil 00114 QAction *action_menu_outil_fichier; 00115 QAction *action_menu_outil_edition; 00116 QAction *action_menu_outil_projet; 00117 00118 // Toolbar Outils 00119 QToolBar *tool_fichier; 00120 QToolBar *tool_edition; 00121 QToolBar *tool_affichage; 00122 QToolBar *tool_aide; 00123 00124 //Outils 00125 QAction *action_menu_web_browser; 00126 QAction *action_menu_ftp_browser; 00127 QAction *action_menu_validateur; 00128 00129 //Aide 00130 QAction *action_menu_aide; 00131 00132 // Dans centralWidget 00133 QTabWidget *tab_widget; 00134 WidgetDansOnglet *interieur_onglet; // contient qwidget(contient QLabel et QLabel) et QTextEdit 00135 00136 // Docks 00137 QDockWidget *dock_projet; 00138 Hierarchie* hierarchie; 00139 00140 // Dans statusBar 00141 QLabel *label_nb_lignes; 00142 QLabel *label_nb_caracteres; 00143 00147 void restaurer(); 00148 QPushButton * ok_workspace; 00149 QLineEdit * path_workspace; 00150 QString workspace; 00151 QFileDialog * chooseDir; 00152 QLineEdit * nouveau_projet; 00153 00154 Validation * validation; 00155 00156 00157 private slots: 00158 void workspaceChoisi(); 00159 void fichierNouveauProjet(); 00160 void fichierNouveauProjetOk(); 00161 00162 00163 public: 00164 // ACCESSEURS 00166 QWidget *getCentralWidget(); 00168 QMenuBar *getMenuBar(); 00170 QToolBar *getToolBar(); 00172 QStatusBar *getStatusBar(); 00174 Preferences *getMesPreferences(); 00176 FindDialog* getRechercherRemplacer(); 00178 WebBrowser* getWebBrowser(); 00180 FTPBrowser* getFtpBrowser(); 00181 00182 // Menu 00184 QMenu *getMenuFichier(); 00186 QMenu *getMenuEdition(); 00188 QMenu *getMenuAffichage(); 00190 QMenu *getMenuAide(); 00192 QMenu *getSousMenuOutil(); 00193 00194 // Actions Menu 00195 //-> Fichier 00197 QAction *getActionMenuNouveau(); 00199 QAction *getActionMenuOuvrir(); 00201 QAction *getActionMenuEnregistrer(); 00203 QAction *getActionMenuEnregistrerSous(); 00205 QAction *getActionMenuEnregistrerTout(); 00207 QAction *getActionMenuImprimer(); 00209 QAction *getActionMenuWebBrowser(); 00211 QAction *getActionMenuQuitter(); 00212 //-> Edition 00214 QAction *getActionMenuAnnuler(); 00216 QAction *getActionMenuRetablir(); 00218 QAction *getActionMenuCouper(); 00220 QAction *getActionMenuCopier(); 00222 QAction *getActionMenuColler(); 00224 QAction *getActionMenuSelectTout(); 00226 QAction *getActionMenuZoomPlus(); 00228 QAction *getActionMenuZoomMoins(); 00230 QAction *getActionMenuPreferences(); 00232 QAction *getActionMenuRechercherRemplacer(); //PLUS 00233 00234 //-> Affichage 00236 QAction *getActionMenuAfficherCacherNumLigne(); 00238 QAction *getActionMenuPleinEcran(); 00239 //SousMenuOutil 00241 QAction *getActionMenuOutilFichier(); 00243 QAction *getActionMenuOutilEdition(); 00245 QAction *getActionMenuOutilProjet(); 00246 00247 // Outils 00249 QToolBar *getToolFichier(); 00251 QToolBar *getToolEdition(); 00253 QToolBar *getToolAffichage(); 00255 QToolBar *getToolAide(); 00256 00257 // Dans centralWidget 00259 QTabWidget *getTabWidget(int = -1); 00261 WidgetDansOnglet *getInterieurOnglet(); 00262 00263 // Docks 00265 QDockWidget *getDock_projet(); 00267 Hierarchie* getHierarchie(); 00268 00269 // Dans statusBar 00271 QLabel *getLabel_nb_lignes(); 00273 QLabel *getLabel_nb_caracteres(); 00274 00275 // Methodes 00283 MainWindow(QWidget *parent = 0); 00284 ~MainWindow(); 00290 void gestionMenuBarre(); 00295 void gestionMenu(); 00300 void gestionBarreOutils(); 00305 void gestionMenuActions(); 00310 void gestionMenuItems(); 00315 void gestionBarreOutilsItems(); 00320 void gestionOnglets(); 00325 void gestionDocks(); 00331 void gestionBarreStatus(); 00340 void closeEvent(QCloseEvent * event); 00347 void messageQuitter(QCloseEvent * event); 00355 void messageEnregistrer(QCloseEvent * event, QString nomFichier); 00360 void enregistrer(); 00365 void enregistrerSous(); 00370 void enregistrerTout(); 00377 void changeNom(QString); 00378 00379 void ouvreFichier(QFileInfo*, bool=true); 00380 int ongletDejaOuvert(QFileInfo*); 00381 00382 00383 // Graphisme 00384 void paintEvent(QPaintEvent *event); 00385 00393 QWidget* widgetChoisirWorkspace(QWidget* = 0, bool = false); 00394 00395 public slots: 00396 // Fichiers 00398 void fichierNouveau(); 00399 void fichierNouveauOk(); 00400 void setNouvellePage(int); 00402 void fichierOuvrir(); 00404 void fichierEnregistrer(); 00406 void fichierEnregistrerSous(); 00408 void fichierEnregistrerTout(); 00410 void fichierImprimer(); 00411 00412 00413 // Editions 00415 void editionCouper(); 00417 void editionCopier(); 00419 void editionColler(); 00421 void editionSelectTout(); 00423 void editionAnnuler(); 00425 void editionRetablir(); 00427 void editionZoomPlus(); 00429 void editionZoomMoins(); 00431 void editionPreferences(); 00433 void editionRechercherRemplacer(); //PLUS 00434 00435 // Affichage 00437 void affichageNumLigne(); 00439 void affichagePleinEcran(); 00441 void affichageOutilFichier(); 00443 void affichageOutilEdition(); 00445 void affichageOutilProjet(); 00446 00447 //Outils 00449 void outilsOuvrirWebBrowser(); 00451 void outilsOuvrirFtpBrowser(); 00455 void fermerTab(int); 00457 void modifNbLignes(); 00459 void modifNomTab(); 00461 void modifBarreStatus(); 00465 void quandChangeOngletCourant(int); 00469 QIcon choixIcone(QString); 00473 void imprimerOk(QPrinter*); 00474 00476 void enregistrerSettings(); 00478 void constructeurApresWorkspace(); 00479 00480 void workspaceClavier(QString); 00482 void outilsValidateur(); 00484 void outilsValidateurOnOff(bool); 00485 00486 void apropos(); 00487 }; 00488 00489 #endif // MAINWINDOW_H