void PublicationDashboardWindow::updateTreeWidget() { ui.treeWidget->clear(); //find records in range QList<PublicationRecord> recordsInRange = filterByDateRange(records, ui.startDateSelector->date(), ui.endDateSelector->date()); //count the records QMap<QString, int> pubTypeSummary; QMap<QString, QMap<QString, int>> nameSummary; QMap<QString, QMap<QString, QSet<QString>>> titleSummary; for (const PublicationRecord &record : recordsInRange) { ++pubTypeSummary[record.type]; ++nameSummary[record.type][record.memberName]; titleSummary[record.type][record.memberName].insert(record.title); } //build the view QTreeWidgetItem *root = new QTreeWidgetItem(ui.treeWidget, (QStringList() << "Publications" << "" << "" << "" << QString::number(recordsInRange.size()))); root->setTextAlignment(totalNumColumn, Qt::AlignRight); ui.treeWidget->expandItem(root); for (auto pubType = pubTypeSummary.begin(); pubType != pubTypeSummary.end(); ++pubType) { QTreeWidgetItem *pubNode = new QTreeWidgetItem(root, (QStringList() << "" << pubType.key() << "" << "" << QString::number(pubType.value()))); pubNode->setTextAlignment(totalNumColumn, Qt::AlignRight); QMap<QString, int> &currNameSummary = nameSummary[pubType.key()]; for (auto name = currNameSummary.begin(); name != currNameSummary.end(); ++name) { QTreeWidgetItem *nameNode = new QTreeWidgetItem(pubNode, (QStringList() << "" << "" << name.key() << "" << QString::number(name.value()))); nameNode->setTextAlignment(totalNumColumn, Qt::AlignRight); QSet<QString> &currTitleSummary = titleSummary[pubType.key()][name.key()]; for (QString &title : sortSet(currTitleSummary)) { QTreeWidgetItem *titleNode = new QTreeWidgetItem(nameNode, (QStringList() << "" << "" << "" << title << "")); titleNode->setTextAlignment(totalNumColumn, Qt::AlignRight); } } } //set the dropdown values ui.visualizationFacultyNameSelector->clear(); ui.visualizationFacultyNameSelector->addItems(listFacultyNames(recordsInRange)); setColumnWidths(); }
PointTableWidget::PointTableWidget(QWidget * parent, const QPolygonF * const points, const Settings * const settings) : QTableWidget(parent) , points(*points) { if (settings == NULL) setDefaultSettings(); else this->settings = *settings; setColumnCount(this->settings.colHeader.size()); setHorizontalHeaderLabels(this->settings.colHeader); setColumnWidths(); setSelectionMode(QAbstractItemView::ExtendedSelection); if (this->settings.autoSelectRow) setSelectionBehavior(QAbstractItemView::SelectRows); editingCell = QPoint(-1, -1); connect(this, SIGNAL(cellDoubleClicked(int,int)), this, SLOT(cellEditingSlot(int,int))); connect(this, SIGNAL(cellChanged(int,int)), this, SLOT(updateCell(int,int))); }
void DashboardWindow::on_treeWidget_expanded() { setColumnWidths(); }
void DashboardWindow::on_treeWidget_collapsed() { setColumnWidths(); }