23 #include "cfgwadalias.h" 24 #include "ui_cfgwadalias.h" 26 #include "configuration/doomseekerconfig.h" 27 #include "gui/commongui.h" 28 #include "pathfinder/filealias.h" 31 DClass<CFGWadAlias> :
public Ui::CFGWadAlias
50 d->resizeTimer.setSingleShot(
true);
51 connect(&d->resizeTimer, SIGNAL(timeout()), d->table, SLOT(resizeRowsToContents()));
53 QHeaderView *header = d->table->horizontalHeader();
55 #if QT_VERSION >= 0x050000 63 CFGWadAlias::~CFGWadAlias()
67 void CFGWadAlias::addAliasToTable(
const FileAlias &alias)
69 bool wasSortingEnabled = d->table->isSortingEnabled();
70 d->table->setSortingEnabled(
false);
72 int row = findRowWithWad(alias.name());
75 row = d->table->rowCount();
76 d->table->insertRow(row);
77 applyAliasToRow(row, alias);
82 FileAlias existingAlias = aliasFromRow(row);
84 applyAliasToRow(row, existingAlias);
87 d->table->setSortingEnabled(wasSortingEnabled);
88 resizeRowsToContents();
91 void CFGWadAlias::addDefaults()
96 addAliasToTable(alias);
100 void CFGWadAlias::addNewEntry()
102 bool wasSortingEnabled = d->table->isSortingEnabled();
103 d->table->setSortingEnabled(
false);
105 int row = d->table->rowCount();
106 d->table->insertRow(row);
110 d->table->setSortingEnabled(wasSortingEnabled);
111 resizeRowsToContents();
114 QList<FileAlias> CFGWadAlias::aliases()
const 116 QList<FileAlias> aliases;
117 for (
int row = 0; row < d->table->rowCount(); ++row)
125 return FileAliasList::mergeDuplicates(aliases);
128 FileAlias CFGWadAlias::aliasFromRow(
int row)
const 133 foreach (
const QString &candidateAlias, candidateAliases)
135 if (!candidateAlias.trimmed().isEmpty())
137 alias.
addAlias(candidateAlias.trimmed());
143 void CFGWadAlias::applyAliasToRow(
int row,
const FileAlias &alias)
149 int CFGWadAlias::findRowWithWad(
const QString &wadName)
151 for (
int row = 0; row < d->table->rowCount(); ++row)
154 wadName.trimmed(), Qt::CaseInsensitive) == 0)
164 return QApplication::style()->standardIcon(QStyle::SP_DirOpenIcon);
169 while (d->table->rowCount() > 0)
171 d->table->removeRow(0);
174 QList<FileAlias> aliases = gConfig.doomseeker.wadAliases();
175 foreach (
const FileAlias &alias, aliases)
179 addAliasToTable(alias);
184 void CFGWadAlias::removeSelected()
186 CommonGUI::removeSelectedRowsFromQTableWidget(d->table);
189 void CFGWadAlias::resizeRowsToContents()
191 d->resizeTimer.start(0);
196 gConfig.doomseeker.setWadAliases(aliases());
199 void CFGWadAlias::showEvent(QShowEvent *event)
201 resizeRowsToContents();
204 QTableWidgetItem *CFGWadAlias::toolTipItem(
const QString &contents)
206 QTableWidgetItem *item =
new QTableWidgetItem(contents);
207 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.
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 ConfigPage.
Base class for configuration pages.