diff --git a/bec_widgets/assets/bec_widgets_icon.png b/bec_widgets/assets/app_icons/bec_widgets_icon.png
similarity index 100%
rename from bec_widgets/assets/bec_widgets_icon.png
rename to bec_widgets/assets/app_icons/bec_widgets_icon.png
diff --git a/bec_widgets/assets/terminal_icon.png b/bec_widgets/assets/app_icons/terminal_icon.png
similarity index 100%
rename from bec_widgets/assets/terminal_icon.png
rename to bec_widgets/assets/app_icons/terminal_icon.png
diff --git a/bec_widgets/assets/toolbar_icons/add.svg b/bec_widgets/assets/toolbar_icons/add.svg
new file mode 100644
index 00000000..e4e88e5c
--- /dev/null
+++ b/bec_widgets/assets/toolbar_icons/add.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/bec_widgets/widgets/waveform/assets/export.svg b/bec_widgets/assets/toolbar_icons/export.svg
similarity index 100%
rename from bec_widgets/widgets/waveform/assets/export.svg
rename to bec_widgets/assets/toolbar_icons/export.svg
diff --git a/bec_widgets/widgets/waveform/assets/import.svg b/bec_widgets/assets/toolbar_icons/import.svg
similarity index 100%
rename from bec_widgets/widgets/waveform/assets/import.svg
rename to bec_widgets/assets/toolbar_icons/import.svg
diff --git a/bec_widgets/assets/toolbar_icons/line_axis.svg b/bec_widgets/assets/toolbar_icons/line_axis.svg
new file mode 100644
index 00000000..fbf2bf4b
--- /dev/null
+++ b/bec_widgets/assets/toolbar_icons/line_axis.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/bec_widgets/widgets/waveform/waveform_toolbar/curve_dialog/remove.svg b/bec_widgets/assets/toolbar_icons/remove.svg
similarity index 100%
rename from bec_widgets/widgets/waveform/waveform_toolbar/curve_dialog/remove.svg
rename to bec_widgets/assets/toolbar_icons/remove.svg
diff --git a/bec_widgets/assets/toolbar_icons/save.svg b/bec_widgets/assets/toolbar_icons/save.svg
new file mode 100644
index 00000000..14e60e8a
--- /dev/null
+++ b/bec_widgets/assets/toolbar_icons/save.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/bec_widgets/widgets/waveform/assets/settings.svg b/bec_widgets/assets/toolbar_icons/settings.svg
similarity index 100%
rename from bec_widgets/widgets/waveform/assets/settings.svg
rename to bec_widgets/assets/toolbar_icons/settings.svg
diff --git a/bec_widgets/cli/server.py b/bec_widgets/cli/server.py
index 4e3519a2..e53ed73f 100644
--- a/bec_widgets/cli/server.py
+++ b/bec_widgets/cli/server.py
@@ -202,7 +202,8 @@ def main():
module_path = os.path.dirname(bec_widgets.__file__)
icon = QIcon()
icon.addFile(
- os.path.join(module_path, "assets", "bec_widgets_icon.png"), size=QSize(48, 48)
+ os.path.join(module_path, "assets", "app_icons", "bec_widgets_icon.png"),
+ size=QSize(48, 48),
)
app.setWindowIcon(icon)
diff --git a/bec_widgets/examples/jupyter_console/jupyter_console_window.py b/bec_widgets/examples/jupyter_console/jupyter_console_window.py
index ed3ec96f..a49ec7be 100644
--- a/bec_widgets/examples/jupyter_console/jupyter_console_window.py
+++ b/bec_widgets/examples/jupyter_console/jupyter_console_window.py
@@ -201,7 +201,9 @@ if __name__ == "__main__": # pragma: no cover
app.setApplicationDisplayName("Jupyter Console")
apply_theme("dark")
icon = QIcon()
- icon.addFile(os.path.join(module_path, "assets", "terminal_icon.png"), size=QSize(48, 48))
+ icon.addFile(
+ os.path.join(module_path, "assets", "app_icons", "terminal_icon.png"), size=QSize(48, 48)
+ )
app.setWindowIcon(icon)
bec_dispatcher = BECDispatcher()
diff --git a/bec_widgets/widgets/waveform/assets/line_axis.svg b/bec_widgets/widgets/waveform/assets/line_axis.svg
deleted file mode 100644
index e0e713e0..00000000
--- a/bec_widgets/widgets/waveform/assets/line_axis.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
\ No newline at end of file
diff --git a/bec_widgets/widgets/waveform/waveform_toolbar/curve_dialog/curve_dialog.py b/bec_widgets/widgets/waveform/waveform_toolbar/curve_dialog/curve_dialog.py
index 9436bb3a..7062f041 100644
--- a/bec_widgets/widgets/waveform/waveform_toolbar/curve_dialog/curve_dialog.py
+++ b/bec_widgets/widgets/waveform/waveform_toolbar/curve_dialog/curve_dialog.py
@@ -3,19 +3,20 @@ from __future__ import annotations
import os
from typing import Literal
-from PySide6.QtCore import QObject
-from PySide6.QtGui import QIcon
-from PySide6.QtWidgets import QComboBox, QLineEdit, QPushButton, QSpinBox, QTableWidget
from pydantic import BaseModel
-from qtpy.QtCore import Slot
-from qtpy.QtWidgets import QVBoxLayout
+from qtpy.QtCore import QObject, QSize, Slot
+from qtpy.QtGui import QIcon
+from qtpy.QtWidgets import QComboBox, QLineEdit, QPushButton, QSpinBox, QTableWidget, QVBoxLayout
+import bec_widgets
from bec_widgets.qt_utils.error_popups import WarningPopupUtility
from bec_widgets.qt_utils.settings_dialog import SettingWidget
from bec_widgets.utils import Colors, UILoader
from bec_widgets.widgets.color_button.color_button import ColorButton
from bec_widgets.widgets.device_line_edit.device_line_edit import DeviceLineEdit
+MODULE_PATH = os.path.dirname(bec_widgets.__file__)
+
class CurveSettings(SettingWidget):
def __init__(self, parent=None, *args, **kwargs):
@@ -23,6 +24,7 @@ class CurveSettings(SettingWidget):
current_path = os.path.dirname(__file__)
self.ui = UILoader(self).loader(os.path.join(current_path, "curve_dialog.ui"))
+ self._setup_icons()
self.warning_util = WarningPopupUtility(self)
@@ -35,6 +37,16 @@ class CurveSettings(SettingWidget):
self.ui.normalize_colors_scan.clicked.connect(lambda: self.change_colormap("scan"))
self.ui.normalize_colors_dap.clicked.connect(lambda: self.change_colormap("dap"))
+ def _setup_icons(self):
+ add_icon = QIcon()
+ add_icon.addFile(
+ os.path.join(MODULE_PATH, "assets", "toolbar_icons", "add.svg"), size=QSize(20, 20)
+ )
+ self.ui.add_dap.setIcon(add_icon)
+ self.ui.add_dap.setToolTip("Add DAP Curve")
+ self.ui.add_curve.setIcon(add_icon)
+ self.ui.add_curve.setToolTip("Add Scan Curve")
+
@Slot(dict)
def display_current_settings(self, config: dict | BaseModel):
@@ -323,6 +335,5 @@ class StyleComboBox(QComboBox):
class RemoveButton(QPushButton):
def __init__(self, parent=None):
super().__init__(parent)
- current_path = os.path.dirname(__file__)
- icon_path = os.path.join(current_path, "remove.svg")
+ icon_path = os.path.join(MODULE_PATH, "assets", "toolbar_icons", "remove.svg")
self.setIcon(QIcon(icon_path))
diff --git a/bec_widgets/widgets/waveform/waveform_toolbar/curve_dialog/curve_dialog.ui b/bec_widgets/widgets/waveform/waveform_toolbar/curve_dialog/curve_dialog.ui
index 21402569..4ded9abf 100644
--- a/bec_widgets/widgets/waveform/waveform_toolbar/curve_dialog/curve_dialog.ui
+++ b/bec_widgets/widgets/waveform/waveform_toolbar/curve_dialog/curve_dialog.ui
@@ -171,8 +171,11 @@
-
+
+
+
- Add Curve
+
@@ -360,7 +363,7 @@
-
- Add DAP
+
diff --git a/bec_widgets/widgets/waveform/waveform_toolbar/waveform_toolbar.py b/bec_widgets/widgets/waveform/waveform_toolbar/waveform_toolbar.py
index b1bf3419..92df5bb5 100644
--- a/bec_widgets/widgets/waveform/waveform_toolbar/waveform_toolbar.py
+++ b/bec_widgets/widgets/waveform/waveform_toolbar/waveform_toolbar.py
@@ -3,44 +3,48 @@ import os
from qtpy.QtCore import QSize
from qtpy.QtGui import QAction, QIcon
+import bec_widgets
from bec_widgets.qt_utils.toolbar import ToolBarAction
+MODULE_PATH = os.path.dirname(bec_widgets.__file__)
+
class CurveAction(ToolBarAction):
def add_to_toolbar(self, toolbar, target):
- current_path = os.path.dirname(__file__)
- parent_path = os.path.dirname(current_path)
icon = QIcon()
- icon.addFile(os.path.join(parent_path, "assets", "line_axis.svg"), size=QSize(20, 20))
+ icon.addFile(
+ os.path.join(MODULE_PATH, "assets", "toolbar_icons", "line_axis.svg"),
+ size=QSize(20, 20),
+ )
self.action = QAction(icon, "Open Curves Configuration", target)
toolbar.addAction(self.action)
class SettingsAction(ToolBarAction):
def add_to_toolbar(self, toolbar, target):
- current_path = os.path.dirname(__file__)
- parent_path = os.path.dirname(current_path)
icon = QIcon()
- icon.addFile(os.path.join(parent_path, "assets", "settings.svg"), size=QSize(20, 20))
+ icon.addFile(
+ os.path.join(MODULE_PATH, "assets", "toolbar_icons", "settings.svg"), size=QSize(20, 20)
+ )
self.action = QAction(icon, "Open Configuration Dialog", target)
toolbar.addAction(self.action)
class ImportAction(ToolBarAction):
def add_to_toolbar(self, toolbar, target):
- current_path = os.path.dirname(__file__)
- parent_path = os.path.dirname(current_path)
icon = QIcon()
- icon.addFile(os.path.join(parent_path, "assets", "import.svg"), size=QSize(20, 20))
+ icon.addFile(
+ os.path.join(MODULE_PATH, "assets", "toolbar_icons", "import.svg"), size=QSize(20, 20)
+ )
self.action = QAction(icon, "Import Configuration from YAML", target)
toolbar.addAction(self.action)
class ExportAction(ToolBarAction):
def add_to_toolbar(self, toolbar, target):
- current_path = os.path.dirname(__file__)
- parent_path = os.path.dirname(current_path)
icon = QIcon()
- icon.addFile(os.path.join(parent_path, "assets", "export.svg"), size=QSize(20, 20))
+ icon.addFile(
+ os.path.join(MODULE_PATH, "assets", "toolbar_icons", "export.svg"), size=QSize(20, 20)
+ )
self.action = QAction(icon, "Export Current Configuration to YAML", target)
toolbar.addAction(self.action)
diff --git a/bec_widgets/widgets/waveform/waveform_widget.py b/bec_widgets/widgets/waveform/waveform_widget.py
index 84ae7621..6d0720bd 100644
--- a/bec_widgets/widgets/waveform/waveform_widget.py
+++ b/bec_widgets/widgets/waveform/waveform_widget.py
@@ -8,7 +8,7 @@ from qtpy.QtWidgets import QVBoxLayout, QWidget
from bec_widgets.qt_utils.error_popups import error_managed
from bec_widgets.qt_utils.settings_dialog import SettingsDialog
-from bec_widgets.qt_utils.toolbar import ModularToolBar
+from bec_widgets.qt_utils.toolbar import ModularToolBar, SeparatorAction
from bec_widgets.utils import BECConnector
from bec_widgets.widgets.figure import BECFigure
from bec_widgets.widgets.figure.plots.axis_settings import AxisSettings
@@ -67,9 +67,10 @@ class BECWaveformWidget(BECConnector, QWidget):
self.fig = BECFigure()
self.toolbar = ModularToolBar(
actions={
- # "connect": ConnectAction(),
+ "separator_1": SeparatorAction(),
"curves": CurveAction(),
"axis_settings": SettingsAction(),
+ "separator_2": SeparatorAction(),
"import": ImportAction(),
"export": ExportAction(),
},