4 # Copyright 2008 Develer S.r.l. (http://www.develer.com/)
9 # Author: Lorenzo Berni <duplo@develer.com>
12 from PyQt4.QtCore import *
13 from PyQt4.QtGui import *
14 import PyQt4.uic as uic
16 import qvariant_converter
20 class BToolchainSearch(QDialog):
23 QDialog.__init__(self)
25 self._connectSignals()
26 self.setWindowTitle(self.tr("Toolchain search page"))
29 self.content = uic.loadUi(UI_LOCATION + "/toolchain_search.ui", None)
30 layout = QVBoxLayout()
31 layout.addWidget(self.content)
32 self.setLayout(layout)
33 self._populateDirList()
35 self._setSearchButton()
37 def _connectSignals(self):
38 self.connect(self.content.pathBox, SIGNAL("stateChanged(int)"), self._stateChanged)
39 self.connect(self.content.addButton, SIGNAL("clicked()"), self._addDir)
40 self.connect(self.content.removeButton, SIGNAL("clicked()"), self._removeDir)
41 self.connect(self.content.cancelButton, SIGNAL("clicked()"), self.reject)
42 self.connect(self.content.searchButton, SIGNAL("clicked()"), self.accept)
44 def _setSearchButton(self):
45 self.content.searchButton.setDefault(True)
46 self.content.searchButton.setEnabled(self.content.pathBox.isChecked() or self.content.customDirList.count() != 0)
48 def _populateDirList(self):
49 search_dir_list = qvariant_converter.getStringList(QApplication.instance().settings.value("search_dir_list"))
50 for element in search_dir_list:
51 item = QListWidgetItem(element)
52 self.content.customDirList.addItem(item)
54 def _setPathSearch(self):
55 pathSearch = qvariant_converter.getBool(QApplication.instance().settings.value(QString("path_search")))
56 self.content.pathBox.setChecked(pathSearch)
58 def _stateChanged(self, state):
59 QApplication.instance().settings.setValue(QString("path_search"), QVariant(state != 0))
60 self._setSearchButton()
63 directory = QFileDialog.getExistingDirectory(self, self.tr("Open Directory"), "", QFileDialog.ShowDirsOnly)
64 if not directory.isEmpty():
65 directory = unicode(directory)
66 item = QListWidgetItem(directory)
67 self.content.customDirList.addItem(item)
68 search_dir_list = qvariant_converter.getStringList(QApplication.instance().settings.value("search_dir_list"))
69 search_dir_list = set(search_dir_list + [directory])
70 QApplication.instance().settings.setValue(QString("search_dir_list"), qvariant_converter.convertStringList(list(search_dir_list)))
71 self._setSearchButton()
74 if self.content.customDirList.currentRow() != -1:
75 item = self.content.customDirList.takeItem(self.content.customDirList.currentRow())
76 search_dir_list = qvariant_converter.getStringList(QApplication.instance().settings.value(QString("search_dir_list")))
77 search_dir_list = set(search_dir_list)
78 search_dir_list.remove(unicode(item.text()))
79 QApplication.instance().settings.setValue(QString("search_dir_list"), qvariant_converter.convertStringList(list(search_dir_list)))
80 self._setSearchButton()