+ try:
+ directory = unicode(directory).encode("ascii")
+ except UnicodeEncodeError:
+ directory = self._destination_folder
+ self.pageContent.directoryEdit.setText(directory)
+ self._destination_folder = directory
+ self.setProjectPath()
+
+ def selectDirectory(self):
+ """
+ Slot called when the project folder is changed using the file dialog.
+ """
+ directory = unicode(QFileDialog.getExistingDirectory(self, self.tr("Open Directory"), self.pageContent.directoryEdit.text(), QFileDialog.ShowDirsOnly))
+ if len(directory) > 0:
+ self.pageContent.directoryEdit.setText(QDir.toNativeSeparators(directory))
+
+ ####
+
+ def initializeAttributes(self):
+ """
+ Initializes the page attributes to the default values.
+ """
+ self._project_name = ""
+ stored_folder = self.defaultFolder()
+ if stored_folder != "":
+ self._destination_folder = stored_folder
+ elif os.name == "nt":
+ def _winGetSpecialFolder(csidl):
+ from ctypes import windll, create_unicode_buffer
+ MAX_PATH = 4096
+ buf = create_unicode_buffer(MAX_PATH)
+ if not windll.shell32.SHGetSpecialFolderPathW(0, buf, csidl, False):
+ raise WindowsError("cannot get special folder location")
+ return buf.value
+ CSIDL_PERSONAL = 5
+ self._destination_folder = _winGetSpecialFolder(CSIDL_PERSONAL)
+ else:
+ self._destination_folder = os.path.expanduser("~")
+ self.pageContent.directoryEdit.setText(self._destination_folder)