diff options
| author | Al <gabriel.cortesi@outlook.com> | 2018-12-26 15:49:00 +0100 |
|---|---|---|
| committer | Al <gabriel.cortesi@outlook.com> | 2018-12-26 15:49:00 +0100 |
| commit | fecb66f66b651daf6bc9b092e5e14c3efd2a82cc (patch) | |
| tree | cf03c76310a7f259d598d91f5bbcb0d50dda9f82 /src | |
| parent | 85eb57eebb21e49d430fd8327b1074dcea2405be (diff) | |
Added "Visible" counters for modlist.
Improved counters tool tip view.
Diffstat (limited to 'src')
| -rw-r--r-- | src/mainwindow.cpp | 62 |
1 files changed, 47 insertions, 15 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 3e8323e5..1e51977f 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -367,6 +367,7 @@ MainWindow::MainWindow(QSettings &initSettings connect(ui->modList->selectionModel(), SIGNAL(currentChanged(QModelIndex,QModelIndex)), this, SLOT(modlistSelectionChanged(QModelIndex,QModelIndex)));
connect(m_ModListSortProxy, SIGNAL(filterActive(bool)), this, SLOT(modFilterActive(bool)));
+ connect(m_ModListSortProxy, SIGNAL(layoutChanged()), this, SLOT(updateModCount()));
connect(ui->modFilterEdit, SIGNAL(textChanged(QString)), m_ModListSortProxy, SLOT(updateFilter(QString)));
connect(ui->espFilterEdit, SIGNAL(textChanged(QString)), m_PluginListSortProxy, SLOT(updateFilter(QString)));
@@ -3110,10 +3111,15 @@ void MainWindow::searchClear_activated() void MainWindow::updateModCount()
{
int activeCount = 0;
+ int visActiveCount = 0;
int backupCount = 0;
+ int visBackupCount = 0;
int foreignCount = 0;
+ int visForeignCount = 0;
int separatorCount = 0;
+ int visSeparatorCount = 0;
int regularCount = 0;
+ int visRegularCount = 0;
QStringList allMods = m_OrganizerCore.modList()->allMods();
@@ -3121,15 +3127,29 @@ void MainWindow::updateModCount() return std::find(flags.begin(), flags.end(), filter) != flags.end();
};
+ bool isEnabled;
+ bool isVisible;
for (QString mod : allMods) {
int modIndex = ModInfo::getIndex(mod);
ModInfo::Ptr modInfo = ModInfo::getByIndex(modIndex);
std::vector<ModInfo::EFlag> modFlags = modInfo->getFlags();
+ isEnabled = m_OrganizerCore.currentProfile()->modEnabled(modIndex);
+ isVisible = m_ModListSortProxy->filterMatchesMod(modInfo, isEnabled);
+
for (auto flag : modFlags) {
switch (flag) {
- case ModInfo::FLAG_BACKUP: backupCount++; break;
- case ModInfo::FLAG_FOREIGN: foreignCount++; break;
- case ModInfo::FLAG_SEPARATOR: separatorCount++; break;
+ case ModInfo::FLAG_BACKUP: backupCount++;
+ if (isVisible)
+ visBackupCount++;
+ break;
+ case ModInfo::FLAG_FOREIGN: foreignCount++;
+ if (isVisible)
+ visForeignCount++;
+ break;
+ case ModInfo::FLAG_SEPARATOR: separatorCount++;
+ if (isVisible)
+ visSeparatorCount++;
+ break;
}
}
@@ -3137,24 +3157,35 @@ void MainWindow::updateModCount() !hasFlag(modFlags, ModInfo::FLAG_FOREIGN) &&
!hasFlag(modFlags, ModInfo::FLAG_SEPARATOR) &&
!hasFlag(modFlags, ModInfo::FLAG_OVERWRITE)) {
- if (m_OrganizerCore.currentProfile()->modEnabled(modIndex))
+ if (isEnabled) {
activeCount++;
+ if (isVisible)
+ visActiveCount++;
+ }
+ if (isVisible)
+ visRegularCount++;
regularCount++;
}
}
ui->activeModsCounter->display(activeCount);
- ui->activeModsCounter->setToolTip(tr("<table>"
- "<tr><td>Active mods: </td><td>%1 of %2</td></tr>"
- "<tr><td>Unmanaged mods/DLC: </td><td>%3</td></tr>"
- "<tr><td>Mod backups: </td><td>%4</td></tr>"
- "<tr><td>Separators: </td><td>%5</td></tr>"
+ ui->activeModsCounter->setToolTip(tr("<table cellspacing=\"5\">"
+ "<tr><th>Type</th><th>All</th><th>Visible</th>"
+ "<tr><td>Enabled mods: </td><td align=right>%1 / %2</td><td align=right>%3 / %4</td></tr>"
+ "<tr><td>Unmanaged/DLCs: </td><td align=right>%5</td><td align=right>%6</td></tr>"
+ "<tr><td>Mod backups: </td><td align=right>%7</td><td align=right>%8</td></tr>"
+ "<tr><td>Separators: </td><td align=right>%9</td><td align=right>%10</td></tr>"
"</table>")
.arg(activeCount)
.arg(regularCount)
+ .arg(visActiveCount)
+ .arg(visRegularCount)
.arg(foreignCount)
+ .arg(visForeignCount)
.arg(backupCount)
+ .arg(visBackupCount)
.arg(separatorCount)
+ .arg(visSeparatorCount)
);
}
@@ -3187,12 +3218,13 @@ void MainWindow::updatePluginCount() int totalCount = masterCount + lightMasterCount + regularCount;
ui->activePluginsCounter->display(activeCount);
- ui->activePluginsCounter->setToolTip(tr("<table>"
- "<tr><td>Active plugins: </td><td>%1 of %2</td></tr>"
- "<tr><td>Active ESMs: </td><td>%3 of %4</td></tr>"
- "<tr><td>Active ESLs: </td><td>%5 of %6</td></tr>"
- "<tr><td>Active ESPs: </td><td>%7 of %8</td></tr>"
- "<tr><td>Active ESMs+ESPs: </td><td>%9 of %10</td></tr>"
+ ui->activePluginsCounter->setToolTip(tr("<table cellspacing=\"4\">"
+ "<tr><th>Type</th><th>Active</th><th>Total</th></tr>"
+ "<tr><td>Active plugins:</td><td align=right>%1</td><td align=right>%2</td></tr>"
+ "<tr><td>Active ESMs:</td><td align=right>%3</td><td align=right>%4</td></tr>"
+ "<tr><td>Active ESPs:</td><td align=right>%7</td><td align=right>%8</td></tr>"
+ "<tr><td>Active ESMs+ESPs:</td><td align=right>%9</td><td align=right>%10</td></tr>"
+ "<tr><td>Active ESLs:</td><td align=right>%5</td><td align=right>%6</td></tr>"
"</table>")
.arg(activeCount).arg(totalCount)
.arg(activeMasterCount).arg(masterCount)
|
