mirror of
https://github.com/RetroDECK/Duckstation.git
synced 2024-10-23 23:55:42 +00:00
64 lines
1.5 KiB
C
64 lines
1.5 KiB
C
|
#pragma once
|
||
|
#include "core/memory_card_image.h"
|
||
|
#include "ui_memorycardeditordialog.h"
|
||
|
#include <QtWidgets/QComboBox>
|
||
|
#include <QtWidgets/QDialog>
|
||
|
#include <QtWidgets/QLabel>
|
||
|
#include <QtWidgets/QPushButton>
|
||
|
#include <QtWidgets/QTableWidget>
|
||
|
|
||
|
class MemoryCardEditorDialog : public QDialog
|
||
|
{
|
||
|
Q_OBJECT
|
||
|
|
||
|
public:
|
||
|
MemoryCardEditorDialog(QWidget* parent);
|
||
|
~MemoryCardEditorDialog();
|
||
|
|
||
|
protected:
|
||
|
void resizeEvent(QResizeEvent* ev);
|
||
|
void closeEvent(QCloseEvent* ev);
|
||
|
|
||
|
private Q_SLOTS:
|
||
|
void onCardASelectionChanged();
|
||
|
void onCardBSelectionChanged();
|
||
|
void doCopyFile();
|
||
|
void doDeleteFile();
|
||
|
|
||
|
private:
|
||
|
struct Card
|
||
|
{
|
||
|
std::string filename;
|
||
|
MemoryCardImage::DataArray data;
|
||
|
std::vector<MemoryCardImage::FileInfo> files;
|
||
|
u32 blocks_free = 0;
|
||
|
bool dirty = false;
|
||
|
|
||
|
QComboBox* path_cb = nullptr;
|
||
|
QTableWidget* table = nullptr;
|
||
|
QLabel* blocks_free_label = nullptr;
|
||
|
QPushButton* save_button = nullptr;
|
||
|
};
|
||
|
|
||
|
void connectUi();
|
||
|
void populateComboBox(QComboBox* cb);
|
||
|
void clearSelection();
|
||
|
void loadCardFromComboBox(Card* card, int index);
|
||
|
bool loadCard(const QString& filename, Card* card);
|
||
|
void updateCardTable(Card* card);
|
||
|
void updateCardBlocksFree(Card* card);
|
||
|
void setCardDirty(Card* card);
|
||
|
void newCard(Card* card);
|
||
|
void saveCard(Card* card);
|
||
|
void promptForSave(Card* card);
|
||
|
void importCard(Card* card);
|
||
|
|
||
|
std::tuple<Card*, const MemoryCardImage::FileInfo*> getSelectedFile();
|
||
|
void updateButtonState();
|
||
|
|
||
|
Ui::MemoryCardEditorDialog m_ui;
|
||
|
|
||
|
Card m_card_a;
|
||
|
Card m_card_b;
|
||
|
};
|