X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2Fwin_main.h;h=0df916e3ca96eea3eb57fcd37cfe21d392858274;hb=7e7ac8c7037571693078602d4d85579e07f5024f;hp=b1c19f87c4447db3020d9eb31cb9416ee795e3a0;hpb=6121903aa0977ccadedfa1d5274b7caa51ff1b14;p=x264-launcher%2Fx264-launcher.git diff --git a/src/win_main.h b/src/win_main.h index b1c19f8..0df916e 100644 --- a/src/win_main.h +++ b/src/win_main.h @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////////////////// // Simple x264 Launcher -// Copyright (C) 2004-2012 LoRd_MuldeR +// Copyright (C) 2004-2020 LoRd_MuldeR // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -21,58 +21,133 @@ #pragma once -#include "uic_win_main.h" -#include "thread_encode.h" +//Internal +#include "global.h" +//Qt +#include + +//Forward declarations class JobListModel; class OptionsModel; +class SysinfoModel; class QFile; +class QLibrary; +class PreferencesModel; +class RecentlyUsed; +class InputEventFilter; +class QModelIndex; +class QLabel; +class QSystemTrayIcon; +class IPCThread_Recv; +enum JobStatus; + +namespace Ui +{ + class MainWindow; +} -class MainWindow: public QMainWindow, private Ui::MainWindow +namespace MUtils +{ + class IPCChannel; + class Taskbar7; + namespace CPUFetaures + { + typedef struct _cpu_info_t cpu_info_t; + } +} + +class MainWindow: public QMainWindow { Q_OBJECT public: - MainWindow(bool x64supported); + MainWindow(const MUtils::CPUFetaures::cpu_info_t &cpuFeatures, MUtils::IPCChannel *const ipcChannel); ~MainWindow(void); protected: virtual void closeEvent(QCloseEvent *e); virtual void showEvent(QShowEvent *e); virtual void resizeEvent(QResizeEvent *e); - virtual bool eventFilter(QObject *o, QEvent *e); virtual void dragEnterEvent(QDragEnterEvent *event); virtual void dropEvent(QDropEvent *event); private: - bool m_firstShow; - QLabel *m_label; + typedef enum + { + POST_OP_DONOTHING = 0, + POST_OP_POWERDOWN = 1, + POST_OP_HIBERNATE = 2 + } + postOp_t; + + Ui::MainWindow *const ui; + MUtils::IPCChannel *const m_ipcChannel; - JobListModel *m_jobList; - OptionsModel *m_options; - QList m_toolsList; + postOp_t m_postOperation; + bool m_initialized; - const bool m_x64supported; - const QString m_appDir; + QScopedPointer m_label[2]; + QScopedPointer m_animation; + QScopedPointer m_fileTimer; + + QScopedPointer m_ipcThread; + QScopedPointer m_taskbar; + QScopedPointer m_sysTray; + + QScopedPointer m_inputFilter_jobList; + QScopedPointer m_inputFilter_version; + QScopedPointer m_inputFilter_checkUp; + + QScopedPointer m_jobList; + QScopedPointer m_options; + QScopedPointer m_pendingFiles; - void updateButtons(EncodeThread::JobStatus status); - bool havePendingJobs(void); - bool haveRunningJobs(void); + QScopedPointer m_sysinfo; + QScopedPointer m_preferences; + QScopedPointer m_recentlyUsed; + + bool createJob(QString &sourceFileName, QString &outputFileName, OptionsModel *options, bool &runImmediately, const bool restart = false, int fileNo = -1, int fileTotal = 0, bool *applyToAll = NULL); + bool createJobMultiple(const QStringList &filePathIn); + + bool appendJob(const QString &sourceFileName, const QString &outputFileName, OptionsModel *options, const bool runImmediately); + void updateButtons(JobStatus status); + void updateTaskbar(JobStatus status, const QIcon &icon); + unsigned int countPendingJobs(void); + unsigned int countRunningJobs(void); + + bool parseCommandLineArgs(void); private slots: - void addButtonPressed(const QString &filePath = QString(), bool *ok = NULL); + void addButtonPressed(); + void openActionTriggered(); + void cleanupActionTriggered(void); + void postOpActionTriggered(void); void abortButtonPressed(void); void browseButtonPressed(void); void deleteButtonPressed(void); void copyLogToClipboard(bool checked); + void saveLogToLocalFile(bool checked); + void toggleLineWrapping(bool checked); + void checkUpdates(void); + void handlePendingFiles(void); void init(void); - void jobSelected(const QModelIndex & current, const QModelIndex & previous); + void handleCommand(const int &command, const QStringList &args, const quint32 &flags = 0); + void jobSelected(const QModelIndex ¤t, const QModelIndex &previous); void jobChangedData(const QModelIndex &top, const QModelIndex &bottom); void jobLogExtended(const QModelIndex & parent, int start, int end); - void launchNextJob(void); + void jobListKeyPressed(const int &tag); + void launchNextJob(); + void moveButtonPressed(void); void pauseButtonPressed(bool checked); + void restartButtonPressed(void); + void saveLogFile(const QModelIndex &index); void showAbout(void); + void showPreferences(void); void showWebLink(void); + void shutdownComputer(void); void startButtonPressed(void); - void updateLabel(void); + void sysTrayActived(void); + void updateLabelPos(void); + void versionLabelMouseClicked(const int &tag); };