first commit
This commit is contained in:
299
project/fm_viewer/ui/window_main.h
Normal file
299
project/fm_viewer/ui/window_main.h
Normal file
@@ -0,0 +1,299 @@
|
||||
#ifndef WINDOW_MAIN_H
|
||||
#define WINDOW_MAIN_H
|
||||
|
||||
#include "../rm_include.h"
|
||||
#include "rm_window_base.h"
|
||||
#include <QShortcut>
|
||||
#include "../core/rm_player_base.h"
|
||||
#include "../data/rm_video_item_2ch.h"
|
||||
#include "../data/rm_video_item_loader.h"
|
||||
|
||||
class WindowSettings;
|
||||
|
||||
class RMFrameLeft;
|
||||
class RMFrameRight;
|
||||
class RMFrameBottom; // full screen only
|
||||
class RMVideoItem;
|
||||
|
||||
#if (SUPPORT_LIBRARY_MODE)
|
||||
// TB5000 윈도우 CALLBACK
|
||||
typedef void (*onTB5000)(int);
|
||||
#endif // SUPPORT_LIBRARY_MODE
|
||||
|
||||
#if (DESIGN_LAYOUT_MODE)
|
||||
class QGraphicsOpacityEffect;
|
||||
#endif
|
||||
|
||||
#if (DUAL_VIEWER)
|
||||
class RMFrameTop;
|
||||
#endif // DUAL_VIEWER
|
||||
|
||||
#if (DETECT_USB_CHANGE)
|
||||
class rm_usb;
|
||||
#endif // DETECT_USB_CHANGE
|
||||
|
||||
#if (RM_MODEL == RM_MODEL_TYPE_TB4000)
|
||||
class QInputDialog;
|
||||
#endif
|
||||
|
||||
#if (USE_VERSION_CHECK)
|
||||
class FMVersionDialog;
|
||||
#endif
|
||||
|
||||
class WindowMain : public RMWindowBase
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
#if (RM_TESTING)
|
||||
friend class RMTestProcess;
|
||||
#endif
|
||||
#if (USE_VERSION_CHECK)
|
||||
FMVersionDialog* _versionDialog;
|
||||
#endif // #if (USE_VERSION_CHECK)
|
||||
public:
|
||||
|
||||
#if (DESIGN_LAYOUT_MODE)
|
||||
QGraphicsOpacityEffect* alpha;
|
||||
#endif
|
||||
|
||||
~WindowMain();
|
||||
static WindowMain* instance(QWidget* parent = nullptr)
|
||||
{
|
||||
static WindowMain * _mainWindowInstance = NULL;
|
||||
if ( _mainWindowInstance == NULL )
|
||||
{
|
||||
_mainWindowInstance = new WindowMain(parent);
|
||||
}
|
||||
return _mainWindowInstance;
|
||||
}
|
||||
|
||||
//protected:
|
||||
|
||||
#if (RM_MODEL == RM_MODEL_TYPE_TB4000)
|
||||
QMenu* captureMenu;
|
||||
bool _reportCH1;
|
||||
void noPlayFileMessage();
|
||||
typedef enum
|
||||
{
|
||||
REQUEST_CAPTURE_FOR_NONE = 0, //
|
||||
REQUEST_CAPTURE_FOR_SAVE, // 저장
|
||||
REQUEST_CAPTURE_FOR_PRINT, // 프린트용
|
||||
REQUEST_CAPTURE_FOR_CONTRAST, // 편집
|
||||
REQUEST_CAPTURE_FOR_REPORT, // TELEBIT REPORT
|
||||
} REQUEST_CAPTURE_FOR;
|
||||
REQUEST_CAPTURE_FOR _reqestCaptureFor;
|
||||
void saveCaptureFile(QList<QString>* list); // 저장 <- 편집 후 호출 할 수도 있음
|
||||
void printCaptureFile(QList<QString>* list);
|
||||
void deleteFiles(QList<QString>* files);
|
||||
#endif
|
||||
#if (PLAYER_ONLY_LIBRARY_MODE)
|
||||
void showEvent(QShowEvent *) override;
|
||||
#endif//
|
||||
|
||||
#if (USE_MAXIMIZE)
|
||||
int mFullScreenMode;
|
||||
//protected:
|
||||
#endif // USE_MAXIMIZE
|
||||
|
||||
#if !(SINGLE_CH_VIEWER)
|
||||
public:
|
||||
bool bSubFullScreen; ///!< 후방 FULLSCREEN
|
||||
|
||||
#if (RM_MODEL == RM_MODEL_TYPE_TB4000 && !PLAYER_ONLY_LIBRARY_MODE)
|
||||
/**
|
||||
* @brief TB5000 윈도우로 이동시 스크린 OFF
|
||||
*/
|
||||
void allVideoOff();
|
||||
#endif // RM_MODEL_TYPE_TB4000 + PLAYER_ONLY_LIBRARY_MODE
|
||||
|
||||
protected:
|
||||
#endif //
|
||||
|
||||
WindowMain(QWidget *parent = 0);
|
||||
|
||||
|
||||
WindowSettings* _settingWindow;
|
||||
#if (DUAL_VIEWER)
|
||||
RMFrameTop* _frameTop;
|
||||
QVBoxLayout* _dualMainLayout; // Dual 모드에서는 상,하단으로 구분되어 하단 영역이 _mainLayout 이 됨
|
||||
QWidget* _bottomMainWidget; // 기존 _mainWidget 을 대신할 하단 Widget
|
||||
#endif
|
||||
|
||||
QHBoxLayout* _mainLayout; // left - right layout
|
||||
RMFrameLeft* _frameLeft; // left widget
|
||||
QVBoxLayout* _layoutLeft; // left layout
|
||||
|
||||
bool _bFirstWindowLoad;
|
||||
|
||||
#if (PLAYER_ONLY_LIBRARY_MODE)
|
||||
onTB5000 _onTB5000;
|
||||
#else // PLAYER_ONLY_LIBRARY_MODE
|
||||
RMFrameRight* _frameRight; // right widget
|
||||
QVBoxLayout* _layoutRight; // right layout
|
||||
|
||||
RMVideoItem* _loadingItem; // current loading item
|
||||
|
||||
#if (USE_RM_KEYBOARD_EVENT)
|
||||
void keyPressEvent(QKeyEvent *event);
|
||||
void keyReleaseEvent(QKeyEvent *event);
|
||||
#endif // USE_RM_KEYBOARD_EVENT
|
||||
|
||||
#if (OPEN_WITH_FILE_EXT)
|
||||
bool openWithFile();
|
||||
#endif // OPEN_WITH_FILE_EXT
|
||||
|
||||
#if !(REMOVE_ALL_SHORT_CUTS)
|
||||
QShortcut* escFullScreenShortcut;
|
||||
QShortcut* toggleFullScreenShortcut;
|
||||
QShortcut* toggleFullScreenShortcut2; // enter key in number keypad
|
||||
// QShortcut* toggleFullScreenShortcut3; // prevent alt+enter
|
||||
#endif // REMOVE_ALL_SHORT_CUTS
|
||||
|
||||
|
||||
|
||||
#if (START_WITH_USB_SD || DETECT_USB_CHANGE)
|
||||
void openUSB();
|
||||
#endif // DETECT_USB_CHANGE
|
||||
|
||||
|
||||
#if (LIVE_LANGUAGE_CHANGE)
|
||||
void showEvent(QShowEvent *ev);
|
||||
#endif
|
||||
|
||||
#if (RM_MODEL == RM_MODEL_TYPE_TB4000)
|
||||
QInputDialog* _inputDialog;
|
||||
#endif
|
||||
#endif // #if !(PLAYER_ONLY_LIBRARY_MODE)
|
||||
#if (FILE_LOAD_MESSAGE) // 파일열기 메시지 전송
|
||||
private:
|
||||
bool nativeEvent(const QByteArray & eventType, void * message, long * result) override;
|
||||
//bool winEvent ( MSG * message, long * result );
|
||||
#endif // #if (FILE_LOAD_MESSAGE) // 파일열기 메시지 전송
|
||||
|
||||
public slots:
|
||||
void onCloseApplication();
|
||||
#if (USE_DEVICE_SETTINGS)
|
||||
void onShowSettings();
|
||||
void onCloseSettings();
|
||||
#endif
|
||||
#if !(PLAYER_ONLY_LIBRARY_MODE)
|
||||
void onShowInfo();
|
||||
#endif // PLAYER_ONLY_LIBRARY_MODE
|
||||
void onMinimize();
|
||||
void onFullScreen();
|
||||
#if !(SINGLE_CH_VIEWER)
|
||||
void onFullScreenSub();
|
||||
#endif // #if !(SINGLE_CH_VIEWER)
|
||||
|
||||
#if (USE_MAXIMIZE)
|
||||
void onMaximize();
|
||||
#endif
|
||||
|
||||
void onLoadingListStart(bool bLoading);
|
||||
void onLoadingListEnd(bool bLoading,RMVideoItem*);
|
||||
void onLoadingListEndUI();
|
||||
#if !(DO_NOT_USE_REPORT)
|
||||
void onStartReport();
|
||||
#endif
|
||||
void onStartCapture();
|
||||
void onRequestVideoCaptureDone(QList<QString>* fileList);
|
||||
|
||||
#if !(PLAYER_ONLY_LIBRARY_MODE)
|
||||
#if !(REMOVE_OLD_C)
|
||||
void onOpenPopup();
|
||||
#endif
|
||||
#endif // !PLAYER_ONLY_LIBRARY_MODE
|
||||
|
||||
#if (DUAL_VIEWER)
|
||||
void onDualViewMode();
|
||||
#endif
|
||||
#if !(DO_NOT_USE_MAP)
|
||||
void onMap();
|
||||
#endif // #if !(DO_NOT_USE_MAP)
|
||||
|
||||
#if (!PLAYER_ONLY_LIBRARY_MODE)
|
||||
void onNext();
|
||||
void onPrevious();
|
||||
#endif // !PLAYER_ONLY_LIBRARY_MODE
|
||||
|
||||
#if (RM_MODEL == RM_MODEL_TYPE_TB4000 && !PLAYER_ONLY_LIBRARY_MODE)
|
||||
void onPassword();
|
||||
void onReportMenu();
|
||||
void onSaveFile();
|
||||
void onSaveVideoFile();
|
||||
void onPrintFile();
|
||||
void onReportFile();
|
||||
void onReportFileCH1();
|
||||
void onReportFileCH2();
|
||||
void onReportFileCHAuto();
|
||||
void onSaveReportFile(QString locationString,QList<QString>* list);
|
||||
#endif // #if (RM_MODEL == RM_MODEL_TYPE_TB4000)
|
||||
|
||||
#if ((TOGGLE_PLAYER || FIXED_MAP_FRAME) && !DO_NOT_USE_MAP) //
|
||||
void onWindowMove();
|
||||
#if (TOGGLE_PLAYER && !DO_NOT_USE_MAP)
|
||||
void onSnapMap();
|
||||
#endif // TOGGLE_PLAYER
|
||||
#endif // TOGGLE_PLAYER + FIXED_MAP_FRAME
|
||||
|
||||
#if (SPLIT_MULTI_TRACK_VIDEO)
|
||||
void onEditVideoDone(int);
|
||||
#endif // SPLIT_MULTI_TRACK_VIDEO
|
||||
|
||||
#if (SUPPORT_AVI_SPLIT || SPLIT_MULTI_TRACK_VIDEO)
|
||||
//! \brief 영상 분할 저장
|
||||
void onSplitVideo();
|
||||
#endif // SPLIT_MULTI_TRACK_VIDEO
|
||||
#if (FE_LOG_VERSION)
|
||||
void onLogDialog();
|
||||
#endif // #if (FE_LOG_VERSION)
|
||||
|
||||
void onPlayEvent(PLAY_EVENT,RMVideoItem*);
|
||||
|
||||
#if (DETECT_USB_CHANGE)
|
||||
void onUSBChange(bool inserted, QString& drive);
|
||||
#endif // #if (DETECT_USB_CHANGE)
|
||||
|
||||
#if !(PLAYER_ONLY_LIBRARY_MODE)
|
||||
void onLoadEnd();
|
||||
#endif // PLAYER_ONLY_LIBRARY_MODE
|
||||
|
||||
#if (OPEN_WITH_FILE_EXT)
|
||||
void onPlayFirstFile();
|
||||
#endif // OPEN_WITH_FILE_EXT
|
||||
|
||||
#if (RM_MODEL_EMT_KR)
|
||||
void onWrongSDCard();
|
||||
#endif // @RM_MODEL_EMT_KR
|
||||
|
||||
|
||||
signals:
|
||||
#if (RM_MODEL_EMT_KR)
|
||||
void usbRemoved();
|
||||
#endif // #if (RM_MODEL_EMT_KR)
|
||||
};
|
||||
|
||||
#if (SUPPORT_LIBRARY_MODE)
|
||||
#include "../core/rm_player.h"
|
||||
|
||||
// CALLBACK
|
||||
// 0:EXIT
|
||||
// 1: PLAY PREVIOUS
|
||||
// 2: PLAY NEXT
|
||||
typedef void (*onTB5000)(int);
|
||||
|
||||
// 외부에서 창을 생성하는 팩토리 함수
|
||||
extern "C" QMainWindow* createTB5000Window(QWidget* parent,
|
||||
RMSettings* settings,
|
||||
//RMPlayer** player360,
|
||||
RMVideoItem* playItem,
|
||||
RMVideoFileList* fileList,
|
||||
onTB5000 callback);
|
||||
// 다음파일 넘어갈때 재생
|
||||
extern "C" void playTB5000(RMVideoItem* playItem);
|
||||
|
||||
|
||||
|
||||
#endif // SUPPORT_LIBRARY_MODE)
|
||||
|
||||
#endif // WINDOW_MAIN_H
|
||||
Reference in New Issue
Block a user