class Ui_TimeSeriesVariableResolutionEditor(object):
    def setupUi(self, TimeSeriesVariableResolutionEditor):
        if not TimeSeriesVariableResolutionEditor.objectName():
            TimeSeriesVariableResolutionEditor.setObjectName(u"TimeSeriesVariableResolutionEditor")
        TimeSeriesVariableResolutionEditor.resize(718, 478)
        self.verticalLayout = QVBoxLayout(TimeSeriesVariableResolutionEditor)
        self.verticalLayout.setObjectName(u"verticalLayout")
        self.splitter = QSplitter(TimeSeriesVariableResolutionEditor)
        self.splitter.setObjectName(u"splitter")
        self.splitter.setOrientation(Qt.Horizontal)
        self.verticalLayoutWidget = QWidget(self.splitter)
        self.verticalLayoutWidget.setObjectName(u"verticalLayoutWidget")
        self.left_layout = QVBoxLayout(self.verticalLayoutWidget)
        self.left_layout.setObjectName(u"left_layout")
        self.left_layout.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout_2 = QHBoxLayout()
        self.horizontalLayout_2.setObjectName(u"horizontalLayout_2")
        self.ignore_year_check_box = QCheckBox(self.verticalLayoutWidget)
        self.ignore_year_check_box.setObjectName(u"ignore_year_check_box")

        self.horizontalLayout_2.addWidget(self.ignore_year_check_box)

        self.repeat_check_box = QCheckBox(self.verticalLayoutWidget)
        self.repeat_check_box.setObjectName(u"repeat_check_box")

        self.horizontalLayout_2.addWidget(self.repeat_check_box)

        self.horizontalSpacer_3 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)

        self.horizontalLayout_2.addItem(self.horizontalSpacer_3)


        self.left_layout.addLayout(self.horizontalLayout_2)

        self.time_series_table = IndexedValueTableView(self.verticalLayoutWidget)
        self.time_series_table.setObjectName(u"time_series_table")

        self.left_layout.addWidget(self.time_series_table)

        self.splitter.addWidget(self.verticalLayoutWidget)
        self.plot_widget = PlotWidget(self.splitter)
        self.plot_widget.setObjectName(u"plot_widget")
        self.splitter.addWidget(self.plot_widget)

        self.verticalLayout.addWidget(self.splitter)


        self.retranslateUi(TimeSeriesVariableResolutionEditor)

        QMetaObject.connectSlotsByName(TimeSeriesVariableResolutionEditor)
    # setupUi

    def retranslateUi(self, TimeSeriesVariableResolutionEditor):
        TimeSeriesVariableResolutionEditor.setWindowTitle(QCoreApplication.translate("TimeSeriesVariableResolutionEditor", u"Form", None))
        self.ignore_year_check_box.setText(QCoreApplication.translate("TimeSeriesVariableResolutionEditor", u"Ignore year", None))
        self.repeat_check_box.setText(QCoreApplication.translate("TimeSeriesVariableResolutionEditor", u"Repeat", None))
Beispiel #2
0
 def setUp(self):
     QApplication.clipboard().clear()
     self._table_view = IndexedValueTableView(parent=None)
     series = TimeSeriesVariableResolution(
         [
             "2019-08-08T12:00", "2019-08-08T13:00", "2019-08-08T14:00",
             "2019-08-08T15:00"
         ],
         [1.1, 2.2, 3.3, 4.4],
         False,
         False,
     )
     model = TimeSeriesModelVariableResolution(series)
     self._table_view.setModel(model)
Beispiel #3
0
    def setupUi(self, TimePatternEditor):
        if not TimePatternEditor.objectName():
            TimePatternEditor.setObjectName(u"TimePatternEditor")
        TimePatternEditor.resize(586, 443)
        self.verticalLayout = QVBoxLayout(TimePatternEditor)
        self.verticalLayout.setObjectName(u"verticalLayout")
        self.pattern_edit_table = IndexedValueTableView(TimePatternEditor)
        self.pattern_edit_table.setObjectName(u"pattern_edit_table")

        self.verticalLayout.addWidget(self.pattern_edit_table)

        self.retranslateUi(TimePatternEditor)

        QMetaObject.connectSlotsByName(TimePatternEditor)
class Ui_TimePatternEditor(object):
    def setupUi(self, TimePatternEditor):
        if not TimePatternEditor.objectName():
            TimePatternEditor.setObjectName(u"TimePatternEditor")
        TimePatternEditor.resize(586, 443)
        self.verticalLayout = QVBoxLayout(TimePatternEditor)
        self.verticalLayout.setObjectName(u"verticalLayout")
        self.pattern_edit_table = IndexedValueTableView(TimePatternEditor)
        self.pattern_edit_table.setObjectName(u"pattern_edit_table")

        self.verticalLayout.addWidget(self.pattern_edit_table)


        self.retranslateUi(TimePatternEditor)

        QMetaObject.connectSlotsByName(TimePatternEditor)
    # setupUi

    def retranslateUi(self, TimePatternEditor):
        TimePatternEditor.setWindowTitle(QCoreApplication.translate("TimePatternEditor", u"Form", None))
Beispiel #5
0
class TestIndexedValueTableView(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        if not QApplication.instance():
            QApplication()

    def setUp(self):
        QApplication.clipboard().clear()
        self._table_view = IndexedValueTableView(parent=None)
        series = TimeSeriesVariableResolution(
            [
                "2019-08-08T12:00", "2019-08-08T13:00", "2019-08-08T14:00",
                "2019-08-08T15:00"
            ],
            [1.1, 2.2, 3.3, 4.4],
            False,
            False,
        )
        model = TimeSeriesModelVariableResolution(series)
        self._table_view.setModel(model)

    def test_copy(self):
        selection_model = self._table_view.selectionModel()
        model = self._table_view.model()
        selection_model.select(model.index(0, 0), QItemSelectionModel.Select)
        selection_model.select(model.index(1, 1), QItemSelectionModel.Select)
        selection_model.select(model.index(2, 0), QItemSelectionModel.Select)
        self._table_view.copy()
        copied = QApplication.clipboard().text()
        self.assertEqual(
            copied,
            "2019-08-08T12:00:00\t\r\n\t{:n}\r\n2019-08-08T14:00:00\t\r\n".
            format(2.2))

    def test_paste_single_value(self):
        selection_model = self._table_view.selectionModel()
        model = self._table_view.model()
        selection_model.select(model.index(0, 1), QItemSelectionModel.Select)
        copied_data = locale.str(-1.1)
        QApplication.clipboard().setText(copied_data)
        self._table_view.paste()
        series = TimeSeriesVariableResolution(
            [
                "2019-08-08T12:00", "2019-08-08T13:00", "2019-08-08T14:00",
                "2019-08-08T15:00"
            ],
            [-1.1, 2.2, 3.3, 4.4],
            False,
            False,
        )
        self.assertEqual(model.value, series)

    def test_paste_single_index(self):
        selection_model = self._table_view.selectionModel()
        model = self._table_view.model()
        selection_model.select(model.index(0, 0), QItemSelectionModel.Select)
        copied_data = "2019-08-08T00:00"
        QApplication.clipboard().setText(copied_data)
        self._table_view.paste()
        series = TimeSeriesVariableResolution(
            [
                "2019-08-08T00:00", "2019-08-08T13:00", "2019-08-08T14:00",
                "2019-08-08T15:00"
            ],
            [1.1, 2.2, 3.3, 4.4],
            False,
            False,
        )
        self.assertEqual(model.value, series)

    def test_pasting_multiple_columns_to_last_row_expands_model(self):
        selection_model = self._table_view.selectionModel()
        model = self._table_view.model()
        selection_model.select(model.index(3, 1), QItemSelectionModel.Select)
        copied_data = "2019-08-08T17:00\t{:n}\n2019-08-08T18:00\t{:n}".format(
            -4.4, -5.5)
        QApplication.clipboard().setText(copied_data)
        self._table_view.paste()
        series = TimeSeriesVariableResolution(
            [
                "2019-08-08T12:00", "2019-08-08T13:00", "2019-08-08T14:00",
                "2019-08-08T17:00", "2019-08-08T18:00"
            ],
            [1.1, 2.2, 3.3, -4.4, -5.5],
            False,
            False,
        )
        self.assertEqual(model.value, series)

    def test_pasting_single_column_to_last_row_expands_model(self):
        selection_model = self._table_view.selectionModel()
        model = self._table_view.model()
        selection_model.select(model.index(3, 0), QItemSelectionModel.Select)
        copied_data = "2019-08-08T17:00\n2019-08-08T18:00"
        QApplication.clipboard().setText(copied_data)
        self._table_view.paste()
        series = TimeSeriesVariableResolution(
            [
                "2019-08-08T12:00", "2019-08-08T13:00", "2019-08-08T14:00",
                "2019-08-08T17:00", "2019-08-08T18:00"
            ],
            [1.1, 2.2, 3.3, 4.4, 0.0],
            False,
            False,
        )
        self.assertEqual(model.value, series)

    def test_paste_to_multirow_selection_limits_pasted_data(self):
        selection_model = self._table_view.selectionModel()
        model = self._table_view.model()
        selection_model.select(model.index(1, 0), QItemSelectionModel.Select)
        selection_model.select(model.index(1, 1), QItemSelectionModel.Select)
        selection_model.select(model.index(2, 0), QItemSelectionModel.Select)
        selection_model.select(model.index(2, 1), QItemSelectionModel.Select)
        copied_data = "2019-08-08T12:30\t{:n}\n2019-08-08T13:30\t{:n}\n2019-08-08T14:30\t{:n}".format(
            -2.2, -3.3, -4.4)
        QApplication.clipboard().setText(copied_data)
        self._table_view.paste()
        series = TimeSeriesVariableResolution(
            [
                "2019-08-08T12:00", "2019-08-08T12:30", "2019-08-08T13:30",
                "2019-08-08T15:00"
            ],
            [1.1, -2.2, -3.3, 4.4],
            False,
            False,
        )
        self.assertEqual(model.value, series)

    def test_paste_to_larger_selection_overrides_first_rows_only(self):
        selection_model = self._table_view.selectionModel()
        model = self._table_view.model()
        selection_model.select(model.index(0, 0), QItemSelectionModel.Select)
        selection_model.select(model.index(0, 1), QItemSelectionModel.Select)
        selection_model.select(model.index(1, 0), QItemSelectionModel.Select)
        selection_model.select(model.index(1, 1), QItemSelectionModel.Select)
        selection_model.select(model.index(2, 0), QItemSelectionModel.Select)
        selection_model.select(model.index(2, 1), QItemSelectionModel.Select)
        copied_data = "2019-08-08T12:30\t{:n}\n2019-08-08T13:30\t{:n}".format(
            -1.1, -2.2)
        QApplication.clipboard().setText(copied_data)
        self._table_view.paste()
        series = TimeSeriesVariableResolution(
            [
                "2019-08-08T12:30", "2019-08-08T13:30", "2019-08-08T14:00",
                "2019-08-08T15:00"
            ],
            [-1.1, -2.2, 3.3, 4.4],
            False,
            False,
        )
        self.assertEqual(model.value, series)

    def test_pasted_cells_are_selected(self):
        selection_model = self._table_view.selectionModel()
        model = self._table_view.model()
        selection_model.select(model.index(0, 1), QItemSelectionModel.Select)
        copied_data = locale.str(-1.1) + '\n' + locale.str(-2.2)
        QApplication.clipboard().setText(copied_data)
        self._table_view.paste()
        selected_indexes = selection_model.selectedIndexes()
        self.assertEqual(len(selected_indexes), 2)
        self.assertTrue(model.index(0, 1) in selected_indexes)
        self.assertTrue(model.index(1, 1) in selected_indexes)