📄 mainimpl.h
字号:
/** This file is part of QDevelop, an open-source cross-platform IDE* Copyright (C) 2006 Jean-Luc Biord** This program is free software; you can redistribute it and/or modify* it under the terms of the GNU General Public License as published by* the Free Software Foundation; either version 2 of the License, or* (at your option) any later version.** This program is distributed in the hope that it will be useful,* but WITHOUT ANY WARRANTY; without even the implied warranty of* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the* GNU General Public License for more details.** You should have received a copy of the GNU General Public License* along with this program; if not, write to the Free Software* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA** Contact e-mail: Jean-Luc Biord <jl.biord@free.fr>* Program URL : http://qdevelop.org**/#ifndef MAINIMPL_H#define MAINIMPL_H#include "ui_main.h"#include "debug.h"#include <QDateTime>#include <QFont>#include <QTextCharFormat>#include <QTextBlock>#include "treeproject.h"class QProcess;class Editor;class Build;class QComboBox;class ProjectManager;class Assistant;class Designer;class QActionGroup;class TabWidget;class FindFileImpl;class StackImpl;class InitCompletion;//typedef QPair<Editor *, QTextBlock> Bookmark;Q_DECLARE_METATYPE(Bookmark)//class MainImpl : public QMainWindow, public Ui::Main{Q_OBJECTpublic: void automaticCompilationState(Editor *editor, int state); QList<Editor *> allEditors(); MainImpl(QWidget * parent = 0); ~MainImpl(); enum ExecuteVersion { ExecuteNone, ExecuteRelease, ExecuteDebug}; Editor * openFile(QStringList locationsList, int numLine=-1, bool silentMode=false, bool moveTop=false); QString loadINI(); bool saveBeforeBuild() { return m_saveBeforeBuild; }; bool openProject(QString s); QString qmakeName() { return m_qmakeName; }; QString ctagsName() { return m_ctagsName; }; QString lupdateName() { return m_lupdateName; }; QString lreleaseName() { return m_lreleaseName; }; enum EndLine { Default, Unix, Windows }; TabWidget *tabEditors() const { return m_tabEditors; }; bool ctagsIsPresent() { return m_ctagsIsPresent; }; QKeySequence shortcutCut() { return actionCut->shortcut(); }; QKeySequence shortcutPaste() { return actionPaste->shortcut(); }; QKeySequence shortcutUndo() { return actionUndo->shortcut(); }; QKeySequence shortcutRedo() { return actionRedo->shortcut(); }; void closeTab(int numTab); void closeOtherTab(int numTab); bool showTreeClasses() { return m_showTreeClasses; }; void toggleBookmark(Editor *editor, QString text, bool activate, QTextBlock block); QMenu *bookmarksMenu() { return menuBookmarks; }; const QList<ParsedItem> *treeClassesItems() { return treeClasses->treeClassesItems(); }; void loadPlugins(); void renameEditor(QString oldName, QString newName); void configureCompletion(QString projectDirectory); void gotoFileInProject(QString& filename); Editor * currentEditor(); Editor * givenEditor(int i); void resetProjectsDirectoriesList(); void resetDebugAfterBuild(); int mibCodec() { return m_mibCodec; } void checkQtDatabase(); InitCompletion* buildQtDatabase() { return m_buildQtDatabase; }private: // Functions void createConnections(); void updateActionsRecentsFiles(); void updateActionsRecentsProjects(); QString strippedName(const QString &fullFileName); void setCurrentProject(const QString &file); void setCurrentFile(const QString &file); void saveINI(); void setCrossButton(bool activate); bool modifiedEditors(); // Objects and Variables bool m_automaticCompilation; QColor m_textColor; bool m_buildQtDatabaseAsked; Build *m_builder; Debug *m_debug; ProjectManager *m_projectManager; enum { maxRecentsFiles = 10 }; QAction *actionsRecentsFiles[maxRecentsFiles]; enum { maxRecentsProjects = 10 }; QAction *actionsProjetsRecents[maxRecentsProjects]; QStringList m_projectsDirectoriesList; bool m_clean; bool m_build; Assistant *m_assistant; Designer *m_designer; QFont m_font; int m_tabStopWidth; QString m_qmakeName; QString m_makeName; QString m_makeOptions; QString m_gdbName; QString m_ctagsName; QString m_linguistName; QString m_lupdateName; QString m_lreleaseName; QString m_designerName; QString m_qtInstallHeaders; QString m_projectsDirectory; QString m_pluginsDirectory; QString m_includeDirectory; QString m_documentationDirectory; bool m_lineNumbers, m_selectionBorder, m_autoIndent, m_cppHighlighter; bool m_saveBeforeBuild; bool m_restoreOnStart; bool m_promptBeforeQuit; ExecuteVersion m_debugAfterBuild; bool m_buildAfterDebug; bool m_checkEnvironmentOnStartup; bool m_autoMaskDocks; bool m_autoCompletion; bool m_autobrackets; bool m_match; bool m_highlightCurrentLine; bool m_ctagsIsPresent; bool m_configureCompletionNeeded; QColor m_backgroundColor; QColor m_currentLineColor; QColor m_matchingColor; EndLine m_endLine; bool m_tabSpaces; bool m_closeButtonInTabs; bool m_displayEditorToolbars; bool m_displayWhiteSpaces; QToolButton *crossButton; QPointer<QActionGroup> m_projectGroup; QPointer<QActionGroup> m_buildingGroup; QTextCharFormat m_formatPreprocessorText, m_formatQtText, m_formatSingleComments; QTextCharFormat m_formatMultilineComments, m_formatQuotationText, m_formatMethods, m_formatKeywords; TabWidget *m_tabEditors; FindFileImpl *m_findInFiles; StackImpl *m_stack; int m_intervalUpdatingClasses; bool m_showTreeClasses; InitCompletion *m_completion; InitCompletion *m_buildQtDatabase; QAction *actionActiveBookmark; int m_mibCodec; //QList<Editor *> m_maximizedEditors; QAction *separatorOtherFile, *actionOtherFile; QHash<QWidget*,bool> toolbarStatus;protected: void closeEvent( QCloseEvent * event );private slots: void slotClearAllWarningsErrors(); void slotPreviousWarningError(); void slotNextWarningError(); void slotQmake(); void slotOpen(); void slotOpenProject(); void slotSaveFile(); void slotCompleteCode(); void slotSaveFileAs(); bool slotSaveAll(); void slotBuild(bool clean=false, bool build=true, bool forceQmake=false); void slotNewProject(); void slotRebuild(); void slotStopBuild(); void slotClean(); void slotCut(); void slotCopy(); void slotPaste(); void slotUndo(); void slotRedo(); void slotGotoLine(); void slotSelectAll(); void slotUnindent(); void slotIndent(); void slotFind(); void slotReplace(); void slotFindContinue(); void slotFindPrevious(); void slotEndBuild(); bool slotDebug(bool executeOnly=false); void slotExecuteWithoutDebug(); void slotContinueDebug(); void slotEndDebug(); void slotMessagesDebug(QString message); void slotFindFilesActivated(QListWidgetItem *item, QListWidgetItem *); void slotDoubleClickFindLines( QListWidgetItem *item); void slotModifiedEditor(Editor *editor, bool modified); void slotStepInto(); void slotStepOver(); void slotStepOut(); void slotEditToGdb(QString); void slotOnPause(); void slotOpenRecentFile(); void slotOpenRecentProject(); void slotAbout(); void slotHelpQtWord(); void slotOptions(); void slotClickTreeFiles(QTreeWidgetItem *item, int); void slotCloseCurrentTab(); void slotPreviousTab(); void slotNextTab(); void slotOtherFile(); void slotSetFocusToEditor(); void slotToggleBreakpoint(); void slotShortcuts(); void slotFindInFiles(); void slotNewFile(); void slotToggleComment(); void slotComment(); void slotUncomment(); void slotParameters(); void slotCurrentTabChanged(int index); void slotDebugVariables( QList<Variable> list); void slotAddDebugVariable(); void slotRemoveDebugVariable(); void slotToggleBookmark(); void slotActivateBookmark(QAction *action=0); void slotPreviousBookmark(); void slotNextBookmark(); void slotClearAllBookmarks(); void slotGotoMatchingBracket(); void slotTextEditPlugin(); void slotConfigPlugin(); void slotPrint(); void slotOpenFile(); void slotGotoDeclaration(); void slotGotoImplementation(); void slotMethodsList(); void slotNewQtVersion(); void slotUpdateOtherFileActions(); void on_actionEditor_mode_triggered();public slots: void slotCompile(bool automaticCompilation=false); void slotBuildQtDatabaseEnded(); void slotShowMessage(QString message); void slotDoubleClickTreeFiles(QTreeWidgetItem *item, int); bool slotCloseAllFiles(); void slotToolsControl(bool show=true); void slotUpdateClasses(QString filename, QString buffer); bool slotCloseProject(bool hide=false); //void slotShowMaximized(Editor *editor=0);signals: void debugCommand(QString); void stopBuild(); void stopDebug(); void pauseDebug(); void resetExecutedLine(); void otherVariables(QStringList);};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -