diff --git a/texter/texter/build.sh b/texter/texter/build.sh
index 5a54324..94ec27b 100644
--- a/texter/texter/build.sh
+++ b/texter/texter/build.sh
@@ -1,2 +1,2 @@
pyuic4 -o texter_ui.py texter3.ui
-# pykdeuic4-python2.7 -o text_sorter_ui.py texter4.ui
+pyuic4 -o text_sorter_ui.py texter4.ui
diff --git a/texter/texter/main.py b/texter/texter/main.py
index b2d4cca..8a1a265 100644
--- a/texter/texter/main.py
+++ b/texter/texter/main.py
@@ -71,6 +71,10 @@ class TextSorterDialog(QtGui.QWidget, Ui_TextSorterDialog):
def fill_list(self):
self.model = self.parent().parent().model
self.text_list.setModel(self.model)
+ ix = self.parent().parent().current_index
+ index = self.model.index(ix, 0)
+ self.text_list.setCurrentIndex(index)
+
def slot_text_up(self):
row = self.text_list.currentIndex().row()
@@ -81,6 +85,7 @@ class TextSorterDialog(QtGui.QWidget, Ui_TextSorterDialog):
text_db[row-1], text_db[row] = text_db[row], text_db[row-1]
self.text_list.setCurrentIndex(self.model.index(row - 1, 0))
self.text_list.clicked.emit(self.model.index(row - 1, 0))
+ self.parent().parent().db_dirty = True
return True
def slot_text_down(self):
@@ -93,6 +98,7 @@ class TextSorterDialog(QtGui.QWidget, Ui_TextSorterDialog):
index = self.model.index(row + 1, 0)
self.text_list.setCurrentIndex(index)
self.text_list.clicked.emit(index)
+ self.parent().parent().db_dirty = True
return True
def slot_show_text(self, model_index):
@@ -108,6 +114,7 @@ class TextSorterDialog(QtGui.QWidget, Ui_TextSorterDialog):
index = self.model.index(0, 0)
self.text_list.setCurrentIndex(index)
self.text_list.clicked.emit(index)
+ self.parent().parent().db_dirty = True
class FadeAnimation(QtCore.QObject):
animation_started = QtCore.pyqtSignal()
@@ -120,8 +127,8 @@ class FadeAnimation(QtCore.QObject):
self.fade_steps = fade_steps
self.current_alpha = 255
self.timer = None
-
-
+
+
def start_animation(self):
print "start_animation"
self.animation_started.emit()
@@ -165,7 +172,6 @@ class FadeAnimation(QtCore.QObject):
self.animation_finished.emit()
print "animation_finished"
-
class TextAnimation(QtCore.QObject):
animation_started = QtCore.pyqtSignal()
@@ -245,6 +251,7 @@ class TextAnimation(QtCore.QObject):
try:
char = self.text.next()
self.dst_cursor.insertText(char)
+ self.dst_text_edit.ensureCursorVisible()
except StopIteration:
self.fragment_iter += 1
self.text = None
@@ -287,11 +294,14 @@ class MainWindow(KMainWindow, Ui_MainWindow):
self.db_dirty = False
self.is_animate = False
self.fade_animation = None
+ self.dialog = None
+ self.current_object = None
+ self.current_index = -1
self.is_auto_publish = False
self.setupUi(self)
-
+
self.fade_animation = FadeAnimation(self.live_text, 6, self)
self.font = QtGui.QFont("monospace", self.default_size)
@@ -333,7 +343,7 @@ class MainWindow(KMainWindow, Ui_MainWindow):
self.preview_size_action.triggered[QtGui.QAction].connect(self.slot_preview_font_size)
self.live_size_action.triggered[QtGui.QAction].connect(self.slot_live_font_size)
- self.fade_action.triggered.connect(self.slot_fade)
+ #self.fade_action.triggered.connect(self.slot_fade)
self.next_action.triggered.connect(self.slot_next_item)
self.previous_action.triggered.connect(self.slot_previous_item)
@@ -364,6 +374,7 @@ class MainWindow(KMainWindow, Ui_MainWindow):
"format_font_family",
#"format_font_size",
"format_text_background_color",
+ "format_list_style",
"format_list_indent_more",
"format_list_indent_less",
"format_text_bold",
@@ -371,7 +382,7 @@ class MainWindow(KMainWindow, Ui_MainWindow):
"format_text_strikeout",
"format_text_italic",
"format_align_right",
- "format_align_justify",
+ #"format_align_justify",
"manage_link",
"format_text_subscript",
"format_text_superscript",
@@ -380,6 +391,7 @@ class MainWindow(KMainWindow, Ui_MainWindow):
for action in self.live_editor_collection.actions():
text = str(action.objectName())
+ print "text", text
if text in disabled_action_names:
action.setVisible(False)
@@ -493,12 +505,12 @@ class MainWindow(KMainWindow, Ui_MainWindow):
spacer = KToolBarSpacerAction(self.action_collection)
self.action_collection.addAction("1_spacer", spacer)
-
- self.fade_action = self.action_collection.addAction("fade_action")
- #icon = QtGui.QIcon.fromTheme(_fromUtf8("go-previous-view-page"))
- #self.fade_action.setIcon(icon)
- self.fade_action.setIconText("fade")
- self.fade_action.setShortcut(KShortcut(QtGui.QKeySequence(QtCore.Qt.ALT + QtCore.Qt.Key_F)), KAction.ShortcutTypes(KAction.ActiveShortcut | KAction.DefaultShortcut))
+
+ #self.fade_action = self.action_collection.addAction("fade_action")
+ ##icon = QtGui.QIcon.fromTheme(_fromUtf8("go-previous-view-page"))
+ ##self.fade_action.setIcon(icon)
+ #self.fade_action.setIconText("fade")
+ #self.fade_action.setShortcut(KShortcut(QtGui.QKeySequence(QtCore.Qt.ALT + QtCore.Qt.Key_F)), KAction.ShortcutTypes(KAction.ActiveShortcut | KAction.DefaultShortcut))
self.previous_action = self.action_collection.addAction("previous_action")
icon = QtGui.QIcon.fromTheme(_fromUtf8("go-previous-view-page"))
@@ -637,7 +649,6 @@ class MainWindow(KMainWindow, Ui_MainWindow):
self.preview_size_action.setFontSize(self.default_size)
self.preview_text.document().setDefaultFont(self.font)
-
def slot_set_live_defaults(self):
self.live_center_action.setChecked(True)
self.live_text.alignCenter()
@@ -645,29 +656,35 @@ class MainWindow(KMainWindow, Ui_MainWindow):
self.live_size_action.setFontSize(self.default_size)
self.live_text.document().setDefaultFont(self.font)
-
def slot_clear_live(self):
self.live_text.clear()
self.slot_set_live_defaults()
-
def slot_clear_preview(self):
self.preview_text.clear()
self.slot_set_preview_defaults()
-
+
def slot_fade(self):
if self.fade_animation.timer is None:
self.fade_animation.start_animation()
-
def fill_combo_box(self):
+ if self.dialog is not None:
+ self.dialog.deleteLater()
+ self.dialog = None
+
self.text_combo.clear()
- for preview, text in self.model.text_db:
+ current_row = -1
+ for ix, list_obj in enumerate(self.model.text_db):
+ preview, text = list_obj
self.text_combo.addAction(preview)
+ if list_obj == self.current_object:
+ current_row = ix
- self.text_combo.setCurrentItem(0)
- self.slot_load_preview_text(0)
-
+ if current_row == -1:
+ current_row = self.current_index
+ self.slot_load_preview_text(current_row)
+ self.text_combo.setCurrentItem(current_row)
def slot_load_preview_text(self, index):
try:
@@ -678,7 +695,6 @@ class MainWindow(KMainWindow, Ui_MainWindow):
if self.is_auto_publish:
self.slot_publish()
-
def slot_save_live_text(self):
text = self.live_text.toHtml()
preview = self.get_preview_text(unicode(self.live_text.toPlainText()))
@@ -733,6 +749,12 @@ class MainWindow(KMainWindow, Ui_MainWindow):
def slot_open_dialog(self):
+ self.current_index = self.text_combo.currentItem()
+ self.current_object = self.model.text_db[self.current_index]
+ if self.dialog is not None:
+ self.dialog.deleteLater()
+ self.dialog = None
+
self.dialog = KDialog(self)
self.dialog_widget = TextSorterDialog(self.dialog)
self.dialog.setMainWidget(self.dialog_widget)
@@ -745,8 +767,6 @@ class MainWindow(KMainWindow, Ui_MainWindow):
#self.dialog.setFixedSize(x, global_height-40)
self.dialog.okClicked.connect(self.fill_combo_box)
self.dialog.exec_()
- self.dialog.deleteLater()
- self.dialog = None
def slot_load(self):
path = os.path.expanduser("~/.texter")
diff --git a/texter/texter/text_model.py b/texter/texter/text_model.py
index 2135be6..b3a9262 100644
--- a/texter/texter/text_model.py
+++ b/texter/texter/text_model.py
@@ -19,6 +19,8 @@ class TextModel(QtCore.QAbstractTableModel):
return 2
def data(self, index, role):
+ if role not in (1,3,4,5,6,7,8,9,10,13):
+ print "role", role
if not index.isValid() or \
not 0 <= index.row() < self.rowCount():
return QVariant()
@@ -28,6 +30,10 @@ class TextModel(QtCore.QAbstractTableModel):
if role == QtCore.Qt.DisplayRole:
return self.text_db[row][column]
#return "foo bar"
+ elif role == QtCore.Qt.ForegroundRole:
+ return QtGui.QBrush(QtCore.Qt.black)
+ elif role == QtCore.Qt.BackgroundRole:
+ return QtGui.QBrush(QtCore.Qt.white)
return QtCore.QVariant()
@@ -43,7 +49,11 @@ class TextModel(QtCore.QAbstractTableModel):
def setData(self, index, value, role):
if role == QtCore.Qt.EditRole:
- self.text_db[index.row()][index.column()] = value.toString()
+ text = value.toString()
+ if not text:
+ return False
+ else:
+ self.text_db[index.row()][index.column()] = text
return True
diff --git a/texter/texter/text_sorter_ui.py b/texter/texter/text_sorter_ui.py
index 1579de3..1a0f767 100644
--- a/texter/texter/text_sorter_ui.py
+++ b/texter/texter/text_sorter_ui.py
@@ -1,11 +1,12 @@
-#!/usr/bin/env python
-# coding=UTF-8
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'texter4.ui'
#
-# Generated by pykdeuic4 from texter4.ui on Mon Apr 21 01:34:50 2014
+# Created: Mon Apr 28 21:58:51 2014
+# by: PyQt4 UI code generator 4.10.3
#
-# WARNING! All changes to this file will be lost.
-from PyKDE4 import kdecore
-from PyKDE4 import kdeui
+# WARNING! All changes made in this file will be lost!
+
from PyQt4 import QtCore, QtGui
try:
@@ -39,44 +40,6 @@ class Ui_TextSorterDialog(object):
self.text_list.setSizePolicy(sizePolicy)
self.text_list.setMinimumSize(QtCore.QSize(200, 576))
self.text_list.setMaximumSize(QtCore.QSize(16777215, 576))
- palette = QtGui.QPalette()
- brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
- brush.setStyle(QtCore.Qt.SolidPattern)
- palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.WindowText, brush)
- brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
- brush.setStyle(QtCore.Qt.SolidPattern)
- palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Text, brush)
- brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
- brush.setStyle(QtCore.Qt.SolidPattern)
- palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Base, brush)
- brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
- brush.setStyle(QtCore.Qt.SolidPattern)
- palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Window, brush)
- brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
- brush.setStyle(QtCore.Qt.SolidPattern)
- palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.WindowText, brush)
- brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
- brush.setStyle(QtCore.Qt.SolidPattern)
- palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Text, brush)
- brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
- brush.setStyle(QtCore.Qt.SolidPattern)
- palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Base, brush)
- brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
- brush.setStyle(QtCore.Qt.SolidPattern)
- palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Window, brush)
- brush = QtGui.QBrush(QtGui.QColor(128, 125, 123))
- brush.setStyle(QtCore.Qt.SolidPattern)
- palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.WindowText, brush)
- brush = QtGui.QBrush(QtGui.QColor(128, 125, 123))
- brush.setStyle(QtCore.Qt.SolidPattern)
- palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Text, brush)
- brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
- brush.setStyle(QtCore.Qt.SolidPattern)
- palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Base, brush)
- brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
- brush.setStyle(QtCore.Qt.SolidPattern)
- palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Window, brush)
- self.text_list.setPalette(palette)
self.text_list.setObjectName(_fromUtf8("text_list"))
self.text_preview = KRichTextWidget(self.splitter)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
@@ -250,7 +213,7 @@ class Ui_TextSorterDialog(object):
QtCore.QMetaObject.connectSlotsByName(TextSorterDialog)
def retranslateUi(self, TextSorterDialog):
- TextSorterDialog.setWindowTitle(kdecore.i18n(_fromUtf8("Form")))
- self.remove_button.setText(kdecore.i18n(_fromUtf8("Remove")))
+ TextSorterDialog.setWindowTitle(_translate("TextSorterDialog", "Form", None))
+ self.remove_button.setText(_translate("TextSorterDialog", "Remove", None))
from PyKDE4.kdeui import KButtonGroup, KArrowButton, KPushButton, KRichTextWidget
diff --git a/texter/texter/texter3.ui b/texter/texter/texter3.ui
index 245650c..d9255da 100644
--- a/texter/texter/texter3.ui
+++ b/texter/texter/texter3.ui
@@ -233,7 +233,7 @@
Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse|Qt::TextBrowserInteraction|Qt::TextEditable|Qt::TextEditorInteraction|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse
- KRichTextWidget::SupportAlignment|KRichTextWidget::SupportChangeListStyle|KRichTextWidget::SupportFontFamily|KRichTextWidget::SupportFontSize|KRichTextWidget::SupportIndentLists|KRichTextWidget::SupportTextForegroundColor
+ KRichTextWidget::SupportAlignment|KRichTextWidget::SupportFontFamily|KRichTextWidget::SupportFontSize|KRichTextWidget::SupportTextForegroundColor
diff --git a/texter/texter/texter4.ui b/texter/texter/texter4.ui
index 7e7b432..c066dce 100644
--- a/texter/texter/texter4.ui
+++ b/texter/texter/texter4.ui
@@ -38,124 +38,6 @@
576
-
-
-
-
-
-
- 255
- 255
- 255
-
-
-
-
-
-
- 255
- 255
- 255
-
-
-
-
-
-
- 0
- 0
- 0
-
-
-
-
-
-
- 0
- 0
- 0
-
-
-
-
-
-
-
-
- 255
- 255
- 255
-
-
-
-
-
-
- 255
- 255
- 255
-
-
-
-
-
-
- 0
- 0
- 0
-
-
-
-
-
-
- 0
- 0
- 0
-
-
-
-
-
-
-
-
- 128
- 125
- 123
-
-
-
-
-
-
- 128
- 125
- 123
-
-
-
-
-
-
- 0
- 0
- 0
-
-
-
-
-
-
- 0
- 0
- 0
-
-
-
-
-
-