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;