From ace792e76b77aa3107788e83f03127cc8b875606 Mon Sep 17 00:00:00 2001 From: dsimakov Date: Wed, 30 Dec 2015 18:04:20 +0400 Subject: [PATCH 1/2] + fix include QStreamData + fix tray menu --- Software/Lightpack.pro | 12 ++ Software/qtserialport/qtserialport.pro | 2 + .../src/serialport/serialport.pro | 2 + Software/qtserialport/src/src.pro | 1 + Software/res/LightpackResources.qrc | 4 + Software/res/icons/error16.png | Bin 0 -> 644 bytes Software/res/icons/lock16.png | Bin 0 -> 460 bytes Software/res/icons/off16.png | Bin 0 -> 448 bytes Software/res/icons/on16.png | Bin 0 -> 547 bytes Software/src/SettingsWindow.ui | 6 +- .../src/qtsingleapplication/src/qtlocalpeer.h | 1 + Software/src/src.pro | 1 + Software/src/systrayicon/SysTrayIcon.cpp | 14 +++ Software/src/systrayicon/SysTrayIcon.hpp | 4 + Software/src/systrayicon/SysTrayIcon_qt_p.hpp | 114 ++++++++++++++---- 15 files changed, 134 insertions(+), 27 deletions(-) create mode 100644 Software/res/icons/error16.png create mode 100644 Software/res/icons/lock16.png create mode 100644 Software/res/icons/off16.png create mode 100644 Software/res/icons/on16.png diff --git a/Software/Lightpack.pro b/Software/Lightpack.pro index bf0cb5c1..a724a44b 100755 --- a/Software/Lightpack.pro +++ b/Software/Lightpack.pro @@ -29,6 +29,18 @@ # Project created by QtCreator 2010-04-28T19:08:13 # ------------------------------------------------- + +CONFIG-=create_cmake + +#linux-g++:QMAKE_TARGET.arch = $$QMAKE_HOST.arch +#linux-g++-32:QMAKE_TARGET.arch = x86 +#linux-g++-64:QMAKE_TARGET.arch = x86_64 + +#contains(QMAKE_TARGET.arch, x86_64):{ +# unix:QMAKE_CXXFLAGS+=-m32 +# unix:QMAKE_LFLAGS+=-m32 -L/usr/lib32 -L/usr/lib/i386-linux-gnu +# } + TEMPLATE = subdirs CONFIG += ordered diff --git a/Software/qtserialport/qtserialport.pro b/Software/qtserialport/qtserialport.pro index c182996d..9d711341 100644 --- a/Software/qtserialport/qtserialport.pro +++ b/Software/qtserialport/qtserialport.pro @@ -1,3 +1,5 @@ +CONFIG-=create_cmake + lessThan(QT_MAJOR_VERSION, 5) { TEMPLATE = subdirs SUBDIRS = src diff --git a/Software/qtserialport/src/serialport/serialport.pro b/Software/qtserialport/src/serialport/serialport.pro index d329a0b7..27fa7f35 100644 --- a/Software/qtserialport/src/serialport/serialport.pro +++ b/Software/qtserialport/src/serialport/serialport.pro @@ -1,5 +1,7 @@ QT = core +CONFIG-=create_cmake + QMAKE_DOCS = $$PWD/doc/qtserialport.qdocconf include($$PWD/serialport-lib.pri) diff --git a/Software/qtserialport/src/src.pro b/Software/qtserialport/src/src.pro index 1426d64e..cb2a07eb 100644 --- a/Software/qtserialport/src/src.pro +++ b/Software/qtserialport/src/src.pro @@ -1,3 +1,4 @@ TEMPLATE = subdirs SUBDIRS = serialport +CONFIG-=create_cmake diff --git a/Software/res/LightpackResources.qrc b/Software/res/LightpackResources.qrc index 3932329d..5746238a 100644 --- a/Software/res/LightpackResources.qrc +++ b/Software/res/LightpackResources.qrc @@ -38,5 +38,9 @@ icons/Prismatik.png icons/Prismatik-pixmap.png text/cast.html + icons/error16.png + icons/lock16.png + icons/off16.png + icons/on16.png diff --git a/Software/res/icons/error16.png b/Software/res/icons/error16.png new file mode 100644 index 0000000000000000000000000000000000000000..4034b2d0b1a111eff73edae05a35aa827181c3a7 GIT binary patch literal 644 zcmV-~0(CKsyZpOL;y8!fmCuG{1!ok3d6D6Qw4owbob?^yX7=KkBSR}WTJtz zkiE{-V5b~RSe2C69)zgXci^M*rG7H;E7F3^>ll3%K+=1=A$K8Q)c|B}&9*z67D(jSs!J4y=svB#ZVVQO24HxNsh9d>s<4Ea{~Ps~s0Xo8Ic zULA+G7t6tyt_a(mnd$V)p1ndn*Iaa+&>7>zD3M|{q0};`|u8a6X ezWMk;w*OyH6%H?~AxUEZ0000DlfP?IQ5?lT=f0Tepy*%=l}?40g5coNL1zOEL4*j3 z9Xm;JRQw0TKR}cYMNkCE)JLb{>`(}T2x?}Pr5KJ=Bi3wX}4DqkC8Il5kOJ^u)X#E)8}iwUT-+b z4@L5=<>m7hj|?G3KO9BRd>_Y?L|?c4RZ?ql_T1efr&fBt7H&&A23~)@ncpi!x;NYH zZvk%$);b*?bh~?{lpKIA0x*its-?Zi^H)e;kfy@#E3=7%X0zDkboAi>00005(lJY0Q5eSY|8wpo_evp971S(x=n)d9}a8z{3K2lNi!JPB+HM$N-p;nrxQsNW)`cZZF#wG9?4zwHlNnA5 z{OjPtHt~trlZ4ZwE6=@#$SHL{m^M6I# z$tCv$@z~4^U~taLm`$s}O}}?^KkBLR6fmsBU8RpRcd#EQ^QNs 0 0 - 608 - 600 + 654 + 599 @@ -243,7 +243,7 @@ QTabWidget::Rounded - 5 + 0 diff --git a/Software/src/qtsingleapplication/src/qtlocalpeer.h b/Software/src/qtsingleapplication/src/qtlocalpeer.h index 1b533b1a..365012c4 100644 --- a/Software/src/qtsingleapplication/src/qtlocalpeer.h +++ b/Software/src/qtsingleapplication/src/qtlocalpeer.h @@ -44,6 +44,7 @@ #include #include #include +#include #include "qtlockedfile.h" diff --git a/Software/src/src.pro b/Software/src/src.pro index 5d392764..3f745267 100644 --- a/Software/src/src.pro +++ b/Software/src/src.pro @@ -65,6 +65,7 @@ unix:!macx{ DESKTOP = $$(XDG_CURRENT_DESKTOP) equals(DESKTOP, "Unity") { + message(Unity DESKTOP) DEFINES += UNITY_DESKTOP PKGCONFIG += gtk+-2.0 appindicator-0.1 libnotify } diff --git a/Software/src/systrayicon/SysTrayIcon.cpp b/Software/src/systrayicon/SysTrayIcon.cpp index 7286329f..8fc4b342 100644 --- a/Software/src/systrayicon/SysTrayIcon.cpp +++ b/Software/src/systrayicon/SysTrayIcon.cpp @@ -91,6 +91,20 @@ void SysTrayIcon::checkUpdate() d->checkUpdate(); } +void SysTrayIcon::switchBacklight(const bool &power) +{ + if (power) + emit backlightOn(); + else + emit backlightOff(); +} + +void SysTrayIcon::nextProfile() +{ + using namespace SettingsScope; + QStringList profiles = Settings::findAllProfiles(); +} + void SysTrayIcon::setStatus(const Status status, const QString *arg) { Q_D(SysTrayIcon); diff --git a/Software/src/systrayicon/SysTrayIcon.hpp b/Software/src/systrayicon/SysTrayIcon.hpp index 33e68b12..fcae0d3d 100644 --- a/Software/src/systrayicon/SysTrayIcon.hpp +++ b/Software/src/systrayicon/SysTrayIcon.hpp @@ -81,6 +81,10 @@ class SysTrayIcon : public QObject public slots: void retranslateUi(); void checkUpdate(); + void nextProfile(); + +private slots: + void switchBacklight(const bool &power); private: SysTrayIconPrivate * const d_ptr; diff --git a/Software/src/systrayicon/SysTrayIcon_qt_p.hpp b/Software/src/systrayicon/SysTrayIcon_qt_p.hpp index 43bca789..f84f5754 100644 --- a/Software/src/systrayicon/SysTrayIcon_qt_p.hpp +++ b/Software/src/systrayicon/SysTrayIcon_qt_p.hpp @@ -54,8 +54,10 @@ class SysTrayIconPrivate : public QObject, public SysTrayIconPrivateData fillProfilesFromSettings(); - trayIconMenu->addAction(_switchOnBacklightAction); - trayIconMenu->addAction(_switchOffBacklightAction); + trayIconMenu->addAction(_switchBacklightAction); + trayIconMenu->addAction(_nextProfile); +// trayIconMenu->addAction(_switchOnBacklightAction); +// trayIconMenu->addAction(_switchOffBacklightAction); trayIconMenu->addSeparator(); trayIconMenu->addMenu(_profilesMenu); trayIconMenu->addAction(_settingsAction); @@ -83,10 +85,11 @@ class SysTrayIconPrivate : public QObject, public SysTrayIconPrivateData connect(&_updatesProcessor, SIGNAL(readyRead()), this, SLOT(onCheckUpdate_Finished())); - _pixmapCache.insert("lock16", new QPixmap(QPixmap(":/icons/lock.png").scaledToWidth(16, Qt::SmoothTransformation)) ); - _pixmapCache.insert("on16", new QPixmap(QPixmap(":/icons/on.png").scaledToWidth(16, Qt::SmoothTransformation)) ); - _pixmapCache.insert("off16", new QPixmap(QPixmap(":/icons/off.png").scaledToWidth(16, Qt::SmoothTransformation)) ); - _pixmapCache.insert("error16", new QPixmap(QPixmap(":/icons/error.png").scaledToWidth(16, Qt::SmoothTransformation)) ); + const int icon_size = 16; + _pixmapCache.insert("on16", new QPixmap(QPixmap(":/icons/on.png").scaledToWidth(icon_size, Qt::SmoothTransformation)) ); + _pixmapCache.insert("lock16", new QPixmap(QPixmap(":/icons/lock.png").scaledToWidth(icon_size, Qt::SmoothTransformation)) ); + _pixmapCache.insert("off16", new QPixmap(QPixmap(":/icons/off.png").scaledToWidth(icon_size, Qt::SmoothTransformation)) ); + _pixmapCache.insert("error16", new QPixmap(QPixmap(":/icons/error.png").scaledToWidth(icon_size, Qt::SmoothTransformation)) ); setStatus(SysTrayIcon::StatusOn); _qsystray->show(); @@ -138,8 +141,10 @@ class SysTrayIconPrivate : public QObject, public SysTrayIconPrivateData void retranslateUi() { DEBUG_LOW_LEVEL << Q_FUNC_INFO; - _switchOnBacklightAction->setText(tr("&Turn on")); - _switchOffBacklightAction->setText(tr("&Turn off")); + _switchBacklightAction->setText(tr("&Switch on/off")); +// _nextProfile->setText(tr("&Next profile")); +// _switchOnBacklightAction->setText(tr("&Turn on")); +// _switchOffBacklightAction->setText(tr("&Turn off")); _settingsAction->setText(tr("&Settings")); _quitAction->setText(tr("&Quit")); _profilesMenu->setTitle(tr("&Profiles")); @@ -173,8 +178,9 @@ class SysTrayIconPrivate : public QObject, public SysTrayIconPrivateData switch (status) { case SysTrayIcon::StatusOn: - _switchOnBacklightAction->setEnabled(false); - _switchOffBacklightAction->setEnabled(true); +// _switchOnBacklightAction->setEnabled(false); +// _switchOffBacklightAction->setEnabled(true); +// /mnt/workspace/source/Lightpack/Software/res/icons _qsystray->setIcon(QIcon(*_pixmapCache["on16"])); if(SettingsScope::Settings::isProfileLoaded()) @@ -182,8 +188,8 @@ class SysTrayIconPrivate : public QObject, public SysTrayIconPrivateData break; case SysTrayIcon::StatusLockedByApi: - _switchOnBacklightAction->setEnabled(false); - _switchOffBacklightAction->setEnabled(true); +// _switchOnBacklightAction->setEnabled(false); +// _switchOffBacklightAction->setEnabled(true); _qsystray->setIcon(QIcon(*_pixmapCache["lock16"])); _qsystray->setToolTip(tr("Device locked via API")); break; @@ -193,15 +199,15 @@ class SysTrayIconPrivate : public QObject, public SysTrayIconPrivateData break; case SysTrayIcon::StatusOff: - _switchOnBacklightAction->setEnabled(true); - _switchOffBacklightAction->setEnabled(false); +// _switchOnBacklightAction->setEnabled(true); +// _switchOffBacklightAction->setEnabled(false); _qsystray->setIcon(QIcon(*_pixmapCache["off16"])); _qsystray->setToolTip(tr("Disabled")); break; case SysTrayIcon::StatusError: - _switchOnBacklightAction->setEnabled(false); - _switchOffBacklightAction->setEnabled(true); +// _switchOnBacklightAction->setEnabled(false); +// _switchOffBacklightAction->setEnabled(true); _qsystray->setIcon(QIcon(*_pixmapCache["error16"])); _qsystray->setToolTip(tr("Error with connection device, verbose in logs")); break; @@ -226,6 +232,54 @@ class SysTrayIconPrivate : public QObject, public SysTrayIconPrivateData private slots: + void nextProfile() + { + using namespace SettingsScope; + QStringList profiles = Settings::findAllProfiles(); + const QString curProfile = Settings::getCurrentProfileName(); + int index = 0; + for (int i=0; i=profiles.count()) + index = 0; + const QString next = profiles.at(index); + + Settings::loadOrCreateProfile(next); + } + + void updateProfileNextText(const QString) + { + using namespace SettingsScope; + QStringList profiles = Settings::findAllProfiles(); + const QString curProfile = Settings::getCurrentProfileName(); + int index = 0; + for (int i=0; i=profiles.count()) + index = 0; + const QString next = profiles.at(index); + + index++; + if (index>=profiles.count()) + index = 0; + const QString nextAfterNext = profiles.at(index); + + _nextProfile->setText(QString("%1 -> %2").arg(next).arg(nextAfterNext)); + qDebug() << _nextProfile->text(); + } + void onCheckUpdate_Finished() { using namespace SettingsScope; @@ -329,15 +383,25 @@ private slots: { Q_Q(SysTrayIcon); DEBUG_LOW_LEVEL << Q_FUNC_INFO; + using namespace SettingsScope; + +// _switchOnBacklightAction = new QAction(QIcon(":/icons/on.png"), tr("&Turn on"), this); +// _switchOnBacklightAction->setIconVisibleInMenu(true); +// connect(_switchOnBacklightAction, SIGNAL(triggered()), q, SIGNAL(backlightOn())); - _switchOnBacklightAction = new QAction(QIcon(":/icons/on.png"), tr("&Turn on"), this); - _switchOnBacklightAction->setIconVisibleInMenu(true); - connect(_switchOnBacklightAction, SIGNAL(triggered()), q, SIGNAL(backlightOn())); + _switchBacklightAction = new QAction(QIcon(":/icons/on.png"), tr("&Switch on/off"), this); + _switchBacklightAction->setIconVisibleInMenu(true); + _switchBacklightAction->setCheckable(true); + connect(_switchBacklightAction, SIGNAL(triggered(bool)), q, SLOT(switchBacklight(bool))); - _switchOffBacklightAction = new QAction(QIcon(":/icons/off.png"), tr("&Turn off"), this); - _switchOffBacklightAction->setIconVisibleInMenu(true); - connect(_switchOffBacklightAction, SIGNAL(triggered()), q, SIGNAL(backlightOff())); +// _switchOffBacklightAction = new QAction(QIcon(":/icons/off.png"), tr("&Turn off"), this); +// _switchOffBacklightAction->setIconVisibleInMenu(true); +// connect(_switchOffBacklightAction, SIGNAL(triggered()), q, SIGNAL(backlightOff())); + _nextProfile = new QAction(QIcon(":/icons/profiles.png"), ("&Next profile"), this); + _nextProfile->setIconVisibleInMenu(true); + connect(_nextProfile, SIGNAL(triggered()), this, SLOT(nextProfile())); + connect(SettingsScope::Settings::settingsSingleton(), SIGNAL(currentProfileInited(QString)), this, SLOT(updateProfileNextText(QString))); _profilesMenu = new QMenu(tr("&Profiles")); _profilesMenu->setIcon(QIcon(":/icons/profiles.png")); @@ -373,8 +437,10 @@ private slots: private: QSystemTrayIcon * _qsystray; - QAction * _switchOnBacklightAction; - QAction * _switchOffBacklightAction; + QAction * _switchBacklightAction; + QAction * _nextProfile; +// QAction * _switchOnBacklightAction; +// QAction * _switchOffBacklightAction; QAction * _settingsAction; QAction * _quitAction; QMenu * _profilesMenu; From afb1dbc556614a1546dea7791a0ff7d6cfeee636 Mon Sep 17 00:00:00 2001 From: dsimakov Date: Tue, 5 Jan 2016 00:05:41 +0400 Subject: [PATCH 2/2] fix gui-private --- Software/src/src.pro | 1 + 1 file changed, 1 insertion(+) diff --git a/Software/src/src.pro b/Software/src/src.pro index 3f745267..7c24ddf3 100644 --- a/Software/src/src.pro +++ b/Software/src/src.pro @@ -15,6 +15,7 @@ CONFIG(msvc) { DESTDIR = bin TEMPLATE = app QT += network widgets +QT += gui-private win32 { QT += serialport }