diff --git a/src/atelierui.rc b/src/atelierui.rc
--- a/src/atelierui.rc
+++ b/src/atelierui.rc
@@ -9,21 +9,15 @@
-
-
-
+
diff --git a/src/icons/application-exit.svg b/src/icons/application-exit.svg
new file mode 100644
--- /dev/null
+++ b/src/icons/application-exit.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/icons/camera-web.svg b/src/icons/camera-web.svg
new file mode 100644
--- /dev/null
+++ b/src/icons/camera-web.svg
@@ -0,0 +1,68 @@
+
+
+
+
diff --git a/src/icons/dark_3d.svg b/src/icons/dark_3d.svg
new file mode 100644
--- /dev/null
+++ b/src/icons/dark_3d.svg
@@ -0,0 +1,29 @@
+
diff --git a/src/icons/dark_add.svg b/src/icons/dark_add.svg
new file mode 100644
--- /dev/null
+++ b/src/icons/dark_add.svg
@@ -0,0 +1,14 @@
+
diff --git a/src/icons/dark_configure.svg b/src/icons/dark_configure.svg
new file mode 100644
--- /dev/null
+++ b/src/icons/dark_configure.svg
@@ -0,0 +1,14 @@
+
diff --git a/src/icons/dark_connect.svg b/src/icons/dark_connect.svg
new file mode 100644
--- /dev/null
+++ b/src/icons/dark_connect.svg
@@ -0,0 +1,14 @@
+
diff --git a/src/icons/dark_disconnect.svg b/src/icons/dark_disconnect.svg
new file mode 100644
--- /dev/null
+++ b/src/icons/dark_disconnect.svg
@@ -0,0 +1,22 @@
+
diff --git a/src/icons/dark_home.svg b/src/icons/dark_home.svg
new file mode 100644
--- /dev/null
+++ b/src/icons/dark_home.svg
@@ -0,0 +1,14 @@
+
diff --git a/src/icons/dark_open.svg b/src/icons/dark_open.svg
new file mode 100644
--- /dev/null
+++ b/src/icons/dark_open.svg
@@ -0,0 +1,14 @@
+
diff --git a/src/icons/dark_pause.svg b/src/icons/dark_pause.svg
new file mode 100644
--- /dev/null
+++ b/src/icons/dark_pause.svg
@@ -0,0 +1,14 @@
+
diff --git a/src/icons/dark_start.svg b/src/icons/dark_start.svg
new file mode 100644
--- /dev/null
+++ b/src/icons/dark_start.svg
@@ -0,0 +1,14 @@
+
diff --git a/src/icons/dark_stop.svg b/src/icons/dark_stop.svg
new file mode 100644
--- /dev/null
+++ b/src/icons/dark_stop.svg
@@ -0,0 +1,14 @@
+
diff --git a/src/icons/kwrite.svg b/src/icons/kwrite.svg
new file mode 100644
--- /dev/null
+++ b/src/icons/kwrite.svg
@@ -0,0 +1,1421 @@
+
+
+
+
diff --git a/src/icons/light_3d.svg b/src/icons/light_3d.svg
new file mode 100644
--- /dev/null
+++ b/src/icons/light_3d.svg
@@ -0,0 +1,29 @@
+
diff --git a/src/icons/light_add.svg b/src/icons/light_add.svg
new file mode 100644
--- /dev/null
+++ b/src/icons/light_add.svg
@@ -0,0 +1,14 @@
+
diff --git a/src/icons/light_configure.svg b/src/icons/light_configure.svg
new file mode 100644
--- /dev/null
+++ b/src/icons/light_configure.svg
@@ -0,0 +1,14 @@
+
diff --git a/src/icons/light_connect.svg b/src/icons/light_connect.svg
new file mode 100644
--- /dev/null
+++ b/src/icons/light_connect.svg
@@ -0,0 +1,14 @@
+
diff --git a/src/icons/light_disconnect.svg b/src/icons/light_disconnect.svg
new file mode 100644
--- /dev/null
+++ b/src/icons/light_disconnect.svg
@@ -0,0 +1,22 @@
+
diff --git a/src/icons/light_home.svg b/src/icons/light_home.svg
new file mode 100644
--- /dev/null
+++ b/src/icons/light_home.svg
@@ -0,0 +1,14 @@
+
diff --git a/src/icons/light_open.svg b/src/icons/light_open.svg
new file mode 100644
--- /dev/null
+++ b/src/icons/light_open.svg
@@ -0,0 +1,14 @@
+
diff --git a/src/icons/light_pause.svg b/src/icons/light_pause.svg
new file mode 100644
--- /dev/null
+++ b/src/icons/light_pause.svg
@@ -0,0 +1,14 @@
+
diff --git a/src/icons/light_start.svg b/src/icons/light_start.svg
new file mode 100644
--- /dev/null
+++ b/src/icons/light_start.svg
@@ -0,0 +1,14 @@
+
diff --git a/src/icons/light_stop.svg b/src/icons/light_stop.svg
new file mode 100644
--- /dev/null
+++ b/src/icons/light_stop.svg
@@ -0,0 +1,14 @@
+
diff --git a/src/mainwindow.h b/src/mainwindow.h
--- a/src/mainwindow.h
+++ b/src/mainwindow.h
@@ -48,10 +48,10 @@
private:
QList m_openFiles;
+ QString m_theme;
KTextEditor::View *m_currEditorView;
LateralArea m_lateral;
QTabWidget *m_instances;
-
void setupLateralArea();
void newAtCoreInstance();
void initWidgets();
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -38,6 +38,8 @@
m_currEditorView(nullptr),
m_instances(new QTabWidget(this))
{
+ m_theme = palette().text().color().value() >= QColor(Qt::lightGray).value() ? QString("dark") : QString("light");
+
initWidgets();
setupActions();
connect(m_instances, &QTabWidget::tabCloseRequested, [this] (int index){
@@ -132,40 +134,47 @@
guiFactory()->addClient(view);
m_currEditorView = view;
});
-
- setupButton("3d", i18n("&3D"), QIcon::fromTheme("draw-cuboid", QIcon(":/icon/atelier")), new Viewer3D(this));
- setupButton("gcode", i18n("&GCode"), QIcon::fromTheme("accessories-text-editor", QIcon(":/icon/atelier")), gcodeEditor);
- setupButton("video", i18n("&Video"), QIcon::fromTheme("camera-web", QIcon(":/icon/atelier")), new VideoMonitorWidget(this));
+ setupButton("3d", i18n("&3D"), QIcon::fromTheme("draw-cuboid", QIcon(QString(":/%1/3d").arg(m_theme))), new Viewer3D(this));
+ setupButton("gcode", i18n("&GCode"), QIcon::fromTheme("accessories-text-editor", QIcon(":/icon/edit")), gcodeEditor);
+ setupButton("video", i18n("&Video"), QIcon::fromTheme("camera-web", QIcon(":/icon/video")), new VideoMonitorWidget(this));
buttonLayout->addStretch();
m_lateral.m_toolBar->setLayout(buttonLayout);
}
void MainWindow::setupActions()
{
// Actions for the Toolbar
QAction *action;
- action = actionCollection()->addAction(QStringLiteral("open_gcode"));
- action->setIcon(QIcon::fromTheme("document-open", style()->standardIcon(QStyle::SP_DirOpenIcon)));
- action->setText(i18n("&Open GCode"));
+ action = actionCollection()->addAction(QStringLiteral("open"));
+ action->setIcon(QIcon::fromTheme("document-open", QIcon(QString(":/%1/open").arg(m_theme))));
+
+ action->setText(i18n("&Open"));
actionCollection()->setDefaultShortcut(action, QKeySequence::Open);
connect(action, &QAction::triggered, this, &MainWindow::openFile);
action = actionCollection()->addAction(QStringLiteral("new_instance"));
- action->setIcon(QIcon::fromTheme("list-add", QIcon()));
+ action->setIcon(QIcon::fromTheme("list-add", QIcon(QString(":/%1/addTab").arg(m_theme))));
+
action->setText(i18n("&New Connection"));
actionCollection()->setDefaultShortcut(action, QKeySequence::AddTab);
connect(action, &QAction::triggered, this, &MainWindow::newAtCoreInstance);
action = actionCollection()->addAction(QStringLiteral("profiles"));
- action->setIcon(QIcon::fromTheme("document-properties", QIcon()));
+ action->setIcon(QIcon::fromTheme("document-properties", QIcon(QString(":/%1/configure").arg(m_theme))));
+
action->setText(i18n("&Profiles"));
connect(action, &QAction::triggered, [this] {
std::unique_ptr pd(new ProfilesDialog);
pd->exec();
emit(profilesChanged());
});
- action = KStandardAction::quit(this, SLOT(close()), actionCollection());
+ action = actionCollection()->addAction(QStringLiteral("quit"));
+ action->setIcon(QIcon::fromTheme("application-exit", QIcon(":/icon/exit")));
+
+ action->setText(i18n("&Quit"));
+ actionCollection()->setDefaultShortcut(action, QKeySequence::Quit);
+ connect(action, &QAction::triggered, this, &MainWindow::close);
setupGUI(Default, ":/atelierui");
}
diff --git a/src/resources.qrc b/src/resources.qrc
--- a/src/resources.qrc
+++ b/src/resources.qrc
@@ -1,9 +1,36 @@
../deploy/atelier.png
+ icons/application-exit.svg
+ icons/camera-web.svg
+ icons/kwrite.svg
+
+ icons/light_configure.svg
+ icons/light_open.svg
+ icons/light_3d.svg
+ icons/light_add.svg
+ icons/light_home.svg
+ icons/light_connect.svg
+ icons/light_disconnect.svg
+ icons/light_start.svg
+ icons/light_stop.svg
+ icons/light_pause.svg
+
+
+ icons/dark_configure.svg
+ icons/dark_open.svg
+ icons/dark_3d.svg
+ icons/dark_add.svg
+ icons/dark_home.svg
+ icons/dark_connect.svg
+ icons/dark_disconnect.svg
+ icons/dark_start.svg
+ icons/dark_stop.svg
+ icons/dark_pause.svg
+
+
atelierui.rc
-
diff --git a/src/widgets/atcoreinstancewidget.h b/src/widgets/atcoreinstancewidget.h
--- a/src/widgets/atcoreinstancewidget.h
+++ b/src/widgets/atcoreinstancewidget.h
@@ -68,6 +68,7 @@
QList m_files;
QAction *m_printAction;
QSettings m_settings;
+ QString m_theme;
void initConnectsToAtCore();
void printFile(const QUrl& fileName);
void pausePrint();
diff --git a/src/widgets/atcoreinstancewidget.cpp b/src/widgets/atcoreinstancewidget.cpp
--- a/src/widgets/atcoreinstancewidget.cpp
+++ b/src/widgets/atcoreinstancewidget.cpp
@@ -30,17 +30,18 @@
m_toolBar(nullptr),
m_printAction(nullptr)
{
+ m_theme = palette().text().color().value() >= QColor(Qt::lightGray).value() ? QString("dark") : QString("light") ;
ui = new Ui::AtCoreInstanceWidget;
ui->setupUi(this);
-
ui->printProgressWidget->setVisible(false);
buildMainToolbar();
buildToolbar();
buildConnectionToolbar();
enableControls(false);
updateProfileData();
initConnectsToAtCore();
m_mainToolBar->setHidden(true);
+
}
AtCoreInstanceWidget::~AtCoreInstanceWidget()
@@ -54,7 +55,8 @@
m_toolBar = new QToolBar();
auto lb = new QAction;
- lb->setIcon(QIcon::fromTheme("go-home", style()->standardIcon(QStyle::SP_DirHomeIcon)));
+ lb->setIcon(QIcon::fromTheme("go-home", QIcon(QString(":/%1/home").arg(m_theme))));
+
lb->setDisabled(true);
m_toolBar->addAction(lb);
@@ -114,11 +116,12 @@
});
m_mainToolBar->addAction(m_printAction);
- auto stopAction = new QAction(QIcon::fromTheme("media-playback-stop", style()->standardIcon(QStyle::SP_MediaStop)), i18n("Stop"));
+ auto stopAction = new QAction(QIcon::fromTheme("media-playback-stop", QIcon(QString(":/%1/stop").arg(m_theme))), i18n("Stop"));
+
connect(stopAction, &QAction::triggered, this, &AtCoreInstanceWidget::stopPrint);
connect(stopAction, &QAction::triggered, [this](){
m_printAction->setText(i18n("Print"));
- m_printAction->setIcon(QIcon::fromTheme("media-playback-start", style()->standardIcon(QStyle::SP_MediaPlay)));
+ m_printAction->setIcon(QIcon::fromTheme("media-playback-start", QIcon(QString(":/%1/start").arg(m_theme))));
});
m_mainToolBar->addAction(stopAction);
@@ -154,7 +157,7 @@
m_connectWidget->setLayout(connectLayout);
m_connectToolBar->addWidget(m_connectWidget);
- m_connectButton = new QPushButton(QIcon::fromTheme("network-connect", style()->standardIcon(QStyle::SP_DialogCloseButton)), i18n("Connect"));
+ m_connectButton = new QPushButton(QIcon::fromTheme("network-connect", QIcon(QString(":/%1/connect").arg(m_theme))), i18n("Connect"));
m_connectButton->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed);
connect(this, &AtCoreInstanceWidget::disableDisconnect, m_connectButton, &QPushButton::setDisabled);
connect(m_connectButton, &QPushButton::clicked, this, &AtCoreInstanceWidget::connectButtonClicked);
@@ -311,7 +314,7 @@
case AtCore::CONNECTING: {
m_core.setSerialTimerInterval(0);
m_connectButton->setText(i18n("Disconnect"));
- m_connectButton->setIcon(QIcon::fromTheme("network-disconnect"));
+ m_connectButton->setIcon(QIcon::fromTheme("network-disconnect", QIcon(QString(":/%1/disconnect").arg(m_theme))));
m_connectToolBar->setHidden(true);
m_mainToolBar->setHidden(false);
stateString = i18n("Connecting...");
@@ -332,7 +335,7 @@
ui->logWidget->addLog(i18n("Serial disconnected"));
m_core.setSerialTimerInterval(100);
m_connectButton->setText(i18n("Connect"));
- m_connectButton->setIcon(QIcon::fromTheme("network-connect"));
+ m_connectButton->setIcon(QIcon::fromTheme("network-connect",QIcon(QString(":/%1/connect").arg(m_theme))));
m_connectToolBar->setHidden(false);
m_mainToolBar->setHidden(true);
enableControls(false);
@@ -347,18 +350,18 @@
ui->printProgressWidget->setVisible(false);
disconnect(&m_core, &AtCore::printProgressChanged, ui->printProgressWidget, &PrintProgressWidget::updateProgressBar);
m_printAction->setText(i18n("Print"));
- m_printAction->setIcon(QIcon::fromTheme("document-edit", style()->standardIcon(QStyle::SP_MediaPlay)));
+ m_printAction->setIcon(QIcon::fromTheme("media-playback-start", QIcon(QString(":/%1/start").arg(m_theme))));
} break;
case AtCore::BUSY: {
stateString = i18n("Printing");
emit disableDisconnect(true);
m_printAction->setText(i18n("Pause"));
- m_printAction->setIcon(QIcon::fromTheme("media-playback-pause", style()->standardIcon(QStyle::SP_MediaPause)));
+ m_printAction->setIcon(QIcon::fromTheme("media-playback-pause", QIcon(QString(":/%1/pause").arg(m_theme))));
} break;
case AtCore::PAUSE: {
stateString = i18n("Paused");
m_printAction->setText(i18n("Resume"));
- m_printAction->setIcon(QIcon::fromTheme("media-playback-start", style()->standardIcon(QStyle::SP_MediaPlay)));
+ m_printAction->setIcon(QIcon::fromTheme("media-playback-start", QIcon(QString(":/%1/start").arg(m_theme))));
} break;
case AtCore::STOP: {
stateString = i18n("Stoping Print");