23 #include "wadspicker.h"
24 #include "ui_wadspicker.h"
26 #include "configuration/doomseekerconfig.h"
27 #include "gui/commongui.h"
28 #include <QFileDialog>
29 #include <QStandardItemModel>
31 DClass<WadsPicker> :
public Ui::WadsPicker
40 d->lstAdditionalFiles->setModel(
new QStandardItemModel(
this));
43 WadsPicker::~WadsPicker()
47 void WadsPicker::addWadPath(
const QString &wadPath,
bool required)
49 if (wadPath.isEmpty())
53 QFileInfo fileInfo(wadPath);
54 if (!fileInfo.isFile())
59 QStandardItemModel* model =
static_cast<QStandardItemModel*
>(d->lstAdditionalFiles->model());
62 for(
int i = 0; i < model->rowCount(); ++i)
64 QStandardItem* item = model->item(i);
65 QString dir = item->text();
66 Qt::CaseSensitivity cs;
69 cs = Qt::CaseInsensitive;
71 cs = Qt::CaseSensitive;
74 if (dir.compare(wadPath, cs) == 0)
80 QStandardItem* it =
new QStandardItem(wadPath);
82 it->setDragEnabled(
true);
83 it->setDropEnabled(
false);
84 it->setToolTip(wadPath);
85 it->setCheckable(
true);
86 it->setCheckState(required ? Qt::Checked : Qt::Unchecked);
91 void WadsPicker::browseAndAdd()
93 QString dialogDir = gConfig.doomseeker.previousCreateServerWadDir;
94 QStringList filesNames = QFileDialog::getOpenFileNames(
this,
95 tr(
"Doomseeker - Add file(s)"), dialogDir);
97 if (!filesNames.isEmpty())
101 QFileInfo fi(filesNames[0]);
102 gConfig.doomseeker.previousCreateServerWadDir = fi.absolutePath();
104 foreach (
const QString& strFile, filesNames)
111 QList<bool> WadsPicker::fileOptional()
const
115 for(
int i = 0;i < checked.size();++i)
116 checked[i] = !checked[i];
120 QStringList WadsPicker::filePaths()
const
125 void WadsPicker::setFilePaths(
const QStringList &paths,
const QList<bool> &optionals)
128 for(
int i = 0;i < paths.size();++i)
130 const QString &path = paths[i];
131 addWadPath(paths[i], i >= optionals.size() || !optionals[i]);
135 void WadsPicker::removeAll()
137 QStandardItemModel* pModel = (QStandardItemModel*)d->lstAdditionalFiles->model();
141 void WadsPicker::removeSelected()
143 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)