Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • software_public/passoft/sohstationviewer
1 result
Show changes
Showing
with 152 additions and 112 deletions
......@@ -24,8 +24,8 @@ class PlotTypeDialog(UiDBInfoDialog):
so it's needed to set to True to prevent the row to be deleted
"""
self.add_widget(None, row_idx, 0) # No.
self.add_widget(self.data_list, row_idx, 1, foreign_key=True)
self.add_widget(self.data_list, row_idx, 2, foreign_key=True,
self.add_widget(self.database_rows, row_idx, 1, foreign_key=True)
self.add_widget(self.database_rows, row_idx, 2, foreign_key=True,
field_name='description')
def get_data_list(self):
......
from PySide2 import QtWidgets, QtGui
from PySide2.QtWidgets import QWidget, QDialog
from PySide6 import QtWidgets, QtGui
from PySide6.QtWidgets import QWidget, QDialog
def display_color(color_label: QtWidgets.QLabel, color: str):
......@@ -10,7 +10,7 @@ def display_color(color_label: QtWidgets.QLabel, color: str):
:param color: the color that is given to update the color_label
"""
palette = color_label.palette()
palette.setColor(QtGui.QPalette.Background, QtGui.QColor(color))
palette.setColor(QtGui.QPalette.ColorRole.Window, QtGui.QColor(color))
color_label.setPalette(palette)
......
......@@ -2,8 +2,8 @@ import sys
import platform
import os
from PySide2 import QtWidgets
from PySide2.QtWidgets import QWidget
from PySide6 import QtWidgets
from PySide6.QtWidgets import QWidget
from sohstationviewer.view.db_config.value_color_helper.\
edit_value_color_dialog.edit_value_color_dialog_super_class import \
......
......@@ -3,8 +3,8 @@ import platform
import os
from typing import List, Dict, Optional
from PySide2 import QtWidgets, QtCore, QtGui
from PySide2.QtWidgets import QWidget
from PySide6 import QtWidgets, QtCore, QtGui
from PySide6.QtWidgets import QWidget
from sohstationviewer.view.db_config.value_color_helper.\
edit_value_color_dialog.edit_value_color_dialog_super_class import \
......@@ -25,15 +25,15 @@ class BoundValidator(QtGui.QValidator):
"""
def validate(self, input_val, pos):
if input_val in ['', '-']:
return QtGui.QValidator.Acceptable
return QtGui.QValidator.State.Acceptable
try:
input_val = float(input_val)
except ValueError:
return QtGui.QValidator.Invalid
return QtGui.QValidator.State.Invalid
if -10 <= input_val <= 10:
return QtGui.QValidator.Acceptable
return QtGui.QValidator.State.Acceptable
else:
return QtGui.QValidator.Invalid
return QtGui.QValidator.State.Invalid
class MultiColorDotDialog(EditValueColorDialog):
......@@ -84,8 +84,8 @@ class MultiColorDotDialog(EditValueColorDialog):
self.setWindowTitle("Edit Multi Color Dot Plotting")
# set focus policy to not be clicked by hitting enter in higher bound
self.cancel_btn.setFocusPolicy(QtCore.Qt.NoFocus)
self.save_colors_btn.setFocusPolicy(QtCore.Qt.NoFocus)
self.cancel_btn.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.save_colors_btn.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.set_value_row_id_dict()
......@@ -156,7 +156,7 @@ class MultiColorDotDialog(EditValueColorDialog):
select_color_btn.clicked.connect(
lambda: self.on_select_color(row_id))
# set focus policy to not be clicked by hitting enter in higher bound
select_color_btn.setFocusPolicy(QtCore.Qt.NoFocus)
select_color_btn.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
color_label = QtWidgets.QLabel()
color_label.setFixedWidth(30)
......
......@@ -2,8 +2,8 @@ import sys
import platform
import os
from PySide2 import QtWidgets
from PySide2.QtWidgets import QWidget
from PySide6 import QtWidgets
from PySide6.QtWidgets import QWidget
from sohstationviewer.view.db_config.value_color_helper.\
edit_value_color_dialog.edit_value_color_dialog_super_class import \
......
......@@ -2,8 +2,8 @@ import sys
import platform
import os
from PySide2 import QtWidgets
from PySide2.QtWidgets import QWidget
from PySide6 import QtWidgets
from PySide6.QtWidgets import QWidget
from sohstationviewer.view.db_config.value_color_helper.\
edit_value_color_dialog.edit_value_color_dialog_super_class import \
......
......@@ -4,9 +4,9 @@ import os
from pathlib import Path
from typing import Optional
from PySide2 import QtWidgets, QtGui, QtCore
from PySide2.QtCore import Qt
from PySide2.QtWidgets import QWidget, QDialog, QTextEdit
from PySide6 import QtWidgets, QtGui, QtCore
from PySide6.QtCore import Qt
from PySide6.QtWidgets import QWidget, QDialog, QTextEdit
from sohstationviewer.view.db_config.value_color_helper.functions import \
convert_value_color_str, prepare_value_color_html
......@@ -31,7 +31,9 @@ class ValueColorWidget(QTextEdit):
self.setReadOnly(True)
# change cursor to Arrow so user know they can't edit directly
self.viewport().setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
self.viewport().setCursor(
QtGui.QCursor(QtCore.Qt.CursorShape.ArrowCursor)
)
# to see all info
self.setFixedHeight(28)
self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
......@@ -55,7 +57,7 @@ class ValueColorWidget(QTextEdit):
layout.addWidget(self.edit_button, 0, Qt.AlignRight)
layout.setSpacing(0)
layout.setMargin(5)
layout.setContentsMargins(5, 5, 5, 5)
def set_background(self, background: str):
"""
......@@ -66,9 +68,10 @@ class ValueColorWidget(QTextEdit):
"""
palette = self.palette()
if background == 'B':
palette.setColor(QtGui.QPalette.Text, Qt.white)
palette.setColor(QtGui.QPalette.Base, Qt.black)
palette.setColor(QtGui.QPalette.PlaceholderText, Qt.lightGray)
palette.setColor(QtGui.QPalette.ColorRole.Text, Qt.white)
palette.setColor(QtGui.QPalette.ColorRole.Base, Qt.black)
palette.setColor(QtGui.QPalette.ColorRole.PlaceholderText,
Qt.lightGray)
self.setPalette(palette)
def set_value_color(self, plot_type: str, value_color_str: str) \
......
from PySide2 import QtCore
from PySide2.QtGui import (
from PySide6 import QtCore
from PySide6.QtGui import (
QContextMenuEvent, QGuiApplication, QKeySequence,
QKeyEvent
QKeyEvent, QAction,
)
from PySide2.QtWidgets import QListWidget, QMenu, QAction
from PySide6.QtWidgets import QListWidget, QMenu
class FileInfoWidget(QListWidget):
def __init__(self, parent):
super().__init__(parent)
self.parent = parent
self.setContextMenuPolicy(QtCore.Qt.DefaultContextMenu)
self.setContextMenuPolicy(
QtCore.Qt.ContextMenuPolicy.DefaultContextMenu
)
def contextMenuEvent(self, event: QContextMenuEvent):
if not self.count():
......
from PySide2 import QtWidgets
from PySide6 import QtWidgets
class FileListItem(QtWidgets.QListWidgetItem):
......@@ -12,5 +12,5 @@ class FileListItem(QtWidgets.QListWidgetItem):
except AttributeError:
path = file_path
super().__init__(path, parent,
type=QtWidgets.QListWidgetItem.UserType)
type=QtWidgets.QListWidgetItem.ItemType.UserType)
self.file_path = path
......@@ -2,8 +2,8 @@ import sys
from pathlib import Path
from typing import Tuple, Callable, Union, List, Dict
from PySide2 import QtCore, QtGui, QtWidgets
from PySide2.QtWidgets import QStyle
from PySide6 import QtCore, QtGui, QtWidgets
from PySide6.QtWidgets import QStyle
from sohstationviewer.view.util.functions import (
create_search_results_file, create_table_of_content_file)
......@@ -271,11 +271,13 @@ class HelpBrowser(QtWidgets.QWidget):
'Recreate Table of Contents', self.recreate_table_contents)
self.add_nav_button(
nav_bar, self.style().standardIcon(QStyle.SP_ArrowBack),
nav_bar,
self.style().standardIcon(QStyle.StandardPixmap.SP_ArrowBack),
'Search Backward', self.search_backward)
self.add_nav_button(
nav_bar, self.style().standardIcon(QStyle.SP_ArrowForward),
nav_bar,
self.style().standardIcon(QStyle.StandardPixmap.SP_ArrowForward),
'Search Forward', self.search_forward)
self.go_to_search_results_button = self.add_nav_button(
......@@ -332,7 +334,7 @@ class HelpBrowser(QtWidgets.QWidget):
index = file_system_model.setRootPath(self.docdir_path.as_posix())
file_system_model.setFilter(
QtCore.QDir.NoDotAndDotDot | QtCore.QDir.Files)
QtCore.QDir.Filter.NoDotAndDotDot | QtCore.QDir.Filter.Files)
file_system_model.setNameFilters(['*.help.md'])
file_system_model.setNameFilterDisables(False) # hide inactive
......@@ -517,7 +519,9 @@ class HelpBrowser(QtWidgets.QWidget):
"""
self.tree_view.setCurrentIndex(self.file_system_model.index(
filepath.as_posix(), 0, 0))
self.tree_view.update()
# pyside2 need the following line to update tree_view
# but it causes bug in pyside6
# self.tree_view.update()
self.help_view.setSource(QtCore.QUrl(filepath.as_posix()))
......
......@@ -5,10 +5,10 @@ from datetime import datetime, date
from typing import List, Tuple, Union, Dict
from pathlib import Path
from PySide2 import QtCore, QtWidgets, QtGui
from PySide2.QtCore import QSize
from PySide2.QtGui import QFont, QPalette, QColor
from PySide2.QtWidgets import QFrame, QListWidgetItem, QMessageBox
from PySide6 import QtCore, QtWidgets, QtGui
from PySide6.QtCore import QSize
from PySide6.QtGui import QFont, QPalette, QColor
from PySide6.QtWidgets import QFrame, QListWidgetItem, QMessageBox
from sohstationviewer.conf import constants
from sohstationviewer.model.data_loader import DataLoader
......@@ -289,8 +289,9 @@ class MainWindow(QtWidgets.QMainWindow, UIMainWindow):
msg = f"{str(e)}!!!\n\nDo you want to continue?"
result = QtWidgets.QMessageBox.question(
self, "Confirmation", msg,
QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No)
if result == QtWidgets.QMessageBox.No:
QtWidgets.QMessageBox.StandardButton.Yes |
QtWidgets.QMessageBox.StandardButton.No)
if result == QtWidgets.QMessageBox.StandardButton.No:
return
try:
win = ChannelPreferDialog(self, self.list_of_dir)
......@@ -410,7 +411,7 @@ class MainWindow(QtWidgets.QMainWindow, UIMainWindow):
curr_dir_line_edit.
"""
fd = QtWidgets.QFileDialog(self)
fd.setFileMode(QtWidgets.QFileDialog.Directory)
fd.setFileMode(QtWidgets.QFileDialog.FileMode.Directory)
fd.setDirectory(self.curr_dir_line_edit.text())
fd.exec()
try:
......@@ -486,8 +487,9 @@ class MainWindow(QtWidgets.QMainWindow, UIMainWindow):
f"Do you want to continue?")
result = QtWidgets.QMessageBox.question(
self, "Confirmation", msg,
QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No)
if result == QtWidgets.QMessageBox.No:
QtWidgets.QMessageBox.StandardButton.Yes |
QtWidgets.QMessageBox.StandardButton.No)
if result == QtWidgets.QMessageBox.StandardButton.No:
return
self.all_soh_chans_check_box.setChecked(True)
self.curr_pref_soh_list_name_txtbox.setText('')
......@@ -609,8 +611,11 @@ class MainWindow(QtWidgets.QMainWindow, UIMainWindow):
LogType.INFO)
self.clear_plots()
start_tm_str = self.time_from_date_edit.date().toString(
QtCore.Qt.ISODate)
end_tm_str = self.time_to_date_edit.date().toString(QtCore.Qt.ISODate)
QtCore.Qt.DateFormat.ISODate
)
end_tm_str = self.time_to_date_edit.date().toString(
QtCore.Qt.DateFormat.ISODate
)
self.start_tm = datetime.strptime(start_tm_str, TM_FORMAT).timestamp()
self.end_tm = datetime.strptime(end_tm_str, TM_FORMAT).timestamp()
if self.end_tm <= self.start_tm:
......@@ -672,10 +677,12 @@ class MainWindow(QtWidgets.QMainWindow, UIMainWindow):
msgbox = QtWidgets.QMessageBox()
msgbox.setWindowTitle('Do you want to continue?')
msgbox.setText(str(e))
msgbox.addButton(QtWidgets.QMessageBox.Cancel)
msgbox.addButton('Continue', QtWidgets.QMessageBox.YesRole)
msgbox.addButton(QtWidgets.QMessageBox.StandardButton.Cancel)
msgbox.addButton(
'Continue', QtWidgets.QMessageBox.ButtonRole.YesRole
)
result = msgbox.exec()
if result == QtWidgets.QMessageBox.Cancel:
if result == QtWidgets.QMessageBox.StandardButton.Cancel:
self.cancel_loading()
return
self.data_type == 'Unknown'
......@@ -701,8 +708,11 @@ class MainWindow(QtWidgets.QMainWindow, UIMainWindow):
return
start_tm_str = self.time_from_date_edit.date().toString(
QtCore.Qt.ISODate)
end_tm_str = self.time_to_date_edit.date().toString(QtCore.Qt.ISODate)
QtCore.Qt.DateFormat.ISODate
)
end_tm_str = self.time_to_date_edit.date().toString(
QtCore.Qt.DateFormat.ISODate
)
self.start_tm = datetime.strptime(start_tm_str, TM_FORMAT).timestamp()
self.end_tm = datetime.strptime(end_tm_str, TM_FORMAT).timestamp()
......@@ -1208,7 +1218,7 @@ class MainWindow(QtWidgets.QMainWindow, UIMainWindow):
print(f"DEVELOPING ERROR: Type of form must be 'QWidget' instead "
f"of '{form.__class__.__name__}'")
if form not in self.forms_in_forms_menu:
action = QtWidgets.QAction(form_name, self)
action = QtGui.QAction(form_name, self)
self.forms_menu.addAction(action)
action.triggered.connect(lambda: self.raise_form(form))
self.forms_in_forms_menu.append(form)
......@@ -1284,13 +1294,13 @@ class MainWindow(QtWidgets.QMainWindow, UIMainWindow):
# Create a line that separate filtered list of directories and list of
# directories.
separator_list_item = QListWidgetItem()
separator_list_item.setFlags(QtCore.Qt.NoItemFlags)
separator_list_item.setFlags(QtCore.Qt.ItemFlag.NoItemFlags)
separator_list_item.setSizeHint(
QSize(separator_list_item.sizeHint().width(), 10) # noqa
)
self.open_files_list.insertItem(0, separator_list_item)
line = QFrame()
line.setFrameShape(QFrame.HLine)
line.setFrameShape(QFrame.Shape.HLine)
self.open_files_list.setItemWidget(separator_list_item, line)
for path in reversed(filtered_file_paths):
......@@ -1301,6 +1311,6 @@ class MainWindow(QtWidgets.QMainWindow, UIMainWindow):
bold_font = QFont()
bold_font.setBold(True)
found_files_list_item.setFont(bold_font)
found_files_list_item.setFlags(QtCore.Qt.NoItemFlags)
found_files_list_item.setForeground(QtCore.Qt.black)
found_files_list_item.setFlags(QtCore.Qt.ItemFlag.NoItemFlags)
found_files_list_item.setForeground(QtCore.Qt.GlobalColor.black)
self.open_files_list.insertItem(0, found_files_list_item)
......@@ -5,7 +5,7 @@ import traceback
from pathlib import Path
from typing import List, Optional, Literal, Iterable, Any
from PySide2 import QtWidgets, QtCore
from PySide6 import QtWidgets, QtCore
from matplotlib.axes import Axes
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as Canvas
from matplotlib.figure import Figure
......@@ -226,7 +226,7 @@ class GPSDialog(QtWidgets.QWidget):
export_dir_layout.addWidget(self.export_dir_button)
export_dir_layout.addWidget(self.export_dir_textbox)
# self.export_dir_textbox.setReadOnly(True)
self.export_dir_textbox.setCursor(QtCore.Qt.IBeamCursor)
self.export_dir_textbox.setCursor(QtCore.Qt.CursorShape.IBeamCursor)
export_dir_layout.setContentsMargins(5, 7, 5, 0)
export_dir_layout.setStretch(1, 3)
export_dir_layout.setSpacing(5)
......@@ -324,7 +324,7 @@ class GPSDialog(QtWidgets.QWidget):
based on the folder selected by the user.
"""
fd = QtWidgets.QFileDialog(self)
fd.setFileMode(QtWidgets.QFileDialog.Directory)
fd.setFileMode(QtWidgets.QFileDialog.FileMode.Directory)
fd.setDirectory(self.export_dir_textbox.text())
fd.exec()
new_path = fd.selectedFiles()[0]
......
......@@ -2,7 +2,7 @@
from typing import Tuple, Union, Dict, List
from PySide2 import QtCore
from PySide6 import QtCore
from sohstationviewer.model.general_data.general_data import GeneralData
......
from PySide2 import QtCore
from PySide6 import QtCore
from sohstationviewer.conf import constants as const
from sohstationviewer.view.plotting.plotting_widget.plotting_processor_helper\
......
......@@ -6,10 +6,10 @@ import numpy as np
import matplotlib.text
from matplotlib import pyplot as pl
from matplotlib.transforms import Bbox
from PySide2.QtCore import QTimer, Qt, QSize
from PySide2.QtGui import QResizeEvent
from PySide2 import QtCore, QtWidgets
from PySide2.QtWidgets import QWidget, QApplication, QTextBrowser
from PySide6.QtCore import QTimer, QSize
from PySide6.QtGui import QResizeEvent
from PySide6 import QtCore, QtWidgets
from PySide6.QtWidgets import QWidget, QApplication, QTextBrowser
from sohstationviewer.conf import constants
from sohstationviewer.view.util.color import set_color_mode
......@@ -396,7 +396,7 @@ class PlottingWidget(QtWidgets.QScrollArea):
if self.plotting_data1 == {}:
return
if self.name == 'TPS':
if modifiers == QtCore.Qt.ShiftModifier:
if modifiers == QtCore.Qt.KeyboardModifier.ShiftModifier:
# not start zooming from TPS Widget
return
# on_button_press_event() take place after on_pick_event where
......@@ -407,8 +407,9 @@ class PlottingWidget(QtWidgets.QScrollArea):
# We only want to remove the text on the ruler when we start zooming in
# or move the ruler to another location.
if modifiers in [QtCore.Qt.ControlModifier, QtCore.Qt.MetaModifier,
Qt.ShiftModifier]:
if modifiers in [QtCore.Qt.KeyboardModifier.ControlModifier,
QtCore.Qt.KeyboardModifier.MetaModifier,
QtCore.Qt.KeyboardModifier.ShiftModifier]:
try:
self.ruler_text.remove()
self.ruler_text = None
......@@ -416,22 +417,23 @@ class PlottingWidget(QtWidgets.QScrollArea):
pass
for w in self.peer_plotting_widgets:
if modifiers in [QtCore.Qt.ControlModifier, QtCore.Qt.MetaModifier,
Qt.ShiftModifier]:
if modifiers in [QtCore.Qt.KeyboardModifier.ControlModifier,
QtCore.Qt.KeyboardModifier.MetaModifier,
QtCore.Qt.KeyboardModifier.ShiftModifier]:
try:
w.ruler_text.remove()
w.ruler_text = None
except AttributeError:
pass
if modifiers == QtCore.Qt.ShiftModifier:
if modifiers == QtCore.Qt.KeyboardModifier.ShiftModifier:
w.on_shift_click(xdata)
elif modifiers in [QtCore.Qt.ControlModifier,
QtCore.Qt.MetaModifier]:
elif modifiers in [QtCore.Qt.KeyboardModifier.ControlModifier,
QtCore.Qt.KeyboardModifier.MetaModifier]:
w.on_ctrl_cmd_click(xdata)
w.draw()
if (not self.is_button_press_event_triggered_pick_event or
modifiers == QtCore.Qt.ShiftModifier):
modifiers == QtCore.Qt.KeyboardModifier.ShiftModifier):
# Bring the main window to the front only if no point was picked.
# In logpeek and qpeek, zooming is always done, event if a point is
# picked, so we replicate that here.
......@@ -518,7 +520,7 @@ class PlottingWidget(QtWidgets.QScrollArea):
:param event: QKeyEvent - event to know what key is pressed
"""
if event.key() == QtCore.Qt.Key_Escape:
if event.key() == QtCore.Qt.Key.Key_Escape:
try:
self.ruler_text.remove()
self.ruler_text = None
......@@ -690,10 +692,11 @@ class PlottingWidget(QtWidgets.QScrollArea):
msgbox = QtWidgets.QMessageBox()
msgbox.setWindowTitle("Color Mode Conflict")
msgbox.setText(msg)
msgbox.addButton(QtWidgets.QMessageBox.Cancel)
msgbox.addButton('Continue', QtWidgets.QMessageBox.YesRole)
msgbox.addButton(QtWidgets.QMessageBox.StandardButton.Cancel)
msgbox.addButton('Continue',
QtWidgets.QMessageBox.ButtonRole.YesRole)
result = msgbox.exec()
if result == QtWidgets.QMessageBox.Cancel:
if result == QtWidgets.QMessageBox.StandardButton.Cancel:
return
self.main_window.color_mode = self.c_mode
if self.c_mode == 'B':
......@@ -707,10 +710,11 @@ class PlottingWidget(QtWidgets.QScrollArea):
msgbox = QtWidgets.QMessageBox()
msgbox.setWindowTitle("Background Mode Confirmation")
msgbox.setText(msg)
msgbox.addButton(QtWidgets.QMessageBox.Cancel)
msgbox.addButton('Continue', QtWidgets.QMessageBox.YesRole)
msgbox.addButton(QtWidgets.QMessageBox.StandardButton.Cancel)
msgbox.addButton('Continue',
QtWidgets.QMessageBox.ButtonRole.YesRole)
result = msgbox.exec()
if result == QtWidgets.QMessageBox.Cancel:
if result == QtWidgets.QMessageBox.StandardButton.Cancel:
return
save_plot_dlg = SavePlotDialog(
self.parent, self.main_window, default_name)
......
# Display time-power-squared values for waveform data
from typing import Union, Tuple, Dict, List
from PySide2 import QtWidgets, QtCore
from PySide2.QtCore import QEventLoop, Qt
from PySide2.QtGui import QCursor
from PySide2.QtWidgets import QApplication, QTabWidget
from PySide6 import QtWidgets, QtCore
from PySide6.QtCore import QEventLoop, Qt
from PySide6.QtGui import QCursor
from PySide6.QtWidgets import QApplication, QTabWidget
from sohstationviewer.database.extract_data import (
get_color_def, get_color_ranges
......
from typing import Dict, Optional, List
import numpy as np
from PySide2 import QtCore
from PySide6 import QtCore
from sohstationviewer.view.plotting.time_power_square.\
time_power_squared_helper import get_tps_for_discontinuous_data
......@@ -14,7 +14,19 @@ class TimePowerSquaredProcessorSignal(QtCore.QObject):
class TimePowerSquaredProcessor(QtCore.QRunnable):
def __init__(self, channel_id: str, channel_data: dict, start_time: float,
end_time: float, start_5mins_of_diff_days: np.ndarray):
end_time: float, start_5mins_of_diff_days: np.ndarray,
tps_data: Optional[Dict]):
"""
:param channel_id: name of channel
:param channel_data: data of channel
:param start_time: start epoch time of data
:param end_time: end epoch time of data
:param start_5mins_of_diff_days: [[288 of floats], ] - the list of
start of all five minutes of days specified by start_tm and end_tm in
which each day has 288 of 5 minutes.
:param tps_data: calculated tps_data from the first plot or None for
the first plot
"""
super().__init__()
self.channel_id = channel_id
self.channel_data = channel_data
......@@ -22,6 +34,7 @@ class TimePowerSquaredProcessor(QtCore.QRunnable):
self.end_time = end_time
self.start_5mins_of_diff_days = start_5mins_of_diff_days
self.signals = TimePowerSquaredProcessorSignal()
self.tps_data = tps_data
# Flag to indicate whether the processor should stop running and clean
# up.
self.stop = False
......@@ -77,8 +90,11 @@ class TimePowerSquaredProcessor(QtCore.QRunnable):
saved in channel_data['tps-data']: np.mean(np.square(5m data))
"""
self.channel_data['tps_data'] = get_tps_for_discontinuous_data(
self.channel_data, self.start_5mins_of_diff_days)
if self.tps_data is None:
self.channel_data['tps_data'] = get_tps_for_discontinuous_data(
self.channel_data, self.start_5mins_of_diff_days)
else:
self.channel_data['tps_data'] = self.tps_data
self.signals.finished.emit(self.channel_id)
......
......@@ -2,7 +2,7 @@ from math import sqrt
from typing import List, Tuple, Union, Dict
import numpy as np
from PySide2 import QtCore
from PySide6 import QtCore
from matplotlib.axes import Axes
from matplotlib.lines import Line2D
......@@ -131,15 +131,17 @@ class TimePowerSquaredWidget(plotting_widget.PlottingWidget):
for chan_id in self.plotting_data1:
c_data = self.plotting_data1[chan_id]
if 'tps_data' not in c_data:
self.channels.append(chan_id)
channel_processor = TimePowerSquaredProcessor(
chan_id, c_data, self.min_x, self.max_x,
self.start_5mins_of_diff_days
)
channel_processor.signals.finished.connect(self.channel_done)
channel_processor.signals.stopped.connect(self.channel_done)
self.tps_processors.append(channel_processor)
tps_data = None
if 'tps_data' in c_data:
tps_data = c_data['tps_data']
self.channels.append(chan_id)
channel_processor = TimePowerSquaredProcessor(
chan_id, c_data, self.min_x, self.max_x,
self.start_5mins_of_diff_days, tps_data
)
channel_processor.signals.finished.connect(self.channel_done)
channel_processor.signals.stopped.connect(self.channel_done)
self.tps_processors.append(channel_processor)
# Because the widget determine if processing is done by comparing the
# lists of scheduled and finished channels, if a channel runs fast
......@@ -183,7 +185,6 @@ class TimePowerSquaredWidget(plotting_widget.PlottingWidget):
Add finishing touches to the plot
Emit the stopped signal of the widget
"""
if chan_id == '':
msg = f'{self.get_plot_name()} stopped.'
else:
......@@ -192,6 +193,7 @@ class TimePowerSquaredWidget(plotting_widget.PlottingWidget):
self.done()
display_tracking_info(self.tracking_box, msg)
self.is_working = False
self.stopped.emit()
def done(self):
......@@ -202,7 +204,6 @@ class TimePowerSquaredWidget(plotting_widget.PlottingWidget):
self.main_widget.setFixedHeight(self.plotting_bot_pixel)
self.set_lim_markers()
self.draw()
self.is_working = False
def plot_channel(self, c_data: str, chan_id: str) -> Axes:
"""
......
# Drawing waveform and mass position
from typing import Tuple, Union, Dict
from PySide2 import QtCore, QtWidgets
from PySide6 import QtCore, QtWidgets
from sohstationviewer.model.general_data.general_data import GeneralData
......
......@@ -4,8 +4,8 @@ import os
from pathlib import Path
from typing import Union, Optional
from PySide2 import QtWidgets, QtCore, QtGui
from PySide2.QtWidgets import QApplication, QWidget, QDialog
from PySide6 import QtWidgets, QtCore, QtGui
from PySide6.QtWidgets import QApplication, QWidget, QDialog
from sohstationviewer.conf import constants
......@@ -67,7 +67,7 @@ class SavePlotDialog(QDialog):
main_layout.addWidget(self.save_filename_textbox, 1, 1, 1, 5)
main_layout.addWidget(QtWidgets.QLabel('DPI'),
2, 2, 1, 1, QtGui.Qt.AlignRight)
2, 2, 1, 1, QtGui.Qt.AlignmentFlag.AlignRight)
self.dpi_line_edit.setRange(50, 300)
self.dpi_line_edit.setValue(100)
main_layout.addWidget(self.dpi_line_edit, 2, 3, 1, 1)
......@@ -91,7 +91,7 @@ class SavePlotDialog(QDialog):
based on the folder selected by the user.
"""
fd = QtWidgets.QFileDialog(self)
fd.setFileMode(QtWidgets.QFileDialog.Directory)
fd.setFileMode(QtWidgets.QFileDialog.FileMode.Directory)
fd.setDirectory(self.save_dir_textbox.text())
fd.exec()
new_path = fd.selectedFiles()[0]
......