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

📄 projectmanager.cpp

📁 用Qt4编写的linux IDE开发环境
💻 CPP
📖 第 1 页 / 共 5 页
字号:
    for (int nbProjects=0; nbProjects < projectsList.count(); nbProjects++)    {        QString projectName = projectsList.at(nbProjects)->text(0);        QString projectDir = findData(projectName, "projectDirectory");        QString srcDir = srcDirectory( itemProject(projectName) );        srcDir = QDir( projectDir ).relativeFilePath( srcDir );        QString uiDir = uiDirectory( itemProject(projectName) );        uiDir = QDir( projectDir ).relativeFilePath( uiDir );        QSqlQuery query( QSqlDatabase::database( directory + "/qdevelop-settings.db" ));        query.prepare("INSERT INTO projectsDirectories (projectName, srcDirectory, uiDirectory) "                      "VALUES (:projectName, :srcDirectory, :uiDirectory)");        query.bindValue(":projectName", projectName);        query.bindValue(":srcDirectory", srcDir);        query.bindValue(":uiDirectory", uiDir);        if ( !query.exec() )            qDebug()<<"projectsDirectories" << query.lastError();    }    //    query.prepare("INSERT INTO config (currentEditor) "                  "VALUES (:currentEditor)");    if ( m_parent->tabEditors()->count() )        query.bindValue(":currentEditor", m_parent->tabEditors()->currentIndex());    else        query.bindValue(":currentEditor", -1);    if ( !query.exec() )        qDebug()<<"config" << query.lastError();}//void ProjectManager::loadProjectSettings(){    // Save opened files    QString directory = projectDirectory(m_treeFiles->topLevelItem(0));    if ( !connectDB( directory + "/qdevelop-settings.db" ) )        return;    QSqlQuery query( QSqlDatabase::database( directory + "/qdevelop-settings.db" ));    query.prepare("select * from editors where 1");    query.exec();    while (query.next())    {        QString filename = query.value(0).toString();        filename = QDir( directory ).absoluteFilePath( filename );        int scrollbar = query.value(1).toInt();        int numline = query.value(2).toInt();        m_parent->openFile( QStringList( filename ) );        if ( m_parent->tabEditors()->count() && numline )        {            m_parent->givenEditor( m_parent->tabEditors()->count()-1 )->setVerticalScrollBar( scrollbar );            m_parent->givenEditor( m_parent->tabEditors()->count()-1 )->gotoLine( numline,false );        }    }    //    query.prepare("select * from bookmarks where 1");    query.exec();    while (query.next())    {        QString filename = query.value(0).toString();        filename = QDir( directory ).absoluteFilePath( filename );        int line = query.value(1).toInt();        Editor *editor = m_parent->openFile( QStringList(filename) );        if ( editor )            editor->toggleBookmark( line );    }    //    query.prepare("select * from breakpoints where 1");    query.exec();    while (query.next())    {        QString filename = query.value(0).toString();        filename = QDir( directory ).absoluteFilePath( filename );        int line = query.value(1).toInt();        QString breakpointCondition = query.value(2).toString();        bool isTrue = query.value(3).toBool();        Editor *editor = m_parent->openFile( QStringList(filename) );        if ( editor )            editor->toggleBreakpoint(line, breakpointCondition, isTrue);    }    //    query.prepare("select * from config where 1");    query.exec();    while (query.next())    {        int currentEditor = query.value( 0 ).toInt();        if ( currentEditor != -1 )            m_parent->tabEditors()->setCurrentIndex( currentEditor );    }    //    query.prepare("select * from projectsDirectories where 1");    query.exec();    while (query.next())    {        QString projectName = query.value( 0 ).toString();        QString projectDir = projectDirectory( projectName );        QString srcDir = query.value( 1 ).toString();        srcDir = QDir( projectDir ).absoluteFilePath( srcDir );        QString uiDir = query.value( 2 ).toString();        uiDir = QDir( projectDir ).absoluteFilePath( uiDir );        QTreeWidgetItem *itProject = itemProject( projectName );        setSrcDirectory(itProject, srcDir);        setUiDirectory(itProject, uiDir);    }}//void ProjectManager::slotAddExistingFiles(QTreeWidgetItem *it){    if ( !it )        it = m_treeFiles->currentItem();    if ( !it )        it = m_treeFiles->topLevelItem( 0 );    QString projectName;    QString projectDir;    QString plateforme;    QStringList filesList;    AddExistantImpl *window = new AddExistantImpl(this);    QList<QTreeWidgetItem *> projectsList;    childsList(0, "PROJECT", projectsList);    for (int nbProjects=0; nbProjects < projectsList.count(); nbProjects++)    {        projectName = projectsList.at(nbProjects)->text(0);        projectDir = findData(projectName, "projectDirectory");        QList<QTreeWidgetItem *> listeTemplate;        bool ajouter = true;        for (int enfant=0; enfant<projectsList.at(nbProjects)->childCount(); enfant++)        {            ajouter = true;            if ( toKey( projectsList.at(nbProjects)->child(enfant)->data(0,Qt::UserRole) ) == "TEMPLATE")            {                QTreeWidgetItem *itTemplate = projectsList.at(nbProjects)->child(enfant);                for (int nbTemplate=0; nbTemplate < itTemplate->childCount(); nbTemplate++)                {                    if ( itTemplate->child(nbTemplate)->text(0) == "subdirs" )                    {                        ajouter = false;                        break;                    }                }            }        }        if ( ajouter )        {            //window->comboProjects->addItem( projectName,  QVariant(reinterpret_cast<uint>(projectsList.at(nbProjects))));            window->comboProjects->addItem( projectName,  addressToVariant( projectsList.at(nbProjects) ) );            if ( projectsList.at(nbProjects) == it )                window->comboProjects->setCurrentIndex( window->comboProjects->count()-1);            QList<QTreeWidgetItem *> listeScope;            childsList(projectsList.at(nbProjects), "SCOPE", listeScope);            for (int nbScope=0; nbScope < listeScope.count(); nbScope++)            {                QString nomScope;                QTreeWidgetItem *tmp = listeScope.at(nbScope);                int nbSpace = 0;                while ( tmp )                {                    QString cleTmp = toKey( tmp->data(0,Qt::UserRole) );                    QString indent;                    for (int i=0; i<nbSpace; i++)                        indent += "  ";                    if ( cleTmp == "SCOPE" || cleTmp == "PROJECT" )                        nomScope = indent + tmp->text(0) + ":" + nomScope.simplified();                    if ( cleTmp == "PROJECT" )                        break;                    tmp = tmp->parent();                    nbSpace++;                }                //window->comboProjects->addItem( nomScope, QVariant(reinterpret_cast<uint>(listeScope.at(nbScope))));                window->comboProjects->addItem( nomScope, addressToVariant(listeScope.at(nbScope)));                if ( listeScope.at(nbScope) == it )                    window->comboProjects->setCurrentIndex( window->comboProjects->count()-1);            }        }    }    //    if ( window->comboProjects->count() == 1 )        window->comboProjects->setEnabled( false );    window->slotComboProjects( window->comboProjects->currentText() );    QVariant variant;    if ( window->exec() == QDialog::Accepted )    {        projectName = window->comboProjects->currentText();        QString line = window->filename->text();        filesList = line.split(",");        variant = window->comboProjects->itemData( window->comboProjects->currentIndex() );        delete window;    }    else    {        delete window;        return;    }    //QTreeWidgetItem *item = reinterpret_cast<QTreeWidgetItem*>(variant.toUInt());    QTreeWidgetItem *item = (QTreeWidgetItem*)variantToItem(variant);    projectDir = projectDirectory( item );    setQmake( projectFilename(item) );    foreach(QString filename, filesList)    {        filename = filename.remove("\"").simplified();        filename = QDir(projectDir).relativeFilePath(filename).replace("\\", "/");        insertFile(item, filename);    }    m_parent->configureCompletion( projectDirectory(m_treeFiles->topLevelItem( 0 ) ) );}//void ProjectManager::slotAddNewClass(QTreeWidgetItem *it){    if ( !it )        it = m_treeFiles->currentItem();    if ( !it )        it = m_treeFiles->topLevelItem( 0 );    QString projectName;    QString projectDir;    QString absoluteFilename;    QString plateforme;    QStringList filesList;    AddNewClassImpl *window = new AddNewClassImpl(this);    QList<QTreeWidgetItem *> projectsList;    childsList(0, "PROJECT", projectsList);    for (int nbProjects=0; nbProjects < projectsList.count(); nbProjects++)    {        projectName = projectsList.at(nbProjects)->text(0);        projectDir = findData(projectName, "projectDirectory");        QList<QTreeWidgetItem *> listeTemplate;        bool ajouter = true;        for (int enfant=0; enfant<projectsList.at(nbProjects)->childCount(); enfant++)        {            ajouter = true;            if ( toKey( projectsList.at(nbProjects)->child(enfant)->data(0,Qt::UserRole) ) == "TEMPLATE")            {                QTreeWidgetItem *itTemplate = projectsList.at(nbProjects)->child(enfant);                for (int nbTemplate=0; nbTemplate < itTemplate->childCount(); nbTemplate++)                {                    if ( itTemplate->child(nbTemplate)->text(0) == "subdirs" )                    {                        ajouter = false;                        break;                    }                }            }        }        if ( ajouter )        {            window->comboProjects->addItem( projectName,  addressToVariant(projectsList.at(nbProjects)));            if ( projectsList.at(nbProjects) == it )                window->comboProjects->setCurrentIndex( window->comboProjects->count()-1);            QList<QTreeWidgetItem *> listeScope;            childsList(projectsList.at(nbProjects), "SCOPE", listeScope);            for (int nbScope=0; nbScope < listeScope.count(); nbScope++)            {                QString nomScope;                QTreeWidgetItem *tmp = listeScope.at(nbScope);                int nbSpace = 0;                while ( tmp )                {                    QString cleTmp = toKey( tmp->data(0,Qt::UserRole) );                    QString indent;                    for (int i=0; i<nbSpace; i++)                        indent += "  ";                    if ( cleTmp == "SCOPE" || cleTmp == "PROJECT" )                        nomScope = indent + tmp->text(0) + ":" + nomScope.simplified();                    if ( cleTmp == "PROJECT" )                        break;                    tmp = tmp->parent();                    nbSpace++;                }                window->comboProjects->addItem( nomScope, addressToVariant(listeScope.at(nbScope)));                if ( listeScope.at(nbScope) == it )                    window->comboProjects->setCurrentIndex( window->comboProjects->count()-1);            }        }    }    //    if ( window->comboProjects->count() == 1 )        window->comboProjects->setEnabled( false );    window->on_comboProjects_currentIndexChanged( window->comboProjects->currentIndex() );    if ( window->exec() == QDialog::Accepted )        m_isModifiedProject = true;    delete window;    m_parent->configureCompletion( projectDirectory(m_treeFiles->topLevelItem( 0 ) ) );}//void ProjectManager::slotAddNewItem(QTreeWidgetItem *it, QString kind){    if ( !it )        it = m_treeFiles->currentItem();    if ( !it )        it = m_treeFiles->topLevelItem( 0 );    QString projectName;    QString projectDir;    QString absoluteFilename;    QString plateforme;    QStringList filesList;    AddNewImpl *window = new AddNewImpl(this);    if ( !kind.isEmpty() )    {        if ( kind == "SOURCES" )            window->source->setChecked(true);        else if ( kind == "HEADERS" )            window->header->setChecked(true);        else if ( kind == "FORMS" )            window->dialog->setChecked(true);        else if ( kind == "RESOURCES" )            window->resource->setChecked(true);        else if ( kind == "TRANSLATIONS" )            window->translation->setChecked(true);    }    QList<QTreeWidgetItem *> projectsList;    childsList(0, "PROJECT", projectsList);    for (int nbProjects=0; nbProjects < projectsList.count(); nbProjects++)    {        projectName = projectsList.at(nbProjects)->text(0);        projectDir = findData(projectName, "projectDirectory");        QList<QTreeWidgetItem *> listeTemplate;        bool ajouter = true;        for (int enfant=0; enfant<projectsList.at(nbProjects)->childCount(); enfant++)        {            ajouter = true;            if ( toKey( projectsList.at(nbProjects)->child(enfant)->data(0,Qt::UserRole) ) == "TEMPLATE")            {                QTreeWidgetItem *itTemplate = projectsList.at(nbProjects)->child(enfant);                for (int nbTemplate=0; nbTemplate < itTemplate->childCount(); nbTemplate++)                {                    if ( itTemplate->child(nbTemplate)->text(0) == "subdirs" )                    {                        ajouter = false;                        break;                    }                }            }        }        if ( ajouter )        {            window->comboProjects->addItem( projectName,  addressToVariant(projectsList.at(nbProjects)));            if ( projectsList.at(nbProjects) == it )                window->comboProjects->setCurrentIndex( window->comboProjects->count()-1);            QList<QTreeWidgetItem *> listeScope;            childsList(projectsList.at(nbProjects), "SCOPE", listeScope);            for (int nbScope=0; nbScope < listeScope.count(); nbScope++)            {                QString nomScope;                QTreeWidgetItem *tmp = listeScope.at(nbScope);                int nbSpace = 0;                while ( tmp )                {

⌨️ 快捷键说明

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