You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

105 lines
4.2 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#include "aboutwindow.h"
#include "ui_aboutwindow.h"
#include <QDebug>
#include <QFile>
#include <QScrollBar>
#include <qstyle.h>
#include <sstream>
#include "editorsettingsoptions.h"
/**
* Initializes the window components and configures the AboutWindow
*/
//包含版本检测和pro版本检测我们可以通过修改m_isProVersion值来做到免费的功能
//当版本低于5.10.0时,移除窗口的帮助按钮功能
AboutWindow::AboutWindow(QWidget *parent)
: QDialog(parent), m_ui(new Ui::AboutWindow), m_isProVersion(false)
{
m_ui->setupUi(this);
#if QT_VERSION < QT_VERSION_CHECK(5, 10, 0)
setWindowFlag(Qt::WindowContextHelpButtonHint, false);
#endif
setWindowTitle(tr("About") + " " + QCoreApplication::applicationName());
setAboutText();
m_ui->aboutText->setTextColor(QColor(26, 26, 26));
#ifdef __APPLE__
QFont fontToUse = QFont(QStringLiteral("SF Pro Text")).exactMatch()
? QStringLiteral("SF Pro Text")
: QStringLiteral("Roboto");
m_ui->aboutText->setFont(fontToUse);
#elif _WIN32
QFont fontToUse = QFont(QStringLiteral("Segoe UI")).exactMatch() ? QStringLiteral("Segoe UI")
: QStringLiteral("Roboto");
m_ui->aboutText->setFont(fontToUse);
#else
m_ui->aboutText->setFont(QFont(QStringLiteral("Roboto")));
#endif
// load stylesheet for aboutText
QFile cssFile(":/styles/about-window.css");
cssFile.open(QFile::ReadOnly);
m_ui->aboutText->setStyleSheet(cssFile.readAll());
#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS)
QFile scollBarStyleFile(QStringLiteral(":/styles/components/custom-scrollbar.css"));
scollBarStyleFile.open(QFile::ReadOnly);
QString scrollbarStyleSheet = QString::fromLatin1(scollBarStyleFile.readAll());
m_ui->aboutText->verticalScrollBar()->setStyleSheet(scrollbarStyleSheet);
#endif
}
AboutWindow::~AboutWindow()
{
/* Delete UI controls */
delete m_ui;
}
void AboutWindow::setAboutText()
{
QString proVersionText = m_isProVersion ? " (Pro Version)" : "";
m_ui->aboutText->setText(
"<strong>Version:</strong> " + QCoreApplication::applicationVersion() + proVersionText
+ "<p>Notes was founded by <a href='https://rubymamistvalove.com'>Ruby "
"Mamistvalove</a>, "
"to create an elegant yet powerful cross-platform and open-source note-taking "
"app.</p><a href='https://www.get-notes.com'>Notes Website"
"</a><br/><a href='https://github.com/nuttyartist/notes'>Source code on "
"Github</a><br/><a "
"href='https://www.get-notes.com/notes-app-terms-privacy-policy'>Terms and Privacy "
"Policy</a><br/><br/><strong>Acknowledgments</strong><br/>This project couldn't "
"have "
"come this far without the help of these amazing "
"people:<br/><br/><strong>Programmers:</strong><br/>Alex Spataru<br/>Ali Diouri"
"<br/>David Planella<br/>Diep Ngoc<br/>Guilherme "
"Silva<br/>Thorbjørn Lindeijer<br/>Tuur Vanhoutte<br/>Waqar "
"Ahmed<br/><br/><strong>Designers:</strong><br/>Kevin Doyle<br/><br/>And to the "
"many of our beloved users who keep sending us feedback, you are an essential force "
"in "
"helping us improve, thank you!<br/><br/><strong>Notes makes use of the following "
"third-party libraries:</strong><br/><br/>QMarkdownTextEdit<br/>"
#if defined(UPDATE_CHECKER)
"QSimpleUpdater<br/>"
#endif
"QAutostart<br/>QXT<br/><br/><strong>Notes makes use of the following open source "
"fonts:</strong><br/><br/>Roboto<br/>Source Sans Pro<br/>Trykker<br/>Mate<br/>iA "
"Writer Mono<br/>iA Writer Duo<br/>iA Writer "
"Quattro<br/>Font Awesome<br/>Material Symbols<br/><br/><strong>Qt version:</strong> "
+ qVersion() + " (built with " + QT_VERSION_STR + ")");
}
void AboutWindow::setTheme(Theme::Value theme)
{
setCSSThemeAndUpdate(m_ui->aboutText, theme);
}
void AboutWindow::setProVersion(bool isProVersion)
{
m_isProVersion = isProVersion;
setAboutText();
}