Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package qt6ct for openSUSE:Factory checked in at 2023-01-28 21:07:23 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/qt6ct (Old) and /work/SRC/openSUSE:Factory/.qt6ct.new.32243 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "qt6ct" Sat Jan 28 21:07:23 2023 rev:2 rq:1061783 version:0.7 Changes: -------- --- /work/SRC/openSUSE:Factory/qt6ct/qt6ct.changes 2022-10-08 01:23:31.949996746 +0200 +++ /work/SRC/openSUSE:Factory/.qt6ct.new.32243/qt6ct.changes 2023-01-28 21:09:18.366409948 +0100 @@ -1,0 +2,9 @@ +Sat Jan 28 14:05:30 UTC 2023 - kh Lai <[email protected]> + +- Update to 0.7 + * fixed crash when loading default font + * changed font configuration format + * improved icon loader + * updated Czech translation + +------------------------------------------------------------------- Old: ---- qt6ct-0.6.tar.xz New: ---- qt6ct-0.7.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ qt6ct.spec ++++++ --- /var/tmp/diff_new_pack.BI5LIw/_old 2023-01-28 21:09:18.950413242 +0100 +++ /var/tmp/diff_new_pack.BI5LIw/_new 2023-01-28 21:09:18.954413264 +0100 @@ -1,7 +1,7 @@ # # spec file for package qt6ct # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: qt6ct -Version: 0.6 +Version: 0.7 Release: 0 Summary: Qt 6 Configuration Tool License: BSD-2-Clause ++++++ qt6ct-0.6.tar.xz -> qt6ct-0.7.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qt6ct-0.6/ChangeLog new/qt6ct-0.7/ChangeLog --- old/qt6ct-0.6/ChangeLog 2022-09-29 21:52:13.000000000 +0200 +++ new/qt6ct-0.7/ChangeLog 2022-10-29 19:43:57.000000000 +0200 @@ -44,3 +44,9 @@ * updated Russian translation * updated Spanish translation (Toni Estévez) * updated Greek translation (Dimitrios Glentadakis) + +Version 0.7 +* fixed crash when loading default font +* changed font configuration format +* improved icon loader +* updated Czech translation (fri) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qt6ct-0.6/src/qt6ct/appearancepage.cpp new/qt6ct-0.7/src/qt6ct/appearancepage.cpp --- old/qt6ct-0.6/src/qt6ct/appearancepage.cpp 2022-09-29 21:52:13.000000000 +0200 +++ new/qt6ct-0.7/src/qt6ct/appearancepage.cpp 2022-10-29 19:43:57.000000000 +0200 @@ -50,6 +50,7 @@ QStringList keys = QStyleFactory::keys(); keys.removeAll("qt6ct-style"); //hide qt6ct proxy style keys.removeAll("qt5gtk2"); //hide qt5gtk2 alias + keys.removeAll("gtk2"); //hide gtk2 alias m_ui->styleComboBox->addItems(keys); connect(m_ui->paletteComboBox, SIGNAL(activated(int)), SLOT(updatePalette())); @@ -445,5 +446,4 @@ settings.setValue("disabled_colors",disabledColors); settings.endGroup(); - } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qt6ct-0.6/src/qt6ct/fontspage.cpp new/qt6ct-0.7/src/qt6ct/fontspage.cpp --- old/qt6ct-0.6/src/qt6ct/fontspage.cpp 2022-09-29 21:52:13.000000000 +0200 +++ new/qt6ct-0.7/src/qt6ct/fontspage.cpp 2022-10-29 19:43:57.000000000 +0200 @@ -62,8 +62,8 @@ { QSettings settings(Qt6CT::configFile(), QSettings::IniFormat); settings.beginGroup("Fonts"); - settings.setValue("general", m_ui->generalFontLabel->font()); - settings.setValue("fixed", m_ui->fixedFontLabel->font()); + settings.setValue("general", m_ui->generalFontLabel->font().toString()); + settings.setValue("fixed", m_ui->fixedFontLabel->font().toString()); settings.endGroup(); } @@ -89,8 +89,9 @@ void FontsPage::loadFont(QSettings *settings, QLabel *label, const QString &key) { - QFont font = settings->value(key, QApplication::font()).value<QFont>(); - label->setText(font.family () + " " + QString::number(font.pointSize ())); + QFont font = QApplication::font(); + font.fromString(settings->value(key, QApplication::font().toString()).toString()); + label->setText(font.family() + " " + QString::number(font.pointSize())); label->setFont(font); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qt6ct-0.6/src/qt6ct/iconthemepage.cpp new/qt6ct-0.7/src/qt6ct/iconthemepage.cpp --- old/qt6ct-0.6/src/qt6ct/iconthemepage.cpp 2022-09-29 21:52:13.000000000 +0200 +++ new/qt6ct-0.7/src/qt6ct/iconthemepage.cpp 2022-10-29 19:43:57.000000000 +0200 @@ -33,6 +33,7 @@ #include <QTreeWidgetItem> #include <QProgressBar> #include <QMetaObject> +#include <QThread> #include "qt6ct.h" #include "iconthemepage.h" #include "ui_iconthemepage.h" @@ -46,14 +47,20 @@ m_progressBar->resize(200, m_progressBar->height()); m_progressBar->setRange(0, 100); - QThread *thread = QThread::create(&IconThemePage::loadThemes, this); - thread->setParent(this); - connect(thread, SIGNAL(finished()), this, SLOT(onFinished())); - thread->start(); + m_thread = QThread::create(&IconThemePage::loadThemes, this); + m_thread->setParent(this); + connect(m_thread, SIGNAL(finished()), SLOT(onFinished())); + m_thread->start(); } IconThemePage::~IconThemePage() { + if(m_thread->isRunning()) + { + m_stopped = true; + m_thread->wait(); + } + delete m_ui; } @@ -67,14 +74,14 @@ void IconThemePage::onFinished() { - m_ui->treeWidget->addTopLevelItems(m_items); - m_ui->treeWidget->resizeColumnToContents(0); - m_ui->treeWidget->resizeColumnToContents(1); - m_ui->treeWidget->resizeColumnToContents(2); - m_ui->treeWidget->resizeColumnToContents(3); - m_progressBar->hide(); - m_items.clear(); - readSettings(); + m_ui->treeWidget->addTopLevelItems(m_items); + m_ui->treeWidget->resizeColumnToContents(0); + m_ui->treeWidget->resizeColumnToContents(1); + m_ui->treeWidget->resizeColumnToContents(2); + m_ui->treeWidget->resizeColumnToContents(3); + m_progressBar->hide(); + m_items.clear(); + readSettings(); } void IconThemePage::resizeEvent(QResizeEvent *event) @@ -105,7 +112,9 @@ void IconThemePage::loadThemes() { + m_ui->treeWidget->clear(); m_items.clear(); + m_stopped = false; QFileInfoList themeFileList; for(const QString &path : Qt6CT::iconPaths()) @@ -117,6 +126,9 @@ QDir themeDir(info.absoluteFilePath()); themeFileList << themeDir.entryInfoList(QStringList() << "index.theme", QDir::Files); } + + if(m_stopped) + return; } int i = 0; @@ -125,6 +137,14 @@ QTreeWidgetItem *item = loadTheme(info.canonicalFilePath()); if(item) m_items << item; + + if(m_stopped) + { + qDeleteAll(m_items); + m_items.clear(); + return; + } + QMetaObject::invokeMethod(m_progressBar, "setValue", Qt::QueuedConnection, Q_ARG(int, ++i * 100 / themeFileList.count())); } } @@ -177,10 +197,17 @@ QIcon IconThemePage::findIcon(const QString &themePath, int size, const QString &name) { + QStringList visited; + return findIconHelper(themePath, size, name, &visited); +} + +QIcon IconThemePage::findIconHelper(const QString &themePath, int size, const QString &name, QStringList *visited) +{ QSettings config(themePath, QSettings::IniFormat); config.beginGroup("Icon Theme"); QStringList dirs = config.value("Directories").toStringList(); QStringList parents = config.value("Inherits").toStringList(); + visited->append(config.value("Name").toString()); bool haveInherits = !parents.isEmpty(); config.endGroup(); @@ -237,10 +264,10 @@ { QString parentThemePath = QDir(QFileInfo(themePath).path() + "/../" + parent).canonicalPath() + "/index.theme"; - if(!QFile::exists(parentThemePath) || parentThemePath == themePath) + if(!QFile::exists(parentThemePath) || visited->contains(parent)) //protect against recursion continue; - QIcon icon = findIcon(parentThemePath, size, name); + QIcon icon = findIconHelper(parentThemePath, size, name, visited); if(!icon.isNull()) return icon; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qt6ct-0.6/src/qt6ct/iconthemepage.h new/qt6ct-0.7/src/qt6ct/iconthemepage.h --- old/qt6ct-0.6/src/qt6ct/iconthemepage.h 2022-09-29 21:52:13.000000000 +0200 +++ new/qt6ct-0.7/src/qt6ct/iconthemepage.h 2022-10-29 19:43:57.000000000 +0200 @@ -30,7 +30,7 @@ #define ICONTHEMEPAGE_H #include <QIcon> -#include <QFutureWatcher> +#include <atomic> #include "tabpage.h" namespace Ui { @@ -39,6 +39,7 @@ class QTreeWidgetItem; class QProgressBar; +class QThread; class IconThemePage : public TabPage { @@ -59,9 +60,12 @@ void loadThemes(); QTreeWidgetItem *loadTheme(const QString &path); QIcon findIcon(const QString &themePath, int size, const QString &name); + QIcon findIconHelper(const QString &themePath, int size, const QString &name, QStringList *visited); Ui::IconThemePage *m_ui; QProgressBar *m_progressBar; + QThread *m_thread; QList<QTreeWidgetItem *> m_items; + std::atomic_bool m_stopped = ATOMIC_VAR_INIT(false); }; #endif // ICONTHEMEPAGE_H diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qt6ct-0.6/src/qt6ct/qt6ct.h new/qt6ct-0.7/src/qt6ct/qt6ct.h --- old/qt6ct-0.6/src/qt6ct/qt6ct.h 2022-09-29 21:52:13.000000000 +0200 +++ new/qt6ct-0.7/src/qt6ct/qt6ct.h 2022-10-29 19:43:57.000000000 +0200 @@ -30,7 +30,7 @@ #define QT6CT_H #define QT6CT_VERSION_MAJOR 0 -#define QT6CT_VERSION_MINOR 6 +#define QT6CT_VERSION_MINOR 7 #define QT6CT_TOSTRING(s) #s #define QT6CT_STRINGIFY(s) QT6CT_TOSTRING(s) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qt6ct-0.6/src/qt6ct/translations/qt6ct_cs.ts new/qt6ct-0.7/src/qt6ct/translations/qt6ct_cs.ts --- old/qt6ct-0.6/src/qt6ct/translations/qt6ct_cs.ts 2022-09-29 21:52:13.000000000 +0200 +++ new/qt6ct-0.7/src/qt6ct/translations/qt6ct_cs.ts 2022-10-29 19:43:57.000000000 +0200 @@ -455,7 +455,7 @@ <message> <location filename="../mainwindow.cpp" line="58"/> <source>Troubleshooting</source> - <translation type="unfinished"></translation> + <translation>ÅeÅ¡enà potÞÃ</translation> </message> <message> <location filename="../mainwindow.cpp" line="65"/> @@ -475,12 +475,12 @@ <message> <location filename="../mainwindow.cpp" line="125"/> <source>The <b>QT_QPA_PLATFORMTHEME</b> environment variable is not set (required values: <b>qt6ct</b> or <b>qt5ct</b>).</source> - <translation type="unfinished"></translation> + <translation>PromÄnná prostÅedà <b>QT_QPA_PLATFORMTHEME</b> nenà nastavena (požadované hodnoty: <b>qt6ct</b> nebo <b>qt5ct</b>).</translation> </message> <message> <location filename="../mainwindow.cpp" line="130"/> <source>The <b>QT_QPA_PLATFORMTHEME</b> environment variable is not set correctly (current value: <b>%1</b>, required values: <b>qt6ct</b> or <b>qt5ct</b>).</source> - <translation type="unfinished"></translation> + <translation>PromÄnná prostÅedà <b>QT_QPA_PLATFORMTHEME</b> environment nenà nastavena správnÄ (nynÄjšà hodnota: <b>%1</b>, požadované hodnoty: <b>qt6ct</b> nebo <b>qt5ct</b>).</translation> </message> <message> <location filename="../mainwindow.cpp" line="137"/> @@ -490,7 +490,7 @@ <message> <location filename="../mainwindow.cpp" line="143"/> <source>The <b>%1</b> plugin is compiled against incompatible Qt version (%2).</source> - <translation type="unfinished"></translation> + <translation>PÅÃdavný modul <b>%1</b> je zkompilován proti nekompatibilnà verzi Qt (%2).</translation> </message> </context> <context> @@ -796,12 +796,12 @@ <message> <location filename="../troubleshootingpage.ui" line="20"/> <source>Ignored applications:</source> - <translation type="unfinished"></translation> + <translation>PÅehlÞené programy:</translation> </message> <message> <location filename="../troubleshootingpage.ui" line="29"/> <source>Add...</source> - <translation type="unfinished"></translation> + <translation>PÅidat...</translation> </message> <message> <location filename="../troubleshootingpage.ui" line="40"/> @@ -811,27 +811,27 @@ <message> <location filename="../troubleshootingpage.ui" line="73"/> <source>Do not apply any styles and color schemes for the listed applications.</source> - <translation type="unfinished"></translation> + <translation>Pro uvedené aplikace nepoužÃvat žádné styly a barevná schémata.</translation> </message> <message> <location filename="../troubleshootingpage.ui" line="82"/> <source>Make top-level widgets use pure raster surfaces, and do not support non-native GL-based child widgets.</source> - <translation type="unfinished"></translation> + <translation>DoplÅky nejvyššà úrovnÄ použÃvajà ÄistÄ rastrové povrchy a nepodporujà podÅÃzené doplÅky, které nejsou založeny na nativnÃm GL.</translation> </message> <message> <location filename="../troubleshootingpage.ui" line="85"/> <source>Force raster surface</source> - <translation type="unfinished"></translation> + <translation>Vynutit rastrový povrch</translation> </message> <message> <location filename="../troubleshootingpage.cpp" line="64"/> <source>Select Application</source> - <translation type="unfinished"></translation> + <translation>Vybrat program</translation> </message> <message> <location filename="../troubleshootingpage.cpp" line="64"/> <source>Executable files (*)</source> - <translation type="unfinished"></translation> + <translation>Spustitelné soubory (*)</translation> </message> </context> </TS> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qt6ct-0.6/src/qt6ct-qtplugin/qt6ctplatformtheme.cpp new/qt6ct-0.7/src/qt6ct-qtplugin/qt6ctplatformtheme.cpp --- old/qt6ct-0.6/src/qt6ct-qtplugin/qt6ctplatformtheme.cpp 2022-09-29 21:52:13.000000000 +0200 +++ new/qt6ct-0.7/src/qt6ct-qtplugin/qt6ctplatformtheme.cpp 2022-10-29 19:43:57.000000000 +0200 @@ -285,8 +285,10 @@ settings.endGroup(); settings.beginGroup("Fonts"); - m_generalFont = settings.value("general", QVariant::fromValue(QPlatformTheme::font(QPlatformTheme::SystemFont))).value<QFont>(); - m_fixedFont = settings.value("fixed", QVariant::fromValue(QPlatformTheme::font(QPlatformTheme::FixedFont))).value<QFont>(); + m_generalFont = QGuiApplication::font(); + m_generalFont.fromString(settings.value("general", QGuiApplication::font()).toString()); + m_fixedFont = QGuiApplication::font(); + m_fixedFont.fromString(settings.value("fixed", QGuiApplication::font()).toString()); settings.endGroup(); settings.beginGroup("Interface");
