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);