License is now can be viewed locally, some organization name packaging issies

This commit is contained in:
Blue 2022-04-05 22:00:56 +03:00
parent 9f746d203b
commit 1b66fda318
Signed by untrusted user: blue
GPG Key ID: 9B203B252A63EE38
7 changed files with 82 additions and 8 deletions

View File

@ -159,6 +159,8 @@ add_subdirectory(ui)
# Install the executable # Install the executable
install(TARGETS squawk DESTINATION ${CMAKE_INSTALL_BINDIR}) 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 (CMAKE_BUILD_TYPE STREQUAL "Release")
if (APPLE) if (APPLE)

View File

@ -6,6 +6,6 @@ set(TS_FILES
) )
qt5_add_translation(QM_FILES ${TS_FILES}) qt5_add_translation(QM_FILES ${TS_FILES})
add_custom_target(translations ALL DEPENDS ${QM_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) add_dependencies(${CMAKE_PROJECT_NAME} translations)

View File

@ -1098,12 +1098,11 @@ void Squawk::onAboutSquawkCalled()
about = new About(); about = new About();
about->setAttribute(Qt::WA_DeleteOnClose); about->setAttribute(Qt::WA_DeleteOnClose);
connect(about, &Settings::destroyed, this, &Squawk::onAboutSquawkClosed); connect(about, &Settings::destroyed, this, &Squawk::onAboutSquawkClosed);
about->show();
} else { } else {
about->raise(); about->raise();
about->activateWindow(); about->activateWindow();
about->show();
} }
about->show();
} }
void Squawk::onAboutSquawkClosed() void Squawk::onAboutSquawkClosed()

View File

@ -17,6 +17,7 @@
#include "about.h" #include "about.h"
#include "ui_about.h" #include "ui_about.h"
#include <QXmppGlobal.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_PATCH(std::to_string(QXMPP_VERSION & 0xff));
static const std::string QXMPP_VERSION_MINOR(std::to_string((QXMPP_VERSION & 0xff00) >> 8)); 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)); m_ui->qxmppBuiltAgainstVersion->setText(tr("(built against %1)").arg(QXMPP_VERSION_STRING));
setWindowFlag(Qt::Tool); 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;
}

View File

@ -20,6 +20,9 @@
#include <QWidget> #include <QWidget>
#include <QScopedPointer> #include <QScopedPointer>
#include <QApplication> #include <QApplication>
#include <QFile>
#include <QTextStream>
#include <QStandardPaths>
namespace Ui namespace Ui
{ {
@ -36,6 +39,10 @@ public:
About(QWidget* parent = nullptr); About(QWidget* parent = nullptr);
~About(); ~About();
protected slots:
void onLicenseActivated();
void onLicenseClosed();
private: private:
QScopedPointer<Ui::About> m_ui; QScopedPointer<Ui::About> m_ui;
QWidget* license; QWidget* license;