def open_project_folder(self, folderName='', notIDEStart=True): if not self._treeProjects and notIDEStart: QMessageBox.information(self, self.tr("Projects Disabled"), self.tr("Project support has been disabled from Preferences")) return if not folderName: if settings.WORKSPACE: directory = settings.WORKSPACE else: directory = self._workingDirectory folderName = unicode(QFileDialog.getExistingDirectory(self, self.tr("Open Project Directory"), directory)) try: if not folderName: return self._workingDirectory = folderName if not self._treeProjects.is_open(folderName): project = json_manager.read_ninja_project(folderName) extensions = project.get('supported-extensions', settings.SUPPORTED_EXTENSIONS) if extensions != settings.SUPPORTED_EXTENSIONS: structure = file_manager.open_project_with_extensions( folderName, extensions) else: structure = file_manager.open_project(folderName) self._treeProjects.load_project(structure, folderName) self.save_recent_projects(folderName) else: self._treeProjects._set_current_project(folderName) self.emit(SIGNAL("projectOpened(QString)"), folderName) except Exception, reason: logger.error('open_project_folder: %s', reason) if not notIDEStart: QMessageBox.information(self, self.tr("Incorrect Project"), self.tr("The project could not be loaded!"))
def load_project(self, folderStructure, folder): if not folder: return name = file_manager.get_basename(folder) item = ProjectTree(self, name, folder) item.isFolder = True item.setToolTip(0, name) item.setIcon(0, QIcon(resources.IMAGES['tree-app'])) self._projects[folder] = item if folderStructure[folder][1] is not None: folderStructure[folder][1].sort() if item.extensions != settings.SUPPORTED_EXTENSIONS: folderStructure = file_manager.open_project_with_extensions( item.path, item.extensions) self._load_folder(folderStructure, folder, item) item.setExpanded(True) if len(self._projects) == 1: self.set_default_project(item) if self.currentItem() is None: item.setSelected(True) self.setCurrentItem(item) if folder not in self._fileWatcher.directories(): DEBUG("Ading '%s' to watcher" % folder) self._fileWatcher.addPath(folder)
def _thread_refresh_project(self): if self._extensions != settings.SUPPORTED_EXTENSIONS: folderStructure = file_manager.open_project_with_extensions(self._folder_path, self._extensions) else: folderStructure = file_manager.open_project(self._folder_path) if folderStructure.get(self._folder_path, [None, None])[1] is not None: folderStructure[self._folder_path][1].sort() values = (self._folder_path, self._item, folderStructure) self.emit(SIGNAL("folderDataRefreshed(PyQt_PyObject)"), values)
def _thread_refresh_project(self): if self._extensions != settings.SUPPORTED_EXTENSIONS: folderStructure = file_manager.open_project_with_extensions( self._folder_path, self._extensions) else: folderStructure = file_manager.open_project(self._folder_path) if folderStructure.get(self._folder_path, [None, None])[1] is not None: folderStructure[self._folder_path][1].sort() values = (self._folder_path, self._item, folderStructure) self.emit(SIGNAL("folderDataRefreshed(PyQt_PyObject)"), values)
def _thread_open_project(self): try: project = json_manager.read_ninja_project(self._folder_path) extensions = project.get("supported-extensions", settings.SUPPORTED_EXTENSIONS) if extensions != settings.SUPPORTED_EXTENSIONS: structure = file_manager.open_project_with_extensions(self._folder_path, extensions) else: structure = file_manager.open_project(self._folder_path) self.emit(SIGNAL("folderDataAcquired(PyQt_PyObject)"), (self._folder_path, structure)) except: self.emit(SIGNAL("folderDataAcquired(PyQt_PyObject)"), (self._folder_path, None))
def _thread_refresh_project(self): if self._extensions != settings.SUPPORTED_EXTENSIONS: folderStructure = file_manager.open_project_with_extensions( self._folder_path, self._extensions) else: try: folderStructure = file_manager.open_project(self._folder_path) except NinjaIOException: pass # There is not much we can do at this point if folderStructure and (folderStructure.get( self._folder_path, [None, None])[1] is not None): folderStructure[self._folder_path][1].sort() values = (self._folder_path, self._item, folderStructure) self.emit(SIGNAL("folderDataRefreshed(PyQt_PyObject)"), values)
def _thread_refresh_project(self, path, item, parentItem): if parentItem.extensions != settings.SUPPORTED_EXTENSIONS: folderStructure = file_manager.open_project_with_extensions( path, parentItem.extensions) else: folderStructure = file_manager.open_project(path) if folderStructure.get(path, [None, None])[1] is not None: folderStructure[path][1].sort() values = (folderStructure, path, item) else: values = None self._thread_execution[path].storage_values = values self._thread_execution[path].signal_return = path
def _thread_refresh_project(self): if self._extensions != settings.SUPPORTED_EXTENSIONS: folderStructure = file_manager.open_project_with_extensions( self._folder_path, self._extensions) else: try: folderStructure = file_manager.open_project(self._folder_path) except NinjaIOException: pass # There is not much we can do at this point if folderStructure and (folderStructure.get(self._folder_path, [None, None])[1] is not None): folderStructure[self._folder_path][1].sort() values = (self._folder_path, self._item, folderStructure) self.emit(SIGNAL("folderDataRefreshed(PyQt_PyObject)"), values)
def _thread_open_project(self): try: project = json_manager.read_ninja_project(self._folder_path) extensions = project.get('supported-extensions', settings.SUPPORTED_EXTENSIONS) if extensions != settings.SUPPORTED_EXTENSIONS: structure = file_manager.open_project_with_extensions( self._folder_path, extensions) else: structure = file_manager.open_project(self._folder_path) self.emit(SIGNAL("folderDataAcquired(PyQt_PyObject)"), (self._folder_path, structure)) except: self.emit(SIGNAL("folderDataAcquired(PyQt_PyObject)"), (self._folder_path, None))
def _thread_open_project(self, folderName): self._treeProjects.mute_signals = True try: project = json_manager.read_ninja_project(folderName) extensions = project.get('supported-extensions', settings.SUPPORTED_EXTENSIONS) if extensions != settings.SUPPORTED_EXTENSIONS: structure = file_manager.open_project_with_extensions( folderName, extensions) else: structure = file_manager.open_project(folderName) self._thread_execution[folderName].storage_values = ( structure, folderName) self._thread_execution[folderName].signal_return = folderName except Exception, reason: logger.error('open_project_folder: %s', reason) self._treeProjects.remove_loading_icon(folderName)
def _thread_open_project(self, folderName): self._treeProjects.mute_signals = True try: project = json_manager.read_ninja_project(folderName) extensions = project.get('supported-extensions', settings.SUPPORTED_EXTENSIONS) if extensions != settings.SUPPORTED_EXTENSIONS: structure = file_manager.open_project_with_extensions( folderName, extensions) else: structure = file_manager.open_project(folderName) self._thread_execution[folderName].storage_values = (structure, folderName) self._thread_execution[folderName].signal_return = folderName except Exception, reason: logger.error('open_project_folder: %s', reason) self._treeProjects.remove_loading_icon(folderName)
def open_project_folder(self, folderName='', notIDEStart=True): self._treeProjects.mute_signals = True if not self._treeProjects and notIDEStart: QMessageBox.information(self, self.tr("Projects Disabled"), self.tr("Project support has been disabled from Preferences")) return if not folderName: if settings.WORKSPACE: directory = settings.WORKSPACE else: directory = os.path.expanduser("~") current_project = self.get_actual_project() mainContainer = main_container.MainContainer() editorWidget = mainContainer.get_actual_editor() if current_project is not None: directory = current_project elif editorWidget is not None and editorWidget.ID: directory = file_manager.get_folder(editorWidget.ID) folderName = unicode(QFileDialog.getExistingDirectory(self, self.tr("Open Project Directory"), directory)) try: if not folderName: return if not self._treeProjects.is_open(folderName): project = json_manager.read_ninja_project(folderName) extensions = project.get('supported-extensions', settings.SUPPORTED_EXTENSIONS) if extensions != settings.SUPPORTED_EXTENSIONS: structure = file_manager.open_project_with_extensions( folderName, extensions) else: structure = file_manager.open_project(folderName) self._treeProjects.load_project(structure, folderName) self.save_recent_projects(folderName) else: self._treeProjects._set_current_project(folderName) self.emit(SIGNAL("projectOpened(QString)"), folderName) except Exception, reason: logger.error('open_project_folder: %s', reason) if not notIDEStart: QMessageBox.information(self, self.tr("Incorrect Project"), self.tr("The project could not be loaded!"))
def _refresh_project(self, item=None): if item is None: item = self.currentItem() parentItem = self._get_project_root(item) if parentItem is None: return if item.parent() is None: path = item.path else: path = file_manager.create_path(item.path, unicode(item.text(0))) if parentItem.extensions != settings.SUPPORTED_EXTENSIONS: folderStructure = file_manager.open_project_with_extensions( path, parentItem.extensions) else: folderStructure = file_manager.open_project(path) if folderStructure.get(path, [None, None])[1] is not None: folderStructure[path][1].sort() else: return item.takeChildren() self._load_folder(folderStructure, path, item) item.setExpanded(True)
def load_project(self, folderStructure, folder): if not folder: return name = file_manager.get_basename(folder) item = ProjectTree(self, name, folder) item.isFolder = True item.setToolTip(0, name) item.setIcon(0, QIcon(resources.IMAGES['tree-app'])) self._projects[folder] = item if folderStructure[folder][1] is not None: folderStructure[folder][1].sort() if item.extensions != settings.SUPPORTED_EXTENSIONS: folderStructure = file_manager.open_project_with_extensions( item.path, item.extensions) self._load_folder(folderStructure, folder, item) item.setExpanded(True) if len(self._projects) == 1: self.set_default_project(item) if self.currentItem() is None: item.setSelected(True) self.setCurrentItem(item) if not self._fileWatcher.directories().contains(folder): self._fileWatcher.addPath(folder)