Skip to content

Commit

Permalink
Adding export to native navigation bar. Injecting a fixed default col…
Browse files Browse the repository at this point in the history
…or into the html.
  • Loading branch information
Foxei committed Aug 3, 2020
1 parent c04f36b commit 2e640a4
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 5 deletions.
7 changes: 7 additions & 0 deletions gui/components/NativeMenuBar.qml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ MenuBar {
shortcut: StandardKey.Open
onTriggered: openDeck()
}
MenuSeparator {}
MenuItem {
text: qsTr("&Save")
shortcut: StandardKey.Save
Expand All @@ -57,6 +58,12 @@ MenuBar {
shortcut: StandardKey.SaveAs
onTriggered: saveDeckAs()
}
MenuSeparator {}
MenuItem {
text: "&Export As..."
shortcut: StandardKey.Print
onTriggered: exportAsPdf()
}
MenuItem {
text: qsTr("&Quit")
onTriggered: quitApplication()
Expand Down
19 changes: 15 additions & 4 deletions src/Backend.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -251,6 +251,13 @@ void BackEnd::newDeck() {
emit fileUrlChanged();
}

QString injectHtmlColorSet(const QString &text){
QString buffer = text;
int index = buffer.indexOf("font-style:normal;");
buffer.insert(index, "color:#000000;");
return buffer;
}

void BackEnd::exportAsPdf(const QUrl &fileUrl) {
const QString filePath = fileUrl.toLocalFile();
QFile file(filePath);
Expand All @@ -260,8 +267,8 @@ void BackEnd::exportAsPdf(const QUrl &fileUrl) {
}
QPdfWriter writer(filePath);
writer.setCreator("Simon Schäfer");
writer.setPdfVersion(QPagedPaintDevice::PdfVersion_1_6);
writer.setResolution(110);
writer.setPdfVersion(QPagedPaintDevice::PdfVersion_A1b);
writer.setResolution(130);
writer.setTitle("Tests Deck");

QPageSize page_size = QPageSize(QPageSize::A6);
Expand All @@ -271,21 +278,25 @@ void BackEnd::exportAsPdf(const QUrl &fileUrl) {
writer.setPageLayout(page_layout);

QPainter painter;

painter.begin(&writer);
for (Card *card : this->cards_) {
writer.newPage();
QTextDocument print_document;

print_document.setPageSize(painter.viewport().size());
painter.setClipRect(painter.viewport());

print_document.setHtml(card->cardQuestionText());
print_document.setHtml(injectHtmlColorSet(card->cardQuestionText()));
print_document.drawContents(&painter);

writer.newPage();
print_document.setHtml(card->cardAnswerText());
print_document.setHtml(injectHtmlColorSet(card->cardAnswerText()));
print_document.drawContents(&painter);
}
painter.end();

emit exported();
}


2 changes: 1 addition & 1 deletion src/DocumentHandler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ void DocumentHandler::setTextColor(const QColor &color) {

void DocumentHandler::resetTextColor() {
QTextCharFormat format;
format.setForeground(QBrush());
format.setForeground(QBrush(Qt::black));
mergeFormatOnWordOrSelection(format);
emit textColorChanged();
}
Expand Down

0 comments on commit 2e640a4

Please sign in to comment.