def open_query(self, filename='', remember=True): if not filename: if self.__last_open_folder is None: directory = os.path.expanduser("~") else: directory = self.__last_open_folder filter_ = settings.SUPPORTED_FILES.split(';;')[1] filename, _ = QFileDialog.getOpenFileName( self, self.tr("Abrir Consulta"), directory, filter_) if not filename: return # Si @filename no es False # Cacheo la carpeta accedida if remember: self.__last_open_folder = file_manager.get_path(filename) # FIXME: mejorar éste y new_query self.new_query(filename)
def load_relation(self, filenames=[]): """ Load relation from file """ if not filenames: native_dialog = QFileDialog.DontUseNativeDialog if self.__last_open_folder is None: directory = os.path.expanduser("~") else: directory = self.__last_open_folder ffilter = settings.RFILES.split(';;')[-1] filenames = QFileDialog.getOpenFileNames(self, self.tr("Abrir Archivo"), directory, ffilter, native_dialog) if not filenames: return # Save folder self.__last_open_folder = file_manager.get_path(filenames[0]) self.__modified = True # Load tables self.table_widget.load_relation(filenames)
def open_file(self): if self.__last_open_folder is None: directory = os.path.expanduser("~") else: directory = self.__last_open_folder filename = QFileDialog.getOpenFileName(self, self.tr("Abrir Archivo"), directory, settings.DBFILE, QFileDialog.DontUseNativeDialog) if not filename: return # Save folder self.__last_open_folder = file_manager.get_path(filename) ext = file_manager.get_extension(filename) if ext == '.pqf': # Query file self.new_query(filename) elif ext == '.rdb': self.load_rdb_database(file_manager.read_rdb_file(filename)) else: self.create_data_base(filename)
def load_relation(self, filename=''): """ Load Relation file """ if not filename: if self.__last_open_folder is None: directory = os.path.expanduser("~") else: directory = self.__last_open_folder msg = self.tr("Abrir Relación") filter_ = settings.SUPPORTED_FILES.split(';;')[-1] filenames = QFileDialog.getOpenFileNames(self, msg, directory, filter_)[0] if not filenames: return # Save folder self.__last_open_folder = file_manager.get_path(filenames[0]) db_container = self.get_active_db() if db_container.load_relation(filenames): db_container.modified = True
def load_relation(self, filename=''): """ Load Relation file """ if not filename: if self.__last_open_folder is None: directory = os.path.expanduser("~") else: directory = self.__last_open_folder msg = self.tr("Open Relation File") filter_ = settings.SUPPORTED_FILES.split(';;')[-1] filenames = QFileDialog.getOpenFileNames(self, msg, directory, filter_)[0] if not filenames: return # Save folder self.__last_open_folder = file_manager.get_path(filenames[0]) db_container = self.get_active_db() if db_container.load_relation(filenames): db_container.modified = True
def test_get_path(filename, path): assert file_manager.get_path(filename) == path
def open_database(self, filename='', remember=True): """ This function opens a database and set this on the UI """ if self.created: return self.__say_about_one_db_at_time() # If not filename provide, then open dialog to select if not filename: if self.__last_open_folder is None: directory = os.path.expanduser("~") else: directory = self.__last_open_folder filter_ = settings.SUPPORTED_FILES.split(';;')[0] filename, _ = QFileDialog.getOpenFileName( self, self.tr("Abrir Base de " "Datos"), directory, filter_) # If is canceled, return if not filename: return # If filename provide try: logger.debug("Intentando abrir el archivo {}".format(filename)) # Read pdb file pfile_object = pfile.File(filename) db_data = pfile_object.read() # Create a dict to manipulate data more easy db_data = self.__sanitize_data(db_data) except Exception as reason: QMessageBox.information(self, self.tr("El archivo no se puede abrir"), reason.__str__()) logger.debug("Error al abrir el archivo {0}: '{1}'".format( filename, reason.__str__())) return # Create a database container widget db_container = database_container.DatabaseContainer() try: db_container.create_database(db_data) except Exception as reason: QMessageBox.information(self, self.tr("Error"), str(reason)) logger.debug("Error al crear la base de datos: {}".format( reason.__str__())) return # Set the PFile object to the new database db_container.pfile = pfile_object # Add data base container to stacked self.add_widget(db_container) # Database name db_name = file_manager.get_basename(filename) # Update title with the new database name, and enable some actions pireal = Pireal.get_service("pireal") self.databaseConected.emit(self.tr("Conectado a: {}".format(db_name))) pireal.set_enabled_db_actions(True) pireal.set_enabled_relation_actions(True) if remember: # Add to recent databases self.recent_databases = filename # Remember the folder self.__last_open_folder = file_manager.get_path(filename) self.created = True
def open_database(self, filename=''): """ This function opens a database and set this on the UI """ # If not filename provide, then open dialog to select if self.created: QMessageBox.information(self, self.tr("Information"), self.tr("You may only have one database" " open at time.")) DEBUG("Ya existe una base de datos abierta") return if not filename: if self.__last_open_folder is None: directory = os.path.expanduser("~") else: directory = self.__last_open_folder filter_ = settings.SUPPORTED_FILES.split(';;')[0] filename, _ = QFileDialog.getOpenFileName(self, self.tr("Open Database"), directory, filter_) # If is canceled, return if not filename: return # Remember the folder self.__last_open_folder = file_manager.get_path(filename) DEBUG("Abriendo la base de datos: '{}'".format(filename)) # If filename provide try: # Read pdb file pfile_object = pfile.File(filename) db_data = pfile_object.read() # Create a dict to manipulate data more easy db_data = self.__sanitize_data(db_data) except Exception as reason: QMessageBox.information(self, self.tr("The file couldn't be open"), str(reason)) CRITICAL("Error al intentar abrir el archivo: {}".format(reason)) return # Create a database container widget db_container = database_container.DatabaseContainer() try: db_container.create_database(db_data) except Exception as reason: QMessageBox.information(self, self.tr("Error"), str(reason)) CRITICAL("Error al crear la base de datos: {}".format(reason)) return # Set the PFile object to the new database db_container.pfile = pfile_object # Add data base container to stacked self.add_widget(db_container) # Database name db_name = file_manager.get_basename(filename) # Update title with the new database name, and enable some actions pireal = Pireal.get_service("pireal") pireal.change_title(db_name) pireal.set_enabled_db_actions(True) pireal.set_enabled_relation_actions(True) # Add to recent databases self.recent_databases = filename self.created = True