void FormWindowBase::reloadProperties() { pixmapCache()->clear(); iconCache()->clear(); QMapIterator<QDesignerPropertySheet *, QMap<int, bool> > itSheet(m_d->m_reloadableResources); while (itSheet.hasNext()) { QDesignerPropertySheet *sheet = itSheet.next().key(); QMapIterator<int, bool> itIndex(itSheet.value()); while (itIndex.hasNext()) { const int index = itIndex.next().key(); const QVariant newValue = sheet->property(index); if (qobject_cast<QLabel *>(sheet->object()) && sheet->propertyName(index) == QLatin1String("text")) { const PropertySheetStringValue newString = qvariant_cast<PropertySheetStringValue>(newValue); // optimize a bit, reset only if the text value might contain a reference to qt resources // (however reloading of icons other than taken from resources might not work here) if (newString.value().contains(QLatin1String(":/"))) { const QVariant resetValue = QVariant::fromValue(PropertySheetStringValue()); sheet->setProperty(index, resetValue); } } sheet->setProperty(index, newValue); } if (QTabWidget *tabWidget = qobject_cast<QTabWidget *>(sheet->object())) { const int count = tabWidget->count(); const int current = tabWidget->currentIndex(); const QString currentTabIcon = QLatin1String("currentTabIcon"); for (int i = 0; i < count; i++) { tabWidget->setCurrentIndex(i); const int index = sheet->indexOf(currentTabIcon); sheet->setProperty(index, sheet->property(index)); } tabWidget->setCurrentIndex(current); } else if (QToolBox *toolBox = qobject_cast<QToolBox *>(sheet->object())) { const int count = toolBox->count(); const int current = toolBox->currentIndex(); const QString currentItemIcon = QLatin1String("currentItemIcon"); for (int i = 0; i < count; i++) { toolBox->setCurrentIndex(i); const int index = sheet->indexOf(currentItemIcon); sheet->setProperty(index, sheet->property(index)); } toolBox->setCurrentIndex(current); } } QMapIterator<QDesignerPropertySheet *, QObject *> itSh(m_d->m_reloadablePropertySheets); while (itSh.hasNext()) { QObject *object = itSh.next().value(); reloadIconResources(iconCache(), object); } }
void TableWidgetEditor::on_rowEditor_itemInserted(int idx) { const int rowCount = ui.tableWidget->rowCount(); ui.tableWidget->setRowCount(rowCount + 1); QTableWidgetItem *newItem = new QTableWidgetItem(m_rowEditor->newItemText()); newItem->setData(Qt::DisplayPropertyRole, QVariant::fromValue(PropertySheetStringValue(m_rowEditor->newItemText()))); ui.tableWidget->setVerticalHeaderItem(rowCount, newItem); moveRowsDown(idx, rowCount); int col = ui.tableWidget->currentColumn(); if (col >= 0) ui.tableWidget->setCurrentCell(idx, col); updateEditor(); }
void TableWidgetEditor::on_columnEditor_itemInserted(int idx) { const int columnCount = ui.tableWidget->columnCount(); ui.tableWidget->setColumnCount(columnCount + 1); QTableWidgetItem *newItem = new QTableWidgetItem(m_columnEditor->newItemText()); newItem->setData(Qt::DisplayPropertyRole, QVariant::fromValue(PropertySheetStringValue(m_columnEditor->newItemText()))); ui.tableWidget->setHorizontalHeaderItem(columnCount, newItem); moveColumnsLeft(idx, columnCount); int row = ui.tableWidget->currentRow(); if (row >= 0) ui.tableWidget->setCurrentCell(row, idx); updateEditor(); }
void TreeWidgetEditor::on_newSubItemButton_clicked() { QTreeWidgetItem *curItem = ui.treeWidget->currentItem(); if (!curItem) return; ui.treeWidget->blockSignals(true); QTreeWidgetItem *newItem = new QTreeWidgetItem(curItem); const QString newItemText = tr("New Subitem"); newItem->setText(0, newItemText); newItem->setData(0, Qt::DisplayPropertyRole, QVariant::fromValue(PropertySheetStringValue(newItemText))); newItem->setFlags(newItem->flags() | Qt::ItemIsEditable); ui.treeWidget->blockSignals(false); ui.treeWidget->setCurrentItem(newItem, ui.treeWidget->currentColumn()); updateEditor(); ui.treeWidget->editItem(newItem, ui.treeWidget->currentColumn()); }
void TreeWidgetEditor::on_newItemButton_clicked() { QTreeWidgetItem *curItem = ui.treeWidget->currentItem(); QTreeWidgetItem *newItem = 0; ui.treeWidget->blockSignals(true); if (curItem) { if (curItem->parent()) newItem = new QTreeWidgetItem(curItem->parent(), curItem); else newItem = new QTreeWidgetItem(ui.treeWidget, curItem); } else newItem = new QTreeWidgetItem(ui.treeWidget); const QString newItemText = tr("New Item"); newItem->setText(0, newItemText); newItem->setData(0, Qt::DisplayPropertyRole, qVariantFromValue(PropertySheetStringValue(newItemText))); newItem->setFlags(newItem->flags() | Qt::ItemIsEditable); ui.treeWidget->blockSignals(false); ui.treeWidget->setCurrentItem(newItem, qMax(ui.treeWidget->currentColumn(), 0)); updateEditor(); ui.treeWidget->editItem(newItem, ui.treeWidget->currentColumn()); }