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())
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()
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)
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())))
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)
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)
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)
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]))