src/eric7/WebBrowser/Bookmarks/BookmarksImportDialog.py

branch
eric7
changeset 9221
bf71ee032bb4
parent 9209
b99e7fd55fd3
child 9413
80c06d472826
equal deleted inserted replaced
9220:e9e7eca7efee 9221:bf71ee032bb4
24 24
25 class BookmarksImportDialog(QDialog, Ui_BookmarksImportDialog): 25 class BookmarksImportDialog(QDialog, Ui_BookmarksImportDialog):
26 """ 26 """
27 Class implementing a dialog for importing bookmarks from other sources. 27 Class implementing a dialog for importing bookmarks from other sources.
28 """ 28 """
29
29 SourcesListIdRole = Qt.ItemDataRole.UserRole 30 SourcesListIdRole = Qt.ItemDataRole.UserRole
30 31
31 def __init__(self, parent=None): 32 def __init__(self, parent=None):
32 """ 33 """
33 Constructor 34 Constructor
34 35
35 @param parent reference to the parent widget (QWidget) 36 @param parent reference to the parent widget (QWidget)
36 """ 37 """
37 super().__init__(parent) 38 super().__init__(parent)
38 self.setupUi(self) 39 self.setupUi(self)
39 40
40 self.filePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE) 41 self.filePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
41 42
42 self.sourcesList.setIconSize(QSize(48, 48)) 43 self.sourcesList.setIconSize(QSize(48, 48))
43 for icon, displayText, idText in BookmarksImporters.getImporters(): 44 for icon, displayText, idText in BookmarksImporters.getImporters():
44 itm = QListWidgetItem(icon, displayText, self.sourcesList) 45 itm = QListWidgetItem(icon, displayText, self.sourcesList)
45 itm.setData(self.SourcesListIdRole, idText) 46 itm.setData(self.SourcesListIdRole, idText)
46 47
47 self.__currentPage = 0 48 self.__currentPage = 0
48 self.__selectedSource = "" 49 self.__selectedSource = ""
49 self.__topLevelBookmarkNode = None 50 self.__topLevelBookmarkNode = None
50 self.__sourceFile = "" 51 self.__sourceFile = ""
51 self.__sourceDir = "" 52 self.__sourceDir = ""
52 53
53 self.pagesWidget.setCurrentIndex(self.__currentPage) 54 self.pagesWidget.setCurrentIndex(self.__currentPage)
54 self.__enableNextButton() 55 self.__enableNextButton()
55 56
56 def __enableNextButton(self): 57 def __enableNextButton(self):
57 """ 58 """
58 Private slot to set the enabled state of the next button. 59 Private slot to set the enabled state of the next button.
59 """ 60 """
60 if self.__currentPage == 0: 61 if self.__currentPage == 0:
61 self.nextButton.setEnabled( 62 self.nextButton.setEnabled(len(self.sourcesList.selectedItems()) == 1)
62 len(self.sourcesList.selectedItems()) == 1)
63 elif self.__currentPage == 1: 63 elif self.__currentPage == 1:
64 self.nextButton.setEnabled(self.filePicker.text() != "") 64 self.nextButton.setEnabled(self.filePicker.text() != "")
65 65
66 @pyqtSlot() 66 @pyqtSlot()
67 def on_sourcesList_itemSelectionChanged(self): 67 def on_sourcesList_itemSelectionChanged(self):
68 """ 68 """
69 Private slot to handle changes of the selection of the import source. 69 Private slot to handle changes of the selection of the import source.
70 """ 70 """
71 self.__enableNextButton() 71 self.__enableNextButton()
72 72
73 @pyqtSlot(str) 73 @pyqtSlot(str)
74 def on_filePicker_textChanged(self, txt): 74 def on_filePicker_textChanged(self, txt):
75 """ 75 """
76 Private slot handling changes of the file to import bookmarks form. 76 Private slot handling changes of the file to import bookmarks form.
77 77
78 @param txt text of the line edit (string) 78 @param txt text of the line edit (string)
79 """ 79 """
80 self.__enableNextButton() 80 self.__enableNextButton()
81 81
82 @pyqtSlot() 82 @pyqtSlot()
83 def on_nextButton_clicked(self): 83 def on_nextButton_clicked(self):
84 """ 84 """
85 Private slot to switch to the next page. 85 Private slot to switch to the next page.
86 """ 86 """
87 if self.sourcesList.currentItem() is None: 87 if self.sourcesList.currentItem() is None:
88 return 88 return
89 89
90 if self.__currentPage == 0: 90 if self.__currentPage == 0:
91 self.__selectedSource = self.sourcesList.currentItem().data( 91 self.__selectedSource = self.sourcesList.currentItem().data(
92 self.SourcesListIdRole) 92 self.SourcesListIdRole
93 (pixmap, sourceName, self.__sourceFile, info, prompt, 93 )
94 self.__sourceDir) = BookmarksImporters.getImporterInfo( 94 (
95 self.__selectedSource) 95 pixmap,
96 96 sourceName,
97 self.__sourceFile,
98 info,
99 prompt,
100 self.__sourceDir,
101 ) = BookmarksImporters.getImporterInfo(self.__selectedSource)
102
97 self.iconLabel.setPixmap(pixmap) 103 self.iconLabel.setPixmap(pixmap)
98 self.importingFromLabel.setText( 104 self.importingFromLabel.setText(
99 self.tr("<b>Importing from {0}</b>").format(sourceName)) 105 self.tr("<b>Importing from {0}</b>").format(sourceName)
106 )
100 self.fileLabel1.setText(info) 107 self.fileLabel1.setText(info)
101 self.fileLabel2.setText(prompt) 108 self.fileLabel2.setText(prompt)
102 self.standardDirLabel.setText( 109 self.standardDirLabel.setText("<i>{0}</i>".format(self.__sourceDir))
103 "<i>{0}</i>".format(self.__sourceDir)) 110
104
105 self.nextButton.setText(self.tr("Finish")) 111 self.nextButton.setText(self.tr("Finish"))
106 112
107 self.__currentPage += 1 113 self.__currentPage += 1
108 self.pagesWidget.setCurrentIndex(self.__currentPage) 114 self.pagesWidget.setCurrentIndex(self.__currentPage)
109 self.__enableNextButton() 115 self.__enableNextButton()
110 116
111 if self.__selectedSource == "ie": 117 if self.__selectedSource == "ie":
112 self.filePicker.setMode(EricPathPickerModes.DIRECTORY_MODE) 118 self.filePicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
113 else: 119 else:
114 self.filePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE) 120 self.filePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
115 if Globals.isMacPlatform(): 121 if Globals.isMacPlatform():
116 fileFilter = "*{0}".format( 122 fileFilter = "*{0}".format(os.path.splitext(self.__sourceFile)[1])
117 os.path.splitext(self.__sourceFile)[1])
118 else: 123 else:
119 fileFilter = self.__sourceFile 124 fileFilter = self.__sourceFile
120 self.filePicker.setFilters(fileFilter) 125 self.filePicker.setFilters(fileFilter)
121 self.filePicker.setDefaultDirectory(self.__sourceDir) 126 self.filePicker.setDefaultDirectory(self.__sourceDir)
122 127
123 elif self.__currentPage == 1: 128 elif self.__currentPage == 1:
124 if self.filePicker.text() == "": 129 if self.filePicker.text() == "":
125 return 130 return
126 131
127 importer = BookmarksImporters.getImporter(self.__selectedSource) 132 importer = BookmarksImporters.getImporter(self.__selectedSource)
128 importer.setPath(self.filePicker.text()) 133 importer.setPath(self.filePicker.text())
129 if importer.open(): 134 if importer.open():
130 self.__topLevelBookmarkNode = importer.importedBookmarks() 135 self.__topLevelBookmarkNode = importer.importedBookmarks()
131 if importer.error(): 136 if importer.error():
132 EricMessageBox.critical( 137 EricMessageBox.critical(
133 self, 138 self, self.tr("Error importing bookmarks"), importer.errorString()
134 self.tr("Error importing bookmarks"), 139 )
135 importer.errorString())
136 return 140 return
137 141
138 self.accept() 142 self.accept()
139 143
140 @pyqtSlot() 144 @pyqtSlot()
141 def on_cancelButton_clicked(self): 145 def on_cancelButton_clicked(self):
142 """ 146 """
143 Private slot documentation goes here. 147 Private slot documentation goes here.
144 """ 148 """
145 self.reject() 149 self.reject()
146 150
147 def getImportedBookmarks(self): 151 def getImportedBookmarks(self):
148 """ 152 """
149 Public method to get the imported bookmarks. 153 Public method to get the imported bookmarks.
150 154
151 @return top level bookmark (BookmarkNode) 155 @return top level bookmark (BookmarkNode)
152 """ 156 """
153 return self.__topLevelBookmarkNode 157 return self.__topLevelBookmarkNode

eric ide

mercurial