diff --git a/qcmares.qrc b/qcmares.qrc
index b9e6c18..bd04c4e 100644
--- a/qcmares.qrc
+++ b/qcmares.qrc
@@ -7,5 +7,7 @@
resources/images/psv_icon_16.png
resources/images/qcma.png
resources/images/edit-clear-locationbar-rtl.png
+ resources/images/psv_icon_dc.png
+ resources/images/psv_icon_16_dc.png
diff --git a/resources/images/psv_icon_16_dc.png b/resources/images/psv_icon_16_dc.png
new file mode 100644
index 0000000..8f1008a
Binary files /dev/null and b/resources/images/psv_icon_16_dc.png differ
diff --git a/resources/images/psv_icon_dc.png b/resources/images/psv_icon_dc.png
new file mode 100644
index 0000000..399648d
Binary files /dev/null and b/resources/images/psv_icon_dc.png differ
diff --git a/src/mainwidget.cpp b/src/mainwidget.cpp
index fbe4bc5..b7cde85 100644
--- a/src/mainwidget.cpp
+++ b/src/mainwidget.cpp
@@ -77,10 +77,27 @@ void MainWidget::stopServer()
void MainWidget::deviceDisconnect()
{
+#ifndef Q_OS_WIN32
+ trayIcon->setIcon(QIcon(":/main/resources/images/psv_icon_dc.png"));
+#else
+ trayIcon->setIcon(QIcon(":/main/resources/images/psv_icon_16_dc.png"));
+#endif
+ qDebug("Icon changed - disconnected");
setTrayTooltip(tr("Disconnected"));
receiveMessage(tr("The device has been disconnected"));
}
+void MainWidget::deviceConnected(QString message)
+{
+ Q_UNUSED(message);
+#ifndef Q_OS_WIN32
+ trayIcon->setIcon(QIcon(":/main/resources/images/psv_icon.png"));
+#else
+ trayIcon->setIcon(QIcon(":/main/resources/images/psv_icon_16.png"));
+#endif
+ qDebug("Icon changed - connected");
+}
+
void MainWidget::prepareApplication()
{
connectSignals();
@@ -92,6 +109,7 @@ void MainWidget::connectSignals()
{
connect(&dialog, SIGNAL(finished(int)), this, SLOT(dialogResult(int)));
connect(&manager, SIGNAL(stopped()), qApp, SLOT(quit()));
+ connect(&manager, SIGNAL(deviceConnected(QString)), this, SLOT(deviceConnected(QString)));
connect(&manager, SIGNAL(deviceConnected(QString)), this, SLOT(receiveMessage(QString)));
connect(&manager, SIGNAL(deviceConnected(QString)), this, SLOT(setTrayTooltip(QString)));
connect(&manager, SIGNAL(deviceDisconnected()), this, SLOT(deviceDisconnect()));
@@ -164,9 +182,9 @@ void MainWidget::createTrayIcon()
trayIcon = new QSystemTrayIcon(this);
trayIcon->setContextMenu(trayIconMenu);
#ifndef Q_OS_WIN32
- trayIcon->setIcon(QIcon(":/main/resources/images/psv_icon.png"));
+ trayIcon->setIcon(QIcon(":/main/resources/images/psv_icon_dc.png"));
#else
- trayIcon->setIcon(QIcon(":/main/resources/images/psv_icon_16.png"));
+ trayIcon->setIcon(QIcon(":/main/resources/images/psv_icon_16_dc.png"));
#endif
trayIcon->show();
// try to avoid the iconTray Qt bug
diff --git a/src/mainwidget.h b/src/mainwidget.h
index d877a1e..605b26f 100644
--- a/src/mainwidget.h
+++ b/src/mainwidget.h
@@ -69,6 +69,7 @@ private slots:
void openManager();
void showAboutQt();
void showAboutDialog();
+ void deviceConnected(QString message);
void deviceDisconnect();
void dialogResult(int result);
void receiveMessage(QString message);