# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'c:\Users\lalunni\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\qutility\qutility_dialog_base.ui'
#
# Created by: PyQt5 UI code generator 5.15.11
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.


from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_QUtilityDialogBase(object):
    def setupUi(self, QUtilityDialogBase):
        QUtilityDialogBase.setObjectName("QUtilityDialogBase")
        QUtilityDialogBase.resize(953, 838)
        QUtilityDialogBase.setMinimumSize(QtCore.QSize(900, 750))
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(9)
        QUtilityDialogBase.setFont(font)
        QUtilityDialogBase.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
        QUtilityDialogBase.setToolTip("")
        self.verticalLayout = QtWidgets.QVBoxLayout(QUtilityDialogBase)
        self.verticalLayout.setObjectName("verticalLayout")
        self.tabWidget = QtWidgets.QTabWidget(QUtilityDialogBase)
        self.tabWidget.setToolTip("")
        self.tabWidget.setObjectName("tabWidget")
        self.FM = QtWidgets.QWidget()
        self.FM.setObjectName("FM")
        self.horizontalLayout = QtWidgets.QHBoxLayout(self.FM)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.frame_2 = QtWidgets.QFrame(self.FM)
        self.frame_2.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
        self.frame_2.setToolTip("")
        self.frame_2.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame_2.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame_2.setObjectName("frame_2")
        self.verticalLayout_30 = QtWidgets.QVBoxLayout(self.frame_2)
        self.verticalLayout_30.setObjectName("verticalLayout_30")
        spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.verticalLayout_30.addItem(spacerItem)
        self.frame_3 = QtWidgets.QFrame(self.frame_2)
        self.frame_3.setFrameShape(QtWidgets.QFrame.Panel)
        self.frame_3.setFrameShadow(QtWidgets.QFrame.Plain)
        self.frame_3.setObjectName("frame_3")
        self.verticalLayout_10 = QtWidgets.QVBoxLayout(self.frame_3)
        self.verticalLayout_10.setObjectName("verticalLayout_10")
        self.label = QtWidgets.QLabel(self.frame_3)
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.label.setFont(font)
        self.label.setFrameShape(QtWidgets.QFrame.NoFrame)
        self.label.setObjectName("label")
        self.verticalLayout_10.addWidget(self.label)
        self.fmlayerlist = QtWidgets.QListWidget(self.frame_3)
        self.fmlayerlist.setMinimumSize(QtCore.QSize(0, 180))
        self.fmlayerlist.setMaximumSize(QtCore.QSize(16777215, 350))
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(9)
        self.fmlayerlist.setFont(font)
        self.fmlayerlist.viewport().setProperty("cursor", QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        self.fmlayerlist.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.fmlayerlist.setFrameShadow(QtWidgets.QFrame.Raised)
        self.fmlayerlist.setLineWidth(1)
        self.fmlayerlist.setMidLineWidth(0)
        self.fmlayerlist.setTabKeyNavigation(False)
        self.fmlayerlist.setSelectionMode(QtWidgets.QAbstractItemView.MultiSelection)
        self.fmlayerlist.setObjectName("fmlayerlist")
        self.verticalLayout_10.addWidget(self.fmlayerlist)
        self.verticalLayout_30.addWidget(self.frame_3)
        spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.verticalLayout_30.addItem(spacerItem1)
        self.line = QtWidgets.QFrame(self.frame_2)
        self.line.setFrameShape(QtWidgets.QFrame.HLine)
        self.line.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line.setObjectName("line")
        self.verticalLayout_30.addWidget(self.line)
        spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.verticalLayout_30.addItem(spacerItem2)
        self.gridLayout = QtWidgets.QGridLayout()
        self.gridLayout.setObjectName("gridLayout")
        self.frame_10 = QtWidgets.QFrame(self.frame_2)
        self.frame_10.setFrameShape(QtWidgets.QFrame.Panel)
        self.frame_10.setFrameShadow(QtWidgets.QFrame.Plain)
        self.frame_10.setLineWidth(1)
        self.frame_10.setObjectName("frame_10")
        self.verticalLayout_19 = QtWidgets.QVBoxLayout(self.frame_10)
        self.verticalLayout_19.setObjectName("verticalLayout_19")
        self.frame_13 = QtWidgets.QFrame(self.frame_10)
        self.frame_13.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame_13.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame_13.setObjectName("frame_13")
        self.verticalLayout_24 = QtWidgets.QVBoxLayout(self.frame_13)
        self.verticalLayout_24.setObjectName("verticalLayout_24")
        self.verticalLayout_20 = QtWidgets.QVBoxLayout()
        self.verticalLayout_20.setObjectName("verticalLayout_20")
        self.label_11 = QtWidgets.QLabel(self.frame_13)
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.label_11.setFont(font)
        self.label_11.setFrameShape(QtWidgets.QFrame.NoFrame)
        self.label_11.setObjectName("label_11")
        self.verticalLayout_20.addWidget(self.label_11)
        self.fmtype = QtWidgets.QComboBox(self.frame_13)
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(9)
        self.fmtype.setFont(font)
        self.fmtype.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        self.fmtype.setDuplicatesEnabled(True)
        self.fmtype.setObjectName("fmtype")
        self.verticalLayout_20.addWidget(self.fmtype)
        self.verticalLayout_24.addLayout(self.verticalLayout_20)
        self.verticalLayout_19.addWidget(self.frame_13)
        self.frame_4 = QtWidgets.QFrame(self.frame_10)
        self.frame_4.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame_4.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame_4.setObjectName("frame_4")
        self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.frame_4)
        self.verticalLayout_5.setObjectName("verticalLayout_5")
        self.verticalLayout_4 = QtWidgets.QVBoxLayout()
        self.verticalLayout_4.setObjectName("verticalLayout_4")
        self.label_13 = QtWidgets.QLabel(self.frame_4)
        self.label_13.setMinimumSize(QtCore.QSize(0, 0))
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.label_13.setFont(font)
        self.label_13.setFrameShape(QtWidgets.QFrame.NoFrame)
        self.label_13.setObjectName("label_13")
        self.verticalLayout_4.addWidget(self.label_13)
        self.fmpreci = QtWidgets.QLineEdit(self.frame_4)
        self.fmpreci.setClearButtonEnabled(True)
        self.fmpreci.setObjectName("fmpreci")
        self.verticalLayout_4.addWidget(self.fmpreci)
        self.verticalLayout_5.addLayout(self.verticalLayout_4)
        self.verticalLayout_19.addWidget(self.frame_4)
        self.gridLayout.addWidget(self.frame_10, 1, 1, 1, 1)
        self.frame_8 = QtWidgets.QFrame(self.frame_2)
        self.frame_8.setFrameShape(QtWidgets.QFrame.Panel)
        self.frame_8.setFrameShadow(QtWidgets.QFrame.Plain)
        self.frame_8.setLineWidth(1)
        self.frame_8.setObjectName("frame_8")
        self.verticalLayout_15 = QtWidgets.QVBoxLayout(self.frame_8)
        self.verticalLayout_15.setObjectName("verticalLayout_15")
        self.frame_12 = QtWidgets.QFrame(self.frame_8)
        self.frame_12.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame_12.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame_12.setObjectName("frame_12")
        self.verticalLayout_23 = QtWidgets.QVBoxLayout(self.frame_12)
        self.verticalLayout_23.setObjectName("verticalLayout_23")
        self.verticalLayout_16 = QtWidgets.QVBoxLayout()
        self.verticalLayout_16.setObjectName("verticalLayout_16")
        self.label_9 = QtWidgets.QLabel(self.frame_12)
        self.label_9.setMinimumSize(QtCore.QSize(0, 0))
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.label_9.setFont(font)
        self.label_9.setFrameShape(QtWidgets.QFrame.NoFrame)
        self.label_9.setObjectName("label_9")
        self.verticalLayout_16.addWidget(self.label_9)
        self.fmfield = QtWidgets.QComboBox(self.frame_12)
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(9)
        self.fmfield.setFont(font)
        self.fmfield.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        self.fmfield.setDuplicatesEnabled(True)
        self.fmfield.setObjectName("fmfield")
        self.verticalLayout_16.addWidget(self.fmfield)
        self.verticalLayout_23.addLayout(self.verticalLayout_16)
        self.verticalLayout_15.addWidget(self.frame_12)
        self.frame_9 = QtWidgets.QFrame(self.frame_8)
        self.frame_9.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame_9.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame_9.setObjectName("frame_9")
        self.verticalLayout_17 = QtWidgets.QVBoxLayout(self.frame_9)
        self.verticalLayout_17.setObjectName("verticalLayout_17")
        self.verticalLayout_18 = QtWidgets.QVBoxLayout()
        self.verticalLayout_18.setObjectName("verticalLayout_18")
        self.label_10 = QtWidgets.QLabel(self.frame_9)
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.label_10.setFont(font)
        self.label_10.setFrameShape(QtWidgets.QFrame.NoFrame)
        self.label_10.setObjectName("label_10")
        self.verticalLayout_18.addWidget(self.label_10)
        self.fmlun = QtWidgets.QLineEdit(self.frame_9)
        self.fmlun.setClearButtonEnabled(True)
        self.fmlun.setObjectName("fmlun")
        self.verticalLayout_18.addWidget(self.fmlun)
        self.verticalLayout_17.addLayout(self.verticalLayout_18)
        self.verticalLayout_15.addWidget(self.frame_9)
        self.gridLayout.addWidget(self.frame_8, 1, 0, 1, 1)
        self.frame_22 = QtWidgets.QFrame(self.frame_2)
        self.frame_22.setFrameShape(QtWidgets.QFrame.Panel)
        self.frame_22.setFrameShadow(QtWidgets.QFrame.Plain)
        self.frame_22.setObjectName("frame_22")
        self.verticalLayout_25 = QtWidgets.QVBoxLayout(self.frame_22)
        self.verticalLayout_25.setObjectName("verticalLayout_25")
        self.horizontalLayout_11 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_11.setObjectName("horizontalLayout_11")
        self.label_8 = QtWidgets.QLabel(self.frame_22)
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.label_8.setFont(font)
        self.label_8.setObjectName("label_8")
        self.horizontalLayout_11.addWidget(self.label_8)
        self.fmname = QtWidgets.QLineEdit(self.frame_22)
        self.fmname.setClearButtonEnabled(True)
        self.fmname.setObjectName("fmname")
        self.horizontalLayout_11.addWidget(self.fmname)
        self.verticalLayout_25.addLayout(self.horizontalLayout_11)
        self.gridLayout.addWidget(self.frame_22, 0, 0, 1, 2)
        self.verticalLayout_30.addLayout(self.gridLayout)
        spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.verticalLayout_30.addItem(spacerItem3)
        self.frame_15 = QtWidgets.QFrame(self.frame_2)
        self.frame_15.setFrameShape(QtWidgets.QFrame.Panel)
        self.frame_15.setFrameShadow(QtWidgets.QFrame.Plain)
        self.frame_15.setObjectName("frame_15")
        self.horizontalLayout_6 = QtWidgets.QHBoxLayout(self.frame_15)
        self.horizontalLayout_6.setObjectName("horizontalLayout_6")
        self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_4.setObjectName("horizontalLayout_4")
        spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_4.addItem(spacerItem4)
        self.fmrun = QtWidgets.QPushButton(self.frame_15)
        self.fmrun.setMinimumSize(QtCore.QSize(250, 0))
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.fmrun.setFont(font)
        self.fmrun.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        self.fmrun.setFocusPolicy(QtCore.Qt.NoFocus)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap(":/plugins/qutility/images/play.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.fmrun.setIcon(icon)
        self.fmrun.setObjectName("fmrun")
        self.horizontalLayout_4.addWidget(self.fmrun)
        spacerItem5 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_4.addItem(spacerItem5)
        self.horizontalLayout_6.addLayout(self.horizontalLayout_4)
        self.verticalLayout_30.addWidget(self.frame_15)
        self.horizontalLayout.addWidget(self.frame_2)
        self.textBrowser = QtWidgets.QTextBrowser(self.FM)
        self.textBrowser.setMinimumSize(QtCore.QSize(330, 0))
        self.textBrowser.setMaximumSize(QtCore.QSize(330, 16777215))
        self.textBrowser.viewport().setProperty("cursor", QtGui.QCursor(QtCore.Qt.WhatsThisCursor))
        self.textBrowser.setFocusPolicy(QtCore.Qt.NoFocus)
        self.textBrowser.setOpenLinks(False)
        self.textBrowser.setObjectName("textBrowser")
        self.horizontalLayout.addWidget(self.textBrowser)
        icon1 = QtGui.QIcon()
        icon1.addPixmap(QtGui.QPixmap(":/plugins/qutility/images/fm.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.tabWidget.addTab(self.FM, icon1, "")
        self.RL = QtWidgets.QWidget()
        self.RL.setObjectName("RL")
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout(self.RL)
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.frame_5 = QtWidgets.QFrame(self.RL)
        self.frame_5.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame_5.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame_5.setObjectName("frame_5")
        self.verticalLayout_8 = QtWidgets.QVBoxLayout(self.frame_5)
        self.verticalLayout_8.setObjectName("verticalLayout_8")
        spacerItem6 = QtWidgets.QSpacerItem(588, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.verticalLayout_8.addItem(spacerItem6)
        self.frame_6 = QtWidgets.QFrame(self.frame_5)
        self.frame_6.setFrameShape(QtWidgets.QFrame.Panel)
        self.frame_6.setFrameShadow(QtWidgets.QFrame.Plain)
        self.frame_6.setObjectName("frame_6")
        self.verticalLayout_11 = QtWidgets.QVBoxLayout(self.frame_6)
        self.verticalLayout_11.setObjectName("verticalLayout_11")
        self.label_2 = QtWidgets.QLabel(self.frame_6)
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.label_2.setFont(font)
        self.label_2.setFrameShape(QtWidgets.QFrame.NoFrame)
        self.label_2.setObjectName("label_2")
        self.verticalLayout_11.addWidget(self.label_2)
        self.rllayerlist = QtWidgets.QListWidget(self.frame_6)
        self.rllayerlist.setMinimumSize(QtCore.QSize(0, 180))
        self.rllayerlist.setMaximumSize(QtCore.QSize(16777215, 350))
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(9)
        self.rllayerlist.setFont(font)
        self.rllayerlist.viewport().setProperty("cursor", QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        self.rllayerlist.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.rllayerlist.setFrameShadow(QtWidgets.QFrame.Raised)
        self.rllayerlist.setLineWidth(1)
        self.rllayerlist.setMidLineWidth(0)
        self.rllayerlist.setTabKeyNavigation(False)
        self.rllayerlist.setSelectionMode(QtWidgets.QAbstractItemView.MultiSelection)
        self.rllayerlist.setObjectName("rllayerlist")
        self.verticalLayout_11.addWidget(self.rllayerlist)
        self.verticalLayout_8.addWidget(self.frame_6)
        spacerItem7 = QtWidgets.QSpacerItem(588, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.verticalLayout_8.addItem(spacerItem7)
        self.line_3 = QtWidgets.QFrame(self.frame_5)
        self.line_3.setFrameShape(QtWidgets.QFrame.HLine)
        self.line_3.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_3.setObjectName("line_3")
        self.verticalLayout_8.addWidget(self.line_3)
        spacerItem8 = QtWidgets.QSpacerItem(588, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.verticalLayout_8.addItem(spacerItem8)
        self.frame_7 = QtWidgets.QFrame(self.frame_5)
        self.frame_7.setFrameShape(QtWidgets.QFrame.Panel)
        self.frame_7.setFrameShadow(QtWidgets.QFrame.Plain)
        self.frame_7.setObjectName("frame_7")
        self.verticalLayout_6 = QtWidgets.QVBoxLayout(self.frame_7)
        self.verticalLayout_6.setObjectName("verticalLayout_6")
        self.gridLayout_2 = QtWidgets.QGridLayout()
        self.gridLayout_2.setObjectName("gridLayout_2")
        self.rlcon = QtWidgets.QLineEdit(self.frame_7)
        self.rlcon.setClearButtonEnabled(True)
        self.rlcon.setObjectName("rlcon")
        self.gridLayout_2.addWidget(self.rlcon, 3, 1, 1, 1)
        self.label_16 = QtWidgets.QLabel(self.frame_7)
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.label_16.setFont(font)
        self.label_16.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
        self.label_16.setObjectName("label_16")
        self.gridLayout_2.addWidget(self.label_16, 4, 0, 1, 1)
        self.label_17 = QtWidgets.QLabel(self.frame_7)
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.label_17.setFont(font)
        self.label_17.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
        self.label_17.setObjectName("label_17")
        self.gridLayout_2.addWidget(self.label_17, 3, 0, 1, 1)
        self.rldx = QtWidgets.QSpinBox(self.frame_7)
        self.rldx.setObjectName("rldx")
        self.gridLayout_2.addWidget(self.rldx, 5, 1, 1, 1)
        self.rlpre = QtWidgets.QLineEdit(self.frame_7)
        self.rlpre.setInputMask("")
        self.rlpre.setText("")
        self.rlpre.setClearButtonEnabled(True)
        self.rlpre.setObjectName("rlpre")
        self.gridLayout_2.addWidget(self.rlpre, 0, 1, 1, 1)
        self.rlsos = QtWidgets.QLineEdit(self.frame_7)
        self.rlsos.setPlaceholderText("")
        self.rlsos.setClearButtonEnabled(True)
        self.rlsos.setObjectName("rlsos")
        self.gridLayout_2.addWidget(self.rlsos, 2, 1, 1, 1)
        self.rlsx = QtWidgets.QSpinBox(self.frame_7)
        self.rlsx.setButtonSymbols(QtWidgets.QAbstractSpinBox.UpDownArrows)
        self.rlsx.setProperty("showGroupSeparator", False)
        self.rlsx.setObjectName("rlsx")
        self.gridLayout_2.addWidget(self.rlsx, 4, 1, 1, 1)
        self.label_14 = QtWidgets.QLabel(self.frame_7)
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.label_14.setFont(font)
        self.label_14.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
        self.label_14.setObjectName("label_14")
        self.gridLayout_2.addWidget(self.label_14, 2, 0, 1, 1)
        self.rlsuf = QtWidgets.QLineEdit(self.frame_7)
        self.rlsuf.setClearButtonEnabled(True)
        self.rlsuf.setObjectName("rlsuf")
        self.gridLayout_2.addWidget(self.rlsuf, 1, 1, 1, 1)
        self.label_3 = QtWidgets.QLabel(self.frame_7)
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.label_3.setFont(font)
        self.label_3.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
        self.label_3.setObjectName("label_3")
        self.gridLayout_2.addWidget(self.label_3, 0, 0, 1, 1)
        self.label_4 = QtWidgets.QLabel(self.frame_7)
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.label_4.setFont(font)
        self.label_4.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
        self.label_4.setObjectName("label_4")
        self.gridLayout_2.addWidget(self.label_4, 1, 0, 1, 1)
        self.label_15 = QtWidgets.QLabel(self.frame_7)
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.label_15.setFont(font)
        self.label_15.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
        self.label_15.setObjectName("label_15")
        self.gridLayout_2.addWidget(self.label_15, 5, 0, 1, 1)
        self.verticalLayout_6.addLayout(self.gridLayout_2)
        self.verticalLayout_8.addWidget(self.frame_7)
        self.frame_14 = QtWidgets.QFrame(self.frame_5)
        self.frame_14.setFrameShape(QtWidgets.QFrame.Panel)
        self.frame_14.setFrameShadow(QtWidgets.QFrame.Plain)
        self.frame_14.setObjectName("frame_14")
        self.verticalLayout_7 = QtWidgets.QVBoxLayout(self.frame_14)
        self.verticalLayout_7.setObjectName("verticalLayout_7")
        self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_5.setObjectName("horizontalLayout_5")
        spacerItem9 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_5.addItem(spacerItem9)
        self.rlrun = QtWidgets.QPushButton(self.frame_14)
        self.rlrun.setMinimumSize(QtCore.QSize(200, 0))
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.rlrun.setFont(font)
        self.rlrun.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        self.rlrun.setFocusPolicy(QtCore.Qt.NoFocus)
        self.rlrun.setIcon(icon)
        self.rlrun.setObjectName("rlrun")
        self.horizontalLayout_5.addWidget(self.rlrun)
        spacerItem10 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_5.addItem(spacerItem10)
        self.verticalLayout_7.addLayout(self.horizontalLayout_5)
        self.verticalLayout_8.addWidget(self.frame_14)
        self.horizontalLayout_3.addWidget(self.frame_5)
        self.textBrowser_3 = QtWidgets.QTextBrowser(self.RL)
        self.textBrowser_3.setMinimumSize(QtCore.QSize(330, 0))
        self.textBrowser_3.setMaximumSize(QtCore.QSize(330, 16777215))
        self.textBrowser_3.viewport().setProperty("cursor", QtGui.QCursor(QtCore.Qt.WhatsThisCursor))
        self.textBrowser_3.setFocusPolicy(QtCore.Qt.NoFocus)
        self.textBrowser_3.setOpenLinks(False)
        self.textBrowser_3.setObjectName("textBrowser_3")
        self.horizontalLayout_3.addWidget(self.textBrowser_3)
        icon2 = QtGui.QIcon()
        icon2.addPixmap(QtGui.QPixmap(":/plugins/qutility/images/rename.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.tabWidget.addTab(self.RL, icon2, "")
        self.LL = QtWidgets.QWidget()
        self.LL.setObjectName("LL")
        self.horizontalLayout_8 = QtWidgets.QHBoxLayout(self.LL)
        self.horizontalLayout_8.setObjectName("horizontalLayout_8")
        self.frame_11 = QtWidgets.QFrame(self.LL)
        self.frame_11.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame_11.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame_11.setObjectName("frame_11")
        self.verticalLayout_14 = QtWidgets.QVBoxLayout(self.frame_11)
        self.verticalLayout_14.setObjectName("verticalLayout_14")
        self.frame_18 = QtWidgets.QFrame(self.frame_11)
        self.frame_18.setFrameShape(QtWidgets.QFrame.Panel)
        self.frame_18.setFrameShadow(QtWidgets.QFrame.Plain)
        self.frame_18.setObjectName("frame_18")
        self.verticalLayout_13 = QtWidgets.QVBoxLayout(self.frame_18)
        self.verticalLayout_13.setObjectName("verticalLayout_13")
        self.gridLayout_5 = QtWidgets.QGridLayout()
        self.gridLayout_5.setObjectName("gridLayout_5")
        self.llsource = QtWidgets.QLineEdit(self.frame_18)
        self.llsource.setFocusPolicy(QtCore.Qt.NoFocus)
        self.llsource.setReadOnly(True)
        self.llsource.setObjectName("llsource")
        self.gridLayout_5.addWidget(self.llsource, 1, 0, 1, 1)
        self.label_5 = QtWidgets.QLabel(self.frame_18)
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.label_5.setFont(font)
        self.label_5.setFrameShape(QtWidgets.QFrame.NoFrame)
        self.label_5.setAlignment(QtCore.Qt.AlignBottom|QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft)
        self.label_5.setObjectName("label_5")
        self.gridLayout_5.addWidget(self.label_5, 0, 0, 1, 1)
        self.llsearch = QtWidgets.QToolButton(self.frame_18)
        self.llsearch.setMinimumSize(QtCore.QSize(30, 0))
        self.llsearch.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        self.llsearch.setIconSize(QtCore.QSize(20, 20))
        self.llsearch.setObjectName("llsearch")
        self.gridLayout_5.addWidget(self.llsearch, 1, 1, 1, 1)
        self.label_6 = QtWidgets.QLabel(self.frame_18)
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.label_6.setFont(font)
        self.label_6.setFrameShape(QtWidgets.QFrame.NoFrame)
        self.label_6.setAlignment(QtCore.Qt.AlignBottom|QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft)
        self.label_6.setObjectName("label_6")
        self.gridLayout_5.addWidget(self.label_6, 0, 1, 1, 1)
        self.verticalLayout_13.addLayout(self.gridLayout_5)
        self.verticalLayout_14.addWidget(self.frame_18)
        spacerItem11 = QtWidgets.QSpacerItem(20, 48, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
        self.verticalLayout_14.addItem(spacerItem11)
        self.frame_17 = QtWidgets.QFrame(self.frame_11)
        self.frame_17.setFrameShape(QtWidgets.QFrame.Panel)
        self.frame_17.setFrameShadow(QtWidgets.QFrame.Plain)
        self.frame_17.setObjectName("frame_17")
        self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.frame_17)
        self.verticalLayout_3.setObjectName("verticalLayout_3")
        self.groupBox_2 = QtWidgets.QGroupBox(self.frame_17)
        self.groupBox_2.setFlat(True)
        self.groupBox_2.setObjectName("groupBox_2")
        self.verticalLayout_12 = QtWidgets.QVBoxLayout(self.groupBox_2)
        self.verticalLayout_12.setObjectName("verticalLayout_12")
        self.groupBox = QtWidgets.QGroupBox(self.groupBox_2)
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(9)
        font.setBold(False)
        font.setWeight(50)
        self.groupBox.setFont(font)
        self.groupBox.setFlat(False)
        self.groupBox.setCheckable(False)
        self.groupBox.setObjectName("groupBox")
        self.gridLayout_4 = QtWidgets.QGridLayout(self.groupBox)
        self.gridLayout_4.setObjectName("gridLayout_4")
        self.gridLayout_3 = QtWidgets.QGridLayout()
        self.gridLayout_3.setObjectName("gridLayout_3")
        self.llshp = QtWidgets.QCheckBox(self.groupBox)
        self.llshp.setChecked(True)
        self.llshp.setObjectName("llshp")
        self.gridLayout_3.addWidget(self.llshp, 0, 0, 1, 1)
        self.llgml = QtWidgets.QCheckBox(self.groupBox)
        self.llgml.setObjectName("llgml")
        self.gridLayout_3.addWidget(self.llgml, 0, 1, 1, 1)
        self.lltif = QtWidgets.QCheckBox(self.groupBox)
        self.lltif.setObjectName("lltif")
        self.gridLayout_3.addWidget(self.lltif, 1, 1, 1, 1)
        self.llgpkg = QtWidgets.QCheckBox(self.groupBox)
        self.llgpkg.setObjectName("llgpkg")
        self.gridLayout_3.addWidget(self.llgpkg, 1, 0, 1, 1)
        self.llxslx = QtWidgets.QCheckBox(self.groupBox)
        self.llxslx.setObjectName("llxslx")
        self.gridLayout_3.addWidget(self.llxslx, 2, 0, 1, 1)
        self.lldbf = QtWidgets.QCheckBox(self.groupBox)
        self.lldbf.setObjectName("lldbf")
        self.gridLayout_3.addWidget(self.lldbf, 2, 1, 1, 1)
        self.gridLayout_4.addLayout(self.gridLayout_3, 1, 0, 1, 1)
        self.verticalLayout_12.addWidget(self.groupBox)
        self.horizontalLayout_10 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_10.setObjectName("horizontalLayout_10")
        self.llchecktext = QtWidgets.QCheckBox(self.groupBox_2)
        self.llchecktext.setMaximumSize(QtCore.QSize(15, 16777215))
        self.llchecktext.setText("")
        self.llchecktext.setObjectName("llchecktext")
        self.horizontalLayout_10.addWidget(self.llchecktext)
        self.label_7 = QtWidgets.QLabel(self.groupBox_2)
        self.label_7.setMaximumSize(QtCore.QSize(164, 16777215))
        self.label_7.setObjectName("label_7")
        self.horizontalLayout_10.addWidget(self.label_7)
        self.lltext = QtWidgets.QLineEdit(self.groupBox_2)
        self.lltext.setObjectName("lltext")
        self.horizontalLayout_10.addWidget(self.lltext)
        self.verticalLayout_12.addLayout(self.horizontalLayout_10)
        self.horizontalLayout_12 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_12.setObjectName("horizontalLayout_12")
        self.llcheckdate = QtWidgets.QCheckBox(self.groupBox_2)
        self.llcheckdate.setMaximumSize(QtCore.QSize(15, 16777215))
        self.llcheckdate.setText("")
        self.llcheckdate.setObjectName("llcheckdate")
        self.horizontalLayout_12.addWidget(self.llcheckdate)
        self.label_12 = QtWidgets.QLabel(self.groupBox_2)
        self.label_12.setMaximumSize(QtCore.QSize(161, 16777215))
        self.label_12.setObjectName("label_12")
        self.horizontalLayout_12.addWidget(self.label_12)
        self.lldate = QtWidgets.QDateTimeEdit(self.groupBox_2)
        self.lldate.setDate(QtCore.QDate(2025, 1, 1))
        self.lldate.setTime(QtCore.QTime(9, 0, 0))
        self.lldate.setCalendarPopup(True)
        self.lldate.setObjectName("lldate")
        self.horizontalLayout_12.addWidget(self.lldate)
        self.verticalLayout_12.addLayout(self.horizontalLayout_12)
        self.horizontalLayout_13 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_13.setObjectName("horizontalLayout_13")
        self.llcheckgeom = QtWidgets.QCheckBox(self.groupBox_2)
        self.llcheckgeom.setMaximumSize(QtCore.QSize(15, 16777215))
        self.llcheckgeom.setText("")
        self.llcheckgeom.setObjectName("llcheckgeom")
        self.horizontalLayout_13.addWidget(self.llcheckgeom)
        self.label_18 = QtWidgets.QLabel(self.groupBox_2)
        self.label_18.setMaximumSize(QtCore.QSize(161, 16777215))
        self.label_18.setObjectName("label_18")
        self.horizontalLayout_13.addWidget(self.label_18)
        self.llgeom = QtWidgets.QComboBox(self.groupBox_2)
        self.llgeom.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        self.llgeom.setObjectName("llgeom")
        self.horizontalLayout_13.addWidget(self.llgeom)
        self.verticalLayout_12.addLayout(self.horizontalLayout_13)
        self.verticalLayout_3.addWidget(self.groupBox_2)
        self.verticalLayout_14.addWidget(self.frame_17)
        spacerItem12 = QtWidgets.QSpacerItem(20, 48, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
        self.verticalLayout_14.addItem(spacerItem12)
        self.llcheckgroup = QtWidgets.QCheckBox(self.frame_11)
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.llcheckgroup.setFont(font)
        self.llcheckgroup.setChecked(False)
        self.llcheckgroup.setObjectName("llcheckgroup")
        self.verticalLayout_14.addWidget(self.llcheckgroup)
        self.llchecknest = QtWidgets.QCheckBox(self.frame_11)
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.llchecknest.setFont(font)
        self.llchecknest.setChecked(True)
        self.llchecknest.setObjectName("llchecknest")
        self.verticalLayout_14.addWidget(self.llchecknest)
        spacerItem13 = QtWidgets.QSpacerItem(20, 47, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
        self.verticalLayout_14.addItem(spacerItem13)
        self.frame_16 = QtWidgets.QFrame(self.frame_11)
        self.frame_16.setFrameShape(QtWidgets.QFrame.Panel)
        self.frame_16.setFrameShadow(QtWidgets.QFrame.Plain)
        self.frame_16.setObjectName("frame_16")
        self.verticalLayout_9 = QtWidgets.QVBoxLayout(self.frame_16)
        self.verticalLayout_9.setObjectName("verticalLayout_9")
        self.horizontalLayout_9 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_9.setObjectName("horizontalLayout_9")
        spacerItem14 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_9.addItem(spacerItem14)
        self.llrun = QtWidgets.QPushButton(self.frame_16)
        self.llrun.setMinimumSize(QtCore.QSize(200, 0))
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.llrun.setFont(font)
        self.llrun.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        self.llrun.setFocusPolicy(QtCore.Qt.NoFocus)
        self.llrun.setIcon(icon)
        self.llrun.setObjectName("llrun")
        self.horizontalLayout_9.addWidget(self.llrun)
        spacerItem15 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_9.addItem(spacerItem15)
        self.verticalLayout_9.addLayout(self.horizontalLayout_9)
        self.verticalLayout_14.addWidget(self.frame_16)
        self.horizontalLayout_8.addWidget(self.frame_11)
        self.textBrowser_4 = QtWidgets.QTextBrowser(self.LL)
        self.textBrowser_4.setMinimumSize(QtCore.QSize(330, 0))
        self.textBrowser_4.setMaximumSize(QtCore.QSize(330, 16777215))
        self.textBrowser_4.viewport().setProperty("cursor", QtGui.QCursor(QtCore.Qt.WhatsThisCursor))
        self.textBrowser_4.setFocusPolicy(QtCore.Qt.NoFocus)
        self.textBrowser_4.setOpenLinks(False)
        self.textBrowser_4.setObjectName("textBrowser_4")
        self.horizontalLayout_8.addWidget(self.textBrowser_4)
        icon3 = QtGui.QIcon()
        icon3.addPixmap(QtGui.QPixmap(":/plugins/qutility/images/load.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.tabWidget.addTab(self.LL, icon3, "")
        self.EF = QtWidgets.QWidget()
        self.EF.setObjectName("EF")
        self.horizontalLayout_14 = QtWidgets.QHBoxLayout(self.EF)
        self.horizontalLayout_14.setObjectName("horizontalLayout_14")
        self.frame_19 = QtWidgets.QFrame(self.EF)
        self.frame_19.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame_19.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame_19.setObjectName("frame_19")
        self.verticalLayout_29 = QtWidgets.QVBoxLayout(self.frame_19)
        self.verticalLayout_29.setObjectName("verticalLayout_29")
        self.frame_20 = QtWidgets.QFrame(self.frame_19)
        self.frame_20.setFrameShape(QtWidgets.QFrame.Panel)
        self.frame_20.setFrameShadow(QtWidgets.QFrame.Plain)
        self.frame_20.setObjectName("frame_20")
        self.verticalLayout_21 = QtWidgets.QVBoxLayout(self.frame_20)
        self.verticalLayout_21.setObjectName("verticalLayout_21")
        self.formLayout = QtWidgets.QFormLayout()
        self.formLayout.setObjectName("formLayout")
        spacerItem16 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
        self.formLayout.setItem(0, QtWidgets.QFormLayout.SpanningRole, spacerItem16)
        self.label_19 = QtWidgets.QLabel(self.frame_20)
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(9)
        font.setBold(True)
        font.setWeight(75)
        self.label_19.setFont(font)
        self.label_19.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
        self.label_19.setObjectName("label_19")
        self.formLayout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_19)
        self.eflayerdef = QtWidgets.QComboBox(self.frame_20)
        self.eflayerdef.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        self.eflayerdef.setObjectName("eflayerdef")
        self.formLayout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.eflayerdef)
        self.label_21 = QtWidgets.QLabel(self.frame_20)
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(9)
        font.setBold(True)
        font.setWeight(75)
        self.label_21.setFont(font)
        self.label_21.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
        self.label_21.setObjectName("label_21")
        self.formLayout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_21)
        self.efjoindef = QtWidgets.QComboBox(self.frame_20)
        self.efjoindef.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        self.efjoindef.setObjectName("efjoindef")
        self.formLayout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.efjoindef)
        self.efbkp = QtWidgets.QCheckBox(self.frame_20)
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(9)
        font.setBold(True)
        font.setWeight(75)
        self.efbkp.setFont(font)
        self.efbkp.setObjectName("efbkp")
        self.formLayout.setWidget(3, QtWidgets.QFormLayout.SpanningRole, self.efbkp)
        spacerItem17 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
        self.formLayout.setItem(4, QtWidgets.QFormLayout.SpanningRole, spacerItem17)
        self.line_4 = QtWidgets.QFrame(self.frame_20)
        self.line_4.setMinimumSize(QtCore.QSize(10, 0))
        self.line_4.setFrameShape(QtWidgets.QFrame.HLine)
        self.line_4.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_4.setObjectName("line_4")
        self.formLayout.setWidget(5, QtWidgets.QFormLayout.SpanningRole, self.line_4)
        spacerItem18 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
        self.formLayout.setItem(6, QtWidgets.QFormLayout.SpanningRole, spacerItem18)
        self.label_20 = QtWidgets.QLabel(self.frame_20)
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(9)
        font.setBold(True)
        font.setWeight(75)
        self.label_20.setFont(font)
        self.label_20.setObjectName("label_20")
        self.formLayout.setWidget(7, QtWidgets.QFormLayout.LabelRole, self.label_20)
        self.eflayermatch = QtWidgets.QComboBox(self.frame_20)
        self.eflayermatch.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        self.eflayermatch.setObjectName("eflayermatch")
        self.formLayout.setWidget(7, QtWidgets.QFormLayout.FieldRole, self.eflayermatch)
        self.label_22 = QtWidgets.QLabel(self.frame_20)
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(9)
        font.setBold(True)
        font.setWeight(75)
        self.label_22.setFont(font)
        self.label_22.setObjectName("label_22")
        self.formLayout.setWidget(8, QtWidgets.QFormLayout.LabelRole, self.label_22)
        self.efjoinmatch = QtWidgets.QComboBox(self.frame_20)
        self.efjoinmatch.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        self.efjoinmatch.setObjectName("efjoinmatch")
        self.formLayout.setWidget(8, QtWidgets.QFormLayout.FieldRole, self.efjoinmatch)
        spacerItem19 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
        self.formLayout.setItem(9, QtWidgets.QFormLayout.SpanningRole, spacerItem19)
        self.line_5 = QtWidgets.QFrame(self.frame_20)
        self.line_5.setMinimumSize(QtCore.QSize(10, 0))
        self.line_5.setFrameShape(QtWidgets.QFrame.HLine)
        self.line_5.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_5.setObjectName("line_5")
        self.formLayout.setWidget(10, QtWidgets.QFormLayout.SpanningRole, self.line_5)
        self.groupBox_3 = QtWidgets.QGroupBox(self.frame_20)
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(9)
        font.setBold(False)
        font.setItalic(True)
        font.setWeight(50)
        self.groupBox_3.setFont(font)
        self.groupBox_3.setFlat(False)
        self.groupBox_3.setObjectName("groupBox_3")
        self.verticalLayout_27 = QtWidgets.QVBoxLayout(self.groupBox_3)
        self.verticalLayout_27.setObjectName("verticalLayout_27")
        self.verticalLayout_26 = QtWidgets.QVBoxLayout()
        self.verticalLayout_26.setObjectName("verticalLayout_26")
        self.eflabelsource = QtWidgets.QLabel(self.groupBox_3)
        self.eflabelsource.setObjectName("eflabelsource")
        self.verticalLayout_26.addWidget(self.eflabelsource)
        self.eflabelmatch = QtWidgets.QLabel(self.groupBox_3)
        self.eflabelmatch.setObjectName("eflabelmatch")
        self.verticalLayout_26.addWidget(self.eflabelmatch)
        self.verticalLayout_27.addLayout(self.verticalLayout_26)
        self.formLayout.setWidget(11, QtWidgets.QFormLayout.SpanningRole, self.groupBox_3)
        self.line_6 = QtWidgets.QFrame(self.frame_20)
        self.line_6.setMinimumSize(QtCore.QSize(10, 0))
        self.line_6.setFrameShape(QtWidgets.QFrame.HLine)
        self.line_6.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_6.setObjectName("line_6")
        self.formLayout.setWidget(12, QtWidgets.QFormLayout.SpanningRole, self.line_6)
        spacerItem20 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
        self.formLayout.setItem(13, QtWidgets.QFormLayout.SpanningRole, spacerItem20)
        self.efcheckgeom = QtWidgets.QCheckBox(self.frame_20)
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(9)
        font.setBold(True)
        font.setWeight(75)
        self.efcheckgeom.setFont(font)
        self.efcheckgeom.setChecked(True)
        self.efcheckgeom.setObjectName("efcheckgeom")
        self.formLayout.setWidget(14, QtWidgets.QFormLayout.SpanningRole, self.efcheckgeom)
        self.label_23 = QtWidgets.QLabel(self.frame_20)
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(9)
        font.setBold(True)
        font.setWeight(75)
        self.label_23.setFont(font)
        self.label_23.setObjectName("label_23")
        self.formLayout.setWidget(15, QtWidgets.QFormLayout.LabelRole, self.label_23)
        self.eftoll = QtWidgets.QSpinBox(self.frame_20)
        self.eftoll.setObjectName("eftoll")
        self.formLayout.setWidget(15, QtWidgets.QFormLayout.FieldRole, self.eftoll)
        spacerItem21 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
        self.formLayout.setItem(16, QtWidgets.QFormLayout.SpanningRole, spacerItem21)
        self.line_7 = QtWidgets.QFrame(self.frame_20)
        self.line_7.setMinimumSize(QtCore.QSize(10, 0))
        self.line_7.setFrameShape(QtWidgets.QFrame.HLine)
        self.line_7.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_7.setObjectName("line_7")
        self.formLayout.setWidget(17, QtWidgets.QFormLayout.SpanningRole, self.line_7)
        self.groupBox_4 = QtWidgets.QGroupBox(self.frame_20)
        self.groupBox_4.setObjectName("groupBox_4")
        self.verticalLayout_28 = QtWidgets.QVBoxLayout(self.groupBox_4)
        self.verticalLayout_28.setObjectName("verticalLayout_28")
        self.formLayout_2 = QtWidgets.QFormLayout()
        self.formLayout_2.setFormAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
        self.formLayout_2.setObjectName("formLayout_2")
        self.efcase = QtWidgets.QCheckBox(self.groupBox_4)
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(9)
        font.setBold(True)
        font.setWeight(75)
        self.efcase.setFont(font)
        self.efcase.setObjectName("efcase")
        self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.SpanningRole, self.efcase)
        self.horizontalLayout_7 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_7.setObjectName("horizontalLayout_7")
        self.label22 = QtWidgets.QLabel(self.groupBox_4)
        self.label22.setMaximumSize(QtCore.QSize(165, 16777215))
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(9)
        font.setBold(True)
        font.setWeight(75)
        self.label22.setFont(font)
        self.label22.setObjectName("label22")
        self.horizontalLayout_7.addWidget(self.label22)
        self.efspat = QtWidgets.QComboBox(self.groupBox_4)
        self.efspat.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        self.efspat.setObjectName("efspat")
        self.horizontalLayout_7.addWidget(self.efspat)
        self.efask = QtWidgets.QToolButton(self.groupBox_4)
        self.efask.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        self.efask.setText("")
        icon4 = QtGui.QIcon()
        icon4.addPixmap(QtGui.QPixmap(":/plugins/qutility/images/ask.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.efask.setIcon(icon4)
        self.efask.setObjectName("efask")
        self.horizontalLayout_7.addWidget(self.efask)
        self.formLayout_2.setLayout(1, QtWidgets.QFormLayout.SpanningRole, self.horizontalLayout_7)
        self.verticalLayout_28.addLayout(self.formLayout_2)
        self.formLayout.setWidget(18, QtWidgets.QFormLayout.SpanningRole, self.groupBox_4)
        self.verticalLayout_21.addLayout(self.formLayout)
        self.verticalLayout_29.addWidget(self.frame_20)
        self.line_2 = QtWidgets.QFrame(self.frame_19)
        self.line_2.setFrameShape(QtWidgets.QFrame.HLine)
        self.line_2.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_2.setObjectName("line_2")
        self.verticalLayout_29.addWidget(self.line_2)
        self.frame_21 = QtWidgets.QFrame(self.frame_19)
        self.frame_21.setFrameShape(QtWidgets.QFrame.Panel)
        self.frame_21.setFrameShadow(QtWidgets.QFrame.Plain)
        self.frame_21.setObjectName("frame_21")
        self.verticalLayout_22 = QtWidgets.QVBoxLayout(self.frame_21)
        self.verticalLayout_22.setObjectName("verticalLayout_22")
        self.horizontalLayout_15 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_15.setObjectName("horizontalLayout_15")
        spacerItem22 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_15.addItem(spacerItem22)
        self.efrun = QtWidgets.QPushButton(self.frame_21)
        self.efrun.setMinimumSize(QtCore.QSize(200, 0))
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.efrun.setFont(font)
        self.efrun.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        self.efrun.setFocusPolicy(QtCore.Qt.NoFocus)
        self.efrun.setIcon(icon)
        self.efrun.setObjectName("efrun")
        self.horizontalLayout_15.addWidget(self.efrun)
        spacerItem23 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_15.addItem(spacerItem23)
        self.verticalLayout_22.addLayout(self.horizontalLayout_15)
        self.verticalLayout_29.addWidget(self.frame_21)
        self.horizontalLayout_14.addWidget(self.frame_19)
        self.textBrowser_5 = QtWidgets.QTextBrowser(self.EF)
        self.textBrowser_5.setMinimumSize(QtCore.QSize(330, 0))
        self.textBrowser_5.setMaximumSize(QtCore.QSize(330, 16777215))
        self.textBrowser_5.viewport().setProperty("cursor", QtGui.QCursor(QtCore.Qt.WhatsThisCursor))
        self.textBrowser_5.setFocusPolicy(QtCore.Qt.NoFocus)
        self.textBrowser_5.setOpenLinks(False)
        self.textBrowser_5.setObjectName("textBrowser_5")
        self.horizontalLayout_14.addWidget(self.textBrowser_5)
        icon5 = QtGui.QIcon()
        icon5.addPixmap(QtGui.QPixmap(":/plugins/qutility/images/exclude.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.tabWidget.addTab(self.EF, icon5, "")
        self.BC = QtWidgets.QWidget()
        self.BC.setObjectName("BC")
        self.horizontalLayout_16 = QtWidgets.QHBoxLayout(self.BC)
        self.horizontalLayout_16.setObjectName("horizontalLayout_16")
        self.frame_31 = QtWidgets.QFrame(self.BC)
        self.frame_31.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame_31.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame_31.setObjectName("frame_31")
        self.verticalLayout_37 = QtWidgets.QVBoxLayout(self.frame_31)
        self.verticalLayout_37.setObjectName("verticalLayout_37")
        self.scrollArea_2 = QtWidgets.QScrollArea(self.frame_31)
        self.scrollArea_2.setWidgetResizable(True)
        self.scrollArea_2.setObjectName("scrollArea_2")
        self.scrollAreaWidgetContents_2 = QtWidgets.QWidget()
        self.scrollAreaWidgetContents_2.setGeometry(QtCore.QRect(0, 0, 523, 1055))
        self.scrollAreaWidgetContents_2.setObjectName("scrollAreaWidgetContents_2")
        self.verticalLayout_38 = QtWidgets.QVBoxLayout(self.scrollAreaWidgetContents_2)
        self.verticalLayout_38.setObjectName("verticalLayout_38")
        self.frame_32 = QtWidgets.QFrame(self.scrollAreaWidgetContents_2)
        self.frame_32.setFrameShape(QtWidgets.QFrame.Panel)
        self.frame_32.setFrameShadow(QtWidgets.QFrame.Plain)
        self.frame_32.setObjectName("frame_32")
        self.verticalLayout_39 = QtWidgets.QVBoxLayout(self.frame_32)
        self.verticalLayout_39.setObjectName("verticalLayout_39")
        self.horizontalLayout_20 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_20.setObjectName("horizontalLayout_20")
        self.label_28 = QtWidgets.QLabel(self.frame_32)
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(9)
        font.setBold(True)
        font.setWeight(75)
        self.label_28.setFont(font)
        self.label_28.setObjectName("label_28")
        self.horizontalLayout_20.addWidget(self.label_28)
        self.bcsourcepath = QtWidgets.QLineEdit(self.frame_32)
        self.bcsourcepath.setObjectName("bcsourcepath")
        self.horizontalLayout_20.addWidget(self.bcsourcepath)
        self.bcbrowsesource = QtWidgets.QPushButton(self.frame_32)
        self.bcbrowsesource.setObjectName("bcbrowsesource")
        self.horizontalLayout_20.addWidget(self.bcbrowsesource)
        self.verticalLayout_39.addLayout(self.horizontalLayout_20)
        self.verticalLayout_38.addWidget(self.frame_32)
        self.frame_33 = QtWidgets.QFrame(self.scrollAreaWidgetContents_2)
        self.frame_33.setFrameShape(QtWidgets.QFrame.Panel)
        self.frame_33.setFrameShadow(QtWidgets.QFrame.Plain)
        self.frame_33.setObjectName("frame_33")
        self.verticalLayout_40 = QtWidgets.QVBoxLayout(self.frame_33)
        self.verticalLayout_40.setObjectName("verticalLayout_40")
        self.verticalLayout_41 = QtWidgets.QVBoxLayout()
        self.verticalLayout_41.setObjectName("verticalLayout_41")
        self.groupBox_8 = QtWidgets.QGroupBox(self.frame_33)
        self.groupBox_8.setObjectName("groupBox_8")
        self.gridLayout_13 = QtWidgets.QGridLayout(self.groupBox_8)
        self.gridLayout_13.setObjectName("gridLayout_13")
        self.bcshpcheck = QtWidgets.QCheckBox(self.groupBox_8)
        self.bcshpcheck.setObjectName("bcshpcheck")
        self.gridLayout_13.addWidget(self.bcshpcheck, 0, 0, 1, 1)
        self.bcgpkgcheck = QtWidgets.QCheckBox(self.groupBox_8)
        self.bcgpkgcheck.setObjectName("bcgpkgcheck")
        self.gridLayout_13.addWidget(self.bcgpkgcheck, 0, 1, 1, 1)
        self.bcgeojsoncheck = QtWidgets.QCheckBox(self.groupBox_8)
        self.bcgeojsoncheck.setObjectName("bcgeojsoncheck")
        self.gridLayout_13.addWidget(self.bcgeojsoncheck, 0, 2, 1, 1)
        self.bcgmlcheck = QtWidgets.QCheckBox(self.groupBox_8)
        self.bcgmlcheck.setObjectName("bcgmlcheck")
        self.gridLayout_13.addWidget(self.bcgmlcheck, 1, 0, 1, 1)
        self.bckmlcheck = QtWidgets.QCheckBox(self.groupBox_8)
        self.bckmlcheck.setObjectName("bckmlcheck")
        self.gridLayout_13.addWidget(self.bckmlcheck, 1, 1, 1, 1)
        self.verticalLayout_41.addWidget(self.groupBox_8)
        self.bcrecursive = QtWidgets.QCheckBox(self.frame_33)
        self.bcrecursive.setChecked(True)
        self.bcrecursive.setObjectName("bcrecursive")
        self.verticalLayout_41.addWidget(self.bcrecursive)
        self.horizontalLayout_21 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_21.setObjectName("horizontalLayout_21")
        self.label_29 = QtWidgets.QLabel(self.frame_33)
        self.label_29.setObjectName("label_29")
        self.horizontalLayout_21.addWidget(self.label_29)
        self.bcnamefilter = QtWidgets.QLineEdit(self.frame_33)
        self.bcnamefilter.setObjectName("bcnamefilter")
        self.horizontalLayout_21.addWidget(self.bcnamefilter)
        self.bcaddsources = QtWidgets.QPushButton(self.frame_33)
        self.bcaddsources.setMinimumSize(QtCore.QSize(150, 0))
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.bcaddsources.setFont(font)
        self.bcaddsources.setObjectName("bcaddsources")
        self.horizontalLayout_21.addWidget(self.bcaddsources)
        self.verticalLayout_41.addLayout(self.horizontalLayout_21)
        self.verticalLayout_40.addLayout(self.verticalLayout_41)
        self.verticalLayout_38.addWidget(self.frame_33)
        self.frame_34 = QtWidgets.QFrame(self.scrollAreaWidgetContents_2)
        self.frame_34.setFrameShape(QtWidgets.QFrame.Panel)
        self.frame_34.setFrameShadow(QtWidgets.QFrame.Plain)
        self.frame_34.setObjectName("frame_34")
        self.gridLayout_14 = QtWidgets.QGridLayout(self.frame_34)
        self.gridLayout_14.setObjectName("gridLayout_14")
        self.bcremovefiles = QtWidgets.QPushButton(self.frame_34)
        self.bcremovefiles.setObjectName("bcremovefiles")
        self.gridLayout_14.addWidget(self.bcremovefiles, 2, 1, 1, 1)
        spacerItem24 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.gridLayout_14.addItem(spacerItem24, 2, 0, 1, 1)
        spacerItem25 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.gridLayout_14.addItem(spacerItem25, 2, 3, 1, 1)
        self.bcclearfiles = QtWidgets.QPushButton(self.frame_34)
        self.bcclearfiles.setObjectName("bcclearfiles")
        self.gridLayout_14.addWidget(self.bcclearfiles, 2, 2, 1, 1)
        self.bcfilecount = QtWidgets.QLabel(self.frame_34)
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(9)
        font.setBold(True)
        font.setWeight(75)
        self.bcfilecount.setFont(font)
        self.bcfilecount.setObjectName("bcfilecount")
        self.gridLayout_14.addWidget(self.bcfilecount, 0, 0, 1, 4)
        self.bctable = QtWidgets.QTableWidget(self.frame_34)
        self.bctable.setMinimumSize(QtCore.QSize(0, 250))
        self.bctable.setColumnCount(5)
        self.bctable.setObjectName("bctable")
        self.bctable.setRowCount(0)
        self.gridLayout_14.addWidget(self.bctable, 1, 0, 1, 4)
        self.verticalLayout_38.addWidget(self.frame_34)
        self.frame_35 = QtWidgets.QFrame(self.scrollAreaWidgetContents_2)
        self.frame_35.setFrameShape(QtWidgets.QFrame.Panel)
        self.frame_35.setFrameShadow(QtWidgets.QFrame.Plain)
        self.frame_35.setObjectName("frame_35")
        self.gridLayout_15 = QtWidgets.QGridLayout(self.frame_35)
        self.gridLayout_15.setObjectName("gridLayout_15")
        self.label_30 = QtWidgets.QLabel(self.frame_35)
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(9)
        font.setBold(True)
        font.setWeight(75)
        self.label_30.setFont(font)
        self.label_30.setObjectName("label_30")
        self.gridLayout_15.addWidget(self.label_30, 0, 0, 1, 1)
        self.bcdestpath = QtWidgets.QLineEdit(self.frame_35)
        self.bcdestpath.setObjectName("bcdestpath")
        self.gridLayout_15.addWidget(self.bcdestpath, 0, 1, 1, 1)
        self.bcbrowsedest = QtWidgets.QPushButton(self.frame_35)
        self.bcbrowsedest.setObjectName("bcbrowsedest")
        self.gridLayout_15.addWidget(self.bcbrowsedest, 0, 2, 1, 1)
        self.label_31 = QtWidgets.QLabel(self.frame_35)
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(9)
        font.setBold(True)
        font.setWeight(75)
        self.label_31.setFont(font)
        self.label_31.setObjectName("label_31")
        self.gridLayout_15.addWidget(self.label_31, 1, 0, 1, 1)
        self.bcoutputformat = QtWidgets.QComboBox(self.frame_35)
        self.bcoutputformat.setObjectName("bcoutputformat")
        self.gridLayout_15.addWidget(self.bcoutputformat, 1, 1, 1, 1)
        self.verticalLayout_38.addWidget(self.frame_35)
        self.frame_36 = QtWidgets.QFrame(self.scrollAreaWidgetContents_2)
        self.frame_36.setFrameShape(QtWidgets.QFrame.Panel)
        self.frame_36.setFrameShadow(QtWidgets.QFrame.Plain)
        self.frame_36.setObjectName("frame_36")
        self.gridLayout_16 = QtWidgets.QGridLayout(self.frame_36)
        self.gridLayout_16.setObjectName("gridLayout_16")
        self.groupBox_9 = QtWidgets.QGroupBox(self.frame_36)
        self.groupBox_9.setObjectName("groupBox_9")
        self.gridLayout_17 = QtWidgets.QGridLayout(self.groupBox_9)
        self.gridLayout_17.setObjectName("gridLayout_17")
        self.bctransformcrs = QtWidgets.QCheckBox(self.groupBox_9)
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(9)
        font.setBold(False)
        font.setWeight(50)
        self.bctransformcrs.setFont(font)
        self.bctransformcrs.setChecked(True)
        self.bctransformcrs.setObjectName("bctransformcrs")
        self.gridLayout_17.addWidget(self.bctransformcrs, 0, 0, 1, 1)
        self.bcoutputcrs = QgsProjectionSelectionWidget(self.groupBox_9)
        self.bcoutputcrs.setObjectName("bcoutputcrs")
        self.gridLayout_17.addWidget(self.bcoutputcrs, 1, 0, 1, 1)
        self.bcsinglefile = QtWidgets.QCheckBox(self.groupBox_9)
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(9)
        font.setBold(False)
        font.setWeight(50)
        self.bcsinglefile.setFont(font)
        self.bcsinglefile.setObjectName("bcsinglefile")
        self.gridLayout_17.addWidget(self.bcsinglefile, 2, 0, 1, 1)
        self.gridLayout_16.addWidget(self.groupBox_9, 0, 0, 1, 1)
        self.verticalLayout_38.addWidget(self.frame_36)
        self.frame_37 = QtWidgets.QFrame(self.scrollAreaWidgetContents_2)
        self.frame_37.setFrameShape(QtWidgets.QFrame.Panel)
        self.frame_37.setFrameShadow(QtWidgets.QFrame.Plain)
        self.frame_37.setObjectName("frame_37")
        self.gridLayout_18 = QtWidgets.QGridLayout(self.frame_37)
        self.gridLayout_18.setObjectName("gridLayout_18")
        self.groupBox_10 = QtWidgets.QGroupBox(self.frame_37)
        self.groupBox_10.setObjectName("groupBox_10")
        self.formLayout_3 = QtWidgets.QFormLayout(self.groupBox_10)
        self.formLayout_3.setObjectName("formLayout_3")
        self.bcdelimiterlabel = QtWidgets.QLabel(self.groupBox_10)
        self.bcdelimiterlabel.setObjectName("bcdelimiterlabel")
        self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.bcdelimiterlabel)
        self.bclayernamelabel = QtWidgets.QLabel(self.groupBox_10)
        self.bclayernamelabel.setObjectName("bclayernamelabel")
        self.formLayout_3.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.bclayernamelabel)
        self.bclayername = QtWidgets.QLineEdit(self.groupBox_10)
        self.bclayername.setObjectName("bclayername")
        self.formLayout_3.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.bclayername)
        self.bcdelimiter = QtWidgets.QComboBox(self.groupBox_10)
        self.bcdelimiter.setObjectName("bcdelimiter")
        self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.bcdelimiter)
        self.gridLayout_18.addWidget(self.groupBox_10, 0, 0, 1, 1)
        self.verticalLayout_38.addWidget(self.frame_37)
        self.frame_38 = QtWidgets.QFrame(self.scrollAreaWidgetContents_2)
        self.frame_38.setFrameShape(QtWidgets.QFrame.Panel)
        self.frame_38.setFrameShadow(QtWidgets.QFrame.Plain)
        self.frame_38.setObjectName("frame_38")
        self.verticalLayout_42 = QtWidgets.QVBoxLayout(self.frame_38)
        self.verticalLayout_42.setObjectName("verticalLayout_42")
        self.horizontalLayout_22 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_22.setObjectName("horizontalLayout_22")
        spacerItem26 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_22.addItem(spacerItem26)
        self.bcrun = QtWidgets.QPushButton(self.frame_38)
        self.bcrun.setMinimumSize(QtCore.QSize(200, 0))
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.bcrun.setFont(font)
        self.bcrun.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        self.bcrun.setFocusPolicy(QtCore.Qt.NoFocus)
        self.bcrun.setIcon(icon)
        self.bcrun.setObjectName("bcrun")
        self.horizontalLayout_22.addWidget(self.bcrun)
        spacerItem27 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_22.addItem(spacerItem27)
        self.verticalLayout_42.addLayout(self.horizontalLayout_22)
        self.verticalLayout_38.addWidget(self.frame_38)
        self.scrollArea_2.setWidget(self.scrollAreaWidgetContents_2)
        self.verticalLayout_37.addWidget(self.scrollArea_2)
        self.horizontalLayout_16.addWidget(self.frame_31)
        self.textBrowser_7 = QtWidgets.QTextBrowser(self.BC)
        self.textBrowser_7.setMinimumSize(QtCore.QSize(330, 0))
        self.textBrowser_7.setMaximumSize(QtCore.QSize(330, 16777215))
        self.textBrowser_7.viewport().setProperty("cursor", QtGui.QCursor(QtCore.Qt.WhatsThisCursor))
        self.textBrowser_7.setFocusPolicy(QtCore.Qt.NoFocus)
        self.textBrowser_7.setOpenLinks(False)
        self.textBrowser_7.setObjectName("textBrowser_7")
        self.horizontalLayout_16.addWidget(self.textBrowser_7)
        icon6 = QtGui.QIcon()
        icon6.addPixmap(QtGui.QPixmap(":/plugins/qutility/images/convert.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.tabWidget.addTab(self.BC, icon6, "")
        self.OC = QtWidgets.QWidget()
        self.OC.setObjectName("OC")
        self.horizontalLayout_42 = QtWidgets.QHBoxLayout(self.OC)
        self.horizontalLayout_42.setObjectName("horizontalLayout_42")
        self.frame_61 = QtWidgets.QFrame(self.OC)
        self.frame_61.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame_61.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame_61.setObjectName("frame_61")
        self.verticalLayout_72 = QtWidgets.QVBoxLayout(self.frame_61)
        self.verticalLayout_72.setObjectName("verticalLayout_72")
        self.scrollArea_4 = QtWidgets.QScrollArea(self.frame_61)
        self.scrollArea_4.setWidgetResizable(True)
        self.scrollArea_4.setObjectName("scrollArea_4")
        self.scrollAreaWidgetContents_4 = QtWidgets.QWidget()
        self.scrollAreaWidgetContents_4.setGeometry(QtCore.QRect(0, 0, 540, 735))
        self.scrollAreaWidgetContents_4.setObjectName("scrollAreaWidgetContents_4")
        self.verticalLayout_73 = QtWidgets.QVBoxLayout(self.scrollAreaWidgetContents_4)
        self.verticalLayout_73.setObjectName("verticalLayout_73")
        self.frame_62 = QtWidgets.QFrame(self.scrollAreaWidgetContents_4)
        self.frame_62.setFrameShape(QtWidgets.QFrame.Panel)
        self.frame_62.setFrameShadow(QtWidgets.QFrame.Plain)
        self.frame_62.setObjectName("frame_62")
        self.gridLayout_7 = QtWidgets.QGridLayout(self.frame_62)
        self.gridLayout_7.setObjectName("gridLayout_7")
        self.lyr1_oc = QgsMapLayerComboBox(self.frame_62)
        self.lyr1_oc.setObjectName("lyr1_oc")
        self.gridLayout_7.addWidget(self.lyr1_oc, 0, 1, 1, 1)
        self.lbl_lyr1_oc = QtWidgets.QLabel(self.frame_62)
        self.lbl_lyr1_oc.setObjectName("lbl_lyr1_oc")
        self.gridLayout_7.addWidget(self.lbl_lyr1_oc, 0, 0, 1, 1)
        self.ckbox_lyr1_oc = QtWidgets.QCheckBox(self.frame_62)
        self.ckbox_lyr1_oc.setObjectName("ckbox_lyr1_oc")
        self.gridLayout_7.addWidget(self.ckbox_lyr1_oc, 1, 0, 1, 1)
        self.verticalLayout_73.addWidget(self.frame_62)
        self.frame_63 = QtWidgets.QFrame(self.scrollAreaWidgetContents_4)
        self.frame_63.setFrameShape(QtWidgets.QFrame.Panel)
        self.frame_63.setFrameShadow(QtWidgets.QFrame.Plain)
        self.frame_63.setObjectName("frame_63")
        self.gridLayout_8 = QtWidgets.QGridLayout(self.frame_63)
        self.gridLayout_8.setObjectName("gridLayout_8")
        self.lbl_lyr2_oc = QtWidgets.QLabel(self.frame_63)
        self.lbl_lyr2_oc.setObjectName("lbl_lyr2_oc")
        self.gridLayout_8.addWidget(self.lbl_lyr2_oc, 0, 0, 1, 1)
        self.lyr2_oc = QgsMapLayerComboBox(self.frame_63)
        self.lyr2_oc.setObjectName("lyr2_oc")
        self.gridLayout_8.addWidget(self.lyr2_oc, 0, 1, 1, 1)
        self.ckbox_lyr2_oc = QtWidgets.QCheckBox(self.frame_63)
        self.ckbox_lyr2_oc.setObjectName("ckbox_lyr2_oc")
        self.gridLayout_8.addWidget(self.ckbox_lyr2_oc, 1, 0, 1, 1)
        self.verticalLayout_73.addWidget(self.frame_63)
        self.frame_65 = QtWidgets.QFrame(self.scrollAreaWidgetContents_4)
        self.frame_65.setFrameShape(QtWidgets.QFrame.Panel)
        self.frame_65.setFrameShadow(QtWidgets.QFrame.Plain)
        self.frame_65.setObjectName("frame_65")
        self.gridLayout_6 = QtWidgets.QGridLayout(self.frame_65)
        self.gridLayout_6.setObjectName("gridLayout_6")
        self.cartout_oc = QgsFileWidget(self.frame_65)
        self.cartout_oc.setObjectName("cartout_oc")
        self.gridLayout_6.addWidget(self.cartout_oc, 1, 1, 1, 1)
        self.lblout_oc = QtWidgets.QLabel(self.frame_65)
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(9)
        font.setBold(True)
        font.setWeight(75)
        self.lblout_oc.setFont(font)
        self.lblout_oc.setObjectName("lblout_oc")
        self.gridLayout_6.addWidget(self.lblout_oc, 1, 0, 1, 1)
        self.lbl_formatoout_oc = QtWidgets.QLabel(self.frame_65)
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(9)
        font.setBold(True)
        font.setWeight(75)
        self.lbl_formatoout_oc.setFont(font)
        self.lbl_formatoout_oc.setObjectName("lbl_formatoout_oc")
        self.gridLayout_6.addWidget(self.lbl_formatoout_oc, 2, 0, 1, 1)
        self.formatout_oc = QtWidgets.QComboBox(self.frame_65)
        self.formatout_oc.setObjectName("formatout_oc")
        self.gridLayout_6.addWidget(self.formatout_oc, 2, 1, 1, 1)
        self.verticalLayout_73.addWidget(self.frame_65)
        self.frame_68 = QtWidgets.QFrame(self.scrollAreaWidgetContents_4)
        self.frame_68.setFrameShape(QtWidgets.QFrame.Panel)
        self.frame_68.setFrameShadow(QtWidgets.QFrame.Plain)
        self.frame_68.setObjectName("frame_68")
        self.verticalLayout_77 = QtWidgets.QVBoxLayout(self.frame_68)
        self.verticalLayout_77.setObjectName("verticalLayout_77")
        self.horizontalLayout_41 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_41.setObjectName("horizontalLayout_41")
        spacerItem28 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_41.addItem(spacerItem28)
        self.btn_oc = QtWidgets.QPushButton(self.frame_68)
        self.btn_oc.setMinimumSize(QtCore.QSize(200, 0))
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.btn_oc.setFont(font)
        self.btn_oc.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        self.btn_oc.setFocusPolicy(QtCore.Qt.NoFocus)
        self.btn_oc.setIcon(icon)
        self.btn_oc.setObjectName("btn_oc")
        self.horizontalLayout_41.addWidget(self.btn_oc)
        spacerItem29 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_41.addItem(spacerItem29)
        self.verticalLayout_77.addLayout(self.horizontalLayout_41)
        self.verticalLayout_73.addWidget(self.frame_68)
        self.scrollArea_4.setWidget(self.scrollAreaWidgetContents_4)
        self.verticalLayout_72.addWidget(self.scrollArea_4)
        self.horizontalLayout_42.addWidget(self.frame_61)
        self.textBrowser_13 = QtWidgets.QTextBrowser(self.OC)
        self.textBrowser_13.setMinimumSize(QtCore.QSize(330, 0))
        self.textBrowser_13.setMaximumSize(QtCore.QSize(330, 16777215))
        self.textBrowser_13.viewport().setProperty("cursor", QtGui.QCursor(QtCore.Qt.WhatsThisCursor))
        self.textBrowser_13.setFocusPolicy(QtCore.Qt.NoFocus)
        self.textBrowser_13.setOpenLinks(False)
        self.textBrowser_13.setObjectName("textBrowser_13")
        self.horizontalLayout_42.addWidget(self.textBrowser_13)
        icon7 = QtGui.QIcon()
        icon7.addPixmap(QtGui.QPixmap(":/plugins/qutility/images/overlap.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.tabWidget.addTab(self.OC, icon7, "")
        self.INFO = QtWidgets.QWidget()
        self.INFO.setObjectName("INFO")
        self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.INFO)
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.textBrowser_2 = QtWidgets.QTextBrowser(self.INFO)
        self.textBrowser_2.setMaximumSize(QtCore.QSize(16777215, 16777215))
        self.textBrowser_2.setFocusPolicy(QtCore.Qt.NoFocus)
        self.textBrowser_2.setOpenExternalLinks(True)
        self.textBrowser_2.setObjectName("textBrowser_2")
        self.verticalLayout_2.addWidget(self.textBrowser_2)
        self.frame = QtWidgets.QFrame(self.INFO)
        self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame.setObjectName("frame")
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.frame)
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.labelQgisVersion = QtWidgets.QLabel(self.frame)
        self.labelQgisVersion.setObjectName("labelQgisVersion")
        self.horizontalLayout_2.addWidget(self.labelQgisVersion)
        self.labelPluginVersion = QtWidgets.QLabel(self.frame)
        self.labelPluginVersion.setObjectName("labelPluginVersion")
        self.horizontalLayout_2.addWidget(self.labelPluginVersion)
        self.verticalLayout_2.addWidget(self.frame)
        icon8 = QtGui.QIcon()
        icon8.addPixmap(QtGui.QPixmap(":/plugins/qutility/images/guide.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.tabWidget.addTab(self.INFO, icon8, "")
        self.verticalLayout.addWidget(self.tabWidget)

        self.retranslateUi(QUtilityDialogBase)
        self.tabWidget.setCurrentIndex(0)
        QtCore.QMetaObject.connectSlotsByName(QUtilityDialogBase)

    def retranslateUi(self, QUtilityDialogBase):
        _translate = QtCore.QCoreApplication.translate
        QUtilityDialogBase.setWindowTitle(_translate("QUtilityDialogBase", "QUtility"))
        self.label.setToolTip(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-style:italic;\">Select one or more layers to apply the field modification to</span></p></body></html>"))
        self.label.setText(_translate("QUtilityDialogBase", "Select the layers to edit:"))
        self.label_11.setToolTip(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-style:italic;\">Select the data type to assign (e.g. Text, Integer, Decimal)</span></p></body></html>"))
        self.label_11.setText(_translate("QUtilityDialogBase", "New data type:"))
        self.label_13.setToolTip(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-style:italic;\">Indicates the number of decimal places (only for &quot;Double&quot;)</span></p></body></html>"))
        self.label_13.setText(_translate("QUtilityDialogBase", "Precision (decimals):"))
        self.fmpreci.setPlaceholderText(_translate("QUtilityDialogBase", "e.g. 2"))
        self.label_9.setToolTip(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-style:italic;\">Select the field (attribute) to update</span></p></body></html>"))
        self.label_9.setText(_translate("QUtilityDialogBase", "Field to edit:"))
        self.label_10.setToolTip(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-style:italic;\">Set the maximum field length</span></p></body></html>"))
        self.label_10.setText(_translate("QUtilityDialogBase", "Maximum length:"))
        self.fmlun.setPlaceholderText(_translate("QUtilityDialogBase", "e.g. 254"))
        self.label_8.setToolTip(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-style:italic;\">Enter a new name for the field or leave it blank to keep the original name. Only letters, numbers, and underscores are allowed</span></p></body></html>"))
        self.label_8.setText(_translate("QUtilityDialogBase", "Name (optional):"))
        self.fmrun.setToolTip(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-style:italic;\">Apply changes to the selected field in the layers</span></p></body></html>"))
        self.fmrun.setText(_translate("QUtilityDialogBase", "  Apply changes to selected"))
        self.textBrowser.setHtml(_translate("QUtilityDialogBase", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'Calibri\'; font-size:9pt; font-weight:400; font-style:normal;\">\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><img src=\":/plugins/qutility/images/fm.png\" width=\"32\" height=\"32\" /><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\"> </span><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; font-weight:600;\">Field Modifier</span></p>\n"
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\">This tool allows you to </span><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; font-weight:600;\">modify the data type</span><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\"> and the </span><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; font-weight:600;\">length</span><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\"> of fields (attributes) in the selected layers. </span></p>\n"
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\">It is particularly useful for: </span></p>\n"
"<ul style=\"margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;\"><li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Standardizing field types before merging multiple layers.</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Adapting data structure to specific export or compatibility requirements.</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Correcting field definition errors in existing layers.</li></ul>\n"
"<h4 style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; font-weight:600;\">⚙️ Main Features:</span></h4>\n"
"<ul style=\"margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;\"><li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Multi-layer input selection.</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Interactive view and editing of available fields.</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Support for common data types like <span style=\" font-family:\'Courier New\';\">String</span>, <span style=\" font-family:\'Courier New\';\">Integer</span>, <span style=\" font-family:\'Courier New\';\">Float</span>.</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Definition of maximum field length.</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Set precision only if the field is of type Double.</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Optional field renaming during editing.</li></ul>\n"
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; font-style:italic;\">Note:</span><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\"> changes are applied directly to the selected layers. It is recommended to create a data backup before proceeding. </span></p>\n"
"<h4 style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; font-weight:600;\">🔄 Workflow:</span></h4>\n"
"<ol style=\"margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;\"><li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Select the layer containing the fields to modify</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Choose the field to modify from the available list</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-weight:600; color:#ff0000;\">Optional:</span> Enter a new name for the field or leave empty to keep the current name.</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Select the desired data type (String, Integer, Double, etc.)</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Set the field length if applicable</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">For Double type fields, configure the desired precision</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Check for any compatibility warnings or definition errors</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Apply the changes to the selected field</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Repeat the process for other fields if necessary</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Once finished, save the layer to make the changes permanent</li></ol>\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:1; text-indent:0px; font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\"><br /></p>\n"
"<p style=\" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; font-weight:600;\">💡 Tips:         </span></p>\n"
"<ul style=\"margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;\"><li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Always make a data backup before modifying field types</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">When renaming a field, ensure the new name does not already exist in the layer</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Use field names that contain only letters, numbers, and underscores</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">For numeric fields containing textual values, ensure data cleanliness before converting</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Use the appropriate precision option for Double fields to retain necessary decimals</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Remember that changes are applied directly to the selected layer</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">If modifying multiple fields, proceed in order to avoid dependency conflicts</li></ul>\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\"><br /></p>\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\"><br /></p>\n"
"<p align=\"right\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; color:#808080;\">QUtility is developed by EagleProjects S.p.A. – All rights reserved. </span><img src=\":/plugins/qutility/images/logo_eagleprojects.svg\" /></p></body></html>"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.FM), _translate("QUtilityDialogBase", "Field Modifier"))
        self.label_2.setToolTip(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-style:italic;\">Select one or more layers to rename</span></p></body></html>"))
        self.label_2.setText(_translate("QUtilityDialogBase", "Select the layers to rename:"))
        self.label_16.setToolTip(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-style:italic;\">Number of characters to remove from the beginning of the name</span></p></body></html>"))
        self.label_16.setText(_translate("QUtilityDialogBase", "Delete characters from the left"))
        self.label_17.setToolTip(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-style:italic;\">Text that will replace the one found in the layer name</span></p></body></html>"))
        self.label_17.setText(_translate("QUtilityDialogBase", "With"))
        self.rlpre.setPlaceholderText(_translate("QUtilityDialogBase", "e.g. shp_"))
        self.label_14.setToolTip(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-style:italic;\">Text to search for in the layer name for replacement</span></p></body></html>"))
        self.label_14.setText(_translate("QUtilityDialogBase", "Replace"))
        self.rlsuf.setPlaceholderText(_translate("QUtilityDialogBase", "e.g. _old"))
        self.label_3.setToolTip(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-style:italic;\">Text to add to the beginning of the layer name</span></p></body></html>"))
        self.label_3.setText(_translate("QUtilityDialogBase", "Prefix"))
        self.label_4.setToolTip(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-style:italic;\">Text to add to the end of the layer name</span></p></body></html>"))
        self.label_4.setText(_translate("QUtilityDialogBase", "Suffix"))
        self.label_15.setToolTip(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-style:italic;\">Number of characters to remove from the end of the name</span></p></body></html>"))
        self.label_15.setText(_translate("QUtilityDialogBase", "Delete character from right"))
        self.rlrun.setToolTip(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-style:italic;\">Apply changes to the names of the selected layers</span></p></body></html>"))
        self.rlrun.setText(_translate("QUtilityDialogBase", "  Rename Selected"))
        self.textBrowser_3.setHtml(_translate("QUtilityDialogBase", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'Calibri\'; font-size:9pt; font-weight:400; font-style:normal;\">\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><img src=\":/plugins/qutility/images/rename.png\" width=\"32\" height=\"32\" /> <span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; font-weight:600;\">Renamer Layers+</span></p>\n"
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\">This tool allows you to </span><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; font-weight:600;\">rename layers</span><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\"> quickly and flexibly, through a set of combined operations. </span></p>\n"
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\">It is particularly useful for:</span></p>\n"
"<ul style=\"margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;\"><li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Standardizing layer names before export or sharing</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Removing unwanted characters from names</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Adding prefixes, suffixes, or custom identifiers</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Applying text replacements (find/replace)</li></ul>\n"
"<h4 style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; font-weight:600;\">⚙️ Main Features:</span></h4>\n"
"<ul style=\"margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;\"><li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Add a custom <span style=\" font-weight:600;\">prefix</span> or <span style=\" font-weight:600;\">suffix</span> to the name</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Remove a specific number of characters from the left or right</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Replace portions of text in layer names</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Compatible with batch processing</li></ul>\n"
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; font-style:italic;\">Note:</span><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\"> changes are applied directly to the active layers in the project. It is recommended to save a copy of the project before proceeding. </span></p>\n"
"<h4 style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; font-weight:600;\">🔄 Workflow:</span></h4>\n"
"<ol style=\"margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;\"><li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Launch the tool and select the layers to rename from the list</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Choose the desired renaming mode:</li>\n"
"<ul style=\"margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 2;\"><li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Add prefix/suffix</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Remove specific characters</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Text replacement (find/replace)</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Case normalization (upper/lower)</li></ul>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Configure the specific parameters for the chosen mode:</li>\n"
"<ul style=\"margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 2;\"><li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">For prefix/suffix: enter the text to add</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">For removal: specify the characters or number of characters to remove</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">For replacement: enter the text to search and the replacement text</li></ul>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Preview the new names in the table</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Select the layers to which the changes should be applied</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Confirm and apply the changes</li></ol>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:1; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\">  </span></p>\n"
"<p style=\" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; font-weight:600;\">💡 Tips:         </span></p>\n"
"<ul style=\"margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;\"><li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Use the preview function to check the result before applying changes</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">For complex operations, proceed in steps applying one change at a time</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Save the project before proceeding with bulk renaming operations</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">For layers with similar names, use the filter to quickly select them all together</li></ul>\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\"><br /></p>\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\"><br /></p>\n"
"<p align=\"right\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; color:#808080;\">QUtility is developed by EagleProjects S.p.A. – All rights reserved. </span><img src=\":/plugins/qutility/images/logo_eagleprojects.svg\" /></p></body></html>"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.RL), _translate("QUtilityDialogBase", "Rename Layers+"))
        self.label_5.setToolTip(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-style:italic;\">Enter the path to the folder or ZIP file from which to import data</span></p></body></html>"))
        self.label_5.setText(_translate("QUtilityDialogBase", "Source path:"))
        self.llsearch.setText(_translate("QUtilityDialogBase", "..."))
        self.label_6.setToolTip(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-style:italic;\">Open a selector to choose a folder or ZIP file</span></p></body></html>"))
        self.label_6.setText(_translate("QUtilityDialogBase", "Browse:"))
        self.groupBox_2.setTitle(_translate("QUtilityDialogBase", "Filters"))
        self.groupBox.setToolTip(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-style:italic;\">Select the file types to upload. You can select multiple formats.</span></p></body></html>"))
        self.groupBox.setTitle(_translate("QUtilityDialogBase", "Extensions"))
        self.llshp.setText(_translate("QUtilityDialogBase", "SHP"))
        self.llgml.setText(_translate("QUtilityDialogBase", "GML"))
        self.lltif.setText(_translate("QUtilityDialogBase", "TIF"))
        self.llgpkg.setText(_translate("QUtilityDialogBase", "GPKG"))
        self.llxslx.setText(_translate("QUtilityDialogBase", "XLSX"))
        self.lldbf.setText(_translate("QUtilityDialogBase", "DBF"))
        self.label_7.setToolTip(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-style:italic;\">Filter files that contain a specific string in their name</span></p></body></html>"))
        self.label_7.setText(_translate("QUtilityDialogBase", "Text to search for in file name:"))
        self.lltext.setPlaceholderText(_translate("QUtilityDialogBase", "e.g. _roads"))
        self.label_12.setToolTip(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-style:italic;\">Import only files modified after the specified date</span></p></body></html>"))
        self.label_12.setText(_translate("QUtilityDialogBase", "Last modified from:"))
        self.label_18.setToolTip(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-style:italic;\">Filter layers by geometry type</span></p></body></html>"))
        self.label_18.setText(_translate("QUtilityDialogBase", "Geometry type:"))
        self.llcheckgroup.setToolTip(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-style:italic;\">Automatically creates layer groups following the source folder structure</span></p></body></html>"))
        self.llcheckgroup.setText(_translate("QUtilityDialogBase", "Organize layers into groups based on folder structure"))
        self.llchecknest.setToolTip(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-style:italic;\">Scan recursively including subfolders and ZIP/archive contents</span></p></body></html>"))
        self.llchecknest.setText(_translate("QUtilityDialogBase", "Include subfolders and nested archives"))
        self.llrun.setToolTip(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-style:italic;\">Starts loading layers according to the selected filters and options</span></p></body></html>"))
        self.llrun.setText(_translate("QUtilityDialogBase", "  Start Import"))
        self.textBrowser_4.setHtml(_translate("QUtilityDialogBase", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'Calibri\'; font-size:9pt; font-weight:400; font-style:normal;\">\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><img src=\":/plugins/qutility/images/load.png\" width=\"32\" height=\"32\" /> <span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; font-weight:600;\">Smart Layer Loader</span></p>\n"
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\">This tool allows you to </span><span style=\" font-size:8pt; font-weight:600;\">automatically load multiple vector and raster layers</span><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\"> from folders and compressed archives (ZIP, 7z, TAR, RAR), including </span><span style=\" font-size:8pt; font-style:italic;\">nested</span><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\"> ones, recursively.</span></p>\n"
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\">It is particularly useful for:</span></p>\n"
"<ul style=\"margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;\"><li style=\" font-size:8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Quickly importing large amounts of geospatial data</li>\n"
"<li style=\" font-size:8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Managing complex directory structures with subfolders and compressed archives</li>\n"
"<li style=\" font-size:8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Loading data from multiple formats such as <span style=\" font-family:\'Courier New\';\">.shp</span>, <span style=\" font-family:\'Courier New\';\">.gml</span>, <span style=\" font-family:\'Courier New\';\">.gpkg</span>, <span style=\" font-family:\'Courier New\';\">.tif</span>, etc.</li></ul>\n"
"<h4 style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:8pt; font-weight:600;\">⚙️ Main Features:</span></h4>\n"
"<ul style=\"margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;\"><li style=\" font-size:8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Recursive scanning of folders and compressed archives</li>\n"
"<li style=\" font-size:8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Support for common vector and raster formats</li>\n"
"<li style=\" font-size:8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Customizable filters by file type, name, modification date, and geometry</li>\n"
"<li style=\" font-size:8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Automatic creation of layer groups based on folder structure</li></ul>\n"
"<h4 style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; font-weight:600;\">🔄 Workflow:</span></h4>\n"
"<ol style=\"margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;\"><li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Select the data source:</li>\n"
"<ul style=\"margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 2;\"><li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:30px;\">Directory containing geospatial files</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:30px;\">Compressed archive (ZIP, TAR, RAR) with geospatial data</li></ul>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Configure loading options:</li>\n"
"<ul style=\"margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 2;\"><li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:30px;\">Select file formats to load (.shp, .gml, .gpkg, .tif, etc.)</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:30px;\">Enable recursive search for subfolders if needed</li></ul>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Set desired filters:</li>\n"
"<ul style=\"margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 2;\"><li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:30px;\">Filter by name (text in the file name)</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:30px;\">Filter by modification date</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:30px;\">Filter by geometry type (for vector layers)</li></ul>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Configure organization options:</li>\n"
"<ul style=\"margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 2;\"><li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:30px;\">Enable automatic group creation based on folder structure</li></ul>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Start the loading process</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">View the loading summary with the number of layers loaded</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Check the loaded layers in the QGIS legend</li></ol>\n"
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; font-weight:600;\">💡 Tips:</span></p>\n"
"<ul style=\"margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;\"><li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">For large compressed archives, the process may take longer</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Use the geometry filter to load only layers with specific geometries</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Group creation is useful to preserve the original folder structure</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">For data with special encodings, check display after loading</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Use the name filter to load only specific layers from large datasets</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">For archives with complex nested structures, always enable recursive mode</li></ul>\n"
"<p align=\"right\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; color:#808080;\">QUtility is developed by EagleProjects S.p.A. – All rights reserved. </span><img src=\":/plugins/qutility/images/logo_eagleprojects.svg\" /></p></body></html>"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.LL), _translate("QUtilityDialogBase", "Smart Layer Loader"))
        self.label_19.setToolTip(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-style:italic;\">Layer from which matching entities will be removed</span></p></body></html>"))
        self.label_19.setText(_translate("QUtilityDialogBase", "Layer to exclude from (Source):"))
        self.label_21.setToolTip(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-style:italic;\">Select a field on which to base the comparison between entities</span></p></body></html>"))
        self.label_21.setText(_translate("QUtilityDialogBase", "Union Field 1:"))
        self.efbkp.setToolTip(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-style:italic;\">Enable to generate a backup of the source file in the same directory before deleting features</span></p></body></html>"))
        self.efbkp.setText(_translate("QUtilityDialogBase", "Generate backup files"))
        self.label_20.setToolTip(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-style:italic;\">Layer containing the entities to be used as a reference for exclusion</span></p></body></html>"))
        self.label_20.setText(_translate("QUtilityDialogBase", "Comparison layer for exclusion:"))
        self.label_22.setToolTip(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-style:italic;\">Select a field on which to base the comparison between entities</span></p></body></html>"))
        self.label_22.setText(_translate("QUtilityDialogBase", "Union Field 2:"))
        self.groupBox_3.setTitle(_translate("QUtilityDialogBase", "STATISTICS"))
        self.eflabelsource.setText(_translate("QUtilityDialogBase", "Features in source layer: --"))
        self.eflabelmatch.setText(_translate("QUtilityDialogBase", "Features in the comparison layer: --"))
        self.efcheckgeom.setToolTip(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-style:italic;\">Enable to also include a geometry control</span></p></body></html>"))
        self.efcheckgeom.setText(_translate("QUtilityDialogBase", "Also compare the geometry"))
        self.label_23.setToolTip(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-style:italic;\">Set a tolerance in meters to compare geometries</span></p></body></html>"))
        self.label_23.setText(_translate("QUtilityDialogBase", "Geometry comparison tolerance (m):"))
        self.eftoll.setSuffix(_translate("QUtilityDialogBase", " m"))
        self.groupBox_4.setTitle(_translate("QUtilityDialogBase", "ADVANCED OPTIONS"))
        self.efcase.setToolTip(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-style:italic;\">Enable case sensitive control. If disabled, &quot;Street&quot; and &quot;street&quot; will be considered the same. If enabled, they will be considered different.</span></p></body></html>"))
        self.efcase.setText(_translate("QUtilityDialogBase", "Case sensitive"))
        self.label22.setText(_translate("QUtilityDialogBase", "Spatial analysis:"))
        self.efask.setToolTip(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-style:italic;\">Open a guide on spatial relations</span></p></body></html>"))
        self.efrun.setToolTip(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-style:italic;\">Open the analysis table</span></p></body></html>"))
        self.efrun.setText(_translate("QUtilityDialogBase", "  Start Feature Analysis"))
        self.textBrowser_5.setHtml(_translate("QUtilityDialogBase", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'Calibri\'; font-size:9pt; font-weight:400; font-style:normal;\">\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><img src=\":/plugins/qutility/images/exclude.png\" width=\"32\" height=\"32\" /> <span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; font-weight:600;\">Exclude Features</span></p>\n"
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\">This tool allows you to </span><span style=\" font-size:8pt; font-weight:600;\">remove from the first layer all features that match</span><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\"> those present in a second layer, based on a selected join field and, if enabled, also compares their geometry.</span></p>\n"
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\">It is particularly useful for:</span></p>\n"
"<ul style=\"margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;\"><li style=\" font-size:8pt;\" style=\" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Removing duplicate or redundant features</li>\n"
"<li style=\" font-size:8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Comparing different versions of the same dataset</li>\n"
"<li style=\" font-size:8pt;\" style=\" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Cleaning layers based on common attributes and/or geometries</li></ul>\n"
"<h4 style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:8pt; font-weight:600;\">⚙️ Main Features:</span></h4>\n"
"<ul style=\"margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;\"><li style=\" font-size:8pt;\" style=\" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Selection of two input layers</li>\n"
"<li style=\" font-size:8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Choose the fields to use for comparison</li>\n"
"<li style=\" font-size:8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Comparison with advanced options:</li>\n"
"<ul style=\"margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 2;\"><li style=\" font-size:8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Case sensitivity</li>\n"
"<li style=\" font-size:8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Trim leading/trailing spaces</li></ul>\n"
"<li style=\" font-size:8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Option to include geometry comparison with:</li>\n"
"<ul style=\"margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 2;\"><li style=\" font-size:8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Customizable tolerance</li>\n"
"<li style=\" font-size:8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Choice of spatial relation (Intersects/Contains)</li>\n"
"<li style=\" font-size:8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Visual guide for spatial relations</li></ul>\n"
"<li style=\" font-size:8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Interactive table preview of features to be removed</li>\n"
"<li style=\" font-size:8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Advanced selection and filtering of features (by identical/different geometry)</li>\n"
"<li style=\" font-size:8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Temporary layer creation to display features to be removed</li>\n"
"<li style=\" font-size:8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Export results as CSV</li>\n"
"<li style=\" font-size:8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Option to create automatic backup before deletion</li>\n"
"<li style=\" font-size:8pt;\" style=\" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Live statistics on the number of features in each layer</li></ul>\n"
"<h4 style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; font-weight:600;\">🔄 Workflow:</span></h4>\n"
"<ol style=\"margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;\"><li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Select the layer from which to remove features</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Choose the join field in the first layer</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Select the comparison layer</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Choose the join field in the second layer</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Configure advanced options (case-sensitive)</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">(Optional) Enable geometry comparison:</li>\n"
"<ul style=\"margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 2;\"><li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Set desired tolerance</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Choose appropriate spatial relation</li></ul>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Click &quot;Start Feature Analysis&quot; to begin</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">In the result table, select features to delete</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Use buttons to filter, export, or view features</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Confirm deletion</li></ol>\n"
"<p style=\" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; font-weight:600;\">💡 Tips:</span></p>\n"
"<ul style=\"margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;\"><li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Use tolerance &gt; 0 only when flexible geometry comparison is required</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">&quot;Intersects&quot; relation is useful for intersecting lines</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">&quot;Contains&quot; relation is ideal when the source layer must fully contain comparison geometries</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Use the help button (?) next to the spatial relation to see visual examples</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Always create a backup before deleting many features</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Use the temporary layer to visually verify features before deletion</li></ul>\n"
"<p align=\"right\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; color:#808080;\">QUtility is developed by EagleProjects S.p.A. – All rights reserved. </span><img src=\":/plugins/qutility/images/logo_eagleprojects.svg\" /></p></body></html>"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.EF), _translate("QUtilityDialogBase", "Exclude Features"))
        self.label_28.setText(_translate("QUtilityDialogBase", "Data source:"))
        self.bcbrowsesource.setText(_translate("QUtilityDialogBase", "Browse"))
        self.groupBox_8.setTitle(_translate("QUtilityDialogBase", "File types to process"))
        self.bcshpcheck.setText(_translate("QUtilityDialogBase", "Shapefile (.shp)"))
        self.bcgpkgcheck.setText(_translate("QUtilityDialogBase", "GeoPackage (.gpkg)"))
        self.bcgeojsoncheck.setText(_translate("QUtilityDialogBase", "GeoJSON"))
        self.bcgmlcheck.setText(_translate("QUtilityDialogBase", "GML (.gml)"))
        self.bckmlcheck.setText(_translate("QUtilityDialogBase", "KML (.kml)"))
        self.bcrecursive.setText(_translate("QUtilityDialogBase", "Search in subfolders"))
        self.label_29.setText(_translate("QUtilityDialogBase", "Filter by name:"))
        self.bcaddsources.setText(_translate("QUtilityDialogBase", "Add file"))
        self.bcremovefiles.setText(_translate("QUtilityDialogBase", "Remove selected"))
        self.bcclearfiles.setText(_translate("QUtilityDialogBase", "Delete all"))
        self.bcfilecount.setText(_translate("QUtilityDialogBase", "Files to convert: 0"))
        self.bctable.setSortingEnabled(False)
        self.label_30.setText(_translate("QUtilityDialogBase", "Output folder:"))
        self.bcbrowsedest.setText(_translate("QUtilityDialogBase", "Browse"))
        self.label_31.setText(_translate("QUtilityDialogBase", "Output format:"))
        self.groupBox_9.setTitle(_translate("QUtilityDialogBase", "Conversion options:"))
        self.bctransformcrs.setText(_translate("QUtilityDialogBase", "Transform the coordinate system"))
        self.bcsinglefile.setText(_translate("QUtilityDialogBase", "Merge all into one file (GeoPackage only)"))
        self.groupBox_10.setTitle(_translate("QUtilityDialogBase", "Specific options:"))
        self.bcdelimiterlabel.setText(_translate("QUtilityDialogBase", "CSV separator:"))
        self.bclayernamelabel.setText(_translate("QUtilityDialogBase", "Output file name (optional):"))
        self.bcrun.setToolTip(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-style:italic;\">Open the analysis table</span></p></body></html>"))
        self.bcrun.setText(_translate("QUtilityDialogBase", "  Start Conversion"))
        self.textBrowser_7.setHtml(_translate("QUtilityDialogBase", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'Calibri\'; font-size:9pt; font-weight:400; font-style:normal;\">\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><img src=\":/plugins/qutility/images/convert.png\" width=\"32\" height=\"32\" /> <span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; font-weight:600;\">Batch Converter</span></p>\n"
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\">This tool allows you to </span><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; font-weight:600;\">batch convert multiple geographic files</span><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\"> between different formats, with advanced filtering and coordinate transformation options.</span></p>\n"
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\">It is particularly useful for:</span></p>\n"
"<ul style=\"margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;\"><li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Converting large amounts of data between formats in a single operation</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Standardizing heterogeneous datasets into a common format</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Preparing data for external software with specific format requirements</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Transforming coordinate systems across multiple files simultaneously</li></ul>\n"
"<h4 style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; font-weight:600;\">⚙️ Main Features:</span></h4>\n"
"<ul style=\"margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;\"><li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Support for many vector formats: <span style=\" font-weight:600;\">Shapefile, GeoPackage, GeoJSON, SQLite, DXF, FileGDB, GML, KML</span> and others...</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Recursive scanning of folders and subfolders</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Filename filter to select only specific files</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Coordinate system transformation during conversion</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Option to merge multiple layers into a single GeoPackage</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Custom settings for each format (CSV separator, GPKG layer name, etc.)</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Interactive table interface with colored icons <span style=\" color:#808080;\">(gray = pending, blue = in progress, green = ok, red = error)</span></li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Modal progress window with progress bar and completed file count</li></ul>\n"
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; font-style:italic;\">Note: Conversion preserves the original layer attributes and geometry. For more complex conversions involving attribute transformations, use dedicated tools.</span></p>\n"
"<h4 style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; font-weight:600;\">❗ Known Limitations:</span></h4>\n"
"<ul style=\"margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;\"><li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-weight:600;\">DXF</span> – most attribute fields are not preserved (format limitation).</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-weight:600;\">CSV</span> – supported separators: comma (default), semicolon, tab, space. The “Transform coordinate system” checkbox is disabled when CSV is selected, as CSV files do not contain geometries with CRS.</li></ul>\n"
"<h4 style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; font-weight:600;\">🔄 Workflow:</span></h4>\n"
"<ol style=\"margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;\"><li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Select the source directory containing the files to convert</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Select the file types to search (Shapefile, GeoPackage, GeoJSON, etc.)</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Configure search options:</li>\n"
"<ul style=\"margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 2;\"><li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Enable/disable subfolder search</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Set optional filename filters</li></ul>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Click &quot;Add Files&quot; to find and add files to the table</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Select the output directory where converted files will be saved</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Choose the desired output format from the dropdown</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Configure conversion options:</li>\n"
"<ul style=\"margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 2;\"><li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Coordinate system transformation (if format supports it)</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Format-specific options</li></ul>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Click &quot;Start Conversion&quot; to begin the process</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Monitor progress in the progress window and table</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Once completed, review the results and completion messages</li></ol>\n"
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; font-weight:600;\">💡 Tips:</span></p>\n"
"<ul style=\"margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;\"><li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">For converting large numbers of files, it\'s recommended to work in smaller batches</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">When converting to GeoPackage, use “Merge all into a single file” to create a compact database</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">For CSV files, choose the correct separator; tab (↹) is invisible but recognized by Excel</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">For complex folder structures, use the filename filter to select only specific files</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">After coordinate transformation, always check the alignment of the resulting data</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">For layers with many attributes, GeoPackage is generally more efficient than Shapefile</li></ul>\n"
"<p align=\"right\" style=\"-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p>\n"
"<p align=\"right\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; color:#808080;\">QUtility is developed by EagleProjects S.p.A. – All rights reserved.</span> <img src=\":/plugins/qutility/images/logo_eagleprojects.svg\" /></p></body></html>"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.BC), _translate("QUtilityDialogBase", "Batch Converter"))
        self.lbl_lyr1_oc.setText(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-size:9pt; font-weight:600;\">Layer on which to count EPSG [4326]</span><span style=\" font-size:8pt;\"><br/>(e.g. Infrastructures layer)</span></p></body></html>"))
        self.ckbox_lyr1_oc.setText(_translate("QUtilityDialogBase", "Selected records only"))
        self.lbl_lyr2_oc.setText(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-size:9pt; font-weight:600;\">Overlapping layer to count EPSG [4326]</span><span style=\" font-size:8pt;\"><br/>(e.g. Cables layer)</span></p></body></html>"))
        self.ckbox_lyr2_oc.setText(_translate("QUtilityDialogBase", "Selected records only"))
        self.lblout_oc.setText(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-size:9pt; font-weight:600;\">Output folder:</span></p></body></html>"))
        self.lbl_formatoout_oc.setText(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-size:9pt; font-weight:600;\">Output format:</span></p></body></html>"))
        self.btn_oc.setToolTip(_translate("QUtilityDialogBase", "<html><head/><body><p><span style=\" font-style:italic;\">Click to start counting</span></p></body></html>"))
        self.btn_oc.setText(_translate("QUtilityDialogBase", "  Start Counting"))
        self.textBrowser_13.setHtml(_translate("QUtilityDialogBase", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'Calibri\'; font-size:9pt; font-weight:400; font-style:normal;\">\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><img src=\":/plugins/qutility/images/overlap.png\" width=\"32\" height=\"32\" /> <span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; font-weight:600;\">Overlaps Counter</span></p>\n"
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\">This tool allows you to </span><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; font-weight:600;\">count the number of overlaps from one linear layer evaluated against each feature (record) of another linear layer</span><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\">—that is, how many times one layer overlaps another when traversing the entire record on which the count is performed.</span></p>\n"
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\">It is particularly useful for:</span></p>\n"
"<ul style=\"margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;\"><li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Calculating how many cables cross an infrastructure segment in a fiber optic project.</li></ul>\n"
"<h4 style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; font-weight:600;\">🔄 Workflow:</span></h4>\n"
"<ol style=\"margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;\"><li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Select the linear layers loaded on the map to be used as input</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Calibri\'; font-size:8pt;\">Choose the folder path where to save the output layer</span></li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Select the desired file format for saving the output layer (Shapefile, GeoPackage, GeoJSON, etc.)</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Click &quot;Start Counting&quot; to begin the process</li>\n"
"<li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">At the end, check the output containing an additional field for the count named &quot;<span style=\" font-style:italic;\">n_overlaps</span>&quot;.</li></ol>\n"
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; font-weight:600;\">💡 Tips:</span></p>\n"
"<ul style=\"margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;\"><li style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Before starting the process, ensure that the input linear layers are in EPSG [4326] coordinate reference system.</li></ul>\n"
"<p align=\"right\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; color:#808080;\">QUtility is developed by EagleProjects S.p.A. – All rights reserved.</span><img src=\":/plugins/qutility/images/logo_eagleprojects.svg\" /></p></body></html>"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.OC), _translate("QUtilityDialogBase", "Overlaps Counter"))
        self.textBrowser_2.setHtml(_translate("QUtilityDialogBase", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'Calibri\'; font-size:9pt; font-weight:400; font-style:normal;\">\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><img src=\":/plugins/qutility/icon.png\" width=\"32\" height=\"32\" /><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\"> </span><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; font-weight:600;\">QUtility – Advanced GIS Tools</span></p>\n"
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; font-weight:600;\">QUtility</span><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\"> is a plugin designed to provide a collection of tools to support daily work with GIS layers. Each tool is built to improve efficiency, reduce manual errors, and automate common operations on vector data.</span></p>\n"
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\">The plugin includes numerous utilities, organized by category, such as:</span></p>\n"
"<ul style=\"margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;\"><li style=\" font-size:8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Attribute field management and editing</li>\n"
"<li style=\" font-size:8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Data conversion and transformation</li>\n"
"<li style=\" font-size:8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Analysis and validation support</li>\n"
"<li style=\" font-size:8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Topological checks</li>\n"
"<li style=\" font-size:8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Layer overlaps counting</li></ul>\n"
"<h4 style=\"-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:medium; font-weight:600;\"><br /></h4>\n"
"<h4 style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:medium; font-weight:600;\">📦 Tools included in version 3.x:</span></h4>\n"
"<ul style=\"margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;\"><li style=\" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:8pt; font-weight:600;\">Field Modifier:</span><span style=\" font-size:8pt;\"> Edit type and length of fields in one or more layers</span></li>\n"
"<li style=\" font-size:8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-weight:600;\">Renamer Layers+:</span> Advanced layer renaming (prefixes, suffixes, removals, replacements)</li>\n"
"<li style=\" font-size:8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-weight:600;\">Smart Layer Loader:</span> Bulk loading of layers from folders and ZIP files, including nested structures</li>\n"
"<li style=\" font-size:8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-weight:600;\">Exclude Features:</span> Remove features from the first layer that match those in a second layer, by geometry and attribute comparison</li>\n"
"<li style=\" font-size:8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-weight:600;\">Batch Converter:</span> Mass conversion between different geospatial formats with filtering, coordinate transformation and merge to a single file</li>\n"
"<li style=\" font-size:8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-weight:600;\">Overlaps Counter:</span> Count the number of overlaps between features of one layer and another</li></ul>\n"
"<h4 style=\"-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:medium; font-weight:600;\"><br /></h4>\n"
"<h4 style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:medium; font-weight:600;\">🆕 What\'s new in version 3.x:</span></h4>\n"
"<ul style=\"margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;\"><li style=\" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:8pt;\">First official release of the plugin</span></li>\n"
"<li style=\" font-size:8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Support for batch operations and modular structure</li>\n"
"<li style=\" font-size:8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">User-friendly interface</li>\n"
"<li style=\" font-size:8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Added ability to rename the modified field in Field Modifier</li>\n"
"<li style=\" font-size:8pt;\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">New Exclude Features tool for data cleanup</li></ul>\n"
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\">Each tool is individually described in its own section. If you have any questions, issues or suggestions for new features, feel free to contact us.</span></p>\n"
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\">📧 </span><a href=\"mailto:gis@eagleprojects.it?subject=QGIS%20Plugin%20QUtility%20-%20Support%20Request&amp;body=Hello,%0A%0AI need assistance regarding the QGIS plugin “QUtility”.%0A%0ADetails of the issue:%0A%0A[Insert here a brief description of the issue]%0A%0AQGIS Version:%0APlugin Version:%0AOperating System:%0A%0AI\'m available for further clarification.%0A%0ABest regards,%0A[Your name]\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; text-decoration: underline; color:#0000ff;\">Contact technical support</span></a><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt;\"> </span></p>\n"
"<p align=\"right\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; color:#808080;\">QUtility is developed by EagleProjects S.p.A. – All rights reserved.</span><img src=\":/plugins/qutility/images/logo_eagleprojects.svg\" /></p></body></html>"))
        self.labelQgisVersion.setText(_translate("QUtilityDialogBase", "TextLabel"))
        self.labelPluginVersion.setText(_translate("QUtilityDialogBase", "TextLabel"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.INFO), _translate("QUtilityDialogBase", "Info"))
from qgsfilewidget import QgsFileWidget
from qgsmaplayercombobox import QgsMapLayerComboBox
from qgsprojectionselectionwidget import QgsProjectionSelectionWidget
