srcfilewin.h 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. /*
  2. ktigcc - TIGCC IDE for KDE
  3. Copyright (C) 2006-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_srcfilewin.h"
  18. #include "tpr.h"
  19. #include "parsing.h"
  20. #include <QString>
  21. class MainForm;
  22. namespace KTextEditor {
  23. class Document;
  24. class View;
  25. class Cursor;
  26. }
  27. class KReplaceWithSelectionS;
  28. class QLabel;
  29. class Q3PopupMenu;
  30. class QClipboard;
  31. class QShortcut;
  32. class KFindDialog;
  33. class KDirWatch;
  34. class FunctionDialog;
  35. class SourceFileWindow : public QMainWindow, public Ui::SourceFileWindow
  36. {
  37. Q_OBJECT
  38. public:
  39. SourceFileWindow(MainForm *mainfrm, const QString &fn,
  40. const QString &hlm, const bool *hle, void *cat,
  41. bool isc, bool isasm, bool istxt);
  42. ~SourceFileWindow();
  43. void *createView(const QString &fileName, const QString &hlModeName, unsigned tabWidth);
  44. virtual int savePrompt(void);
  45. virtual void applyPreferences();
  46. MainForm *mainForm;
  47. QString fileName;
  48. QString hlMode;
  49. const bool *hlEnabled;
  50. void *category;
  51. bool isCFile;
  52. bool isASMFile;
  53. bool isTextFile;
  54. LineStartList lineStartList;
  55. KReplaceWithSelectionS *kreplace;
  56. KTextEditor::View *kateView;
  57. QLabel *rowStatusLabel;
  58. QLabel *colStatusLabel;
  59. QLabel *charsStatusLabel;
  60. QLabel *rightStatusLabel;
  61. Q3PopupMenu *te_popup;
  62. QShortcut *shortcuts[12];
  63. KFindDialog *kfinddialog;
  64. int findCurrentLine;
  65. KDirWatch *dirWatch;
  66. Q3PopupMenu *findFunctionsPopup;
  67. SourceFileFunctions sourceFileFunctions;
  68. FunctionDialog *functionDialog;
  69. public slots:
  70. virtual void te_popup_aboutToShow();
  71. virtual void te_popup_activated(int index);
  72. virtual void shortcut_0_activated();
  73. virtual void shortcut_1_activated();
  74. virtual void shortcut_2_activated();
  75. virtual void shortcut_3_activated();
  76. virtual void shortcut_4_activated();
  77. virtual void shortcut_5_activated();
  78. virtual void shortcut_6_activated();
  79. virtual void shortcut_7_activated();
  80. virtual void shortcut_8_activated();
  81. virtual void shortcut_9_activated();
  82. virtual void shortcut_10_activated();
  83. virtual void fileSave();
  84. virtual void fileSaveAs();
  85. virtual void fileAddToProject();
  86. virtual void fileCompile();
  87. virtual void filePrint();
  88. virtual void filePrintQuickly();
  89. virtual void editUndo();
  90. virtual void editRedo();
  91. virtual void editClear();
  92. virtual void editCut();
  93. virtual void editCopy();
  94. virtual void editPaste();
  95. virtual void editSelectAll();
  96. virtual void editIncreaseIndent();
  97. virtual void editDecreaseIndent();
  98. virtual void findFind();
  99. virtual void findFind_next();
  100. virtual void findFind_highlight(const QString &text, int matchingindex, int matchedlength);
  101. virtual void findFind_stop();
  102. virtual void findReplace();
  103. virtual void findReplace_next();
  104. virtual void findReplace_highlight(const QString &text, int matchingindex, int matchedlength);
  105. virtual void findReplace_replace(const QString &text, int replacementIndex, int replacedLength, int matchedLength);
  106. virtual void findReplace_stop();
  107. virtual void findFunctions();
  108. virtual void findFunctions_functionListBox_highlighted(int index);
  109. virtual void findFunctions_functionListBox_selected(int index);
  110. virtual void findFunctions_prototypeButton_clicked();
  111. virtual void findFunctions_implementationButton_clicked();
  112. virtual void findFunctionsPopup_aboutToShow();
  113. virtual void findFunctionsPopup_aboutToHide();
  114. virtual void findFunctionsPopup_aboutToHide_async();
  115. virtual void findFunctionsPopup_activated(int id);
  116. virtual void findOpenFileAtCursor();
  117. virtual void findFindSymbolDeclaration();
  118. virtual void resizeEvent(QResizeEvent *event);
  119. virtual void statusBar_messageChanged(const QString &message);
  120. virtual void current_view_cursorPositionChanged(KTextEditor::View *view, const KTextEditor::Cursor &newPosition);
  121. virtual void current_view_textChanged(KTextEditor::Document *document);
  122. virtual void current_view_undoChanged();
  123. virtual void current_view_selectionChanged(KTextEditor::View *view);
  124. virtual void current_view_textInserted(KTextEditor::View *view, const KTextEditor::Cursor &position, const QString &text);
  125. virtual void clipboard_dataChanged();
  126. virtual void KDirWatch_dirty(const QString &fileName);
  127. virtual void completionPopup_closed();
  128. protected:
  129. virtual void closeEvent(QCloseEvent *e);
  130. protected slots:
  131. virtual void languageChange();
  132. private:
  133. void removeTrailingSpacesFromView(void *view);
  134. void findReplace_next(bool firstTime);
  135. void updateSizes();
  136. void updateRightStatusLabel();
  137. void current_view_newLineHook();
  138. void shortcutActivated(int index);
  139. };