⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainimpl.cpp

📁 用Qt4编写的linux IDE开发环境
💻 CPP
📖 第 1 页 / 共 5 页
字号:
    settings.setValue("m_autoCompletion", m_autoCompletion);    settings.setValue("m_autobrackets", m_autobrackets);    settings.setValue("m_closeButtonInTabs", m_closeButtonInTabs);    settings.setValue("m_match", m_match);    settings.setValue("m_highlightCurrentLine", m_highlightCurrentLine);    settings.setValue("m_checkEnvironmentOnStartup", m_checkEnvironmentOnStartup);    settings.setValue("m_endLine", m_endLine);    settings.setValue("m_tabSpaces", m_tabSpaces);    settings.setValue("m_backgroundColor", m_backgroundColor.name());    settings.setValue("m_textColor", m_textColor.name());    settings.setValue("m_currentLineColor", m_currentLineColor.name());    settings.setValue("m_matchingColor", m_matchingColor.name());    settings.setValue("m_projectsDirectory", m_projectsDirectory);    settings.setValue("m_pluginsDirectory", m_pluginsDirectory);    settings.setValue("m_includeDirectory", m_includeDirectory);    settings.setValue("m_documentationDirectory", m_documentationDirectory);    settings.setValue("m_makeOptions", m_makeOptions);    settings.setValue("m_mibCodec", m_mibCodec);    //    settings.setValue("m_formatPreprocessorText", m_formatPreprocessorText.foreground().color().name());    settings.setValue("m_formatQtText", m_formatQtText.foreground().color().name());    settings.setValue("m_formatSingleComments", m_formatSingleComments.foreground().color().name());    settings.setValue("m_formatMultilineComments", m_formatMultilineComments.foreground().color().name());    settings.setValue("m_formatQuotationText", m_formatQuotationText.foreground().color().name());    settings.setValue("m_formatMethods", m_formatMethods.foreground().color().name());    settings.setValue("m_formatKeywords", m_formatKeywords.foreground().color().name());    settings.setValue("m_displayEditorToolbars", m_displayEditorToolbars);    settings.setValue("m_displayWhiteSpaces", m_displayWhiteSpaces);    settings.setValue("editorMode", actionEditor_mode->isChecked() );    settings.endGroup();    // Save shortcuts    settings.beginGroup("Shortcuts");    QList<QObject*> childrens;    childrens = children();    QListIterator<QObject*> iterator(childrens);    while ( iterator.hasNext() )    {        QObject *object = iterator.next();        QAction *action = qobject_cast<QAction*>(object);        if ( (action) && (!(action->data().toString().contains( "Recent|" ))))        {            QString text = action->objectName();            if (!text.isEmpty())            {                QString shortcut = action->shortcut();                settings.setValue( text, shortcut );            }        }    }    settings.endGroup();    //    //if ( !m_projectManager )    //return;    if ( m_restoreOnStart )    {        settings.beginGroup("Project");        QString projectDirectory;        if ( m_projectManager )            projectDirectory = m_projectManager->absoluteNameProjectFile(treeFiles->topLevelItem(0));        settings.setValue("absoluteNameProjectFile", projectDirectory);        settings.endGroup();    }    //    settings.beginGroup("mainwindowstate");    if (!isMinimized() && !isMaximized() && !isFullScreen())    {        settings.setValue("pos", pos());        settings.setValue("size", size());    }    settings.setValue("maximized", isMaximized());    settings.setValue("fullscreen", isFullScreen());    settings.setValue("geometry", saveGeometry()); // Window geometry and state (only needed for Windows!).    settings.setValue("state", saveState()); // Toolbar and DockWidget state.    settings.setValue("tabExplorer", tabExplorer->currentIndex());    settings.endGroup();	settings.beginGroup("editormode");	QList<QDockWidget*> dockWidgets = findChildren<QDockWidget*>();	foreach( QWidget *w, dockWidgets )		settings.setValue( w->objectName(), toolbarStatus[w] );;	settings.endGroup();}//void MainImpl::slotNewProject(){    NewProjectImpl *window = new NewProjectImpl(this, m_projectsDirectory);    window->labelProjetParent->setHidden( true );    window->parentProjectName->setHidden( true );    if ( window->exec() == QDialog::Accepted )    {        openProject( window->absoluteProjectName() );        QTreeWidgetItem *itProject = m_projectManager->itemProject(  window->filename() );        m_projectManager->setSrcDirectory(itProject, window->srcDirectory->text());        m_projectManager->setUiDirectory(itProject, window->uiDirectory->text());    }    delete window;}//QString MainImpl::loadINI(){    QSettings settings(getQDevelopPath() + "qdevelop.ini", QSettings::IniFormat);    QString projectName;    settings.beginGroup("Options");    QString s = settings.value("m_font", m_font.toString()).toString();    m_font.fromString(s);    m_tabStopWidth = settings.value("m_tabStopWidth", m_tabStopWidth).toInt();    m_cppHighlighter = settings.value("m_cppHighlighter", m_cppHighlighter).toBool();    m_automaticCompilation = settings.value("m_automaticCompilation", m_automaticCompilation).toBool();    m_lineNumbers = settings.value("m_lineNumbers", m_lineNumbers).toBool();    m_autoIndent = settings.value("m_autoIndent", m_autoIndent).toBool();    m_autoCompletion = settings.value("m_autoCompletion", m_autoCompletion).toBool();    m_autobrackets = settings.value("m_autobrackets", m_autobrackets).toBool();    m_selectionBorder = settings.value("m_selectionBorder", m_selectionBorder).toBool();    m_saveBeforeBuild = settings.value("m_saveBeforeBuild", m_saveBeforeBuild).toBool();    m_restoreOnStart = settings.value("m_restoreOnStart", m_restoreOnStart).toBool();    m_promptBeforeQuit = settings.value("m_promptBeforeQuit", m_promptBeforeQuit).toBool();    m_checkEnvironmentOnStartup = settings.value("m_checkEnvironmentOnStartup", m_checkEnvironmentOnStartup).toBool();    m_autoMaskDocks = settings.value("m_autoMaskDocks", m_autoMaskDocks).toBool();    m_endLine = (EndLine)settings.value("m_endLine", m_endLine).toInt();    m_tabSpaces = settings.value("m_tabSpaces", m_tabSpaces).toBool();    m_match = settings.value("m_match", m_match).toBool();    m_highlightCurrentLine = settings.value("m_highlightCurrentLine", m_highlightCurrentLine).toBool();    m_backgroundColor = QColor(settings.value("m_backgroundColor", m_backgroundColor).toString());    m_textColor = QColor(settings.value("m_textColor", m_textColor).toString());    m_currentLineColor = QColor(settings.value("m_currentLineColor", m_currentLineColor).toString());    m_matchingColor = QColor(settings.value("m_matchingColor", m_matchingColor).toString());    m_projectsDirectory = settings.value("m_projectsDirectory", m_projectsDirectory).toString();    m_pluginsDirectory = settings.value("m_pluginsDirectory", m_pluginsDirectory).toString();    m_includeDirectory = settings.value("m_includeDirectory", m_includeDirectory).toString();    m_documentationDirectory = settings.value("m_documentationDirectory", m_documentationDirectory).toString();    m_makeOptions = settings.value("m_makeOptions", m_makeOptions).toString();    m_showTreeClasses = settings.value("m_showTreeClasses", m_showTreeClasses).toBool();    m_closeButtonInTabs = settings.value("m_closeButtonInTabs", m_closeButtonInTabs).toBool();    m_displayEditorToolbars = settings.value("m_displayEditorToolbars", m_displayEditorToolbars).toBool();    slotUpdateOtherFileActions();    m_displayWhiteSpaces = settings.value("m_displayWhiteSpaces", m_displayWhiteSpaces).toBool();		if( !QDir().exists(m_includeDirectory) )	{		QMessageBox::warning(0, 			"QDevelop", tr("The Qt include directory doesn't exist,\nYou can change in Options dialog."), tr("Ok") );		}    setCrossButton( !m_closeButtonInTabs );    m_intervalUpdatingClasses = settings.value("m_intervalUpdatingClasses", m_intervalUpdatingClasses).toInt();    if ( m_currentLineColor == Qt::black )        m_currentLineColor = QColor();    m_mibCodec = settings.value("m_mibCodec", m_mibCodec).toInt();    //    m_formatPreprocessorText.setForeground( QColor(settings.value("m_formatPreprocessorText", m_formatPreprocessorText.foreground().color().name()).toString() ) );    m_formatQtText.setForeground( QColor(settings.value("m_formatQtText", m_formatQtText.foreground().color().name()).toString() ) );    m_formatSingleComments.setForeground( QColor(settings.value("m_formatSingleComments", m_formatSingleComments.foreground().color().name()).toString() ) );    m_formatMultilineComments.setForeground( QColor(settings.value("m_formatMultilineComments", m_formatMultilineComments.foreground().color().name()).toString() ) );    m_formatQuotationText.setForeground( QColor(settings.value("m_formatQuotationText", m_formatQuotationText.foreground().color().name()).toString() ) );    m_formatMethods.setForeground( QColor(settings.value("m_formatMethods", m_formatMethods.foreground().color().name()).toString() ) );    m_formatKeywords.setForeground( QColor(settings.value("m_formatKeywords", m_formatKeywords.foreground().color().name()).toString() ) );    actionEditor_mode->setChecked( settings.value("editorMode", actionEditor_mode->isChecked()).toBool() );    settings.endGroup();    tabExplorer->setTabEnabled( 1, m_showTreeClasses );    if (!m_showTreeClasses) //ToolsOptions/General        tabExplorer->setTabToolTip( 1, tr("Classes explorer is disabled, please enable it in the Options dialog") );    else        tabExplorer->setTabToolTip( 1, "" );    m_assistant->setdocumentationDirectory( m_documentationDirectory );    // Load shortcuts    settings.beginGroup("Shortcuts");    QList<QObject*> childrens;    childrens = children();    QListIterator<QObject*> iterator(childrens);    while ( iterator.hasNext() )    {        QObject *object = iterator.next();        QAction *action = qobject_cast<QAction*>(object);        if ( (action) && (!(action->data().toString().contains( "Recent|" ))) && (!action->objectName().isEmpty()) )        {            QString text = object->objectName();            if ( !text.isEmpty() )            {                QString shortcut = action->shortcut();                shortcut = settings.value(text, shortcut).toString();                action->setShortcut( shortcut );            }        }    }    settings.endGroup();    if ( m_restoreOnStart )    {        settings.beginGroup("Project");        projectName = settings.value("absoluteNameProjectFile").toString();        settings.endGroup();    }    //    settings.beginGroup("mainwindowstate");#ifdef Q_OS_WIN32    // Restores position, size and state for both normal and maximized/fullscreen state. Problems reported unter X11.    // See Qt doc: Geometry: Restoring a Window's Geometry for details.    restoreGeometry(settings.value("geometry", saveGeometry()).toByteArray()); // Window geometry and state.#else    // Restores position, size and state including maximized/fullscreen.    move(settings.value("pos", pos()).toPoint()); // Window position.    resize(settings.value("size", size()).toSize()); // Window size.    // Note: Yes, the window can be maximized and fullscreen!    if (settings.value("maximized", isMaximized()).toBool()) // Window maximized.        setWindowState(windowState() | Qt::WindowMaximized);    if (settings.value("fullscreen", isFullScreen()).toBool()) // Window fullscreen.        setWindowState(windowState() | Qt::WindowFullScreen);#endif    restoreState(settings.value("state", saveState()).toByteArray()); // Toolbar and DockWidget state.    tabExplorer->setCurrentIndex( settings.value("tabExplorer", 0).toInt() );    settings.endGroup();	settings.beginGroup("editormode");	QList<QDockWidget*> dockWidgets = findChildren<QDockWidget*>();	foreach( QWidget *w, dockWidgets )		toolbarStatus[w] = settings.value(w->objectName(),w->isVisible()).toBool();	settings.endGroup();    return projectName;}void MainImpl::closeEvent( QCloseEvent * event ){    int response = 0;    if ( m_promptBeforeQuit )    {        response = QMessageBox::question(this, "QDevelop",                                         tr("Do you want to quit QDevelop ?"),                                         tr("Yes"), tr("No"), QString(), 0, 1);    }    if ( response == 1 )    {        event->ignore();        return;    }    saveINI();    if ( slotCloseProject(true) )    {        delete m_assistant;        delete m_designer;        this->hide();  //give an impression of quick close        event->accept();    }    else        event->ignore();}//bool MainImpl::slotCloseAllFiles(){    bool ok = true;    foreach(Editor *editor, allEditors() )    {        if ( !editor->close() )            ok = false;        else            delete editor;    }    slotUpdateOtherFileActions();    return ok;}//static QString dir;void MainImpl::slotOpen(){	static QString selectedFilter;	    if ( dir.isEmpty() && m_projectManager )        dir = m_projectManager->projectDirectory( treeFiles->topLevelItem ( 0 ) );    QString s = QFileDialog::getOpenFileName(                    this,                    tr("Choose a file to open"),                    dir,                    tr("Sources")+" (*.cpp *.h);;"+                    tr("Projects")+" (*.pro);;"+                    tr("Texts")+" (*.txt *.TXT);;"+                    tr("All Files")+" (* *.*)",                    &selectedFilter                );    if ( s.isEmpty() )    {        // Cancel is clicked        return;    }    if ( s.right(4).toLower() == ".pro" )    {        openProject(s);    }    else        openFile( QStringList( s ) );    dir = QDir().absoluteFilePath( s );}void MainImpl::slotOpenProject(){    if ( dir.isEmpty() && m_projectManager )        dir = m_projectManager->projectDirectory( treeFiles->topLevelItem ( 0 ) );    QString s = QFileDialog::getOpenFileName(                    this,                    tr("Choose a project to open"),                    dir,                    tr("Projects")+" (*.pro)"                );    if ( s.isEmpty() )    {        // Cancel is clicked        return;    }    openProject(s);    dir = QDir().absoluteFilePath( s );}//bool MainImpl::openProject(QString s){    s = QDir::cleanPath( s );    QFile file ( s );    if ( !file.exists() )    {        QMessageBox::warning(this,                             "QDevelop", tr("The project %1 doesn't exist.").arg(s),                             tr("Cancel") );        return false;    }    if ( !slotCloseProject() )        return false;    if ( m_completion )        delete m_completion;    m_completion = new InitCompletion (this, treeClasses);    QString includes;    includes = m_includeDirectory;#ifdef WIN32    includes += "\" \"" + QDir::cleanPath( QFileInfo(m_qmakeName).absoluteDir().path()+"/../src" ) ;#endif    m_completion->setCtagsCmdPath( ctagsName() );    m_completion->setQtInclude( includes );    configureCompletion( QFileInfo(s).absoluteDir().path() );    m_projectManager = new ProjectManager(this, treeFiles, treeClasses);    m_projectManager->init(s);    treeFiles->setProjectManager( m_projectManager );    treeClasses->setProjectManager( m_projectManager );    connect(actionResetExecutablesList, SIGNAL(triggered()), m_projectManager, SLOT(slotResetExecutablesList()) );    connect(actionSaveProject, SIGNAL(triggered()), m_projectManager, SLOT(slotSaveProject()) );    connect(actionAddExistingFiles, SIGNAL(triggered()), m_projectManager, SLOT(slotAddExistingFiles()) );    connect(actionAddNewItem, SIGNAL(triggered()), m_projectManager, SLOT(slotAddNewItem()) );    connect(actionAddNewClass, SIGNAL(triggered()), m_projectManager, SLOT(slotAddNewClass()) );    connect(actionAddScope, SIGNAL(triggered()), m_projectManager, SLOT(slotAddScope()) );

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -