GH-988 add ability to toggle mods with keyboard
This commit is contained in:
parent
d31184f9a4
commit
4ed67413ac
@ -312,15 +312,29 @@ bool ModFolderModel::enableMods(const QModelIndexList& indexes, bool enable)
|
||||
if(indexes.isEmpty())
|
||||
return true;
|
||||
|
||||
for (auto i: indexes)
|
||||
for (auto index: indexes)
|
||||
{
|
||||
Mod &m = mods[i.row()];
|
||||
Mod &m = mods[index.row()];
|
||||
m.enable(enable);
|
||||
emit dataChanged(i, i);
|
||||
emit dataChanged(index, index);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void ModFolderModel::toggleEnabled(const QModelIndex& index)
|
||||
{
|
||||
if(interaction_disabled) {
|
||||
return;
|
||||
}
|
||||
if(!index.isValid()) {
|
||||
return;
|
||||
}
|
||||
|
||||
Mod &m = mods[index.row()];
|
||||
m.enable(!m.enabled());
|
||||
emit dataChanged(index, index);
|
||||
}
|
||||
|
||||
bool ModFolderModel::deleteMods(const QModelIndexList& indexes)
|
||||
{
|
||||
if(interaction_disabled) {
|
||||
|
@ -82,7 +82,7 @@ public:
|
||||
}
|
||||
|
||||
/// Reloads the mod list and returns true if the list changed.
|
||||
virtual bool update();
|
||||
bool update();
|
||||
|
||||
/**
|
||||
* Adds the given mod to the list at the given index - if the list supports custom ordering
|
||||
@ -90,15 +90,16 @@ public:
|
||||
bool installMod(const QString& filename);
|
||||
|
||||
/// Deletes all the selected mods
|
||||
virtual bool deleteMods(const QModelIndexList &indexes);
|
||||
bool deleteMods(const QModelIndexList &indexes);
|
||||
|
||||
/// Enable or disable listed mods
|
||||
virtual bool enableMods(const QModelIndexList &indexes, bool enable = true);
|
||||
bool enableMods(const QModelIndexList &indexes, bool enable = true);
|
||||
void toggleEnabled(const QModelIndex &index);
|
||||
|
||||
void startWatching();
|
||||
void stopWatching();
|
||||
|
||||
virtual bool isValid();
|
||||
bool isValid();
|
||||
|
||||
QDir dir()
|
||||
{
|
||||
|
@ -139,6 +139,7 @@ ModFolderPage::ModFolderPage(
|
||||
ui->modTreeView->sortByColumn(1, Qt::AscendingOrder);
|
||||
ui->modTreeView->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||
connect(ui->modTreeView, &ModListView::customContextMenuRequested, this, &ModFolderPage::ShowContextMenu);
|
||||
connect(ui->modTreeView, &ModListView::activated, this, &ModFolderPage::modItemActivated);
|
||||
|
||||
auto smodel = ui->modTreeView->selectionModel();
|
||||
connect(smodel, &QItemSelectionModel::currentChanged, this, &ModFolderPage::modCurrent);
|
||||
@ -146,6 +147,14 @@ ModFolderPage::ModFolderPage(
|
||||
connect(m_inst, &BaseInstance::runningStatusChanged, this, &ModFolderPage::on_RunningState_changed);
|
||||
}
|
||||
|
||||
void ModFolderPage::modItemActivated(const QModelIndex& index)
|
||||
{
|
||||
auto modsModelIndex = m_filterModel->mapToSource(index);
|
||||
if(modsModelIndex.isValid()) {
|
||||
m_mods->toggleEnabled(modsModelIndex);
|
||||
}
|
||||
}
|
||||
|
||||
QMenu * ModFolderPage::createPopupMenu()
|
||||
{
|
||||
QMenu* filteredMenu = QMainWindow::createPopupMenu();
|
||||
|
@ -94,6 +94,7 @@ slots:
|
||||
|
||||
private
|
||||
slots:
|
||||
void modItemActivated(const QModelIndex &index);
|
||||
void on_filterTextChanged(const QString & newContents);
|
||||
void on_RunningState_changed(bool running);
|
||||
void on_actionAdd_triggered();
|
||||
|
Loading…
Reference in New Issue
Block a user