From 32b99cd71c113f192c31c14b154600cfd71993cd Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Thu, 28 Feb 2008 20:50:37 +0000 Subject: added notifier plugin git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@259 90c681e8-e032-0410-971d-27865f9a5e38 --- src/plugins/General/CMakeLists.txt | 10 +- src/plugins/General/General.pro | 3 +- src/plugins/General/notifier/CMakeLists.txt | 67 ++++++ src/plugins/General/notifier/notifier.cpp | 59 ++++++ src/plugins/General/notifier/notifier.h | 49 +++++ src/plugins/General/notifier/notifier.pro | 36 ++++ src/plugins/General/notifier/notifierfactory.cpp | 58 ++++++ src/plugins/General/notifier/notifierfactory.h | 45 ++++ src/plugins/General/notifier/popupwidget.cpp | 79 +++++++ src/plugins/General/notifier/popupwidget.h | 54 +++++ src/plugins/General/notifier/settingsdialog.cpp | 69 ++++++ src/plugins/General/notifier/settingsdialog.h | 49 +++++ src/plugins/General/notifier/settingsdialog.ui | 254 +++++++++++++++++++++++ 13 files changed, 830 insertions(+), 2 deletions(-) create mode 100644 src/plugins/General/notifier/CMakeLists.txt create mode 100644 src/plugins/General/notifier/notifier.cpp create mode 100644 src/plugins/General/notifier/notifier.h create mode 100644 src/plugins/General/notifier/notifier.pro create mode 100644 src/plugins/General/notifier/notifierfactory.cpp create mode 100644 src/plugins/General/notifier/notifierfactory.h create mode 100644 src/plugins/General/notifier/popupwidget.cpp create mode 100644 src/plugins/General/notifier/popupwidget.h create mode 100644 src/plugins/General/notifier/settingsdialog.cpp create mode 100644 src/plugins/General/notifier/settingsdialog.h create mode 100644 src/plugins/General/notifier/settingsdialog.ui (limited to 'src') diff --git a/src/plugins/General/CMakeLists.txt b/src/plugins/General/CMakeLists.txt index 793d41401..1dfa8e373 100644 --- a/src/plugins/General/CMakeLists.txt +++ b/src/plugins/General/CMakeLists.txt @@ -1,6 +1,7 @@ SET(USE_DBUS TRUE CACHE BOOL "enable/disable dbus plugin") SET(USE_SCROBBLER TRUE CACHE BOOL "enable/disable scrobbler plugin") SET(USE_STATICON TRUE CACHE BOOL "enable/disable status icon plugin") +SET(USE_NOTIFIER TRUE CACHE BOOL "enable/disable notifier plugin") IF(USE_DBUS) MESSAGE(STATUS "DBUS ON") @@ -21,4 +22,11 @@ MESSAGE( STATUS "STATICON ON") add_subdirectory(statusicon) ELSE(USE_STATICON) MESSAGE( STATUS "STATICON OFF") -ENDIF(USE_STATICON) \ No newline at end of file +ENDIF(USE_STATICON) + +IF(USE_NOTIFIER) +MESSAGE(STATUS "NOTIFIER ON") +add_subdirectory(notifier) +ELSE(USE_NOTIFIER) +MESSAGE(STATUS "NOTIFIER OFF") +ENDIF(USE_NOTIFIER) diff --git a/src/plugins/General/General.pro b/src/plugins/General/General.pro index 11f567452..31790c056 100644 --- a/src/plugins/General/General.pro +++ b/src/plugins/General/General.pro @@ -1,4 +1,5 @@ SUBDIRS += statusicon \ scrobbler \ - dbuscontrol + dbuscontrol \ + notifier TEMPLATE = subdirs diff --git a/src/plugins/General/notifier/CMakeLists.txt b/src/plugins/General/notifier/CMakeLists.txt new file mode 100644 index 000000000..5bf6cb3b2 --- /dev/null +++ b/src/plugins/General/notifier/CMakeLists.txt @@ -0,0 +1,67 @@ +project(libnotifier) + +cmake_minimum_required(VERSION 2.4.0) + + + +INCLUDE(FindQt4) + +find_package(Qt4 REQUIRED) # find and setup Qt4 for this project +include(${QT_USE_FILE}) + +# qt plugin +ADD_DEFINITIONS( -Wall ) +ADD_DEFINITIONS(${QT_DEFINITIONS}) +ADD_DEFINITIONS(-DQT_PLUGIN) +ADD_DEFINITIONS(-DQT_NO_DEBUG) +ADD_DEFINITIONS(-DQT_SHARED) +ADD_DEFINITIONS(-DQT_THREAD) + +include_directories(${CMAKE_CURRENT_BINARY_DIR}) + +SET(QT_INCLUDES + ${QT_INCLUDES} + ${CMAKE_CURRENT_BINARY_DIR}/../../../ +) + +# libqmmpui +include_directories(${CMAKE_CURRENT_BINARY_DIR}/../../../) +link_directories(${CMAKE_CURRENT_BINARY_DIR}/../../../qmmpui) + +SET(libnotifier_SRCS + settingsdialog.cpp + notifier.cpp + notifierfactory.cpp + popupwidget.cpp +) + +SET(libnotifier_MOC_HDRS + settingsdialog.h + notifierfactory.h + notifier.h + popupwidget.h +) + +#SET(libnotifier_RCCS translations/translations.qrc) + +#SET(libnotifier_RCCS images/images.qrc) + +#QT4_ADD_RESOURCES(libnotifier_RCC_SRCS ${libnotifier_RCCS}) + +QT4_WRAP_CPP(libnotifier_MOC_SRCS ${libnotifier_MOC_HDRS}) + +# user interface + + +SET(libnotifier_UIS + settingsdialog.ui +) + +QT4_WRAP_UI(libnotifier_UIS_H ${libnotifier_UIS}) +# Don't forget to include output directory, otherwise +# the UI file won't be wrapped! +include_directories(${CMAKE_CURRENT_BINARY_DIR}) + +ADD_LIBRARY(notifier SHARED ${libnotifier_SRCS} ${libnotifier_MOC_SRCS} ${libnotifier_UIS_H} ${libnotifier_RCC_SRCS}) +target_link_libraries(notifier ${QT_LIBRARIES} -lqmmpui) +install(TARGETS notifier DESTINATION ${LIB_DIR}/qmmp/General) diff --git a/src/plugins/General/notifier/notifier.cpp b/src/plugins/General/notifier/notifier.cpp new file mode 100644 index 000000000..2c2c53ae4 --- /dev/null +++ b/src/plugins/General/notifier/notifier.cpp @@ -0,0 +1,59 @@ +/*************************************************************************** + * Copyright (C) 2008 by Ilya Kotov * + * forkotov02@hotmail.ru * + * * + * 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 2 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, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + +#include + +#include "popupwidget.h" +#include "notifier.h" + +Notifier::Notifier(QObject *parent) + : General(parent) +{ + m_popupWidget = 0; +} + +Notifier::~Notifier() +{} + +void Notifier::setState(const uint &state) +{ + switch ((uint) state) + { + case General::Playing: + { + break; + } + case General::Paused: + { + break; + } + case General::Stopped: + { + break; + } + } +} + +void Notifier::setSongInfo(const SongInfo &song) +{ + if(m_popupWidget) + delete m_popupWidget; + m_popupWidget = new PopupWidget(song); +} diff --git a/src/plugins/General/notifier/notifier.h b/src/plugins/General/notifier/notifier.h new file mode 100644 index 000000000..d2d2f706f --- /dev/null +++ b/src/plugins/General/notifier/notifier.h @@ -0,0 +1,49 @@ +/*************************************************************************** + * Copyright (C) 2008 by Ilya Kotov * + * forkotov02@hotmail.ru * + * * + * 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 2 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, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ +#ifndef NOTIFIER_H +#define NOTIFIER_H + +#include + +#include + +class PopupWidget; + +/** + @author Ilya Kotov +*/ + +class Notifier : public General +{ +Q_OBJECT +public: + Notifier(QObject *parent = 0); + + ~Notifier(); + + void setState(const uint& state); + void setSongInfo(const SongInfo &song); + +private: + QPointer m_popupWidget; + +}; + +#endif diff --git a/src/plugins/General/notifier/notifier.pro b/src/plugins/General/notifier/notifier.pro new file mode 100644 index 000000000..099b52aed --- /dev/null +++ b/src/plugins/General/notifier/notifier.pro @@ -0,0 +1,36 @@ +include(../../plugins.pri) + +INCLUDEPATH += ../../../../src +CONFIG += release \ +warn_on \ +plugin + +TARGET =$$PLUGINS_PREFIX/General/notifier +QMAKE_CLEAN =$$PLUGINS_PREFIX/General/libnotifier.so + + +TEMPLATE = lib +QMAKE_LIBDIR += ../../../../lib +LIBS += -lqmmpui + +#TRANSLATIONS = translations/ffmpeg_plugin_ru.ts +#RESOURCES = translations/translations.qrc + +isEmpty(LIB_DIR){ + LIB_DIR = /lib +} +target.path = $$LIB_DIR/qmmp/General +INSTALLS += target +#FORMS += settingsdialog.ui + +HEADERS += notifierfactory.h \ + notifier.h \ + popupwidget.h \ + settingsdialog.h +SOURCES += notifierfactory.cpp \ + notifier.cpp \ + popupwidget.cpp \ + settingsdialog.cpp + +FORMS += settingsdialog.ui + diff --git a/src/plugins/General/notifier/notifierfactory.cpp b/src/plugins/General/notifier/notifierfactory.cpp new file mode 100644 index 000000000..d99a11064 --- /dev/null +++ b/src/plugins/General/notifier/notifierfactory.cpp @@ -0,0 +1,58 @@ +/*************************************************************************** + * Copyright (C) 2008 by Ilya Kotov * + * forkotov02@hotmail.ru * + * * + * 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 2 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, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + +#include + +#include "notifier.h" +#include "settingsdialog.h" +#include "notifierfactory.h" + +const GeneralProperties NotifierFactory::properties() const +{ + GeneralProperties properties; + properties.name = tr("Notifier Plugin"); + properties.hasAbout = TRUE; + properties.hasSettings = TRUE; + return properties; +} + +General *NotifierFactory::create(QObject *parent) +{ + return new Notifier(parent); +} + +QDialog *NotifierFactory::createConfigDialog(QWidget *parent) +{ + return new SettingsDialog(parent); +} + +void NotifierFactory::showAbout(QWidget *parent) +{ + QMessageBox::about (parent, tr("About Notifier Plugin"), + tr("Qmmp Desktop Notifier Plugin")+"\n"+ + tr("Writen by: Ilya Kotov ")); +} + +QTranslator *NotifierFactory::createTranslator(QObject *parent) +{ + return 0; +} + +Q_EXPORT_PLUGIN(NotifierFactory) diff --git a/src/plugins/General/notifier/notifierfactory.h b/src/plugins/General/notifier/notifierfactory.h new file mode 100644 index 000000000..68c22bbde --- /dev/null +++ b/src/plugins/General/notifier/notifierfactory.h @@ -0,0 +1,45 @@ +/*************************************************************************** + * Copyright (C) 2008 by Ilya Kotov * + * forkotov02@hotmail.ru * + * * + * 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 2 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, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ +#ifndef NOTIFIERFACTORY_H +#define NOTIFIERFACTORY_H + +/** + @author Ilya Kotov +*/ +#include +#include +#include + +#include +#include + +class NotifierFactory : public QObject, public GeneralFactory +{ +Q_OBJECT +Q_INTERFACES(GeneralFactory); +public: + const GeneralProperties properties() const; + General *create(QObject *parent); + QDialog *createConfigDialog(QWidget *parent); + void showAbout(QWidget *parent); + QTranslator *createTranslator(QObject *parent); +}; + +#endif diff --git a/src/plugins/General/notifier/popupwidget.cpp b/src/plugins/General/notifier/popupwidget.cpp new file mode 100644 index 000000000..eb15ddc88 --- /dev/null +++ b/src/plugins/General/notifier/popupwidget.cpp @@ -0,0 +1,79 @@ +/*************************************************************************** + * Copyright (C) 2008 by Ilya Kotov * + * forkotov02@hotmail.ru * + * * + * 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 2 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, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "popupwidget.h" + +PopupWidget::PopupWidget(const SongInfo &song, QWidget *parent) + : QFrame(parent) +{ + setWindowFlags(Qt::X11BypassWindowManagerHint | + Qt::WindowStaysOnTopHint); + setFrameStyle(QFrame::Box | QFrame::Plain); + QVBoxLayout *layout = new QVBoxLayout(this); + QString title = song.title(); + title.append(" "); + if (!song.isStream()) + title.append(QString("(%1:%2)").arg(song.length()/60).arg(song.length()%60, 2, 10, QChar('0'))); + QLabel *label1 = new QLabel(""+title+"", this); + layout->addWidget(label1); + + QString info = song.artist(); + if (!info.isEmpty() && !song.album().isEmpty()) + info.append(" - " + song.album()); + if (!info.isEmpty()) + { + QLabel *label2 = new QLabel(info, this); + layout->addWidget(label2); + } + setLayout(layout); + resize(sizeHint()); + QSettings settings(QDir::homePath()+"/.qmmp/qmmprc", QSettings::IniFormat); + settings.beginGroup("Notifier"); + int delay = settings.value("message_delay", 2000).toInt(); + uint pos = settings.value("message_pos", PopupWidget::BOTTOMLEFT).toUInt(); + settings.endGroup(); + //calculate widget position + int x = 5, y = 5; + QSize desktopSize = QApplication::desktop()->size(); + if (pos == LEFT || pos == RIGHT || pos == CENTER) + y = desktopSize.height()/2 - height()/2; + else if (pos == BOTTOMLEFT || pos == BOTTOM || pos == BOTTOMRIGHT) + y = desktopSize.height() - height() - 5; + if (pos == TOP || pos == BOTTOM || pos == CENTER) + x = desktopSize.width()/2 - width()/2; + else if (pos == TOPRIGHT || pos == RIGHT || pos == BOTTOMRIGHT) + x = desktopSize.width() - width() - 5; + + move (x,y); + QTimer::singleShot(delay, this, SLOT(deleteLater())); + show(); +} + +PopupWidget::~PopupWidget() +{} diff --git a/src/plugins/General/notifier/popupwidget.h b/src/plugins/General/notifier/popupwidget.h new file mode 100644 index 000000000..048fe4d33 --- /dev/null +++ b/src/plugins/General/notifier/popupwidget.h @@ -0,0 +1,54 @@ +/*************************************************************************** + * Copyright (C) 2008 by Ilya Kotov * + * forkotov02@hotmail.ru * + * * + * 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 2 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, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ +#ifndef POPUPWIDGET_H +#define POPUPWIDGET_H + +#include +#include + +#include + +/** + @author Ilya Kotov +*/ +class PopupWidget : public QFrame +{ + Q_OBJECT +public: + PopupWidget(const SongInfo &song, QWidget *parent = 0); + + ~PopupWidget(); + + enum Position + { + TOPLEFT = 0, + TOP, + TOPRIGHT, + RIGHT, + BOTTOMRIGHT, + BOTTOM, + BOTTOMLEFT, + LEFT, + CENTER + }; + +}; + +#endif diff --git a/src/plugins/General/notifier/settingsdialog.cpp b/src/plugins/General/notifier/settingsdialog.cpp new file mode 100644 index 000000000..a460d5af9 --- /dev/null +++ b/src/plugins/General/notifier/settingsdialog.cpp @@ -0,0 +1,69 @@ +/*************************************************************************** + * Copyright (C) 2008 by Ilya Kotov * + * forkotov02@hotmail.ru * + * * + * 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 2 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, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + +#include +#include + +#include "popupwidget.h" +#include "settingsdialog.h" + +SettingsDialog::SettingsDialog(QWidget *parent) + : QDialog(parent) +{ + ui.setupUi(this); + + m_buttons.insert(PopupWidget::TOPLEFT, ui.topLeftButton); + m_buttons.insert(PopupWidget::TOP, ui.topButton); + m_buttons.insert(PopupWidget::TOPRIGHT, ui.topRightButton); + m_buttons.insert(PopupWidget::RIGHT, ui.rightButton); + m_buttons.insert(PopupWidget::BOTTOMRIGHT, ui.bottomRightButton); + m_buttons.insert(PopupWidget::BOTTOM, ui.bottomButton); + m_buttons.insert(PopupWidget::BOTTOMLEFT, ui.bottomLeftButton); + m_buttons.insert(PopupWidget::LEFT, ui.leftButton); + m_buttons.insert(PopupWidget::CENTER, ui.centerButton); + + QSettings settings(QDir::homePath()+"/.qmmp/qmmprc", QSettings::IniFormat); + settings.beginGroup("Notifier"); + ui.messageDelaySpinBox->setValue(settings.value("message_delay", 2000).toInt()); + uint pos = settings.value("message_pos", PopupWidget::BOTTOMLEFT).toUInt(); + m_buttons.value(pos)->setChecked(TRUE); + settings.endGroup(); + connect(ui.okButton, SIGNAL(clicked()), SLOT(writeSettings())); +} + + +SettingsDialog::~SettingsDialog() +{} + +void SettingsDialog::writeSettings() +{ + QSettings settings(QDir::homePath()+"/.qmmp/qmmprc", QSettings::IniFormat); + settings.beginGroup("Notifier"); + settings.setValue ("message_delay", ui.messageDelaySpinBox->value()); + uint pos = PopupWidget::BOTTOMLEFT; + foreach (QPushButton *button, m_buttons.values()) + { + if(button->isChecked()) + pos = m_buttons.key(button); + } + settings.setValue("message_pos", pos); + settings.endGroup(); + accept(); +} diff --git a/src/plugins/General/notifier/settingsdialog.h b/src/plugins/General/notifier/settingsdialog.h new file mode 100644 index 000000000..6d5f39a15 --- /dev/null +++ b/src/plugins/General/notifier/settingsdialog.h @@ -0,0 +1,49 @@ +/*************************************************************************** + * Copyright (C) 2008 by Ilya Kotov * + * forkotov02@hotmail.ru * + * * + * 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 2 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, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ +#ifndef SETTINGSDIALOG_H +#define SETTINGSDIALOG_H + +#include + + +#include "ui_settingsdialog.h" + +/** + @author Ilya Kotov +*/ +class SettingsDialog : public QDialog +{ +Q_OBJECT +public: + SettingsDialog(QWidget *parent = 0); + + ~SettingsDialog(); + + +private slots: + void writeSettings(); + +private: + Ui::SettingsDialog ui; + QMap m_buttons; + +}; + +#endif diff --git a/src/plugins/General/notifier/settingsdialog.ui b/src/plugins/General/notifier/settingsdialog.ui new file mode 100644 index 000000000..db6a1ec24 --- /dev/null +++ b/src/plugins/General/notifier/settingsdialog.ui @@ -0,0 +1,254 @@ + + SettingsDialog + + + + 0 + 0 + 268 + 273 + + + + Status Icon Plugin Settings + + + + + + General + + + + + 10 + 30 + 141 + 23 + + + + Message delay, ms: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 140 + 30 + 71 + 23 + + + + 100 + + + 10000 + + + 100 + + + 1000 + + + + + + + + Position + + + + + + + + + true + + + true + + + + + + + + + + true + + + true + + + + + + + + + + true + + + true + + + + + + + + + + true + + + true + + + + + + + + + + true + + + true + + + + + + + + + + true + + + true + + + + + + + + + + true + + + true + + + + + + + + + + true + + + true + + + + + + + + + + true + + + true + + + + + + + + + + 6 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Qt::Horizontal + + + + 131 + 31 + + + + + + + + OK + + + + + + + Cancel + + + + + + + + + + + cancelButton + clicked() + SettingsDialog + reject() + + + 336 + 210 + + + 179 + 224 + + + + + -- cgit v1.2.3-13-gbd6f