Ejemplo n.º 1
0
class TicketAnalysis(QtWidgets.QWidget):
    def __init__(self):
        super(TicketAnalysis, self).__init__()
        self.initUI()

    def initUI(self):
        self.resize(400, 180)
        self.setWindowTitle("Ticket Analysis")
        self.setWindowIcon(QIcon('Keyword_Analysis'))

        CsvUploadBtn = QPushButton("CSV Upload", self)
        CsvUploadBtn.resize(CsvUploadBtn.sizeHint())
        CsvUploadBtn.clicked.connect(self.Browse)
        CsvUploadBtn.move(10, 10)

        self.FilePathLbl = QLabel(self)
        self.FilePathLbl.move(100, 15)

        AnalyseBtn = QPushButton("Analyse", self)
        AnalyseBtn.move(10, 40)
        AnalyseBtn.clicked.connect(self.Analyse)

        self.ProgressBar = QProgressBar(self)
        self.ProgressBar.move(100, 41)
        self.ProgressBar.hide()
        self.ProgressBar.setProperty("value", 1)
        self.ProgressBar.setMinimumWidth(300)

        ConfirmationLbl = QLabel("Ticket analysis done", self)
        ConfirmationLbl.move(10, 110)

        ConfirmationLbl2 = QLabel("Please check the folder in the directory",
                                  self)
        ConfirmationLbl2.move(10, 130)

        OpenDirectory = QPushButton("Open Directory", self)
        OpenDirectory.move(285, 125)
        OpenDirectory.clicked.connect(self.OpenDir)

        self.show()

    def Browse(self):
        options = QFileDialog.Options()
        options |= QFileDialog.DontUseNativeDialog
        fileName, _ = QFileDialog.getOpenFileName(
            self,
            "QFileDialog.getOpenFileName()",
            "",
            "All Files (*);;Python Files (*.py)",
            options=options)
        if fileName:
            print(fileName)

    def OpenDir(self):
        filedir = os.system(
            'explorer.exe ""C:\\Users\\36474\\Downloads\\TicketAnalysis-20170612T050725Z-001\\TicketAnalysis\\Ticket\\Analysis\\output_"" '
        )

    def Analyse(self):
        self.ProgressBar.show()
Ejemplo n.º 2
0
class FSMainWindow(QMainWindow, FSBase):
    """
    Main Window
    """
    def __init__(self):
        QMainWindow.__init__(self)
        FSBase.__init__(self)

        self.progressbar = None
        self.tab_widget = None
        self.file_tree_widget = None
        self.file_tree_model = None
        self.file_scanner_thread = None

        self.movie_table_widget = None
        self.movie_table_model = None
        self.movie_scanner_thread = None

        self.build_ui()
        self.build_content()

    def build_ui(self):
        self.setWindowTitle("Filesystem Analyzer")

        settings_action = QAction(QIcon("res/settings.svg"), "Settings", self)
        settings_action.setShortcut("Ctrl+S")
        settings_action.triggered.connect(self.settings_action_handler)

        set_path_action = QAction(QIcon("res/directory-submission-symbol.svg"),
                                  "Set path", self)
        set_path_action.setShortcut("Ctrl+N")
        set_path_action.triggered.connect(self.set_path_action_handler)

        refresh_action = QAction(QIcon("res/reload.svg"), "Refresh", self)
        refresh_action.setShortcut("Ctrl+R")
        refresh_action.triggered.connect(self.refresh_action_handler)

        menu_bar = self.menuBar()
        action_menu = menu_bar.addMenu("&Action")
        action_menu.addAction(settings_action)
        action_menu.addAction(set_path_action)
        action_menu.addAction(refresh_action)
        toolbar = self.addToolBar("Exit")
        toolbar.addAction(settings_action)
        toolbar.addAction(set_path_action)
        toolbar.addAction(refresh_action)

        self.progressbar = QProgressBar(self)
        self.progressbar.hide()
        self.progressbar.setRange(0, 100)

        cancel_button = QPushButton(QIcon("res/cancel-button.svg"), "Cancel",
                                    self)
        cancel_button.clicked.connect(self.set_path_cancel)

        self.statusBar().addPermanentWidget(self.progressbar)
        self.statusBar().addPermanentWidget(cancel_button)

        self.tab_widget = QTabWidget(self)

        self.file_tree_widget = FSFileTreeWidget()
        self.file_tree_model = FSFileTreeModel()
        self.file_tree_widget.setModel(self.file_tree_model)

        self.movie_table_widget = FSMovieTableWidget()
        self.movie_table_widget.setShowGrid(False)
        self.movie_table_widget.setAlternatingRowColors(True)
        self.movie_table_widget.verticalHeader().setVisible(False)
        self.movie_table_widget.setSelectionBehavior(QTableView.SelectRows)
        self.movie_table_model = FSMovieTableModel()
        self.movie_table_widget.setModel(self.movie_table_model)
        self.tab_widget.addTab(self.file_tree_widget, "General")
        self.tab_widget.addTab(self.movie_table_widget, "Movies")
        self.setCentralWidget(self.tab_widget)

        last_tab_index = self.app.load_setting("last_tab_index")
        if last_tab_index:
            self.tab_widget.setCurrentIndex(int(last_tab_index))
        self.tab_widget.currentChanged.connect(self.tab_widget_changed)

        self.show()

    def settings_action_handler(self):
        settings_dialog = FSSettingsDialog(self)
        settings_dialog.show()

    def build_content(self):
        path = self.app.load_setting("path")
        self.set_path(path)

    def set_path_action_handler(self):
        file_dialog = QFileDialog()
        path = file_dialog.getExistingDirectory(
            self, "Select directory", "/home/",
            QFileDialog.ShowDirsOnly | QFileDialog.DontResolveSymlinks)
        self.logger.info("Path set to %s", path)
        self.set_path(path)
        self.app.save_setting("path", path)

    def set_path(self, path):
        self.progressbar.show()

        if self.tab_widget.currentIndex() == 0:
            self.file_tree_model.reset_root()
            file_scanner_context = FSFileScannerContext(
                path, self.file_tree_model.root)
            self.file_scanner_thread = FSFileScannerTask(
                self, file_scanner_context)
            self.file_scanner_thread.notifyProgress.connect(
                self.update_progress)
            self.file_scanner_thread.notifyFinish.connect(
                self.set_path_action_finish)
            self.file_scanner_thread.notifyError.connect(self.report_error)
            self.file_scanner_thread.start()
        else:
            movie_extensions = self.app.load_setting(
                self.app.ExtensionSettings[FSExtensionType.TYPE_MOVIE])
            movie_extensions_list = [
                movie_extension.strip()
                for movie_extension in movie_extensions.split(",")
            ]
            movie_scanner_context = FSMovieScannerContext(
                path, self.movie_table_model.movies, movie_extensions_list)
            self.movie_scanner_thread = FSMovieScannerTask(
                self, movie_scanner_context)
            self.movie_scanner_thread.notifyProgress.connect(
                self.update_progress)
            self.movie_scanner_thread.notifyFinish.connect(
                self.set_path_action_finish)
            self.movie_scanner_thread.notifyError.connect(self.report_error)
            self.movie_scanner_thread.start()

    def set_path_action_finish(self):
        self.progressbar.hide()
        if self.tab_widget.currentIndex() == 0:
            self.file_tree_model.reset_model()
            self.file_tree_widget.setColumnWidth(0, 250)
        else:
            self.movie_table_model.reset_model()
            self.movie_table_widget.resizeColumnsToContents()

    def set_path_cancel(self):
        self.file_scanner_thread.stop_flag = True

    def refresh_action_handler(self):
        path = self.app.load_setting("path")
        self.set_path(path)

    def update_progress(self, value):
        self.progressbar.setValue(value)

    def report_error(self, error):
        print(error)

    def tab_widget_changed(self, index):
        self.app.save_setting("last_tab_index", index)