mainform.h 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. /*
  2. ktigcc - TIGCC IDE for KDE
  3. Copyright (C) 2007 Kevin Kofler
  4. This program is free software; you can redistribute it and/or modify
  5. it under the terms of the GNU General Public License as published by
  6. the Free Software Foundation; either version 2, or (at your option)
  7. any later version.
  8. This program is distributed in the hope that it will be useful,
  9. but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. GNU General Public License for more details.
  12. You should have received a copy of the GNU General Public License
  13. along with this program; if not, write to the Free Software Foundation,
  14. Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  15. */
  16. #pragma once
  17. #include "ui_mainform.h"
  18. #include "tiemu.h"
  19. namespace KTextEditor {
  20. class Document;
  21. class View;
  22. class Cursor;
  23. }
  24. class MainForm : public QMainWindow, public Ui::MainForm
  25. {
  26. Q_OBJECT
  27. public:
  28. MainForm(QWidget* parent = 0, const char* name = 0, Qt::WindowFlags fl = Qt::WType_TopLevel);
  29. ~MainForm();
  30. static void deleteErrorsForLVFile( Q3ListViewItem * item );
  31. static void deleteErrorsForSrcFile( void * srcFile );
  32. static void createErrorCursorsForSourceFile( Q3ListViewItem * item );
  33. static void deleteOverwrittenErrorsIn( void * srcFile );
  34. static QString SGetFileName( int mode, const QString & fileFilter, const QString & caption, QWidget * parent );
  35. static QStringList SGetFileName_Multiple( const QString & fileFilter, const QString & caption, QWidget * parent );
  36. void * createView( const QString & fileName, const QString & fileText, Q3ListViewItem * category );
  37. virtual void adoptSourceFile( void * srcFile );
  38. virtual bool openProject( const QString & fileName );
  39. int fileSavePrompt( Q3ListViewItem * fileItem );
  40. virtual void fileSave_fromto( const QString & lastProj, const QString & nextProj );
  41. virtual void findAndOpenFile( const QString & fileName, void * category );
  42. virtual void openHeader( const QString & fileName, bool systemHeader, int lineno );
  43. virtual QString writeTempSourceFile( void * srcFile, bool inProject );
  44. virtual void compileSourceFile( void * srcFile );
  45. static QString tilibsErrorMessage( int err );
  46. virtual QString textForHeader( const QString & fileName );
  47. bool removeItem( Q3ListViewItem * item );
  48. public slots:
  49. virtual void errorListView_clicked( Q3ListViewItem * item );
  50. virtual bool findSourceFile( bool & inProject, void * & srcFile, const QString & fileName );
  51. virtual void init();
  52. virtual void destroy();
  53. virtual void te_popup_aboutToShow();
  54. virtual void te_popup_activated( int index );
  55. virtual void shortcut_0_activated();
  56. virtual void shortcut_1_activated();
  57. virtual void shortcut_2_activated();
  58. virtual void shortcut_3_activated();
  59. virtual void shortcut_4_activated();
  60. virtual void shortcut_5_activated();
  61. virtual void shortcut_6_activated();
  62. virtual void shortcut_7_activated();
  63. virtual void shortcut_8_activated();
  64. virtual void shortcut_9_activated();
  65. virtual void shortcut_10_activated();
  66. virtual void shortcut_11_activated();
  67. virtual void shortcut_12_activated();
  68. virtual void shortcut_13_activated();
  69. virtual void shortcut_14_activated();
  70. virtual void shortcut_15_activated();
  71. virtual void shortcut_16_activated();
  72. virtual void completionPopup_closed();
  73. virtual void fileNewProject();
  74. virtual void fileOpen();
  75. virtual void fileRecent1();
  76. virtual void fileRecent2();
  77. virtual void fileRecent3();
  78. virtual void fileRecent4();
  79. virtual bool fileSave();
  80. virtual bool fileSaveAs();
  81. virtual void filePrint();
  82. virtual void filePrintQuickly();
  83. virtual void filePreferences();
  84. virtual void editUndo();
  85. virtual void editRedo();
  86. virtual void editClear();
  87. virtual void editCut();
  88. virtual void editCopy();
  89. virtual void editPaste();
  90. virtual void editSelectAll();
  91. virtual void editIncreaseIndent();
  92. virtual void editDecreaseIndent();
  93. virtual void findFind();
  94. virtual void findFind_next();
  95. virtual void findFind_highlight( const QString & text, int matchingindex, int matchedlength );
  96. virtual void findFind_stop();
  97. virtual void findReplace();
  98. virtual void findReplace_next();
  99. virtual void findReplace_highlight( const QString & text, int matchingindex, int matchedlength );
  100. virtual void findReplace_replace( const QString & text, int replacementIndex, int replacedLength, int matchedLength );
  101. virtual void findReplace_stop();
  102. virtual void findFunctions();
  103. virtual void findFunctions_functionListBox_highlighted( int index );
  104. virtual void findFunctions_functionListBox_selected( int index );
  105. virtual void findFunctions_prototypeButton_clicked();
  106. virtual void findFunctions_implementationButton_clicked();
  107. virtual void findFunctionsPopup_aboutToShow();
  108. virtual void findFunctionsPopup_aboutToHide();
  109. virtual void findFunctionsPopup_aboutToHide_async();
  110. virtual void findFunctionsPopup_activated( int id );
  111. virtual void findOpenFileAtCursor();
  112. virtual void findFindSymbolDeclaration();
  113. virtual void projectAddFiles();
  114. virtual void procio_processExited();
  115. virtual void procio_readReady();
  116. virtual void procio_readReady_recordOnly();
  117. virtual void projectCompile();
  118. virtual void projectMake();
  119. virtual void projectBuild();
  120. virtual void projectStopCompilation();
  121. virtual void projectForceQuit();
  122. virtual void projectErrorsAndWarnings( bool on );
  123. virtual void projectProgramOutput();
  124. virtual void projectOptions();
  125. virtual void debugRun();
  126. virtual void debugPause();
  127. virtual void debugReset();
  128. virtual void toolsConfigure();
  129. virtual void toolsMenu_highlighted( int id );
  130. virtual void toolsMenu_activated( int id );
  131. virtual void toolsMenu_aboutToHide();
  132. virtual void helpDocumentation();
  133. virtual void helpContents();
  134. virtual void helpIndex();
  135. virtual void helpSearch();
  136. virtual void helpNews();
  137. virtual void helpAbout();
  138. virtual void resizeEvent( QResizeEvent * event );
  139. virtual void timerEvent( QTimerEvent * event );
  140. virtual void fileTreeClicked( Q3ListViewItem * item );
  141. virtual void fileNewFolder();
  142. virtual void fileTreeContextMenuRequested( Q3ListViewItem * item, const QPoint & pos, int col );
  143. virtual void fileNewCHeader();
  144. virtual void fileNewGNUAssemblyHeader();
  145. virtual void fileNewA68kAssemblyHeader();
  146. virtual void fileNewCSourceFile();
  147. virtual void fileNewGNUAssemblySourceFile();
  148. virtual void fileNewA68kAssemblySourceFile();
  149. virtual void fileNewQuillSourceFile();
  150. virtual void fileNewTextFile();
  151. virtual void statusBar_messageChanged(const QString &message);
  152. virtual void current_view_cursorPositionChanged(KTextEditor::View *view, const KTextEditor::Cursor &newPosition);
  153. virtual void current_view_textChanged(KTextEditor::Document *document);
  154. virtual void current_view_undoChanged();
  155. virtual void current_view_selectionChanged(KTextEditor::View *view);
  156. virtual void current_view_textInserted(KTextEditor::View *view, const KTextEditor::Cursor &position, const QString &text);
  157. virtual void clipboard_dataChanged();
  158. virtual void fileTreeItemRenamed( Q3ListViewItem * item, const QString & newName, int col );
  159. virtual void KDirWatch_dirty( const QString & fileName );
  160. protected:
  161. virtual void closeEvent( QCloseEvent * e );
  162. protected slots:
  163. virtual void languageChange();
  164. private:
  165. void clearProject();
  166. QString findFilter( unsigned short job );
  167. void updateRecent();
  168. void addRecent( const QString & fileName );
  169. Q3ListViewItem * openFile( Q3ListViewItem * category, Q3ListViewItem * parent, const QString & fileCaption, const QString & fileName );
  170. static Q3ListViewItem * createFolder( Q3ListViewItem * parent, const QString & name );
  171. void fileOpen_addList( Q3ListViewItem * category, void * fileListV, void * dir, const QString & open_file );
  172. int savePrompt( void );
  173. void removeTrailingSpacesFromView( void * view );
  174. void fileSave_save( Q3ListViewItem * theItem );
  175. void fileSave_saveAs( Q3ListViewItem * theItem );
  176. void fileSave_loadList( Q3ListViewItem * category, void * fileListV, const QString & base_dir, void * dir_new, QString * open_file );
  177. void findReplace_next( bool firstTime );
  178. int projectAddFiles_oneFile( const QString & fileName );
  179. void startCompiling();
  180. void stopCompiling();
  181. void compileFile( void * srcFile, bool inProject, bool force );
  182. void compileProject( bool forceAll );
  183. void linkProject();
  184. void showStats();
  185. bool tiemuInstance(TiEmuDBus *&instance);
  186. void updateToolsMenu();
  187. void updateSizes();
  188. QStringList extractAllFileNames( void );
  189. void extractFileTreeInfo( Q3ListViewItem * parent, Q3ListViewItem * * p_category, QString * p_folderPath );
  190. void newFile( Q3ListViewItem * parent, QString text, const QPixmap & pixmap );
  191. void newFile( Q3ListViewItem * parent );
  192. Q3ListViewItem * resolveParent( Q3ListViewItem * category );
  193. void updateLeftStatusLabel();
  194. void updateRightStatusLabel();
  195. void current_view_newLineHook();
  196. QString pathInProject( Q3ListViewItem * item );
  197. void shortcutActivated(int index);
  198. };
  199. namespace KTextEditor {
  200. class View;
  201. };
  202. void sendCommand(KTextEditor::View *view, const QString &cmd);
  203. void setTabWidth(KTextEditor::View *view, unsigned tabWidth);