Files
fmviewer3/project/fm_viewer/ui/rm_frame_list.h
2026-02-21 17:11:31 +09:00

149 lines
3.5 KiB
C++

#ifndef RM_FRAME_LIST_H
#define RM_FRAME_LIST_H
#include "../rm_include.h"
#include "rm_widget_base.h"
#include <QShortcut>
class FMButton;
class QComboBox;
class RMWidgetVideoList;
extern int g_type_button_colors[];
extern int g_type_button_colors2[];
#if (RM_MODEL == RM_MODEL_TYPE_TB4000 && USE_DATE_FILTER)
class FMDatePicker;
#endif
class RMFrameList : public RMWidgetBase
{
Q_OBJECT
public:
static RMFrameList* getInstance() {
return _instance;
}
static RMFrameList* instance(QWidget* parent = nullptr);
#if !(RECORD_TYPE_COMBO_UI)
#if (RM_MODEL != RM_MODEL_TYPE_TB4000)
QList<FMButton*> buttons;
FMButton* normalButton;
FMButton* eventButton;
#if (RM_MODEL == RM_MODEL_TYPE_XLDR_88)
FMButton* allButton;
FMButton* parkButton;
#elif (RM_MODEL == RM_MODEL_TYPE_TBD360)
FMButton* parkButton;
#else
FMButton* allButton;
#endif
#endif // RM_MODEL_TYPE_TB4000
#if !(SUB_MODEL_KEIYO_360)
#if (RM_MODEL == RM_MODEL_TYPE_KEIYO1 || RM_MODEL == RM_MODEL_TYPE_MBJ5010 || RM_MODEL == RM_MODEL_TYPE_FC_DR232W || RM_MODEL == RM_MODEL_TYPE_BV2000 || RM_MODEL == RM_MODEL_TYPE_MH9000 || RM_MODEL_TYPE_EMT_KR)
FMButton* parkButton;
//#if (RM_MODEL != RM_MODEL_TYPE_MH9000)
FMButton* manualButton;
//#endif // NO MANUAL
#endif // MODELS
#endif // SUB_MODEL_KEIYO_360
#else
QComboBox* typeCombo;
#endif // #if !(RECORD_TYPE_COMBO_UI)
RMWidgetVideoList* listWidget;
#if (RM_MODEL != RM_MODEL_TYPE_TB4000)
FMButton* backupButton;
#endif // TB4000
#if (RM_MODEL == RM_MODEL_TYPE_TB4000)
#if (USE_DATE_FILTER)
FMDatePicker* datePicker;
#endif // USE_DATE_FILTER
FMButton* thumbNailButton1; // 1시간
FMButton* thumbNailButton2; // 세부
QLabel* countSimple;
QLabel* countAll;
FMButton* sortButton1;
FMButton* sortButton2;
FMButton* listSimpleButton;
FMButton* listAllButton;
//! \brief 썸네일과 영상이 날짜별로 정렬 되어 있는 폴더인지 확인
//! \param path: 폴더명
//! \return
static bool isRootFolder(QString path);
#endif // RM_MODEL_TYPE_TB4000
void openFolder(QString folderPath);
protected:
static RMFrameList* _instance;
explicit RMFrameList(QWidget *parent = nullptr);
QVBoxLayout* layout;
void createTitle();
#if (RM_MODEL == RM_MODEL_TYPE_TB4000)
void createDatePicker();
#elif (RM_MODEL != RM_MODEL_TYPE_AN6000)
void createTypeButtons();
#endif // RM_MODEL_TYPE_TB4000
#if !(REMOVE_ALL_SHORT_CUTS)
QShortcut* backupShortCut;
#endif
#if (LIVE_LANGUAGE_CHANGE && MODEL_STANDARD)
void refreshLanguage();
#endif
#if !(DUAL_VIEWER)
QLabel* _titleLabel;
#endif
public slots:
#if (RECORD_TYPE_COMBO_UI)
void onToggleGroup(int selected);
#else // RECORD_TYPE_COMBO_UI
#if (RM_MODEL == RM_MODEL_TYPE_TB4000)
void onAllList();
#else
void onToggleGroup();
#endif // RM_MODEL_TYPE_TB4000
#endif // #if !(RECORD_TYPE_COMBO_UI)
void onOpen();
void onBackup();
void onListUpdate(bool bLoading,RMVideoItem* item);
#if !(SINGLE_SAVE_FILE)
void onItemChecked(bool bSelected);
#endif
void onBackupStarted();
void onBackupEnded();
void onBackupPaused(bool bPaused);
#if (LIVE_LANGUAGE_CHANGE && MODEL_STANDARD)
void onLanguageChange(RMLanguage::LANGUAGE_TYPE language);
#endif
#if (RM_MODEL == RM_MODEL_TYPE_TB4000)
void onThumbnail();
void onTypeOrSort();
//! \brief 외부에서 타입 변경
//! \param bSimple
void onTypeChanged();
#endif
#if (USE_VERSION_CHECK)
void onStartVersionCheck();
#endif
};
#endif // RM_CONTROL_LIST_H