diff --git a/artemis.py b/artemis.py index 759d21c..cf9cb99 100644 --- a/artemis.py +++ b/artemis.py @@ -26,7 +26,7 @@ from audio_player import AudioPlayer from double_text_button import DoubleTextButton from download_window import DownloadWindow - +from switchable_label import SwitchableLabel, SwitchableLabelIterable from constants import (Constants, Ftype, GfdType, @@ -35,7 +35,6 @@ from constants import (Constants, Messages, Signal,) from themes import Theme - from utilities import (checksum_ok, uncheck_and_emit, pop_up, diff --git a/artemis.ui b/artemis.ui index 07569d2..61e4b3d 100644 --- a/artemis.ui +++ b/artemis.ui @@ -7,7 +7,7 @@ 0 0 1206 - 634 + 674 @@ -178,7 +178,7 @@ QTabWidget::Rounded - 0 + 3 true @@ -4592,6 +4592,802 @@ www.qrg.globaltuners.com + + + Rx/Tx Conditions + + + + + + + Now + + + + + + + + + + + + 9 + 75 + true + true + + + + X-Rays + + + + + + + + + Radio Blackout + + + + + + + + + + + 75 + true + + + + R0 + + + + + + + + 75 + true + + + + R1 + + + + + + + + 75 + true + + + + R2 + + + + + + + + 75 + true + + + + R3 + + + + + + + + 75 + true + + + + R4 + + + + + + + + 75 + true + + + + R5 + + + + + + + + + + + + + 9 + 75 + true + true + + + + Protons-Electrons Flux + + + + + + + + + Solar Radiation Storm + + + + + + + + + + + 75 + true + + + + S0 + + + + + + + + 75 + true + + + + S1 + + + + + + + + 75 + true + + + + S2 + + + + + + + + 75 + true + + + + S3 + + + + + + + + 75 + true + + + + S4 + + + + + + + + 75 + true + + + + S5 + + + + + + + + + + + + + 9 + 75 + true + true + + + + Solar Activity + + + + + + + + + K-Index + + + + + + + - + + + + + + + + + + + A-Index + + + + + + + - + + + + + + + + + + + + + 7 + + + + EXTREMELY SEVERE +STORM + + + + + + + + 7 + + + + VERY SEVERE STORM + + + + + + + + 7 + + + + SEVERE STORM + + + + + + + + 7 + + + + MAJOR STORM + + + + + + + + 7 + + + + MINOR STORM + + + + + + + + 7 + + + + ACTIVE + + + + + + + + 7 + + + + UNSETTLED + + + + + + + + 7 + + + + QUIET + + + + + + + + 7 + + + + VERY QUIET + + + + + + + + 7 + + + + INACTIVE + + + + + + + + + + + + + + 7 + + + + SEVERE STORM + + + + + + + + 7 + + + + MAJOR STORM + + + + + + + + 7 + + + + MINOR STORM + + + + + + + + 7 + + + + ACTIVE + + + + + + + + 7 + + + + UNSETTLED + + + + + + + + 7 + + + + QUIET + + + + + + + + + + + + SFI + + + + + + + - + + + + + + + + + + + SN + + + + + + + - + + + + + + + + + Geomagnetic Storm (now) + + + + + + + + + + + 75 + true + + + + G0 + + + + + + + + 75 + true + + + + G1 + + + + + + + + 75 + true + + + + G2 + + + + + + + + 75 + true + + + + G3 + + + + + + + + 75 + true + + + + G4 + + + + + + + + 75 + true + + + + G5 + + + + + + + + + + Geomagnetic Storm (MAX 24 hrs) + + + + + + + + + + + 75 + true + + + + G0 + + + + + + + + 75 + true + + + + G1 + + + + + + + + 75 + true + + + + G2 + + + + + + + + 75 + true + + + + G3 + + + + + + + + 75 + true + + + + G4 + + + + + + + + 75 + true + + + + G5 + + + + + + + + + + + + Peak Flux Class + + + + + + + - + + + Qt::AlignCenter + + + + + + + + + + + + + + + + 15 + 75 + true + true + + + + Protons-Electrons Flux + + + + + + + + + + + + Info + + + + + + + Update + + + + + + + 1 + + + -1 + + + false + + + + + + + + Tab 2 + + + + + + @@ -4908,6 +5704,11 @@ QSlider::handle:horizontal { QPushButton
double_text_button.h
+ + SwitchableLabel + QLabel +
switchable_label.h
+
diff --git a/forecast_data.py b/forecast_data.py new file mode 100644 index 0000000..5be58b6 --- /dev/null +++ b/forecast_data.py @@ -0,0 +1,44 @@ +from PyQt5.QtCore import pyqtSlot, pyqtSignal, QObject + +from threads import UpadteForecastThread, ThreadStatus +from utilities import double_split + +class ForecastData(QObject): + update_complete = pyqtSignal(bool) + + def __init__(self): + super().__init__() + self.xray = '' + self.prot_el = '' + self.ak_index = '' + self.sgas = '' + self.geo_storm = '' + self.__update_thread = UpadteForecastThread(self) + self.__update_thread.finished.connect(self.__parse_and_emit_signal) + + @pyqtSlot() + def update(self): + self.__update_thread.start() + + def __parse_data(self): + self.xray = double_split(str(self.xray)) + self.prot_el = double_split(str(self.prot_el)) + self.ak_index = double_split(str(self.ak_index)) + self.sgas = double_split(str(self.sgas)) + self.geo_storm = double_split(str(self.geo_storm)) + + def remove_data(self): + self.xray = '' + self.prot_el = '' + self.ak_index = '' + self.sgas = '' + self.geo_storm = '' + + @pyqtSlot() + def __parse_and_emit_signal(self): + if self.__update_thread.status != ThreadStatus.OK: + status_ok = False + else: + status_ok = True + self.__parse_data() + self.update_complete.emit(status_ok) diff --git a/icons_imgs/search_icon.png b/icons_imgs/search_icon.png deleted file mode 100644 index cc72a1e..0000000 Binary files a/icons_imgs/search_icon.png and /dev/null differ diff --git a/icons_imgs/volume.png b/icons_imgs/volume.png deleted file mode 100644 index 5cc5645..0000000 Binary files a/icons_imgs/volume.png and /dev/null differ diff --git a/main_window.ui b/main_window.ui deleted file mode 100644 index 21be4d1..0000000 --- a/main_window.ui +++ /dev/null @@ -1,4916 +0,0 @@ - - - MainWindow - - - - 0 - 0 - 1206 - 634 - - - - - 0 - 0 - - - - ARTEMIS3 - - - - :/icons/Artemis3.ico:/icons/Artemis3.ico - - - - - - - - - - Qt::Horizontal - - - - - 0 - 0 - - - - - 0 - 0 - - - - - 0 - 0 - - - - - 0 - - - 0 - - - 0 - - - 0 - - - 2 - - - - - - - - - - - - - - - - - - - 0 - 0 - - - - - 20 - 20 - - - - - 20 - 20 - - - - - - - themes/1-default/icons/search_icon.png - - - true - - - - - - - - 0 - 0 - - - - - 9 - 50 - false - - - - - - - - - - Qt::ScrollBarAsNeeded - - - Qt::ScrollBarAsNeeded - - - 16 - - - false - - - - - - - - true - - - - 1 - 0 - - - - - 200 - 400 - - - - Qt::LeftToRight - - - - - - QTabWidget::North - - - QTabWidget::Rounded - - - 0 - - - true - - - - - 0 - 0 - - - - - 0 - 0 - - - - Main - - - - - - - 0 - 0 - - - - - 20 - 75 - true - - - - QFrame::NoFrame - - - Qt::ScrollBarAlwaysOff - - - Qt::ScrollBarAlwaysOff - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:20pt; font-weight:600; font-style:normal;"> -<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">No Signal</p></body></html> - - - - - - - - - - - - - 0 - 0 - - - - - 12 - - - - N/A - - - - - - - - 0 - 0 - - - - - 12 - - - - N/A - - - - - - - - 0 - 0 - - - - - 0 - 0 - - - - - 12 - 75 - true - - - - Mode - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - - 12 - - - - N/A - - - - - - - - 0 - 0 - - - - - 12 - - - - N/A - - - - - - - - 0 - 0 - - - - - 0 - 0 - - - - - 12 - 75 - true - - - - Frequency - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - - 12 - - - - N/A - - - - - - - - 0 - 0 - - - - - 0 - 0 - - - - - 12 - 75 - true - - - - Modulation - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - - 0 - 0 - - - - - 12 - 75 - true - - - - Location - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - - 12 - - - - N/A - - - - - - - - 0 - 0 - - - - - 0 - 0 - - - - - 12 - 75 - true - - - - Bandwidth - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - - 0 - 0 - - - - - 12 - 75 - true - - - - ACF - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - - - - 0 - 0 - - - - - - - - 0 - 0 - - - - - 12 - 75 - true - - - - Categories - - - Qt::AlignBottom|Qt::AlignHCenter - - - - - - - - - - 0 - 0 - - - - - 10 - 75 - true - - - - color: #9f9f9f; - - - Military - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - - 10 - 75 - true - - - - color: #9f9f9f; - - - Radar - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - - - - - - - - 0 - 0 - - - - - 10 - 75 - true - - - - color: #9f9f9f; - - - Active - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - - 10 - 75 - true - - - - color: #9f9f9f; - - - Inactive - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - - - - - - - - 0 - 0 - - - - - 10 - 75 - true - - - - color: #9f9f9f; - - - HAM - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - - 10 - 75 - true - - - - color: #9f9f9f; - - - Commercial - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - - - - - - - - 0 - 0 - - - - - 10 - 75 - true - - - - color: #9f9f9f; - - - Aviation - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - - 10 - 75 - true - - - - color: #9f9f9f; - - - Marine - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - - - - - - - - 0 - 0 - - - - - 10 - 75 - true - - - - color: #9f9f9f; - - - Analogue - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - - 10 - 75 - true - - - - color: #9f9f9f; - - - Digital - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - - - - - - - - 0 - 0 - - - - - 10 - 75 - true - - - - color: #9f9f9f; - - - Trunked - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - - 10 - 75 - true - - - - color: #9f9f9f; - - - Utility - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - - - - - - - - 0 - 0 - - - - - 10 - 75 - true - - - - color: #9f9f9f; - - - Sat - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - - 10 - 75 - true - - - - color: #9f9f9f; - - - Navigation - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - - - - - - - - 0 - 0 - - - - - 10 - 75 - true - - - - color: #9f9f9f; - - - Interfering - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - - 10 - 75 - true - - - - color: #9f9f9f; - - - Time Signal - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - - - - - - 0 - 0 - - - - - 10 - 75 - true - - - - color: #9f9f9f; - - - Number Stations - - - Qt::AlignCenter - - - - - - - - - - - 0 - 0 - - - - - - - false - - - - 0 - 0 - - - - - 12 - 75 - true - true - - - - <html><head/><body><p><span style=" color:#000000;">Go to the signal's wiki.</span></p></body></html> - - - - - - Signal's wiki - - - true - - - - - - - - - - - - - 0 - 0 - - - - - 12 - 75 - true - - - - Description - - - Qt::AlignCenter - - - - - - - - 11 - - - - border: 0px; -/*border-radius: 8px;*/ - - - Qt::ScrollBarAsNeeded - - - Qt::ScrollBarAsNeeded - - - true - - - - - - - <html><head/><body><p><span style=" color:#000000;">Frequency bands</span></p></body></html> - - - color: #9f9f9f; - - - - - - - - - 12 - 75 - true - - - - color: #9f9f9f; - - - â–ˆ - - - Qt::AlignCenter - - - - - - - - 9 - 75 - true - - - - ELF - - - Qt::AlignCenter - - - - - - - - 12 - 75 - true - - - - color: #9f9f9f; - - - â–ˆ - - - Qt::AlignCenter - - - - - - - - - - - - 12 - 75 - true - - - - color: #9f9f9f; - - - â–ˆ - - - Qt::AlignCenter - - - - - - - - 9 - 75 - true - - - - color: #9f9f9f; - - - SLF - - - Qt::AlignCenter - - - - - - - - 12 - 75 - true - - - - â–ˆ - - - Qt::AlignCenter - - - - - - - - - - - - 12 - 75 - true - - - - â–ˆ - - - Qt::AlignCenter - - - - - - - - 9 - 75 - true - - - - ULF - - - Qt::AlignCenter - - - - - - - - 12 - 75 - true - - - - â–ˆ - - - Qt::AlignCenter - - - - - - - - - - - - 12 - 75 - true - - - - â–ˆ - - - Qt::AlignCenter - - - - - - - - 9 - 75 - true - - - - VLF - - - Qt::AlignCenter - - - - - - - - 12 - 75 - true - - - - â–ˆ - - - Qt::AlignCenter - - - - - - - - - - - - 12 - 75 - true - - - - â–ˆ - - - Qt::AlignCenter - - - - - - - - 9 - 75 - true - - - - LF - - - Qt::AlignCenter - - - - - - - - 12 - 75 - true - - - - â–ˆ - - - Qt::AlignCenter - - - - - - - - - - - - 12 - 75 - true - - - - â–ˆ - - - Qt::AlignCenter - - - - - - - - 9 - 75 - true - - - - MF - - - Qt::AlignCenter - - - - - - - - 12 - 75 - true - - - - â–ˆ - - - Qt::AlignCenter - - - - - - - - - - - - 12 - 75 - true - - - - â–ˆ - - - Qt::AlignCenter - - - - - - - - 9 - 75 - true - - - - color: #9f9f9f; - - - HF - - - Qt::AlignCenter - - - - - - - - 12 - 75 - true - - - - â–ˆ - - - Qt::AlignCenter - - - - - - - - - - - - 12 - 75 - true - - - - â–ˆ - - - Qt::AlignCenter - - - - - - - - 9 - 75 - true - - - - VHF - - - Qt::AlignCenter - - - - - - - - 12 - 75 - true - - - - â–ˆ - - - Qt::AlignCenter - - - - - - - - - - - - 12 - 75 - true - - - - â–ˆ - - - Qt::AlignCenter - - - - - - - - 9 - 75 - true - - - - UHF - - - Qt::AlignCenter - - - - - - - - 12 - 75 - true - - - - â–ˆ - - - Qt::AlignCenter - - - - - - - - - - - - 12 - 75 - true - - - - â–ˆ - - - Qt::AlignCenter - - - - - - - - 9 - 75 - true - - - - SHF - - - Qt::AlignCenter - - - - - - - - 12 - 75 - true - - - - color: #9f9f9f; - - - â–ˆ - - - Qt::AlignCenter - - - - - - - - - - - - 12 - 75 - true - - - - â–ˆ - - - Qt::AlignCenter - - - - - - - - 9 - 75 - true - - - - EHF - - - Qt::AlignCenter - - - - - - - - 12 - 75 - true - - - - color: #9f9f9f; - - - â–ˆ - - - Qt::AlignCenter - - - - - - - - - - - - - Filters - - - - - - - - - 0 - - - true - - - - Frequency - - - - - - - 0 - 0 - - - - - - - - - - true - - - - 0 - 0 - - - - - 12 - 75 - true - - - - ELF - - - true - - - - - - - true - - - - 12 - 75 - true - - - - SLF - - - true - - - - - - - true - - - - 12 - 75 - true - - - - ULF - - - true - - - - - - - true - - - - 12 - 75 - true - - - - VLF - - - true - - - - - - - true - - - - 12 - 75 - true - - - - LF - - - true - - - - - - - true - - - - 0 - 0 - - - - - 12 - 75 - true - - - - MF - - - true - - - - - - - true - - - - 0 - 0 - - - - - 12 - 75 - true - - - - HF - - - true - - - - - - - true - - - - 12 - 75 - true - - - - VHF - - - true - - - - - - - true - - - - 12 - 75 - true - - - - UHF - - - true - - - - - - - true - - - - 12 - 75 - true - - - - SHF - - - true - - - - - - - true - - - - 12 - 75 - true - - - - EHF - - - true - - - false - - - - - - - - - - Qt::Horizontal - - - - 24 - 20 - - - - - - - - - 0 - 0 - - - - - - - - - - - 12 - 75 - true - - - - Lower frequency - - - false - - - - - - - false - - - - 0 - 0 - - - - - 100 - 0 - - - - - 100 - 16777215 - - - - - 12 - - - - - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - 1 - - - 100000000 - - - - - - - false - - - - 0 - 0 - - - - - 60 - 0 - - - - - 16777215 - 16777215 - - - - - 12 - 75 - true - - - - - - - MHz - - - 4 - - - false - - - 0 - - - - MHz - - - - - Hz - - - - - kHz - - - - - GHz - - - - - - - - - 0 - 0 - - - - - 12 - 75 - true - - - - Confidence % - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - false - - - - 0 - 0 - - - - - 60 - 0 - - - - - 50 - 16777215 - - - - - 12 - - - - - - - false - - - Qt::AlignCenter - - - QAbstractSpinBox::UpDownArrows - - - - - - 100 - - - 0 - - - - - - - - 12 - 75 - true - - - - Upper frequency - - - false - - - - - - - false - - - - 0 - 0 - - - - - 100 - 0 - - - - - 100 - 16777215 - - - - - 12 - - - - - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - 1 - - - 100000000 - - - 1 - - - - - - - false - - - - 0 - 0 - - - - - 60 - 0 - - - - - 16777215 - 16777215 - - - - - 12 - 75 - true - - - - - - - MHz - - - - MHz - - - - - Hz - - - - - kHz - - - - - GHz - - - - - - - - - 0 - 0 - - - - - 12 - 75 - true - - - - Confidence % - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - false - - - - 0 - 0 - - - - - 60 - 0 - - - - - 50 - 16777215 - - - - - 12 - - - - - - - false - - - Qt::AlignCenter - - - QAbstractSpinBox::UpDownArrows - - - - - - 100 - - - 0 - - - - - - - false - - - - 0 - 0 - - - - - 12 - 75 - false - true - false - - - - color: #9f9f9f; - - - Selected range: - -Inactive - - - Qt::AlignCenter - - - - - - - - - - Qt::Horizontal - - - - 24 - 20 - - - - - - - - - 12 - 75 - true - - - - Include undefined frequencies - - - true - - - - - - - true - - - - 12 - 75 - true - - - - Apply - - - true - - - - - - - - 12 - 75 - true - - - - Reset - - - - - - - - Bandwidth - - - - - - Qt::Horizontal - - - - 44 - 20 - - - - - - - - - 0 - 0 - - - - - - - - - - false - - - - 0 - 0 - - - - - 100 - 0 - - - - - 100 - 16777215 - - - - - 12 - - - - - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - 1 - - - 100000000 - - - 5000 - - - - - - - false - - - - 0 - 0 - - - - - 100 - 0 - - - - - 100 - 16777215 - - - - - 12 - - - - - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - 1 - - - 100000000 - - - 5000 - - - - - - - - 12 - 75 - true - - - - Upper band - - - false - - - - - - - false - - - - 0 - 0 - - - - - 60 - 0 - - - - - 50 - 16777215 - - - - - 12 - - - - - - - false - - - Qt::AlignCenter - - - QAbstractSpinBox::UpDownArrows - - - - - - 100 - - - 0 - - - - - - - - 0 - 0 - - - - - 12 - 75 - true - - - - Confidence % - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - false - - - - 0 - 0 - - - - - 60 - 0 - - - - - 16777215 - 16777215 - - - - - 12 - 75 - true - - - - - - - MHz - - - 4 - - - false - - - 0 - - - - MHz - - - - - Hz - - - - - kHz - - - - - GHz - - - - - - - - false - - - - 0 - 0 - - - - - 60 - 0 - - - - - 50 - 16777215 - - - - - 12 - - - - - - - false - - - Qt::AlignCenter - - - QAbstractSpinBox::UpDownArrows - - - - - - 100 - - - 0 - - - - - - - false - - - - 0 - 0 - - - - - 60 - 0 - - - - - 16777215 - 16777215 - - - - - 12 - 75 - true - - - - - - - MHz - - - - MHz - - - - - Hz - - - - - kHz - - - - - GHz - - - - - - - - - 0 - 0 - - - - - 12 - 75 - true - - - - Confidence % - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 12 - 75 - true - - - - Lower band - - - false - - - - - - - false - - - - 0 - 0 - - - - - 12 - 75 - false - true - false - - - - - - - Selected range: - -Inactive - - - Qt::AlignCenter - - - - - - - - - - Qt::Horizontal - - - - 44 - 20 - - - - - - - - true - - - - 12 - 75 - true - - - - Apply - - - true - - - - - - - - 12 - 75 - true - - - - Reset - - - - - - - - 12 - 75 - true - - - - Include undefined bandwidths - - - true - - - - - - - - Category - - - - - - Qt::Horizontal - - - - 102 - 20 - - - - - - - - - 50 - - - - - - 12 - 75 - true - - - - <html><head/><body><p>Keep all the signals which belong to <span style=" font-style:italic;">at least</span> one of the selected categories.</p></body></html> - - - - - - At least one selected - - - true - - - - - - - - 12 - 75 - true - - - - <html><head/><body><p>Keep all the signals which belong to <span style=" font-style:italic;">all </span>the selected categories.</p></body></html> - - - All selected - - - false - - - - - - - - - - Qt::Horizontal - - - - 102 - 20 - - - - - - - - - 0 - 0 - - - - - - - - 12 - 75 - true - - - - Number Stations - - - true - - - - - - - - 12 - 75 - true - - - - Time Signal - - - true - - - - - - - - 12 - 75 - true - - - - Interfering - - - true - - - - - - - - 12 - 75 - true - - - - Satellite - - - true - - - - - - - - 12 - 75 - true - - - - Navigation - - - true - - - - - - - - 12 - 75 - true - - - - Utility - - - true - - - - - - - - 12 - 75 - true - - - - Digital - - - true - - - - - - - - 12 - 75 - true - - - - Marine - - - true - - - - - - - - 12 - 75 - true - - - - Commercial - - - true - - - - - - - - 12 - 75 - true - - - - Inactive - - - true - - - - - - - - 12 - 75 - true - - - - Radar - - - true - - - - - - - - 12 - 75 - true - - - - Military - - - true - - - - - - - - 12 - 75 - true - - - - Active - - - true - - - - - - - - 12 - 75 - true - - - - HAM - - - true - - - - - - - - 12 - 75 - true - - - - Aviation - - - true - - - - - - - - 12 - 75 - true - - - - Analogue - - - true - - - - - - - - 12 - 75 - true - - - - Trunked - - - true - - - - - - - - - - true - - - - 12 - 75 - true - - - - Apply - - - true - - - - - - - - 12 - 75 - true - - - - Reset - - - - - - - - Mode - - - - - - Qt::Horizontal - - - - 171 - 20 - - - - - - - - - 12 - 75 - true - - - - QAbstractItemView::NoEditTriggers - - - QAbstractItemView::MultiSelection - - - QAbstractItemView::SelectItems - - - true - - - true - - - 1 - - - - 1 - - - - - - - - Qt::Horizontal - - - - 170 - 20 - - - - - - - - - 12 - 75 - true - - - - Apply - - - true - - - - - - - - 12 - 75 - true - - - - Reset - - - - - - - - 12 - 75 - true - - - - Include unknown modulations - - - true - - - - - - - - Modulation - - - - - - Qt::Horizontal - - - - 162 - 20 - - - - - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - 20 - 20 - - - - - 20 - 20 - - - - - - - icons_imgs/search_icon.png - - - true - - - Qt::AlignCenter - - - - - - - - 12 - 50 - false - - - - QAbstractItemView::NoEditTriggers - - - QAbstractItemView::MultiSelection - - - - - - - - - - Qt::Horizontal - - - - 161 - 20 - - - - - - - - true - - - - 12 - 75 - true - - - - Apply - - - true - - - - - - - - 12 - 75 - true - - - - Reset - - - - - - - - Location - - - - - - Qt::Horizontal - - - - 162 - 20 - - - - - - - - - - - - - - - 0 - 0 - - - - - 20 - 20 - - - - - - - icons_imgs/search_icon.png - - - true - - - - - - - - 12 - - - - QAbstractItemView::MultiSelection - - - - - - - - - - Qt::Horizontal - - - - 161 - 20 - - - - - - - - - 12 - 75 - true - - - - Apply - - - true - - - - - - - - 12 - 75 - true - - - - Reset - - - false - - - - - - - - ACF - - - - - - Qt::Horizontal - - - - 52 - 22 - - - - - - - - - - - - - - 12 - 75 - true - - - - AC interval - - - - - - - true - - - - 0 - 0 - - - - - 80 - 0 - - - - - 100 - 16777215 - - - - - 12 - - - - - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - 1 - - - 10000 - - - 50 - - - - - - - - 12 - 75 - true - - - - ms - - - - - - - Qt::Horizontal - - - - 49 - 20 - - - - - - - - - 0 - 0 - - - - - 12 - 75 - true - - - - Confidence % - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - true - - - - 0 - 0 - - - - - 60 - 0 - - - - - 50 - 16777215 - - - - - 12 - - - - - - - false - - - Qt::AlignCenter - - - QAbstractSpinBox::UpDownArrows - - - - - - 100 - - - 0 - - - - - - - - - false - - - - 0 - 0 - - - - - 12 - 75 - false - true - false - - - - - - - Selected range: - -Inactive - - - Qt::AlignCenter - - - - - - - - - - Qt::Horizontal - - - - 51 - 20 - - - - - - - - - 12 - 75 - true - - - - Include undefined ACFs - - - true - - - - - - - - 12 - 75 - true - - - - Apply - - - true - - - - - - - - 12 - 75 - true - - - - Reset - - - false - - - - - - - - 12 - 75 - true - - - - Info - - - - - - - - - - - true - - - - 15 - 75 - true - - - - - - - Reset all filters - - - - - - - - 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 - - - - - - - - - - - - - - 0 - 0 - - - - - 270 - 0 - - - - - 270 - 575 - - - - - - - - - - - 0 - 0 - - - - -QWidget { - border: 0px; -} -QPushButton { - border: 0px solid gray; - border-color: #1d5eff; - border-radius: 20px; -} - - - - - - false - - - - 0 - 0 - - - - - 16777215 - 10 - - - - - - - 0 - - - false - - - - - - - false - - - - 0 - 0 - - - - - 70 - 70 - - - - - - - false - - - - - - - false - - - - 0 - 0 - - - - - 70 - 70 - - - - - - - false - - - - - - - false - - - - 0 - 0 - - - - - 70 - 70 - - - - - - - - - - - - - - 0 - 0 - - - - - 20 - 20 - - - - - - - themes/1-default/icons/volume.png - - - true - - - - - - - QSlider::groove:horizontal { - /*border: 1px solid #999999;*/ - height: 6px; /* the groove expands to the size of the slider by default. by giving it a height, it has a fixed size */ - background: #7a7a7a; - margin: 0 5px; - border-radius: 3px -} - -QSlider::handle:horizontal { - background: qlineargradient(x1:0, y1:0, x2:1, y2:1, stop:0 gray, stop:0.5 white, stop:1.0 gray); - border: 1px solid #5c5c5c; - width: 15px; - margin: -5px -5px; /* handle is placed by default on the contents rect of the groove. Expand outside the groove */ - border-radius: 8px; -} - - - - 0 - - - 100 - - - 10 - - - 50 - - - Qt::Horizontal - - - - - - - - - - - - - 0 - 0 - - - - - 250 - 417 - - - - Signal waterfall - - - - - - - - - themes/1-system/icons/nosignalselected.png - - - true - - - - - - - - - - - - 0 - 0 - 1206 - 21 - - - - - - - - - - - File - - - - - - Updates - - - - - - - Themes - - - - - - - - - color: rgb(255, 255, 255); - - - - - Exit - - - - - Update database - - - - - Check latest database version - - - - - - DoubleTextButton - QPushButton -
double_text_button.h
-
-
- - - - -
diff --git a/switchable_label.py b/switchable_label.py new file mode 100644 index 0000000..44b9207 --- /dev/null +++ b/switchable_label.py @@ -0,0 +1,37 @@ +from PyQt5.QtWidgets import QLabel + +class SwitchableLabel(QLabel): + def __init__(self, parent = None): + super().__init__(parent) + self.switch_on_color = None + self.switch_off_color = None + + def set_colors(self, on, off): + self.switch_on_color = on + self.switch_off_color = off + + def switch_on(self): + self.setStyleSheet(f"background-color: {self.switch_on_color}") + + def switch_off(self): + self.setStyleSheet(f"background-color: {self.switch_off_color}") + + +class SwitchableLabelIterable(object): + def __init__(self, *labels): + self.labels = labels + + def __iter__(self): + for lab in self.labels: + yield lab + + def switch_on(label): + for lab in self.labels: + if lab == label: + lab.switch_on() + else: + lab.switch_off() + + def switch_off_all(self): + for lab in self.labels: + lab.switch_off() diff --git a/threads.py b/threads.py index d18ce53..fa36d01 100644 --- a/threads.py +++ b/threads.py @@ -33,8 +33,6 @@ class DownloadThread(QThread): def run(self): try: db = urllib3.PoolManager().request('GET', Database.LINK_LOC) - # db = urllib.request.urlopen(constants.Database.LINK_LOC) - # raise urllib.error.URLError('Test') except urllib3.exceptions.MaxRetryError: # No internet connection. self.__status = ThreadStatus.NO_CONNECTION_ERR return @@ -54,7 +52,6 @@ class DownloadThread(QThread): if os.path.exists(Constants.DATA_FOLDER): rmtree(Constants.DATA_FOLDER) try: - # data_folder = db.read() with ZipFile(BytesIO(db.data)) as zipped: zipped.extractall() except: