0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-20 13:08:50 +02:00
obs-studio/obs/window-basic-settings.hpp
jp9000 a5372e9757 Finish the rest of the settings dialog code
- Move over the last of the original settings dialog code to QT.  It was
  actually a bit easier to write in the QT version.  wxWidgets was
  definitely not ideal for that because the pages would fully
  create/destroy every time.

- [Win32] Fix os_dlopen so that it only appends .dll if not present

- [MacOS] Fix name dialog text edit widget issue (it would be better if
  we could just use the list widget for editing labels, will have to
  look in to that in the future)

- Tweak the settings UI a bit more and make 30 FPS default

- Add a macro to convert a QString to a UTF-8 const char * string

- Rename build/plugins to build/obs-plugins

- Remove the last of the wxWidgets code
2014-01-26 15:36:15 -07:00

95 lines
2.4 KiB
C++

/******************************************************************************
Copyright (C) 2013 by Hugh Bailey <obs.jim@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
******************************************************************************/
#pragma once
#include <util/util.hpp>
#include <QDialog>
#include <memory>
class QAbstractButton;
#include "ui_OBSBasicSettings.h"
class OBSBasicSettings : public QDialog {
Q_OBJECT
private:
std::unique_ptr<Ui::OBSBasicSettings> ui;
ConfigFile localeIni;
bool generalChanged;
bool outputsChanged;
bool audioChanged;
bool videoChanged;
int pageIndex;
bool loading;
inline bool Changed() const
{
return generalChanged || outputsChanged || audioChanged ||
videoChanged;
}
inline void ClearChanged()
{
generalChanged = false;
outputsChanged = false;
audioChanged = false;
videoChanged = false;
}
bool QueryChanges();
void LoadGeneralSettings();
//void LoadOutputSettings();
//void LoadAudioSettings();
void LoadVideoSettings();
/* general */
void LoadLanguageList();
/* video */
void LoadRendererList();
void ResetDownscales(uint32_t cx, uint32_t cy);
void LoadResolutionLists();
void LoadFPSData();
void LoadSettings(bool changedOnly);
void SaveGeneralSettings();
//void SaveOutputSettings();
//void SaveAudioSettings();
void SaveVideoSettings();
void SaveSettings();
private slots:
void on_listWidget_itemSelectionChanged();
void on_buttonBox_clicked(QAbstractButton *button);
void on_language_currentIndexChanged(int index);
void on_renderer_currentIndexChanged(int index);
void on_fpsType_currentIndexChanged(int index);
void on_baseResolution_editTextChanged(const QString &text);
void on_outputResolution_editTextChanged(const QString &text);
protected:
virtual void closeEvent(QCloseEvent *event);
public:
OBSBasicSettings(QWidget *parent);
};