New upstream version 25.0.8+dfsg1
|
|
@ -52,8 +52,8 @@ Untitled="Untitled"
|
|||
New="New"
|
||||
Duplicate="Duplicate"
|
||||
Enable="Enable"
|
||||
DisableOSXVSync="Disable OSX V-Sync"
|
||||
ResetOSXVSyncOnExit="Reset OSX V-Sync on Exit"
|
||||
DisableOSXVSync="Disable macOS V-Sync"
|
||||
ResetOSXVSyncOnExit="Reset macOS V-Sync on Exit"
|
||||
HighResourceUsage="Encoding overloaded! Consider turning down video settings or using a faster encoding preset."
|
||||
Transition="Transition"
|
||||
QuickTransitions="Quick Transitions"
|
||||
|
|
@ -324,8 +324,6 @@ Output.RecordNoSpace.Msg="There is not sufficient disk space to continue recordi
|
|||
Output.RecordError.Title="Recording error"
|
||||
Output.RecordError.Msg="An unspecified error occurred while recording."
|
||||
Output.RecordError.EncodeErrorMsg="An encoder error occurred while recording."
|
||||
Output.ReplayBuffer.NoHotkey.Title="No hotkey set!"
|
||||
Output.ReplayBuffer.NoHotkey.Msg="No save hotkey set for replay buffer. Please set the \"Save\" hotkey to use for saving replay recordings."
|
||||
|
||||
# output recording messages
|
||||
Output.BadPath.Title="Bad File Path"
|
||||
|
|
@ -715,7 +713,6 @@ Basic.Settings.Output.ReplayBuffer.SecondsMax="Maximum Replay Time"
|
|||
Basic.Settings.Output.ReplayBuffer.MegabytesMax="Maximum Memory (Megabytes)"
|
||||
Basic.Settings.Output.ReplayBuffer.Estimate="Estimated memory usage: %1 MB"
|
||||
Basic.Settings.Output.ReplayBuffer.EstimateUnknown="Cannot estimate memory usage. Please set maximum memory limit."
|
||||
Basic.Settings.Output.ReplayBuffer.HotkeyMessage="(Note: Make sure to set a hotkey for the replay buffer in the hotkeys section)"
|
||||
Basic.Settings.Output.ReplayBuffer.Prefix="Replay Buffer Filename Prefix"
|
||||
Basic.Settings.Output.ReplayBuffer.Suffix="Suffix"
|
||||
Basic.Settings.Output.Simple.SavePath="Recording Path"
|
||||
|
|
|
|||
|
|
@ -154,6 +154,11 @@ QListWidget QLineEdit {
|
|||
}
|
||||
|
||||
/* Dock stuff */
|
||||
QDockWidget {
|
||||
titlebar-close-icon: url('./Dark/Close.svg');
|
||||
titlebar-normal-icon: url('./Dark/Popout.svg');
|
||||
}
|
||||
|
||||
QDockWidget {
|
||||
background: #181819;
|
||||
border: none;
|
||||
|
|
@ -182,6 +187,7 @@ QDockWidget::float-button {
|
|||
subcontrol-position: top right;
|
||||
subcontrol-origin: padding;
|
||||
right: 0px;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
QDockWidget::float-button {
|
||||
|
|
|
|||
|
|
@ -119,6 +119,11 @@ SourceTree QLineEdit {
|
|||
|
||||
/* Dock Widget */
|
||||
|
||||
QDockWidget {
|
||||
titlebar-close-icon: url('./Dark/Close.svg');
|
||||
titlebar-normal-icon: url('./Dark/Popout.svg');
|
||||
}
|
||||
|
||||
QDockWidget::title {
|
||||
text-align: center;
|
||||
background-color: rgb(70,69,70);
|
||||
|
|
|
|||
1
UI/data/themes/Dark/close.svg
Normal file
|
|
@ -0,0 +1 @@
|
|||
<svg class="feather feather-plus" fill="none" stroke="#FFF" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" version="1.1" viewBox="0 0 30 30" xmlns="http://www.w3.org/2000/svg"><line x1="2" x2="28" y1="2" y2="28" /><line x1="2" x2="28" y1="28" y2="2" /></svg>
|
||||
|
After Width: | Height: | Size: 276 B |
1
UI/data/themes/Dark/popout.svg
Normal file
|
|
@ -0,0 +1 @@
|
|||
<svg class="feather feather-plus" fill="none" stroke="#FFF" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" version="1.1" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg"><rect x="2" y="2" width="24" height="20" /><rect x="2" y="2" width="24" height="4" style="fill:#fff" /><rect x="14" y="18" width="24" height="20" /><rect x="14" y="18" width="24" height="4" style="fill:#fff" /></svg>
|
||||
|
After Width: | Height: | Size: 410 B |
|
|
@ -188,6 +188,11 @@ QListWidget::item:hover:!active {
|
|||
/* --- Dock widget --- */
|
||||
/***********************/
|
||||
|
||||
QDockWidget {
|
||||
titlebar-close-icon: url('./Dark/Close.svg');
|
||||
titlebar-normal-icon: url('./Dark/Popout.svg');
|
||||
}
|
||||
|
||||
QDockWidget {
|
||||
background: rgb(49, 54, 59); /* Blue-gray */
|
||||
border: 1px solid rgb(58, 64, 69); /* Light Blue-gray */
|
||||
|
|
|
|||
|
|
@ -38,6 +38,21 @@
|
|||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
|
|
@ -853,19 +868,19 @@
|
|||
<widget class="QWidget" name="transitionsContainer" native="true">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<property name="spacing">
|
||||
<number>4</number>
|
||||
<number>2</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>1</number>
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>1</number>
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>1</number>
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>2</number>
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QComboBox" name="transitions">
|
||||
|
|
|
|||
|
|
@ -958,6 +958,12 @@
|
|||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QStackedWidget" name="serverStackedWidget">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="currentIndex">
|
||||
<number>1</number>
|
||||
</property>
|
||||
|
|
@ -1760,13 +1766,6 @@
|
|||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QLabel" name="label_45">
|
||||
<property name="text">
|
||||
<string>Basic.Settings.Output.ReplayBuffer.HotkeyMessage</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QLabel" name="simpleRBEstimate">
|
||||
<property name="text">
|
||||
<string notr="true"/>
|
||||
|
|
@ -3670,13 +3669,6 @@
|
|||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QLabel" name="advRBHotkeyLabel">
|
||||
<property name="text">
|
||||
<string>Basic.Settings.Output.ReplayBuffer.HotkeyMessage</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QLabel" name="advRBEstimate">
|
||||
<property name="text">
|
||||
<string notr="true"/>
|
||||
|
|
|
|||
37
UI/forms/images/recording-active.svg
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
id="svg8"
|
||||
version="1.1"
|
||||
viewBox="0 0 2.1166666 2.1166667"
|
||||
height="8"
|
||||
width="8">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
transform="translate(0,-294.88332)"
|
||||
id="layer1">
|
||||
<circle
|
||||
r="0.52916664"
|
||||
cy="295.94165"
|
||||
cx="1.0583333"
|
||||
id="path4544"
|
||||
style="fill:#d40000;fill-opacity:1;stroke:none;stroke-width:0.06614584;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
37
UI/forms/images/recording-inactive.svg
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
id="svg8"
|
||||
version="1.1"
|
||||
viewBox="0 0 2.1166666 2.1166667"
|
||||
height="8"
|
||||
width="8">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
transform="translate(0,-294.88332)"
|
||||
id="layer1">
|
||||
<circle
|
||||
r="0.52916664"
|
||||
cy="295.94165"
|
||||
cx="1.0583333"
|
||||
id="path4544"
|
||||
style="fill:#999999;fill-opacity:1;stroke:none;stroke-width:0.06614584;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
45
UI/forms/images/recording-pause-inactive.svg
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
id="svg8"
|
||||
version="1.1"
|
||||
viewBox="0 0 5.2916665 5.2916668"
|
||||
height="20"
|
||||
width="20">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
transform="translate(0,-291.70832)"
|
||||
id="layer1">
|
||||
<rect
|
||||
y="293.03125"
|
||||
x="1.3229166"
|
||||
height="2.6458333"
|
||||
width="1.0583333"
|
||||
id="rect822"
|
||||
style="fill:#999999;fill-opacity:1;stroke:none;stroke-width:0.5020116;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
|
||||
<rect
|
||||
y="293.03125"
|
||||
x="2.9104166"
|
||||
height="2.6458333"
|
||||
width="1.0583333"
|
||||
id="rect822-1"
|
||||
style="fill:#999999;fill-opacity:1;stroke:none;stroke-width:0.5020116;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
45
UI/forms/images/recording-pause.svg
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
id="svg8"
|
||||
version="1.1"
|
||||
viewBox="0 0 5.2916665 5.2916668"
|
||||
height="20"
|
||||
width="20">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
transform="translate(0,-291.70832)"
|
||||
id="layer1">
|
||||
<rect
|
||||
y="293.03125"
|
||||
x="1.3229166"
|
||||
height="2.6458333"
|
||||
width="1.0583333"
|
||||
id="rect822"
|
||||
style="fill:#d4ae00;fill-opacity:1;stroke:none;stroke-width:0.5020116;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
|
||||
<rect
|
||||
y="293.03125"
|
||||
x="2.9104166"
|
||||
height="2.6458333"
|
||||
width="1.0583333"
|
||||
id="rect822-1"
|
||||
style="fill:#d4ae00;fill-opacity:1;stroke:none;stroke-width:0.5020116;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
55
UI/forms/images/streaming-active.svg
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
id="svg8"
|
||||
version="1.1"
|
||||
viewBox="0 0 2.1166666 2.1166667"
|
||||
height="8"
|
||||
width="8">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
transform="translate(0,-294.88332)"
|
||||
id="layer1">
|
||||
<circle
|
||||
r="0.39687499"
|
||||
cy="295.94165"
|
||||
cx="1.0582843"
|
||||
id="path4544-3"
|
||||
style="fill:#5079cc;fill-opacity:1;stroke:none;stroke-width:0.13229169;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
|
||||
<path
|
||||
d="M 0.41577997,296.5497 A 0.79374999,0.79374999 0 0 1 0.13224262,295.94165 0.79374999,0.79374999 0 0 1 0.41577996,295.3336"
|
||||
id="path4546-7"
|
||||
style="fill:none;fill-opacity:1;stroke:#5079cc;stroke-width:0.15875001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
|
||||
<path
|
||||
transform="scale(-1,1)"
|
||||
d="m -1.7008867,296.5497 a 0.79374999,0.79374999 0 0 1 -0.2835374,-0.60805 0.79374999,0.79374999 0 0 1 0.2835374,-0.60805"
|
||||
id="path4546-1-3"
|
||||
style="fill:none;fill-opacity:1;stroke:#5079cc;stroke-width:0.15875001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
|
||||
<path
|
||||
d="M 0.63239977,296.41847 A 0.62244385,0.62244385 0 0 1 0.4100551,295.94165 0.62244385,0.62244385 0 0 1 0.63239977,295.46483"
|
||||
id="path4546-5-7"
|
||||
style="fill:none;fill-opacity:1;stroke:#5079cc;stroke-width:0.15875001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
|
||||
<path
|
||||
transform="scale(-1,1)"
|
||||
d="m -1.484193,296.41847 a 0.62244391,0.62244391 0 0 1 -0.2223447,-0.47682 0.62244391,0.62244391 0 0 1 0.2223447,-0.47682"
|
||||
id="path4546-5-4-2"
|
||||
style="fill:none;fill-opacity:1;stroke:#5079cc;stroke-width:0.15875001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.7 KiB |
55
UI/forms/images/streaming-inactive.svg
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
id="svg8"
|
||||
version="1.1"
|
||||
viewBox="0 0 2.1166666 2.1166667"
|
||||
height="8"
|
||||
width="8">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
transform="translate(0,-294.88332)"
|
||||
id="layer1">
|
||||
<circle
|
||||
r="0.39687499"
|
||||
cy="295.94165"
|
||||
cx="1.0583333"
|
||||
id="path4544"
|
||||
style="fill:#7f7d7f;fill-opacity:1;stroke:none;stroke-width:0.13229167;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
|
||||
<path
|
||||
d="M 0.41582902,296.5497 A 0.79374999,0.79374999 0 0 1 0.13229167,295.94165 0.79374999,0.79374999 0 0 1 0.41582902,295.3336"
|
||||
id="path4546"
|
||||
style="fill:none;fill-opacity:1;stroke:#7f7d7f;stroke-width:0.15875;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
|
||||
<path
|
||||
transform="scale(-1,1)"
|
||||
d="m -1.7009357,296.5497 a 0.79374999,0.79374999 0 0 1 -0.2835373,-0.60805 0.79374999,0.79374999 0 0 1 0.2835373,-0.60805"
|
||||
id="path4546-1"
|
||||
style="fill:none;fill-opacity:1;stroke:#7f7d7f;stroke-width:0.15875;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
|
||||
<path
|
||||
d="M 0.6324488,296.41847 A 0.6224438,0.6224438 0 0 1 0.41010416,295.94165 0.6224438,0.6224438 0 0 1 0.6324488,295.46483"
|
||||
id="path4546-5"
|
||||
style="fill:none;fill-opacity:1;stroke:#7f7d7f;stroke-width:0.15875;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
|
||||
<path
|
||||
transform="scale(-1,1)"
|
||||
d="m -1.484242,296.41847 a 0.62244385,0.62244385 0 0 1 -0.2223447,-0.47682 0.62244385,0.62244385 0 0 1 0.2223447,-0.47682"
|
||||
id="path4546-5-4"
|
||||
style="fill:none;fill-opacity:1;stroke:#7f7d7f;stroke-width:0.15875;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.6 KiB |
|
|
@ -34,6 +34,12 @@
|
|||
<file>images/sources/text.svg</file>
|
||||
<file>images/sources/window.svg</file>
|
||||
<file>images/sources/default.svg</file>
|
||||
<file>images/recording-active.svg</file>
|
||||
<file>images/recording-inactive.svg</file>
|
||||
<file>images/recording-pause.svg</file>
|
||||
<file>images/recording-pause-inactive.svg</file>
|
||||
<file>images/streaming-active.svg</file>
|
||||
<file>images/streaming-inactive.svg</file>
|
||||
</qresource>
|
||||
<qresource prefix="/settings">
|
||||
<file>images/settings/output.svg</file>
|
||||
|
|
|
|||
|
|
@ -39,6 +39,13 @@ set(decklink-ouput-ui_UI
|
|||
forms/output.ui
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
set(MODULE_DESCRIPTION "OBS DeckLink Output UI")
|
||||
configure_file(${CMAKE_SOURCE_DIR}/cmake/winrc/obs-module.rc.in decklink-ouput-ui.rc)
|
||||
list(APPEND decklink-ouput-ui_SOURCES
|
||||
decklink-ouput-ui.rc)
|
||||
endif()
|
||||
|
||||
if(APPLE)
|
||||
set(decklink-ouput-ui_PLATFORM_LIBS
|
||||
${COCOA})
|
||||
|
|
|
|||
|
|
@ -71,8 +71,11 @@ if(SCRIPTING_ENABLED)
|
|||
endif()
|
||||
|
||||
if(WIN32)
|
||||
set(MODULE_DESCRIPTION "OBS Frontend Tools")
|
||||
configure_file(${CMAKE_SOURCE_DIR}/cmake/winrc/obs-module.rc.in frontend-tools.rc)
|
||||
set(frontend-tools_PLATFORM_SOURCES
|
||||
auto-scene-switcher-win.cpp)
|
||||
auto-scene-switcher-win.cpp
|
||||
frontend-tools.rc)
|
||||
|
||||
if(BUILD_CAPTIONS)
|
||||
set(frontend-tools_PLATFORM_SOURCES
|
||||
|
|
|
|||
|
|
@ -298,15 +298,8 @@ static int attempt_import(const Json &root, const string &name, Json &res)
|
|||
Json::array filter_items = in_filters["items"].array_items();
|
||||
|
||||
Json in_settings = scene["settings"];
|
||||
Json in_sync = scene["syncOffset"];
|
||||
|
||||
int sync = (int)(in_sync["sec"].number_value() * 1000000000 +
|
||||
in_sync["nsec"].number_value());
|
||||
|
||||
double vol = scene["volume"].number_value();
|
||||
bool muted = scene["muted"].bool_value();
|
||||
string name = scene["name"].string_value();
|
||||
int monitoring = scene["monitoringType"].int_value();
|
||||
|
||||
Json::object out_hotkeys = Json::object{};
|
||||
get_hotkey_bindings(out_hotkeys, hotkey_items, "");
|
||||
|
|
@ -336,11 +329,8 @@ static int attempt_import(const Json &root, const string &name, Json &res)
|
|||
{"id", "scene"},
|
||||
{"sl_id", sl_id},
|
||||
{"settings", in_settings},
|
||||
{"sync", sync},
|
||||
{"volume", vol},
|
||||
{"muted", muted},
|
||||
{"volume", 1.0},
|
||||
{"name", out_name},
|
||||
{"monitoring_type", monitoring},
|
||||
{"private_settings", Json::object{}}};
|
||||
|
||||
Json in_items = scene["sceneItems"];
|
||||
|
|
|
|||
|
|
@ -7,6 +7,12 @@ add_definitions(-DLIBOBS_EXPORTS)
|
|||
set(obs-frontend-api_SOURCES
|
||||
obs-frontend-api.cpp)
|
||||
|
||||
if(WIN32)
|
||||
set(MODULE_DESCRIPTION "OBS Frontend API")
|
||||
configure_file(${CMAKE_SOURCE_DIR}/cmake/winrc/obs-module.rc.in ./obs-frontend-api.rc)
|
||||
list(APPEND obs-frontend-api_SOURCES
|
||||
obs-frontend-api.rc)
|
||||
endif()
|
||||
set(obs-frontend-api_HEADERS
|
||||
obs-frontend-internal.hpp
|
||||
obs-frontend-api.h)
|
||||
|
|
|
|||
|
|
@ -1694,7 +1694,7 @@ bool WidgetInfo::ColorChanged(const char *setting)
|
|||
* other open QDialogs on exit, and
|
||||
* https://bugreports.qt-project.org/browse/QTBUG-34532
|
||||
*/
|
||||
#ifdef __APPLE__
|
||||
#ifndef _WIN32
|
||||
options |= QColorDialog::DontUseNativeDialog;
|
||||
#endif
|
||||
|
||||
|
|
@ -1728,7 +1728,7 @@ bool WidgetInfo::FontChanged(const char *setting)
|
|||
|
||||
QFontDialog::FontDialogOptions options;
|
||||
|
||||
#ifdef __APPLE__
|
||||
#ifndef _WIN32
|
||||
options = QFontDialog::DontUseNativeDialog;
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
#include <QStackedWidget>
|
||||
#include <QWidget>
|
||||
|
||||
#include <obs.h>
|
||||
#include <media-io/frame-rate.h>
|
||||
|
||||
#include <vector>
|
||||
|
|
|
|||
|
|
@ -8,6 +8,8 @@
|
|||
#include <QStaticText>
|
||||
#include <QSvgRenderer>
|
||||
#include <QAbstractListModel>
|
||||
#include <obs.hpp>
|
||||
#include <obs-frontend-api.h>
|
||||
|
||||
class QLabel;
|
||||
class QCheckBox;
|
||||
|
|
|
|||
|
|
@ -169,6 +169,12 @@ void OBSBasic::AddDropSource(const char *data, DropType image)
|
|||
|
||||
void OBSBasic::dragEnterEvent(QDragEnterEvent *event)
|
||||
{
|
||||
// refuse drops of our own widgets
|
||||
if (event->source() != nullptr) {
|
||||
event->setDropAction(Qt::IgnoreAction);
|
||||
return;
|
||||
}
|
||||
|
||||
event->acceptProposedAction();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1346,7 +1346,7 @@ void OBSBasic::SetPreviewProgramMode(bool enabled)
|
|||
|
||||
RefreshQuickTransitions();
|
||||
|
||||
programLabel = new QLabel(QTStr("StudioMode.Program"));
|
||||
programLabel = new QLabel(QTStr("StudioMode.Program"), this);
|
||||
programLabel->setSizePolicy(QSizePolicy::Preferred,
|
||||
QSizePolicy::Preferred);
|
||||
programLabel->setAlignment(Qt::AlignHCenter | Qt::AlignBottom);
|
||||
|
|
|
|||
|
|
@ -385,6 +385,7 @@ OBSBasic::OBSBasic(QWidget *parent)
|
|||
statsDock->move(newPos);
|
||||
|
||||
ui->previewLabel->setProperty("themeID", "previewProgramLabels");
|
||||
ui->previewLabel->style()->polish(ui->previewLabel);
|
||||
|
||||
bool labels = config_get_bool(GetGlobalConfig(), "BasicWindow",
|
||||
"StudioModeLabels");
|
||||
|
|
@ -670,6 +671,8 @@ void OBSBasic::DeferSaveEnd()
|
|||
}
|
||||
}
|
||||
|
||||
static void LogFilter(obs_source_t *, obs_source_t *filter, void *v_val);
|
||||
|
||||
static void LoadAudioDevice(const char *name, int channel, obs_data_t *parent)
|
||||
{
|
||||
obs_data_t *data = obs_data_get_obj(parent, name);
|
||||
|
|
@ -679,6 +682,10 @@ static void LoadAudioDevice(const char *name, int channel, obs_data_t *parent)
|
|||
obs_source_t *source = obs_load_source(data);
|
||||
if (source) {
|
||||
obs_set_output_source(channel, source);
|
||||
|
||||
const char *name = obs_source_get_name(source);
|
||||
blog(LOG_INFO, "[Loaded global audio device]: '%s'", name);
|
||||
obs_source_enum_filters(source, LogFilter, (void *)(intptr_t)1);
|
||||
obs_source_release(source);
|
||||
}
|
||||
|
||||
|
|
@ -3915,6 +3922,7 @@ void OBSBasic::ClearSceneData()
|
|||
return true;
|
||||
};
|
||||
|
||||
obs_enum_scenes(cb, nullptr);
|
||||
obs_enum_sources(cb, nullptr);
|
||||
|
||||
if (api)
|
||||
|
|
@ -5719,9 +5727,6 @@ void OBSBasic::RecordingStop(int code, QString last_error)
|
|||
UpdatePause(false);
|
||||
}
|
||||
|
||||
#define RP_NO_HOTKEY_TITLE QTStr("Output.ReplayBuffer.NoHotkey.Title")
|
||||
#define RP_NO_HOTKEY_TEXT QTStr("Output.ReplayBuffer.NoHotkey.Msg")
|
||||
|
||||
void OBSBasic::ShowReplayBufferPauseWarning()
|
||||
{
|
||||
auto msgBox = []() {
|
||||
|
|
@ -5773,21 +5778,6 @@ void OBSBasic::StartReplayBuffer()
|
|||
return;
|
||||
}
|
||||
|
||||
obs_output_t *output = outputHandler->replayBuffer;
|
||||
obs_data_t *hotkeys = obs_hotkeys_save_output(output);
|
||||
obs_data_array_t *bindings =
|
||||
obs_data_get_array(hotkeys, "ReplayBuffer.Save");
|
||||
size_t count = obs_data_array_count(bindings);
|
||||
obs_data_array_release(bindings);
|
||||
obs_data_release(hotkeys);
|
||||
|
||||
if (!count) {
|
||||
OBSMessageBox::information(this, RP_NO_HOTKEY_TITLE,
|
||||
RP_NO_HOTKEY_TEXT);
|
||||
replayBufferButton->setChecked(false);
|
||||
return;
|
||||
}
|
||||
|
||||
if (api)
|
||||
api->on_event(OBS_FRONTEND_EVENT_REPLAY_BUFFER_STARTING);
|
||||
|
||||
|
|
@ -6225,6 +6215,9 @@ void OBSBasic::on_actionEditTransform_triggered()
|
|||
if (transformWindow)
|
||||
transformWindow->close();
|
||||
|
||||
if (!GetCurrentSceneItem())
|
||||
return;
|
||||
|
||||
transformWindow = new OBSBasicTransform(this);
|
||||
transformWindow->show();
|
||||
transformWindow->setAttribute(Qt::WA_DeleteOnClose, true);
|
||||
|
|
@ -7264,7 +7257,7 @@ void OBSBasic::on_actionCopySource_triggered()
|
|||
copyVisible = obs_sceneitem_visible(item);
|
||||
|
||||
uint32_t output_flags = obs_source_get_output_flags(source);
|
||||
if (!(output_flags & OBS_SOURCE_DO_NOT_DUPLICATE) == 0)
|
||||
if (output_flags & OBS_SOURCE_DO_NOT_DUPLICATE)
|
||||
allowPastingDuplicate = false;
|
||||
}
|
||||
|
||||
|
|
@ -7482,7 +7475,7 @@ void OBSBasic::ColorChange()
|
|||
obs_data_get_string(curPrivData, "color");
|
||||
const char *customColor = *oldColor != 0 ? oldColor
|
||||
: "#55FF0000";
|
||||
#ifdef __APPLE__
|
||||
#ifndef _WIN32
|
||||
options |= QColorDialog::DontUseNativeDialog;
|
||||
#endif
|
||||
|
||||
|
|
@ -7703,6 +7696,8 @@ void OBSBasic::PauseRecording()
|
|||
pause->setChecked(true);
|
||||
pause->blockSignals(false);
|
||||
|
||||
ui->statusbar->RecordingPaused();
|
||||
|
||||
if (trayIcon)
|
||||
trayIcon->setIcon(QIcon(":/res/images/obs_paused.png"));
|
||||
|
||||
|
|
@ -7730,6 +7725,8 @@ void OBSBasic::UnpauseRecording()
|
|||
pause->setChecked(false);
|
||||
pause->blockSignals(false);
|
||||
|
||||
ui->statusbar->RecordingUnpaused();
|
||||
|
||||
if (trayIcon)
|
||||
trayIcon->setIcon(
|
||||
QIcon(":/res/images/tray_active.png"));
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
#include <obs.hpp>
|
||||
#include <util/platform.h>
|
||||
#include <obs-frontend-api.h>
|
||||
#include <QPointer>
|
||||
#include <QWidget>
|
||||
#include <QTimer>
|
||||
|
|
|
|||
|
|
@ -11,18 +11,36 @@ OBSBasicStatusBar::OBSBasicStatusBar(QWidget *parent)
|
|||
: QStatusBar(parent),
|
||||
delayInfo(new QLabel),
|
||||
droppedFrames(new QLabel),
|
||||
streamIcon(new QLabel),
|
||||
streamTime(new QLabel),
|
||||
recordIcon(new QLabel),
|
||||
recordTime(new QLabel),
|
||||
cpuUsage(new QLabel),
|
||||
transparentPixmap(20, 20),
|
||||
greenPixmap(20, 20),
|
||||
grayPixmap(20, 20),
|
||||
redPixmap(20, 20)
|
||||
redPixmap(20, 20),
|
||||
recordingActivePixmap(QIcon(":/res/images/recording-active.svg")
|
||||
.pixmap(QSize(20, 20))),
|
||||
recordingPausePixmap(QIcon(":/res/images/recording-pause.svg")
|
||||
.pixmap(QSize(20, 20))),
|
||||
recordingPauseInactivePixmap(
|
||||
QIcon(":/res/images/recording-pause-inactive.svg")
|
||||
.pixmap(QSize(20, 20))),
|
||||
recordingInactivePixmap(QIcon(":/res/images/recording-inactive.svg")
|
||||
.pixmap(QSize(20, 20))),
|
||||
streamingActivePixmap(QIcon(":/res/images/streaming-active.svg")
|
||||
.pixmap(QSize(20, 20))),
|
||||
streamingInactivePixmap(QIcon(":/res/images/streaming-inactive.svg")
|
||||
.pixmap(QSize(20, 20)))
|
||||
{
|
||||
streamTime->setText(QString("LIVE: 00:00:00"));
|
||||
recordTime->setText(QString("REC: 00:00:00"));
|
||||
cpuUsage->setText(QString("CPU: 0.0%, 0.00 fps"));
|
||||
|
||||
streamIcon->setPixmap(streamingInactivePixmap);
|
||||
recordIcon->setPixmap(recordingInactivePixmap);
|
||||
|
||||
QWidget *brWidget = new QWidget(this);
|
||||
QHBoxLayout *brLayout = new QHBoxLayout(brWidget);
|
||||
brLayout->setContentsMargins(0, 0, 0, 0);
|
||||
|
|
@ -39,8 +57,12 @@ OBSBasicStatusBar::OBSBasicStatusBar(QWidget *parent)
|
|||
delayInfo->setAlignment(Qt::AlignVCenter);
|
||||
droppedFrames->setAlignment(Qt::AlignRight);
|
||||
droppedFrames->setAlignment(Qt::AlignVCenter);
|
||||
streamIcon->setAlignment(Qt::AlignRight);
|
||||
streamIcon->setAlignment(Qt::AlignVCenter);
|
||||
streamTime->setAlignment(Qt::AlignRight);
|
||||
streamTime->setAlignment(Qt::AlignVCenter);
|
||||
recordIcon->setAlignment(Qt::AlignRight);
|
||||
recordIcon->setAlignment(Qt::AlignVCenter);
|
||||
recordTime->setAlignment(Qt::AlignRight);
|
||||
recordTime->setAlignment(Qt::AlignVCenter);
|
||||
cpuUsage->setAlignment(Qt::AlignRight);
|
||||
|
|
@ -50,13 +72,15 @@ OBSBasicStatusBar::OBSBasicStatusBar(QWidget *parent)
|
|||
|
||||
delayInfo->setIndent(20);
|
||||
droppedFrames->setIndent(20);
|
||||
streamTime->setIndent(20);
|
||||
recordTime->setIndent(20);
|
||||
streamIcon->setIndent(20);
|
||||
recordIcon->setIndent(20);
|
||||
cpuUsage->setIndent(20);
|
||||
kbps->setIndent(10);
|
||||
|
||||
addPermanentWidget(droppedFrames);
|
||||
addPermanentWidget(streamIcon);
|
||||
addPermanentWidget(streamTime);
|
||||
addPermanentWidget(recordIcon);
|
||||
addPermanentWidget(recordTime);
|
||||
addPermanentWidget(cpuUsage);
|
||||
addPermanentWidget(delayInfo);
|
||||
|
|
@ -93,6 +117,14 @@ void OBSBasicStatusBar::Activate()
|
|||
statusSquare->setPixmap(grayPixmap);
|
||||
}
|
||||
}
|
||||
|
||||
if (streamOutput) {
|
||||
streamIcon->setPixmap(streamingActivePixmap);
|
||||
}
|
||||
|
||||
if (recordOutput) {
|
||||
recordIcon->setPixmap(recordingActivePixmap);
|
||||
}
|
||||
}
|
||||
|
||||
void OBSBasicStatusBar::Deactivate()
|
||||
|
|
@ -103,11 +135,13 @@ void OBSBasicStatusBar::Deactivate()
|
|||
|
||||
if (!streamOutput) {
|
||||
streamTime->setText(QString("LIVE: 00:00:00"));
|
||||
streamIcon->setPixmap(streamingInactivePixmap);
|
||||
totalStreamSeconds = 0;
|
||||
}
|
||||
|
||||
if (!recordOutput) {
|
||||
recordTime->setText(QString("REC: 00:00:00"));
|
||||
recordIcon->setPixmap(recordingInactivePixmap);
|
||||
totalRecordSeconds = 0;
|
||||
}
|
||||
|
||||
|
|
@ -247,25 +281,26 @@ void OBSBasicStatusBar::UpdateRecordTime()
|
|||
{
|
||||
bool paused = os_atomic_load_bool(&recording_paused);
|
||||
|
||||
if (!paused)
|
||||
if (!paused) {
|
||||
totalRecordSeconds++;
|
||||
|
||||
QString text;
|
||||
|
||||
if (paused) {
|
||||
text = QStringLiteral("REC: PAUSED");
|
||||
} else {
|
||||
int seconds = totalRecordSeconds % 60;
|
||||
int totalMinutes = totalRecordSeconds / 60;
|
||||
int minutes = totalMinutes % 60;
|
||||
int hours = totalMinutes / 60;
|
||||
|
||||
text = QString::asprintf("REC: %02d:%02d:%02d", hours, minutes,
|
||||
seconds);
|
||||
}
|
||||
QString text = QString::asprintf("REC: %02d:%02d:%02d", hours,
|
||||
minutes, seconds);
|
||||
|
||||
recordTime->setText(text);
|
||||
recordTime->setMinimumWidth(recordTime->width());
|
||||
recordTime->setText(text);
|
||||
recordTime->setMinimumWidth(recordTime->width());
|
||||
} else {
|
||||
recordIcon->setPixmap(streamPauseIconToggle
|
||||
? recordingPauseInactivePixmap
|
||||
: recordingPausePixmap);
|
||||
|
||||
streamPauseIconToggle = !streamPauseIconToggle;
|
||||
}
|
||||
}
|
||||
|
||||
void OBSBasicStatusBar::UpdateDroppedFrames()
|
||||
|
|
@ -483,3 +518,22 @@ void OBSBasicStatusBar::RecordingStopped()
|
|||
recordOutput = nullptr;
|
||||
Deactivate();
|
||||
}
|
||||
|
||||
void OBSBasicStatusBar::RecordingPaused()
|
||||
{
|
||||
QString text = QStringLiteral("REC: PAUSED");
|
||||
recordTime->setText(text);
|
||||
recordTime->setMinimumWidth(recordTime->width());
|
||||
|
||||
if (recordOutput) {
|
||||
recordIcon->setPixmap(recordingPausePixmap);
|
||||
streamPauseIconToggle = true;
|
||||
}
|
||||
}
|
||||
|
||||
void OBSBasicStatusBar::RecordingUnpaused()
|
||||
{
|
||||
if (recordOutput) {
|
||||
recordIcon->setPixmap(recordingActivePixmap);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,8 +14,10 @@ class OBSBasicStatusBar : public QStatusBar {
|
|||
private:
|
||||
QLabel *delayInfo;
|
||||
QLabel *droppedFrames;
|
||||
QLabel *streamIcon;
|
||||
QLabel *streamTime;
|
||||
QLabel *recordTime;
|
||||
QLabel *recordIcon;
|
||||
QLabel *cpuUsage;
|
||||
QLabel *kbps;
|
||||
QLabel *statusSquare;
|
||||
|
|
@ -24,6 +26,7 @@ private:
|
|||
obs_output_t *recordOutput = nullptr;
|
||||
bool active = false;
|
||||
bool overloadedNotify = true;
|
||||
bool streamPauseIconToggle = false;
|
||||
|
||||
int retries = 0;
|
||||
int totalStreamSeconds = 0;
|
||||
|
|
@ -48,6 +51,13 @@ private:
|
|||
QPixmap grayPixmap;
|
||||
QPixmap redPixmap;
|
||||
|
||||
QPixmap recordingActivePixmap;
|
||||
QPixmap recordingPausePixmap;
|
||||
QPixmap recordingPauseInactivePixmap;
|
||||
QPixmap recordingInactivePixmap;
|
||||
QPixmap streamingActivePixmap;
|
||||
QPixmap streamingInactivePixmap;
|
||||
|
||||
float lastCongestion = 0.0f;
|
||||
|
||||
QPointer<QTimer> refreshTimer;
|
||||
|
|
@ -81,6 +91,8 @@ public:
|
|||
void StreamStopped();
|
||||
void RecordingStarted(obs_output_t *output);
|
||||
void RecordingStopped();
|
||||
void RecordingPaused();
|
||||
void RecordingUnpaused();
|
||||
|
||||
void ReconnectClear();
|
||||
};
|
||||
|
|
|
|||
|
|
@ -92,6 +92,9 @@ QWidget *ImporterEntryPathItemDelegate::createEditor(
|
|||
QSizePolicy::ControlType::LineEdit));
|
||||
layout->addWidget(text);
|
||||
|
||||
QObject::connect(text, SIGNAL(editingFinished()), this,
|
||||
SLOT(updateText()));
|
||||
|
||||
QToolButton *browseButton = new QToolButton();
|
||||
browseButton->setText("...");
|
||||
browseButton->setSizePolicy(buttonSizePolicy);
|
||||
|
|
@ -121,8 +124,6 @@ void ImporterEntryPathItemDelegate::setEditorData(
|
|||
{
|
||||
QLineEdit *text = editor->findChild<QLineEdit *>();
|
||||
text->setText(index.data().toString());
|
||||
QObject::connect(text, SIGNAL(textEdited(QString)), this,
|
||||
SLOT(updateText()));
|
||||
editor->setProperty(PATH_LIST_PROP, QVariant());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -58,9 +58,6 @@ OBSProjector::OBSProjector(QWidget *widget, obs_source_t *source_, int monitor,
|
|||
|
||||
connect(this, &OBSQTDisplay::DisplayCreated, addDrawCallback);
|
||||
|
||||
if (isFullScreen())
|
||||
SetHideCursor();
|
||||
|
||||
if (type == ProjectorType::Multiview) {
|
||||
obs_enter_graphics();
|
||||
|
||||
|
|
@ -169,8 +166,9 @@ void OBSProjector::SetMonitor(int monitor)
|
|||
{
|
||||
savedMonitor = monitor;
|
||||
QScreen *screen = QGuiApplication::screens()[monitor];
|
||||
showFullScreen();
|
||||
setGeometry(screen->geometry());
|
||||
showFullScreen();
|
||||
SetHideCursor();
|
||||
}
|
||||
|
||||
void OBSProjector::SetHideCursor()
|
||||
|
|
@ -1034,7 +1032,6 @@ void OBSProjector::OpenFullScreenProjector()
|
|||
|
||||
int monitor = sender()->property("monitor").toInt();
|
||||
SetMonitor(monitor);
|
||||
SetHideCursor();
|
||||
|
||||
UpdateProjectorTitle(QT_UTF8(obs_source_get_name(source)));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -112,6 +112,9 @@ QWidget *RemuxEntryPathItemDelegate::createEditor(
|
|||
QSizePolicy::ControlType::LineEdit));
|
||||
layout->addWidget(text);
|
||||
|
||||
QObject::connect(text, SIGNAL(editingFinished()), this,
|
||||
SLOT(updateText()));
|
||||
|
||||
QToolButton *browseButton = new QToolButton();
|
||||
browseButton->setText("...");
|
||||
browseButton->setSizePolicy(buttonSizePolicy);
|
||||
|
|
@ -143,8 +146,6 @@ void RemuxEntryPathItemDelegate::setEditorData(QWidget *editor,
|
|||
{
|
||||
QLineEdit *text = editor->findChild<QLineEdit *>();
|
||||
text->setText(index.data().toString());
|
||||
QObject::connect(text, SIGNAL(textEdited(QString)), this,
|
||||
SLOT(updateText()));
|
||||
editor->setProperty(PATH_LIST_PROP, QVariant());
|
||||
}
|
||||
|
||||
|
|
|
|||