from PyQt6 import QtGui, QtWidgets from PyQt6.QtWidgets import QMainWindow, QFileDialog, QMessageBox, QWidget from MainWindow import Ui_MainWindow import sys import os import main as mn import webbrowser from Form import Ui_Form import rc_icons class Window2(QWidget): def __init__(self): super().__init__() self.x = Ui_Form() self.x.setupUi(self) class Window(QMainWindow): def __init__(self): super().__init__() self.ui = Ui_MainWindow() self.ui.setupUi(self) self.fr = Window2() #tab1< self.ui.combo.addItems(['PDF', 'TXT', 'PPTX', 'PPT', 'XLSX', 'DOCX', 'DOC', 'MP4', 'MP3', 'PNG', 'JPG', 'JPEG', 'ICO']) self.exception_folder = [] self.exception_folder_print = [] self.exception_files = [] self.exception_files_print = [] self.directory = '' self.new_folder = '' self.ui.actionGitHub.triggered.connect(lambda : webbrowser.open("https://github.com/Ayxan3-14/Projects")) self.ui.select_radio_btn.clicked.connect(self.select_radio_btn_def) self.ui.search_btn.clicked.connect(self.file_sh) self.ui.open_btn.clicked.connect(self.file_open) self.ui.includ_radio_btn.clicked.connect(self.includ_radio_btn_def) self.ui.exception_folder_btn.clicked.connect(self.exception_folder_def) self.ui.exception_file_btn.clicked.connect(self.exception_file_def) self.ui.delete_btn.clicked.connect(self.delete_def) self.ui.create_btn.clicked.connect(self.create_folder) self.ui.copy_btn.clicked.connect(self.copy_def) self.ui.clear_btn.clicked.connect(self.clear_def) self.ui.actionHaqq_nda.triggered.connect(self.about) #tab1> #tab2< self.directory_tab2 = '' self.ui.pushButton_3.clicked.connect(self.file_sh_tab2) self.ui.pushButton.clicked.connect(self.file_open_tab2) self.ui.pushButton_4.clicked.connect(self.clear_def_tab2) self.ui.pushButton_6.clicked.connect(self.delete_def_tab2) self.ui.pushButton_2.clicked.connect(self.goto_file) #tab2> def clear_def_tab2(self): self.ui.lineEdit.clear() self.ui.checkBox.setChecked(False) self.directory_tab2 = '' self.ui.label_3.setText('Seçilməyib') self.ui.pushButton_6.setDisabled(True) def goto_file(self): if self.ui.lineEdit_2.text(): try: os.startfile(self.ui.lineEdit_2.text()) except FileNotFoundError: QMessageBox.warning(self, 'Adres düzgün dəyil!', 'Qovluq (fayl) adresi düzgün dəyil') else: QMessageBox.warning(self, 'Qovluq adresi daxil etməlisiniz!', 'Qovluq (fayl) adresi daxil etməmisiniz') def delete_def_tab2(self): icon = ":/icons/icons/Google-Noto-Emoji-Symbols-73028-warning.ico" text = f'{self.d.cnt} ədəd {self.d.file_name} faylını silmək istəyirsiniz?' result = self.notification_screen(icon, 'Fayllar silinir', text, 'Yox', 'Hə') if result == 16384: self.d.file_delete() self.ui.pushButton_6.setDisabled(True) st = '{} qovluğundakı\n{} ədəd {} faylı silindi.' st = st.format(self.directory_print_tab2, self.d.cnt, self.d.file_name) QMessageBox.information(self, 'Fayllar Silindi', st) def file_open_tab2(self): x = str(QFileDialog.getExistingDirectory(self, "Axtarılacaq qovluğu seçin", os.getenv('HOME'))) if x: self.ui.pushButton_6.setDisabled(True) self.directory_tab2 = x.replace('/','\\') self.directory_print_tab2 = os.path.split(self.directory_tab2)[1] self.ui.label_3.setText(self.directory_print_tab2) def file_sh_tab2(self): if not self.ui.lineEdit.text(): QMessageBox.warning(self, 'Fayl adı daxil etməlisiniz!', 'Fayl adı daxil etməmisiniz') elif not self.directory_tab2: QMessageBox.warning(self, 'Axtarılacaq qovluq seçməlisiniz!', 'Axtarılacaq qovluq seçməmisiniz') else: self.d = mn.Search_file(self.ui.lineEdit.text(), self.directory_tab2) if self.ui.checkBox_2.isChecked() and self.ui.checkBox.isChecked(): self.d.file_search_extention() elif not self.ui.checkBox_2.isChecked() and not self.ui.checkBox.isChecked(): self.d.file_search_lower() elif self.ui.checkBox.isChecked(): self.d.file_search() elif self.ui.checkBox_2.isChecked(): self.d.file_search_lower_extention() if self.d.cnt != 0: self.ui.pushButton_6.setDisabled(False) text = '{} qovluğunda\n{} ədəd {} faylı tapıldı.' text = text.format(self.directory_print_tab2, self.d.cnt, self.d.file_name) icon = ":/icons/icons/Custom-Icon-Design-Flatastic-1-Information.ico" text = f'{self.d.cnt} ədəd {self.d.file_name} faylı tapıldı' result = self.notification_screen(icon, 'Fayl tapıldı', text, 'Bağla', 'Göstər') if result == 16384: self.fr.show() self.fr.setWindowIcon(QtGui.QIcon(":/icons/icons/Custom-Icon-Design-Flatastic-1-Information.ico")) file_print = [i for i in self.d.l] self.fr.x.textBrowser.setText(('\n'+'-'*90).join(file_print)) else: QMessageBox.information(self, 'Fayl tapılmadı!', f'{self.d.file_name} adında fayl tapılmadı') def about(self): text = '''Ayxan Şahsuvarov tərəfindən hazırlandı.

Bütün boğuşdurma haqları sərbəstdi.



© Hüquqları qorunmur ''' QMessageBox.about(self, 'Haqqında', text) def clear_def(self): self.ui.exception_folder_lbl.setText('Seçilməyib') self.ui.exception_file_lbl.setText('Seçilməyib') self.ui.create_file_lbl.setText('Seçilməyib') self.ui.open_lbl.setText('Seçilməyib') self.directory = '' self.new_folder = '' self.exception_folder = [] self.exception_folder_print = [] self.exception_files = [] self.exception_files_print = [] self.ui.include_line_edit.clear() self.ui.exception_folder_btn.setDisabled(True) self.ui.exception_file_btn.setDisabled(True) self.ui.copy_btn.setDisabled(True) self.ui.delete_btn.setDisabled(True) self.ui.create_btn.setDisabled(True) self.ui.select_radio_btn.setChecked(True) self.ui.combo.setDisabled(False) self.ui.include_line_edit.setDisabled(True) self.ui.include_line_edit.setPlaceholderText('') self.ui.combo.setCurrentIndex(0) def select_radio_btn_def(self): self.ui.combo.setDisabled(False) self.ui.include_line_edit.setDisabled(True) self.ui.include_line_edit.setPlaceholderText('') self.ui.combo.showPopup() def includ_radio_btn_def(self): self.ui.combo.setDisabled(True) self.ui.include_line_edit.setDisabled(False) self.ui.include_line_edit.setPlaceholderText('Fayl tipini daxil edin') def file_open(self): x = str(QFileDialog.getExistingDirectory(self, "Axtarılacaq qovluğu seçin", os.getenv('HOME'))) if x: self.ui.copy_btn.setDisabled(True) self.ui.delete_btn.setDisabled(True) self.directory = x.replace('/','\\') self.directory_print = os.path.split(self.directory)[1] self.ui.open_lbl.setText(os.path.split(self.directory_print)[1]) self.ui.exception_folder_btn.setDisabled(False) self.ui.exception_file_btn.setDisabled(False) def create_folder(self): x = QFileDialog.getExistingDirectory(self, 'Faylların kopyalanacağı yeri seçin', os.getenv('HOME')) if x: self.new_folder = x.replace('/','\\') self.ui.create_file_lbl.setText(os.path.split(self.new_folder)[1]) def exception_folder_def(self): x = str(QFileDialog.getExistingDirectory(self, "İstisna olunacaq qovluq seçin", self.directory)) if x: x = x.replace('/','\\') if x not in self.exception_folder: self.ui.copy_btn.setDisabled(True) self.ui.delete_btn.setDisabled(True) self.exception_folder.append(x) self.exception_folder_print.append(os.path.split(x)[1]) self.ui.exception_folder_lbl.setText('\n'.join(self.exception_folder_print)) def exception_file_def(self): x = QFileDialog.getOpenFileName(self, "İstisna olunacaq fayl seçin", self.directory)[0] if x: x = x.replace('/','\\') if x not in self.exception_files: self.ui.copy_btn.setDisabled(True) self.ui.delete_btn.setDisabled(True) self.exception_files.append(x) self.exception_files_print.append(os.path.split(x)[1]) self.ui.exception_file_lbl.setText('\n'.join(self.exception_files_print)) def file_sh(self): if not self.directory: QMessageBox.warning(self, 'Axtarılacaq qovluq seçməlisiniz!', 'Axtarılacaq qovluq seçməmisiniz') else: if self.ui.select_radio_btn.isChecked(): file_name = self.ui.combo.currentText() self.file_sh_print(file_name) elif self.ui.includ_radio_btn.isChecked(): file_name = self.ui.include_line_edit.text() if file_name: self.file_sh_print(file_name) else: QMessageBox.warning(self, 'Fayl tipini daxil etməlisiniz!', 'Fayl tipini daxil etməmisiz') def file_sh_print(self, file_name): self.c = mn.Copy_file(file_name.upper(), self.directory, self.exception_folder, self.exception_files) if self.c.cnt != 0: self.ui.copy_btn.setDisabled(False) self.ui.delete_btn.setDisabled(False) self.ui.create_btn.setDisabled(False) icon = ":/icons/icons/Custom-Icon-Design-Flatastic-1-Information.ico" text = f'{self.c.cnt} ədəd {self.c.file_name} faylı tapıldı' result = self.notification_screen(icon, 'Fayllar tapıldı', text, 'Bağla', 'Göstər') if result == 16384: self.fr.show() self.fr.setWindowIcon(QtGui.QIcon(":/icons/icons/Custom-Icon-Design-Flatastic-1-Information.ico")) file_print = [k for i,k,j in self.c.d] self.fr.x.textBrowser.setText(('\n'+'-'*88).join(file_print)) else: QMessageBox.information(self, 'Fayl tapılmadı!', f'{self.c.file_name} tipində fayl tapılmadı') def copy_def(self): if not self.new_folder: QMessageBox.warning(self, 'Faylların kopyalanacağı yer seçməlisiniz!', 'Faylların kopyalanacağı yer seçməmisiniz') else: self.c.file_copy(self.new_folder) st = '{} qovluğundakı {} ədəd {} faylının\n{} dənəsi {} qovluğuna kopyalandı.' st = st.format(self.directory_print, self.c.cnt, self.c.file_name, len(self.c), os.path.split(self.new_folder)[1]+'\\'+os.path.split(self.c.doc_address)[1]) QMessageBox.information(self, 'Fayllar Kopyalandı', st) def notification_screen(self, icon, windowtitle, text, btn_no_text, btn_yes_text): mb = QMessageBox() mb.setWindowIcon(QtGui.QIcon(icon)) mb.setWindowTitle(windowtitle) mb.setText(text) mb.setStandardButtons(QMessageBox.StandardButton.Yes | QMessageBox.StandardButton.No) mb.setEscapeButton(QMessageBox.StandardButton.No) btn_no = mb.button(QMessageBox.StandardButton.No) btn_no.setText(btn_no_text) btn_yes = mb.button(QMessageBox.StandardButton.Yes) btn_yes.setText(btn_yes_text) result = mb.exec() return result def delete_def(self): icon = ":/icons/icons/Google-Noto-Emoji-Symbols-73028-warning.ico" text = f'{self.c.cnt} ədəd {self.c.file_name} faylını silmək istəyirsiniz?' result = self.notification_screen(icon, 'Fayllar silinir', text, 'Yox', 'Hə') if result == 16384: self.c.file_delete() self.ui.copy_btn.setDisabled(True) self.ui.delete_btn.setDisabled(True) st = '{} qovluğundakı\n{} ədəd {} faylı silindi.' st = st.format(self.directory_print, self.c.cnt, self.c.file_name) QMessageBox.information(self, 'Fayllar Silindi', st) app = QtWidgets.QApplication(sys.argv) wnd = Window() wnd.show() sys.exit(app.exec())