23 #include "iwadpicker.h" 24 #include "ui_iwadpicker.h" 26 #include "configuration/doomseekerconfig.h" 27 #include "pathfinder/pathfinder.h" 28 #include "pathfinder/wadpathfinder.h" 29 #include "strings.hpp" 30 #include <QFileDialog> 33 DClass<IwadPicker> :
public Ui::IwadPicker
46 IwadPicker::~IwadPicker()
50 void IwadPicker::addIwad(
const QString& path)
52 if (path.trimmed().isEmpty())
57 for (
int i = 0; i < d->cboIwad->count(); ++i)
59 if (d->cboIwad->itemText(i).compare(path) == 0)
61 d->cboIwad->setCurrentIndex(i);
67 d->cboIwad->setCurrentIndex(d->cboIwad->count() - 1);
70 void IwadPicker::browse()
72 QString dialogDir = gConfig.doomseeker.previousCreateServerWadDir;
73 QString strFile = QFileDialog::getOpenFileName(
this, tr(
"Doomseeker - select IWAD"), dialogDir);
75 if (!strFile.isEmpty())
77 QFileInfo fi(strFile);
78 gConfig.doomseeker.previousCreateServerWadDir = fi.absolutePath();
84 QString IwadPicker::currentIwad()
const 86 return d->cboIwad->currentText();
89 void IwadPicker::loadIwads()
91 const QString iwads[] = {
92 "doom.wad",
"doom1.wad",
"doom2.wad",
93 "tnt.wad",
"plutonia.wad",
"heretic.wad",
94 "hexen.wad",
"freedoom.wad",
"freedm.wad",
95 "freedoom1.wad",
"freedoom2.wad",
"strife1.wad",
"" 98 QString currentSelection = d->cboIwad->currentText();
100 for (
int i = 0; !iwads[i].isEmpty(); ++i)
104 QString path = wadPathFinder.find(iwads[i]).path();
107 d->cboIwad->addItem(path);
110 if (!currentSelection.isEmpty())
112 int selectionIdx = d->cboIwad->findText(currentSelection);
113 if (selectionIdx >= 0)
114 d->cboIwad->setCurrentIndex(selectionIdx);
116 d->cboIwad->setEditText(currentSelection);
120 void IwadPicker::setIwadByName(
const QString &iwad)
122 for (
int i = 0; i < d->cboIwad->count(); ++i)
124 QFileInfo fi(d->cboIwad->itemText(i));
125 if (fi.fileName().compare(iwad, Qt::CaseInsensitive) == 0)
127 d->cboIwad->setCurrentIndex(i);
133 QString path = pathFinder.
findFile(iwad);
136 d->cboIwad->addItem(path);
137 d->cboIwad->setCurrentIndex(d->cboIwad->count() - 1);
Performs a case-insensitive (OS independent) file searches.
void setAllowAliases(bool allowed)
Can disable WAD aliasing for contexts where only specific WADs should be found.
static QString normalizePath(QString path)
Creates a clean path.
Wrapper for PathFinder that specializes in findings WADs.
QString findFile(const QString &fileName) const
Performs a search for a single file.