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

#include <DlgColorManagementInfo.h>

+ Inheritance diagram for DlgColorManagementInfo:

Public Member Functions

QString captionText () override
 
QString defaultNewFileName () override
 
 DlgColorManagementInfo (QWidget *parent=0)
 
QString infoText (QSettings &kritarc) override
 
QString originalFileName () override
 
QString replacementWarningText () override
 
 ~DlgColorManagementInfo () override
 
- Public Member Functions inherited from DlgBugInfo
QString basicSystemInformationReplacementText ()
 
 DlgBugInfo (QWidget *parent=0, ButtonCodes customButtons=None)
 
void initialize ()
 
void initializeText ()
 
void saveToFile ()
 
 ~DlgBugInfo () override
 
- Public Member Functions inherited from KoDialog
QPushButton * button (ButtonCode id) const
 
QIcon buttonIcon (ButtonCode id) const
 
QString buttonText (ButtonCode id) const
 
QString buttonToolTip (ButtonCode id) const
 
QString buttonWhatsThis (ButtonCode id) const
 
ButtonCode defaultButton () const
 
QString helpLinkText () const
 
void incrementInitialSize (const QSize &size)
 
bool isButtonEnabled (ButtonCode id) const
 
 KoDialog (QWidget *parent=0, Qt::WindowFlags f=Qt::WindowFlags())
 
QWidget * mainWidget ()
 
QSize minimumSizeHint () const override
 
void setButtonFocus (ButtonCode id)
 
void setButtonGuiItem (ButtonCode id, const KGuiItem &item)
 
void setButtonIcon (ButtonCode id, const QIcon &icon)
 
void setButtons (ButtonCodes buttonMask)
 
void setButtonsOrientation (Qt::Orientation orientation)
 
void setButtonText (ButtonCode id, const QString &text)
 
void setButtonToolTip (ButtonCode id, const QString &text)
 
void setButtonWhatsThis (ButtonCode id, const QString &text)
 
void setDefaultButton (ButtonCode id)
 
void setEscapeButton (ButtonCode id)
 
void setInitialSize (const QSize &size)
 
void setMainWidget (QWidget *widget)
 
void showButton (ButtonCode id, bool state)
 
void showButtonSeparator (bool state)
 
QSize sizeHint () const override
 
 ~KoDialog () override
 

Private Attributes

QScopedPointer< KisOutputColorInfoInterfacem_outputColorInfoInterface
 
QScopedPointer< KisSurfaceColorManagementInfom_surfaceColorManagementInfo
 
QString m_surfaceManagementReport
 

Additional Inherited Members

- Public Types inherited from KoDialog
enum  ButtonCode {
  None = 0x00000000 , Help = 0x00000001 , Default = 0x00000002 , Ok = 0x00000004 ,
  Apply = 0x00000008 , Try = 0x00000010 , Cancel = 0x00000020 , Close = 0x00000040 ,
  No = 0x00000080 , Yes = 0x00000100 , Reset = 0x00000200 , Details = 0x00000400 ,
  User1 = 0x00001000 , User2 = 0x00002000 , User3 = 0x00004000 , NoDefault = 0x00008000
}
 
enum  ButtonPopupMode { InstantPopup = 0 , DelayedPopup = 1 }
 
enum  CaptionFlag { NoCaptionFlags = 0 , AppNameCaption = 1 , ModifiedCaption = 2 , HIGCompliantCaption = AppNameCaption }
 
- Public Slots inherited from KoDialog
void delayedDestruct ()
 
void enableButton (ButtonCode id, bool state)
 
void enableButtonApply (bool state)
 
void enableButtonCancel (bool state)
 
void enableButtonOk (bool state)
 
void enableLinkedHelp (bool state)
 
bool isDetailsWidgetVisible () const
 
virtual void setCaption (const QString &caption)
 
virtual void setCaption (const QString &caption, bool modified)
 
void setDetailsWidget (QWidget *detailsWidget)
 
void setDetailsWidgetVisible (bool visible)
 
void setHelp (const QString &anchor, const QString &appname=QString())
 
void setHelpLinkText (const QString &text)
 
virtual void setPlainCaption (const QString &caption)
 
- Signals inherited from KoDialog
void aboutToShowDetails ()
 
void applyClicked ()
 
void buttonClicked (KoDialog::ButtonCode button)
 
void cancelClicked ()
 
void closeClicked ()
 
void defaultClicked ()
 
void finished ()
 
void helpClicked ()
 
void hidden ()
 
void layoutHintChanged ()
 
void noClicked ()
 
void okClicked ()
 
void resetClicked ()
 
void tryClicked ()
 
void user1Clicked ()
 
void user2Clicked ()
 
void user3Clicked ()
 
void yesClicked ()
 
- Static Public Member Functions inherited from KoDialog
static int groupSpacingHint ()
 
static QString makeStandardCaption (const QString &userCaption, QWidget *window=0, CaptionFlags flags=HIGCompliantCaption)
 
static int marginHint ()
 
static void resizeLayout (QLayout *lay, int margin, int spacing)
 
static void resizeLayout (QWidget *widget, int margin, int spacing)
 
static int spacingHint ()
 
- Protected Slots inherited from KoDialog
virtual void slotButtonClicked (int button)
 
- Protected Member Functions inherited from KoDialog
void closeEvent (QCloseEvent *e) override
 
void hideEvent (QHideEvent *) override
 
void keyPressEvent (QKeyEvent *) override
 
void showEvent (QShowEvent *e) override
 
- Protected Attributes inherited from DlgBugInfo
WdgBugInfom_page
 

Detailed Description

Definition at line 18 of file DlgColorManagementInfo.h.

Constructor & Destructor Documentation

◆ DlgColorManagementInfo()

DlgColorManagementInfo::DlgColorManagementInfo ( QWidget * parent = 0)

Definition at line 18 of file DlgColorManagementInfo.cpp.

19 : DlgBugInfo(parent)
20{
21 initialize();
22
23 KPluginFactory *factory = KoPluginLoader::instance()->loadSinglePlugin(
24 std::make_pair("X-Krita-PlatformId", QGuiApplication::platformName()),
25 "Krita/PlatformPlugin");
26
27 if (factory) {
29 factory->create<KisOutputColorInfoInterface>(nullptr));
30
34
36 this, [this] () {
37 if (m_outputColorInfoInterface->isReady()) {
38 initializeText();
39 }
40 });
41 }
42
44 factory->create<KisSurfaceColorManagementInfo>(nullptr));
45
47 auto future = m_surfaceColorManagementInfo->debugReport();
48 future.then([this] (const QString &report) {
51 });
52 }
53 }
54}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
DlgBugInfo(QWidget *parent=0, ButtonCodes customButtons=None)
void initialize()
void initializeText()
QScopedPointer< KisOutputColorInfoInterface > m_outputColorInfoInterface
QScopedPointer< KisSurfaceColorManagementInfo > m_surfaceColorManagementInfo
void sigOutputDescriptionChanged(QScreen *screen, const KisSurfaceColorimetry::SurfaceDescription &desc)
void sigReadyChanged(bool isReady)
static KoPluginLoader * instance()
KPluginFactory * loadSinglePlugin(const std::vector< std::pair< QString, QString > > &predicates, const QString &serviceType)

References connect(), DlgBugInfo::initialize(), DlgBugInfo::initializeText(), KoPluginLoader::instance(), KoPluginLoader::loadSinglePlugin(), m_outputColorInfoInterface, m_surfaceColorManagementInfo, m_surfaceManagementReport, KisOutputColorInfoInterface::sigOutputDescriptionChanged(), and KisOutputColorInfoInterface::sigReadyChanged().

◆ ~DlgColorManagementInfo()

DlgColorManagementInfo::~DlgColorManagementInfo ( )
override

Definition at line 162 of file DlgColorManagementInfo.cpp.

163{
164}

Member Function Documentation

◆ captionText()

QString DlgColorManagementInfo::captionText ( )
overridevirtual

Implements DlgBugInfo.

Definition at line 66 of file DlgColorManagementInfo.cpp.

67{
68 return i18nc("Caption of the dialog with color management information for bug reports", "Krita Color Management Information: please paste this information to the bug report");
69}

◆ defaultNewFileName()

QString DlgColorManagementInfo::defaultNewFileName ( )
overridevirtual

Implements DlgBugInfo.

Definition at line 61 of file DlgColorManagementInfo.cpp.

62{
63 return "KritaColorManagementInformation.txt";
64}

◆ infoText()

QString DlgColorManagementInfo::infoText ( QSettings & kritarc)
overridevirtual

Reimplemented from DlgBugInfo.

Definition at line 84 of file DlgColorManagementInfo.cpp.

85{
86 Q_UNUSED(kritarc)
87
88 QString report;
89 QDebug s(&report);
90
91 s << "Main Window" << Qt::endl;
92 s << "===" << Qt::endl;
93 s << Qt::endl;
94
95 KisMainWindow *mainWindow = qobject_cast<KisMainWindow*>(parent());
96
97 s << "Native window handle:" << mainWindow->windowHandle() << Qt::endl;
98 s << Qt::endl;
99
100 s.noquote().nospace() << KisPlatformPluginInterfaceFactory::instance()->colorManagementReport(mainWindow);
101 s.space().quote();
102 s << Qt::endl;
103
104 if (mainWindow->viewManager()->document()) {
105 auto *doc = mainWindow->viewManager()->document();
106 auto *canvas = mainWindow->viewManager()->canvasBase();
107
108 s << "Document:" << doc->objectName() << "path:" << doc->localFilePath() << Qt::endl;
109 s << "===" << Qt::endl;
110 s << Qt::endl;
111
112 s << "Native window handle:" << canvas->canvasWidget()->windowHandle() << Qt::endl;
113
114
115 if (KisPlatformPluginInterfaceFactory::instance()->surfaceColorManagedByOS() &&
116 canvas->canvasWidget()->windowHandle() == mainWindow->windowHandle()) {
117
118 s << "WARNING: the canvas shares the surface with the main window on a platform with managed surface color space!";
119 }
120 s << Qt::endl;
121
122 s.noquote().nospace() << canvas->colorManagementReport();
123 s.space().quote();
124
125 Q_FOREACH (QScreen *screen, qApp->screens()) {
126 s << Qt::endl;
127 s << "Screen:" << screen->name() << screen->manufacturer() << screen->model();
128 if (screen == mainWindow->screen()) {
129 s << "[CURRENT]";
130 }
131 s << Qt::endl;
132 s << "===" << Qt::endl;
133 s << Qt::endl;
134
135 std::optional<KisSurfaceColorimetry::SurfaceDescription> desc;
136
138 desc = m_outputColorInfoInterface->outputDescription(screen);
139 }
140
141 if (desc) {
142 s.noquote().nospace() << desc->makeTextReport();
143 s.space().quote();
144 } else {
145 s << "<no information available>";
146 }
147 s << Qt::endl;
148 }
149 }
150
151 s << "Color management plugin report" << Qt::endl;
152 s << "===" << Qt::endl;
153 s << Qt::endl;
154
155 s.noquote().nospace() << (m_surfaceManagementReport.isEmpty() ? "<no information available>" : m_surfaceManagementReport);
156 s.space().quote();
157 s << Qt::endl;
158
159 return report;
160}
KisAbstractCanvasWidget * canvasWidget
Main window for Krita.
KisViewManager * viewManager
static KisPlatformPluginInterfaceFactory * instance()
KisDocument * document() const
KisCanvas2 * canvasBase() const
Return the canvas base class.
ChildIterator< value_type, is_const > parent(const ChildIterator< value_type, is_const > &it)
Definition KisForest.h:327

References KisViewManager::canvasBase(), KisCanvas2::canvasWidget, KisPlatformPluginInterfaceFactory::colorManagementReport(), KisViewManager::document(), KisPlatformPluginInterfaceFactory::instance(), m_outputColorInfoInterface, m_surfaceManagementReport, and KisMainWindow::viewManager.

◆ originalFileName()

QString DlgColorManagementInfo::originalFileName ( )
overridevirtual

Implements DlgBugInfo.

Definition at line 56 of file DlgColorManagementInfo.cpp.

57{
58 return "";
59}

◆ replacementWarningText()

QString DlgColorManagementInfo::replacementWarningText ( )
overridevirtual

Implements DlgBugInfo.

Definition at line 71 of file DlgColorManagementInfo.cpp.

72{
73 qFatal("not used");
74 return "";
75}

Member Data Documentation

◆ m_outputColorInfoInterface

QScopedPointer<KisOutputColorInfoInterface> DlgColorManagementInfo::m_outputColorInfoInterface
private

Definition at line 34 of file DlgColorManagementInfo.h.

◆ m_surfaceColorManagementInfo

QScopedPointer<KisSurfaceColorManagementInfo> DlgColorManagementInfo::m_surfaceColorManagementInfo
private

Definition at line 35 of file DlgColorManagementInfo.h.

◆ m_surfaceManagementReport

QString DlgColorManagementInfo::m_surfaceManagementReport
private

Definition at line 36 of file DlgColorManagementInfo.h.


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