]> git.sven.stormbind.net Git - sven/vym.git/blob - src/export-confluence-dialog.cpp
Replace Pierre as the maintainer
[sven/vym.git] / src / export-confluence-dialog.cpp
1 #include "export-confluence-dialog.h"
2
3 #include <QDateTime>
4 #include <QDebug>
5 #include <QFileDialog>
6 #include <QMessageBox>
7
8 #include "file.h"
9 #include "mainwindow.h"
10 #include "settings.h"
11
12 extern QDir vymBaseDir;
13 extern Settings settings;
14 extern bool debug;
15 extern Main *mainWindow;
16
17 ExportConfluenceDialog::ExportConfluenceDialog(QWidget *parent)
18     : QDialog(parent)
19 {
20     ui.setupUi(this);
21
22     filepath = "";
23
24     connect(ui.createPageButton, SIGNAL(clicked(bool)), this,
25             SLOT(pageButtonPressed()));
26     connect(ui.updatePageButton, SIGNAL(clicked(bool)), this,
27             SLOT(pageButtonPressed()));
28
29     // signals and slots connections
30     connect(ui.mapCenterToPageNameCheckBox, SIGNAL(toggled(bool)), this,
31             SLOT(mapCenterToPageNameCheckBoxPressed(bool)));
32     connect(ui.lineEditURL, SIGNAL(textChanged(const QString &)), this,
33             SLOT(URLChanged()));
34     connect(ui.lineEditPageName, SIGNAL(textChanged(const QString &)), this,
35             SLOT(pageNameChanged()));
36
37     connect(ui.exportButton, &QPushButton::clicked, this, &ExportConfluenceDialog::doExport);
38
39     connect(ui.openPageButton, &QPushButton::clicked, this, &ExportConfluenceDialog::openUrl);
40 }
41
42 void ExportConfluenceDialog::setCreateNewPage(bool b) { ui.createPageButton->setChecked(b); }
43
44 bool ExportConfluenceDialog::getCreateNewPage() { return ui.createPageButton->isChecked(); }
45
46 void ExportConfluenceDialog::openUrl()
47 {
48     mainWindow->openURL(ui.lineEditURL->text());
49 }
50
51 QString ExportConfluenceDialog::getUrl() { return url; }
52
53 QString ExportConfluenceDialog::getPageName() { return pageName; }
54
55 void ExportConfluenceDialog::setPageNameHint(const QString &s) 
56 {
57     pageNameHint = s;
58 }
59 void ExportConfluenceDialog::readSettings()
60 {
61     url = settings
62                   .localValue(filepath, "/export/confluence/url",
63                               "Enter URL of page")
64                   .toString();
65     ui.lineEditURL->setText(url);
66
67
68     ui.createPageButton->setChecked(
69         settings
70             .localValue(filepath, "/export/confluence/createNewPage", true).toBool());
71
72     ui.updatePageButton->setChecked(!
73         settings
74             .localValue(filepath, "/export/confluence/createNewPage", false).toBool());
75     if (ui.createPageButton->isChecked())
76         pageName = settings.localValue(filepath, "/export/confluence/pageName", 
77                         "New page created on " + QDateTime::currentDateTime().toString()).toString();
78     else 
79         pageName = QString();
80     ui.lineEditPageName->setText(pageName);
81
82     ui.includeMapImageCheckBox->setChecked(
83         settings.localValue (filepath,
84         "/export/confluence/includeMapImage", "true").toBool());
85
86     ui.includeImagesCheckBox->setChecked(
87         settings.localValue (filepath,
88         "/export/confluence/includeImages", "true").toBool());
89
90     /*  FIXME-3 cleanup the copied HTML parameters
91     includeImages = settings.localValue (filepath,
92     "/export/confluence/includeImages", "true").toBool();
93     ui.includeImagesCheckBox->setChecked(includeImages);
94
95     useTOC = settings.localValue (filepath, "/export/confluence/useTOC",
96     "true").toBool(); ui.TOCCheckBox->setChecked(useTOC);
97
98     useTaskFlags = settings.localValue (filepath,
99     "/export/confluence/useTaskFlags", "true").toBool();
100     ui.taskFlagsCheckBox->setChecked(useTaskFlags);
101
102     useUserFlags = settings.localValue (filepath,
103     "/export/confluence/useUserFlags", "true").toBool();
104     ui.userFlagsCheckBox->setChecked(useUserFlags);
105
106     */
107
108     ui.useNumberingCheckBox->setChecked(
109         settings.localValue (filepath,
110         "/export/confluence/useNumbering", "true").toBool());
111     ui.mapCenterToPageNameCheckBox->setChecked(
112         settings.localValue(filepath, "/export/confluence/mapCenterToPageName", true)
113             .toBool());
114     ui.textColorCheckBox->setChecked(
115         settings.localValue(filepath, "/export/confluence/useTextColor", false)
116             .toBool());
117
118     ui.saveSettingsInMapCheckBox->setChecked(
119         settings
120             .localValue(filepath, "/export/confluence/saveSettingsInMap", true)
121             .toBool());
122
123
124     pageButtonPressed();
125 }
126
127 void ExportConfluenceDialog::saveSettings()
128 {
129     // Save options to settings file
130     // (but don't save at destructor, which
131     // is called for "cancel", too)
132     if (!ui.saveSettingsInMapCheckBox->isChecked())
133         settings.clearLocal(filepath, "/export/confluence");
134     else {
135         settings.setLocalValue(
136                 filepath, "/export/confluence/saveSettingsInMap",
137                 "yes");
138         settings.setLocalValue (
139                 filepath, "/export/confluence/includeMapImage",
140                 ui.includeMapImageCheckBox->isChecked());
141         settings.setLocalValue (
142                 filepath, "/export/confluence/includeImages",
143                 ui.includeImagesCheckBox->isChecked());
144         //        settings.setLocalValue (filepath, "/export/confluence/useTOC",
145         //        useTOC); 
146         settings.setLocalValue (
147                 filepath, "/export/confluence/useNumbering",
148                 ui.useNumberingCheckBox->isChecked());
149         settings.setLocalValue(filepath,
150                 "/export/confluence/mapCenterToPageName",
151                 ui.mapCenterToPageNameCheckBox->isChecked());
152         settings.setLocalValue(filepath,
153                 "/export/confluence/useTextColor",
154                 ui.textColorCheckBox->isChecked());
155         settings.setLocalValue(filepath,
156                 "/export/confluence/useNumbering",
157                 ui.useNumberingCheckBox->isChecked());
158         settings.setLocalValue(filepath, "/export/confluence/url", url);
159         settings.setLocalValue(filepath, "/export/confluence/pageName", pageName);
160         settings.setLocalValue(filepath, "/export/confluence/createNewPage", ui.createPageButton->isChecked());
161     }
162 }
163
164 void ExportConfluenceDialog::setURL(const QString &u) { url = u; }
165
166 void ExportConfluenceDialog::setPageName(const QString &s) { pageName = s; }
167
168 void ExportConfluenceDialog::setFilePath(const QString &s) { filepath = s; }
169
170 void ExportConfluenceDialog::setMapName(const QString &s) { mapname = s; }
171
172 bool ExportConfluenceDialog::useTextColor()
173 {
174     return ui.textColorCheckBox->isChecked();
175 }
176
177 bool ExportConfluenceDialog::mapCenterToPageName()
178 {
179     return ui.mapCenterToPageNameCheckBox->isChecked();
180 }
181
182 bool ExportConfluenceDialog::useNumbering()
183 {
184     return ui.useNumberingCheckBox->isChecked();
185 }
186
187 bool ExportConfluenceDialog::includeMapImage()
188 {
189     return ui.includeMapImageCheckBox->isChecked();
190 }
191
192 bool ExportConfluenceDialog::includeImages()
193 {
194     return ui.includeImagesCheckBox->isChecked();
195 }
196
197 void ExportConfluenceDialog::doExport()
198 {
199     accept();
200 }
201
202 void ExportConfluenceDialog::pageButtonPressed()
203 {
204     if (ui.createPageButton->isChecked()) {
205         ui.URLLabel->setText("URL of parent page");
206         ui.pageNameLabel->setText("Page title (required)");
207     }
208     else {
209         ui.URLLabel->setText("URL of existing page");
210         ui.pageNameLabel->setText("Page title (optional)");
211     }
212 }
213
214 void ExportConfluenceDialog::URLChanged()   // FIXME-2 remove this and similar methods
215 {
216     url = ui.lineEditURL->text();
217 }
218
219 void ExportConfluenceDialog::pageNameChanged()
220 {
221     pageName = ui.lineEditPageName->text();
222 }
223
224 void ExportConfluenceDialog::mapCenterToPageNameCheckBoxPressed(bool b)
225 {
226     if (ui.mapCenterToPageNameCheckBox->isChecked())
227     {
228         ui.lineEditPageName->setText(pageNameHint);
229         ui.lineEditPageName->setEnabled(false); // FIXME-2 better set readonly
230     } else
231     {
232         ui.lineEditPageName->show();
233         ui.lineEditPageName->setEnabled(true);
234     }
235 }
236