Files
seer/src/SeerHelpPageWidget.cpp
T

102 lines
2.3 KiB
C++
Raw Normal View History

2022-09-22 17:35:22 -05:00
#include "SeerHelpPageWidget.h"
#include <QtPrintSupport/QPrinter>
#include <QtPrintSupport/QPrintDialog>
#include <QtCore/QFile>
#include <QtCore/QSettings>
#include <QtCore/QDebug>
SeerHelpPageWidget::SeerHelpPageWidget(QWidget* parent) : QWidget(parent) {
// Construct the UI.
setupUi(this);
// Setup the widgets
setWindowIcon(QIcon(":/seer/resources/seergdb_64x64.png"));
setWindowTitle("Seer Help");
setAttribute(Qt::WA_DeleteOnClose);
textBrowser->setOpenExternalLinks(true);
// Connect things.
QObject::connect(printToolButton, &QToolButton::clicked, this, &SeerHelpPageWidget::handlePrintToolButton);
QObject::connect(okPushButton, &QPushButton::clicked, this, &SeerHelpPageWidget::handleOkPushButton);
// Restore window settings.
readSettings();
}
SeerHelpPageWidget::~SeerHelpPageWidget() {
}
void SeerHelpPageWidget::loadFile (const QString& filename) {
// Get the Help text from the file.
QFile file(filename);
file.open(QFile::ReadOnly|QFile::Text);
QTextStream stream(&file);
QString text = stream.readAll();
// Load it into the browser.
loadText(text);
}
void SeerHelpPageWidget::loadText (const QString& text) {
// Put the Help text in as markdown. Move back to the begining.
2022-10-02 13:07:52 -05:00
#if (QT_VERSION >= QT_VERSION_CHECK(5, 14, 0))
2022-09-22 17:35:22 -05:00
textBrowser->setMarkdown(text);
2022-10-02 13:07:52 -05:00
#else
textBrowser->setText(text);
#endif
2022-09-22 17:35:22 -05:00
textBrowser->moveCursor(QTextCursor::Start);
}
void SeerHelpPageWidget::handlePrintToolButton () {
QPrinter printer;
QPrintDialog* dlg = new QPrintDialog(&printer, this);
if (dlg->exec() != QDialog::Accepted) {
return;
}
QTextDocument* document = textBrowser->document();
document->print(&printer);
}
void SeerHelpPageWidget::handleOkPushButton () {
close();
}
void SeerHelpPageWidget::writeSettings() {
QSettings settings;
settings.beginGroup("helpwindow"); {
settings.setValue("size", size());
}settings.endGroup();
}
void SeerHelpPageWidget::readSettings() {
QSettings settings;
settings.beginGroup("helpwindow"); {
resize(settings.value("size", QSize(600, 600)).toSize());
}settings.endGroup();
}
void SeerHelpPageWidget::resizeEvent (QResizeEvent* event) {
// Write window settings.
writeSettings();
QWidget::resizeEvent(event);
}