23 #include "commongui.h"
26 #include <QGuiApplication>
27 #include <QInputDialog>
30 #include <QStandardItemModel>
31 #include <QStringList>
32 #include <QTableWidget>
35 bool *ok,
const QString &defaultString)
37 return getText(
nullptr, title, label, QLineEdit::Normal,
42 QLineEdit::EchoMode mode,
const QString &text,
bool *ok)
47 QInputDialog dialog(parent);
49 dialog.setWindowTitle(title);
50 dialog.setLabelText(label);
51 dialog.setInputMode(QInputDialog::TextInput);
52 dialog.setTextValue(text);
53 dialog.setTextEchoMode(mode);
54 *ok = (dialog.exec() == QDialog::Accepted);
55 return (*ok) ? dialog.textValue() : QString();
61 auto model =
static_cast<QStandardItemModel *
>(
63 for (
int i = 0; i < model->rowCount(); ++i)
64 list << (model->item(i)->checkState() == Qt::Checked);
72 auto model =
static_cast<QStandardItemModel *
>(
74 for (
int i = 0; i < model->rowCount(); ++i)
75 list << model->item(i)->text();
80 void CommonGUI::removeSelectedRowsFromQTableWidget(QTableWidget *table)
85 QMap<int, QTableWidgetItem *> uniqueRowsItems;
86 for (QTableWidgetItem *item : table->selectedItems())
88 uniqueRowsItems.insert(item->row(), item);
90 for (QTableWidgetItem *item : uniqueRowsItems.values())
92 int row = table->row(item);
94 table->removeRow(row);
101 QItemSelectionModel *selModel = view->selectionModel();
102 QModelIndexList indexList = selModel->selectedIndexes();
105 auto model =
static_cast<QStandardItemModel *
>(view->model());
106 QList<QStandardItem *> itemList;
107 int lowestRemovedRow = 0;
108 for (
int i = 0; i < indexList.count(); ++i)
110 const QModelIndex &index = indexList[i];
111 itemList << model->itemFromIndex(index);
112 if (index.row() > lowestRemovedRow)
113 lowestRemovedRow = index.row();
116 for (
int i = 0; i < itemList.count(); ++i)
118 QModelIndex index = model->indexFromItem(itemList[i]);
119 model->removeRow(index.row());
122 if (bSelectNextItem && !indexList.isEmpty())
124 int selectRowIdx = lowestRemovedRow;
125 selectRowIdx -= indexList.size();
127 if (selectRowIdx + 1 < model->rowCount())
130 if (selectRowIdx >= 0)
132 QModelIndex newIdx = model->index(selectRowIdx, 0);
133 selModel->select(newIdx, QItemSelectionModel::ClearAndSelect);
140 if (qGuiApp ==
nullptr)
142 for (QScreen *screen : qGuiApp->screens())
144 if (screen->geometry().contains(point))
152 dialog.setWindowFlags(dialog.windowFlags() & (~Qt::WindowContextHelpButtonHint));
156 const QStringList &stringList)
158 auto model =
static_cast<QStandardItemModel *
>(
159 targetListview->model());
160 model->removeRows(0, model->rowCount());
162 for (
const QString &str : stringList)
164 auto pItem =
new QStandardItem();
166 model->appendRow(pItem);