// Copyright 2018 Dolphin Emulator Project // Licensed under GPLv2+ // Refer to the license.txt file included. #pragma once #include #include #include #include #include #include "Common/CommonTypes.h" class GCMemcard; class GCMemcardErrorCode; class QDialogButtonBox; class QGroupBox; class QLabel; class QLineEdit; class QPixmap; class QPushButton; class QString; class QTableWidget; class QTimer; class GCMemcardManager : public QDialog { Q_OBJECT public: explicit GCMemcardManager(QWidget* parent = nullptr); ~GCMemcardManager(); static QString GetErrorMessagesForErrorCode(const GCMemcardErrorCode& code); private: struct IconAnimationData; void CreateWidgets(); void ConnectWidgets(); void LoadDefaultMemcards(); void UpdateActions(); void UpdateSlotTable(int slot); void SetSlotFile(int slot, QString path); void SetSlotFileInteractive(int slot); void SetActiveSlot(int slot); void CopyFiles(); void ImportFile(); void DeleteFiles(); void ExportFiles(bool prompt); void ExportAllFiles(); void FixChecksums(); void CreateNewCard(int slot); void DrawIcons(); QPixmap GetBannerFromSaveFile(int file_index, int slot); IconAnimationData GetIconFromSaveFile(int file_index, int slot); // Actions QPushButton* m_select_button; QPushButton* m_copy_button; QPushButton* m_export_button; QPushButton* m_export_all_button; QPushButton* m_import_button; QPushButton* m_delete_button; QPushButton* m_fix_checksums_button; // Slots static constexpr int SLOT_COUNT = 2; std::array, SLOT_COUNT> m_slot_active_icons; std::array, SLOT_COUNT> m_slot_memcard; std::array m_slot_group; std::array m_slot_file_edit; std::array m_slot_open_button; std::array m_slot_create_button; std::array m_slot_table; std::array m_slot_stat_label; int m_active_slot; u64 m_current_frame = 0; QDialogButtonBox* m_button_box; QTimer* m_timer; };