136 reader = XbelReader() |
136 reader = XbelReader() |
137 self.__bookmarkRootNode = reader.read(bookmarkFile) |
137 self.__bookmarkRootNode = reader.read(bookmarkFile) |
138 if reader.error() != QXmlStreamReader.NoError: |
138 if reader.error() != QXmlStreamReader.NoError: |
139 E5MessageBox.warning( |
139 E5MessageBox.warning( |
140 None, |
140 None, |
141 self.trUtf8("Loading Bookmarks"), |
141 self.tr("Loading Bookmarks"), |
142 self.trUtf8( |
142 self.tr( |
143 """Error when loading bookmarks on line {0},""" |
143 """Error when loading bookmarks on line {0},""" |
144 """ column {1}:\n {2}""") |
144 """ column {1}:\n {2}""") |
145 .format(reader.lineNumber(), |
145 .format(reader.lineNumber(), |
146 reader.columnNumber(), |
146 reader.columnNumber(), |
147 reader.errorString())) |
147 reader.errorString())) |
149 others = [] |
149 others = [] |
150 for index in range( |
150 for index in range( |
151 len(self.__bookmarkRootNode.children()) - 1, -1, -1): |
151 len(self.__bookmarkRootNode.children()) - 1, -1, -1): |
152 node = self.__bookmarkRootNode.children()[index] |
152 node = self.__bookmarkRootNode.children()[index] |
153 if node.type() == BookmarkNode.Folder: |
153 if node.type() == BookmarkNode.Folder: |
154 if (node.title == self.trUtf8("Toolbar Bookmarks") or |
154 if (node.title == self.tr("Toolbar Bookmarks") or |
155 node.title == BOOKMARKBAR) and \ |
155 node.title == BOOKMARKBAR) and \ |
156 self.__toolbar is None: |
156 self.__toolbar is None: |
157 node.title = self.trUtf8(BOOKMARKBAR) |
157 node.title = self.tr(BOOKMARKBAR) |
158 self.__toolbar = node |
158 self.__toolbar = node |
159 |
159 |
160 if (node.title == self.trUtf8("Menu") or |
160 if (node.title == self.tr("Menu") or |
161 node.title == BOOKMARKMENU) and \ |
161 node.title == BOOKMARKMENU) and \ |
162 self.__menu is None: |
162 self.__menu is None: |
163 node.title = self.trUtf8(BOOKMARKMENU) |
163 node.title = self.tr(BOOKMARKMENU) |
164 self.__menu = node |
164 self.__menu = node |
165 else: |
165 else: |
166 others.append(node) |
166 others.append(node) |
167 self.__bookmarkRootNode.remove(node) |
167 self.__bookmarkRootNode.remove(node) |
168 |
168 |
170 raise RuntimeError("Error loading bookmarks.") |
170 raise RuntimeError("Error loading bookmarks.") |
171 |
171 |
172 if self.__toolbar is None: |
172 if self.__toolbar is None: |
173 self.__toolbar = BookmarkNode(BookmarkNode.Folder, |
173 self.__toolbar = BookmarkNode(BookmarkNode.Folder, |
174 self.__bookmarkRootNode) |
174 self.__bookmarkRootNode) |
175 self.__toolbar.title = self.trUtf8(BOOKMARKBAR) |
175 self.__toolbar.title = self.tr(BOOKMARKBAR) |
176 else: |
176 else: |
177 self.__bookmarkRootNode.add(self.__toolbar) |
177 self.__bookmarkRootNode.add(self.__toolbar) |
178 |
178 |
179 if self.__menu is None: |
179 if self.__menu is None: |
180 self.__menu = BookmarkNode(BookmarkNode.Folder, |
180 self.__menu = BookmarkNode(BookmarkNode.Folder, |
181 self.__bookmarkRootNode) |
181 self.__bookmarkRootNode) |
182 self.__menu.title = self.trUtf8(BOOKMARKMENU) |
182 self.__menu.title = self.tr(BOOKMARKMENU) |
183 else: |
183 else: |
184 self.__bookmarkRootNode.add(self.__menu) |
184 self.__bookmarkRootNode.add(self.__menu) |
185 |
185 |
186 for node in others: |
186 for node in others: |
187 self.__menu.add(node) |
187 self.__menu.add(node) |
203 self.__menu.title = BOOKMARKMENU |
203 self.__menu.title = BOOKMARKMENU |
204 self.__toolbar.title = BOOKMARKBAR |
204 self.__toolbar.title = BOOKMARKBAR |
205 if not writer.write(bookmarkFile, self.__bookmarkRootNode): |
205 if not writer.write(bookmarkFile, self.__bookmarkRootNode): |
206 E5MessageBox.warning( |
206 E5MessageBox.warning( |
207 None, |
207 None, |
208 self.trUtf8("Saving Bookmarks"), |
208 self.tr("Saving Bookmarks"), |
209 self.trUtf8("""Error saving bookmarks to <b>{0}</b>.""") |
209 self.tr("""Error saving bookmarks to <b>{0}</b>.""") |
210 .format(bookmarkFile)) |
210 .format(bookmarkFile)) |
211 |
211 |
212 # restore localized titles |
212 # restore localized titles |
213 self.__menu.title = self.trUtf8(BOOKMARKMENU) |
213 self.__menu.title = self.tr(BOOKMARKMENU) |
214 self.__toolbar.title = self.trUtf8(BOOKMARKBAR) |
214 self.__toolbar.title = self.tr(BOOKMARKBAR) |
215 |
215 |
216 self.bookmarksSaved.emit() |
216 self.bookmarksSaved.emit() |
217 |
217 |
218 def addBookmark(self, parent, node, row=-1): |
218 def addBookmark(self, parent, node, row=-1): |
219 """ |
219 """ |
365 """ |
365 """ |
366 Public method to export the bookmarks. |
366 Public method to export the bookmarks. |
367 """ |
367 """ |
368 fileName, selectedFilter = E5FileDialog.getSaveFileNameAndFilter( |
368 fileName, selectedFilter = E5FileDialog.getSaveFileNameAndFilter( |
369 None, |
369 None, |
370 self.trUtf8("Export Bookmarks"), |
370 self.tr("Export Bookmarks"), |
371 "eric5_bookmarks.xbel", |
371 "eric5_bookmarks.xbel", |
372 self.trUtf8("XBEL bookmarks (*.xbel);;" |
372 self.tr("XBEL bookmarks (*.xbel);;" |
373 "XBEL bookmarks (*.xml);;" |
373 "XBEL bookmarks (*.xml);;" |
374 "HTML Bookmarks (*.html)")) |
374 "HTML Bookmarks (*.html)")) |
375 if not fileName: |
375 if not fileName: |
376 return |
376 return |
377 |
377 |
378 ext = QFileInfo(fileName).suffix() |
378 ext = QFileInfo(fileName).suffix() |
379 if not ext: |
379 if not ext: |
389 from .XbelWriter import XbelWriter |
389 from .XbelWriter import XbelWriter |
390 writer = XbelWriter() |
390 writer = XbelWriter() |
391 if not writer.write(fileName, self.__bookmarkRootNode): |
391 if not writer.write(fileName, self.__bookmarkRootNode): |
392 E5MessageBox.critical( |
392 E5MessageBox.critical( |
393 None, |
393 None, |
394 self.trUtf8("Exporting Bookmarks"), |
394 self.tr("Exporting Bookmarks"), |
395 self.trUtf8("""Error exporting bookmarks to <b>{0}</b>.""") |
395 self.tr("""Error exporting bookmarks to <b>{0}</b>.""") |
396 .format(fileName)) |
396 .format(fileName)) |
397 |
397 |
398 def __convertFromOldBookmarks(self): |
398 def __convertFromOldBookmarks(self): |
399 """ |
399 """ |
400 Private method to convert the old bookmarks into the new ones. |
400 Private method to convert the old bookmarks into the new ones. |
403 bmFiles = Preferences.Prefs.settings.value('Bookmarks/Files') |
403 bmFiles = Preferences.Prefs.settings.value('Bookmarks/Files') |
404 |
404 |
405 if bmNames is not None and bmFiles is not None: |
405 if bmNames is not None and bmFiles is not None: |
406 if len(bmNames) == len(bmFiles): |
406 if len(bmNames) == len(bmFiles): |
407 convertedRootNode = BookmarkNode(BookmarkNode.Folder) |
407 convertedRootNode = BookmarkNode(BookmarkNode.Folder) |
408 convertedRootNode.title = self.trUtf8("Converted {0}")\ |
408 convertedRootNode.title = self.tr("Converted {0}")\ |
409 .format(QDate.currentDate().toString( |
409 .format(QDate.currentDate().toString( |
410 Qt.SystemLocaleShortDate)) |
410 Qt.SystemLocaleShortDate)) |
411 for i in range(len(bmNames)): |
411 for i in range(len(bmNames)): |
412 node = BookmarkNode(BookmarkNode.Bookmark, |
412 node = BookmarkNode(BookmarkNode.Bookmark, |
413 convertedRootNode) |
413 convertedRootNode) |