X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;ds=sidebyside;f=src%2Fwin_main.h;h=0df916e3ca96eea3eb57fcd37cfe21d392858274;hb=7e7ac8c7037571693078602d4d85579e07f5024f;hp=c53d5c64d6dcffc516e554ef629a2c6b7bd01c61;hpb=b16bbfa60cf620a6b153772d44a3839e794152e4;p=x264-launcher%2Fx264-launcher.git diff --git a/src/win_main.h b/src/win_main.h index c53d5c6..0df916e 100644 --- a/src/win_main.h +++ b/src/win_main.h @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////////////////// // Simple x264 Launcher -// Copyright (C) 2004-2014 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,17 +21,25 @@ #pragma once +//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 @@ -39,46 +47,65 @@ namespace Ui class 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(const x264_cpu_t *const cpuFeatures); + 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); - virtual bool winEvent(MSG *message, long *result); private: + 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; - bool m_firstShow; - bool m_skipVersionTest; - bool m_abortOnTimeout; + postOp_t m_postOperation; bool m_initialized; - QLabel *m_label; - //IPCThread *m_ipcThread; + QScopedPointer m_label[2]; + QScopedPointer m_animation; + QScopedPointer m_fileTimer; - JobListModel *m_jobList; - OptionsModel *m_options; - QStringList *m_droppedFiles; - QList m_toolsList; - - PreferencesModel *m_preferences; - RecentlyUsed *m_recentlyUsed; + QScopedPointer m_ipcThread; + QScopedPointer m_taskbar; + QScopedPointer m_sysTray; - QString m_vapoursynthPath; + QScopedPointer m_inputFilter_jobList; + QScopedPointer m_inputFilter_version; + QScopedPointer m_inputFilter_checkUp; - const x264_cpu_t *const m_cpuFeatures; - const QString m_appDir; + QScopedPointer m_jobList; + QScopedPointer m_options; + QScopedPointer m_pendingFiles; + + 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); @@ -89,23 +116,29 @@ private: unsigned int countPendingJobs(void); unsigned int countRunningJobs(void); - void parseCommandLineArgs(void); + bool parseCommandLineArgs(void); private slots: 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 handleDroppedFiles(void); + void handlePendingFiles(void); void init(void); - void instanceCreated(unsigned int pid); + 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 jobListKeyPressed(const int &tag); void launchNextJob(); + void moveButtonPressed(void); void pauseButtonPressed(bool checked); void restartButtonPressed(void); void saveLogFile(const QModelIndex &index); @@ -114,5 +147,7 @@ private slots: void showWebLink(void); void shutdownComputer(void); void startButtonPressed(void); + void sysTrayActived(void); void updateLabelPos(void); + void versionLabelMouseClicked(const int &tag); };