mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-09-24 23:31:36 +08:00
add in code for OK/Cancel/Apply buttons in basic settings window
This commit is contained in:
@@ -34,7 +34,7 @@ Settings.Outputs="Outputs"
|
||||
Settings.Video="Video"
|
||||
Settings.Video.Adapter="Video Adapter:"
|
||||
Settings.Video.BaseRes="Base Resolution:"
|
||||
Settings.Video.DownscaleRes="Output Resolution:"
|
||||
Settings.Video.OutputRes="Output Resolution:"
|
||||
Settings.Video.DownscaleFilter="Downscale Filter:"
|
||||
Settings.Video.DisableAeroWindows="Disable Aero (Windows only)"
|
||||
Settings.Video.FPS="FPS:"
|
||||
@@ -44,6 +44,7 @@ Settings.VIdeo.FPS.Fraction="Frame Interval (fraction)"
|
||||
Settings.Video.FPS.Nanoseconds="Frame Interval (nanoseconds)"
|
||||
Settings.Video.FPS.Numerator="Numerator:"
|
||||
Settings.Video.FPS.Denominator="Denominator:"
|
||||
Settings.Video.Renderer="Renderer:"
|
||||
Settings.Video.InvalidResolution="Invalid base resolution value. Must be [width]x[height] (i.e. 1920x1080)"
|
||||
|
||||
Settings.Audio="Audio"
|
||||
|
||||
@@ -344,7 +344,6 @@ void BasicVideoData::SaveFPSData()
|
||||
}
|
||||
|
||||
config_set_string(GetGlobalConfig(), "Video", "FPSType", type);
|
||||
SaveOther();
|
||||
SaveFPSCommon();
|
||||
SaveFPSInteger();
|
||||
SaveFPSFraction();
|
||||
@@ -396,6 +395,7 @@ void BasicVideoData::Apply()
|
||||
config_set_uint(GetGlobalConfig(), "Video", "OutputCY", cy);
|
||||
}
|
||||
|
||||
SaveOther();
|
||||
SaveFPSData();
|
||||
}
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
******************************************************************************/
|
||||
|
||||
#include <wx/msgdlg.h>
|
||||
#include "window-settings-basic.hpp"
|
||||
|
||||
OBSBasicSettings::OBSBasicSettings(wxWindow *parent)
|
||||
@@ -46,14 +47,54 @@ void OBSBasicSettings::PageChanged(wxListbookEvent &event)
|
||||
settings = move(unique_ptr<BasicSettingsData>(ptr));
|
||||
}
|
||||
|
||||
bool OBSBasicSettings::ConfirmChanges()
|
||||
{
|
||||
if (settings && settings->DataChanged()) {
|
||||
int confirm = wxMessageBox(WXStr("Settings.Confirm"),
|
||||
WXStr("Settings.ConfirmTitle"),
|
||||
wxYES_NO | wxCANCEL);
|
||||
|
||||
if (confirm == wxCANCEL) {
|
||||
return false;
|
||||
} else if (confirm == wxYES) {
|
||||
settings->Apply();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void OBSBasicSettings::PageChanging(wxListbookEvent &event)
|
||||
{
|
||||
if (!ConfirmChanges())
|
||||
event.Veto();
|
||||
}
|
||||
|
||||
void OBSBasicSettings::OnClose(wxCloseEvent &event)
|
||||
{
|
||||
if(IsModal())
|
||||
EndModal(0);
|
||||
if (!ConfirmChanges())
|
||||
event.Veto();
|
||||
else
|
||||
Destroy();
|
||||
EndModal(0);
|
||||
}
|
||||
|
||||
void OBSBasicSettings::OKClicked(wxCommandEvent &event)
|
||||
{
|
||||
if (settings)
|
||||
settings->Apply();
|
||||
|
||||
EndModal(0);
|
||||
}
|
||||
|
||||
void OBSBasicSettings::CancelClicked(wxCommandEvent &event)
|
||||
{
|
||||
if (ConfirmChanges())
|
||||
EndModal(0);
|
||||
}
|
||||
|
||||
void OBSBasicSettings::ApplyClicked(wxCommandEvent &event)
|
||||
{
|
||||
if (settings)
|
||||
settings->Apply();
|
||||
}
|
||||
|
||||
@@ -31,6 +31,12 @@ protected:
|
||||
virtual void PageChanging(wxListbookEvent &event);
|
||||
virtual void OnClose(wxCloseEvent &event);
|
||||
|
||||
bool ConfirmChanges();
|
||||
|
||||
virtual void OKClicked(wxCommandEvent &event);
|
||||
virtual void CancelClicked(wxCommandEvent &event);
|
||||
virtual void ApplyClicked(wxCommandEvent &event);
|
||||
|
||||
public:
|
||||
OBSBasicSettings(wxWindow *parent);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user