Browse Source

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

fontMeasure
Blue 4 months ago
parent
commit
1b66fda318
Signed by: blue
GPG Key ID: 9B203B252A63EE38
  1. 2
      CMakeLists.txt
  2. 6
      LICENSE.md
  3. 2
      core/main.cpp
  4. 2
      translations/CMakeLists.txt
  5. 3
      ui/squawk.cpp
  6. 68
      ui/widgets/about.cpp
  7. 7
      ui/widgets/about.h

2
CMakeLists.txt

@ -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
LICENSE.md

@ -595,17 +595,17 @@ pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

2
core/main.cpp

@ -54,7 +54,7 @@ int main(int argc, char *argv[])
QTranslator qtTranslator;
qtTranslator.load("qt_" + QLocale::system().name(), QLibraryInfo::location(QLibraryInfo::TranslationsPath));
app.installTranslator(&qtTranslator);
QTranslator myappTranslator;
QStringList shares = QStandardPaths::standardLocations(QStandardPaths::AppDataLocation);
bool found = false;

2
translations/CMakeLists.txt

@ -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)

3
ui/squawk.cpp

@ -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()

68
ui/widgets/about.cpp

@ -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() {
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();
}
About::~About() = default;
void About::onLicenseClosed()
{
license = nullptr;
}

7
ui/widgets/about.h

@ -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…
Cancel
Save