"""
Module for configuring the icon theme and setting icons for various UI elements.
This module contains the ConfigIconUI class, which provides methods for setting up the icon theme
and configuring icons for different UI elements in the application.
Classes:
ConfigIconUI: A class for configuring the icon theme and setting icons for UI elements.
"""
import os
from PyQt6 import QtGui, QtCore, QtWidgets
[docs]
class ConfigIconUI:
"""
Class for configuring the icon theme and setting icons for UI elements.
Attributes:
_ui_object: The main user interface object of the application.
Methods:
__init__(self, ui_main_window): Initializes the ConfigIconUI object with the given main_ui object.
setup_icon_theme(self, theme): Sets the color theme for the main window of the application.
_set_icon_for_dark_mode_theme(self): Sets the UI to dark mode by changing the icons and logo to dark mode.
_set_icon_for_light_mode_theme(self): Changes the application's icons to a light theme.
"""
[docs]
def __init__(self, ui_main_window):
"""
Initialize the MoilApp object with the given main_ui object.
Arg:
main_ui: A reference to the main user interface object of the application.
Return:
None.
"""
super().__init__()
self._ui_object = ui_main_window
current_directory = os.path.abspath(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))
QtCore.QDir.addSearchPath("icons", current_directory + "/assets/icons")
self._ui_object.label_result.setPixmap(QtGui.QPixmap("icons:moilapp.svg"))
self._ui_object.frame_image_original.setMinimumSize(QtCore.QSize(0, 200))
self._ui_object.checkbox_flip.setChecked(False)
self._ui_object.label_image_original.setPixmap(QtGui.QPixmap("icons:moilapp.svg"))
label = QtWidgets.QLabel()
label.setText(" MoilApp v4.1 (c) 2024 ")
self._ui_object.statusBar.addPermanentWidget(label)
[docs]
def setup_icon_theme(self, theme):
"""
Set the color theme for the main window of the application.
Arg:
theme (str): The color theme to apply. Should be either "dark" or "light".
"""
if theme == "light":
self._set_icon_for_light_mode_theme()
else:
self._set_icon_for_dark_mode_theme()
[docs]
def _set_icon_for_dark_mode_theme(self):
"""
Set the UI to dark mode by changing the icons and logo to dark mode.
This function sets the icons of the UI buttons to the dark mode icons and
the logo to the dark mode logo. It is called when the user switches the
UI to the dark mode.
"""
self._ui_object.label_logo.setPixmap(QtGui.QPixmap("icons:light/moil.svg"))
self._ui_object.label_logo.setScaledContents(True)
self._ui_object.btn_open_media.setIcon(
QtWidgets.QApplication.style().standardIcon(QtWidgets.QStyle.StandardPixmap.SP_DialogOpenButton))
self._ui_object.extra_left_close_button.setIcon(QtGui.QIcon("icons:light/cil-x.svg"))
self._ui_object.rotate_left_button.setIcon(QtGui.QIcon("icons:light/rotate-ccw.svg"))
self._ui_object.rotate_right_button.setIcon(QtGui.QIcon("icons:light/rotate-cw.svg"))
self._ui_object.zoom_out_button.setIcon(QtGui.QIcon("icons:light/minus.svg"))
self._ui_object.zoom_in_button.setIcon(QtGui.QIcon("icons:light/plus.svg"))
self._ui_object.reset_view_button.setIcon(QtGui.QIcon("icons:light/reset.svg"))
self._ui_object.open_in_new_window_plugins.setIcon(QtGui.QIcon("icons:light/new_window.svg"))
self._ui_object.add_plugins_button.setIcon(QtGui.QIcon("icons:light/plugin.svg"))
self._ui_object.delete_plugins_button.setIcon(QtGui.QIcon("icons:light/trash.svg"))
self._ui_object.close_plugin_button.setIcon(QtGui.QIcon("icons:light/logout.svg"))
self._ui_object.help_plugins_button.setIcon(QtGui.QIcon("icons:light/help.svg"))
self._ui_object.pushButton_any_up.setText("")
self._ui_object.btn_record_screen.setIcon(QtGui.QIcon("icons:light/record-screen.svg"))
self._ui_object.btn_about_us.setIcon(QtGui.QIcon("icons:light/user.svg"))
self._ui_object.play_pause_button.setIcon(QtGui.QIcon("icons:light/play.svg"))
self._ui_object.rewind_button.setIcon(QtGui.QIcon("icons:light/rewind.svg"))
self._ui_object.stop_button.setIcon(QtGui.QIcon("icons:light/square.svg"))
self._ui_object.forward_button.setIcon(QtGui.QIcon("icons:light/forward.svg"))
self._ui_object.screenshoot_button.setIcon(QtGui.QIcon("icons:light/maximize.svg"))
self._ui_object.record_button.setIcon(QtGui.QIcon("icons:light/video.svg"))
self._ui_object.pushButton_any_up.setIcon(QtGui.QIcon("icons:light/up.svg"))
self._ui_object.pushButton_any_left.setIcon(QtGui.QIcon("icons:light/left.svg"))
self._ui_object.pushButton_any_right.setIcon(QtGui.QIcon("icons:light/right.svg"))
self._ui_object.pushButton_any_bottom.setIcon(QtGui.QIcon("icons:light/down.svg"))
self._ui_object.pushButton_any_center.setIcon(QtGui.QIcon("icons:light/center.svg"))
[docs]
def _set_icon_for_light_mode_theme(self):
"""
Change the application's icons to a light theme.
"""
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap("icons:github.svg"), QtGui.QIcon.Mode.Normal,
QtGui.QIcon.State.Off)
self._ui_object.github_button.setIcon(icon)
self._ui_object.btn_open_media.setIcon(QtGui.QIcon("icons:opened-folder.svg"))
self._ui_object.btn_recent_media.setIcon(QtGui.QIcon("icons:opened-folder.svg"))
self._ui_object.label_logo.setPixmap(QtGui.QPixmap("icons:moil.svg"))
self._ui_object.label_logo.setScaledContents(True)
self._ui_object.label_10.setPixmap(QtGui.QPixmap("icons:mouse-pointer.svg"))
self._ui_object.label_10.setScaledContents(True)
self._ui_object.label_19.setPixmap(QtGui.QPixmap("icons:mouse-pointer.svg"))
self._ui_object.label_19.setScaledContents(True)
self._ui_object.extra_left_close_button.setIcon(QtGui.QIcon("icons:x.svg"))
self._ui_object.rotate_left_button.setIcon(QtGui.QIcon("icons:rotate-ccw.svg"))
self._ui_object.rotate_right_button.setIcon(QtGui.QIcon("icons:rotate-cw.svg"))
self._ui_object.zoom_out_button.setIcon(QtGui.QIcon("icons:minus.svg"))
self._ui_object.zoom_in_button.setIcon(QtGui.QIcon("icons:plus.svg"))
self._ui_object.reset_view_button.setIcon(QtGui.QIcon("icons:reset.svg"))
self._ui_object.close_plugin_button.setIcon(QtGui.QIcon("icons:logout.svg"))
self._ui_object.btn_record_screen.setText("")
self._ui_object.btn_record_screen.setIcon(QtGui.QIcon("icons:record-screen_black.svg"))
self._ui_object.btn_about_us.setIcon(QtGui.QIcon("icons:user.svg"))
self._ui_object.open_in_new_window_plugins.setIcon(QtGui.QIcon("icons:new_window.svg"))
self._ui_object.add_plugins_button.setIcon(QtGui.QIcon("icons:plugins.svg"))
self._ui_object.delete_plugins_button.setIcon(QtGui.QIcon("icons:trash.svg"))
self._ui_object.help_plugins_button.setIcon(QtGui.QIcon("icons:info.svg"))
self._ui_object.play_pause_button.setIcon(QtGui.QIcon("icons:play.svg"))
self._ui_object.rewind_button.setIcon(QtGui.QIcon("icons:rewind.svg"))
self._ui_object.stop_button.setIcon(QtGui.QIcon("icons:square.svg"))
self._ui_object.forward_button.setIcon(QtGui.QIcon("icons:forward.svg"))
self._ui_object.screenshoot_button.setIcon(QtGui.QIcon("icons:maximize.svg"))
self._ui_object.record_button.setIcon(QtGui.QIcon("icons:video.svg"))
self._ui_object.pushButton_any_up.setText("")
self._ui_object.pushButton_any_up.setIcon(QtGui.QIcon("icons:up.svg"))
self._ui_object.pushButton_any_left.setText("")
self._ui_object.pushButton_any_left.setIcon(QtGui.QIcon("icons:left.svg"))
self._ui_object.pushButton_any_right.setText("")
self._ui_object.pushButton_any_right.setIcon(QtGui.QIcon("icons:right.svg"))
self._ui_object.pushButton_any_bottom.setText("")
self._ui_object.pushButton_any_bottom.setIcon(QtGui.QIcon("icons:down.svg"))
self._ui_object.pushButton_any_center.setText("")
self._ui_object.pushButton_any_center.setIcon(QtGui.QIcon("icons:center.svg"))