📄 projectpropertieimpl.cpp
字号:
else { QTreeWidgetItem *itConfig = subItConfig( itCombo ); if ( !itConfig ) { itConfig = new QTreeWidgetItem( itCombo ); itConfig->setText(0, "CONFIG"); itConfig->setData(0, Qt::UserRole, m_projectManager->toItem("CONFIG", "+=")); m_copyTreeFiles->setItemHidden(itConfig, true); } it = itConfig; } if ( activer ) { QTreeWidgetItem *nouvelItem = new QTreeWidgetItem( it ); nouvelItem->setText(0, nomVariable); nouvelItem->setData(0, Qt::UserRole, m_projectManager->toItem("DATA")); } else { for (int i=0; i<it->childCount(); i++) { if ( it->child( i )->text( 0 ) == nomVariable ) { QTreeWidgetItem *parent = it->child( i )->parent(); delete it->child( i ); while ( !parent->childCount() && m_projectManager->toKey( parent->data(0, Qt::UserRole) ) != "PROJECT" && m_projectManager->toKey( parent->data(0, Qt::UserRole) ) != "SCOPE" ) { it = parent->parent(); delete parent; parent = it; } } } }}//QTreeWidgetItem *ProjectPropertieImpl::subItTemplate(QTreeWidgetItem *it){ for (int i=0; i<it->childCount(); i++) { QTreeWidgetItem *item = it->child( i ); QString cle = m_projectManager->toKey( item->data(0, Qt::UserRole) ); if ( cle == "TEMPLATE" ) return item; } return 0;}//QTreeWidgetItem *ProjectPropertieImpl::subItQT(QTreeWidgetItem *it){ for (int i=0; i<it->childCount(); i++) { QTreeWidgetItem *item = it->child( i ); QString cle = m_projectManager->toKey( item->data(0, Qt::UserRole) ); if ( cle == "QT" ) return item; } return 0;}//QTreeWidgetItem *ProjectPropertieImpl::subItConfig(QTreeWidgetItem *it){ for (int i=0; i<it->childCount(); i++) { QTreeWidgetItem *item = it->child( i ); QString cle = m_projectManager->toKey( item->data(0, Qt::UserRole) ); if ( cle == "CONFIG" ) return item; } return 0;}//void ProjectPropertieImpl::copyTreeWidget(QTreeWidgetItem *source, QTreeWidgetItem *dest){ if ( source == m_itProject ) m_copyItProject = dest; dest->setText(0, source->text(0)); dest->setData(0, Qt::UserRole, source->data(0, Qt::UserRole ) ); dest->setToolTip(0, source->toolTip(0) ); dest->setIcon(0, source->icon(0)); dest->treeWidget()->setItemHidden(dest, source->treeWidget()->isItemHidden(source)); dest->treeWidget()->setItemExpanded(dest, source->treeWidget()->isItemExpanded(source)); for (int i=0; i<source->childCount(); i++) { copyTreeWidget(source->child(i), new QTreeWidgetItem( dest ) ); }}//void ProjectPropertieImpl::slotAccept(){ QVariant variant = comboScope->itemData( comboScope->currentIndex() ); //QTreeWidgetItem *itCombo = reinterpret_cast<QTreeWidgetItem*>(variant.toUInt()); QTreeWidgetItem *itCombo = (QTreeWidgetItem*)variantToItem(variant); QTreeWidgetItem *itConfig = subItConfig( itCombo ); if ( !itConfig && supplement->text().simplified().split(" ", QString::SkipEmptyParts).count() ) { itConfig = new QTreeWidgetItem( m_copyItProject ); itConfig->setText(0, "CONFIG"); itConfig->setData(0, Qt::UserRole, m_projectManager->toItem("CONFIG", "+=") ); m_copyTreeFiles->setItemHidden(itConfig, true); } foreach(QString nomVariable, supplement->text().simplified().split(" ", QString::SkipEmptyParts)) { QTreeWidgetItem *nouvelItem = new QTreeWidgetItem( itConfig ); nouvelItem->setText(0, nomVariable); nouvelItem->setData(0, Qt::UserRole, m_projectManager->toItem("DATA")); } m_treeFiles->clear(); new QTreeWidgetItem(m_treeFiles); copyTreeWidget(m_copyTreeFiles->topLevelItem(0), m_treeFiles->topLevelItem(0)); m_treeFiles->setItemExpanded(m_treeFiles->topLevelItem(0), m_copyTreeFiles->isItemExpanded(m_copyTreeFiles->topLevelItem(0))); //m_projectManager->setSrcDirectory(m_projectManager->itemProject(m_projectName), srcDirectory->text() ); //m_projectManager->setUiDirectory(m_projectManager->itemProject(m_projectName), uiDirectory->text() ); accept();}//void ProjectPropertieImpl::slotCurrentItemChanged ( QListWidgetItem * current, QListWidgetItem * /*previous*/ ){ valuesList->clear(); if ( !current ) return; QVariant variant = current->data( Qt::UserRole ); QTreeWidgetItem *item = (QTreeWidgetItem*)variantToItem(variant); for (int nb=0; nb < item->childCount(); nb++) { valuesList->addItem( item->child( nb )->text(0) ); valuesList->item( valuesList->count()-1 )->setData(Qt::UserRole, addressToVariant(item->child( nb ) ) ); }}//void ProjectPropertieImpl::slotAddVariable(){ QString nouvelleVariable; //QString text = QInputDialog::getText(this, "QDevelop", //tr("New variable:"), QLineEdit::Normal, //"", &ok); QString text; QDialog *newVariable = new QDialog; Ui::NewVariable ui; ui.setupUi(newVariable); newVariable->setWindowTitle("QDevelop"); QComboBox *c = ui.comboVariables; makeComboVariables( c ); bool ok = newVariable->exec(); if (ok) { if ( ui.groupUserVariable->isChecked() && !ui.userVariable->text().isEmpty() ) nouvelleVariable = ui.userVariable->text(); else if ( !ui.groupUserVariable->isChecked() ) nouvelleVariable = ui.comboVariables->itemData(ui.comboVariables->currentIndex(), Qt::UserRole).toString(); else { delete newVariable; return; } } else { delete newVariable; return; } QComboBox *comboOperator = ui.comboOperator; QVariant variant = comboScope->itemData( comboScope->currentIndex() ); //QTreeWidgetItem *item = reinterpret_cast<QTreeWidgetItem*>(variant.toUInt()); QTreeWidgetItem *item = (QTreeWidgetItem*)variantToItem(variant); QTreeWidgetItem *nouvelItem = new QTreeWidgetItem( item ); m_copyTreeFiles->setItemHidden(nouvelItem, true); nouvelItem->setText(0, nouvelleVariable); nouvelItem->setData(0, Qt::UserRole, m_projectManager->toItem(nouvelleVariable, comboOperator->currentText())); slotComboScope( comboScope->currentIndex() );}//void ProjectPropertieImpl::slotDeleteVariable(){ QListWidgetItem *itemCourant; if ( !(itemCourant = variablesList->currentItem()) ) return; QVariant variant = itemCourant->data( Qt::UserRole ); //QTreeWidgetItem *itemTree = reinterpret_cast<QTreeWidgetItem*>(variant.toUInt()); QTreeWidgetItem *itemTree = (QTreeWidgetItem*)variantToItem(variant); delete itemTree; slotComboScope( comboScope->currentIndex() );}//void ProjectPropertieImpl::slotAddValue(){ QListWidgetItem *itemCourant; if ( !(itemCourant = variablesList->currentItem()) ) return; QString nouvelleValeur; bool ok; int corriger = -1; QString text; do { text = QInputDialog::getText(this, "QDevelop", tr("New Value:"), QLineEdit::Normal, text, &ok); if ( text.contains(" ") && !text.contains("\"")) { corriger = QMessageBox::warning(0, "QDevelop", tr("The spaces aren't correctly parsed by qmake") +",\n" +tr("delete spaces or put quotes."), tr("Modify"), tr("Cancel") ); if ( corriger == 1 ) ok = false; } } while ( ok && corriger==0 ); if (ok && !text.isEmpty()) nouvelleValeur = text; else return; QVariant variant = itemCourant->data( Qt::UserRole ); QTreeWidgetItem *item = (QTreeWidgetItem*)variantToItem(variant); QTreeWidgetItem *nouvelItem = new QTreeWidgetItem( item ); m_copyTreeFiles->setItemHidden(nouvelItem, true); nouvelItem->setText(0, nouvelleValeur); nouvelItem->setData(0, Qt::UserRole, m_projectManager->toItem("DATA")); slotCurrentItemChanged(variablesList->currentItem(), 0);}//void ProjectPropertieImpl::slotDeleteValue(){ QListWidgetItem *itemCourant; if ( !(itemCourant = valuesList->currentItem()) ) return; QVariant variant = itemCourant->data( Qt::UserRole ); //QTreeWidgetItem *itemTree = reinterpret_cast<QTreeWidgetItem*>(variant.toUInt()); QTreeWidgetItem *itemTree = (QTreeWidgetItem*)variantToItem(variant); delete itemTree; slotCurrentItemChanged(variablesList->currentItem(), 0);}//void ProjectPropertieImpl::slotModifyValue(){ QListWidgetItem *itemCourant; if ( !(itemCourant = valuesList->currentItem()) ) return; QVariant variant = itemCourant->data( Qt::UserRole ); QString nouvelleValeur; //QTreeWidgetItem *itemTree = reinterpret_cast<QTreeWidgetItem*>(variant.toUInt()); QTreeWidgetItem *itemTree = (QTreeWidgetItem*)variantToItem(variant); bool ok; int corriger = -1; QString text = itemCourant->text(); do { text = QInputDialog::getText(this, "QDevelop", tr("New Value:"), QLineEdit::Normal, text, &ok); if ( text.contains(" ") && !text.contains("\"")) { corriger = QMessageBox::warning(0, "QDevelop",
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -