diff options
| author | Mikaël Capelle <capelle.mikael@gmail.com> | 2022-05-17 11:37:19 +0200 |
|---|---|---|
| committer | Mikaël Capelle <capelle.mikael@gmail.com> | 2023-07-09 17:17:53 +0200 |
| commit | 86bb01ba9eac879d3685c439ac9da0028bc4bc80 (patch) | |
| tree | 90cc575c2d02113af459b7772418285f2e5caa1f /src/icondelegate.cpp | |
| parent | 7d6cb8528d20e36a4cee822263865ee2f7f32481 (diff) | |
Convert everything to CRLF.
Diffstat (limited to 'src/icondelegate.cpp')
| -rw-r--r-- | src/icondelegate.cpp | 174 |
1 files changed, 87 insertions, 87 deletions
diff --git a/src/icondelegate.cpp b/src/icondelegate.cpp index 7205ba62..23235814 100644 --- a/src/icondelegate.cpp +++ b/src/icondelegate.cpp @@ -1,87 +1,87 @@ -/*
-Copyright (C) 2012 Sebastian Herbord. All rights reserved.
-
-This file is part of Mod Organizer.
-
-Mod Organizer is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-Mod Organizer is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include "icondelegate.h"
-#include <log.h>
-#include <QHBoxLayout>
-#include <QLabel>
-#include <QPainter>
-#include <QDebug>
-#include <QPixmapCache>
-
-using namespace MOBase;
-
-IconDelegate::IconDelegate(QTreeView* view, int column, int compactSize) :
- QStyledItemDelegate(view), m_column(column), m_compactSize(compactSize), m_compact(false)
-{
- if (view) {
- connect(view->header(), &QHeaderView::sectionResized, [=](int column, int, int size) {
- if (column == m_column) {
- m_compact = size < m_compactSize;
- }
- });
- }
-}
-
-void IconDelegate::paintIcons(
- QPainter *painter, const QStyleOptionViewItem &option,
- const QModelIndex &index, const QList<QString>& icons)
-{
- int x = 4;
- painter->save();
-
- int iconWidth = icons.size() > 0 ? ((option.rect.width() / icons.size()) - 4) : 16;
- iconWidth = std::min(16, iconWidth);
-
- const int margin = (option.rect.height() - iconWidth) / 2;
-
- painter->translate(option.rect.topLeft());
- for (const QString &iconId : icons) {
- if (iconId.isEmpty()) {
- x += iconWidth + 4;
- continue;
- }
- QPixmap icon;
- QString fullIconId = QString("%1_%2").arg(iconId).arg(iconWidth);
- if (!QPixmapCache::find(fullIconId, &icon)) {
- icon = QIcon(iconId).pixmap(iconWidth, iconWidth);
- if (icon.isNull()) {
- log::warn("failed to load icon {}", iconId);
- }
- QPixmapCache::insert(fullIconId, icon);
- }
- painter->drawPixmap(x, margin, iconWidth, iconWidth, icon);
- x += iconWidth + 4;
- }
-
- painter->restore();
-}
-
-void IconDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
-{
- if (auto* w = qobject_cast<QAbstractItemView*>(parent())) {
- w->itemDelegate()->paint(painter, option, index);
- }
- else {
- QStyledItemDelegate::paint(painter, option, index);
- }
-
- paintIcons(painter, option, index, getIcons(index));
-}
-
+/* +Copyright (C) 2012 Sebastian Herbord. All rights reserved. + +This file is part of Mod Organizer. + +Mod Organizer is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Mod Organizer is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>. +*/ + +#include "icondelegate.h" +#include <log.h> +#include <QHBoxLayout> +#include <QLabel> +#include <QPainter> +#include <QDebug> +#include <QPixmapCache> + +using namespace MOBase; + +IconDelegate::IconDelegate(QTreeView* view, int column, int compactSize) : + QStyledItemDelegate(view), m_column(column), m_compactSize(compactSize), m_compact(false) +{ + if (view) { + connect(view->header(), &QHeaderView::sectionResized, [=](int column, int, int size) { + if (column == m_column) { + m_compact = size < m_compactSize; + } + }); + } +} + +void IconDelegate::paintIcons( + QPainter *painter, const QStyleOptionViewItem &option, + const QModelIndex &index, const QList<QString>& icons) +{ + int x = 4; + painter->save(); + + int iconWidth = icons.size() > 0 ? ((option.rect.width() / icons.size()) - 4) : 16; + iconWidth = std::min(16, iconWidth); + + const int margin = (option.rect.height() - iconWidth) / 2; + + painter->translate(option.rect.topLeft()); + for (const QString &iconId : icons) { + if (iconId.isEmpty()) { + x += iconWidth + 4; + continue; + } + QPixmap icon; + QString fullIconId = QString("%1_%2").arg(iconId).arg(iconWidth); + if (!QPixmapCache::find(fullIconId, &icon)) { + icon = QIcon(iconId).pixmap(iconWidth, iconWidth); + if (icon.isNull()) { + log::warn("failed to load icon {}", iconId); + } + QPixmapCache::insert(fullIconId, icon); + } + painter->drawPixmap(x, margin, iconWidth, iconWidth, icon); + x += iconWidth + 4; + } + + painter->restore(); +} + +void IconDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const +{ + if (auto* w = qobject_cast<QAbstractItemView*>(parent())) { + w->itemDelegate()->paint(painter, option, index); + } + else { + QStyledItemDelegate::paint(painter, option, index); + } + + paintIcons(painter, option, index, getIcons(index)); +} + |
