23 #include "cfgwadalias.h"
24 #include "ui_cfgwadalias.h"
26 #include "configuration/doomseekerconfig.h"
27 #include "gui/commongui.h"
28 #include "pathfinder/filealias.h"
30 DClass<CFGWadAlias> :
public Ui::CFGWadAlias
46 QHeaderView *header = d->table->horizontalHeader();
52 CFGWadAlias::~CFGWadAlias()
56 void CFGWadAlias::addAliasToTable(
const FileAlias &alias)
58 bool wasSortingEnabled = d->table->isSortingEnabled();
59 d->table->setSortingEnabled(
false);
61 int row = findRowWithWad(alias.name());
64 row = d->table->rowCount();
65 d->table->insertRow(row);
66 applyAliasToRow(row, alias);
71 FileAlias existingAlias = aliasFromRow(row);
73 applyAliasToRow(row, existingAlias);
76 d->table->setSortingEnabled(wasSortingEnabled);
77 d->table->resizeRowsToContents();
80 void CFGWadAlias::addDefaults()
85 addAliasToTable(alias);
89 void CFGWadAlias::addNewEntry()
91 bool wasSortingEnabled = d->table->isSortingEnabled();
92 d->table->setSortingEnabled(
false);
94 int row = d->table->rowCount();
95 d->table->insertRow(row);
99 d->table->setSortingEnabled(wasSortingEnabled);
102 QList<FileAlias> CFGWadAlias::aliases()
const
104 QList<FileAlias> aliases;
105 for (
int row = 0; row < d->table->rowCount(); ++row)
113 return FileAliasList::mergeDuplicates(aliases);
116 FileAlias CFGWadAlias::aliasFromRow(
int row)
const
121 foreach (
const QString &candidateAlias, candidateAliases)
123 if (!candidateAlias.trimmed().isEmpty())
125 alias.
addAlias(candidateAlias.trimmed());
131 void CFGWadAlias::applyAliasToRow(
int row,
const FileAlias &alias)
137 int CFGWadAlias::findRowWithWad(
const QString &wadName)
139 for (
int row = 0; row < d->table->rowCount(); ++row)
142 wadName.trimmed(), Qt::CaseInsensitive) == 0)
152 return QApplication::style()->standardIcon(QStyle::SP_DirOpenIcon);
157 while (d->table->rowCount() > 0)
159 d->table->removeRow(0);
162 QList<FileAlias> aliases = gConfig.doomseeker.wadAliases();
163 foreach (
const FileAlias &alias, aliases)
167 addAliasToTable(alias);
172 void CFGWadAlias::removeSelected()
174 CommonGUI::removeSelectedRowsFromQTableWidget(d->table);
179 gConfig.doomseeker.setWadAliases(aliases());
182 QTableWidgetItem *CFGWadAlias::toolTipItem(
const QString &contents)
184 QTableWidgetItem *item =
new QTableWidgetItem(contents);
185 item->setToolTip(contents);
bool isValid() const
Valid FileAlias has a name and at least one alias.
void addAliases(const QStringList &val)
Will ensure unique values.
static QList< FileAlias > standardWadAliases()
Standard/default aliases for configuration init.
void readSettings()
Reimplement this to read settings from config into widgets.
Base class for configuration pages.
void saveSettings()
Reimplement this to write settings to config from widgets.
void addAlias(const QString &val)
Will ensure unique values.
QIcon icon() const
Reimplement this to return a displayable icon for the ConfigurationBaseBox.