本文整理汇总了Python中Utilities.AutoSaver.AutoSaver.changeOccurred方法的典型用法代码示例。如果您正苦于以下问题:Python AutoSaver.changeOccurred方法的具体用法?Python AutoSaver.changeOccurred怎么用?Python AutoSaver.changeOccurred使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Utilities.AutoSaver.AutoSaver
的用法示例。
在下文中一共展示了AutoSaver.changeOccurred方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: PasswordManager
# 需要导入模块: from Utilities.AutoSaver import AutoSaver [as 别名]
# 或者: from Utilities.AutoSaver.AutoSaver import changeOccurred [as 别名]
class PasswordManager(QObject):
"""
Class implementing the password manager.
@signal changed() emitted to indicate a change
@signal passwordsSaved() emitted after the passwords were saved
"""
changed = pyqtSignal()
passwordsSaved = pyqtSignal()
SEPARATOR = "===================="
FORMS = "=====FORMS====="
NEVER = "=====NEVER====="
def __init__(self, parent=None):
"""
Constructor
@param parent reference to the parent object (QObject)
"""
super(PasswordManager, self).__init__(parent)
self.__logins = {}
self.__loginForms = {}
self.__never = []
self.__loaded = False
self.__saveTimer = AutoSaver(self, self.save)
self.changed.connect(self.__saveTimer.changeOccurred)
def clear(self):
"""
Public slot to clear the saved passwords.
"""
if not self.__loaded:
self.__load()
self.__logins = {}
self.__loginForms = {}
self.__never = []
self.__saveTimer.changeOccurred()
self.__saveTimer.saveIfNeccessary()
self.changed.emit()
def getLogin(self, url, realm):
"""
Public method to get the login credentials.
@param url URL to get the credentials for (QUrl)
@param realm realm to get the credentials for (string)
@return tuple containing the user name (string) and password (string)
"""
if not self.__loaded:
self.__load()
key = self.__createKey(url, realm)
try:
return self.__logins[key][0], Utilities.crypto.pwConvert(
self.__logins[key][1], encode=False)
except KeyError:
return "", ""
def setLogin(self, url, realm, username, password):
"""
Public method to set the login credentials.
@param url URL to set the credentials for (QUrl)
@param realm realm to set the credentials for (string)
@param username username for the login (string)
@param password password for the login (string)
"""
if not self.__loaded:
self.__load()
key = self.__createKey(url, realm)
self.__logins[key] = (
username,
Utilities.crypto.pwConvert(password, encode=True)
)
self.changed.emit()
def __createKey(self, url, realm):
"""
Private method to create the key string for the login credentials.
@param url URL to get the credentials for (QUrl)
@param realm realm to get the credentials for (string)
@return key string (string)
"""
authority = url.authority()
if authority.startswith("@"):
authority = authority[1:]
if realm:
key = "{0}://{1} ({2})".format(
url.scheme(), authority, realm)
else:
key = "{0}://{1}".format(url.scheme(), authority)
return key
#.........这里部分代码省略.........
示例2: SpeedDial
# 需要导入模块: from Utilities.AutoSaver import AutoSaver [as 别名]
# 或者: from Utilities.AutoSaver.AutoSaver import changeOccurred [as 别名]
class SpeedDial(QObject):
"""
Class implementing the speed dial.
@signal pagesChanged() emitted after the list of pages changed
@signal speedDialSaved() emitted after the speed dial data was saved
"""
pagesChanged = pyqtSignal()
speedDialSaved = pyqtSignal()
def __init__(self, parent=None):
"""
Constructor
@param parent reference to the parent object (QObject)
"""
super(SpeedDial, self).__init__(parent)
self.__regenerateScript = True
self.__webPages = []
self.__webFrames = []
self.__initialScript = ""
self.__thumbnailsDirectory = ""
self.__thumbnailers = []
self.__initialize()
self.pagesChanged.connect(self.__pagesChanged)
self.__saveTimer = AutoSaver(self, self.save)
self.pagesChanged.connect(self.__saveTimer.changeOccurred)
def addWebFrame(self, frame):
"""
Public method to add a web frame.
@param frame reference to the frame to be added (QWebFrame)
"""
if frame not in self.__webFrames:
self.__webFrames.append(frame)
def addPage(self, url, title):
"""
Public method to add a page for the given data.
@param url URL of the page (QUrl)
@param title title of the page (string)
"""
if url.isEmpty():
return
from .Page import Page
page = Page(url.toString(), title)
self.__webPages.append(page)
self.pagesChanged.emit()
def removePage(self, url):
"""
Public method to remove a page.
@param url URL of the page (QUrl)
"""
page = self.pageForUrl(url)
if not page.url:
return
self.removeImageForUrl(page.url)
self.__webPages.remove(page)
self.pagesChanged.emit()
def __imageFileName(self, url):
"""
Private method to generate the image file name for a URL.
@param url URL to generate the file name from (string)
@return name of the image file (string)
"""
return os.path.join(
self.__thumbnailsDirectory,
str(QCryptographicHash.hash(QByteArray(url.encode("utf-8")),
QCryptographicHash.Md5).toHex(), encoding="utf-8") + ".png")
def initialScript(self):
"""
Public method to get the 'initial' JavaScript script.
@return initial JavaScript script (string)
"""
if self.__regenerateScript:
self.__regenerateScript = False
self.__initialScript = ""
for page in self.__webPages:
if page.broken:
imgSource = "qrc:icons/brokenPage.png"
#.........这里部分代码省略.........
示例3: DownloadManager
# 需要导入模块: from Utilities.AutoSaver import AutoSaver [as 别名]
# 或者: from Utilities.AutoSaver.AutoSaver import changeOccurred [as 别名]
class DownloadManager(QDialog, Ui_DownloadManager):
"""
Class implementing the download manager.
"""
RemoveNever = 0
RemoveExit = 1
RemoveSuccessFullDownload = 2
def __init__(self, parent=None):
"""
Constructor
@param parent reference to the parent widget (QWidget)
"""
super(DownloadManager, self).__init__(parent)
self.setupUi(self)
self.__saveTimer = AutoSaver(self, self.save)
self.__model = DownloadModel(self)
self.__manager = Helpviewer.HelpWindow.HelpWindow\
.networkAccessManager()
self.__iconProvider = None
self.__downloads = []
self.__downloadDirectory = ""
self.__loaded = False
self.setDownloadDirectory(Preferences.getUI("DownloadPath"))
self.downloadsView.setShowGrid(False)
self.downloadsView.verticalHeader().hide()
self.downloadsView.horizontalHeader().hide()
self.downloadsView.setAlternatingRowColors(True)
self.downloadsView.horizontalHeader().setStretchLastSection(True)
self.downloadsView.setModel(self.__model)
self.downloadsView.setContextMenuPolicy(Qt.CustomContextMenu)
self.downloadsView.customContextMenuRequested.connect(
self.__customContextMenuRequested)
self.__load()
def __customContextMenuRequested(self, pos):
"""
Private slot to handle the context menu request for the bookmarks tree.
@param pos position the context menu was requested (QPoint)
"""
menu = QMenu()
selectedRowsCount = len(
self.downloadsView.selectionModel().selectedRows())
if selectedRowsCount == 1:
row = self.downloadsView.selectionModel().selectedRows()[0].row()
itm = self.__downloads[row]
if itm.downloadCanceled():
menu.addAction(
UI.PixmapCache.getIcon("restart.png"),
self.tr("Retry"), self.__contextMenuRetry)
else:
if itm.downloadedSuccessfully():
menu.addAction(
UI.PixmapCache.getIcon("open.png"),
self.tr("Open"), self.__contextMenuOpen)
elif itm.downloading():
menu.addAction(
UI.PixmapCache.getIcon("stopLoading.png"),
self.tr("Cancel"), self.__contextMenuCancel)
menu.addSeparator()
menu.addAction(
self.tr("Open Containing Folder"),
self.__contextMenuOpenFolder)
menu.addSeparator()
menu.addAction(
self.tr("Go to Download Page"),
self.__contextMenuGotoPage)
menu.addAction(
self.tr("Copy Download Link"),
self.__contextMenuCopyLink)
menu.addSeparator()
menu.addAction(self.tr("Select All"), self.__contextMenuSelectAll)
if selectedRowsCount > 1 or \
(selectedRowsCount == 1 and
not self.__downloads[
self.downloadsView.selectionModel().selectedRows()[0].row()]
.downloading()):
menu.addSeparator()
menu.addAction(
self.tr("Remove From List"),
self.__contextMenuRemoveSelected)
menu.exec_(QCursor.pos())
def shutdown(self):
"""
Public method to stop the download manager.
"""
self.__saveTimer.changeOccurred()
self.__saveTimer.saveIfNeccessary()
#.........这里部分代码省略.........
示例4: CookieJar
# 需要导入模块: from Utilities.AutoSaver import AutoSaver [as 别名]
# 或者: from Utilities.AutoSaver.AutoSaver import changeOccurred [as 别名]
class CookieJar(QNetworkCookieJar):
"""
Class implementing a QNetworkCookieJar subclass with various accept policies.
@signal cookiesChanged() emitted after the cookies have been changed
"""
JAR_VERSION = 23
AcceptAlways = 0
AcceptNever = 1
AcceptOnlyFromSitesNavigatedTo = 2
KeepUntilExpire = 0
KeepUntilExit = 1
KeepUntilTimeLimit = 2
Allow = 0
Block = 1
AllowForSession = 2
def __init__(self, parent = None):
"""
Constructor
@param parent reference to the parent object (QObject)
"""
QNetworkCookieJar.__init__(self, parent)
self.__loaded = False
self.__acceptCookies = self.AcceptOnlyFromSitesNavigatedTo
self.__saveTimer = AutoSaver(self, self.save)
self.__cookiesFile = os.path.join(Utilities.getConfigDir(),
"browser", "cookies.ini")
def saveCookies(self, cookiesList):
"""
Public method to save the cookies.
@param cookiesList list of cookies to be saved
@return saved cookies as a byte array (QByteArray)
"""
data = QByteArray()
stream = QDataStream(data, QIODevice.WriteOnly)
stream.writeUInt16(self.JAR_VERSION)
stream.writeUInt32(len(cookiesList))
for cookie in cookiesList:
stream << cookie.toRawForm()
return data
def loadCookies(self, cookies):
"""
Public method to restore the saved cookies.
@param cookies byte array containing the saved cookies (QByteArray)
@return list of cookies
"""
if cookies.isEmpty():
return []
cookiesList = []
data = QByteArray(cookies)
stream = QDataStream(data, QIODevice.ReadOnly)
version = stream.readUInt16()
if version != self.JAR_VERSION:
return []
noCookies = stream.readUInt32()
rawCookie = QByteArray()
while not stream.atEnd():
stream >> rawCookie
newCookies = QNetworkCookie.parseCookies(rawCookie)
for newCookie in newCookies:
cookiesList.append(newCookie)
return cookiesList
def close(self):
"""
Public slot to close the cookie jar.
"""
if self.__loaded and self.__keepCookies == self.KeepUntilExit:
self.clear()
self.__saveTimer.saveIfNeccessary()
def clear(self):
"""
Public method to clear all cookies.
"""
if not self.__loaded:
self.load()
self.setAllCookies([])
self.__saveTimer.changeOccurred()
self.emit(SIGNAL("cookiesChanged()"))
def load(self):
#.........这里部分代码省略.........
示例5: HistoryManager
# 需要导入模块: from Utilities.AutoSaver import AutoSaver [as 别名]
# 或者: from Utilities.AutoSaver.AutoSaver import changeOccurred [as 别名]
class HistoryManager(QWebHistoryInterface):
"""
Class implementing the history manager.
@signal historyCleared() emitted after the history has been cleared
@signal historyReset() emitted after the history has been reset
@signal entryAdded(HistoryEntry) emitted after a history entry has been
added
@signal entryRemoved(HistoryEntry) emitted after a history entry has been
removed
@signal entryUpdated(int) emitted after a history entry has been updated
@signal historySaved() emitted after the history was saved
"""
historyCleared = pyqtSignal()
historyReset = pyqtSignal()
entryAdded = pyqtSignal(HistoryEntry)
entryRemoved = pyqtSignal(HistoryEntry)
entryUpdated = pyqtSignal(int)
historySaved = pyqtSignal()
def __init__(self, parent=None):
"""
Constructor
@param parent reference to the parent object (QObject)
"""
super(HistoryManager, self).__init__(parent)
self.__saveTimer = AutoSaver(self, self.save)
self.__daysToExpire = Preferences.getHelp("HistoryLimit")
self.__history = []
self.__lastSavedUrl = ""
self.__expiredTimer = QTimer(self)
self.__expiredTimer.setSingleShot(True)
self.__expiredTimer.timeout.connect(self.__checkForExpired)
self.__frequencyTimer = QTimer(self)
self.__frequencyTimer.setSingleShot(True)
self.__frequencyTimer.timeout.connect(self.__refreshFrequencies)
self.entryAdded.connect(self.__saveTimer.changeOccurred)
self.entryRemoved.connect(self.__saveTimer.changeOccurred)
self.__load()
from .HistoryModel import HistoryModel
from .HistoryFilterModel import HistoryFilterModel
from .HistoryTreeModel import HistoryTreeModel
self.__historyModel = HistoryModel(self, self)
self.__historyFilterModel = HistoryFilterModel(self.__historyModel, self)
self.__historyTreeModel = HistoryTreeModel(self.__historyFilterModel, self)
super(HistoryManager, self).setDefaultInterface(self)
self.__startFrequencyTimer()
def close(self):
"""
Public method to close the history manager.
"""
# remove history items on application exit
if self.__daysToExpire == -2:
self.clear()
self.__saveTimer.saveIfNeccessary()
def history(self):
"""
Public method to return the history.
@return reference to the list of history entries (list of HistoryEntry)
"""
return self.__history[:]
def setHistory(self, history, loadedAndSorted=False):
"""
Public method to set a new history.
@param history reference to the list of history entries to be set
(list of HistoryEntry)
@param loadedAndSorted flag indicating that the list is sorted
(boolean)
"""
self.__history = history[:]
if not loadedAndSorted:
self.__history.sort()
self.__checkForExpired()
if loadedAndSorted:
try:
self.__lastSavedUrl = self.__history[0].url
except IndexError:
self.__lastSavedUrl = ""
else:
self.__lastSavedUrl = ""
self.__saveTimer.changeOccurred()
self.historyReset.emit()
#.........这里部分代码省略.........
示例6: BookmarksManager
# 需要导入模块: from Utilities.AutoSaver import AutoSaver [as 别名]
# 或者: from Utilities.AutoSaver.AutoSaver import changeOccurred [as 别名]
class BookmarksManager(QObject):
"""
Class implementing the bookmarks manager.
@signal entryAdded(BookmarkNode) emitted after a bookmark node has been
added
@signal entryRemoved(BookmarkNode, int, BookmarkNode) emitted after a
bookmark node has been removed
@signal entryChanged(BookmarkNode) emitted after a bookmark node has been
changed
@signal bookmarksSaved() emitted after the bookmarks were saved
@signal bookmarksReloaded() emitted after the bookmarks were reloaded
"""
entryAdded = pyqtSignal(BookmarkNode)
entryRemoved = pyqtSignal(BookmarkNode, int, BookmarkNode)
entryChanged = pyqtSignal(BookmarkNode)
bookmarksSaved = pyqtSignal()
bookmarksReloaded = pyqtSignal()
def __init__(self, parent=None):
"""
Constructor
@param parent reference to the parent object (QObject)
"""
super(BookmarksManager, self).__init__(parent)
self.__saveTimer = AutoSaver(self, self.save)
self.entryAdded.connect(self.__saveTimer.changeOccurred)
self.entryRemoved.connect(self.__saveTimer.changeOccurred)
self.entryChanged.connect(self.__saveTimer.changeOccurred)
self.__initialize()
def __initialize(self):
"""
Private method to initialize some data.
"""
self.__loaded = False
self.__bookmarkRootNode = None
self.__toolbar = None
self.__menu = None
self.__bookmarksModel = None
self.__commands = QUndoStack()
@classmethod
def getFileName(cls):
"""
Class method to get the file name of the bookmark file.
@return name of the bookmark file (string)
"""
return os.path.join(Utilities.getConfigDir(), "browser",
"bookmarks.xbel")
def close(self):
"""
Public method to close the bookmark manager.
"""
self.__saveTimer.saveIfNeccessary()
def undoRedoStack(self):
"""
Public method to get a reference to the undo stack.
@return reference to the undo stack (QUndoStack)
"""
return self.__commands
def changeExpanded(self):
"""
Public method to handle a change of the expanded state.
"""
self.__saveTimer.changeOccurred()
def reload(self):
"""
Public method used to initiate a reloading of the bookmarks.
"""
self.__initialize()
self.load()
self.bookmarksReloaded.emit()
def load(self):
"""
Public method to load the bookmarks.
@exception RuntimeError raised to indicate an error loading the
bookmarks
"""
if self.__loaded:
return
self.__loaded = True
bookmarkFile = self.getFileName()
if not QFile.exists(bookmarkFile):
from . import DefaultBookmarks_rc # __IGNORE_WARNING__
bookmarkFile = QFile(":/DefaultBookmarks.xbel")
bookmarkFile.open(QIODevice.ReadOnly)
#.........这里部分代码省略.........
示例7: PasswordManager
# 需要导入模块: from Utilities.AutoSaver import AutoSaver [as 别名]
# 或者: from Utilities.AutoSaver.AutoSaver import changeOccurred [as 别名]
class PasswordManager(QObject):
"""
Class implementing the password manager.
@signal changed() emitted to indicate a change
"""
SEPARATOR = "===================="
FORMS = "=====FORMS====="
NEVER = "=====NEVER====="
def __init__(self, parent = None):
"""
Constructor
@param parent reference to the parent object (QObject)
"""
QObject.__init__(self, parent)
self.__logins = {}
self.__loginForms = {}
self.__never = []
self.__loaded = False
self.__saveTimer = AutoSaver(self, self.save)
self.connect(self, SIGNAL("changed()"), self.__saveTimer.changeOccurred)
def clear(self):
"""
Public slot to clear the saved passwords.
"""
if not self.__loaded:
self.__load()
self.__logins = {}
self.__loginForms = {}
self.__never = []
self.__saveTimer.changeOccurred()
self.__saveTimer.saveIfNeccessary()
self.emit(SIGNAL("changed()"))
def getLogin(self, url, realm):
"""
Public method to get the login credentials.
@param url URL to get the credentials for (QUrl)
@param realm realm to get the credentials for (string or QString)
@return tuple containing the user name (string) and password (string)
"""
if not self.__loaded:
self.__load()
key = self.__createKey(url, realm)
try:
return self.__logins[key][0], Utilities.pwDecode(self.__logins[key][1])
except KeyError:
return "", ""
def setLogin(self, url, realm, username, password):
"""
Public method to set the login credentials.
@param url URL to set the credentials for (QUrl)
@param realm realm to set the credentials for (string or QString)
@param username username for the login (string or QString)
@param password password for the login (string or QString)
"""
if not self.__loaded:
self.__load()
key = self.__createKey(url, realm)
self.__logins[key] = (unicode(username), Utilities.pwEncode(password))
self.emit(SIGNAL("changed()"))
def __createKey(self, url, realm):
"""
Private method to create the key string for the login credentials.
@param url URL to get the credentials for (QUrl)
@param realm realm to get the credentials for (string or QString)
@return key string (string)
"""
realm = unicode(realm)
if realm:
key = "%s://%s (%s)" % (url.scheme(), url.authority(), realm)
else:
key = "%s://%s" % (url.scheme(), url.authority())
return key
def save(self):
"""
Public slot to save the login entries to disk.
"""
if not self.__loaded:
return
loginFile = os.path.join(Utilities.getConfigDir(), "browser", "logins")
try:
f = open(loginFile, "w")
for key, login in self.__logins.items():
#.........这里部分代码省略.........
示例8: TaskViewer
# 需要导入模块: from Utilities.AutoSaver import AutoSaver [as 别名]
# 或者: from Utilities.AutoSaver.AutoSaver import changeOccurred [as 别名]
#.........这里部分代码省略.........
@param completed flag indicating completion status (boolean)
@param _time creation time of the task (float, if 0 use current time)
@param isProjectTask flag indicating a task related to the current
project (boolean)
@param taskType type of the task (one of Task.TypeFixme, Task.TypeTodo,
Task.TypeWarning, Task.TypeNote)
@param description explanatory text of the task (string)
@param uid unique id of the task (string)
@param parentTask reference to the parent task item (Task)
@return reference to the task item (Task)
"""
if parentTask:
parentUid = parentTask.getUuid()
else:
parentUid = ""
task = Task(summary, priority, filename, lineno, completed,
_time, isProjectTask, taskType,
self.project, description, uid, parentUid)
self.tasks.append(task)
if parentTask:
parentTask.addChild(task)
parentTask.setExpanded(True)
elif filename:
self.__extractedItem.addChild(task)
else:
self.__manualItem.addChild(task)
task.setHidden(not self.taskFilter.showTask(task))
self.__checkTopLevelItems()
self.__resort()
self.__resizeColumns()
if isProjectTask:
self.__projectTasksSaveTimer.changeOccurred()
return task
def addFileTask(self, summary, filename, lineno, taskType=Task.TypeTodo,
description=""):
"""
Public slot to add a file related task.
@param summary summary text of the task (string)
@param filename filename containing the task (string)
@param lineno line number containing the task (integer)
@param taskType type of the task (one of Task.TypeFixme, Task.TypeTodo,
Task.TypeWarning, Task.TypeNote)
@param description explanatory text of the task (string)
"""
self.addTask(summary, filename=filename, lineno=lineno,
isProjectTask=(
self.project and
self.project.isProjectSource(filename)),
taskType=taskType, description=description)
def getProjectTasks(self):
"""
Public method to retrieve all project related tasks.
@return copy of tasks (list of Task)
"""
tasks = [task for task in self.tasks if task.isProjectTask()]
return tasks[:]
def getGlobalTasks(self):
"""
示例9: BookmarksManager
# 需要导入模块: from Utilities.AutoSaver import AutoSaver [as 别名]
# 或者: from Utilities.AutoSaver.AutoSaver import changeOccurred [as 别名]
class BookmarksManager(QObject):
"""
Class implementing the bookmarks manager.
@signal entryAdded emitted after a bookmark node has been added
@signal entryRemoved emitted after a bookmark
node has been removed
@signal entryChanged emitted after a bookmark node has been changed
"""
def __init__(self, parent = None):
"""
Constructor
@param parent reference to the parent object (QObject)
"""
QObject.__init__(self, parent)
self.__loaded = False
self.__saveTimer = AutoSaver(self, self.save)
self.__bookmarkRootNode = None
self.__toolbar = None
self.__menu = None
self.__bookmarksModel = None
self.__commands = QUndoStack()
self.connect(self, SIGNAL("entryAdded"),
self.__saveTimer.changeOccurred)
self.connect(self, SIGNAL("entryRemoved"),
self.__saveTimer.changeOccurred)
self.connect(self, SIGNAL("entryChanged"),
self.__saveTimer.changeOccurred)
def close(self):
"""
Public method to close the bookmark manager.
"""
self.__saveTimer.saveIfNeccessary()
def undoRedoStack(self):
"""
Public method to get a reference to the undo stack.
@return reference to the undo stack (QUndoStack)
"""
return self.__commands
def changeExpanded(self):
"""
Public method to handle a change of the expanded state.
"""
self.__saveTimer.changeOccurred()
def load(self):
"""
Public method to load the bookmarks.
"""
if self.__loaded:
return
self.__loaded = True
bookmarkFile = os.path.join(Utilities.getConfigDir(), "browser", "bookmarks.xbel")
if not QFile.exists(bookmarkFile):
ba = QByteArray(DefaultBookmarks)
bookmarkFile = QBuffer(ba)
bookmarkFile.open(QIODevice.ReadOnly)
reader = XbelReader()
self.__bookmarkRootNode = reader.read(bookmarkFile)
if reader.error() != QXmlStreamReader.NoError:
KQMessageBox.warning(None,
self.trUtf8("Loading Bookmarks"),
self.trUtf8("""Error when loading bookmarks on line %1, column %2:\n"""
"""%3""")\
.arg(reader.lineNumber())\
.arg(reader.columnNumber())\
.arg(reader.errorString()))
others = []
for index in range(len(self.__bookmarkRootNode.children()) - 1, -1, -1):
node = self.__bookmarkRootNode.children()[index]
if node.type() == BookmarkNode.Folder:
if (node.title == self.trUtf8("Toolbar Bookmarks") or \
node.title == BOOKMARKBAR) and \
self.__toolbar is None:
node.title = self.trUtf8(BOOKMARKBAR)
self.__toolbar = node
if (node.title == self.trUtf8("Menu") or \
node.title == BOOKMARKMENU) and \
self.__menu is None:
node.title = self.trUtf8(BOOKMARKMENU)
self.__menu = node
else:
others.append(node)
self.__bookmarkRootNode.remove(node)
if len(self.__bookmarkRootNode.children()) > 0:
raise RuntimeError("Error loading bookmarks.")
#.........这里部分代码省略.........
示例10: HistoryManager
# 需要导入模块: from Utilities.AutoSaver import AutoSaver [as 别名]
# 或者: from Utilities.AutoSaver.AutoSaver import changeOccurred [as 别名]
class HistoryManager(QWebHistoryInterface):
"""
Class implementing the history manager.
@signal historyCleared() emitted after the history has been cleared
@signal historyReset() emitted after the history has been reset
@signal entryAdded emitted after a history entry has been added
@signal entryRemoved emitted after a history entry has been removed
@signal entryUpdated(int) emitted after a history entry has been updated
"""
def __init__(self, parent = None):
"""
Constructor
@param parent reference to the parent object (QObject)
"""
QWebHistoryInterface.__init__(self, parent)
self.__saveTimer = AutoSaver(self, self.save)
self.__daysToExpire = Preferences.getHelp("HistoryLimit")
self.__history = []
self.__lastSavedUrl = QString()
self.__expiredTimer = QTimer()
self.__expiredTimer.setSingleShot(True)
self.connect(self.__expiredTimer, SIGNAL("timeout()"),
self.__checkForExpired)
self.__frequencyTimer = QTimer()
self.__frequencyTimer.setSingleShot(True)
self.connect(self.__frequencyTimer, SIGNAL("timeout()"),
self.__refreshFrequencies)
self.connect(self, SIGNAL("entryAdded"),
self.__saveTimer.changeOccurred)
self.connect(self, SIGNAL("entryRemoved"),
self.__saveTimer.changeOccurred)
self.__load()
self.__historyModel = HistoryModel(self, self)
self.__historyFilterModel = HistoryFilterModel(self.__historyModel, self)
self.__historyTreeModel = HistoryTreeModel(self.__historyFilterModel, self)
QWebHistoryInterface.setDefaultInterface(self)
self.__startFrequencyTimer()
def close(self):
"""
Public method to close the history manager.
"""
# remove history items on application exit
if self.__daysToExpire == -2:
self.clear()
self.__saveTimer.saveIfNeccessary()
def history(self):
"""
Public method to return the history.
@return reference to the list of history entries (list of HistoryEntry)
"""
return self.__history[:]
def setHistory(self, history, loadedAndSorted = False):
"""
Public method to set a new history.
@param history reference to the list of history entries to be set
(list of HistoryEntry)
@param loadedAndSorted flag indicating that the list is sorted (boolean)
"""
self.__history = history[:]
if not loadedAndSorted:
self.__history.sort()
self.__checkForExpired()
if loadedAndSorted:
try:
self.__lastSavedUrl = QString(self.__history[0].url)
except IndexError:
self.__lastSavedUrl = QString()
else:
self.__lastSavedUrl.clear()
self.__saveTimer.changeOccurred()
self.emit(SIGNAL("historyReset()"))
def historyContains(self, url):
"""
Public method to check the history for an entry.
@param url URL to check for (QString)
@return flag indicating success (boolean)
"""
return self.__historyFilterModel.historyContains(url)
def _addHistoryEntry(self, itm):
"""
Protected method to add a history item.
#.........这里部分代码省略.........