diff --git a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -36,6 +36,8 @@
XmlGui
ConfigWidgets
TextEditor
+ Notifications
+ NotifyConfig
)
find_package(Qt5 ${QT_MIN_VERSION} REQUIRED COMPONENTS
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -12,6 +12,17 @@
ecm_create_qm_loader(atelier_SRCS atelier)
-target_link_libraries(atelier AtelierWidgets AtelierDialogs Atelier3D AtCoreWidgets AtCore::AtCore KF5::XmlGui KF5::ConfigWidgets)
+target_link_libraries(atelier
+ AtelierWidgets
+ AtelierDialogs
+ Atelier3D
+ AtCoreWidgets
+ AtCore::AtCore
+ KF5::XmlGui
+ KF5::ConfigWidgets
+ KF5::NotifyConfig
+)
+
+install(FILES atelier.notifyrc DESTINATION ${KNOTIFYRC_INSTALL_DIR})
install(TARGETS atelier RUNTIME DESTINATION bin)
diff --git a/src/atelier.notifyrc b/src/atelier.notifyrc
new file mode 100644
--- /dev/null
+++ b/src/atelier.notifyrc
@@ -0,0 +1,19 @@
+[Global]
+IconName=atelier
+Comment=Atelier Printer Host
+Name=Atelier
+
+[Event/printerConnected]
+Name=Printer Connected
+Comment=Atelier successfully connected to your printer
+Action=Popup
+
+[Event/printerDisconnected]
+Name=Printer Disconnected
+Comment=Atelier disconnected from your printer.
+Action=Popup
+
+[Event/printerError]
+Name=Error
+Comment=An error has occurred, please check the logs for more info.
+Action=Popup
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -17,11 +17,12 @@
along with this program. If not, see .
*/
#include "mainwindow.h"
-#include
#include
+#include
+#include
#include
+#include
#include
-#include
#include
#include
#include
@@ -226,6 +227,11 @@
emit(profilesChanged());
});
+ action = KStandardAction::configureNotifications(this, SLOT(configureNotifications()), actionCollection());
+ action->setText(i18n("Configure Notifications..."));
+ connect(action, &QAction::triggered,[&]{
+ KNotifyConfigWidget::configure(this);
+ });
action = actionCollection()->addAction(QStringLiteral("quit"));
action->setIcon(QIcon::fromTheme("application-exit", QIcon(":/icon/exit")));
diff --git a/src/widgets/CMakeLists.txt b/src/widgets/CMakeLists.txt
--- a/src/widgets/CMakeLists.txt
+++ b/src/widgets/CMakeLists.txt
@@ -16,6 +16,7 @@
Qt5::Widgets
Qt5::SerialPort
KF5::I18n
+ KF5::Notifications
KF5::TextEditor
Qt5::Charts
Qt5::Multimedia
diff --git a/src/widgets/atcoreinstancewidget.cpp b/src/widgets/atcoreinstancewidget.cpp
--- a/src/widgets/atcoreinstancewidget.cpp
+++ b/src/widgets/atcoreinstancewidget.cpp
@@ -18,10 +18,12 @@
*/
#include "atcoreinstancewidget.h"
+#include "choosefiledialog.h"
#include
#include
#include
#include
+#include
AtCoreInstanceWidget::AtCoreInstanceWidget(QWidget *parent):
QWidget(parent),
@@ -87,7 +89,7 @@
enableControls(false);
updateProfileData();
- initConnectsToAtCore();
+ initConnectsToAtCore();
}
AtCoreInstanceWidget::~AtCoreInstanceWidget()
@@ -373,6 +375,8 @@
} break;
case AtCore::IDLE: {
stateString = i18n("Connected to %1", m_core.serial()->portName());
+ KNotification::event("printerConnected", i18n("Connected"), i18n("Connected to port %1 and using profile %2.",
+ m_core.serial()->portName(), m_comboProfile->currentText()));
emit extruderCountChanged(m_core.extruderCount());
m_logWidget->appendLog(i18n("Serial connected"));
emit disableDisconnect(false);
@@ -388,7 +392,9 @@
m_connectButton->setIcon(QIcon::fromTheme("network-connect",QIcon(QString(":/%1/connect").arg(m_theme))));
m_connectToolBar->setHidden(false);
m_toolBar->setHidden(true);
- enableControls(false);
+ KNotification::event("printerDisconnected", i18n("Disconnected"),
+ i18n("Disconnected from %1.", m_comboProfile->currentText()));
+ enableControls(false);
} break;
case AtCore::STARTPRINT: {
stateString = i18n("Starting Print");