diff --git a/weboob/applications/qwebcontentedit/main_window.py b/weboob/applications/qwebcontentedit/main_window.py
index 0e127ada..f8dd2b6e 100644
--- a/weboob/applications/qwebcontentedit/main_window.py
+++ b/weboob/applications/qwebcontentedit/main_window.py
@@ -20,7 +20,8 @@
import logging
from copy import deepcopy
from PyQt4.QtCore import SIGNAL
-from PyQt4.QtGui import QMessageBox
+from PyQt4.QtGui import QMessageBox, QTableWidgetItem
+from PyQt4.QtCore import Qt
from weboob.tools.application.qt import QtMainWindow, QtDo
from weboob.tools.application.qt.backendcfg import BackendCfg
@@ -46,6 +47,9 @@ class MainWindow(QtMainWindow):
self.connect(self.ui.saveButton, SIGNAL("clicked()"), self.savePage)
self.connect(self.ui.actionBackends, SIGNAL("triggered()"), self.backendsConfig)
self.connect(self.ui.contentEdit, SIGNAL("textChanged()"), self._textChanged)
+ self.connect(self.ui.loadHistoryButton,
+ SIGNAL("clicked()"),
+ self.loadHistory)
if self.weboob.count_backends() == 0:
self.backendsConfig()
@@ -66,6 +70,9 @@ class MainWindow(QtMainWindow):
if self.ui.tabWidget.currentIndex() == 1:
if self.backend is not None:
self.showPreview()
+ elif self.ui.tabWidget.currentIndex() == 2:
+ if self.backend is not None:
+ self.loadHistory()
def _textChanged(self):
if self.backend:
@@ -143,5 +150,53 @@ class MainWindow(QtMainWindow):
def showPreview(self):
tmp_content = deepcopy(self.content)
- tmp_content.content=unicode(self.ui.contentEdit.toPlainText())
+ tmp_content.content = unicode(self.ui.contentEdit.toPlainText())
self.ui.previewEdit.setHtml(self.backend.get_content_preview(tmp_content))
+
+ def loadHistory(self):
+ """ Loads the page's log into the 'History' tab """
+ if self.backend is None:
+ return
+
+ self.ui.loadHistoryButton.setEnabled(False)
+ self.ui.loadHistoryButton.setText("Loading...")
+ self.ui.historyTable.clear()
+ self.ui.historyTable.setRowCount(0)
+
+ self.ui.historyTable.setHorizontalHeaderLabels(["Revision", "Time", "Author", "Summary"])
+ self.ui.historyTable.setColumnWidth(3, 1000)
+
+ self.process = QtDo(self.weboob, self._gotRevision)
+ self.process.do('iter_revisions',
+ self.content.id,
+ max_results=self.ui.nbRevBox.value(),
+ backends=(self.backend,))
+
+ def _gotRevision(self, backend, revision):
+ """ Callback for loadHistory's QtDo """
+ if not backend:
+ self.process = None
+ self.ui.loadHistoryButton.setEnabled(True)
+ self.ui.loadHistoryButton.setText("Reload")
+ return
+
+ # we set the flags to Qt.ItemIsEnabled so that the items
+ # are not modifiable
+ item_revision = QTableWidgetItem(revision.revision)
+ item_revision.setFlags(Qt.ItemIsEnabled)
+
+ item_time = QTableWidgetItem(revision.timestamp.strftime('%Y-%m-%d %H:%M:%S'))
+ item_time.setFlags(Qt.ItemIsEnabled)
+
+ item_author = QTableWidgetItem(revision.author)
+ item_author.setFlags(Qt.ItemIsEnabled)
+
+ item_summary = QTableWidgetItem(revision.comment)
+ item_summary.setFlags(Qt.ItemIsEnabled)
+
+ row = self.ui.historyTable.currentRow() + 1
+ self.ui.historyTable.insertRow(row)
+ self.ui.historyTable.setItem(row, 0, item_revision)
+ self.ui.historyTable.setItem(row, 1, item_time)
+ self.ui.historyTable.setItem(row, 2, item_author)
+ self.ui.historyTable.setItem(row, 3, item_summary)
diff --git a/weboob/applications/qwebcontentedit/ui/main_window.ui b/weboob/applications/qwebcontentedit/ui/main_window.ui
index 15675510..3126beca 100644
--- a/weboob/applications/qwebcontentedit/ui/main_window.ui
+++ b/weboob/applications/qwebcontentedit/ui/main_window.ui
@@ -6,8 +6,8 @@
0
0
- 498
- 543
+ 608
+ 609
@@ -69,6 +69,75 @@
+
+
+ History
+
+
+ -
+
+
+
+ New Column
+
+
+
+
+ Time
+
+
+
+
+ Author
+
+
+
+
+ Summary
+
+
+
+
+ -
+
+
-
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+ Number of revisions
+
+
+
+ -
+
+
+ 10
+
+
+
+ -
+
+
+ Reload
+
+
+
+
+
+
+
-
@@ -109,8 +178,8 @@
0
0
- 498
- 23
+ 608
+ 22