23 #include "iwadpicker.h"
24 #include "ui_iwadpicker.h"
26 #include "configuration/doomseekerconfig.h"
27 #include "pathfinder/pathfinder.h"
29 #include <QFileDialog>
32 DClass<IwadPicker> :
public Ui::IwadPicker
45 IwadPicker::~IwadPicker()
49 void IwadPicker::addIwad(
const QString& path)
51 if (path.trimmed().isEmpty())
56 for (
int i = 0; i < d->cboIwad->count(); ++i)
58 if (d->cboIwad->itemText(i).compare(path) == 0)
60 d->cboIwad->setCurrentIndex(i);
66 d->cboIwad->setCurrentIndex(d->cboIwad->count() - 1);
69 void IwadPicker::browse()
71 QString dialogDir = gConfig.doomseeker.previousCreateServerWadDir;
72 QString strFile = QFileDialog::getOpenFileName(
this, tr(
"Doomseeker - select IWAD"), dialogDir);
74 if (!strFile.isEmpty())
76 QFileInfo fi(strFile);
77 gConfig.doomseeker.previousCreateServerWadDir = fi.absolutePath();
83 QString IwadPicker::currentIwad()
const
85 return d->cboIwad->currentText();
88 void IwadPicker::loadIwads()
90 const QString iwads[] = {
91 "doom.wad",
"doom1.wad",
"doom2.wad",
92 "tnt.wad",
"plutonia.wad",
"heretic.wad",
93 "hexen.wad",
"hexdd.wad",
"freedoom.wad",
98 for (
int i = 0; !iwads[i].isEmpty(); ++i)
101 QString path = pathFinder.
findFile(iwads[i]);
104 d->cboIwad->addItem(path);
109 void IwadPicker::setIwadByName(
const QString &iwad)
111 for (
int i = 0; i < d->cboIwad->count(); ++i)
113 QFileInfo fi(d->cboIwad->itemText(i));
114 if (fi.fileName().compare(iwad, Qt::CaseInsensitive) == 0)
116 d->cboIwad->setCurrentIndex(i);
122 QString path = pathFinder.
findFile(iwad);
125 d->cboIwad->addItem(path);
126 d->cboIwad->setCurrentIndex(d->cboIwad->count() - 1);
Performs a case-insensitive (OS independent) file searches.
static QString normalizePath(QString path)
Creates a clean path.
QString findFile(const QString &fileName) const
Performs a search for a single file.