summaryrefslogtreecommitdiff
path: root/src/modflagicondelegate.cpp
diff options
context:
space:
mode:
authorMikaƫl Capelle <capelle.mikael@gmail.com>2023-07-09 17:36:03 +0200
committerGitHub <noreply@github.com>2023-07-09 17:36:03 +0200
commitef94aee28464039672b277243a0181ae93550d6c (patch)
tree0575a68af5f154e9d6d0738edbaefb16a11d6f5c /src/modflagicondelegate.cpp
parent7d6cb8528d20e36a4cee822263865ee2f7f32481 (diff)
parent3de050e9c03e553f7ae3f780f6bd080a30ae123e (diff)
Merge pull request #1839 from Holt59/ci/initial-gh-action-for-build
Clang-Format + Github Workflow
Diffstat (limited to 'src/modflagicondelegate.cpp')
-rw-r--r--src/modflagicondelegate.cpp195
1 files changed, 102 insertions, 93 deletions
diff --git a/src/modflagicondelegate.cpp b/src/modflagicondelegate.cpp
index 30a3c376..e656e390 100644
--- a/src/modflagicondelegate.cpp
+++ b/src/modflagicondelegate.cpp
@@ -1,93 +1,102 @@
-#include "modflagicondelegate.h"
-#include "modlist.h"
-#include "modlistview.h"
-#include <log.h>
-#include <QList>
-
-using namespace MOBase;
-
-ModFlagIconDelegate::ModFlagIconDelegate(ModListView* view, int column, int compactSize)
- : IconDelegate(view, column, compactSize), m_view(view)
-{
-}
-
-QList<QString> ModFlagIconDelegate::getIconsForFlags(
- std::vector<ModInfo::EFlag> flags, bool compact)
-{
- QList<QString> result;
-
- // Don't do flags for overwrite
- if (std::find(flags.begin(), flags.end(), ModInfo::FLAG_OVERWRITE) != flags.end())
- return result;
-
- for (auto iter = flags.begin(); iter != flags.end(); ++iter) {
- auto iconPath = getFlagIcon(*iter);
- if (!iconPath.isEmpty())
- result.append(iconPath);
- }
-
- return result;
-}
-
-QList<QString> ModFlagIconDelegate::getIcons(const QModelIndex &index) const
-{
- QVariant modid = index.data(ModList::IndexRole);
-
- if (modid.isValid()) {
- bool compact;
- auto flags = m_view->modFlags(index, &compact);
- return getIconsForFlags(flags, compact || this->compact());
- }
-
- return {};
-}
-
-QString ModFlagIconDelegate::getFlagIcon(ModInfo::EFlag flag)
-{
- switch (flag) {
- case ModInfo::FLAG_BACKUP: return QStringLiteral(":/MO/gui/emblem_backup");
- case ModInfo::FLAG_INVALID: return QStringLiteral(":/MO/gui/problem");
- case ModInfo::FLAG_NOTENDORSED: return QStringLiteral(":/MO/gui/emblem_notendorsed");
- case ModInfo::FLAG_NOTES: return QStringLiteral(":/MO/gui/emblem_notes");
- case ModInfo::FLAG_HIDDEN_FILES: return QStringLiteral(":/MO/gui/emblem_hidden_files");
- case ModInfo::FLAG_ALTERNATE_GAME: return QStringLiteral(":/MO/gui/alternate_game");
- case ModInfo::FLAG_FOREIGN: return QString();
- case ModInfo::FLAG_SEPARATOR: return QString();
- case ModInfo::FLAG_OVERWRITE: return QString();
- case ModInfo::FLAG_PLUGIN_SELECTED: return QString();
- case ModInfo::FLAG_TRACKED: return QStringLiteral(":/MO/gui/tracked");
- default:
- log::warn("ModInfo flag {} has no defined icon", flag);
- return QString();
- }
-}
-
-size_t ModFlagIconDelegate::getNumIcons(const QModelIndex &index) const
-{
- unsigned int modIdx = index.data(ModList::IndexRole).toInt();
- if (modIdx < ModInfo::getNumMods()) {
- ModInfo::Ptr info = ModInfo::getByIndex(modIdx);
- std::vector<ModInfo::EFlag> flags = info->getFlags();
- return flags.size();
- } else {
- return 0;
- }
-}
-
-
-QSize ModFlagIconDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &modelIndex) const
-{
- size_t count = getNumIcons(modelIndex);
- unsigned int index = modelIndex.data(ModList::IndexRole).toInt();
- QSize result;
- if (index < ModInfo::getNumMods()) {
- result = QSize(static_cast<int>(count) * 40, 20);
- } else {
- result = QSize(1, 20);
- }
- if (option.rect.width() > 0) {
- result.setWidth(std::min(option.rect.width(), result.width()));
- }
- return result;
-}
-
+#include "modflagicondelegate.h"
+#include "modlist.h"
+#include "modlistview.h"
+#include <QList>
+#include <log.h>
+
+using namespace MOBase;
+
+ModFlagIconDelegate::ModFlagIconDelegate(ModListView* view, int column, int compactSize)
+ : IconDelegate(view, column, compactSize), m_view(view)
+{}
+
+QList<QString> ModFlagIconDelegate::getIconsForFlags(std::vector<ModInfo::EFlag> flags,
+ bool compact)
+{
+ QList<QString> result;
+
+ // Don't do flags for overwrite
+ if (std::find(flags.begin(), flags.end(), ModInfo::FLAG_OVERWRITE) != flags.end())
+ return result;
+
+ for (auto iter = flags.begin(); iter != flags.end(); ++iter) {
+ auto iconPath = getFlagIcon(*iter);
+ if (!iconPath.isEmpty())
+ result.append(iconPath);
+ }
+
+ return result;
+}
+
+QList<QString> ModFlagIconDelegate::getIcons(const QModelIndex& index) const
+{
+ QVariant modid = index.data(ModList::IndexRole);
+
+ if (modid.isValid()) {
+ bool compact;
+ auto flags = m_view->modFlags(index, &compact);
+ return getIconsForFlags(flags, compact || this->compact());
+ }
+
+ return {};
+}
+
+QString ModFlagIconDelegate::getFlagIcon(ModInfo::EFlag flag)
+{
+ switch (flag) {
+ case ModInfo::FLAG_BACKUP:
+ return QStringLiteral(":/MO/gui/emblem_backup");
+ case ModInfo::FLAG_INVALID:
+ return QStringLiteral(":/MO/gui/problem");
+ case ModInfo::FLAG_NOTENDORSED:
+ return QStringLiteral(":/MO/gui/emblem_notendorsed");
+ case ModInfo::FLAG_NOTES:
+ return QStringLiteral(":/MO/gui/emblem_notes");
+ case ModInfo::FLAG_HIDDEN_FILES:
+ return QStringLiteral(":/MO/gui/emblem_hidden_files");
+ case ModInfo::FLAG_ALTERNATE_GAME:
+ return QStringLiteral(":/MO/gui/alternate_game");
+ case ModInfo::FLAG_FOREIGN:
+ return QString();
+ case ModInfo::FLAG_SEPARATOR:
+ return QString();
+ case ModInfo::FLAG_OVERWRITE:
+ return QString();
+ case ModInfo::FLAG_PLUGIN_SELECTED:
+ return QString();
+ case ModInfo::FLAG_TRACKED:
+ return QStringLiteral(":/MO/gui/tracked");
+ default:
+ log::warn("ModInfo flag {} has no defined icon", flag);
+ return QString();
+ }
+}
+
+size_t ModFlagIconDelegate::getNumIcons(const QModelIndex& index) const
+{
+ unsigned int modIdx = index.data(ModList::IndexRole).toInt();
+ if (modIdx < ModInfo::getNumMods()) {
+ ModInfo::Ptr info = ModInfo::getByIndex(modIdx);
+ std::vector<ModInfo::EFlag> flags = info->getFlags();
+ return flags.size();
+ } else {
+ return 0;
+ }
+}
+
+QSize ModFlagIconDelegate::sizeHint(const QStyleOptionViewItem& option,
+ const QModelIndex& modelIndex) const
+{
+ size_t count = getNumIcons(modelIndex);
+ unsigned int index = modelIndex.data(ModList::IndexRole).toInt();
+ QSize result;
+ if (index < ModInfo::getNumMods()) {
+ result = QSize(static_cast<int>(count) * 40, 20);
+ } else {
+ result = QSize(1, 20);
+ }
+ if (option.rect.width() > 0) {
+ result.setWidth(std::min(option.rect.width(), result.width()));
+ }
+ return result;
+}