feat/tray_pictogram #70
@ -159,6 +159,8 @@ add_subdirectory(ui)
|
||||
|
||||
# Install the executable
|
||||
install(TARGETS squawk DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
install(FILES README.md DESTINATION ${CMAKE_INSTALL_DATADIR}/macaw.me/squawk)
|
||||
install(FILES LICENSE.md DESTINATION ${CMAKE_INSTALL_DATADIR}/macaw.me/squawk)
|
||||
|
||||
if (CMAKE_BUILD_TYPE STREQUAL "Release")
|
||||
if (APPLE)
|
||||
|
@ -6,6 +6,6 @@ set(TS_FILES
|
||||
)
|
||||
qt5_add_translation(QM_FILES ${TS_FILES})
|
||||
add_custom_target(translations ALL DEPENDS ${QM_FILES})
|
||||
install(FILES ${QM_FILES} DESTINATION ${CMAKE_INSTALL_DATADIR}/squawk/l10n)
|
||||
install(FILES ${QM_FILES} DESTINATION ${CMAKE_INSTALL_DATADIR}/macaw.me/squawk/l10n)
|
||||
|
||||
add_dependencies(${CMAKE_PROJECT_NAME} translations)
|
||||
|
@ -1098,12 +1098,11 @@ void Squawk::onAboutSquawkCalled()
|
||||
about = new About();
|
||||
about->setAttribute(Qt::WA_DeleteOnClose);
|
||||
connect(about, &Settings::destroyed, this, &Squawk::onAboutSquawkClosed);
|
||||
about->show();
|
||||
} else {
|
||||
about->raise();
|
||||
about->activateWindow();
|
||||
about->show();
|
||||
}
|
||||
about->show();
|
||||
}
|
||||
|
||||
void Squawk::onAboutSquawkClosed()
|
||||
|
@ -17,6 +17,7 @@
|
||||
#include "about.h"
|
||||
#include "ui_about.h"
|
||||
#include <QXmppGlobal.h>
|
||||
#include <QDebug>
|
||||
|
||||
static const std::string QXMPP_VERSION_PATCH(std::to_string(QXMPP_VERSION & 0xff));
|
||||
static const std::string QXMPP_VERSION_MINOR(std::to_string((QXMPP_VERSION & 0xff00) >> 8));
|
||||
@ -37,6 +38,71 @@ About::About(QWidget* parent):
|
||||
m_ui->qxmppBuiltAgainstVersion->setText(tr("(built against %1)").arg(QXMPP_VERSION_STRING));
|
||||
|
||||
setWindowFlag(Qt::Tool);
|
||||
|
||||
connect(m_ui->licenceLink, &QLabel::linkActivated, this, &About::onLicenseActivated);
|
||||
}
|
||||
|
||||
About::~About() = default;
|
||||
About::~About() {
|
||||
if (license != nullptr) {
|
||||
license->deleteLater();
|
||||
}
|
||||
};
|
||||
|
||||
void About::onLicenseActivated()
|
||||
{
|
||||
if (license == nullptr) {
|
||||
QFile file;
|
||||
bool found = false;
|
||||
QStringList shares = QStandardPaths::standardLocations(QStandardPaths::AppDataLocation);
|
||||
for (const QString& path : shares) {
|
||||
file.setFileName(path + "/LICENSE.md");
|
||||
|
||||
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!found) {
|
||||
qDebug() << "couldn't read license file, bailing";
|
||||
return;
|
||||
}
|
||||
|
||||
license = new QWidget();
|
||||
license->setWindowTitle(tr("License"));
|
||||
QVBoxLayout* layout = new QVBoxLayout(license);
|
||||
QLabel* text = new QLabel(license);
|
||||
QScrollArea* area = new QScrollArea(license);
|
||||
text->setTextFormat(Qt::MarkdownText);
|
||||
text->setWordWrap(true);
|
||||
text->setOpenExternalLinks(true);
|
||||
text->setMargin(5);
|
||||
area->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
|
||||
|
||||
layout->addWidget(area);
|
||||
license->setAttribute(Qt::WA_DeleteOnClose);
|
||||
connect(license, &QWidget::destroyed, this, &About::onLicenseClosed);
|
||||
|
||||
QTextStream in(&file);
|
||||
QString line;
|
||||
QString licenseText("");
|
||||
while (!in.atEnd()) {
|
||||
line = in.readLine();
|
||||
licenseText.append(line + "\n");
|
||||
}
|
||||
text->setText(licenseText);
|
||||
file.close();
|
||||
|
||||
area->setWidget(text);
|
||||
|
||||
} else {
|
||||
license->raise();
|
||||
license->activateWindow();
|
||||
}
|
||||
|
||||
license->show();
|
||||
}
|
||||
|
||||
void About::onLicenseClosed()
|
||||
{
|
||||
license = nullptr;
|
||||
}
|
||||
|
@ -20,6 +20,9 @@
|
||||
#include <QWidget>
|
||||
#include <QScopedPointer>
|
||||
#include <QApplication>
|
||||
#include <QFile>
|
||||
#include <QTextStream>
|
||||
#include <QStandardPaths>
|
||||
|
||||
namespace Ui
|
||||
{
|
||||
@ -36,6 +39,10 @@ public:
|
||||
About(QWidget* parent = nullptr);
|
||||
~About();
|
||||
|
||||
protected slots:
|
||||
void onLicenseActivated();
|
||||
void onLicenseClosed();
|
||||
|
||||
private:
|
||||
QScopedPointer<Ui::About> m_ui;
|
||||
QWidget* license;
|
||||
|
Loading…
Reference in New Issue
Block a user