📄 projectmanager.cpp
字号:
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 + -