23 #include "ui_wadspicker.h" 24 #include "wadspicker.h" 26 #include "configuration/doomseekerconfig.h" 27 #include "gui/commongui.h" 28 #include <QFileDialog> 29 #include <QStandardItemModel> 31 DClass<WadsPicker> :
public Ui::WadsPicker
41 d->lstAdditionalFiles->setModel(
new QStandardItemModel(
this));
44 WadsPicker::~WadsPicker()
48 void WadsPicker::addWadPath(
const QString &wadPath,
bool required)
50 if (wadPath.isEmpty())
52 QFileInfo fileInfo(wadPath);
53 if (!fileInfo.isFile())
56 auto model =
static_cast<QStandardItemModel *
>(d->lstAdditionalFiles->model());
59 for (
int i = 0; i < model->rowCount(); ++i)
61 QStandardItem *item = model->item(i);
62 QString dir = item->text();
63 Qt::CaseSensitivity cs;
66 cs = Qt::CaseInsensitive;
68 cs = Qt::CaseSensitive;
71 if (dir.compare(wadPath, cs) == 0)
75 auto it =
new QStandardItem(wadPath);
77 it->setDragEnabled(
true);
78 it->setDropEnabled(
false);
79 it->setToolTip(wadPath);
80 it->setCheckable(
true);
81 it->setCheckState(required ? Qt::Checked : Qt::Unchecked);
86 void WadsPicker::browseAndAdd()
88 QString dialogDir = gConfig.doomseeker.previousCreateServerWadDir;
89 QStringList filesNames = QFileDialog::getOpenFileNames(
this,
90 tr(
"Doomseeker - Add file(s)"), dialogDir);
92 if (!filesNames.isEmpty())
96 QFileInfo fi(filesNames[0]);
97 gConfig.doomseeker.previousCreateServerWadDir = fi.absolutePath();
99 for (
const QString &strFile : filesNames)
106 QList<bool> WadsPicker::fileOptional()
const 110 for (
bool &i : checked)
115 QStringList WadsPicker::filePaths()
const 120 void WadsPicker::setFilePaths(
const QStringList &paths,
const QList<bool> &optionals)
123 for (
int i = 0; i < paths.size(); ++i)
124 addWadPath(paths[i], i >= optionals.size() || !optionals[i]);
127 void WadsPicker::removeAll()
129 auto pModel = (QStandardItemModel *)d->lstAdditionalFiles->model();
133 void WadsPicker::removeSelected()
135 const bool bSelectNextLowest =
true;
static QStringList listViewStandardItemsToStringList(QListView *listview)
Reads items from a QListView that uses QStandardItemModel and puts texts of these items into a list o...
static void removeSelectedRowsFromStandardItemView(QAbstractItemView *view, bool bSelectNextItem=false)
Removes all selected rows from a QAbstractItemView.
static QList< bool > listViewStandardItemsToBoolList(QListView *listview)