Engauge Digitizer
2
Toggle main menu visibility
Loading...
Searching...
No Matches
Dlg
DlgErrorReportLocal.cpp
Go to the documentation of this file.
1
/******************************************************************************************************
2
* (C) 2014 markummitchell@github.com. This file is part of Engauge Digitizer, which is released *
3
* under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file *
4
* LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. *
5
******************************************************************************************************/
6
7
#include "
DlgErrorReportLocal.h
"
8
#include <QCheckBox>
9
#include <QCommonStyle>
10
#include <QFile>
11
#include <QHBoxLayout>
12
#include <QLabel>
13
#include <QPushButton>
14
#include <QTextStream>
15
#include <QVBoxLayout>
16
17
const
int
MAX_BTN_WIDTH
= 80;
18
19
DlgErrorReportLocal::DlgErrorReportLocal
(
const
QString &xml,
20
QWidget *parent) :
21
DlgErrorReportAbstractBase
(parent),
22
m_xmlOriginal (xml),
23
m_xmlAnonymized (xml)
24
{
25
QVBoxLayout *layout =
new
QVBoxLayout;
26
layout->setSizeConstraint (QLayout::SetFixedSize);
27
setLayout (layout);
28
29
QCommonStyle style;
30
setModal(
true
);
31
setWindowTitle (tr (
"Error Report"
));
32
setWindowIcon(style.standardIcon (QStyle::SP_MessageBoxCritical));
33
34
QLabel *lblMessage =
new
QLabel (tr (
"An unrecoverable error has occurred. Would you like to save an error report that can "
35
"be sent later to the Engauge developers?\n\n"
36
"The original document can be sent as part of the error report, which increases the "
37
"chances of finding and fixing the problem(s). However, if any information is private "
38
"then an anonymized version of the document will be sent."
));
39
lblMessage->setWordWrap(
true
);
40
layout->addWidget (lblMessage);
41
42
m_chkOriginal =
new
QCheckBox (tr (
"Include original document information, otherwise anonymize the information"
));
43
m_chkOriginal->setChecked (
true
);
44
updateFile ();
45
layout->addWidget (m_chkOriginal);
46
connect (m_chkOriginal, SIGNAL (stateChanged (
int
)),
this
, SLOT (slotDocumentCheckboxChanged (
int
)));
47
48
QHBoxLayout *layoutButtons =
new
QHBoxLayout;
49
50
QWidget *panelButtons =
new
QWidget;
51
panelButtons->setLayout (layoutButtons);
52
layout->addWidget (panelButtons);
53
54
m_btnSave =
new
QPushButton(tr (
"Save"
));
55
m_btnSave->setMaximumWidth (
MAX_BTN_WIDTH
);
56
layoutButtons->addWidget (m_btnSave);
57
connect (m_btnSave, SIGNAL (released ()),
this
, SLOT (slotSave()));
58
59
m_btnCancel =
new
QPushButton(tr (
"Cancel"
));
60
m_btnCancel->setMaximumWidth (
MAX_BTN_WIDTH
);
61
layoutButtons->addWidget (m_btnCancel);
62
connect (m_btnCancel, SIGNAL (released ()),
this
, SLOT (reject ()));
63
}
64
65
DlgErrorReportLocal::~DlgErrorReportLocal
()
66
{
67
removeFile();
68
}
69
70
void
DlgErrorReportLocal::removeFile()
const
71
{
72
QFile::remove (
errorFile
());
73
}
74
75
void
DlgErrorReportLocal::slotDocumentCheckboxChanged(
int
/* state */
)
76
{
77
updateFile();
78
}
79
80
void
DlgErrorReportLocal::slotSave()
81
{
82
// This is the one path that allows information to be sent to the server
83
if
(m_chkOriginal->isChecked()) {
84
m_xmlToUpload = m_xmlOriginal;
85
}
else
{
86
m_xmlToUpload = m_xmlAnonymized;
87
}
88
89
done (QDialog::Accepted);
90
91
close();
92
}
93
94
void
DlgErrorReportLocal::updateFile()
95
{
96
if
(m_chkOriginal->isChecked()) {
97
saveFile
(m_xmlOriginal);
98
}
else
{
99
saveFile
(m_xmlAnonymized);
100
}
101
}
102
103
QString
DlgErrorReportLocal::xmlToUpload
()
const
104
{
105
return
m_xmlToUpload;
106
}
MAX_BTN_WIDTH
const int MAX_BTN_WIDTH
Definition
DlgErrorReportLocal.cpp:17
DlgErrorReportLocal.h
DlgErrorReportAbstractBase::errorFile
QString errorFile() const
File name for output file containing error report.
Definition
DlgErrorReportAbstractBase.cpp:23
DlgErrorReportAbstractBase::saveFile
void saveFile(const QString &xml) const
Save xml into output file named by errorFile.
Definition
DlgErrorReportAbstractBase.cpp:28
DlgErrorReportAbstractBase::DlgErrorReportAbstractBase
DlgErrorReportAbstractBase(QWidget *parent=0)
Single constructor.
Definition
DlgErrorReportAbstractBase.cpp:14
DlgErrorReportLocal::xmlToUpload
QString xmlToUpload() const
Xml to be uploaded. Includes document if user has approved.
Definition
DlgErrorReportLocal.cpp:103
DlgErrorReportLocal::~DlgErrorReportLocal
~DlgErrorReportLocal()
Definition
DlgErrorReportLocal.cpp:65
DlgErrorReportLocal::DlgErrorReportLocal
DlgErrorReportLocal(const QString &xmlWithImage, QWidget *parent=0)
Single constructor. With the original data, the extra context improves debugging. With anonymization,...
Definition
DlgErrorReportLocal.cpp:19
Generated on
for Engauge Digitizer by
1.17.0