Files
86Box/src/qt/qt_harddiskdialog.hpp

68 lines
1.7 KiB
C++
Raw Normal View History

2021-11-25 10:20:56 +01:00
#ifndef QT_HARDDISKDIALOG_HPP
#define QT_HARDDISKDIALOG_HPP
#include <QDialog>
namespace Ui {
class HarddiskDialog;
}
2022-11-19 08:49:04 -05:00
class HarddiskDialog : public QDialog {
2021-11-25 10:20:56 +01:00
Q_OBJECT
public:
explicit HarddiskDialog(bool existing, QWidget *parent = nullptr);
~HarddiskDialog();
2022-11-19 08:49:04 -05:00
uint8_t bus() const;
uint8_t channel() const;
QString fileName() const;
2021-11-25 10:20:56 +01:00
uint32_t cylinders() const { return cylinders_; }
uint32_t heads() const { return heads_; }
uint32_t sectors() const { return sectors_; }
uint32_t speed() const;
2021-11-25 10:20:56 +01:00
signals:
void fileProgress(int i);
public slots:
void accept() override;
2021-11-25 10:20:56 +01:00
private slots:
void on_comboBoxType_currentIndexChanged(int index);
void on_lineEditSectors_textEdited(const QString &arg1);
void on_lineEditHeads_textEdited(const QString &arg1);
void on_lineEditCylinders_textEdited(const QString &arg1);
void on_lineEditSize_textEdited(const QString &arg1);
void on_comboBoxBus_currentIndexChanged(int index);
void on_comboBoxFormat_currentIndexChanged(int index);
void onCreateNewFile();
void onExistingFileSelected(const QString &fileName, bool precheck);
2022-11-19 08:49:04 -05:00
2021-11-25 10:20:56 +01:00
private:
Ui::HarddiskDialog *ui;
uint32_t cylinders_;
uint32_t heads_;
uint32_t sectors_;
2022-11-19 08:49:04 -05:00
uint32_t max_sectors = 0;
uint32_t max_heads = 0;
2021-11-25 10:20:56 +01:00
uint32_t max_cylinders = 0;
2022-11-19 08:49:04 -05:00
bool disallowSizeModifications = false;
2021-11-25 10:20:56 +01:00
QStringList filters;
// "Dynamic-size VHD" is number 4 in the `filters` list and the
// comboBoxFormat model
const uint8_t DEFAULT_DISK_FORMAT = 4;
2021-11-25 10:20:56 +01:00
bool checkAndAdjustCylinders();
bool checkAndAdjustHeads();
bool checkAndAdjustSectors();
void recalcSize();
void recalcSelection();
};
#endif // QT_HARDDISKDIALOG_HPP