Krita Source Code Documentation
Loading...
Searching...
No Matches
KisResourceItemViewer.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2023 Srirupa Datta <srirupa.sps@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
8
10#include "KisPopupButton.h"
11#include <KoIcon.h>
12#include <kis_config.h>
13
14#include <QMenu>
15#include <QActionGroup>
16
18 KisPopupButton(parent),
19 m_mode(ListViewMode::IconGrid),
20 m_type(type)
21{
22 QMenu* viewModeMenu = new QMenu(this);
23 KisConfig cfg(true);
24
25 viewModeMenu->setStyleSheet("margin: 6px");
26 setArrowVisible(false);
27 setAutoRaise(true);
28
29 // View Modes Btns
30 viewModeMenu->addSection(i18nc("@title Which elements to display (e.g., thumbnails or details)", "Display"));
31
33 m_mode = (cfg.readEntry<quint32>("ResourceItemsBCSearch.viewMode", 1) == 1)? ListViewMode::IconGrid : ListViewMode::Detail;
34 } else if (m_type == Viewer::ResourceManager) {
35 m_mode = (cfg.readEntry<quint32>("ResourceItemsRM.viewMode", 1) == 1)? ListViewMode::IconGrid : ListViewMode::Detail;
36 } else {
37 m_mode = (cfg.readEntry<quint32>("ResourceItemsBCSelected.viewMode", 1) == 1)? ListViewMode::IconGrid : ListViewMode::Detail;
38 }
39
40 QActionGroup *actionGroup = new QActionGroup(viewModeMenu);
41
42 QAction* action = viewModeMenu->addAction(KisIconUtils::loadIcon("view-preview"), i18n("Thumbnails"));
43 action->setCheckable(true);
44 action->setChecked(m_mode == ListViewMode::IconGrid);
45 action->setActionGroup(actionGroup);
46 connect(action, SIGNAL(triggered()), this, SLOT(slotViewThumbnail()));
47
48 action = viewModeMenu->addAction(KisIconUtils::loadIcon("view-list-details"), i18n("Details"));
49 action->setCheckable(true);
50 action->setChecked(m_mode == ListViewMode::Detail);
51 action->setActionGroup(actionGroup);
52 connect(action, SIGNAL(triggered()), this, SLOT(slotViewDetails()));
53
54 setPopupWidget(viewModeMenu);
55 setPopupMode(QToolButton::InstantPopup);
56 setIcon(KisIconUtils::loadIcon("view-choose"));
57
60 } else {
62 }
63
64}
65
69
71{
72 KisConfig cfg(false);
74 cfg.writeEntry("ResourceItemsBCSearch.viewMode", qint32(1));
75 } else if (m_type == Viewer::ResourceManager) {
76 cfg.writeEntry("ResourceItemsRM.viewMode", qint32(1));
77 } else {
78 cfg.writeEntry("ResourceItemsBCSelected.viewMode", qint32(1));
79 }
80 Q_EMIT onViewThumbnail();
81}
82
84{
85 KisConfig cfg(false);
87 cfg.writeEntry("ResourceItemsBCSearch.viewMode", qint32(0));
88 } else if (m_type == Viewer::ResourceManager) {
89 cfg.writeEntry("ResourceItemsRM.viewMode", qint32(0));
90 } else {
91 cfg.writeEntry("ResourceItemsBCSelected.viewMode", qint32(0));
92 }
93 Q_EMIT onViewDetails();
94}
95
@ ResourceManager
@ TableAvailable
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
void writeEntry(const QString &name, const T &value)
Definition kis_config.h:779
T readEntry(const QString &name, const T &defaultValue=T())
Definition kis_config.h:789
void setPopupWidget(QWidget *widget)
void setArrowVisible(bool v)
KisResourceItemViewer(Viewer type, QWidget *parent=nullptr)
QIcon loadIcon(const QString &name)