forked from blue/squawk
License is now can be viewed locally, some organization name packaging issies
This commit is contained in:
parent
9f746d203b
commit
1b66fda318
@ -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)
|
||||||
|
@ -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)
|
||||||
|
@ -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()
|
||||||
|
@ -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;
|
||||||
|
}
|
||||||
|
@ -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;
|
||||||
|
Loading…
Reference in New Issue
Block a user