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 addWadPath(paths[i], i >= optionals.size() || !optionals[i]);
134 void WadsPicker::removeAll()
136 QStandardItemModel* pModel = (QStandardItemModel*)d->lstAdditionalFiles->model();
140 void WadsPicker::removeSelected()
142 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)