7 Module implementing a dialog for the configuration of search engines. |
7 Module implementing a dialog for the configuration of search engines. |
8 """ |
8 """ |
9 |
9 |
10 from PyQt4.QtGui import QDialog, QFileDialog, QMessageBox |
10 from PyQt4.QtGui import QDialog, QFileDialog, QMessageBox |
11 from PyQt4.QtCore import pyqtSlot, SIGNAL |
11 from PyQt4.QtCore import pyqtSlot, SIGNAL |
12 |
|
13 from Helpviewer.HelpWebSearchWidget import HelpWebSearchWidget |
|
14 |
12 |
15 from .OpenSearchEngineModel import OpenSearchEngineModel |
13 from .OpenSearchEngineModel import OpenSearchEngineModel |
16 from .OpenSearchEditDialog import OpenSearchEditDialog |
14 from .OpenSearchEditDialog import OpenSearchEditDialog |
17 |
15 |
18 from .Ui_OpenSearchDialog import Ui_OpenSearchDialog |
16 from .Ui_OpenSearchDialog import Ui_OpenSearchDialog |
28 QDialog.__init__(self, parent) |
26 QDialog.__init__(self, parent) |
29 self.setupUi(self) |
27 self.setupUi(self) |
30 |
28 |
31 self.setModal(True) |
29 self.setModal(True) |
32 |
30 |
|
31 self.__mw = parent |
|
32 |
33 self.__model = \ |
33 self.__model = \ |
34 OpenSearchEngineModel(HelpWebSearchWidget.openSearchManager(), self) |
34 OpenSearchEngineModel(self.__mw.openSearchManager(), self) |
35 self.enginesTable.setModel(self.__model) |
35 self.enginesTable.setModel(self.__model) |
36 self.enginesTable.horizontalHeader().resizeSection(0, 200) |
36 self.enginesTable.horizontalHeader().resizeSection(0, 200) |
37 self.enginesTable.horizontalHeader().setStretchLastSection(True) |
37 self.enginesTable.horizontalHeader().setStretchLastSection(True) |
38 self.enginesTable.verticalHeader().hide() |
38 self.enginesTable.verticalHeader().hide() |
39 self.enginesTable.verticalHeader().setDefaultSectionSize( |
39 self.enginesTable.verticalHeader().setDefaultSectionSize( |
53 self, |
53 self, |
54 self.trUtf8("Add search engine"), |
54 self.trUtf8("Add search engine"), |
55 "", |
55 "", |
56 self.trUtf8("OpenSearch (*.xml);;All Files (*)")) |
56 self.trUtf8("OpenSearch (*.xml);;All Files (*)")) |
57 |
57 |
58 osm = HelpWebSearchWidget.openSearchManager() |
58 osm = self.__mw.openSearchManager() |
59 for fileName in fileNames: |
59 for fileName in fileNames: |
60 if not osm.addEngine(fileName): |
60 if not osm.addEngine(fileName): |
61 QMessageBox.critical(self, |
61 QMessageBox.critical(self, |
62 self.trUtf8("Add search engine"), |
62 self.trUtf8("Add search engine"), |
63 self.trUtf8("""{0} is not a valid OpenSearch 1.1 description or""" |
63 self.trUtf8("""{0} is not a valid OpenSearch 1.1 description or""" |
78 @pyqtSlot() |
78 @pyqtSlot() |
79 def on_restoreButton_clicked(self): |
79 def on_restoreButton_clicked(self): |
80 """ |
80 """ |
81 Private slot to restore the default search engines. |
81 Private slot to restore the default search engines. |
82 """ |
82 """ |
83 HelpWebSearchWidget.openSearchManager().restoreDefaults() |
83 self.__mw.openSearchManager().restoreDefaults() |
84 |
84 |
85 @pyqtSlot() |
85 @pyqtSlot() |
86 def on_editButton_clicked(self): |
86 def on_editButton_clicked(self): |
87 """ |
87 """ |
88 Private slot to edit the data of the current search engine. |
88 Private slot to edit the data of the current search engine. |
91 if len(rows) == 0: |
91 if len(rows) == 0: |
92 row = self.enginesTable.selectionModel().currentIndex().row() |
92 row = self.enginesTable.selectionModel().currentIndex().row() |
93 else: |
93 else: |
94 row = rows[0].row() |
94 row = rows[0].row() |
95 |
95 |
96 osm = HelpWebSearchWidget.openSearchManager() |
96 osm = self.__mw.openSearchManager() |
97 engineName = osm.allEnginesNames()[row] |
97 engineName = osm.allEnginesNames()[row] |
98 engine = osm.engine(engineName) |
98 engine = osm.engine(engineName) |
99 dlg = OpenSearchEditDialog(engine, self) |
99 dlg = OpenSearchEditDialog(engine, self) |
100 if dlg.exec_() == QDialog.Accepted: |
100 if dlg.exec_() == QDialog.Accepted: |
101 osm.enginesChanged() |
101 osm.enginesChanged() |