Krita Source Code Documentation
Loading...
Searching...
No Matches
PyQtPluginSettings Class Reference

#include <pyqtpluginsettings.h>

+ Inheritance diagram for PyQtPluginSettings:

Public Slots

void loadDefaultPreferences () override
 
void loadPreferences () override
 
void savePreferences () const override
 
- Public Slots inherited from KisPreferenceSet
virtual void loadDefaultPreferences ()=0
 
virtual void loadPreferences ()=0
 
virtual void savePreferences () const =0
 

Signals

void settingsChanged () const
 

Public Member Functions

QString header () override
 
QIcon icon () override
 
QString id () override
 
QString name () override
 
 PyQtPluginSettings (PythonPluginManager *pluginManager, QWidget *parent=nullptr)
 
 ~PyQtPluginSettings () override
 
- Public Member Functions inherited from KisPreferenceSet
 KisPreferenceSet (QWidget *parent=0)
 

Private Slots

void updateTextBrowser (const QModelIndex &index)
 

Private Attributes

QTextBrowser * m_manualBrowser
 
Ui::ManagerPage * m_page
 
PythonPluginManager * m_pluginManager
 
QTextBrowser * m_statusBrowser
 

Detailed Description

Definition at line 20 of file pyqtpluginsettings.h.

Constructor & Destructor Documentation

◆ PyQtPluginSettings()

PyQtPluginSettings::PyQtPluginSettings ( PythonPluginManager * pluginManager,
QWidget * parent = nullptr )

Definition at line 26 of file pyqtpluginsettings.cpp.

27 : KisPreferenceSet(parent)
28 , m_pluginManager(pluginManager)
29 , m_page(new Ui::ManagerPage)
30{
31 m_page->setupUi(this);
32
33 QSortFilterProxyModel* const proxy_model = new QSortFilterProxyModel(this);
34 proxy_model->setSourceModel(pluginManager->model());
35 m_page->pluginsList->setModel(proxy_model);
36 m_page->pluginsList->resizeColumnToContents(PythonPluginsModel::COL_ENABLED);
37 m_page->pluginsList->resizeColumnToContents(PythonPluginsModel::COL_NAME);
38 m_page->pluginsList->header()->setSectionResizeMode(PythonPluginsModel::COL_COMMENT, QHeaderView::Stretch);
39 m_page->pluginsList->header()->setSectionResizeMode(PythonPluginsModel::COL_STATUS, QHeaderView::ResizeToContents);
40 m_page->pluginsList->header()->setStretchLastSection(false);
41 m_page->pluginsList->sortByColumn(PythonPluginsModel::COL_NAME, Qt::AscendingOrder);
42 m_page->pluginsList->setSortingEnabled(true);
43
44 const bool is_enabled = bool(pluginManager);
45 const bool is_visible = !is_enabled;
46 m_page->errorLabel->setVisible(is_visible);
47 m_page->pluginsList->setEnabled(is_enabled);
48 m_page->textTabWidget->setEnabled(is_enabled);
49
50 m_manualBrowser = new QTextBrowser();
51 m_page->textTabWidget->addTab(m_manualBrowser, i18nc("@title:tab plugin manual", "Manual"));
52 m_statusBrowser = new QTextBrowser();
53 m_page->textTabWidget->addTab(m_statusBrowser, i18nc("@title:tab plugin status", "Status"));
54
55 connect(m_page->pluginsList, SIGNAL(clicked(QModelIndex)), SLOT(updateTextBrowser(QModelIndex)));
56}
KisPreferenceSet(QWidget *parent=0)
QTextBrowser * m_statusBrowser
QTextBrowser * m_manualBrowser
Ui::ManagerPage * m_page
PythonPluginManager * m_pluginManager
void updateTextBrowser(const QModelIndex &index)
PythonPluginsModel * model()
PythonPluginManager * pluginManager()
Definition utilities.cpp:92

References PythonPluginsModel::COL_COMMENT, PythonPluginsModel::COL_ENABLED, PythonPluginsModel::COL_NAME, PythonPluginsModel::COL_STATUS, m_manualBrowser, m_page, m_statusBrowser, PythonPluginManager::model(), and updateTextBrowser().

◆ ~PyQtPluginSettings()

PyQtPluginSettings::~PyQtPluginSettings ( )
override

Definition at line 58 of file pyqtpluginsettings.cpp.

59{
60 delete m_page;
61}

References m_page.

Member Function Documentation

◆ header()

QString PyQtPluginSettings::header ( )
overridevirtual

Implements KisPreferenceSet.

Definition at line 73 of file pyqtpluginsettings.cpp.

74{
75 return QString(i18n("Python Plugin Manager"));
76}

◆ icon()

QIcon PyQtPluginSettings::icon ( )
overridevirtual

Implements KisPreferenceSet.

Definition at line 79 of file pyqtpluginsettings.cpp.

80{
81 return KisIconUtils::loadIcon("python");
82}
QIcon loadIcon(const QString &name)

References KisIconUtils::loadIcon().

◆ id()

QString PyQtPluginSettings::id ( )
overridevirtual

Implements KisPreferenceSet.

Definition at line 63 of file pyqtpluginsettings.cpp.

64{
65 return QString("pykritapluginmanager");
66}

◆ loadDefaultPreferences

void PyQtPluginSettings::loadDefaultPreferences ( )
overrideslot

Definition at line 94 of file pyqtpluginsettings.cpp.

95{
96}

◆ loadPreferences

void PyQtPluginSettings::loadPreferences ( )
overrideslot

Definition at line 90 of file pyqtpluginsettings.cpp.

91{
92}

◆ name()

QString PyQtPluginSettings::name ( )
overridevirtual

Implements KisPreferenceSet.

Definition at line 68 of file pyqtpluginsettings.cpp.

69{
70 return header();
71}
QString header() override

References header().

◆ savePreferences

void PyQtPluginSettings::savePreferences ( ) const
overrideslot

Definition at line 85 of file pyqtpluginsettings.cpp.

86{
87 Q_EMIT(settingsChanged());
88}
void settingsChanged() const

References settingsChanged().

◆ settingsChanged

void PyQtPluginSettings::settingsChanged ( ) const
signal

◆ updateTextBrowser

void PyQtPluginSettings::updateTextBrowser ( const QModelIndex & index)
privateslot

Definition at line 98 of file pyqtpluginsettings.cpp.

99{
100 QModelIndex unsortedIndex = static_cast<QSortFilterProxyModel*>(m_page->pluginsList->model())->mapToSource(index);
101 PythonPlugin *plugin = m_pluginManager->model()->plugin(unsortedIndex);
102 if (!plugin) { return; }
103
104 QString manual = plugin->manual();
105 if (manual.isEmpty()) {
106 m_manualBrowser->setHtml("<html><body><h1>No Manual Available</h2></body></html>");
107 } else if (manual.startsWith("<html")) {
108 m_manualBrowser->setHtml(manual);
109 } else {
110 m_manualBrowser->setText(manual);
111 }
112
113 m_statusBrowser->setHtml(
114 QString(i18nc("%1 plugin file path", "Location: %1")).arg(plugin->desktopFilePath()) + "<br>" +
115 (plugin->isEnabled() ? i18n("Enabled: true") : i18n("Enabled: false")) + "<br>" +
116 QString(i18nc("%1 plugin status text",
117 "Status: %1")).arg(plugin->statusText()) + "<br>" +
118 QString(i18nc("%1 plugin error message",
119 "Error: %1")).arg(!plugin->errorReason().isEmpty() ?
120 plugin->errorReason() : i18n("None")) + "<br>"
121 );
122
123 if (index.column() == PythonPluginsModel::COL_STATUS) {
124 m_page->textTabWidget->setCurrentIndex(TextBrowserTab::Status);
125 } else {
126 m_page->textTabWidget->setCurrentIndex(TextBrowserTab::Manual);
127 }
128}
bool isEnabled() const
QString desktopFilePath() const
PythonPlugin * plugin(const QModelIndex &) const

References PythonPluginsModel::COL_STATUS, PythonPlugin::desktopFilePath(), PythonPlugin::errorReason(), PythonPlugin::isEnabled(), m_manualBrowser, m_page, m_pluginManager, m_statusBrowser, Manual, PythonPlugin::manual(), PythonPluginManager::model(), PythonPluginsModel::plugin(), Status, and PythonPlugin::statusText().

Member Data Documentation

◆ m_manualBrowser

QTextBrowser* PyQtPluginSettings::m_manualBrowser
private

Definition at line 48 of file pyqtpluginsettings.h.

◆ m_page

Ui::ManagerPage* PyQtPluginSettings::m_page
private

Definition at line 47 of file pyqtpluginsettings.h.

◆ m_pluginManager

PythonPluginManager* PyQtPluginSettings::m_pluginManager
private

Definition at line 46 of file pyqtpluginsettings.h.

◆ m_statusBrowser

QTextBrowser* PyQtPluginSettings::m_statusBrowser
private

Definition at line 49 of file pyqtpluginsettings.h.


The documentation for this class was generated from the following files: