23 #include "commongui.h"
25 #include <QInputDialog>
27 #include <QStandardItemModel>
28 #include <QStringList>
29 #include <QTableWidget>
32 bool *ok,
const QString &defaultString)
34 return QInputDialog::getText(
nullptr, title, label, QLineEdit::Normal,
41 auto model =
static_cast<QStandardItemModel *
>(
43 for (
int i = 0; i < model->rowCount(); ++i)
44 list << (model->item(i)->checkState() == Qt::Checked);
52 auto model =
static_cast<QStandardItemModel *
>(
54 for (
int i = 0; i < model->rowCount(); ++i)
55 list << model->item(i)->text();
60 void CommonGUI::removeSelectedRowsFromQTableWidget(QTableWidget *table)
65 QMap<int, QTableWidgetItem *> uniqueRowsItems;
66 for (QTableWidgetItem *item : table->selectedItems())
68 uniqueRowsItems.insert(item->row(), item);
70 for (QTableWidgetItem *item : uniqueRowsItems.values())
72 int row = table->row(item);
74 table->removeRow(row);
81 QItemSelectionModel *selModel = view->selectionModel();
82 QModelIndexList indexList = selModel->selectedIndexes();
85 auto model =
static_cast<QStandardItemModel *
>(view->model());
86 QList<QStandardItem *> itemList;
87 int lowestRemovedRow = 0;
88 for (
int i = 0; i < indexList.count(); ++i)
90 const QModelIndex &index = indexList[i];
91 itemList << model->itemFromIndex(index);
92 if (index.row() > lowestRemovedRow)
93 lowestRemovedRow = index.row();
96 for (
int i = 0; i < itemList.count(); ++i)
98 QModelIndex index = model->indexFromItem(itemList[i]);
99 model->removeRow(index.row());
102 if (bSelectNextItem && !indexList.isEmpty())
104 int selectRowIdx = lowestRemovedRow;
105 selectRowIdx -= indexList.size();
107 if (selectRowIdx + 1 < model->rowCount())
110 if (selectRowIdx >= 0)
112 QModelIndex newIdx = model->index(selectRowIdx, 0);
113 selModel->select(newIdx, QItemSelectionModel::ClearAndSelect);
119 const QStringList &stringList)
121 auto model =
static_cast<QStandardItemModel *
>(
122 targetListview->model());
123 model->removeRows(0, model->rowCount());
125 for (
const QString &str : stringList)
127 auto pItem =
new QStandardItem();
129 model->appendRow(pItem);