imported upstream version 0.12.0

ubuntu/cosmic
Alf Gaida 7 years ago
parent 0fb88adb6f
commit 447d2aa4d1

@ -4,7 +4,7 @@ Upstream Authors:
Copyright: Copyright:
Copyright (c) 2010-2012 Razor team Copyright (c) 2010-2012 Razor team
Copyright (c) 2012-2016 LXQt team Copyright (c) 2012-2017 LXQt team
License: LGPL-2.1+ and BSD-3-clause License: LGPL-2.1+ and BSD-3-clause
The full text of the LGPL-2.1+ licenses can be found in the 'COPYING' file. The full text of the LGPL-2.1+ licenses can be found in the 'COPYING' file.

@ -1,7 +1,30 @@
liblxqt-0.11.1 / 2017-01-01 liblxqt-0.12.0 / 2017-10-21
=========================== ===========================
* Bump minimum qtxdg version to 3.1.0
* Don't export github templates
* Bump version and needed versions to the final values
* lxqtpower: Allow disabling of lxqt-session provider
* Drops Qt5Core_VERSION_STRING
* HtmlDelegate: Fix sizeHint() computation
* Add some comments about the meaning of versions
* Move LXQt version back to liblxqt
* Fixes (#118)
* lxqtapplication: Avoid wrong signal handling
* Removes unneeded semicolon in namespace definition
* Fix format conversions [-Wformat-pedantic] warnings
* Suppress compiler warnings about unused function parameters
* Removes extra semicolons in Qt's Q macros
* Translator: Prefer XDG_DATA_DIRS over compiled in path
* Help the compiler optimizing loops
* Use const variables where possible
* Update AUTHORS
0.11.1 / 2017-01-01
===================
* Release 0.11.1: Update changelog
* Bump needed build tools version (#113) * Bump needed build tools version (#113)
* build: Enable/disable WITH_XDG_DIRS_FALLBACK based on Qt version (#111) * build: Enable/disable WITH_XDG_DIRS_FALLBACK based on Qt version (#111)
* Updates lxqt-build-tools required version * Updates lxqt-build-tools required version

@ -2,9 +2,25 @@ cmake_minimum_required(VERSION 3.0.2 FATAL_ERROR)
project(liblxqt) project(liblxqt)
set(QT_MINIMUM_VERSION "5.4.2") set(QT_MINIMUM_VERSION "5.5.0")
set(QTXDG_MINIMUM_VERSION "2.0.0") set(QTXDG_MINIMUM_VERSION "3.1.0")
set(LXQTBT_MINIMUM_VERSION "0.3.1") set(LXQTBT_MINIMUM_VERSION "0.4.0")
# Major LXQt Version, belong to all components
set(LXQT_MAJOR_VERSION 0)
# Minor LXQt Version, belong to all components
set(LXQT_MINOR_VERSION 12)
#
# Patch Version, belong *only* to the component
# LXQt is 0.11 - liblxqt is at patch version 1
# The official LXQt version will follow liblxqt.
#
# In a perfect world all components would have the same major- and minor- and
# patch-version as liblxqt - in real life it will be fine if every component
# has it's own patch version within a major/minor life cyle.
#
set(LXQT_PATCH_VERSION 0)
set(LXQT_VERSION ${LXQT_MAJOR_VERSION}.${LXQT_MINOR_VERSION}.${LXQT_PATCH_VERSION})
include(CMakePackageConfigHelpers) include(CMakePackageConfigHelpers)
include(GNUInstallDirs) # Standard directories for installation include(GNUInstallDirs) # Standard directories for installation
@ -118,7 +134,7 @@ find_package(X11 REQUIRED QUIET)
find_package(Qt5 ${QT_MINIMUM_VERSION} CONFIG REQUIRED Widgets DBus X11Extras LinguistTools) find_package(Qt5 ${QT_MINIMUM_VERSION} CONFIG REQUIRED Widgets DBus X11Extras LinguistTools)
find_package(Qt5Xdg ${QTXDG_MINIMUM_VERSION} REQUIRED) find_package(Qt5Xdg ${QTXDG_MINIMUM_VERSION} REQUIRED)
find_package(KF5WindowSystem REQUIRED QUIET) find_package(KF5WindowSystem REQUIRED QUIET)
message(STATUS "Building ${PROJECT_NAME} with Qt ${Qt5Core_VERSION_STRING}") message(STATUS "Building ${PROJECT_NAME} with Qt ${Qt5Core_VERSION}")
QT5_ADD_DBUS_INTERFACE(SRCS QT5_ADD_DBUS_INTERFACE(SRCS
dbus/org.freedesktop.Notifications.xml dbus/org.freedesktop.Notifications.xml

@ -17,6 +17,18 @@ find_dependency(KF5WindowSystem)
find_dependency(lxqt-build-tools @LXQTBT_MINIMUM_VERSION@) find_dependency(lxqt-build-tools @LXQTBT_MINIMUM_VERSION@)
include(LXQtConfigVars) include(LXQtConfigVars)
# - Set version informations
set(LXQT_MAJOR_VERSION "@LXQT_MAJOR_VERSION@")
set(LXQT_MINOR_VERSION "@LXQT_MINOR_VERSION@")
set(LXQT_PATCH_VERSION "@LXQT_PATCH_VERSION@")
set(LXQT_VERSION "@LXQT_VERSION@")
add_definitions("-DLXQT_MAJOR_VERSION=\"${LXQT_MAJOR_VERSION}\"")
add_definitions("-DLXQT_MINOR_VERSION=\"${LXQT_MINOR_VERSION}\"")
add_definitions("-DLXQT_PATCH_VERSION=\"${LXQT_PATCH_VERSION}\"")
add_definitions("-DLXQT_VERSION=\"${LXQT_VERSION}\"")
if (NOT TARGET @LXQT_LIBRARY_NAME@) if (NOT TARGET @LXQT_LIBRARY_NAME@)
if (POLICY CMP0024) if (POLICY CMP0024)
cmake_policy(SET CMP0024 NEW) cmake_policy(SET CMP0024 NEW)

@ -112,6 +112,7 @@ bool ConfigDialog::event(QEvent * event)
void ConfigDialog::closeEvent(QCloseEvent* event) void ConfigDialog::closeEvent(QCloseEvent* event)
{ {
Q_UNUSED(event)
emit save(); emit save();
mSettings->sync(); mSettings->sync();
} }

@ -57,6 +57,7 @@ variable LXQT_DEBUG set
*/ */
void dbgMessageOutput(QtMsgType type, const QMessageLogContext &ctx, const QString & msgStr) void dbgMessageOutput(QtMsgType type, const QMessageLogContext &ctx, const QString & msgStr)
{ {
Q_UNUSED(ctx)
QByteArray msgBuf = msgStr.toUtf8(); QByteArray msgBuf = msgStr.toUtf8();
const char* msg = msgBuf.constData(); const char* msg = msgBuf.constData();
QDir dir(XdgDirs::configHome().toUtf8() + QLatin1String("/lxqt")); QDir dir(XdgDirs::configHome().toUtf8() + QLatin1String("/lxqt"));
@ -84,12 +85,12 @@ void dbgMessageOutput(QtMsgType type, const QMessageLogContext &ctx, const QStri
QByteArray dt = QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss.zzz").toUtf8(); QByteArray dt = QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss.zzz").toUtf8();
if (isatty(STDERR_FILENO)) if (isatty(STDERR_FILENO))
fprintf(stderr, "%s %s(%p) %s: %s%s\n", color, QAPP_NAME, qApp, typestr, msg, COLOR_RESET); fprintf(stderr, "%s %s(%p) %s: %s%s\n", color, QAPP_NAME, static_cast<void *>(qApp), typestr, msg, COLOR_RESET);
else else
fprintf(stderr, "%s(%p) %s: %s\n", QAPP_NAME, qApp, typestr, msg); fprintf(stderr, "%s(%p) %s: %s\n", QAPP_NAME, static_cast<void *>(qApp), typestr, msg);
FILE *f = fopen(dir.absoluteFilePath("debug.log").toUtf8().constData(), "a+"); FILE *f = fopen(dir.absoluteFilePath("debug.log").toUtf8().constData(), "a+");
fprintf(f, "%s %s(%p) %s: %s\n", dt.constData(), QAPP_NAME, qApp, typestr, msg); fprintf(f, "%s %s(%p) %s: %s\n", dt.constData(), QAPP_NAME, static_cast<void *>(qApp), typestr, msg);
fclose(f); fclose(f);
if (type == QtFatalMsg) if (type == QtFatalMsg)
@ -102,7 +103,7 @@ Application::Application(int &argc, char** argv)
#ifdef DEBUG #ifdef DEBUG
qInstallMessageHandler(dbgMessageOutput); qInstallMessageHandler(dbgMessageOutput);
#else #else
if (!qgetenv("LXQT_DEBUG").isNull()) if (!qEnvironmentVariableIsSet("LXQT_DEBUG"))
qInstallMessageHandler(dbgMessageOutput); qInstallMessageHandler(dbgMessageOutput);
#endif #endif
@ -128,7 +129,7 @@ Application::Application(int &argc, char** argv, bool handleQuitSignals)
void Application::updateTheme() void Application::updateTheme()
{ {
QString styleSheetKey = QFileInfo(applicationFilePath()).fileName(); const QString styleSheetKey = QFileInfo(applicationFilePath()).fileName();
setStyleSheet(lxqtTheme.qss(styleSheetKey)); setStyleSheet(lxqtTheme.qss(styleSheetKey));
emit themeChanged(); emit themeChanged();
} }
@ -140,14 +141,14 @@ namespace
public: public:
static void signalHandler(int signo) static void signalHandler(int signo)
{ {
int ret = write(instance->mSignalSock[0], &signo, sizeof (int)); const int ret = write(instance->mSignalSock[0], &signo, sizeof (int));
if (sizeof (int) != ret) if (sizeof (int) != ret)
qCritical() << QStringLiteral("unable to write into socketpair, %1").arg(strerror(errno)); qCritical() << QStringLiteral("unable to write into socketpair, %1").arg(strerror(errno));
} }
public: public:
template <class Lambda> template <class Lambda>
SignalHandler(Lambda signalEmitter) SignalHandler(Application * app, Lambda signalEmitter)
: mSignalSock{-1, -1} : mSignalSock{-1, -1}
{ {
if (0 != socketpair(AF_UNIX, SOCK_STREAM, 0, mSignalSock)) if (0 != socketpair(AF_UNIX, SOCK_STREAM, 0, mSignalSock))
@ -157,7 +158,7 @@ namespace
} }
mNotifier.reset(new QSocketNotifier(mSignalSock[1], QSocketNotifier::Read)); mNotifier.reset(new QSocketNotifier(mSignalSock[1], QSocketNotifier::Read));
QObject::connect(mNotifier.data(), &QSocketNotifier::activated, [this, signalEmitter] { QObject::connect(mNotifier.data(), &QSocketNotifier::activated, app, [this, signalEmitter] {
int signo = 0; int signo = 0;
int ret = read(mSignalSock[1], &signo, sizeof (int)); int ret = read(mSignalSock[1], &signo, sizeof (int));
if (sizeof (int) != ret) if (sizeof (int) != ret)
@ -198,6 +199,6 @@ void Application::listenToUnixSignals(QList<int> const & signoList)
static QScopedPointer<QSocketNotifier> signal_notifier; static QScopedPointer<QSocketNotifier> signal_notifier;
if (SignalHandler::instance.isNull()) if (SignalHandler::instance.isNull())
SignalHandler::instance.reset(new SignalHandler{[this] (int signo) { emit unixSignal(signo); }}); SignalHandler::instance.reset(new SignalHandler{this, [this] (int signo) { emit unixSignal(signo); }});
SignalHandler::instance->listenToSignals(signoList); SignalHandler::instance->listenToSignals(signoList);
} }

@ -38,9 +38,10 @@ AutostartEntry::AutostartEntry() :
AutostartEntry::AutostartEntry(const QString& name): AutostartEntry::AutostartEntry(const QString& name):
mLocalState(StateNone), mSystem(false) mLocalState(StateNone), mSystem(false)
{ {
foreach (const QString& dir, XdgDirs::autostartDirs()) const QStringList& dirs = XdgDirs::autostartDirs();
foreach (const QString& dir, dirs)
{ {
QString path = QString("%1/%2").arg(dir, name); const QString path = QString("%1/%2").arg(dir, name);
if (QFile(path).exists()) if (QFile(path).exists())
{ {
mSystemFile.load(path); mSystemFile.load(path);
@ -49,7 +50,7 @@ AutostartEntry::AutostartEntry(const QString& name):
} }
} }
QString path = QString("%1/%2").arg(XdgDirs::autostartHome(), name); const QString path = QString("%1/%2").arg(XdgDirs::autostartHome(), name);
if (QFile(path).exists()) if (QFile(path).exists())
{ {
mLocalFile.load(path); mLocalFile.load(path);
@ -59,7 +60,7 @@ AutostartEntry::AutostartEntry(const QString& name):
void AutostartEntry::setFile(const XdgDesktopFile& file) void AutostartEntry::setFile(const XdgDesktopFile& file)
{ {
bool local = isLocal(); const bool local = isLocal();
if (mSystem && local && file == mSystemFile) if (mSystem && local && file == mSystemFile)
{ {
removeLocal(); removeLocal();

@ -131,7 +131,8 @@ void GridLayoutPrivate::updateCache()
mCellMaxSize = QSize(0, 0); mCellMaxSize = QSize(0, 0);
mVisibleCount = 0; mVisibleCount = 0;
for (int i=0; i<mItems.count(); ++i) const int N = mItems.count();
for (int i=0; i < N; ++i)
{ {
QLayoutItem *item = mItems.at(i); QLayoutItem *item = mItems.at(i);
if (!item->widget() || item->widget()->isHidden()) if (!item->widget() || item->widget()->isHidden())

@ -65,7 +65,7 @@ void HtmlDelegate::paint(QPainter* painter, const QStyleOptionViewItem& option,
options.icon = QIcon(); options.icon = QIcon();
// icon size // icon size
QSize iconSize = icon.actualSize(mIconSize); const QSize iconSize = icon.actualSize(mIconSize);
QRect iconRect = QRect(8, 8, iconSize.width(), iconSize.height()); QRect iconRect = QRect(8, 8, iconSize.width(), iconSize.height());
if (is_right_to_left) if (is_right_to_left)
{ {
@ -86,7 +86,7 @@ void HtmlDelegate::paint(QPainter* painter, const QStyleOptionViewItem& option,
// shift text right to make icon visible // shift text right to make icon visible
painter->translate(iconRect.right() + 8, 0); painter->translate(iconRect.right() + 8, 0);
} }
QRect clip(0, 0, options.rect.width() - iconRect.width() - 8, options.rect.height()); const QRect clip(0, 0, options.rect.width() - iconRect.width() - 8, options.rect.height());
painter->setClipRect(clip); painter->setClipRect(clip);
// set text color to red for selected item // set text color to red for selected item
@ -112,11 +112,16 @@ QSize HtmlDelegate::sizeHint(const QStyleOptionViewItem& option, const QModelInd
QStyleOptionViewItem options = option; QStyleOptionViewItem options = option;
initStyleOption(&options, index); initStyleOption(&options, index);
QSize iconSize = options.icon.actualSize(mIconSize); const QSize iconSize = options.icon.actualSize(mIconSize);
QRect iconRect = QRect(8, 8, iconSize.width(), iconSize.height()); const QRect iconRect = QRect(8, 8, iconSize.width(), iconSize.height());
const QSize optSize = options.rect.size();
QTextDocument doc; QTextDocument doc;
doc.setHtml(options.text); doc.setHtml(options.text);
doc.setTextWidth(options.rect.width() - iconRect.right() - 8);
return QSize(options.rect.width(), doc.size().height() + 8); if (optSize.width() > 0)
doc.setTextWidth(optSize.width() - iconRect.right() - 8);
doc.adjustSize();
return QSize(0 < optSize.width() ? optSize.width() : iconRect.width() + 8 + qRound(doc.size().width())
, qMax(qRound(doc.size().height()), iconSize.height()) + 8);
} }

@ -158,7 +158,8 @@ void NotificationPrivate::setActions(QStringList actions, int defaultAction)
{ {
mActions.clear(); mActions.clear();
mDefaultAction = defaultAction; mDefaultAction = defaultAction;
for (int ix = 0; ix < actions.size(); ix++) const int N = actions.size();
for (int ix = 0; ix < N; ix++)
{ {
if (ix == defaultAction) if (ix == defaultAction)
mActions.append("default"); mActions.append("default");

@ -72,12 +72,11 @@ bool PluginInfo::isValid() const
************************************************/ ************************************************/
QLibrary* PluginInfo::loadLibrary(const QString& libDir) const QLibrary* PluginInfo::loadLibrary(const QString& libDir) const
{ {
QString baseName, path; const QFileInfo fi = QFileInfo(fileName());
QFileInfo fi = QFileInfo(fileName()); const QString path = fi.canonicalPath();
path = fi.canonicalPath(); const QString baseName = value("X-LXQt-Library", fi.completeBaseName()).toString();
baseName = value("X-LXQt-Library", fi.completeBaseName()).toString();
QString soPath = QDir(libDir).filePath(QString("lib%2.so").arg(baseName)); const QString soPath = QDir(libDir).filePath(QString("lib%2.so").arg(baseName));
QLibrary* library = new QLibrary(soPath); QLibrary* library = new QLibrary(soPath);
if (!library->load()) if (!library->load())
@ -87,7 +86,7 @@ QLibrary* PluginInfo::loadLibrary(const QString& libDir) const
return 0; return 0;
} }
QString locale = QLocale::system().name(); const QString locale = QLocale::system().name();
QTranslator* translator = new QTranslator(library); QTranslator* translator = new QTranslator(library);
translator->load(QString("%1/%2/%2_%3.qm").arg(path, baseName, locale)); translator->load(QString("%1/%2/%2_%3.qm").arg(path, baseName, locale));
@ -107,8 +106,8 @@ PluginInfoList PluginInfo::search(const QStringList& desktopFilesDirs, const QSt
foreach (const QString &desktopFilesDir, desktopFilesDirs) foreach (const QString &desktopFilesDir, desktopFilesDirs)
{ {
QDir dir(desktopFilesDir); const QDir dir(desktopFilesDir);
QFileInfoList files = dir.entryInfoList(QStringList(nameFilter), QDir::Files | QDir::Readable); const QFileInfoList files = dir.entryInfoList(QStringList(nameFilter), QDir::Files | QDir::Readable);
foreach (const QFileInfo &file, files) foreach (const QFileInfo &file, files)
{ {
if (processed.contains(file.fileName())) if (processed.contains(file.fileName()))

@ -33,15 +33,21 @@
using namespace LXQt; using namespace LXQt;
Power::Power(QObject *parent) : Power::Power(bool useLxqtSessionProvider, QObject * parent /*= nullptr*/) :
QObject(parent) QObject(parent)
{ {
mProviders.append(new CustomProvider(this)); mProviders.append(new CustomProvider(this));
if (useLxqtSessionProvider)
mProviders.append(new LXQtProvider(this));
mProviders.append(new SystemdProvider(this)); mProviders.append(new SystemdProvider(this));
mProviders.append(new UPowerProvider(this)); mProviders.append(new UPowerProvider(this));
mProviders.append(new ConsoleKitProvider(this)); mProviders.append(new ConsoleKitProvider(this));
mProviders.append(new LxSessionProvider(this)); mProviders.append(new LxSessionProvider(this));
mProviders.append(new LXQtProvider(this)); }
Power::Power(QObject * parent /*= nullptr*/)
: Power(true, parent)
{
} }

@ -56,8 +56,16 @@ public:
PowerSuspend /// Suspend the computer PowerSuspend /// Suspend the computer
}; };
/// Constructs a Power with parent. /*!
explicit Power(QObject *parent = 0); * Constructs the Power object.
* \param useLxqtSessionProvider indicates if the DBus methods
* provided by lxqt-session should be considered. This is useful to
* avoid recursion if the lxqt-session wants to provide some of the
* methods by itself with internal use of this object.
*/
explicit Power(bool useLxqtSessionProvider, QObject *parent = nullptr);
/// Constructs a Power with using the lxqt-session provider.
explicit Power(QObject *parent = nullptr);
/// Destroys the object. /// Destroys the object.
virtual ~Power(); virtual ~Power();

@ -107,8 +107,8 @@ static bool dbusCall(const QString &service,
// If the method no returns value, we believe that it was successful. // If the method no returns value, we believe that it was successful.
return msg.arguments().isEmpty() || return msg.arguments().isEmpty() ||
msg.arguments().first().isNull() || msg.arguments().constFirst().isNull() ||
msg.arguments().first().toBool(); msg.arguments().constFirst().toBool();
} }
/************************************************ /************************************************
@ -156,10 +156,10 @@ static bool dbusCallSystemd(const QString &service,
} }
// If the method no returns value, we believe that it was successful. // If the method no returns value, we believe that it was successful.
if (msg.arguments().isEmpty() || msg.arguments().first().isNull()) if (msg.arguments().isEmpty() || msg.arguments().constFirst().isNull())
return true; return true;
QString response = msg.arguments().first().toString(); QString response = msg.arguments().constFirst().toString();
qDebug() << "systemd:" << method << "=" << response; qDebug() << "systemd:" << method << "=" << response;
return response == "yes" || response == "challenge"; return response == "yes" || response == "challenge";
} }
@ -199,7 +199,7 @@ bool dbusGetProperty(const QString &service,
} }
return !msg.arguments().isEmpty() && return !msg.arguments().isEmpty() &&
msg.arguments().first().value<QDBusVariant>().variant().toBool(); msg.arguments().constFirst().value<QDBusVariant>().variant().toBool();
} }
@ -500,29 +500,43 @@ LXQtProvider::~LXQtProvider()
bool LXQtProvider::canAction(Power::Action action) const bool LXQtProvider::canAction(Power::Action action) const
{ {
QString command;
switch (action) switch (action)
{ {
case Power::PowerLogout: case Power::PowerLogout:
// there can be case when razo-session does not run command = "canLogout";
return dbusCall(LXQT_SERVICE, LXQT_PATH, LXQT_SERVICE, break;
QDBusConnection::sessionBus(), "canLogout", case Power::PowerReboot:
PowerProvider::DontCheckDBUS); command = "canReboot";
break;
case Power::PowerShutdown:
command = "canPowerOff";
break;
default: default:
return false; return false;
} }
// there can be case when lxqtsession-session does not run
return dbusCall(LXQT_SERVICE, LXQT_PATH, LXQT_SERVICE,
QDBusConnection::sessionBus(), command,
PowerProvider::DontCheckDBUS);
} }
bool LXQtProvider::doAction(Power::Action action) bool LXQtProvider::doAction(Power::Action action)
{ {
QString command; QString command;
switch (action) switch (action)
{ {
case Power::PowerLogout: case Power::PowerLogout:
command = "logout"; command = "logout";
break; break;
case Power::PowerReboot:
command = "reboot";
break;
case Power::PowerShutdown:
command = "powerOff";
break;
default: default:
return false; return false;
} }
@ -594,12 +608,14 @@ HalProvider::~HalProvider()
bool HalProvider::canAction(Power::Action action) const bool HalProvider::canAction(Power::Action action) const
{ {
Q_UNUSED(action)
return false; return false;
} }
bool HalProvider::doAction(Power::Action action) bool HalProvider::doAction(Power::Action action)
{ {
Q_UNUSED(action)
return false; return false;
} }

@ -41,14 +41,14 @@ namespace LXQt {
class LXQT_API MessageBox: public QMessageBox class LXQT_API MessageBox: public QMessageBox
{ {
Q_DECLARE_TR_FUNCTIONS(LXQt::MessageBox); Q_DECLARE_TR_FUNCTIONS(LXQt::MessageBox)
public: public:
explicit MessageBox(QWidget *parent = 0): QMessageBox(parent) {} explicit MessageBox(QWidget *parent = 0): QMessageBox(parent) {}
static QWidget *parentWidget() static QWidget *parentWidget()
{ {
QWidgetList widgets = QApplication::topLevelWidgets(); const QWidgetList widgets = QApplication::topLevelWidgets();
if (widgets.count()) if (widgets.count())
return widgets.at(0); return widgets.at(0);
@ -69,6 +69,8 @@ public:
static void warning(const QString& title, const QString& text) static void warning(const QString& title, const QString& text)
{ {
Q_UNUSED(title)
Q_UNUSED(text)
QMessageBox::warning(parentWidget(), tr("LXQt Power Manager Error"), tr("Hibernate failed.")); QMessageBox::warning(parentWidget(), tr("LXQt Power Manager Error"), tr("Hibernate failed."));
} }
@ -76,7 +78,8 @@ public:
protected: protected:
virtual void resizeEvent(QResizeEvent* event) virtual void resizeEvent(QResizeEvent* event)
{ {
QRect screen = QApplication::desktop()->screenGeometry(); Q_UNUSED(event)
const QRect screen = QApplication::desktop()->screenGeometry();
move((screen.width() - this->width()) / 2, move((screen.width() - this->width()) / 2,
(screen.height() - this->height()) / 2); (screen.height() - this->height()) / 2);

@ -31,17 +31,17 @@ using namespace LXQt;
LXQT_API bool ProgramFinder::programExists(const QString& command) LXQT_API bool ProgramFinder::programExists(const QString& command)
{ {
QString program = programName(command); const QString program = programName(command);
if (program[0] == QChar('/')) if (program[0] == QChar('/'))
{ {
QFileInfo fi(program); QFileInfo fi(program);
return fi.isExecutable() && fi.isFile(); return fi.isExecutable() && fi.isFile();
} }
QString path = qgetenv("PATH"); const QString path = qgetenv("PATH");
foreach (const QString& dirName, path.split(":", QString::SkipEmptyParts)) foreach (const QString& dirName, path.split(":", QString::SkipEmptyParts))
{ {
QFileInfo fi(QDir(dirName), program); const QFileInfo fi(QDir(dirName), program);
if (fi.isExecutable() && fi.isFile()) if (fi.isExecutable() && fi.isFile())
return true; return true;
} }

@ -90,7 +90,7 @@ void RotatedWidget::adjustContentSize()
{ {
mContent->adjustSize(); mContent->adjustSize();
QSize before = size(); const QSize before = size();
adjustSize(); adjustSize();
@ -147,7 +147,7 @@ void RotatedWidget::paintEvent(QPaintEvent */*event*/)
if (mOrigin == Qt::TopLeftCorner) if (mOrigin == Qt::TopLeftCorner)
return; return;
QSize sz = mContent->size(); const QSize sz = mContent->size();
QPainter painter(this); QPainter painter(this);

@ -124,7 +124,7 @@ static bool GetIntArrayProperty(XID window,
class ScreenSaverPrivate class ScreenSaverPrivate
{ {
Q_DECLARE_TR_FUNCTIONS(LXQt::ScreenSaver); Q_DECLARE_TR_FUNCTIONS(LXQt::ScreenSaver)
Q_DECLARE_PUBLIC(ScreenSaver) Q_DECLARE_PUBLIC(ScreenSaver)
ScreenSaver* const q_ptr; ScreenSaver* const q_ptr;
@ -141,6 +141,7 @@ void ScreenSaverPrivate::_l_xdgProcess_finished(int err, QProcess::ExitStatus st
{ {
// http://portland.freedesktop.org/xdg-utils-1.1.0-rc1/scripts/xdg-screensaver // http://portland.freedesktop.org/xdg-utils-1.1.0-rc1/scripts/xdg-screensaver
Q_UNUSED(status)
Q_Q(ScreenSaver); Q_Q(ScreenSaver);
if (err == 0) if (err == 0)
emit q->activated(); emit q->activated();

@ -80,7 +80,8 @@ public:
if (dir.cd(mParent->organizationName()) && dir.exists(file_name)) if (dir.cd(mParent->organizationName()) && dir.exists(file_name))
{ {
QSettings system_settings{dir.absoluteFilePath(file_name), QSettings::IniFormat}; QSettings system_settings{dir.absoluteFilePath(file_name), QSettings::IniFormat};
for (const QString & key : system_settings.allKeys()) const QStringList keys = system_settings.allKeys();
for (const QString & key : keys)
{ {
mParent->setValue(key, system_settings.value(key)); mParent->setValue(key, system_settings.value(key));
} }

@ -77,7 +77,6 @@ namespace LXQt {
class LXQT_API SingleApplication : public Application { class LXQT_API SingleApplication : public Application {
Q_OBJECT Q_OBJECT
Q_ENUMS(StartOptions)
public: public:
/*! /*!
@ -101,6 +100,7 @@ public:
/** Don't exit if the connection to the D-Bus session bus fails.*/ /** Don't exit if the connection to the D-Bus session bus fails.*/
NoExitOnDBusFailure NoExitOnDBusFailure
}; };
Q_ENUM(StartOptions)
/*! /*!
* \brief Construct a LXQt SingleApplication object. * \brief Construct a LXQt SingleApplication object.
@ -153,6 +153,6 @@ private:
#endif #endif
#define lxqtSingleApp (static_cast<LXQt::SingleApplication *>(qApp)) #define lxqtSingleApp (static_cast<LXQt::SingleApplication *>(qApp))
}; // namespace LXQt } // namespace LXQt
#endif // LXQTSINGLEAPPLICATION_H #endif // LXQTSINGLEAPPLICATION_H

@ -51,8 +51,8 @@ QStringList *getSearchPaths()
if (searchPath == 0) if (searchPath == 0)
{ {
searchPath = new QStringList(); searchPath = new QStringList();
*searchPath << QString(LXQT_SHARE_TRANSLATIONS_DIR);
*searchPath << XdgDirs::dataDirs(QLatin1Char('/') % LXQT_RELATIVE_SHARE_TRANSLATIONS_DIR); *searchPath << XdgDirs::dataDirs(QLatin1Char('/') % LXQT_RELATIVE_SHARE_TRANSLATIONS_DIR);
*searchPath << QString(LXQT_SHARE_TRANSLATIONS_DIR);
searchPath->removeDuplicates(); searchPath->removeDuplicates();
} }
@ -85,7 +85,7 @@ void Translator::setTranslationSearchPaths(const QStringList &paths)
************************************************/ ************************************************/
bool translate(const QString &name, const QString &owner) bool translate(const QString &name, const QString &owner)
{ {
QString locale = QLocale::system().name(); const QString locale = QLocale::system().name();
QTranslator *appTranslator = new QTranslator(qApp); QTranslator *appTranslator = new QTranslator(qApp);
QStringList *paths = getSearchPaths(); QStringList *paths = getSearchPaths();
@ -132,7 +132,7 @@ bool translate(const QString &name, const QString &owner)
************************************************/ ************************************************/
bool Translator::translateApplication(const QString &applicationName) bool Translator::translateApplication(const QString &applicationName)
{ {
QString locale = QLocale::system().name(); const QString locale = QLocale::system().name();
QTranslator *qtTranslator = new QTranslator(qApp); QTranslator *qtTranslator = new QTranslator(qApp);
if (qtTranslator->load("qt_" + locale, QLibraryInfo::location(QLibraryInfo::TranslationsPath))) if (qtTranslator->load("qt_" + locale, QLibraryInfo::location(QLibraryInfo::TranslationsPath)))
@ -170,7 +170,7 @@ bool Translator::translatePlugin(const QString &pluginName, const QString& type)
{ {
static QSet<QString> loadedPlugins; static QSet<QString> loadedPlugins;
QString fullName = type % QChar('/') % pluginName; const QString fullName = type % QChar('/') % pluginName;
if (loadedPlugins.contains(fullName)) if (loadedPlugins.contains(fullName))
return true; return true;

Loading…
Cancel
Save