📄 mainimpl.cpp
字号:
connect(actionProjectPropertie, SIGNAL(triggered()), m_projectManager, SLOT(slotProjectPropertie()) ); setWindowTitle( s ); setCurrentProject( s ); m_projectGroup->setEnabled( true ); slotClickTreeFiles( treeFiles->topLevelItem ( 0 ), 0); return true;}//bool MainImpl::slotCloseProject(bool /*hide*/){ /*QList<Editor *> maximized = m_maximizedEditors; foreach(Editor *editor, maximized) { slotShowMaximized( editor ); }*/ if ( m_projectManager ) m_projectManager->saveProjectSettings(); slotClearAllBookmarks(); if ( !slotCloseAllFiles() ) return false; logBuild->clear(); logDebug->clear(); // if ( m_completion ) { m_completion->wait(); delete m_completion; m_completion = 0; } // if ( m_projectManager && !m_projectManager->close() ) return false; delete m_projectManager; m_projectManager = 0; setWindowTitle( "QDevelop" ); m_projectGroup->setEnabled( false ); delete m_findInFiles; m_findInFiles = 0; return true;}//void MainImpl::slotDoubleClickTreeFiles(QTreeWidgetItem *item, int){ if ( item->childCount() > 0 ) return; QString filename = item->text(0); QString projectName = m_projectManager->projectFilename( item ); QString projectDirectory = m_projectManager->projectDirectory(item); QString absoluteName = QDir(projectDirectory+"/"+filename).absolutePath(); QStringList locationsList; locationsList << absoluteName; foreach(QString dir, m_projectManager->dependpath(item) ) locationsList << QDir(projectDirectory + "/" +dir + "/" + filename).absolutePath(); openFile( locationsList );}//void MainImpl::slotClickTreeFiles(QTreeWidgetItem *item, int){ QString projectName = m_projectManager->projectFilename( item ); actionProjectPropertie->setText( tr("Properties of %1...").arg(projectName) );}//void MainImpl::slotSaveFile(){ Editor *editor = currentEditor(); if ( editor ) { editor->save(); }}//void MainImpl::slotSaveFileAs(){ Editor *editor = currentEditor(); if ( !editor ) return; QString s = QFileDialog::getSaveFileName( this, tr("Choose the file to create"), editor->filename(), tr("Files (*.cpp *.h *.txt *.* *)") ); if ( s.isEmpty() ) { return; } editor->setFilename( s ); editor->save(); m_tabEditors->setTabText(m_tabEditors->currentIndex(), editor->shortFilename() );}//void MainImpl::slotHelpQtWord(){ Editor *editor = currentEditor(); QString className = "index"; QString word = "index"; if ( editor ) { word = editor->wordUnderCursor(); className = editor->classNameUnderCursor(); if (className.isEmpty() ) className = word; if( !word.isEmpty() ) className = m_completion->classForFunction(className, word); if ( className.isEmpty() && word.startsWith("Q") ) { className = word; } } m_assistant->showQtWord(className, word );}//void MainImpl::slotCloseCurrentTab(){ Editor *editor = currentEditor(); if ( editor && !editor->close() ) return; delete editor; slotUpdateOtherFileActions();}//void MainImpl::closeTab(int numTab){ Editor *editor = givenEditor(numTab); if ( editor && !editor->close() ) return; delete editor; slotUpdateOtherFileActions();}//void MainImpl::closeOtherTab(int numTab){ Editor *noClose = givenEditor(numTab); QList<Editor *> editorlist; for (int i=0; i<m_tabEditors->count(); i++) editorlist.append( givenEditor(i) ); foreach(Editor *editor, editorlist) { if ( editor != noClose ) { if ( editor && !editor->close() ) return; delete editor; } } slotUpdateOtherFileActions();}//void MainImpl::slotClearAllBookmarks(){ foreach(Editor *editor, allEditors() ) { if ( editor ) { editor->clearAllBookmarks(); } }}//bool MainImpl::slotSaveAll(){ bool ok = m_projectManager->slotSaveProject(); ok = true; foreach(Editor *editor, allEditors() ) { if ( editor ) { if ( !editor->save() ) ok = false; } } return ok;}//Editor * MainImpl::openFile(QStringList locationsList, int numLine, bool silentMode, bool moveTop){ //QApplication::setOverrideCursor(Qt::WaitCursor); QString s; foreach(s, locationsList) { if ( QFile::exists( s ) ) { break; } } s = QDir::cleanPath( s ); // The file is really opened only if it exists and if it is a file. if ( !QFileInfo(s).isFile() ) { QApplication::restoreOverrideCursor(); return 0; } if ( Editor::shortFilename(s).section(".", -1, -1).toLower() == "ui" ) { //QProcess::startDetached (m_designerName, QStringList(s)); m_designer->openUI( s ); QApplication::restoreOverrideCursor(); return 0; } else if ( Editor::shortFilename(s).section(".", -1, -1).toLower() == "ts" ) { QProcess::startDetached (m_linguistName, QStringList(s)); QApplication::restoreOverrideCursor(); return 0; } // The file is perhaps already opened. Find filename in tabs. foreach(Editor *editor, allEditors() ) { if ( editor->filename() == s) { for (int i=0; i<m_tabEditors->count(); i++) { if( givenEditor(i)->filename() == s) { m_tabEditors->setCurrentIndex( i ); } } if ( numLine != -1 ) { editor->setFocus(); editor->gotoLine( numLine, moveTop ); slotCurrentTabChanged( 0 ); } QApplication::restoreOverrideCursor(); return editor; } } // Not found in tabs, opens really. Editor *editor = new Editor(m_tabEditors, this, m_completion ,s); editor->setShowTreeClasses( m_showTreeClasses ); editor->setIntervalUpdatingTreeClasses( m_intervalUpdatingClasses ); editor->setFont( m_font ); editor->setSyntaxHighlight( m_cppHighlighter ); editor->setLineNumbers( m_lineNumbers ); editor->setAutoIndent( m_autoIndent ); editor->setSelectionBorder( m_selectionBorder ); editor->setEndLine( m_endLine ); editor->setTabSpaces( m_tabSpaces ); editor->setAutoCompletion( m_autoCompletion ); editor->setAutobrackets( m_autobrackets ); editor->setBackgroundColor( m_backgroundColor ); editor->setTextColor( m_textColor ); editor->setMatch( m_match ); editor->setHighlightCurrentLine( m_highlightCurrentLine ); editor->setMatchingColor( m_matchingColor ); editor->setCurrentLineColor( m_currentLineColor ); editor->setShowWhiteSpaces( m_displayWhiteSpaces ); editor->displayEditorToolbar( m_displayEditorToolbars ); editor->setSyntaxColors ( m_formatPreprocessorText, m_formatQtText, m_formatSingleComments, m_formatMultilineComments, m_formatQuotationText, m_formatMethods, m_formatKeywords ); if ( !editor->open(silentMode) ) { delete editor; QApplication::restoreOverrideCursor(); return 0; } editor->setTabStopWidth( m_tabStopWidth ); m_tabEditors->setCurrentIndex( m_tabEditors->addTab(editor, editor->shortFilename()+" ") ); editor->setFocus(); if ( numLine != -1 ) editor->gotoLine(numLine, moveTop); connect(editor, SIGNAL(editorModified(Editor *, bool)), this, SLOT(slotModifiedEditor( Editor *, bool)) ); connect(editor, SIGNAL(updateClasses(QString, QString)), this, SLOT(slotUpdateClasses(QString, QString)) ); connect(editor, SIGNAL(otherFileChanged()), this, SLOT(slotUpdateOtherFileActions())); if ( m_debug ) connect(editor, SIGNAL(breakpoint(QString, bool, unsigned int, QString)), m_debug, SLOT(slotBreakpoint(QString, bool, unsigned int, QString)) ); setCurrentFile(s); slotCurrentTabChanged( m_tabEditors->currentIndex() ); slotUpdateOtherFileActions(); QApplication::restoreOverrideCursor(); return editor;}//void MainImpl::toggleBookmark(Editor *editor, QString text, bool activate, QTextBlock block){ Bookmark bookmark; bookmark.first = editor; bookmark.second = block; int line = editor->currentLineNumber( block ); if ( activate ) { QString s = text; if ( s.length() > 50 ) s = s.left(50)+" ..."; QAction *action = new QAction(s, menuBookmarks); connect(action, SIGNAL(triggered()), this, SLOT(slotActivateBookmark())); // QAction *before = 0; QList<QAction *> actionsList = menuBookmarks->actions(); foreach(QAction *actionBefore, actionsList) { Bookmark bookmarkAction = actionBefore->data().value<Bookmark>(); if ( bookmarkAction.first == editor && editor->currentLineNumber( bookmarkAction.second ) > line ) { before = actionBefore; break; } } // menuBookmarks->insertAction(before, action); QVariant v; v.setValue( bookmark ); action->setData( v ); actionActiveBookmark = action; } else { QList<QAction *> actionsList = menuBookmarks->actions(); foreach(QAction *action, actionsList) { Bookmark bookmarkAction = action->data().value<Bookmark>(); if ( bookmarkAction.first == editor && bookmarkAction.second == block ) { delete action; break; } } }}//void MainImpl::slotActivateBookmark(QAction *action){ if ( action ) actionActiveBookmark = action; else actionActiveBookmark = (QAction *)sender(); Bookmark bookmark = actionActiveBookmark->data().value<Bookmark>(); Editor *editor = 0; Editor *bookmarkEditor = bookmark.first; QTextBlock block = bookmark.second; foreach(Editor *edit, allEditors() ) { if ( edit == bookmarkEditor ) { editor = edit; break; } } if ( editor ) { QString filename = editor->filename(); int line = editor->currentLineNumber( block ); openFile(QStringList(filename), line); }}//void MainImpl::slotUpdateClasses(QString filename, QString buffer){ if ( !m_projectManager )
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -