Add 'History' tab, showing the current page's list of previous revisions. fixes #561
This commit is contained in:
parent
e9368bc8ea
commit
f14f63daf2
2 changed files with 130 additions and 6 deletions
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue