diff --git a/audio_player.py b/audio_player.py index 0c0a014..2e9bb00 100644 --- a/audio_player.py +++ b/audio_player.py @@ -2,7 +2,7 @@ import os import sys from pydub import AudioSegment from pygame import mixer -from PyQt5.QtCore import QTimer, QTimer, pyqtSlot, QObject +from PyQt5.QtCore import QTimer, pyqtSlot, QObject import constants import qtawesome as qta diff --git a/constants.py b/constants.py index 94ecf23..c2a7afe 100644 --- a/constants.py +++ b/constants.py @@ -5,6 +5,10 @@ class Ftype(object): FREQ = "freq" BAND = "band" +class GfdType(Enum): + FREQ = auto() + LOC = auto() + class ChecksumWhat(Enum): FOLDER = auto() DB = auto() @@ -84,6 +88,7 @@ __EHF = __Band(30 * 10**9, 300 * 10**9) BANDS = (__ELF, __SLF, __ULF, __VLF, __LF, __MF, __HF, __VHF, __UHF, __SHF, __EHF) MAX_DIGITS = 3 RANGE_SEPARATOR = ' รท ' +GFD_SITE = "http://qrg.globaltuners.com/" CONVERSION_FACTORS = {"Hz" : 1, "kHz": 1000, "MHz": 1000000, diff --git a/main.py b/main.py index 4551f66..121aeaf 100644 --- a/main.py +++ b/main.py @@ -327,6 +327,11 @@ class MyApp(QMainWindow, Ui_MainWindow): fun_args = None ) + # GFD + self.freq_search_gfd_btn.clicked.connect(partial(self.go_to_gfd, constants.GfdType.FREQ)) + self.location_search_gfd_btn.clicked.connect(partial(self.go_to_gfd, constants.GfdType.LOC)) + self.gfd_line_edit.returnPressed.connect(partial(self.go_to_gfd, constants.GfdType.LOC)) + # ########################################################################################## self.load_db() @@ -364,26 +369,19 @@ class MyApp(QMainWindow, Ui_MainWindow): self.show() - def refresh_range_labels(self): - self.set_acf_interval_label() - self.set_band_filter_label(self.activate_low_band_filter_btn, - self.lower_band_spinbox, - self.lower_band_filter_unit, - self.lower_band_confidence, - self.activate_up_band_filter_btn, - self.upper_band_spinbox, - self.upper_band_filter_unit, - self.upper_band_confidence, - self.band_range_lbl) - self.set_band_filter_label(self.activate_low_freq_filter_btn, - self.lower_freq_spinbox, - self.lower_freq_filter_unit, - self.lower_freq_confidence, - self.activate_up_freq_filter_btn, - self.upper_freq_spinbox, - self.upper_freq_filter_unit, - self.upper_freq_confidence, - self.freq_range_lbl) + @pyqtSlot() + def go_to_gfd(self, by): + query = "/?q=" + if by == constants.GfdType.FREQ: + value_in_mhz = self.freq_gfd.value() * constants.CONVERSION_FACTORS[self.unit_freq_gfd.currentText()] / constants.CONVERSION_FACTORS["MHz"] + query += str(value_in_mhz) + elif by == constants.GfdType.LOC: + query += self.gfd_line_edit.text() + try: + webbrowser.open(constants.GFD_SITE + query.lower()) + except: + pass + @pyqtSlot(QListWidgetItem) def remove_if_unselected_modulation(self, item): @@ -969,4 +967,4 @@ if __name__ == '__main__': sleep(2) w = MyApp() splash.finish(w) - sys.exit(my_app.exec_()) \ No newline at end of file + sys.exit(my_app.exec_()) diff --git a/main_window.ui b/main_window.ui index 4f9ac84..6fc624e 100644 --- a/main_window.ui +++ b/main_window.ui @@ -19,6 +19,10 @@ ARTEMIS3 + + + splash.jpgsplash.jpg + @@ -174,7 +178,7 @@ QTabWidget::Rounded - 0 + 2 true @@ -1771,7 +1775,7 @@ p, li { white-space: pre-wrap; } - 0 + 4 true @@ -4194,6 +4198,400 @@ Inactive + + + GFD + + + + + + + + + 20 + 75 + true + + + + Search on Global Frequencies Database + +www.qrg.globaltuners.com + + + Qt::AlignCenter + + + + + + + Qt::Vertical + + + QSizePolicy::Minimum + + + + 20 + 100 + + + + + + + + + 15 + 75 + true + + + + Search by + + + Qt::AlignCenter + + + + + + + + + Qt::Vertical + + + QSizePolicy::Minimum + + + + 20 + 80 + + + + + + + + Qt::Horizontal + + + + 37 + 20 + + + + + + + + + + + + + 12 + 75 + true + + + + Frequency + + + Qt::AlignCenter + + + + + + + Qt::Vertical + + + QSizePolicy::Minimum + + + + 20 + 40 + + + + + + + + + + true + + + + 0 + 0 + + + + + 100 + 0 + + + + + 100 + 16777215 + + + + + 12 + + + + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1 + + + 100000000 + + + 100 + + + + + + + true + + + + 0 + 0 + + + + + 60 + 0 + + + + + 16777215 + 16777215 + + + + + 12 + 75 + true + + + + + + + MHz + + + 4 + + + false + + + 0 + + + + MHz + + + + + Hz + + + + + kHz + + + + + GHz + + + + + + + + + + Qt::Vertical + + + QSizePolicy::MinimumExpanding + + + + 20 + 20 + + + + + + + + + 15 + 75 + true + + + + Search + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + 12 + 75 + true + + + + Location/Callsign + + + Qt::AlignCenter + + + + + + + Qt::Vertical + + + QSizePolicy::Minimum + + + + 20 + 40 + + + + + + + + + 12 + + + + + + + + Qt::Vertical + + + QSizePolicy::MinimumExpanding + + + + 20 + 20 + + + + + + + + + 15 + 75 + true + + + + Search + + + + + + + + + + + Qt::Horizontal + + + + 37 + 20 + + + + + + + + Qt::Vertical + + + + 20 + 34 + + + + + + diff --git a/themes.py b/themes.py index 7973af1..88e1988 100644 --- a/themes.py +++ b/themes.py @@ -18,7 +18,7 @@ class ThemeConstants(object): DEFAULT_ACTIVE_COLOR = "#39eaff" DEFAULT_INACTIVE_COLOR = "#9f9f9f" THEME_NOT_FOUND = "Theme not found" - MISSING_THEME = "Missing theme in " + FOLDER + " folder." + MISSING_THEME = "Missing theme in '" + FOLDER + "' folder." class Theme(object): def __init__(self, parent): diff --git a/themes/2-dark/colors.txt b/themes/2-dark/colors.txt new file mode 100644 index 0000000..6050d7d --- /dev/null +++ b/themes/2-dark/colors.txt @@ -0,0 +1,2 @@ +active=#4da6ff +inactive=#546E7A diff --git a/themes/2-dark/dark.qss b/themes/2-dark/dark.qss index 82622f4..cdc3f79 100644 --- a/themes/2-dark/dark.qss +++ b/themes/2-dark/dark.qss @@ -1,239 +1,462 @@ +/************************************* +Main Window and Splitters +**************************************/ +QWidget:window { + background-color: #232629; +} + +QSplitter::handle { + background-color: transparent; +} + +/************************************* +Main menu (Bar) +**************************************/ QMenuBar { - color: rgb(255, 255, 255); + background-color: transparent; + color: #AFBDC4; +} + +QMenuBar::item { + background-color: transparent; +} + +QMenuBar::item:disabled { + color: gray; } QMenuBar::item:selected { - background:#999999; - color: #1d5eff + color: #FFFFFF; + border-bottom: 2px solid #4545e5; } -QMenu::item:selected { - background-color: #999999; - color: #1d5eff +QMenuBar::item:pressed { + color: #FFFFFF; + border-bottom: 2px solid #4545e5; +} + +QToolBar { + background-color: transparent; + border: 1px solid transparent; +} + +QToolBar:handle { + background-color: transparent; + border-left: 2px dotted #80CBC4; + color: transparent; +} + +QToolBar::separator { + border: 0; } QMenu { - color: #ffffff; + background-color: #263238; + color: #AFBDC4; } -QWidget { - background-color: #464646 -} - -QLabel { - color: #ffffff; -} - -QPushButton { +QMenu::item:selected { color: #FFFFFF; - background-color: rgb(52,52,52); - border: 1px solid gray; - border-radius: 5px; } -QPushButton:!enabled { - color:#9f9f9f; +QMenu::item:pressed { + color: #FFFFFF; } -QPushButton:checked { - color: #39eaff; +QMenu::separator { + background-color: transparent; + height: 1px; + margin-left: 10px; + margin-right: 10px; + margin-top: 5px; + margin-bottom: 5px; } -QTabWidget::pane { /* The tab widget frame */ - /* border-left: 1px solid gray;*/ - border: 0px; +/************************************* +TabBar +**************************************/ +QTabBar { + background: transparent; } - -QTabWidget::tab-bar { - left: 30px; /* move to the right by 5px */ +QTabWidget::pane { + border: 0px solid transparent; + background: transparent; } - -/* Style the tab using the tab sub-control. Note that - it reads QTabBar _not_ QTabWidget */ QTabBar::tab { - background: #7a7a7a; - border-top-left-radius: 8px; - border-top-right-radius: 8px; - min-width: 16ex; - padding: 2px; - color: #FFFFFF + background-color: transparent; + border: 0px solid transparent; + border-radius: 10px; + color: #AFBDC4; + padding-left: 10px; + padding-right: 10px; + padding-top: 3px; + padding-bottom: 3px; +} + +QTabBar::tab:hover { + background: #4545e5; + color: #FFFFFF; } QTabBar::tab:selected { - background: #999999; - color: #1d5eff + background: #4545e5; + color: #FFFFFF; } - -QTabBar::tab:!selected { - margin-top: 3px; /* make non-selected tabs look smaller */ +QStackedWidget { + background: #232629; } - - -QProgressBar { - border: 2px #7a7a7a; - border-radius: 3px; - background-color: #7a7a7a; +/************************************* +Progressbar +**************************************/ +QProgressBar +{ + border: 2px solid grey; + border-radius: 5px; + text-align: center; } -QProgressBar::chunk { - /*background-color: #1d5eff;*/ - background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #1d5eff, stop:0.5 #4177ff, stop:1 #1d5eff); - border-radius: 3px; +QProgressBar::chunk +{ + background-color: #88cc00; + width: 2.15px; + margin: 0.5px; } - -QAbstractScrollArea::corner { - background: none; - border: none; +/************************************* +Labels and Rich Text boxes +**************************************/ +QLabel { + background-color: transparent; + color: #CFD8DC; } -QScrollBar:vertical, QScrollBar:horizontal{ - background-color:#343434; - border-radius: 5px; - /*background: none;*/ +QDialog { + background-color: transparent; + color: #949a9c; +} + +QTextBrowser { + background-color: transparent; + color: #949a9c; +} + +/************************************* +Search Bar +**************************************/ +QLineEdit { + border: 2px solid #4545e5 ; + border-radius: 10px; + background-color: transparent; + color: #CFD8DC; +} + +QLineEdit:hover { + border-width: 1px; + border-radius: 10px; + border-style: solid; + border-color: #4545e5 ; +} + +QLineEdit:focus { + border-width: 1px; + border-radius: 10px; + border-style: solid; + border-color: #4545e5 ; +} + +/************************************* +Scroll bars +**************************************/ +QScrollBar:horizontal { + background: transparent; + height: 10px; + margin: 0; } QScrollBar:vertical { - margin-top: 0px; - margin-bottom: 0px; - /*width: 10px;*/ -} -QScrollBar:horizontal{ - margin-left: 0px; - margin-right: 0px; - /*height: 10px;*/ -} - -QScrollBar::handle:vertical, QScrollBar::handle:horizontal{ - border-radius: 5px; - border-color: none; - border-width: 1px; - background-color: #999999; -} - -QScrollBar::add-line:vertical, QScrollBar::add-line:horizontal{ - width: 0px; - height: 0px; -} - -QScrollBar::sub-line:vertical, QScrollBar::sub-line:horizontal{ - width: 0px; - height: 0px; -} - -QScrollBar::add-page:vertical{ - border-left: 1px solid gray; background: transparent; + width: 10px; + margin: 0; +} + +QScrollBar::handle:horizontal { + background: #374146; + min-width: 16px; border-radius: 5px; -/* - border: 1px#343434; - background-color: #343434;*/ } -QScrollBar::add-page:horizontal{ - border-top: 1px solid gray; - background: transparent; + +QScrollBar::handle:vertical { + background: #374146; + min-height: 16px; border-radius: 5px; -/* - border: 1px#343434; - background-color: #343434;*/ -} -QScrollBar::sub-page:vertical{ - border-left: 1px solid gray; - background: transparent; - border-radius: 5px; -/* border: 1px #343434; - background-color: #343434;*/ -} -QScrollBar::sub-page:horizontal{ - border-top: 1px solid gray; - background: transparent; - border-radius: 5px; -/* border: 1px #343434; - background-color: #343434;*/ } -QTextEdit{ - color: #ffffff; +QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal, +QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + background: none; } -QMessageBox { - color: #ffffff; -} - -QToolTip { - color: #000000; -} - -QTextBrowser { - background-color: #464646; - color: #ffffff; - border: 0px; -} - -QRadioButton { - color: #ffffff; +QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal, +QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical { + border: none; + background: none; } +/************************************* +List +**************************************/ QListWidget { - background-color:rgb(52,52,52); - color: rgb(255, 255, 255); - border: 1px solid gray; - border-radius: 8px; + background-color: transparent; + border: 0px solid transparent; + border-bottom: 2px solid #80CBC4; + color: #AFBDC4; } -QLineEdit { - background-color: #343434; - color: rgb(255, 255, 255); - border: 1px solid gray; - border-radius: 5px; +QListView { + background-color: transparent; + color: #AFBDC4; + outline: 0; + border: 0px solid transparent; +} +QListView::item:hover { + color: #FFFFFF; + background: transparent; } +QListView::item:selected { + color: #4545e5; + background: transparent; +} + +QListView::item:disabled { + color: #546E7A; + background: transparent; +} + +QListView::item:disabled:selected { + color: #88cc00; + background: transparent; +} + +/************************************* +Buttons +**************************************/ +QPushButton { + background-color: transparent; + color: #AFBDC4; + border: 1px solid transparent; + padding: 4px 22px; +} + +QPushButton:hover { + border: 2px dashed #4545e5; + border-radius: 13px; + color: #FFFFFF; +} + +QPushButton:pressed { + color: #FFFFFF; +} + +QPushButton:disabled { + color:#546E7A; +} + +QPushButton:checked { + color: #4545e5; +} + +/************************************* +ComboBox +**************************************/ QComboBox { - background-color: rgb(52,52,52); - color: #ffffff; - border: 1px solid gray; - border-radius: 5px; + border: 0px solid transparent; + border-radius: 2px; + padding: 1px 6px 1px 6px; + min-width: 2em; } -QComboBox:!enabled { - color: #9f9f9f; +QComboBox:!editable { + selection-background-color: transparent; + color: #AFBDC4; + selection-color: #FFFFFF; + background-color: transparent; +} + +QComboBox:disabled { + color: #546E7A; +} + +QComboBox:!editable:on, QComboBox::drop-down:editable:on { + color: #AFBDC4; + background-color: transparent; + selection-background-color: transparent; +} + +QComboBox:on { + padding-top: 3px; + padding-left: 4px; +} + +QComboBox::drop-down { + background-color: transparent; + subcontrol-origin: padding; + subcontrol-position: top right; + width: 20px; + border-top-right-radius: 2px; + border-bottom-right-radius: 2px; +} + +QComboBox::down-arrow:enabled { + image: url("./themes/2-dark/icons/down-arrow.png"); +} + +QComboBox::down-arrow:disabled { + image: url("./themes/2-dark/icons/down-arrow_off.png"); +} + +QComboBox::down-arrow:hover { + image: url("./themes/2-dark/icons/down-arrow_hover.png"); +} + +QComboBox::down-arrow:on { + top: 1px; + left: 1px; } QComboBox QAbstractItemView { - border: 1px solid gray; - selection-background-color: #999999; - selection-color: #1d5eff; - color: #ffffff; +background-color: #232629; } +/************************************* +RadioButton +**************************************/ +QRadioButton{ + color: #AFBDC4; +} + +QRadioButton:disabled{ + color: #546E7A; +} + +QRadioButton::indicator{ + width: 50px; + height: 50px; +} + +QRadioButton::indicator::unchecked { + image: url("./themes/2-dark/icons/off.png"); +} + +QRadioButton::indicator:unchecked:hover { + image: url("./themes/2-dark/icons/off_press.png"); +} + +QRadioButton::indicator:unchecked:pressed { + image: url("./themes/2-dark/icons/off_press.png"); +} + +QRadioButton::indicator::checked { + image: url("./themes/2-dark/icons/on.png"); +} + +QRadioButton::indicator:checked:hover { + image: url("./themes/2-dark/icons/on_press.png"); +} + +QRadioButton::indicator:checked:pressed { + image: url("./themes/2-dark/icons/on_press.png"); +} + +/************************************* +SpinBox +**************************************/ QSpinBox { - background-color: rgb(52,52,52); - color: #ffffff; - border: 1px solid gray; - border-radius: 5px; + background-color: transparent; + color: #AFBDC4; + border-width: 0px; } -QSpinBox:!enabled { - color:#9f9f9f; +QSpinBox:disabled { + color: #546E7A; + border-width: 0px; } -/* SPECIAL WIDGETS */ -QPushButton#url_button { - color: #9f9f9f; - border: 0px; - background-color: #464646; +QSpinBox::up-button { + subcontrol-origin: border; + subcontrol-position: top right; + width: 16px; + image: url("./themes/2-dark/icons/up-arrow.png"); + border-width: 0px; } -QPushButton#play, QPushButton#pause, QPushButton#stop { - color: #464646; - border: 0px; - background-color: #464646; +QSpinBox::up-button:hover { + image: url("./themes/2-dark/icons/up-arrow_hover.png"); } -QLabel#band_range_lbl { - color: #9f9f9f; +QSpinBox::up-button:pressed { + image: url("./themes/2-dark/icons/up-arrow.png"); +} + +QSpinBox::up-button:disabled { + image: url("./themes/2-dark/icons/up-arrow_off.png"); +} + +QSpinBox::down-button { + subcontrol-origin: border; + subcontrol-position: bottom right; + width: 16px; + image: url("./themes/2-dark/icons/down-arrow.png"); + border-width: 0px; + border-top-width: 0; +} + +QSpinBox::down-button:hover { + image: url("./themes/2-dark/icons/down-arrow_hover.png"); +} + +QSpinBox::down-button:pressed { + image: url("./themes/2-dark/icons/down-arrow.png"); +} + +QSpinBox::down-button:disabled { + image: url("./themes/2-dark/icons/down-arrow_off.png"); +} + +/************************************* +TreeViewMenu (Mode) +**************************************/ +QTreeView { + background-color: transparent; + selection-background-color: transparent; +} + +QTreeView::item { + background-color: transparent; + color: #AFBDC4; +} + +QTreeView::item:hover { + border-right: 2px solid #4545e5; + color: #FFFFFF; +} + +QTreeView::item:selected { + color: #4545e5; +} + +QTreeView::item:active{ + background: transparent; +} + +QTreeView::item:disabled{ + color: #546E7A; +} + +QTreeView::item:selected:disabled{ + color: #4545e5; } diff --git a/themes/2-dark/icons/down-arrow.png b/themes/2-dark/icons/down-arrow.png new file mode 100644 index 0000000..b2cd4a5 Binary files /dev/null and b/themes/2-dark/icons/down-arrow.png differ diff --git a/themes/2-dark/icons/down-arrow_hover.png b/themes/2-dark/icons/down-arrow_hover.png new file mode 100644 index 0000000..f7ad171 Binary files /dev/null and b/themes/2-dark/icons/down-arrow_hover.png differ diff --git a/themes/2-dark/icons/down-arrow_off.png b/themes/2-dark/icons/down-arrow_off.png new file mode 100644 index 0000000..e7f0af3 Binary files /dev/null and b/themes/2-dark/icons/down-arrow_off.png differ diff --git a/themes/2-dark/icons/off.png b/themes/2-dark/icons/off.png new file mode 100644 index 0000000..ef39d9e Binary files /dev/null and b/themes/2-dark/icons/off.png differ diff --git a/themes/2-dark/icons/off_press.png b/themes/2-dark/icons/off_press.png new file mode 100644 index 0000000..3355d12 Binary files /dev/null and b/themes/2-dark/icons/off_press.png differ diff --git a/themes/2-dark/icons/on.png b/themes/2-dark/icons/on.png new file mode 100644 index 0000000..2244ffe Binary files /dev/null and b/themes/2-dark/icons/on.png differ diff --git a/themes/2-dark/icons/on_press.png b/themes/2-dark/icons/on_press.png new file mode 100644 index 0000000..4754508 Binary files /dev/null and b/themes/2-dark/icons/on_press.png differ diff --git a/themes/2-dark/icons/search_icon.png b/themes/2-dark/icons/search_icon.png new file mode 100644 index 0000000..dd0ec52 Binary files /dev/null and b/themes/2-dark/icons/search_icon.png differ diff --git a/themes/2-dark/icons/up-arrow.png b/themes/2-dark/icons/up-arrow.png new file mode 100644 index 0000000..6f0f090 Binary files /dev/null and b/themes/2-dark/icons/up-arrow.png differ diff --git a/themes/2-dark/icons/up-arrow_hover.png b/themes/2-dark/icons/up-arrow_hover.png new file mode 100644 index 0000000..149eae0 Binary files /dev/null and b/themes/2-dark/icons/up-arrow_hover.png differ diff --git a/themes/2-dark/icons/up-arrow_off.png b/themes/2-dark/icons/up-arrow_off.png new file mode 100644 index 0000000..ac2217f Binary files /dev/null and b/themes/2-dark/icons/up-arrow_off.png differ diff --git a/themes/2-dark/icons/volume.png b/themes/2-dark/icons/volume.png new file mode 100644 index 0000000..88e4c7e Binary files /dev/null and b/themes/2-dark/icons/volume.png differ diff --git a/themes/3-material_design_dark/colors.txt b/themes/3-material_design_dark/colors.txt new file mode 100644 index 0000000..7c4ba0a --- /dev/null +++ b/themes/3-material_design_dark/colors.txt @@ -0,0 +1,2 @@ +active=#88cc00 +inactive=#546E7A diff --git a/themes/3-material_design_dark/icons/down-arrow.png b/themes/3-material_design_dark/icons/down-arrow.png new file mode 100644 index 0000000..b2cd4a5 Binary files /dev/null and b/themes/3-material_design_dark/icons/down-arrow.png differ diff --git a/themes/3-material_design_dark/icons/down-arrow_hover.png b/themes/3-material_design_dark/icons/down-arrow_hover.png new file mode 100644 index 0000000..f7ad171 Binary files /dev/null and b/themes/3-material_design_dark/icons/down-arrow_hover.png differ diff --git a/themes/3-material_design_dark/icons/down-arrow_off.png b/themes/3-material_design_dark/icons/down-arrow_off.png new file mode 100644 index 0000000..e7f0af3 Binary files /dev/null and b/themes/3-material_design_dark/icons/down-arrow_off.png differ diff --git a/themes/3-material_design_dark/icons/off.png b/themes/3-material_design_dark/icons/off.png new file mode 100644 index 0000000..ef39d9e Binary files /dev/null and b/themes/3-material_design_dark/icons/off.png differ diff --git a/themes/3-material_design_dark/icons/off_press.png b/themes/3-material_design_dark/icons/off_press.png new file mode 100644 index 0000000..3355d12 Binary files /dev/null and b/themes/3-material_design_dark/icons/off_press.png differ diff --git a/themes/3-material_design_dark/icons/on.png b/themes/3-material_design_dark/icons/on.png new file mode 100644 index 0000000..2244ffe Binary files /dev/null and b/themes/3-material_design_dark/icons/on.png differ diff --git a/themes/3-material_design_dark/icons/on_press.png b/themes/3-material_design_dark/icons/on_press.png new file mode 100644 index 0000000..4754508 Binary files /dev/null and b/themes/3-material_design_dark/icons/on_press.png differ diff --git a/themes/3-material_design_dark/icons/search_icon.png b/themes/3-material_design_dark/icons/search_icon.png new file mode 100644 index 0000000..dd0ec52 Binary files /dev/null and b/themes/3-material_design_dark/icons/search_icon.png differ diff --git a/themes/3-material_design_dark/icons/up-arrow.png b/themes/3-material_design_dark/icons/up-arrow.png new file mode 100644 index 0000000..6f0f090 Binary files /dev/null and b/themes/3-material_design_dark/icons/up-arrow.png differ diff --git a/themes/3-material_design_dark/icons/up-arrow_hover.png b/themes/3-material_design_dark/icons/up-arrow_hover.png new file mode 100644 index 0000000..149eae0 Binary files /dev/null and b/themes/3-material_design_dark/icons/up-arrow_hover.png differ diff --git a/themes/3-material_design_dark/icons/up-arrow_off.png b/themes/3-material_design_dark/icons/up-arrow_off.png new file mode 100644 index 0000000..ac2217f Binary files /dev/null and b/themes/3-material_design_dark/icons/up-arrow_off.png differ diff --git a/themes/3-material_design_dark/icons/volume.png b/themes/3-material_design_dark/icons/volume.png new file mode 100644 index 0000000..88e4c7e Binary files /dev/null and b/themes/3-material_design_dark/icons/volume.png differ diff --git a/themes/3-material_design_dark/material_design_dark.qss b/themes/3-material_design_dark/material_design_dark.qss new file mode 100644 index 0000000..bdfe948 --- /dev/null +++ b/themes/3-material_design_dark/material_design_dark.qss @@ -0,0 +1,481 @@ +/* Palette + +Background: #29353B +Sec. Menu bkg: #263238 + +Label: #AFBDC4 +Label Selected/hover: #FFFFFF +Label Pressed: #FFFFFF +Selection: #88cc00 + +ScrollBars: #374146 + +Signal detail Labels: #CFD8DC +Signal detail Dialogs: #949a9c + +Disabled: #546E7A + +/************************************* +Main Window and Splitters +**************************************/ +QWidget:window { + background-color: #29353B; +} + +QSplitter::handle { + background-color: transparent; +} + +/************************************* +Main menu (Bar) +**************************************/ +QMenuBar { + background-color: transparent; + color: #AFBDC4; +} + +QMenuBar::item { + background-color: transparent; +} + +QMenuBar::item:disabled { + color: gray; +} + +QMenuBar::item:selected { + color: #FFFFFF; + border-bottom: 2px solid #88cc00; +} + +QMenuBar::item:pressed { + color: #FFFFFF; + border-bottom: 2px solid #88cc00; +} + +QToolBar { + background-color: transparent; + border: 1px solid transparent; +} + +QToolBar:handle { + background-color: transparent; + border-left: 2px dotted #80CBC4; + color: transparent; +} + +QToolBar::separator { + border: 0; +} + +QMenu { + background-color: #263238; + color: #AFBDC4; +} + +QMenu::item:selected { + color: #FFFFFF; +} + +QMenu::item:pressed { + color: #FFFFFF; +} + +QMenu::separator { + background-color: transparent; + height: 1px; + margin-left: 10px; + margin-right: 10px; + margin-top: 5px; + margin-bottom: 5px; +} + +/************************************* +TabBar +**************************************/ +QTabBar { + background: transparent; +} + +QTabWidget::pane { + background: transparent; +} + +QTabBar::tab { + background: transparent; + border: 0px solid transparent; + border-bottom: 2px solid transparent; + color: #AFBDC4; + padding-left: 10px; + padding-right: 10px; + padding-top: 3px; + padding-bottom: 3px; +} + +QTabBar::tab:hover { + background-color: transparent; + border: 0px solid transparent; + border-bottom: 2px solid #88cc00; + color: #FFFFFF; +} + +QTabBar::tab:selected { + background-color: transparent; + border: 0px solid transparent; + border-top: none; + border-bottom: 2px solid #88cc00; + color: #FFFFFF; +} + +QStackedWidget { + background: #29353B; +} + +/************************************* +Progressbar +**************************************/ +QProgressBar +{ + border: 2px solid grey; + border-radius: 5px; + text-align: center; +} + +QProgressBar::chunk +{ + background-color: #88cc00; + width: 2.15px; + margin: 0.5px; +} + +/************************************* +Labels and Rich Text boxes +**************************************/ +QLabel { + background-color: transparent; + color: #CFD8DC; +} + +QDialog { + background-color: transparent; + color: #949a9c; +} + +QTextBrowser { + background-color: transparent; + color: #949a9c; +} + +/************************************* +Search Bar +**************************************/ +QLineEdit { + background-color: transparent; + selection-background-color: #669900; + color: #669900; + border-width: 1px; + border-style: solid; + border-color: transparent transparent #669900 transparent; +} + +QLineEdit:hover { + border-width: 2px; + border-color: transparent transparent #88cc00 transparent; +} + +QLineEdit:focus { + border-width: 2px; + border-color: transparent transparent #88cc00 transparent; +} + +/************************************* +Scroll bars +**************************************/ +QScrollBar:horizontal { + background: transparent; + height: 10px; + margin: 0; +} + +QScrollBar:vertical { + background: transparent; + width: 10px; + margin: 0; +} + +QScrollBar::handle:horizontal { + background: #374146; + min-width: 16px; + border-radius: 5px; +} + +QScrollBar::handle:vertical { + background: #374146; + min-height: 16px; + border-radius: 5px; +} + +QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal, +QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + background: none; +} + +QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal, +QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical { + border: none; + background: none; +} + +/************************************* +List +**************************************/ +QListWidget { + background-color: transparent; + border: 0px solid transparent; + border-bottom: 2px solid #80CBC4; + color: #AFBDC4; +} + +QListView { + background-color: transparent; + color: #AFBDC4; + outline: 0; + border: 0px solid transparent; +} +QListView::item:hover { + color: #FFFFFF; + background: transparent; +} + +QListView::item:selected { + color: #88cc00; + background: transparent; +} + +QListView::item:disabled { + color: #546E7A; + background: transparent; +} + +QListView::item:disabled:selected { + color: #88cc00; + background: transparent; +} + +/************************************* +Buttons +**************************************/ +QPushButton { + background-color: transparent; + color: #AFBDC4; + border: 1px solid transparent; + padding: 4px 22px; +} + +QPushButton:hover { + border-left: 2px solid #88cc00; + border-right: 2px solid #88cc00; + color: #FFFFFF; +} + +QPushButton:pressed { + color: #FFFFFF; +} + +QPushButton:disabled { + color:#546E7A; +} + +QPushButton:checked { + color: #88cc00; +} + +/************************************* +ComboBox +**************************************/ +QComboBox { + border: 0px solid transparent; + border-radius: 2px; + padding: 1px 6px 1px 6px; + min-width: 2em; +} + +QComboBox:!editable { + selection-background-color: transparent; + color: #AFBDC4; + selection-color: #FFFFFF; + background-color: transparent; +} + +QComboBox:disabled { + color: #546E7A; +} + +QComboBox:!editable:on, QComboBox::drop-down:editable:on { + color: #AFBDC4; + background-color: transparent; + selection-background-color: transparent; +} + +QComboBox:on { + padding-top: 3px; + padding-left: 4px; +} + +QComboBox::drop-down { + background-color: transparent; + subcontrol-origin: padding; + subcontrol-position: top right; + width: 20px; + border-top-right-radius: 2px; + border-bottom-right-radius: 2px; +} + +QComboBox::down-arrow:enabled { + image: url("./themes/3-material_design_dark/icons/down-arrow.png"); +} + +QComboBox::down-arrow:disabled { + image: url("./themes/3-material_design_dark/icons/down-arrow_off.png"); +} + +QComboBox::down-arrow:hover { + image: url("./themes/3-material_design_dark/icons/down-arrow_hover.png"); +} + +QComboBox::down-arrow:on { + top: 1px; + left: 1px; +} + +QComboBox QAbstractItemView { +background-color: #29353B; +} + +/************************************* +RadioButton +**************************************/ +QRadioButton{ + color: #AFBDC4; +} + +QRadioButton:disabled{ + color: #546E7A; +} + +QRadioButton::indicator{ + width: 50px; + height: 50px; +} + +QRadioButton::indicator::unchecked { + image: url("./themes/3-material_design_dark/icons/off.png"); +} + +QRadioButton::indicator:unchecked:hover { + image: url("./themes/3-material_design_dark/icons/off_press.png"); +} + +QRadioButton::indicator:unchecked:pressed { + image: url("./themes/3-material_design_dark/icons/off_press.png"); +} + +QRadioButton::indicator::checked { + image: url("./themes/3-material_design_dark/icons/on.png"); +} + +QRadioButton::indicator:checked:hover { + image: url("./themes/3-material_design_dark/icons/on_press.png"); +} + +QRadioButton::indicator:checked:pressed { + image: url("./themes/3-material_design_dark/icons/on_press.png"); +} + +/************************************* +SpinBox +**************************************/ +QSpinBox { + background-color: transparent; + color: #AFBDC4; + border-width: 0px; +} + +QSpinBox:disabled { + color: #546E7A; + border-width: 0px; +} + +QSpinBox::up-button { + subcontrol-origin: border; + subcontrol-position: top right; + width: 16px; + image: url("./themes/3-material_design_dark/icons/up-arrow.png"); + border-width: 0px; +} + +QSpinBox::up-button:hover { + image: url("./themes/3-material_design_dark/icons/up-arrow_hover.png"); +} + +QSpinBox::up-button:pressed { + image: url("./themes/3-material_design_dark/icons/up-arrow.png"); +} + +QSpinBox::up-button:disabled { + image: url("./themes/3-material_design_dark/icons/up-arrow_off.png"); +} + +QSpinBox::down-button { + subcontrol-origin: border; + subcontrol-position: bottom right; + width: 16px; + image: url("./themes/3-material_design_dark/icons/down-arrow.png"); + border-width: 0px; + border-top-width: 0; +} + +QSpinBox::down-button:hover { + image: url("./themes/3-material_design_dark/icons/down-arrow_hover.png"); +} + +QSpinBox::down-button:pressed { + image: url("./themes/3-material_design_dark/icons/down-arrow.png"); +} + +QSpinBox::down-button:disabled { + image: url("./themes/3-material_design_dark/icons/down-arrow_off.png"); +} + +/************************************* +TreeViewMenu (Mode) +**************************************/ +QTreeView { + background-color: transparent; + selection-background-color: transparent; +} + +QTreeView::item { + background-color: transparent; + color: #AFBDC4; +} + +QTreeView::item:hover { + border-right: 2px solid #88cc00; + color: #FFFFFF; +} + +QTreeView::item:selected { + color: #88cc00; +} + +QTreeView::item:active{ + background: transparent; +} + +QTreeView::item:disabled{ + color: #546E7A; +} + +QTreeView::item:selected:disabled{ + color: #88cc00; +} diff --git a/themes/4-material_design_light/colors.txt b/themes/4-material_design_light/colors.txt new file mode 100644 index 0000000..c1bccbe --- /dev/null +++ b/themes/4-material_design_light/colors.txt @@ -0,0 +1,2 @@ +active=#6ECE12 +inactive=#b3b3cc diff --git a/themes/4-material_design_light/icons/down-arrow.png b/themes/4-material_design_light/icons/down-arrow.png new file mode 100644 index 0000000..b2cd4a5 Binary files /dev/null and b/themes/4-material_design_light/icons/down-arrow.png differ diff --git a/themes/4-material_design_light/icons/down-arrow_hover.png b/themes/4-material_design_light/icons/down-arrow_hover.png new file mode 100644 index 0000000..f7ad171 Binary files /dev/null and b/themes/4-material_design_light/icons/down-arrow_hover.png differ diff --git a/themes/4-material_design_light/icons/down-arrow_off.png b/themes/4-material_design_light/icons/down-arrow_off.png new file mode 100644 index 0000000..e7f0af3 Binary files /dev/null and b/themes/4-material_design_light/icons/down-arrow_off.png differ diff --git a/themes/4-material_design_light/icons/off.png b/themes/4-material_design_light/icons/off.png new file mode 100644 index 0000000..ef39d9e Binary files /dev/null and b/themes/4-material_design_light/icons/off.png differ diff --git a/themes/4-material_design_light/icons/off_press.png b/themes/4-material_design_light/icons/off_press.png new file mode 100644 index 0000000..3355d12 Binary files /dev/null and b/themes/4-material_design_light/icons/off_press.png differ diff --git a/themes/4-material_design_light/icons/on.png b/themes/4-material_design_light/icons/on.png new file mode 100644 index 0000000..2244ffe Binary files /dev/null and b/themes/4-material_design_light/icons/on.png differ diff --git a/themes/4-material_design_light/icons/on_press.png b/themes/4-material_design_light/icons/on_press.png new file mode 100644 index 0000000..4754508 Binary files /dev/null and b/themes/4-material_design_light/icons/on_press.png differ diff --git a/themes/4-material_design_light/icons/search_icon.png b/themes/4-material_design_light/icons/search_icon.png new file mode 100644 index 0000000..dd0ec52 Binary files /dev/null and b/themes/4-material_design_light/icons/search_icon.png differ diff --git a/themes/4-material_design_light/icons/up-arrow.png b/themes/4-material_design_light/icons/up-arrow.png new file mode 100644 index 0000000..6f0f090 Binary files /dev/null and b/themes/4-material_design_light/icons/up-arrow.png differ diff --git a/themes/4-material_design_light/icons/up-arrow_hover.png b/themes/4-material_design_light/icons/up-arrow_hover.png new file mode 100644 index 0000000..149eae0 Binary files /dev/null and b/themes/4-material_design_light/icons/up-arrow_hover.png differ diff --git a/themes/4-material_design_light/icons/up-arrow_off.png b/themes/4-material_design_light/icons/up-arrow_off.png new file mode 100644 index 0000000..ac2217f Binary files /dev/null and b/themes/4-material_design_light/icons/up-arrow_off.png differ diff --git a/themes/4-material_design_light/icons/volume.png b/themes/4-material_design_light/icons/volume.png new file mode 100644 index 0000000..88e4c7e Binary files /dev/null and b/themes/4-material_design_light/icons/volume.png differ diff --git a/themes/4-material_design_light/material_design_light.qss b/themes/4-material_design_light/material_design_light.qss new file mode 100644 index 0000000..f206187 --- /dev/null +++ b/themes/4-material_design_light/material_design_light.qss @@ -0,0 +1,481 @@ +/* Palette + +Background: #F5F5F5 +Sec. Menu bkg: #DCDCDC + +Label: #29353B +Label Selected/hover: #000000 +Label Pressed: #000000 +Selection: #6ECE12 + +ScrollBars: #DCDCDC + +Labels: #29353B +Dialogs: #29353B + +Disabled: #b3b3cc + +/************************************* +Main Window and Splitters +**************************************/ +QWidget:window { + background-color: #F5F5F5; +} + +QSplitter::handle { + background-color: transparent; +} + +/************************************* +Main menu (Bar) +**************************************/ +QMenuBar { + background-color: transparent; + color: #29353B; +} + +QMenuBar::item { + background-color: transparent; +} + +QMenuBar::item:disabled { + color: gray; +} + +QMenuBar::item:selected { + color: #000000; + border-bottom: 2px solid #6ECE12; +} + +QMenuBar::item:pressed { + color: #000000; + border-bottom: 2px solid #6ECE12; +} + +QToolBar { + background-color: transparent; + border: 1px solid transparent; +} + +QToolBar:handle { + background-color: transparent; + border-left: 2px dotted #80CBC4; + color: transparent; +} + +QToolBar::separator { + border: 0; +} + +QMenu { + background-color: #DCDCDC; + color: #29353B; +} + +QMenu::item:selected { + color: #000000; +} + +QMenu::item:pressed { + color: #000000; +} + +QMenu::separator { + background-color: transparent; + height: 1px; + margin-left: 10px; + margin-right: 10px; + margin-top: 5px; + margin-bottom: 5px; +} + +/************************************* +TabBar +**************************************/ +QTabBar { + background: transparent; +} + +QTabWidget::pane { + background: transparent; +} + +QTabBar::tab { + background: transparent; + border: 0px solid transparent; + border-bottom: 2px solid transparent; + color: #29353B; + padding-left: 10px; + padding-right: 10px; + padding-top: 3px; + padding-bottom: 3px; +} + +QTabBar::tab:hover { + background-color: transparent; + border: 0px solid transparent; + border-bottom: 2px solid #6ECE12; + color: #000000; +} + +QTabBar::tab:selected { + background-color: transparent; + border: 0px solid transparent; + border-top: none; + border-bottom: 2px solid #6ECE12; + color: #000000; +} + +QStackedWidget { + background: #F5F5F5; +} + +/************************************* +Progressbar +**************************************/ +QProgressBar +{ + border: 2px solid grey; + border-radius: 5px; + text-align: center; +} + +QProgressBar::chunk +{ + background-color: #6ECE12; + width: 2.15px; + margin: 0.5px; +} + +/************************************* +Labels and Rich Text boxes +**************************************/ +QLabel { + background-color: transparent; + color: #29353B; +} + +QDialog { + background-color: transparent; + color: #29353B; +} + +QTextBrowser { + background-color: transparent; + color: #29353B; +} + +/************************************* +Search Bar +**************************************/ +QLineEdit { + background-color: transparent; + selection-background-color: #669900; + color: #669900; + border-width: 1px; + border-style: solid; + border-color: transparent transparent #669900 transparent; +} + +QLineEdit:hover { + border-width: 2px; + border-color: transparent transparent #6ECE12 transparent; +} + +QLineEdit:focus { + border-width: 2px; + border-color: transparent transparent #6ECE12 transparent; +} + +/************************************* +Scroll bars +**************************************/ +QScrollBar:horizontal { + background: transparent; + height: 10px; + margin: 0; +} + +QScrollBar:vertical { + background: transparent; + width: 10px; + margin: 0; +} + +QScrollBar::handle:horizontal { + background: #DCDCDC; + min-width: 16px; + border-radius: 5px; +} + +QScrollBar::handle:vertical { + background: #DCDCDC; + min-height: 16px; + border-radius: 5px; +} + +QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal, +QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + background: none; +} + +QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal, +QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical { + border: none; + background: none; +} + +/************************************* +List +**************************************/ +QListWidget { + background-color: transparent; + border: 0px solid transparent; + border-bottom: 2px solid #80CBC4; + color: #29353B; +} + +QListView { + background-color: transparent; + color: #29353B; + outline: 0; + border: 0px solid transparent; +} +QListView::item:hover { + color: #000000; + background: transparent; +} + +QListView::item:selected { + color: #6ECE12; + background: transparent; +} + +QListView::item:disabled { + color: #b3b3cc; + background: transparent; +} + +QListView::item:disabled:selected { + color: #6ECE12; + background: transparent; +} + +/************************************* +Buttons +**************************************/ +QPushButton { + background-color: transparent; + color: #29353B; + border: 1px solid transparent; + padding: 4px 22px; +} + +QPushButton:hover { + border-left: 2px solid #6ECE12; + border-right: 2px solid #6ECE12; + color: #000000; +} + +QPushButton:pressed { + color: #000000; +} + +QPushButton:disabled { + color:#b3b3cc; +} + +QPushButton:checked { + color: #6ECE12; +} + +/************************************* +ComboBox +**************************************/ +QComboBox { + border: 0px solid transparent; + border-radius: 2px; + padding: 1px 6px 1px 6px; + min-width: 2em; +} + +QComboBox:!editable { + selection-background-color: transparent; + color: #29353B; + selection-color: #000000; + background-color: transparent; +} + +QComboBox:disabled { + color: #b3b3cc; +} + +QComboBox:!editable:on, QComboBox::drop-down:editable:on { + color: #29353B; + background-color: transparent; + selection-background-color: transparent; +} + +QComboBox:on { + padding-top: 3px; + padding-left: 4px; +} + +QComboBox::drop-down { + background-color: transparent; + subcontrol-origin: padding; + subcontrol-position: top right; + width: 20px; + border-top-right-radius: 2px; + border-bottom-right-radius: 2px; +} + +QComboBox::down-arrow:enabled { + image: url("./themes/4-material_design_light/icons/down-arrow.png"); +} + +QComboBox::down-arrow:disabled { + image: url("./themes/4-material_design_light/icons/down-arrow_off.png"); +} + +QComboBox::down-arrow:hover { + image: url("./themes/4-material_design_light/icons/down-arrow_hover.png"); +} + +QComboBox::down-arrow:on { + top: 1px; + left: 1px; +} + +QComboBox QAbstractItemView { +background-color: #F5F5F5; +} + +/************************************* +RadioButton +**************************************/ +QRadioButton{ + color: #29353B; +} + +QRadioButton:disabled{ + color: #b3b3cc; +} + +QRadioButton::indicator{ + width: 50px; + height: 50px; +} + +QRadioButton::indicator::unchecked { + image: url("./themes/4-material_design_light/icons/off.png"); +} + +QRadioButton::indicator:unchecked:hover { + image: url("./themes/4-material_design_light/icons/off_press.png"); +} + +QRadioButton::indicator:unchecked:pressed { + image: url("./themes/4-material_design_light/icons/off_press.png"); +} + +QRadioButton::indicator::checked { + image: url("./themes/4-material_design_light/icons/on.png"); +} + +QRadioButton::indicator:checked:hover { + image: url("./themes/4-material_design_light/icons/on_press.png"); +} + +QRadioButton::indicator:checked:pressed { + image: url("./themes/4-material_design_light/icons/on_press.png"); +} + +/************************************* +SpinBox +**************************************/ +QSpinBox { + background-color: transparent; + color: #29353B; + border-width: 0px; +} + +QSpinBox:disabled { + color: #b3b3cc; + border-width: 0px; +} + +QSpinBox::up-button { + subcontrol-origin: border; + subcontrol-position: top right; + width: 16px; + image: url("./themes/4-material_design_light/icons/up-arrow.png"); + border-width: 0px; +} + +QSpinBox::up-button:hover { + image: url("./themes/4-material_design_light/icons/up-arrow_hover.png"); +} + +QSpinBox::up-button:pressed { + image: url("./themes/4-material_design_light/icons/up-arrow.png"); +} + +QSpinBox::up-button:disabled { + image: url("./themes/4-material_design_light/icons/up-arrow_off.png"); +} + +QSpinBox::down-button { + subcontrol-origin: border; + subcontrol-position: bottom right; + width: 16px; + image: url("./themes/4-material_design_light/icons/down-arrow.png"); + border-width: 0px; + border-top-width: 0; +} + +QSpinBox::down-button:hover { + image: url("./themes/4-material_design_light/icons/down-arrow_hover.png"); +} + +QSpinBox::down-button:pressed { + image: url("./themes/4-material_design_light/icons/down-arrow.png"); +} + +QSpinBox::down-button:disabled { + image: url("./themes/4-material_design_light/icons/down-arrow_off.png"); +} + +/************************************* +TreeViewMenu (Mode) +**************************************/ +QTreeView { + background-color: transparent; + selection-background-color: transparent; +} + +QTreeView::item { + background-color: transparent; + color: #29353B; +} + +QTreeView::item:hover { + border-right: 2px solid #6ECE12; + color: #000000; +} + +QTreeView::item:selected { + color: #6ECE12; +} + +QTreeView::item:active{ + background: transparent; +} + +QTreeView::item:disabled{ + color: #b3b3cc; +} + +QTreeView::item:selected:disabled{ + color: #6ECE12; +}