本文整理汇总了Python中Utilities.AutoSaver.AutoSaver.saveIfNeccessary方法的典型用法代码示例。如果您正苦于以下问题:Python AutoSaver.saveIfNeccessary方法的具体用法?Python AutoSaver.saveIfNeccessary怎么用?Python AutoSaver.saveIfNeccessary使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Utilities.AutoSaver.AutoSaver
的用法示例。
在下文中一共展示了AutoSaver.saveIfNeccessary方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: PasswordManager
# 需要导入模块: from Utilities.AutoSaver import AutoSaver [as 别名]
# 或者: from Utilities.AutoSaver.AutoSaver import saveIfNeccessary [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: DownloadManager
# 需要导入模块: from Utilities.AutoSaver import AutoSaver [as 别名]
# 或者: from Utilities.AutoSaver.AutoSaver import saveIfNeccessary [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()
#.........这里部分代码省略.........
示例3: IrcNetworkManager
# 需要导入模块: from Utilities.AutoSaver import AutoSaver [as 别名]
# 或者: from Utilities.AutoSaver.AutoSaver import saveIfNeccessary [as 别名]
class IrcNetworkManager(QObject):
"""
Class implementing the IRC identity object.
@signal dataChanged() emitted after some data has changed
@signal networksChanged() emitted after a network object has changed
@signal identitiesChanged() emitted after an identity object has changed
"""
dataChanged = pyqtSignal()
networksChanged = pyqtSignal()
identitiesChanged = pyqtSignal()
def __init__(self, parent=None):
"""
Constructor
@param parent reference to the parent object (QObject)
"""
super(IrcNetworkManager, self).__init__(parent)
self.__loaded = False
self.__saveTimer = AutoSaver(self, self.save)
self.__settings = Preferences.Prefs.settings
self.__networks = {}
self.__identities = {}
self.dataChanged.connect(self.__saveTimer.changeOccurred)
def close(self):
"""
Public method to close the open search engines manager.
"""
self.__saveTimer.saveIfNeccessary()
def save(self):
"""
Public slot to save the IRC data.
"""
if not self.__loaded:
return
# save IRC data
self.__settings.beginGroup("IRC")
# identities
self.__settings.remove("Identities")
self.__settings.beginGroup("Identities")
for key in self.__identities:
self.__settings.beginGroup(key)
self.__identities[key].save(self.__settings)
self.__settings.endGroup()
self.__settings.endGroup()
# networks
self.__settings.remove("Networks")
self.__settings.beginGroup("Networks")
for key in self.__networks:
self.__settings.beginGroup(key)
self.__networks[key].save(self.__settings)
self.__settings.endGroup()
self.__settings.endGroup()
self.__settings.endGroup()
def __load(self):
"""
Private slot to load the IRC data.
"""
if self.__loaded:
return
# load IRC data
self.__settings.beginGroup("IRC")
# identities
self.__settings.beginGroup("Identities")
for key in self.__settings.childGroups():
self.__identities[key] = IrcIdentity(key)
self.__settings.beginGroup(key)
self.__identities[key].load(self.__settings)
self.__settings.endGroup()
self.__settings.endGroup()
# networks
self.__settings.beginGroup("Networks")
for key in self.__settings.childGroups():
self.__networks[key] = IrcNetwork(key)
self.__settings.beginGroup(key)
self.__networks[key].load(self.__settings)
self.__settings.endGroup()
self.__settings.endGroup()
self.__settings.endGroup()
if not self.__identities or \
not self.__networks:
# data structures got corrupted; load defaults
self.__loadDefaults()
#.........这里部分代码省略.........
示例4: SpeedDial
# 需要导入模块: from Utilities.AutoSaver import AutoSaver [as 别名]
# 或者: from Utilities.AutoSaver.AutoSaver import saveIfNeccessary [as 别名]
#.........这里部分代码省略.........
allPages = \
'url:"http://eric-ide.python-projects.org/"|'\
'title:"Eric Web Site";'\
'url:"http://www.riverbankcomputing.com/"|'\
'title:"PyQt Web Site";'\
'url:"http://www.qt.io/"|title:"Qt Web Site";'\
'url:"http://blog.qt.digia.com/"|title:"Qt Blog";'\
'url:"http://www.python.org"|title:"Python Language Website";'\
'url:"http://www.google.com"|title:"Google";'
self.changed(allPages)
def save(self):
"""
Public method to save the speed dial configuration.
"""
from .SpeedDialWriter import SpeedDialWriter
speedDialFile = self.getFileName()
writer = SpeedDialWriter()
if not writer.write(speedDialFile, self.__webPages,
self.__pagesPerRow, self.__speedDialSize):
E5MessageBox.critical(
None,
self.tr("Saving Speed Dial data"),
self.tr(
"""<p>Speed Dial data could not be saved to"""
""" <b>{0}</b></p>""").format(speedDialFile))
else:
self.speedDialSaved.emit()
def close(self):
"""
Public method to close the user agents manager.
"""
self.__saveTimer.saveIfNeccessary()
def pageForUrl(self, url):
"""
Public method to get the page for the given URL.
@param url URL to be searched for (QUrl)
@return page for the URL (Page)
"""
urlString = url.toString()
for page in self.__webPages:
if page.url == urlString:
return page
from .Page import Page
return Page()
def urlForShortcut(self, key):
"""
Public method to get the URL for the given shortcut key.
@param key shortcut key (integer)
@return URL for the key (QUrl)
"""
if key < 0 or len(self.__webPages) <= key:
return QUrl()
return QUrl.fromEncoded(self.__webPages[key].url.encode("utf-8"))
@pyqtSlot(str)
def changed(self, allPages):
"""
Public slot to react on changed pages.
示例5: AdBlockManager
# 需要导入模块: from Utilities.AutoSaver import AutoSaver [as 别名]
# 或者: from Utilities.AutoSaver.AutoSaver import saveIfNeccessary [as 别名]
class AdBlockManager(QObject):
"""
Class implementing the AdBlock manager.
@signal rulesChanged() emitted after some rule has changed
"""
rulesChanged = pyqtSignal()
requiredSubscriptionLoaded = pyqtSignal(AdBlockSubscription)
def __init__(self, parent=None):
"""
Constructor
@param parent reference to the parent object (QObject)
"""
super(AdBlockManager, self).__init__(parent)
self.__loaded = False
self.__subscriptionsLoaded = False
self.__enabled = False
self.__adBlockDialog = None
self.__adBlockExceptionsDialog = None
self.__adBlockNetwork = None
self.__adBlockPage = None
self.__subscriptions = []
self.__exceptedHosts = Preferences.getHelp("AdBlockExceptions")
self.__saveTimer = AutoSaver(self, self.save)
self.__defaultSubscriptionUrlString = \
"abp:subscribe?location=" \
"https://easylist-downloads.adblockplus.org/easylist.txt&"\
"title=EasyList"
self.__customSubscriptionUrlString = \
bytes(self.__customSubscriptionUrl().toEncoded()).decode()
self.rulesChanged.connect(self.__saveTimer.changeOccurred)
def close(self):
"""
Public method to close the open search engines manager.
"""
self.__adBlockDialog and self.__adBlockDialog.close()
self.__adBlockExceptionsDialog and \
self.__adBlockExceptionsDialog.close()
self.__saveTimer.saveIfNeccessary()
def isEnabled(self):
"""
Public method to check, if blocking ads is enabled.
@return flag indicating the enabled state (boolean)
"""
if not self.__loaded:
self.load()
return self.__enabled
def setEnabled(self, enabled):
"""
Public slot to set the enabled state.
@param enabled flag indicating the enabled state (boolean)
"""
if self.isEnabled() == enabled:
return
import Helpviewer.HelpWindow
self.__enabled = enabled
for mainWindow in Helpviewer.HelpWindow.HelpWindow.mainWindows():
mainWindow.adBlockIcon().setEnabled(enabled)
if enabled:
self.__loadSubscriptions()
self.rulesChanged.emit()
def network(self):
"""
Public method to get a reference to the network block object.
@return reference to the network block object (AdBlockNetwork)
"""
if self.__adBlockNetwork is None:
from .AdBlockNetwork import AdBlockNetwork
self.__adBlockNetwork = AdBlockNetwork(self)
return self.__adBlockNetwork
def page(self):
"""
Public method to get a reference to the page block object.
@return reference to the page block object (AdBlockPage)
"""
if self.__adBlockPage is None:
from .AdBlockPage import AdBlockPage
self.__adBlockPage = AdBlockPage(self)
return self.__adBlockPage
def __customSubscriptionLocation(self):
"""
Private method to generate the path for custom subscriptions.
#.........这里部分代码省略.........
示例6: HistoryManager
# 需要导入模块: from Utilities.AutoSaver import AutoSaver [as 别名]
# 或者: from Utilities.AutoSaver.AutoSaver import saveIfNeccessary [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()
#.........这里部分代码省略.........
示例7: UserAgentManager
# 需要导入模块: from Utilities.AutoSaver import AutoSaver [as 别名]
# 或者: from Utilities.AutoSaver.AutoSaver import saveIfNeccessary [as 别名]
#.........这里部分代码省略.........
.format(agentFile, str(err)))
return
for line in lines.splitlines():
if not line or \
line.startswith("#") or \
"@@" not in line:
continue
host, agent = line.split("@@", 1)
self.__agents[host] = agent
os.remove(agentFile)
self.__loaded = True
# this does the conversion
self.save()
def reload(self):
"""
Public method to reload the user agent settings.
"""
if not self.__loaded:
return
self.__agents = {}
self.__load()
def close(self):
"""
Public method to close the user agents manager.
"""
self.__saveTimer.saveIfNeccessary()
def removeUserAgent(self, host):
"""
Public method to remove a user agent entry.
@param host host name (string)
"""
if host in self.__agents:
del self.__agents[host]
self.changed.emit()
def allHostNames(self):
"""
Public method to get a list of all host names we a user agent setting
for.
@return sorted list of all host names (list of strings)
"""
if not self.__loaded:
self.__load()
return sorted(self.__agents.keys())
def hostsCount(self):
"""
Public method to get the number of available user agent settings.
@return number of user agent settings (integer)
"""
if not self.__loaded:
self.__load()
示例8: CookieJar
# 需要导入模块: from Utilities.AutoSaver import AutoSaver [as 别名]
# 或者: from Utilities.AutoSaver.AutoSaver import saveIfNeccessary [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):
#.........这里部分代码省略.........
示例9: OpenSearchManager
# 需要导入模块: from Utilities.AutoSaver import AutoSaver [as 别名]
# 或者: from Utilities.AutoSaver.AutoSaver import saveIfNeccessary [as 别名]
class OpenSearchManager(QObject):
"""
Class implementing a manager for open search engines.
@signal changed() emitted to indicate a change
@signal currentEngineChanged() emitted to indicate a change of
the current search engine
"""
changed = pyqtSignal()
currentEngineChanged = pyqtSignal()
def __init__(self, parent=None):
"""
Constructor
@param parent reference to the parent object (QObject)
"""
if parent is None:
parent = e5App()
super(OpenSearchManager, self).__init__(parent)
self.__replies = []
self.__engines = {}
self.__keywords = {}
self.__current = ""
self.__loading = False
self.__saveTimer = AutoSaver(self, self.save)
self.changed.connect(self.__saveTimer.changeOccurred)
self.load()
def close(self):
"""
Public method to close the open search engines manager.
"""
self.__saveTimer.saveIfNeccessary()
def currentEngineName(self):
"""
Public method to get the name of the current search engine.
@return name of the current search engine (string)
"""
return self.__current
def setCurrentEngineName(self, name):
"""
Public method to set the current engine by name.
@param name name of the new current engine (string)
"""
if name not in self.__engines:
return
self.__current = name
self.currentEngineChanged.emit()
self.changed.emit()
def currentEngine(self):
"""
Public method to get a reference to the current engine.
@return reference to the current engine (OpenSearchEngine)
"""
if not self.__current or self.__current not in self.__engines:
return None
return self.__engines[self.__current]
def setCurrentEngine(self, engine):
"""
Public method to set the current engine.
@param engine reference to the new current engine (OpenSearchEngine)
"""
if engine is None:
return
for engineName in self.__engines:
if self.__engines[engineName] == engine:
self.setCurrentEngineName(engineName)
break
def engine(self, name):
"""
Public method to get a reference to the named engine.
@param name name of the engine (string)
@return reference to the engine (OpenSearchEngine)
"""
if name not in self.__engines:
return None
return self.__engines[name]
def engineExists(self, name):
"""
Public method to check, if an engine exists.
#.........这里部分代码省略.........
示例10: PasswordManager
# 需要导入模块: from Utilities.AutoSaver import AutoSaver [as 别名]
# 或者: from Utilities.AutoSaver.AutoSaver import saveIfNeccessary [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():
#.........这里部分代码省略.........
示例11: BookmarksManager
# 需要导入模块: from Utilities.AutoSaver import AutoSaver [as 别名]
# 或者: from Utilities.AutoSaver.AutoSaver import saveIfNeccessary [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)
#.........这里部分代码省略.........
示例12: BookmarksManager
# 需要导入模块: from Utilities.AutoSaver import AutoSaver [as 别名]
# 或者: from Utilities.AutoSaver.AutoSaver import saveIfNeccessary [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.")
#.........这里部分代码省略.........
示例13: HistoryManager
# 需要导入模块: from Utilities.AutoSaver import AutoSaver [as 别名]
# 或者: from Utilities.AutoSaver.AutoSaver import saveIfNeccessary [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.
#.........这里部分代码省略.........
示例14: ZoomManager
# 需要导入模块: from Utilities.AutoSaver import AutoSaver [as 别名]
# 或者: from Utilities.AutoSaver.AutoSaver import saveIfNeccessary [as 别名]
class ZoomManager(QObject):
"""
Class implementing a manager for site specific zoom level settings.
"""
changed = pyqtSignal()
def __init__(self, parent=None):
"""
Constructor
@param parent reference to the parent object (QObject)
"""
super(ZoomManager, self).__init__(parent)
self.__zoomDB = {}
self.__saveTimer = AutoSaver(self, self.save)
self.changed.connect(self.__saveTimer.changeOccurred)
self.__loaded = False
def close(self):
"""
Public method to close the bookmark manager.
"""
self.__saveTimer.saveIfNeccessary()
def load(self):
"""
Public method to load the bookmarks.
"""
if self.__loaded:
return
dbString = Preferences.getHelp("ZoomValuesDB")
if dbString:
try:
db = json.loads(dbString)
self.__zoomDB = db
except ValueError:
# ignore silently
pass
self.__loaded = True
def save(self):
"""
Public method to save the bookmarks.
"""
if not self.__loaded:
return
dbString = json.dumps(self.__zoomDB)
Preferences.setHelp("ZoomValuesDB", dbString)
def __keyFromUrl(self, url):
"""
Private method to generate a DB key for an URL.
@param url URL to generate a key for
@type QUrl
@return key for the given URL
@rtype str
"""
if url.isEmpty():
key = ""
else:
scheme = url.scheme()
host = url.host()
if host:
key = host
elif scheme == "file":
path = url.path()
key = path.rsplit("/", 1)[0]
else:
key = ""
return key
def setZoomValue(self, url, zoomValue):
"""
Public method to record the zoom value for the given URL.
Note: Only zoom values not equal 100% are recorded.
@param url URL of the page to remember the zoom value for
@type QUrl
@param zoomValue zoom value for the URL
@type int
"""
self.load()
key = self.__keyFromUrl(url)
if not key:
return
if ((zoomValue == 100 and key not in self.__zoomDB) or
(key in self.__zoomDB and self.__zoomDB[key] == zoomValue)):
return
#.........这里部分代码省略.........
示例15: AdBlockManager
# 需要导入模块: from Utilities.AutoSaver import AutoSaver [as 别名]
# 或者: from Utilities.AutoSaver.AutoSaver import saveIfNeccessary [as 别名]
class AdBlockManager(QObject):
"""
Class implementing the AdBlock manager.
@signal rulesChanged() emitted after some rule has changed
"""
def __init__(self, parent = None):
"""
Constructor
@param parent reference to the parent object (QObject)
"""
QObject.__init__(self, parent)
self.__loaded = False
self.__subscriptionsLoaded = False
self.__enabled = False
self.__adBlockDialog = None
self.__adBlockNetwork = None
self.__adBlockPage = None
self.__subscriptions = []
self.__saveTimer = AutoSaver(self, self.save)
self.connect(self, SIGNAL("rulesChanged()"), self.__saveTimer.changeOccurred)
def close(self):
"""
Public method to close the open search engines manager.
"""
self.__saveTimer.saveIfNeccessary()
def isEnabled(self):
"""
Public method to check, if blocking ads is enabled.
@return flag indicating the enabled state (boolean)
"""
if not self.__loaded:
self.load()
return self.__enabled
def setEnabled(self, enabled):
"""
Public slot to set the enabled state.
@param enabled flag indicating the enabled state (boolean)
"""
if self.isEnabled() == enabled:
return
self.__enabled = enabled
if enabled:
self.__loadSubscriptions()
self.emit(SIGNAL("rulesChanged()"))
def network(self):
"""
Public method to get a reference to the network block object.
@return reference to the network block object (AdBlockNetwork)
"""
if self.__adBlockNetwork is None:
self.__adBlockNetwork = AdBlockNetwork(self)
return self.__adBlockNetwork
def page(self):
"""
Public method to get a reference to the page block object.
@return reference to the page block object (AdBlockPage)
"""
if self.__adBlockPage is None:
self.__adBlockPage = AdBlockPage(self)
return self.__adBlockPage
def __customSubscriptionLocation(self):
"""
Private method to generate the path for custom subscriptions.
@return URL for custom subscriptions (QUrl)
"""
dataDir = os.path.join(Utilities.getConfigDir(), "browser", "subscriptions")
if not os.path.exists(dataDir):
os.makedirs(dataDir)
fileName = os.path.join(dataDir, "adblock_subscription_custom")
return QUrl.fromLocalFile(fileName)
def __customSubscriptionUrl(self):
"""
Private method to generate the URL for custom subscriptions.
@return URL for custom subscriptions (QUrl)
"""
location = self.__customSubscriptionLocation()
encodedUrl = QString.fromUtf8(location.toEncoded())
url = QUrl("abp:subscribe?location=%s&title=%s" % \
(encodedUrl, self.trUtf8("Custom Rules")))
return url
#.........这里部分代码省略.........