fractorium/Source/Fractorium/OptionsDialog.h

70 lines
1.7 KiB
C
Raw Normal View History

#pragma once
#include "ui_OptionsDialog.h"
#include "FractoriumSettings.h"
#include "SpinBox.h"
/// <summary>
/// FractoriumOptionsDialog class.
/// </summary>
class Fractorium;//Forward declaration since Fractorium uses this dialog.
/// <summary>
/// The options dialog allows the user to save various preferences
/// between program runs.
/// It has a pointer to a FractoriumSettings object which is assigned
/// in the constructor. The main window holds the object as a member and the
/// pointer to it here is just for convenience.
/// </summary>
class FractoriumOptionsDialog : public QDialog
{
Q_OBJECT
friend Fractorium;
public:
FractoriumOptionsDialog(QWidget* p = nullptr, Qt::WindowFlags f = Qt::WindowType::Widget);
bool EarlyClip();
bool YAxisUp();
bool Transparency();
bool ContinuousUpdate();
bool OpenCL();
bool SharedTexture();
bool Double();
bool ShowAllXforms();
bool ToggleType();
bool Png16Bit();
bool AutoUnique();
bool LoadLast();
bool RotateAndScale();
bool Flam3Compat();
uint ThreadCount();
uint RandomCount();
uint CpuQuality();
uint OpenClQuality();
void DataToGui();
void GuiToData();
public slots:
void OnOpenCLCheckBoxStateChanged(int state);
void OnDeviceTableCellChanged(int row, int col);
void OnDeviceTableRadioToggled(bool checked);
void accept() override;
void reject() override;
protected:
void showEvent(QShowEvent* e) override;
private:
Ui::OptionsDialog ui;
shared_ptr<OpenCLInfo> m_Info;
SpinBox* m_XmlTemporalSamplesSpin;
SpinBox* m_XmlQualitySpin;
SpinBox* m_XmlSupersampleSpin;
QLineEdit* m_IdEdit;
QLineEdit* m_UrlEdit;
QLineEdit* m_NickEdit;
shared_ptr<FractoriumSettings> m_Settings;
};