Esempio n. 1
0
    def test_split_cells(self):
        doc = Doc(Config())
        doc.text.setPlainText("1 row\n 2 row\n3 row")
        doc.insert_table({"padding": 0, "space": 0, "rows": 4, "cols": 3})

        def in_table():
            c = QTextCursor(doc.text)
            c.movePosition(QTextCursor.Start)
            while c.movePosition(QTextCursor.NextCharacter,
                                 QTextCursor.KeepAnchor):
                if doc.in_table():
                    cc = doc.table().cellAt(2, 2)
                    cc.firstCursorPosition().insertText("Hello1")

                    cc = doc.table().cellAt(2, 1)
                    cc.firstCursorPosition().insertText("Hello")

                    c.movePosition(QTextCursor.EndOfBlock,
                                   QTextCursor.KeepAnchor)
                    break

        in_table()
        doc.table().mergeCells(0, 0, 2, 2)
        doc.split_cells()
        self.assertFalse("colspan" in doc.text.toHtml())
Esempio n. 2
0
    def test_text_align(self):
        doc = Doc(Config())
        doc.text.setPlainText("1 row\n 2 row\n3 row")

        alignment = doc._text_edit_cursor.blockFormat().alignment()
        self.assertEqual(alignment, Qt.AlignLeft)

        doc.text_align(Qt.AlignRight, QTextCharFormat.AlignBottom)

        alignment = doc._text_edit_cursor.blockFormat().alignment()
        self.assertEqual(alignment, Qt.AlignRight)

        doc.insert_table({"padding": 0, "space": 0, "rows": 3, "cols": 2})

        def in_table():
            c = QTextCursor(doc.text)
            c.movePosition(QTextCursor.Start)
            while c.movePosition(QTextCursor.NextCharacter,
                                 QTextCursor.KeepAnchor):
                if doc.in_table():
                    doc.text_align(Qt.AlignRight, QTextCharFormat.AlignBottom)
                    a = doc._text_edit_cursor.charFormat().verticalAlignment()
                    self.assertEqual(a, QTextCharFormat.AlignBottom)
                    break

        in_table()
Esempio n. 3
0
    def test_background_color(self):
        doc = Doc(Config())
        doc.text.setPlainText("1 row\n 2 row\n3 row")

        # with patch.object(QColorDialog, 'getColor',
        #                  return_value=QColor("blue")):
        #    doc.color()
        doc.background_color("blue")

        color = doc._text_edit_cursor.charFormat().background().color().name()
        self.assertEqual(color, QColor("blue").name())

        doc = Doc(Config())

        def in_table():
            # is exists table in document ?
            c = QTextCursor(doc.text)
            c.movePosition(QTextCursor.Start)
            _in_table = False
            while c.movePosition(QTextCursor.NextCharacter,
                                 QTextCursor.KeepAnchor):
                if doc.in_table():
                    _in_table = True
                    doc.background_color("blue")
                    cc = doc._text_edit_cursor
                    cell = cc.currentTable().cellAt(cc).format()
                    clr = cell.background().color().name()
                    self.assertEqual(clr, QColor("blue").name())
                    break
            return _in_table

        doc.insert_table({"padding": 0, "space": 0, "rows": 1, "cols": 1})
        self.assertEqual(in_table(), True)
Esempio n. 4
0
    def test_table(self):
        doc = Doc(Config())
        doc.text.setPlainText("1 row\n 2 row\n3 row")
        self.assertEqual(doc.table(), None)
        doc.insert_table({"padding": 0, "space": 0, "rows": 3, "cols": 2})

        def in_table():
            c = QTextCursor(doc.text)
            c.movePosition(QTextCursor.Start)
            while c.movePosition(QTextCursor.NextCharacter,
                                 QTextCursor.KeepAnchor):
                if doc.in_table():
                    break

        in_table()
        self.assertTrue("QTextTable" in str(type(doc.table())))
Esempio n. 5
0
    def test_in_table(self):
        doc = Doc(Config())

        def in_table():
            # is exists table in document ?
            c = QTextCursor(doc.text)
            c.movePosition(QTextCursor.Start)
            _in_table = False
            while c.movePosition(QTextCursor.NextCharacter,
                                 QTextCursor.KeepAnchor):
                if doc.in_table():
                    _in_table = True
                    break
            return _in_table

        self.assertEqual(in_table(), False)
        doc.insert_table({"padding": 0, "space": 0, "rows": 1, "cols": 1})
        self.assertEqual(in_table(), True)
Esempio n. 6
0
    def test_ins_col(self):
        doc = Doc(Config())
        doc.text.setPlainText("1 row\n 2 row\n3 row")
        doc.insert_table({"padding": 0, "space": 0, "rows": 3, "cols": 2})

        def in_table():
            c = QTextCursor(doc.text)
            c.movePosition(QTextCursor.Start)
            while c.movePosition(QTextCursor.NextCharacter,
                                 QTextCursor.KeepAnchor):
                if doc.in_table():
                    break

        in_table()

        self.assertEqual(doc.table().rows(), 3)
        self.assertEqual(doc.table().columns(), 2)
        doc.ins_col()
        self.assertEqual(doc.table().rows(), 3)
        self.assertEqual(doc.table().columns(), 3)
Esempio n. 7
0
    def test_cell(self):
        doc = Doc(Config())
        doc.text.setPlainText("1 row\n 2 row\n3 row")
        doc.insert_table({"padding": 0, "space": 0, "rows": 3, "cols": 2})

        def in_table():
            c = QTextCursor(doc.text)
            c.movePosition(QTextCursor.Start)
            while c.movePosition(QTextCursor.NextCharacter,
                                 QTextCursor.KeepAnchor):
                if doc.in_table():
                    cc = doc.table().cellAt(2, 1)
                    cc.firstCursorPosition().insertText("Hello")
                    doc.change(cc.firstCursorPosition())
                    break

        in_table()
        self.assertTrue("QTextTableCell" in str(type(doc.cell())))
        self.assertEqual(doc.cell().row(), 2)
        self.assertEqual(doc.cell().column(), 1)
Esempio n. 8
0
    def test_hline_table(self):
        doc = Doc(Config())

        result = []

        def chg(param):
            result.append(int(param["right"].split("[")[-1].split("]")[0]))

        doc.changed_status.connect(chg)

        doc.insert_table({"padding": 0, "space": 0, "rows": 3, "cols": 2})

        def in_table():
            c = QTextCursor(doc.text)
            c.movePosition(QTextCursor.Start)
            while c.movePosition(QTextCursor.NextCharacter,
                                 QTextCursor.KeepAnchor):
                if doc.in_table():
                    break

        in_table()
        doc.change()
        doc.hline()  # add line + new line (new block)
        self.assertTrue(int(result[-2]) < int(result[-1]))