Beispiel #1
0
    def _ui_settings_params_checks_ffv8(self, vbox: QtWidgets.QVBoxLayout,
                                        min_group_box: int) -> None:
        hbox = QtWidgets.QHBoxLayout()
        vbox.addLayout(hbox)
        hbox.addStretch()

        set_checks_ffv8 = QtWidgets.QGroupBox("Checks")
        set_checks_ffv8.setMinimumWidth(min_group_box)
        hbox.addWidget(set_checks_ffv8)
        chk_vbox = QtWidgets.QVBoxLayout()
        set_checks_ffv8.setLayout(chk_vbox)

        # set height
        height_hbox = QtWidgets.QHBoxLayout()
        chk_vbox.addLayout(height_hbox)
        self.set_height_label_ffv8 = QtWidgets.QLabel("Force flier heights to")
        self.set_height_label_ffv8.setDisabled(True)
        height_hbox.addWidget(self.set_height_label_ffv8)
        self.set_height_label_ffv8.setFixedHeight(
            GuiSettings.single_line_height())
        self.set_height_ffv8 = QtWidgets.QLineEdit("")
        height_hbox.addWidget(self.set_height_ffv8)
        self.set_height_ffv8.setFixedHeight(GuiSettings.single_line_height())
        # self.set_height_ffv8.setValidator(QtGui.QDoubleValidator(0.00001, 9999, 5, self.set_height_ffv8))
        # noinspection PyUnresolvedReferences
        self.set_height_ffv8.setAlignment(QtCore.Qt.AlignRight
                                          | QtCore.Qt.AlignVCenter)
        self.set_height_ffv8.setReadOnly(False)
        self.set_height_ffv8.setFont(GuiSettings.console_font())
        self.set_height_ffv8.setFixedWidth(60)
        self.set_height_ffv8.setDisabled(True)
        self.set_height_label2_ffv8 = QtWidgets.QLabel("meters")
        self.set_height_label2_ffv8.setDisabled(True)
        height_hbox.addWidget(self.set_height_label2_ffv8)
        height_hbox.addStretch()

        chk_vbox.addSpacing(6)

        self.set_check_laplacian_ffv8 = QtWidgets.QCheckBox(
            "#1: Laplacian Operator")
        self.set_check_laplacian_ffv8.setDisabled(True)
        self.set_check_laplacian_ffv8.setChecked(
            self.settings.value("survey/ff8_laplacian", 0) == 1)
        chk_vbox.addWidget(self.set_check_laplacian_ffv8)

        self.set_check_curv_ffv8 = QtWidgets.QCheckBox(
            "#2: Gaussian Curvature")
        self.set_check_curv_ffv8.setDisabled(True)
        self.set_check_curv_ffv8.setChecked(
            self.settings.value("survey/ff8_gaussian", 1) == 1)
        chk_vbox.addWidget(self.set_check_curv_ffv8)

        self.set_check_adjacent_ffv8 = QtWidgets.QCheckBox(
            "#3: Adjacent Cells")
        self.set_check_adjacent_ffv8.setDisabled(True)
        self.set_check_adjacent_ffv8.setChecked(
            self.settings.value("survey/ff8_adjacent", 1) == 1)
        chk_vbox.addWidget(self.set_check_adjacent_ffv8)

        self.set_check_slivers_ffv8 = QtWidgets.QCheckBox("#4: Edge Slivers")
        self.set_check_slivers_ffv8.setDisabled(True)
        self.set_check_slivers_ffv8.setChecked(
            self.settings.value("survey/ff8_slivers", 1) == 1)
        chk_vbox.addWidget(self.set_check_slivers_ffv8)

        self.set_check_isolated_ffv8 = QtWidgets.QCheckBox(
            "#5: Isolated Nodes")
        self.set_check_isolated_ffv8.setDisabled(True)
        self.set_check_isolated_ffv8.setChecked(
            self.settings.value("survey/ff8_orphans", 0) == 1)
        chk_vbox.addWidget(self.set_check_isolated_ffv8)

        self.set_check_edges_ffv8 = QtWidgets.QCheckBox("#6: Noisy Edges")
        self.set_check_edges_ffv8.setDisabled(True)
        self.set_check_edges_ffv8.setChecked(
            self.settings.value("survey/ff8_edges", 0) == 1)
        self.set_check_edges_ffv8.stateChanged.connect(self.click_set_6)
        chk_vbox.addWidget(self.set_check_edges_ffv8)

        slider_pct_gbox = QtWidgets.QGridLayout()
        chk_vbox.addLayout(slider_pct_gbox)

        # labels
        text_sz = 36
        text_label = QtWidgets.QLabel("")
        slider_pct_gbox.addWidget(text_label, 0, 0, 1, 1)

        self.text_pct_90 = QtWidgets.QLabel("90")
        self.text_pct_90.setFixedWidth(text_sz)
        self.text_pct_90.setAlignment(QtCore.Qt.AlignLeft)
        self.text_pct_90.setStyleSheet(GuiSettings.stylesheet_slider_labels())
        self.text_pct_90.setDisabled(True)
        slider_pct_gbox.addWidget(self.text_pct_90, 0, 1, 1, 1)
        self.text_pct_100 = QtWidgets.QLabel("100")
        self.text_pct_100.setFixedWidth(text_sz)
        self.text_pct_100.setAlignment(QtCore.Qt.AlignLeft)
        self.text_pct_100.setStyleSheet(GuiSettings.stylesheet_slider_labels())
        self.text_pct_100.setDisabled(True)
        slider_pct_gbox.addWidget(self.text_pct_100, 0, 2, 1, 1)
        self.text_pct_125 = QtWidgets.QLabel("125")
        self.text_pct_125.setFixedWidth(text_sz)
        self.text_pct_125.setAlignment(QtCore.Qt.AlignCenter)
        self.text_pct_125.setStyleSheet(GuiSettings.stylesheet_slider_labels())
        self.text_pct_125.setDisabled(True)
        slider_pct_gbox.addWidget(self.text_pct_125, 0, 3, 1, 1)
        self.text_pct_150 = QtWidgets.QLabel("150")
        self.text_pct_150.setFixedWidth(text_sz)
        self.text_pct_150.setAlignment(QtCore.Qt.AlignRight)
        self.text_pct_150.setStyleSheet(GuiSettings.stylesheet_slider_labels())
        self.text_pct_150.setDisabled(True)
        slider_pct_gbox.addWidget(self.text_pct_150, 0, 4, 1, 1)
        self.text_pct_200 = QtWidgets.QLabel("200")
        self.text_pct_200.setFixedWidth(text_sz)
        self.text_pct_200.setAlignment(QtCore.Qt.AlignRight)
        self.text_pct_200.setStyleSheet(GuiSettings.stylesheet_slider_labels())
        self.text_pct_200.setDisabled(True)
        slider_pct_gbox.addWidget(self.text_pct_200, 0, 5, 1, 1)

        self.text_pct = QtWidgets.QLabel("Pct. TVU")
        self.text_pct.setDisabled(True)
        slider_pct_gbox.addWidget(self.text_pct, 1, 0, 1, 1)

        self.slider_edges_pct_tvu_v8 = QtWidgets.QSlider(QtCore.Qt.Horizontal)
        self.slider_edges_pct_tvu_v8.setRange(1, 5)
        self.slider_edges_pct_tvu_v8.setSingleStep(1)
        self.slider_edges_pct_tvu_v8.setValue(2)
        self.slider_edges_pct_tvu_v8.setTickInterval(1)
        self.slider_edges_pct_tvu_v8.setTickPosition(
            QtWidgets.QSlider.TicksBelow)
        self.slider_edges_pct_tvu_v8.setDisabled(True)
        slider_pct_gbox.addWidget(self.slider_edges_pct_tvu_v8, 1, 1, 1, 5)

        slider_distance_gbox = QtWidgets.QGridLayout()
        chk_vbox.addLayout(slider_distance_gbox)

        # labels
        text_sz = 36
        text_label = QtWidgets.QLabel("")
        slider_distance_gbox.addWidget(text_label, 0, 0, 1, 1)

        self.text_distance_2 = QtWidgets.QLabel("2")
        self.text_distance_2.setFixedWidth(text_sz)
        self.text_distance_2.setAlignment(QtCore.Qt.AlignLeft)
        self.text_distance_2.setStyleSheet(
            GuiSettings.stylesheet_slider_labels())
        self.text_distance_2.setDisabled(True)
        self.text_distance_2.setHidden(True)
        slider_distance_gbox.addWidget(self.text_distance_2, 0, 1, 1, 4)
        self.text_distance_3 = QtWidgets.QLabel("3")
        self.text_distance_3.setFixedWidth(text_sz)
        self.text_distance_3.setAlignment(QtCore.Qt.AlignRight)
        self.text_distance_3.setStyleSheet(
            GuiSettings.stylesheet_slider_labels())
        self.text_distance_3.setDisabled(True)
        self.text_distance_3.setHidden(True)
        slider_distance_gbox.addWidget(self.text_distance_3, 0, 5, 1, 1)

        self.text_distance = QtWidgets.QLabel("Distance")
        self.text_distance.setHidden(True)
        self.text_distance.setDisabled(True)
        slider_distance_gbox.addWidget(self.text_distance, 1, 0, 1, 1)

        self.slider_edges_distance_v8 = QtWidgets.QSlider(QtCore.Qt.Horizontal)
        self.slider_edges_distance_v8.setRange(2, 3)
        self.slider_edges_distance_v8.setSingleStep(1)
        self.slider_edges_distance_v8.setValue(3)
        self.slider_edges_distance_v8.setTickInterval(1)
        self.slider_edges_distance_v8.setTickPosition(
            QtWidgets.QSlider.TicksBelow)
        self.slider_edges_distance_v8.setDisabled(True)
        self.slider_edges_distance_v8.setHidden(True)
        slider_distance_gbox.addWidget(self.slider_edges_distance_v8, 1, 1, 1,
                                       5)

        hbox.addStretch()
Beispiel #2
0
    def _ui_settings_debug_hfv4(self):
        self.debugHFv4 = QtWidgets.QGroupBox("Debug")
        self.debugHFv4.setHidden(True)
        self.settings_hfv4_vbox.addWidget(self.debugHFv4)

        vbox = QtWidgets.QVBoxLayout()
        vbox.setContentsMargins(10, 5, 5, 10)
        self.debugHFv4.setLayout(vbox)

        # slider visual debug

        # - labels

        slider_label_hbox = QtWidgets.QHBoxLayout()
        vbox.addLayout(slider_label_hbox)

        # stretch
        slider_label_hbox.addStretch()

        # # mode
        # text_obj = QtWidgets.QLabel("Visual debug mode:")
        # text_obj.setAlignment(QtCore.Qt.AlignCenter)
        # slider_label_hbox.addWidget(text_obj)
        #
        # slider_label_hbox.addSpacing(15)

        # export ascii
        text_obj = QtWidgets.QLabel("Save oversampled grid:")
        text_obj.setAlignment(QtCore.Qt.AlignCenter)
        slider_label_hbox.addWidget(text_obj)

        # stretch
        slider_label_hbox.addStretch()

        # - values

        slider_hbox = QtWidgets.QHBoxLayout()
        vbox.addLayout(slider_hbox)
        # stretch
        slider_hbox.addStretch()

        # visual debug

        slider_gbox = QtWidgets.QGridLayout()
        slider_hbox.addLayout(slider_gbox)

        # # labels
        # text_sz = 36
        # text_value = QtWidgets.QLabel("On")
        # text_value.setFixedWidth(text_sz + 8)
        # text_value.setAlignment(QtCore.Qt.AlignLeft)
        # text_value.setStyleSheet(GuiSettings.stylesheet_slider_labels())
        # slider_gbox.addWidget(text_value, 0, 0, 1, 1)
        # text_value = QtWidgets.QLabel("Off")
        # text_value.setFixedWidth(text_sz)
        # text_value.setAlignment(QtCore.Qt.AlignCenter)
        # text_value.setStyleSheet(GuiSettings.stylesheet_slider_labels())
        # slider_gbox.addWidget(text_value, 0, 1, 1, 1)
        # # slider
        # self.slider_visual_debug_v4 = QtWidgets.QSlider(QtCore.Qt.Horizontal)
        # self.slider_visual_debug_v4.setRange(1, 2)
        # self.slider_visual_debug_v4.setSingleStep(1)
        # self.slider_visual_debug_v4.setValue(2)
        # self.slider_visual_debug_v4.setTickInterval(1)
        # self.slider_visual_debug_v4.setTickPosition(QtWidgets.QSlider.TicksBelow)
        # slider_gbox.addWidget(self.slider_visual_debug_v4, 1, 0, 1, 2)
        #
        # spacer = QtWidgets.QSpacerItem(1, 1)
        # slider_gbox.addItem(spacer, 1, 2, 1, 1)
        #
        # slider_hbox.addSpacing(30)

        # ascii export

        slider_gbox = QtWidgets.QGridLayout()
        slider_hbox.addLayout(slider_gbox)

        # labels
        text_sz = 36
        text_value = QtWidgets.QLabel("On")
        text_value.setFixedWidth(text_sz + 8)
        text_value.setAlignment(QtCore.Qt.AlignLeft)
        text_value.setStyleSheet(GuiSettings.stylesheet_slider_labels())
        slider_gbox.addWidget(text_value, 0, 0, 1, 1)
        text_value = QtWidgets.QLabel("Off")
        text_value.setFixedWidth(text_sz)
        text_value.setAlignment(QtCore.Qt.AlignCenter)
        text_value.setStyleSheet(GuiSettings.stylesheet_slider_labels())
        slider_gbox.addWidget(text_value, 0, 1, 1, 1)
        # slider
        self.slider_export_ascii_v4 = QtWidgets.QSlider(QtCore.Qt.Horizontal)
        self.slider_export_ascii_v4.setRange(1, 2)
        self.slider_export_ascii_v4.setSingleStep(1)
        self.slider_export_ascii_v4.setValue(2)
        self.slider_export_ascii_v4.setTickInterval(1)
        self.slider_export_ascii_v4.setTickPosition(QtWidgets.QSlider.TicksBelow)
        slider_gbox.addWidget(self.slider_export_ascii_v4, 1, 0, 1, 2)

        # stretch
        slider_hbox.addStretch()
Beispiel #3
0
    def _ui_settings_gqv6(self):
        vbox = QtWidgets.QVBoxLayout()
        self.setSettingsGQv6.setLayout(vbox)

        # vbox.addStretch()

        hbox = QtWidgets.QHBoxLayout()
        vbox.addLayout(hbox)
        hbox.addStretch()
        self.text_set_tvu_qc = QtWidgets.QLabel("Force TVU QC calculation")
        self.text_set_tvu_qc.setFixedHeight(GuiSettings.single_line_height())
        self.text_set_tvu_qc.setMinimumWidth(80)
        self.text_set_tvu_qc.setHidden(True)
        hbox.addWidget(self.text_set_tvu_qc)
        self.set_force_tvu_qc_gqv6 = QtWidgets.QCheckBox(self)
        hbox.addWidget(self.set_force_tvu_qc_gqv6)
        self.set_force_tvu_qc_gqv6.setChecked(True)
        self.set_force_tvu_qc_gqv6.setHidden(True)

        hbox.addStretch()

        vbox.addStretch()

        hbox = QtWidgets.QHBoxLayout()
        vbox.addLayout(hbox)
        # stretch
        hbox.addStretch()
        # mode
        self.set_toggle_mode_gqv6 = QtWidgets.QDial()
        self.set_toggle_mode_gqv6.setNotchesVisible(True)
        self.set_toggle_mode_gqv6.setWrapping(False)
        self.set_toggle_mode_gqv6.setFocusPolicy(QtCore.Qt.StrongFocus)
        self.set_toggle_mode_gqv6.setRange(0, 1)
        self.set_toggle_mode_gqv6.setSliderPosition(1)
        self.set_toggle_mode_gqv6.setFixedSize(QtCore.QSize(40, 40))
        self.set_toggle_mode_gqv6.setInvertedAppearance(False)
        hbox.addWidget(self.set_toggle_mode_gqv6)
        hbox.addStretch()

        hbox = QtWidgets.QHBoxLayout()
        vbox.addLayout(hbox)

        # stretch
        hbox.addStretch()
        # mode
        text_obj = QtWidgets.QLabel("Object detection")
        text_obj.setAlignment(QtCore.Qt.AlignCenter)
        text_obj.setFixedWidth(85)
        hbox.addWidget(text_obj)
        text_cov = QtWidgets.QLabel("Full coverage")
        text_cov.setAlignment(QtCore.Qt.AlignCenter)
        text_cov.setFixedWidth(85)
        hbox.addWidget(text_cov)
        # stretch
        hbox.addStretch()

        vbox.addSpacing(9)

        hbox = QtWidgets.QHBoxLayout()
        vbox.addLayout(hbox)
        hbox.addStretch()
        # histograms
        text_hist = QtWidgets.QLabel("<i>Histograms</i>")
        hbox.addWidget(text_hist)
        hbox.addStretch()

        hbox = QtWidgets.QHBoxLayout()
        vbox.addLayout(hbox)
        hbox.addStretch()
        # histograms: depth
        text_hist_depth = QtWidgets.QLabel("depth:")
        hbox.addWidget(text_hist_depth)
        text_hist_depth.setFixedHeight(GuiSettings.single_line_height())
        self.hist_depth_v6 = QtWidgets.QCheckBox(self)
        hbox.addWidget(self.hist_depth_v6)
        self.hist_depth_v6.setChecked(True)
        # histograms: density
        text_hist_density = QtWidgets.QLabel("density:")
        hbox.addWidget(text_hist_density)
        text_hist_density.setFixedHeight(GuiSettings.single_line_height())
        self.hist_density_v6 = QtWidgets.QCheckBox(self)
        hbox.addWidget(self.hist_density_v6)
        self.hist_density_v6.setChecked(True)
        # histograms: tvu qc
        text_hist_tvu_qc = QtWidgets.QLabel("TVU (IHO S-44):")
        hbox.addWidget(text_hist_tvu_qc)
        text_hist_tvu_qc.setFixedHeight(GuiSettings.single_line_height())
        self.hist_tvu_qc_v6 = QtWidgets.QCheckBox(self)
        hbox.addWidget(self.hist_tvu_qc_v6)
        self.hist_tvu_qc_v6.setChecked(True)
        # histograms: pct res
        text_hist_pct_res = QtWidgets.QLabel("% resolution:")
        hbox.addWidget(text_hist_pct_res)
        text_hist_pct_res.setFixedHeight(GuiSettings.single_line_height())
        self.hist_pct_res_v6 = QtWidgets.QCheckBox(self)
        hbox.addWidget(self.hist_pct_res_v6)
        self.hist_pct_res_v6.setChecked(True)
        hbox.addStretch()

        hbox = QtWidgets.QHBoxLayout()
        vbox.addLayout(hbox)
        hbox.addStretch()
        # catzoc
        text_hist_catzoc = QtWidgets.QLabel("TVU (IHO S-57 CATZOC) [Branch]:")
        hbox.addWidget(text_hist_catzoc)
        text_hist_catzoc.setFixedHeight(GuiSettings.single_line_height())
        self.hist_catzoc = QtWidgets.QCheckBox(self)
        self.hist_catzoc.stateChanged.connect(self.click_set_catzoc)
        hbox.addWidget(self.hist_catzoc)
        self.hist_catzoc.setChecked(False)
        hbox.addStretch()

        slider_hbox = QtWidgets.QHBoxLayout()
        vbox.addLayout(slider_hbox)
        slider_hbox.addStretch()

        slider_gbox = QtWidgets.QGridLayout()
        slider_hbox.addLayout(slider_gbox)

        text_sz = 34
        self.text_slider_a1 = QtWidgets.QLabel("A1")
        self.text_slider_a1.setDisabled(True)
        self.text_slider_a1.setFixedWidth(text_sz)
        self.text_slider_a1.setAlignment(QtCore.Qt.AlignLeft)
        self.text_slider_a1.setStyleSheet(GuiSettings.stylesheet_slider_labels())
        slider_gbox.addWidget(self.text_slider_a1, 0, 1, 1, 1)
        self.text_slider_a2b = QtWidgets.QLabel("A2 / B   ")
        self.text_slider_a2b.setDisabled(True)
        self.text_slider_a2b.setFixedWidth(text_sz)
        self.text_slider_a2b.setAlignment(QtCore.Qt.AlignCenter)
        self.text_slider_a2b.setStyleSheet(GuiSettings.stylesheet_slider_labels())
        slider_gbox.addWidget(self.text_slider_a2b, 0, 2, 1, 1)
        self.text_slider_c = QtWidgets.QLabel(" C ")
        self.text_slider_c.setDisabled(True)
        self.text_slider_c.setFixedWidth(text_sz - 8)
        self.text_slider_c.setAlignment(QtCore.Qt.AlignCenter)
        self.text_slider_c.setStyleSheet(GuiSettings.stylesheet_slider_labels())
        slider_gbox.addWidget(self.text_slider_c, 0, 3, 1, 1)
        self.text_slider_all = QtWidgets.QLabel("All ")
        self.text_slider_all.setDisabled(True)
        self.text_slider_all.setFixedWidth(text_sz)
        self.text_slider_all.setAlignment(QtCore.Qt.AlignRight)
        self.text_slider_all.setStyleSheet(GuiSettings.stylesheet_slider_labels())
        slider_gbox.addWidget(self.text_slider_all, 0, 4, 1, 1)

        self.text_catzoc_slider = QtWidgets.QLabel("Choose:")
        self.text_catzoc_slider.setDisabled(True)
        slider_gbox.addWidget(self.text_catzoc_slider, 1, 0, 1, 1)

        self.catzoc_slider = QtWidgets.QSlider(QtCore.Qt.Horizontal)
        self.catzoc_slider.setRange(1, 4)
        self.catzoc_slider.setSingleStep(1)
        self.catzoc_slider.setValue(4)
        self.catzoc_slider.setTickInterval(1)
        self.catzoc_slider.setTickPosition(QtWidgets.QSlider.TicksBelow)
        self.catzoc_slider.setDisabled(True)
        slider_gbox.addWidget(self.catzoc_slider, 1, 1, 1, 4)

        slider_hbox.addStretch()

        hbox = QtWidgets.QHBoxLayout()
        vbox.addLayout(hbox)
        hbox.addStretch()
        # plot vs
        text_plot_vs = QtWidgets.QLabel("<i>Plot depth vs.</i>")
        hbox.addWidget(text_plot_vs)
        hbox.addStretch()

        hbox = QtWidgets.QHBoxLayout()
        vbox.addLayout(hbox)
        hbox.addStretch()
        # depth vs density
        text_depth_vs_density = QtWidgets.QLabel("Density:")
        hbox.addWidget(text_depth_vs_density)
        text_depth_vs_density.setFixedHeight(GuiSettings.single_line_height())
        self.depth_vs_density_v6 = QtWidgets.QCheckBox(self)
        hbox.addWidget(self.depth_vs_density_v6)
        self.depth_vs_density_v6.setChecked(False)
        # depth vs tvu qc
        text_depth_vs_tvu_qc = QtWidgets.QLabel(" TVU (IHO S-44):")
        hbox.addWidget(text_depth_vs_tvu_qc)
        text_depth_vs_tvu_qc.setFixedHeight(GuiSettings.single_line_height())
        self.depth_vs_tvu_qc_v6 = QtWidgets.QCheckBox(self)
        hbox.addWidget(self.depth_vs_tvu_qc_v6)
        self.depth_vs_tvu_qc_v6.setChecked(False)
        hbox.addStretch()

        vbox.addSpacing(9)

        hbox = QtWidgets.QHBoxLayout()
        vbox.addLayout(hbox)
        hbox.addStretch()

        vbox.addStretch()
Beispiel #4
0
    def _ui_settings_params_hfv4(self):
        self.paramsHFv4 = QtWidgets.QGroupBox("Parameters")
        self.settings_hfv4_vbox.addWidget(self.paramsHFv4)

        vbox = QtWidgets.QVBoxLayout()
        vbox.setContentsMargins(30, 10, 30, 10)
        self.paramsHFv4.setLayout(vbox)

        # slider holiday area limit

        slider_label_hbox = QtWidgets.QHBoxLayout()
        vbox.addLayout(slider_label_hbox)
        # stretch
        slider_label_hbox.addStretch()
        # mode
        self.upper_limit_label_v4 = QtWidgets.QLabel("Upper holiday area limit (as multiple of minimum holiday size):")
        self.upper_limit_label_v4.setAlignment(QtCore.Qt.AlignCenter)
        self.upper_limit_label_v4.setDisabled(True)
        slider_label_hbox.addWidget(self.upper_limit_label_v4)
        # stretch
        slider_label_hbox.addStretch()

        slider_hbox = QtWidgets.QHBoxLayout()
        vbox.addLayout(slider_hbox)
        # stretch
        slider_hbox.addStretch()

        slider_gbox = QtWidgets.QGridLayout()
        slider_hbox.addLayout(slider_gbox)

        # labels
        text_sz = 36
        text_value = QtWidgets.QLabel("100")
        text_value.setFixedWidth(text_sz + 8)
        text_value.setAlignment(QtCore.Qt.AlignLeft)
        text_value.setStyleSheet(GuiSettings.stylesheet_slider_labels())
        slider_gbox.addWidget(text_value, 0, 0, 1, 1)
        text_value = QtWidgets.QLabel("400")
        text_value.setFixedWidth(text_sz)
        text_value.setAlignment(QtCore.Qt.AlignCenter)
        text_value.setStyleSheet(GuiSettings.stylesheet_slider_labels())
        slider_gbox.addWidget(text_value, 0, 1, 1, 1)
        text_value = QtWidgets.QLabel("1000")
        text_value.setFixedWidth(text_sz + 20)
        text_value.setAlignment(QtCore.Qt.AlignCenter)
        text_value.setStyleSheet(GuiSettings.stylesheet_slider_labels())
        slider_gbox.addWidget(text_value, 0, 2, 1, 1)
        text_value = QtWidgets.QLabel("4000")
        text_value.setFixedWidth(text_sz)
        text_value.setAlignment(QtCore.Qt.AlignCenter)
        text_value.setStyleSheet(GuiSettings.stylesheet_slider_labels())
        slider_gbox.addWidget(text_value, 0, 3, 1, 1)
        text_value = QtWidgets.QLabel("unlimited")
        text_value.setFixedWidth(text_sz + 8)
        text_value.setAlignment(QtCore.Qt.AlignRight)
        text_value.setStyleSheet(GuiSettings.stylesheet_slider_labels())
        slider_gbox.addWidget(text_value, 0, 4, 1, 1)

        # slider
        self.upper_limit_v4 = QtWidgets.QSlider(QtCore.Qt.Horizontal)
        self.upper_limit_v4.setRange(1, 5)
        self.upper_limit_v4.setSingleStep(1)
        self.upper_limit_v4.setValue(3)
        self.upper_limit_v4.setTickInterval(1)
        self.upper_limit_v4.setTickPosition(QtWidgets.QSlider.TicksBelow)
        self.upper_limit_v4.setDisabled(True)
        slider_gbox.addWidget(self.upper_limit_v4, 1, 0, 1, 5)

        # stretch
        slider_hbox.addStretch()

        vbox.addSpacing(6)

        # slider minimum resolution

        slider_label_hbox = QtWidgets.QHBoxLayout()
        vbox.addLayout(slider_label_hbox)
        # stretch
        slider_label_hbox.addStretch()
        # mode
        self.slider_pct_min_res_label_v4 = QtWidgets.QLabel(
            "Resolution (as percentage of minimum resolution among tiles):")
        self.slider_pct_min_res_label_v4.setAlignment(QtCore.Qt.AlignCenter)
        self.slider_pct_min_res_label_v4.setDisabled(True)
        self.slider_pct_min_res_label_v4.setHidden(True)
        slider_label_hbox.addWidget(self.slider_pct_min_res_label_v4)
        # stretch
        slider_label_hbox.addStretch()

        slider_hbox = QtWidgets.QHBoxLayout()
        vbox.addLayout(slider_hbox)
        # stretch
        slider_hbox.addStretch()

        slider_gbox = QtWidgets.QGridLayout()
        slider_hbox.addLayout(slider_gbox)

        # labels
        text_sz = 36
        text_value = QtWidgets.QLabel("50%")
        text_value.setFixedWidth(text_sz)
        text_value.setAlignment(QtCore.Qt.AlignLeft)
        text_value.setStyleSheet(GuiSettings.stylesheet_slider_labels())
        text_value.setHidden(True)
        slider_gbox.addWidget(text_value, 0, 0, 1, 1)
        text_value = QtWidgets.QLabel("66%")
        text_value.setFixedWidth(text_sz)
        text_value.setAlignment(QtCore.Qt.AlignCenter)
        text_value.setStyleSheet(GuiSettings.stylesheet_slider_labels())
        text_value.setHidden(True)
        slider_gbox.addWidget(text_value, 0, 1, 1, 1)
        text_value = QtWidgets.QLabel("100%")
        text_value.setFixedWidth(text_sz)
        text_value.setAlignment(QtCore.Qt.AlignRight)
        text_value.setStyleSheet(GuiSettings.stylesheet_slider_labels())
        text_value.setHidden(True)
        slider_gbox.addWidget(text_value, 0, 2, 1, 1)

        # slider
        self.slider_pct_min_res_v4 = QtWidgets.QSlider(QtCore.Qt.Horizontal)
        self.slider_pct_min_res_v4.setRange(1, 3)
        self.slider_pct_min_res_v4.setSingleStep(1)
        self.slider_pct_min_res_v4.setValue(3)
        self.slider_pct_min_res_v4.setTickInterval(1)
        self.slider_pct_min_res_v4.setTickPosition(QtWidgets.QSlider.TicksBelow)
        self.slider_pct_min_res_v4.setDisabled(True)
        self.slider_pct_min_res_v4.setHidden(True)
        slider_gbox.addWidget(self.slider_pct_min_res_v4, 1, 0, 1, 3)

        # stretch
        slider_hbox.addStretch()

        # # slider sizer
        #
        # slider_label_hbox = QtWidgets.QHBoxLayout()
        # vbox.addLayout(slider_label_hbox)
        # # stretch
        # slider_label_hbox.addStretch()
        # # mode
        # text_obj = QtWidgets.QLabel(
        # "Sizer rule (from coarsest allowed resolution resolution to holiday size in nodes):")
        # text_obj.setAlignment(QtCore.Qt.AlignCenter)
        # slider_label_hbox.addWidget(text_obj)
        # # stretch
        # slider_label_hbox.addStretch()
        #
        # slider_hbox = QtWidgets.QHBoxLayout()
        # vbox.addLayout(slider_hbox)
        # # stretch
        # slider_hbox.addStretch()
        #
        # slider_gbox = QtWidgets.QGridLayout()
        # slider_hbox.addLayout(slider_gbox)
        #
        # self.slider_hole_sizer_v4 = QtWidgets.QSlider(QtCore.Qt.Horizontal)
        # self.slider_hole_sizer_v4.setRange(1, 3)
        # self.slider_hole_sizer_v4.setSingleStep(1)
        # self.slider_hole_sizer_v4.setValue(3)
        # self.slider_hole_sizer_v4.setTickInterval(1)
        # self.slider_hole_sizer_v4.setTickPosition(QtWidgets.QSlider.TicksBelow)
        # slider_gbox.addWidget(self.slider_hole_sizer_v4, 0, 0, 1, 3)
        # # labels
        # text_sz = 36
        # text_value = QtWidgets.QLabel("2x")
        # text_value.setFixedWidth(text_sz + 8)
        # text_value.setAlignment(QtCore.Qt.AlignLeft)
        # text_value.setStyleSheet("QLabel { color: rgb(155, 155, 155); }")
        # slider_gbox.addWidget(text_value, 1, 0, 1, 1)
        # text_value = QtWidgets.QLabel("2x+1")
        # text_value.setFixedWidth(text_sz)
        # text_value.setAlignment(QtCore.Qt.AlignCenter)
        # text_value.setStyleSheet("QLabel { color: rgb(155, 155, 155); }")
        # slider_gbox.addWidget(text_value, 1, 1, 1, 1)
        # text_value = QtWidgets.QLabel("3x")
        # text_value.setFixedWidth(text_sz + 8)
        # text_value.setAlignment(QtCore.Qt.AlignRight)
        # text_value.setStyleSheet("QLabel { color: rgb(155, 155, 155); }")
        # slider_gbox.addWidget(text_value, 1, 2, 1, 1)
        #
        # # stretch
        # slider_hbox.addStretch()

        # slider ref depth

        # slider_label_hbox = QtWidgets.QHBoxLayout()
        # vbox.addLayout(slider_label_hbox)
        # # stretch
        # slider_label_hbox.addStretch()
        # # strategy
        # text_obj = QtWidgets.QLabel("Analytic approach:")
        # text_obj.setAlignment(QtCore.Qt.AlignCenter)
        # slider_label_hbox.addWidget(text_obj)
        # # stretch
        # slider_label_hbox.addStretch()
        # # mode
        # text_obj = QtWidgets.QLabel("Median depth from:")
        # text_obj.setAlignment(QtCore.Qt.AlignCenter)
        # slider_label_hbox.addWidget(text_obj)
        # # stretch
        # slider_label_hbox.addStretch()
        #
        # slider_hbox = QtWidgets.QHBoxLayout()
        # vbox.addLayout(slider_hbox)
        # # stretch
        # slider_hbox.addStretch()
        #
        # slider_gbox = QtWidgets.QGridLayout()
        # slider_hbox.addLayout(slider_gbox)
        #
        # self.slider_strategy_v4 = QtWidgets.QSlider(QtCore.Qt.Horizontal)
        # self.slider_strategy_v4.setRange(0, 1)
        # self.slider_strategy_v4.setSingleStep(1)
        # self.slider_strategy_v4.setValue(0)
        # self.slider_strategy_v4.setTickInterval(1)
        # self.slider_strategy_v4.setTickPosition(QtWidgets.QSlider.TicksBelow)
        # slider_gbox.addWidget(self.slider_strategy_v4, 0, 0, 1, 2)
        #
        # # labels
        # text_sz = 48
        # text_value = QtWidgets.QLabel("Per-Tile")
        # text_value.setFixedWidth(text_sz + 8)
        # text_value.setAlignment(QtCore.Qt.AlignLeft)
        # text_value.setStyleSheet("QLabel { color: rgb(155, 155, 155); }")
        # slider_gbox.addWidget(text_value, 1, 0, 1, 1)
        # text_value = QtWidgets.QLabel("Brute Force")
        # text_value.setFixedWidth(text_sz + 8)
        # text_value.setAlignment(QtCore.Qt.AlignRight)
        # text_value.setStyleSheet("QLabel { color: rgb(155, 155, 155); }")
        # slider_gbox.addWidget(text_value, 1, 1, 1, 1)
        #
        # # stretch
        # slider_hbox.addStretch()
        #
        # slider_gbox = QtWidgets.QGridLayout()
        # slider_hbox.addLayout(slider_gbox)
        #
        # self.slider_ref_depth_v4 = QtWidgets.QSlider(QtCore.Qt.Horizontal)
        # self.slider_ref_depth_v4.setRange(0, 1)
        # self.slider_ref_depth_v4.setSingleStep(1)
        # self.slider_ref_depth_v4.setValue(1)
        # self.slider_ref_depth_v4.setTickInterval(1)
        # self.slider_ref_depth_v4.setTickPosition(QtWidgets.QSlider.TicksBelow)
        # slider_gbox.addWidget(self.slider_ref_depth_v4, 0, 0, 1, 2)
        # # labels
        # text_sz = 48
        # text_value = QtWidgets.QLabel("Tile")
        # text_value.setFixedWidth(text_sz + 8)
        # text_value.setAlignment(QtCore.Qt.AlignLeft)
        # text_value.setStyleSheet("QLabel { color: rgb(155, 155, 155); }")
        # slider_gbox.addWidget(text_value, 1, 0, 1, 1)
        # text_value = QtWidgets.QLabel("Perimeter")
        # text_value.setFixedWidth(text_sz)
        # text_value.setAlignment(QtCore.Qt.AlignRight)
        # text_value.setStyleSheet("QLabel { color: rgb(155, 155, 155); }")
        # slider_gbox.addWidget(text_value, 1, 1, 1, 1)
        #
        # # stretch
        # slider_hbox.addStretch()

        # locker

        vbox.addSpacing(6)

        lock_hbox = QtWidgets.QHBoxLayout()
        vbox.addLayout(lock_hbox)
        lock_hbox.addStretch()
        self.locker_v4 = QtWidgets.QPushButton()
        self.locker_v4.setIconSize(QtCore.QSize(24, 24))
        self.locker_v4.setFixedHeight(28)
        edit_icon = QtGui.QIcon()
        edit_icon.addFile(os.path.join(self.parent_win.media, 'lock.png'), state=QtGui.QIcon.Off)
        edit_icon.addFile(os.path.join(self.parent_win.media, 'unlock.png'), state=QtGui.QIcon.On)
        self.locker_v4.setIcon(edit_icon)
        self.locker_v4.setCheckable(True)
        # noinspection PyUnresolvedReferences
        self.locker_v4.clicked.connect(self.on_editable_v4)
        self.locker_v4.setToolTip("Unlock editing for parameters")
        lock_hbox.addWidget(self.locker_v4)
        lock_hbox.addStretch()