Krita Source Code Documentation
Loading...
Searching...
No Matches
DlgBugInfo Class Referenceabstract

#include <dlg_buginfo.h>

+ Inheritance diagram for DlgBugInfo:

Public Member Functions

QString basicSystemInformationReplacementText ()
 
virtual QString captionText ()=0
 
virtual QString defaultNewFileName ()=0
 
 DlgBugInfo (QWidget *parent=0, ButtonCodes customButtons=None)
 
virtual QString infoText (QSettings &kritarc)
 
void initialize ()
 
void initializeText ()
 
virtual QString originalFileName ()=0
 
virtual QString replacementWarningText ()=0
 
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
 

Protected Attributes

WdgBugInfom_page
 

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
 

Detailed Description

Definition at line 26 of file dlg_buginfo.h.

Constructor & Destructor Documentation

◆ DlgBugInfo()

DlgBugInfo::DlgBugInfo ( QWidget * parent = 0,
ButtonCodes customButtons = None )

Definition at line 34 of file dlg_buginfo.cpp.

35 : KoDialog(parent)
36 , m_page(new WdgBugInfo(this))
37{
38 setCaption(i18n("Please paste this information in your bug report"));
39
40 setButtons(User1 | User2 | Ok | customButtons);
41 setButtonText(User1, i18n("Copy to clipboard"));
42 setButtonText(User2, i18n("Save to file"));
44
45 Q_CHECK_PTR(m_page);
46
48
49 connect(this, &KoDialog::user1Clicked, this, [this](){
50 QGuiApplication::clipboard()->setText(m_page->txtBugInfo->toPlainText());
51 m_page->txtBugInfo->selectAll(); // feedback
52 });
53
55
56}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
void saveToFile()
WdgBugInfo * m_page
Definition dlg_buginfo.h:47
void user1Clicked()
void setMainWidget(QWidget *widget)
Definition KoDialog.cpp:354
void setButtonText(ButtonCode id, const QString &text)
Definition KoDialog.cpp:648
virtual void setCaption(const QString &caption)
Definition KoDialog.cpp:498
void user2Clicked()
void setButtons(ButtonCodes buttonMask)
Definition KoDialog.cpp:195
void setDefaultButton(ButtonCode id)
Definition KoDialog.cpp:302
@ User2
Show User defined button 2.
Definition KoDialog.h:137
@ Ok
Show Ok button. (this button accept()s the dialog; result set to QDialog::Accepted)
Definition KoDialog.h:127
@ User1
Show User defined button 1.
Definition KoDialog.h:136
KoDialog(QWidget *parent=0, Qt::WindowFlags f=Qt::WindowFlags())
Definition KoDialog.cpp:176

References connect(), m_page, KoDialog::Ok, saveToFile(), KoDialog::setButtons(), KoDialog::setButtonText(), KoDialog::setCaption(), KoDialog::setDefaultButton(), KoDialog::setMainWidget(), KoDialog::User1, KoDialog::user1Clicked(), KoDialog::User2, and KoDialog::user2Clicked().

◆ ~DlgBugInfo()

DlgBugInfo::~DlgBugInfo ( )
override

Definition at line 179 of file dlg_buginfo.cpp.

180{
181 delete m_page;
182}

References m_page.

Member Function Documentation

◆ basicSystemInformationReplacementText()

QString DlgBugInfo::basicSystemInformationReplacementText ( )

Definition at line 106 of file dlg_buginfo.cpp.

107{
108 QString info;
109
110 // Krita version info
111 info.append("Krita");
112 info.append("\n Version: ").append(KritaVersionWrapper::versionString(true));
113 info.append("\n\n");
114
115 info.append("Qt");
116 info.append("\n Version (compiled): ").append(QT_VERSION_STR);
117 info.append("\n Version (loaded): ").append(qVersion());
118 info.append("\n\n");
119
120 // OS information
121 info.append("OS Information");
122 info.append("\n Build ABI: ").append(QSysInfo::buildAbi());
123 info.append("\n Build CPU: ").append(QSysInfo::buildCpuArchitecture());
124 info.append("\n CPU: ").append(QSysInfo::currentCpuArchitecture());
125 info.append("\n Kernel Type: ").append(QSysInfo::kernelType());
126 info.append("\n Kernel Version: ").append(QSysInfo::kernelVersion());
127 info.append("\n Pretty Productname: ").append(QSysInfo::prettyProductName());
128 info.append("\n Product Type: ").append(QSysInfo::productType());
129 info.append("\n Product Version: ").append(QSysInfo::productVersion());
130#ifdef Q_OS_ANDROID
131 QString manufacturer =
132 QAndroidJniObject::getStaticObjectField("android/os/Build", "MANUFACTURER", "Ljava/lang/String;").toString();
133 const QString model =
134 QAndroidJniObject::getStaticObjectField("android/os/Build", "MODEL", "Ljava/lang/String;").toString();
135 manufacturer[0] = manufacturer[0].toUpper();
136 info.append("\n Product Model: ").append(manufacturer + " " + model);
137#endif
138 info.append("\n\n");
139
140 // OpenGL information
141 info.append("\n").append(KisOpenGL::getDebugText());
142 info.append("\n\n");
143 // Hardware information
144 info.append("Hardware Information");
145 info.append(QString("\n Memory: %1").arg(KisImageConfig(true).totalRAM() / 1024)).append(" Gb");
146 info.append(QString("\n Cores: %1").arg(QThread::idealThreadCount()));
147 info.append("\n Swap: ").append(KisImageConfig(true).swapDir());
148
149 return info;
150}
static const QString & getDebugText()
KRITAVERSION_EXPORT QString versionString(bool checkGit=false)

References KisOpenGL::getDebugText(), and KritaVersionWrapper::versionString().

◆ captionText()

virtual QString DlgBugInfo::captionText ( )
pure virtual

◆ defaultNewFileName()

virtual QString DlgBugInfo::defaultNewFileName ( )
pure virtual

◆ infoText()

QString DlgBugInfo::infoText ( QSettings & kritarc)
virtual

Reimplemented in DlgColorManagementInfo.

Definition at line 152 of file dlg_buginfo.cpp.

153{
154 QString info;
155
156 if (!kritarc.value("LogUsage", true).toBool() || !QFileInfo(originalFileName()).exists()) {
157
158 // NOTE: This is intentionally not translated!
159
160 info.append(replacementWarningText());
161 info.append("File name and location: " + originalFileName());
162 info.append("------------------------------------");
163 info.append("\n\n");
164
166 }
167 else {
168
169 QFile log(originalFileName());
170 log.open(QFile::ReadOnly | QFile::Text);
171 info += QString::fromUtf8(log.readAll());
172 log.close();
173 }
174
175 return info;
176
177}
virtual QString originalFileName()=0
virtual QString replacementWarningText()=0
QString basicSystemInformationReplacementText()

References basicSystemInformationReplacementText(), originalFileName(), and replacementWarningText().

◆ initialize()

void DlgBugInfo::initialize ( )

Definition at line 58 of file dlg_buginfo.cpp.

59{
62}
void initializeText()
virtual QString captionText()=0

References captionText(), initializeText(), and KoDialog::setCaption().

◆ initializeText()

void DlgBugInfo::initializeText ( )

Definition at line 64 of file dlg_buginfo.cpp.

65{
66 const QString configPath = QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation);
67 QSettings kritarc(configPath + QStringLiteral("/kritadisplayrc"), QSettings::IniFormat);
68
69 QString info = infoText(kritarc);
70
71 m_page->txtBugInfo->setText(info);
72}
virtual QString infoText(QSettings &kritarc)

References infoText(), and m_page.

◆ originalFileName()

virtual QString DlgBugInfo::originalFileName ( )
pure virtual

◆ replacementWarningText()

virtual QString DlgBugInfo::replacementWarningText ( )
pure virtual

◆ saveToFile()

void DlgBugInfo::saveToFile ( )

Definition at line 74 of file dlg_buginfo.cpp.

75{
76 KoFileDialog dlg(this, KoFileDialog::SaveFile, i18n("Save to file"));
77 dlg.setDefaultDir(QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation) + "/" + defaultNewFileName());
78 dlg.setMimeTypeFilters(QStringList("text/plain"), "text/plain");
79 QString filename = dlg.filename();
80
81 if (filename.isEmpty()) {
82 return;
83 } else {
84
85 QFile file(filename);
86 if (!file.open(QIODevice::WriteOnly)) {
87 QMessageBox::information(this, i18n("Unable to open file"),
88 file.errorString());
89 return;
90 }
91
92 QTextStream out(&file);
94 QString originalLogFileName = originalFileName();
95 if (originalLogFileName.isEmpty() && QFileInfo(originalLogFileName).exists()) {
96 QFile src(originalLogFileName);
97 out << src.readAll();
98 src.close();
99 } else {
100 out << m_page->txtBugInfo->toPlainText();
101 }
102 file.close();
103 }
104}
QList< QString > QStringList
virtual QString defaultNewFileName()=0
void setUtf8OnStream(QTextStream &stream)

References defaultNewFileName(), KoFileDialog::filename(), m_page, originalFileName(), KoFileDialog::SaveFile, KoFileDialog::setDefaultDir(), KoFileDialog::setMimeTypeFilters(), and KisPortingUtils::setUtf8OnStream().

Member Data Documentation

◆ m_page

WdgBugInfo* DlgBugInfo::m_page
protected

Definition at line 47 of file dlg_buginfo.h.


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