23 #include "commongui.h"
26 #include <QInputDialog>
28 #include <QStandardItemModel>
29 #include <QStringList>
30 #include <QTableWidget>
33 bool *ok,
const QString &defaultString)
35 return getText(
nullptr, title, label, QLineEdit::Normal,
40 QLineEdit::EchoMode mode,
const QString &text,
bool *ok)
45 QInputDialog dialog(parent);
47 dialog.setWindowTitle(title);
48 dialog.setLabelText(label);
49 dialog.setInputMode(QInputDialog::TextInput);
50 dialog.setTextValue(text);
51 dialog.setTextEchoMode(mode);
52 *ok = (dialog.exec() == QDialog::Accepted);
53 return (*ok) ? dialog.textValue() : QString();
59 auto model =
static_cast<QStandardItemModel *
>(
61 for (
int i = 0; i < model->rowCount(); ++i)
62 list << (model->item(i)->checkState() == Qt::Checked);
70 auto model =
static_cast<QStandardItemModel *
>(
72 for (
int i = 0; i < model->rowCount(); ++i)
73 list << model->item(i)->text();
78 void CommonGUI::removeSelectedRowsFromQTableWidget(QTableWidget *table)
83 QMap<int, QTableWidgetItem *> uniqueRowsItems;
84 for (QTableWidgetItem *item : table->selectedItems())
86 uniqueRowsItems.insert(item->row(), item);
88 for (QTableWidgetItem *item : uniqueRowsItems.values())
90 int row = table->row(item);
92 table->removeRow(row);
99 QItemSelectionModel *selModel = view->selectionModel();
100 QModelIndexList indexList = selModel->selectedIndexes();
103 auto model =
static_cast<QStandardItemModel *
>(view->model());
104 QList<QStandardItem *> itemList;
105 int lowestRemovedRow = 0;
106 for (
int i = 0; i < indexList.count(); ++i)
108 const QModelIndex &index = indexList[i];
109 itemList << model->itemFromIndex(index);
110 if (index.row() > lowestRemovedRow)
111 lowestRemovedRow = index.row();
114 for (
int i = 0; i < itemList.count(); ++i)
116 QModelIndex index = model->indexFromItem(itemList[i]);
117 model->removeRow(index.row());
120 if (bSelectNextItem && !indexList.isEmpty())
122 int selectRowIdx = lowestRemovedRow;
123 selectRowIdx -= indexList.size();
125 if (selectRowIdx + 1 < model->rowCount())
128 if (selectRowIdx >= 0)
130 QModelIndex newIdx = model->index(selectRowIdx, 0);
131 selModel->select(newIdx, QItemSelectionModel::ClearAndSelect);
138 dialog.setWindowFlags(dialog.windowFlags() & (~Qt::WindowContextHelpButtonHint));
142 const QStringList &stringList)
144 auto model =
static_cast<QStandardItemModel *
>(
145 targetListview->model());
146 model->removeRows(0, model->rowCount());
148 for (
const QString &str : stringList)
150 auto pItem =
new QStandardItem();
152 model->appendRow(pItem);