def __init__(self, cursor, path, daemon=False): QtGui.QWidget.__init__(self) self.ui = Ui_SafBookmarks() self.ui.setupUi(self) self.setAttribute(QtCore.Qt.WA_DeleteOnClose) self.cursor = cursor self.backup_path = path self.filename = os.path.join( self.backup_path, plugins_utils.realFileName(self.cursor, filename="Bookmarks.db", domaintype="HomeDomain")) if (not os.path.isfile(self.filename)): raise Exception("Safari Bookmarks Database not found: \"%s\"" % self.filename) self.ui.bookmarksTree.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) QtCore.QObject.connect( self.ui.bookmarksTree, QtCore.SIGNAL('customContextMenuRequested(QPoint)'), self.ctxMenu) if (daemon == False): self.populateUI()
def __init__(self, cursor, path, daemon = False): QtGui.QWidget.__init__(self) self.ui = Ui_SafBookmarks() self.ui.setupUi(self) self.setAttribute(QtCore.Qt.WA_DeleteOnClose) self.cursor = cursor self.backup_path = path self.filename = os.path.join(self.backup_path, plugins_utils.realFileName(self.cursor, filename="Bookmarks.db", domaintype="HomeDomain")) if (not os.path.isfile(self.filename)): raise Exception("Safari Bookmarks Database not found: \"%s\""%self.filename) self.ui.bookmarksTree.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) QtCore.QObject.connect(self.ui.bookmarksTree, QtCore.SIGNAL('customContextMenuRequested(QPoint)'), self.ctxMenu) if (daemon == False): self.populateUI()
class SafBookmarksWidget(QtGui.QWidget): def __init__(self, cursor, path, daemon=False): QtGui.QWidget.__init__(self) self.ui = Ui_SafBookmarks() self.ui.setupUi(self) self.setAttribute(QtCore.Qt.WA_DeleteOnClose) self.cursor = cursor self.backup_path = path self.filename = os.path.join( self.backup_path, plugins_utils.realFileName(self.cursor, filename="Bookmarks.db", domaintype="HomeDomain")) if (not os.path.isfile(self.filename)): raise Exception("Safari Bookmarks Database not found: \"%s\"" % self.filename) self.ui.bookmarksTree.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) QtCore.QObject.connect( self.ui.bookmarksTree, QtCore.SIGNAL('customContextMenuRequested(QPoint)'), self.ctxMenu) if (daemon == False): self.populateUI() def ctxMenu(self, pos): currentSelectedElement = self.ui.bookmarksTree.currentItem() if (currentSelectedElement): pass else: return # if url if (len(currentSelectedElement.text(1)) > 0): menu = QtGui.QMenu() action1 = QtGui.QAction("Open in browser", self) action1.triggered.connect(self.openSelectedURL) menu.addAction(action1) action1 = QtGui.QAction("Copy URL", self) action1.triggered.connect(self.copySelected) menu.addAction(action1) menu.exec_(self.ui.bookmarksTree.mapToGlobal(pos)) def openSelectedURL(self): currentSelectedElement = self.ui.bookmarksTree.currentItem() if (currentSelectedElement): pass else: return url = currentSelectedElement.text(1) QtGui.QDesktopServices.openUrl(url) def copySelected(self): currentSelectedElement = self.ui.bookmarksTree.currentItem() if (currentSelectedElement): pass else: return url = currentSelectedElement.text(1) clipboard = QtGui.QApplication.clipboard() clipboard.setText(url) def insertBookmark(self, parent_node, parent_id): query = "SELECT id, title, num_children, type, url, editable, deletable, order_index, external_uuid FROM bookmarks WHERE parent = \"%s\" ORDER BY order_index" % parent_id self.tempcur.execute(query) bookmarks = self.tempcur.fetchall() folderIcon = self.style().standardIcon(QtGui.QStyle.SP_DirIcon) urlIcon = self.style().standardIcon( QtGui.QStyle.SP_FileDialogContentsView) for bookmark in bookmarks: id = bookmark['id'] title = bookmark['title'] num_children = bookmark['num_children'] # creating new node newNode = QtGui.QTreeWidgetItem(parent_node) # setting title #title = str(title.encode("utf-8")) if (bookmark['type'] != 0): title += " (%i)" % num_children newNode.setIcon(0, folderIcon) else: newNode.setIcon(0, urlIcon) newNode.setText(0, title) # adding node to bookmarks tree self.ui.bookmarksTree.addTopLevelItem(newNode) if (num_children != 0): self.insertBookmark(newNode, id) # type 0 for simple bookmarks, not 0 for folders if (bookmark['type'] == 0): newNode.setText(1, bookmark['url']) keyNode = QtGui.QTreeWidgetItem(newNode) keyNode.setText(0, bookmark['url']) keyNode.setText(1, bookmark['url']) self.ui.bookmarksTree.addTopLevelItem(keyNode) def printBookmark(self, parent_id): ritorno = "" # opening database self.tempdb = sqlite3.connect(self.filename) self.tempdb.row_factory = sqlite3.Row self.tempcur = self.tempdb.cursor() query = "SELECT id, title, num_children, type, url, editable, deletable, order_index, external_uuid FROM bookmarks WHERE parent = \"%s\" ORDER BY order_index" % parent_id self.tempcur.execute(query) bookmarks = self.tempcur.fetchall() for bookmark in bookmarks: id = bookmark['id'] title = bookmark['title'] num_children = bookmark['num_children'] title = str(title.encode("utf-8")) if (bookmark['type'] != 0): title = "[" + title + "] (%i)" % num_children else: ref = "<a href=\"%s\">" % str(bookmark['url'].encode("utf-8")) title = ref + title + "</a>" ritorno += "<ul>" ritorno += "<li>" ritorno += title if (num_children != 0): #ritorno += "<li>" ritorno += self.printBookmark(id) ritorno += "</ul>" # closing database self.tempdb.close() return ritorno def populateUI(self): # opening database self.tempdb = sqlite3.connect(self.filename) self.tempdb.row_factory = sqlite3.Row self.tempcur = self.tempdb.cursor() # populating tree with Safari Bookmarks self.insertBookmark(None, 0) # closing database self.tempdb.close()
class SafBookmarksWidget(QtGui.QWidget): def __init__(self, cursor, path, daemon = False): QtGui.QWidget.__init__(self) self.ui = Ui_SafBookmarks() self.ui.setupUi(self) self.setAttribute(QtCore.Qt.WA_DeleteOnClose) self.cursor = cursor self.backup_path = path self.filename = os.path.join(self.backup_path, plugins_utils.realFileName(self.cursor, filename="Bookmarks.db", domaintype="HomeDomain")) if (not os.path.isfile(self.filename)): raise Exception("Safari Bookmarks Database not found: \"%s\""%self.filename) self.ui.bookmarksTree.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) QtCore.QObject.connect(self.ui.bookmarksTree, QtCore.SIGNAL('customContextMenuRequested(QPoint)'), self.ctxMenu) if (daemon == False): self.populateUI() def ctxMenu(self, pos): currentSelectedElement = self.ui.bookmarksTree.currentItem() if (currentSelectedElement): pass else: return # if url if (len(currentSelectedElement.text(1)) > 0): menu = QtGui.QMenu(); action1 = QtGui.QAction("Open in browser", self) action1.triggered.connect(self.openSelectedURL) menu.addAction(action1) action1 = QtGui.QAction("Copy URL", self) action1.triggered.connect(self.copySelected) menu.addAction(action1) menu.exec_(self.ui.bookmarksTree.mapToGlobal(pos)); def openSelectedURL(self): currentSelectedElement = self.ui.bookmarksTree.currentItem() if (currentSelectedElement): pass else: return url = currentSelectedElement.text(1) QtGui.QDesktopServices.openUrl(url) def copySelected(self): currentSelectedElement = self.ui.bookmarksTree.currentItem() if (currentSelectedElement): pass else: return url = currentSelectedElement.text(1) clipboard = QtGui.QApplication.clipboard() clipboard.setText(url) def insertBookmark(self, parent_node, parent_id): query = "SELECT id, title, num_children, type, url, editable, deletable, order_index, external_uuid FROM bookmarks WHERE parent = \"%s\" ORDER BY order_index"%parent_id self.tempcur.execute(query) bookmarks = self.tempcur.fetchall() folderIcon = self.style().standardIcon(QtGui.QStyle.SP_DirIcon) urlIcon = self.style().standardIcon(QtGui.QStyle.SP_FileDialogContentsView) for bookmark in bookmarks: id = bookmark['id'] title = bookmark['title'] num_children = bookmark['num_children'] # creating new node newNode = QtGui.QTreeWidgetItem(parent_node) # setting title #title = str(title.encode("utf-8")) if (bookmark['type'] != 0): title += " (%i)"%num_children newNode.setIcon(0, folderIcon) else: newNode.setIcon(0, urlIcon) newNode.setText(0, title) # adding node to bookmarks tree self.ui.bookmarksTree.addTopLevelItem(newNode) if (num_children != 0): self.insertBookmark(newNode, id) # type 0 for simple bookmarks, not 0 for folders if (bookmark['type'] == 0): newNode.setText(1, bookmark['url']) keyNode = QtGui.QTreeWidgetItem(newNode) keyNode.setText(0, bookmark['url']) keyNode.setText(1, bookmark['url']) self.ui.bookmarksTree.addTopLevelItem(keyNode) def printBookmark(self, parent_id): ritorno = "" # opening database self.tempdb = sqlite3.connect(self.filename) self.tempdb.row_factory = sqlite3.Row self.tempcur = self.tempdb.cursor() query = "SELECT id, title, num_children, type, url, editable, deletable, order_index, external_uuid FROM bookmarks WHERE parent = \"%s\" ORDER BY order_index"%parent_id self.tempcur.execute(query) bookmarks = self.tempcur.fetchall() for bookmark in bookmarks: id = bookmark['id'] title = bookmark['title'] num_children = bookmark['num_children'] title = str(title.encode("utf-8")) if (bookmark['type'] != 0): title = "[" + title + "] (%i)"%num_children else: ref = "<a href=\"%s\">"%str(bookmark['url'].encode("utf-8")) title = ref + title + "</a>" ritorno += "<ul>" ritorno += "<li>" ritorno += title if (num_children != 0): #ritorno += "<li>" ritorno += self.printBookmark(id) ritorno += "</ul>" # closing database self.tempdb.close() return ritorno def populateUI(self): # opening database self.tempdb = sqlite3.connect(self.filename) self.tempdb.row_factory = sqlite3.Row self.tempcur = self.tempdb.cursor() # populating tree with Safari Bookmarks self.insertBookmark(None, 0) # closing database self.tempdb.close()