UI: Add OBSSourceLabel
This commit is contained in:
parent
b33be9fca6
commit
369d95dfc3
@ -118,6 +118,7 @@ set(obs_SOURCES
|
||||
source-list-widget.cpp
|
||||
crash-report.cpp
|
||||
hotkey-edit.cpp
|
||||
source-label.cpp
|
||||
qt-wrappers.cpp)
|
||||
|
||||
set(obs_HEADERS
|
||||
@ -155,6 +156,7 @@ set(obs_HEADERS
|
||||
qt-display.hpp
|
||||
crash-report.hpp
|
||||
hotkey-edit.hpp
|
||||
source-label.hpp
|
||||
qt-wrappers.hpp)
|
||||
|
||||
set(obs_UI
|
||||
|
44
obs/source-label.cpp
Normal file
44
obs/source-label.cpp
Normal file
@ -0,0 +1,44 @@
|
||||
/******************************************************************************
|
||||
Copyright (C) 2015 by Ruwen Hahn <palana@stunned.de>
|
||||
|
||||
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/>.
|
||||
******************************************************************************/
|
||||
|
||||
#include "source-label.hpp"
|
||||
|
||||
void OBSSourceLabel::SourceRenamed(void *data, calldata_t *params)
|
||||
{
|
||||
auto &label = *static_cast<OBSSourceLabel*>(data);
|
||||
|
||||
const char *name = calldata_string(params, "new_name");
|
||||
label.setText(name);
|
||||
|
||||
emit label.Renamed(name);
|
||||
}
|
||||
|
||||
void OBSSourceLabel::SourceRemoved(void *data, calldata_t *)
|
||||
{
|
||||
auto &label = *static_cast<OBSSourceLabel*>(data);
|
||||
emit label.Removed();
|
||||
}
|
||||
|
||||
void OBSSourceLabel::SourceDestroyed(void *data, calldata_t *)
|
||||
{
|
||||
auto &label = *static_cast<OBSSourceLabel*>(data);
|
||||
emit label.Destroyed();
|
||||
|
||||
label.destroyedSignal.Disconnect();
|
||||
label.removedSignal.Disconnect();
|
||||
label.renamedSignal.Disconnect();
|
||||
}
|
50
obs/source-label.hpp
Normal file
50
obs/source-label.hpp
Normal file
@ -0,0 +1,50 @@
|
||||
/******************************************************************************
|
||||
Copyright (C) 2015 by Ruwen Hahn <palana@stunned.de>
|
||||
|
||||
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/>.
|
||||
******************************************************************************/
|
||||
|
||||
#include <QLabel>
|
||||
#include <obs.hpp>
|
||||
|
||||
class OBSSourceLabel : public QLabel {
|
||||
Q_OBJECT;
|
||||
|
||||
public:
|
||||
OBSSignal renamedSignal;
|
||||
OBSSignal removedSignal;
|
||||
OBSSignal destroyedSignal;
|
||||
|
||||
OBSSourceLabel(const obs_source_t *source, QWidget *parent=nullptr,
|
||||
Qt::WindowFlags f=0)
|
||||
: QLabel(obs_source_get_name(source), parent, f),
|
||||
renamedSignal(obs_source_get_signal_handler(source), "rename",
|
||||
&OBSSourceLabel::SourceRenamed, this),
|
||||
removedSignal(obs_source_get_signal_handler(source), "remove",
|
||||
&OBSSourceLabel::SourceRemoved, this),
|
||||
destroyedSignal(obs_source_get_signal_handler(source),
|
||||
"destroy", &OBSSourceLabel::SourceDestroyed,
|
||||
this)
|
||||
{}
|
||||
|
||||
protected:
|
||||
static void SourceRenamed(void *data, calldata_t *params);
|
||||
static void SourceRemoved(void *data, calldata_t *params);
|
||||
static void SourceDestroyed(void *data, calldata_t *params);
|
||||
|
||||
signals:
|
||||
void Renamed(const char *name);
|
||||
void Removed();
|
||||
void Destroyed();
|
||||
};
|
Loading…
x
Reference in New Issue
Block a user