mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-09-20 04:42:18 +02:00
UI: Clean up Projector Creation
The Init function were only called on projector creation so this isn't needed to be on a separate function. Its clearer to read the code.
This commit is contained in:
parent
22a1887340
commit
32ee7ee4e2
@ -5672,7 +5672,6 @@ OBSProjector *OBSBasic::OpenProjector(obs_source_t *source, int monitor,
|
||||
projectors[monitor] = projector;
|
||||
}
|
||||
|
||||
projector->Init();
|
||||
return projector;
|
||||
}
|
||||
|
||||
|
@ -22,16 +22,30 @@ OBSProjector::OBSProjector(QWidget *widget, obs_source_t *source_, int monitor,
|
||||
removedSignal (obs_source_get_signal_handler(source),
|
||||
"remove", OBSSourceRemoved, this)
|
||||
{
|
||||
projectorTitle = title;
|
||||
projectorTitle = std::move(title);
|
||||
savedMonitor = monitor;
|
||||
isWindow = savedMonitor < 0;
|
||||
type = type_;
|
||||
|
||||
if (isWindow) {
|
||||
setWindowIcon(QIcon(":/res/images/obs.png"));
|
||||
|
||||
UpdateProjectorTitle(projectorTitle);
|
||||
windowedProjectors.push_back(this);
|
||||
|
||||
resize(480, 270);
|
||||
} else {
|
||||
setWindowFlags(Qt::FramelessWindowHint |
|
||||
Qt::X11BypassWindowManagerHint);
|
||||
|
||||
QScreen *screen = QGuiApplication::screens()[savedMonitor];
|
||||
setGeometry(screen->geometry());
|
||||
|
||||
QAction *action = new QAction(this);
|
||||
action->setShortcut(Qt::Key_Escape);
|
||||
addAction(action);
|
||||
connect(action, SIGNAL(triggered()), this,
|
||||
SLOT(EscapeTriggered()));
|
||||
}
|
||||
|
||||
setAttribute(Qt::WA_DeleteOnClose, true);
|
||||
@ -52,6 +66,11 @@ OBSProjector::OBSProjector(QWidget *widget, obs_source_t *source_, int monitor,
|
||||
|
||||
connect(this, &OBSQTDisplay::DisplayCreated, addDrawCallback);
|
||||
|
||||
bool alwaysOnTop = config_get_bool(GetGlobalConfig(), "BasicWindow",
|
||||
"ProjectorAlwaysOnTop");
|
||||
if (alwaysOnTop && !isWindow)
|
||||
SetAlwaysOnTop(this, true);
|
||||
|
||||
bool hideCursor = config_get_bool(GetGlobalConfig(),
|
||||
"BasicWindow", "HideProjectorCursor");
|
||||
if (hideCursor && !isWindow) {
|
||||
@ -110,7 +129,17 @@ OBSProjector::OBSProjector(QWidget *widget, obs_source_t *source_, int monitor,
|
||||
}
|
||||
|
||||
App()->IncrementSleepInhibition();
|
||||
resize(480, 270);
|
||||
|
||||
if (source)
|
||||
obs_source_inc_showing(source);
|
||||
|
||||
ready = true;
|
||||
|
||||
show();
|
||||
|
||||
// We need it here to allow keyboard input in X11 to listen to Escape
|
||||
if (!isWindow)
|
||||
activateWindow();
|
||||
}
|
||||
|
||||
OBSProjector::~OBSProjector()
|
||||
@ -189,36 +218,6 @@ static OBSSource CreateLabel(const char *name, size_t h)
|
||||
return txtSource;
|
||||
}
|
||||
|
||||
void OBSProjector::Init()
|
||||
{
|
||||
bool alwaysOnTop = config_get_bool(GetGlobalConfig(),
|
||||
"BasicWindow", "ProjectorAlwaysOnTop");
|
||||
if (alwaysOnTop && !isWindow)
|
||||
SetAlwaysOnTop(this, true);
|
||||
|
||||
show();
|
||||
|
||||
if (isWindow) {
|
||||
UpdateProjectorTitle(projectorTitle);
|
||||
windowedProjectors.push_back(this);
|
||||
} else {
|
||||
QScreen *screen = QGuiApplication::screens()[savedMonitor];
|
||||
setGeometry(screen->geometry());
|
||||
|
||||
QAction *action = new QAction(this);
|
||||
action->setShortcut(Qt::Key_Escape);
|
||||
addAction(action);
|
||||
connect(action, SIGNAL(triggered()), this,
|
||||
SLOT(EscapeTriggered()));
|
||||
activateWindow();
|
||||
}
|
||||
|
||||
if (source)
|
||||
obs_source_inc_showing(source);
|
||||
|
||||
ready = true;
|
||||
}
|
||||
|
||||
static inline void renderVB(gs_effect_t *effect, gs_vertbuffer_t *vb,
|
||||
int cx, int cy)
|
||||
{
|
||||
|
@ -67,8 +67,6 @@ public:
|
||||
QString title, ProjectorType type_);
|
||||
~OBSProjector();
|
||||
|
||||
void Init();
|
||||
|
||||
OBSSource GetSource();
|
||||
ProjectorType GetProjectorType();
|
||||
int GetMonitor();
|
||||
|
Loading…
Reference in New Issue
Block a user