def __create(self): ''' создание нового объекта. Передает с сигналом только что созданный объект Entity ''' #обработка полей list_fields = self.__getFields() #обработка тегов list_tags = self.__getTags() list_entityes = [] if self._object_type == SystemInfo.entity_link_type: list_entityes.append(EntityManager.createEntity(title=self._edit_title.text(),entity_type=self._object_type,user_name=self._user_repo.name, list_tags=list_tags,list_fields=list_fields, notes=self._edit_description.text())) #добавить дату создания else: files_names = self._edit_path.text() print(files_names) #files_names = cleareExtraSpace(files_names) list_files = files_names.split(';') list_files_names=[] for file_name in list_files: # убираются лишнии пробелы в начале и конце строки. Если пользователь вводил файлы вручную list_files_names.append(file_name.strip()) count_files = len(list_files_names) # self.setDisabled(1) progress_window = QtGui.QProgressDialog(self) # progress_window.setWindowModality(1) progress_window.setMinimum(0) progress_window.setMaximum(99) progress_window.show() self.connect(progress_window,QtCore.SIGNAL('canceled()'),self.__stoped) d_progress = 100/count_files progress = 0 for file_path in list_files_names: progress_window.setValue(progress) QtGui.QApplication.processEvents() file_repo_path = self.__splitFileByRepo(file_path) print(self._path_to_repo) print('file_repo_path',file_repo_path) list_entityes.append(EntityManager.createEntity(title=self._edit_title.text(),entity_type=self._object_type,user_name=self._user_repo.name, list_tags=list_tags,list_fields=list_fields, notes=self._edit_description.text(),file_path=file_repo_path)) print('progress---',progress) print('dprogress---',d_progress) progress+=d_progress progress_window.setValue(progress) QtGui.QApplication.processEvents() # progress_window.setWindowModality(0) print('deleting progress window') del(progress_window) print('the lenght outputting signal is -',len(list_entityes)) self.emit(QtCore.SIGNAL('createEntity(list_entityes)'),list_entityes) self.__canceled()
def __update(self): ''' модификация сущности. ''' list_fields= self.__getFields() list_tags= self.__getTags() entity = EntityManager.createEntity(title=self._edit_title.text(),entity_type=self._entity.object_type, user_name=self._user_repo.name,file_path=self._entity.file_path, list_tags=list_tags,list_fields=list_fields, id=self._entity.id) self.emit(QtCore.SIGNAL('updateEntity(list_entityes)'),(self._entity,entity)) self.__canceled()
def __indexingFile(self): ''' пометка файла метоинформацией. создается запись о файле в БД ''' print('addFile') row=self._table.currentIndex().row() index = self._table.model().index(row,0) file_path = self._table.model().data(index) if not file_path==None: file_path = self._path_to_repo + os.path.sep + file_path entity = EntityManager.createEntity(entity_type=SystemInfo.entity_file_type, user_name=self._user_repo, file_path=file_path) self.emit(QtCore.SIGNAL('indexingFile(entity)'),entity) else: self.info_window.setText('''не забываем выбирать файл ''') self.info_window.show() print('не забываем выбирать файл')
def __init__(self,parent=None): QtGui.QWidget.__init__(self,parent) #self._table = QtGui.QTableView(self) self._table = QtGui.QTreeView(self) self.button = QtGui.QPushButton('нажми что ли',self) vbox_layout = QtGui.QVBoxLayout() vbox_layout.addWidget(self._table) vbox_layout.addWidget(self.button) self.setLayout(vbox_layout) #list_string= QtCore.QString() self._entity_manager = EntityManager('/tmp/tmp') self.list_tag = ['tag1','tag2','tag3'] # for tag in self._entity_manager.getListTags(): # self.list_tag.append(tag[0]) self.list_entityes = [] for file in self._entity_manager.searchEntityBySQL('SELECT file_path FROM entity'): self.list_entityes.append(file[0]) self.model = TagViewModel(self.list_tag) self.model = FieldViewModel(self.list_tag) #self.model.rowCount() self._table.setModel(self.model) self.connect(self.button,QtCore.SIGNAL('clicked()'),self.tmp) self.connect(self._table,QtCore.SIGNAL('clicked(QModelIndex)'),self.tmp2) label = QtGui.QLabel() label.setText('asdfasdf') header = QtGui.QHeaderView(QtCore.Qt.Vertical,label)
def __create(self): ''' создание нового объекта. Передает с сигналом только что созданный объект Entity ''' #обработка полей try: list_fields = self.__getFields() #обработка тегов list_tags = self.__getTags() except Exception as error: self.info_window.setText(str('''Ошибка синтаксиса. "имя = значение" дложно быть в одной строке. Возможно перепутали поле "теги" с полем "поля". ''')) self.info_window.show() return list_entityes = [] if self._object_type == SystemInfo.entity_link_type: list_entityes.append(EntityManager.createEntity(title=self._edit_title.text(),entity_type=self._object_type,user_name=self._user_repo.name, list_tags=list_tags,list_fields=list_fields, notes=self._edit_description.text())) #добавить дату создания else: dir_path = self._edit_path_into_repo.text() if self.__isRepo(dir_path): if not self._edit_path.text()=='': files_names= self._edit_path.text() list_files = files_names.split(';') progress_window = QtGui.QProgressDialog(self) progress_window.setMinimum(0) progress_window.setMaximum(99) progress_window.show() count_files = len(list_files) d_progress = 99/count_files progress = 0 for file_path in list_files: # убираются лишнии пробелы в начале и конце строки. Если пользователь вводил файлы вручную print(file_path ) if not self.__isRepo(os.path.split(file_path)[0]): print('файл находится вне хранилищая... идет копирование') file_path_copy = os.path.join(dir_path,os.path.split(file_path)[1]) print('file_path_copy',file_path_copy) if not os.path.exists(file_path_copy): try: shutil.copyfile(file_path, file_path_copy) except IOError: self.info_window.setText(''' не найден копируемый файл:''' + file_path+ ''' Проверьте правильность пути к файлу. ''') self.info_window.show() progress_window.close() return file_path = self.__splitDirPath(file_path_copy) print('bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'),file_path_copy print('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',file_path) print('cccccccccccccccccccccccccccccccccccc',self._path_to_repo) else: print('добавляемый файл находится в хранилище') file_path_copy = file_path file_path = self.__splitDirPath(file_path_copy) print('file_path_copy',file_path_copy) print('file_path',file_path) entity = EntityManager.createEntity(title=self._edit_title.text(), entity_type=self._object_type, user_name=self._user_repo.name, file_path = file_path, list_tags=list_tags, list_fields=list_fields, notes=self._edit_description.text()) #добавить дату создания list_entityes.append(entity) progress+=d_progress print(progress) progress_window.setValue(int(progress)) QtGui.QApplication.processEvents() progress_window.close() # progress+=d_progress # print(progress) # progress_window.setValue(int(progress)) else: self.info_window.setText('''Не выбрано ни одного файла для копирвоания''') self.info_window.show() # print('епт.. файл выбери!') else: self.info_window.setText('''Выбранная директория не является хранилищем''') self.info_window.show() # for entity in list_entityes: # print('file_path',entity.file_path) index = 0 for entity in list_entityes: print('entity file path' + str(index) + ' ',entity.file_path) index +=1 self.emit(QtCore.SIGNAL('createEntity(list_entityes)'),list_entityes) self.close()
class MyWidget(QtGui.QWidget): def __init__(self,parent=None): QtGui.QWidget.__init__(self,parent) #self._table = QtGui.QTableView(self) self._table = QtGui.QTreeView(self) self.button = QtGui.QPushButton('нажми что ли',self) vbox_layout = QtGui.QVBoxLayout() vbox_layout.addWidget(self._table) vbox_layout.addWidget(self.button) self.setLayout(vbox_layout) #list_string= QtCore.QString() self._entity_manager = EntityManager('/tmp/tmp') self.list_tag = ['tag1','tag2','tag3'] # for tag in self._entity_manager.getListTags(): # self.list_tag.append(tag[0]) self.list_entityes = [] for file in self._entity_manager.searchEntityBySQL('SELECT file_path FROM entity'): self.list_entityes.append(file[0]) self.model = TagViewModel(self.list_tag) self.model = FieldViewModel(self.list_tag) #self.model.rowCount() self._table.setModel(self.model) self.connect(self.button,QtCore.SIGNAL('clicked()'),self.tmp) self.connect(self._table,QtCore.SIGNAL('clicked(QModelIndex)'),self.tmp2) label = QtGui.QLabel() label.setText('asdfasdf') header = QtGui.QHeaderView(QtCore.Qt.Vertical,label) #self._table.setVerticalHeader(header) def tmp(self): # self.model.setRowCount(self.index) # self.index+=1 pass def tagCount(self): return len(self.list_tag) def tmp2(self,index): row = index.row() if row<self.tagCount(): print('tag') selected_tag = self.model.item_data(index) request = "SELECT * FROM tag WHERE name='"+selected_tag+"'" print(request) self.list_tag = self._entity_manager.getListTags(request) #self.model.selectedItem(self.model.item_data(index)) else: print('entitye') # #if row.data. pass