diff options
| author | Jonathan Feenstra <26406078+JonathanFeenstra@users.noreply.github.com> | 2024-10-13 13:24:43 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-10-13 13:24:43 +0200 |
| commit | 08fc25d641e7f426ffc5b90e7ed7bd8acd132a8b (patch) | |
| tree | eb04e085a2bd0ab7e053962087445f9577d1648f | |
| parent | f305502c5db3946a69b70ee0dc8ac1efb86b45a9 (diff) | |
Show blueprint master count in plugin counter tooltip and hide unsupported plugin types (#2143)
| -rw-r--r-- | src/pluginlistview.cpp | 60 |
1 files changed, 47 insertions, 13 deletions
diff --git a/src/pluginlistview.cpp b/src/pluginlistview.cpp index 49eb87dc..5a4e7efa 100644 --- a/src/pluginlistview.cpp +++ b/src/pluginlistview.cpp @@ -7,6 +7,7 @@ #include <widgetutility.h> #include "copyeventfilter.h" +#include "gameplugins.h" #include "genericicondelegate.h" #include "mainwindow.h" #include "modelutils.h" @@ -59,10 +60,12 @@ void PluginListView::updatePluginCount() int activeMasterCount = 0; int activeMediumMasterCount = 0; int activeLightMasterCount = 0; + int activeBlueprintCount = 0; int activeRegularCount = 0; int masterCount = 0; int mediumMasterCount = 0; int lightMasterCount = 0; + int blueprintCount = 0; int regularCount = 0; int activeVisibleCount = 0; @@ -89,37 +92,68 @@ void PluginListView::updatePluginCount() activeRegularCount += active; activeVisibleCount += visible && active; } + + if (list->isBlueprintFlagged(plugin)) { + // separate if-statement because blueprint masters are also counted as + // (medium/light) masters + blueprintCount++; + activeBlueprintCount += active; + } } int activeCount = activeMasterCount + activeMediumMasterCount + activeLightMasterCount + activeRegularCount; int totalCount = masterCount + mediumMasterCount + lightMasterCount + regularCount; - ui.counter->display(activeVisibleCount); - ui.counter->setToolTip( + auto toolTip = tr("<table cellspacing=\"6\">" "<tr><th>Type</th><th>Active </th><th>Total</th></tr>" "<tr><td>All plugins:</td><td align=right>%1 </td><td " "align=right>%2</td></tr>" "<tr><td>ESMs:</td><td align=right>%3 </td><td align=right>%4</td></tr>" - "<tr><td>ESPs:</td><td align=right>%7 </td><td align=right>%8</td></tr>" - "<tr><td>ESMs+ESPs:</td><td align=right>%9 </td><td " - "align=right>%10</td></tr>" - "<tr><td>ESHs:</td><td align=right>%11 </td><td align=right>%12</td></tr>" - "<tr><td>ESLs:</td><td align=right>%5 </td><td align=right>%6</td></tr>" - "</table>") + "<tr><td>ESPs:</td><td align=right>%5 </td><td align=right>%6</td></tr>" + "<tr><td>ESMs+ESPs:</td><td align=right>%7 </td><td " + "align=right>%8</td></tr>") .arg(activeCount) .arg(totalCount) .arg(activeMasterCount) .arg(masterCount) - .arg(activeLightMasterCount) - .arg(lightMasterCount) .arg(activeRegularCount) .arg(regularCount) .arg(activeMasterCount + activeRegularCount) - .arg(masterCount + regularCount) - .arg(activeMediumMasterCount) - .arg(mediumMasterCount)); + .arg(masterCount + regularCount); + + auto gamePlugins = m_core->gameFeatures().gameFeature<GamePlugins>(); + const bool lightPluginsAreSupported = + gamePlugins ? gamePlugins->lightPluginsAreSupported() : false; + const bool mediumPluginsAreSupported = + gamePlugins ? gamePlugins->mediumPluginsAreSupported() : false; + const bool blueprintPluginsAreSupported = + gamePlugins ? gamePlugins->blueprintPluginsAreSupported() : false; + + if (mediumPluginsAreSupported) { + toolTip += + tr("<tr><td>ESHs:</td><td align=right>%1 </td><td align=right>%2</td></tr>") + .arg(activeMediumMasterCount) + .arg(mediumMasterCount); + } + if (lightPluginsAreSupported) { + toolTip += + tr("<tr><td>ESLs:</td><td align=right>%1 </td><td align=right>%2</td></tr>") + .arg(activeLightMasterCount) + .arg(lightMasterCount); + } + if (blueprintPluginsAreSupported) { + toolTip += tr("<tr><td>Blueprint masters:</td><td align=right>%1 </td><td " + "align=right>%2</td></tr>") + .arg(activeBlueprintCount) + .arg(blueprintCount); + } + + toolTip += "</table>"; + + ui.counter->display(activeVisibleCount); + ui.counter->setToolTip(toolTip); } void PluginListView::onFilterChanged(const QString& filter) |
