Esempio n. 1
0
    def _populate_review(self, review_fields: List[str]):
        '''
        populate the review section of the inspected feature with given
        fields and their current values
        '''
        if review_fields:
            headline = QLabel('Geokodierungs-Parameter')
            font = headline.font()
            font.setUnderline(True)
            headline.setFont(font)
            self.review_layout.addWidget(headline)
            grid = QGridLayout()
            for i, field in enumerate(review_fields):
                grid.addWidget(QLabel(field), i, 0)
                value = self.feature.attribute(field)
                grid.addWidget(QLabel(str(value)), i, 1)
            self.review_layout.addLayout(grid)
            # horizontal line
            line = QFrame()
            line.setFrameShape(QFrame.HLine)
            line.setFrameShadow(QFrame.Sunken)
            self.review_layout.addWidget(line)

        headline = QLabel('Anschrift laut Dienst')
        font = headline.font()
        font.setUnderline(True)
        headline.setFont(font)
        self.review_layout.addWidget(headline)
        bkg_text = self.feature.attribute(self.text_field)
        self.review_layout.addWidget(QLabel(bkg_text))
Esempio n. 2
0
    def __init__(self, table):
        QWidget.__init__(self)

        layout = QVBoxLayout()

        hlayout = QHBoxLayout()
        l = QLabel(table.name())
        font = l.font()
        font.setBold(True)
        l.setFont(font)

        hlayout.addWidget(l)
        open_table_btn = QToolButton()
        icon = QIcon(os.path.dirname(__file__) + "/mActionOpenTableGML.svg")
        open_table_btn.setIcon(icon)
        open_table_btn.resize(32, 32)
        open_table_btn.clicked.connect(
            lambda checked: self.linkActivated.emit(table.name())
        )
        hlayout.addWidget(open_table_btn)

        f = QFrame()
        f.setFrameStyle(QFrame.Panel | QFrame.Plain)
        f.setLineWidth(2.0)
        f.setLayout(hlayout)

        layout.addWidget(f)

        self.attribute_label = QLabel()
        names = [f.name() for f in table.columns()]
        names += [l.name() + "_id" for l in table.links() if l.max_occurs() == 1]
        names += [l.ref_table().name() + "_id" for l in table.back_links()]

        self.attribute_label.setText("\n".join(names))
        v2 = QVBoxLayout()
        v2.addWidget(self.attribute_label)

        self.attribute_frame = QFrame()
        self.attribute_frame.setFrameStyle(QFrame.Panel | QFrame.Plain)
        self.attribute_frame.setLineWidth(2.0)
        self.attribute_frame.setLayout(v2)
        layout.addWidget(self.attribute_frame)

        self.setLayout(layout)

        fm = QFontMetricsF(self.attribute_label.font())
        self.__font_height = fm.height()
        margins = layout.contentsMargins()

        self.attribute_x_offset = margins.left()
        self.attribute_x2_offset = margins.right()
Esempio n. 3
0
    def draw(self, layout: QBoxLayout):
        '''
        draw title in given layout (appended)

        Parameters
        ----------
        layout : QBoxLayout
            layout to append the drawn parameter to
        '''
        label = QLabel(self.title)
        font = label.font()
        font.setBold(self.bold)
        font.setPointSize(self.fontsize)
        label.setFont(font)
        layout.addWidget(label)
Esempio n. 4
0
class TableWidget(QWidget):

    linkActivated = pyqtSignal(str)

    def __init__(self, table):
        QWidget.__init__(self)

        layout = QVBoxLayout()

        hlayout = QHBoxLayout()
        l = QLabel(table.name())
        font = l.font()
        font.setBold(True)
        l.setFont(font)

        hlayout.addWidget(l)
        open_table_btn = QToolButton()
        icon = QIcon(os.path.dirname(__file__) + "/mActionOpenTableGML.svg")
        open_table_btn.setIcon(icon)
        open_table_btn.resize(32, 32)
        open_table_btn.clicked.connect(
            lambda checked: self.linkActivated.emit(table.name())
        )
        hlayout.addWidget(open_table_btn)

        f = QFrame()
        f.setFrameStyle(QFrame.Panel | QFrame.Plain)
        f.setLineWidth(2.0)
        f.setLayout(hlayout)

        layout.addWidget(f)

        self.attribute_label = QLabel()
        names = [f.name() for f in table.columns()]
        names += [l.name() + "_id" for l in table.links() if l.max_occurs() == 1]
        names += [l.ref_table().name() + "_id" for l in table.back_links()]

        self.attribute_label.setText("\n".join(names))
        v2 = QVBoxLayout()
        v2.addWidget(self.attribute_label)

        self.attribute_frame = QFrame()
        self.attribute_frame.setFrameStyle(QFrame.Panel | QFrame.Plain)
        self.attribute_frame.setLineWidth(2.0)
        self.attribute_frame.setLayout(v2)
        layout.addWidget(self.attribute_frame)

        self.setLayout(layout)

        fm = QFontMetricsF(self.attribute_label.font())
        self.__font_height = fm.height()
        margins = layout.contentsMargins()

        self.attribute_x_offset = margins.left()
        self.attribute_x2_offset = margins.right()

    def attributeCoords(self, idx):
        # returns the box coordinates of the idx-th attribute
        offset_y = self.attribute_label.y() + self.attribute_frame.y()
        offset_x = self.attribute_x_offset
        x = self.x() + offset_x
        w = self.width() - offset_x - self.attribute_x2_offset
        y = self.y() + offset_y + self.__font_height * idx
        h = self.__font_height
        return (x, y, w, h)