0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-20 13:08:50 +02:00
Commit Graph

295 Commits

Author SHA1 Message Date
jp9000
a903ae3103 UI: Fix logging for profiles/scene collections
This makes it so that the log message for altering scene collections
and/or profiles is now below, and then the separator below that.  This
makes it a bit more apparent that any loading/clearing/etc that happens
before the log message are associated with the log message.
2015-07-06 17:03:32 -07:00
Palana
7bb430efd0 UI: Clean up sourceSceneRefs when removing scenes
Previously the sourceSceneRefs were being cleaned up in
OBSBasic::SceneItemRemoved; due to changes in
e82018579b the signal handler that called
OBSBasic::SceneItemRemoved is now being removed before the scene
triggers its item_remove signals
2015-07-07 02:02:41 +02:00
jp9000
7c97e21a1f UI: Add menu options to open settings folders
Adds "Show Settings Folder" and "Show Profile Folder" items to the file
menu.
2015-07-03 18:35:33 -07:00
jp9000
f9314128ea UI: Add Profiles
Adds setting profiles to the basic user interface.  For each profile, a
subdirectory for the profile will be created in
[config_dir]/obs-studio/basic/profiles which will contain the settings
data for each profile.
2015-07-03 18:35:30 -07:00
jp9000
7d6a12f49e UI: Add scene collections
Adds scene collections to the menu bar, which allows you to duplicate,
rename, remove, or add clean new scene collections.

Scene files are now stored in ./obs-studio/basic/scenes directory with
filesystem-safe names.
2015-07-03 18:33:57 -07:00
jp9000
fabb99c35a UI: Add UpdateTitleBar function to basic UI 2015-07-03 18:21:23 -07:00
jp9000
650c8faaaf UI: Use default scaled res. of 1280x720 or equiv.
Originally this value defaulted to 1.5 downscaling, but on very high
resolution displays this would cause the default to be above 1280x720,
which is not ideal for streaming/recording due to the CPU usage
requirements.

Instead, it will now find the closest resolution with a pixel count
equivalent to or closest below 1280x720, and use that instead.
2015-07-03 10:26:18 -07:00
jp9000
b566428233 UI: Allow resize without timers
This prevents the weird stretching effect that occurs whenever a windows
is in the process of being resized by the user.

Originally it was intended as an optimization, but even on half-decent
computers it doesn't really have much benefit.
2015-07-03 10:10:58 -07:00
jp9000
b4fe4ae5b4 UI: Remove unused default config values 2015-07-03 09:57:53 -07:00
jp9000
daa4706eb7 UI: Move adv. rec. tracks if updating from 0.10.1 2015-07-03 09:57:52 -07:00
jp9000
44afc71636 UI: Log when output starts/stops 2015-07-02 18:18:34 -07:00
jp9000
da358da9a7 UI: Save project only on new changes 2015-07-02 18:08:55 -07:00
jp9000
4b93b42ded UI: Do not save at intervals
Saving at intervals is a poor way to handle saving issues in general.
Best to just save when something has been modified instead.
2015-07-02 18:08:54 -07:00
jp9000
c9f85f167c UI: Add OBSBasic::ClearHotkeys function
Add a function to clear basic window hotkeys to reduces potential code
duplication
2015-07-02 18:08:53 -07:00
jp9000
5fc21edc1f UI: Clear scene data before loading new scene data
Clear scene data before loading new scene files or when creating new
scene data from scratch.
2015-07-02 18:08:41 -07:00
jp9000
1d3251a993 UI: Save after creating default scene
When initializing with a default scene, save the data to ensure a file
is actually present when needed (such as for scene collections which may
need the file)
2015-07-02 17:56:05 -07:00
jp9000
4330065d7d UI: Add ClearSceneData to clean up all obs data
Add a central function for clearing all data: scenes, sources, widgets
such as lists that may contain source references in their sub-items,
dialogs which may contain source references.  In certain circumstances
this data must be fully released and manually freed to ensure that there
are no outstanding references to obs data (such as on shutdown, where
all data should be properly freed).
2015-07-02 17:56:05 -07:00
jp9000
20b4a1c008 UI: Manually delete visibility item widgets 2015-07-02 17:56:04 -07:00
jp9000
e8f30f222d UI: Remove unused signal from basic main window 2015-07-02 17:56:02 -07:00
jp9000
3b16477480 UI: Store global audio sources in scenes file only
Right now, information about global audio sources is stored in both
scene files and in the config.  These must be separated; there's no need
to store them in both when they can just be stored in the scenes file.
2015-07-02 17:18:47 -07:00
Palana
82471d7539 UI: Ignore reorder signals from drag&drop reordering
Not ignoring these signals doesn't seem to break anything, but it
shouldn't be necessary to process them either
2015-06-28 05:09:46 +02:00
Palana
95857b4443 UI: Enable drag&drop reordering for scenes
The empty implementation for the QDataStream operators is necessary to fix
a Qt assertion: "QVariant::save: unable to save type
'std::vector<std::shared_ptr<OBSSignal> >' (type id: 1036)."

It doesn't seem like a full implementation of the stream operators would be
useful since the signal registration is very specific to the interaction
between the scenes and sources list, i.e. in case the scenes list ever accepts
scenes from sources (not 'obs_source's) other than itself (non InternalMove
drag&drop?) it would have to register those scenes with the libobs core which
should trigger the normal signal registration
2015-06-28 05:09:45 +02:00
Palana
b543ea6231 UI: Make scene items serializable via QDataStream
This minimal implementation should be enough to drag&drop scenes between UI
elements in the same process in the future
2015-06-28 04:30:17 +02:00
Palana
363b887cad UI: Make scenes serializable via QDataStream
This minimal implementation should be enough to drag&drop scenes between UI
elements in the same process in the future
2015-06-28 04:30:17 +02:00
Palana
9672aa0cb9 UI: Ensure only one source is selected on startup 2015-06-28 04:30:17 +02:00
Palana
e1f0ac0bd0 UI: Ignore source deselect events for now
Also ensure only a single source is selected if it's an update from
libobs
2015-06-28 04:10:10 +02:00
Palana
66fd1b2e80 UI: Ignore sources selection self-update roundtrips 2015-06-28 04:10:10 +02:00
Palana
523e8b2517 UI: Explicitly delete source list items in closeEvent
This should reduce the chances of any deleteLater objects holding strong
references into the libobs core getting stuck in the Qt event queue
2015-06-28 04:04:15 +02:00
Palana
e82018579b UI: Remove scene signal handlers in closeEvent 2015-06-28 04:04:15 +02:00
Palana
21ac7a7e46 UI: Add QtDataRole enum
This introduces the OBSSignals data role, which will be used to store
signal handlers in stock Qt objects
2015-06-28 04:04:15 +02:00
Palana
4b003947b8 UI: Clear global signals in closeEvent 2015-06-28 02:42:03 +02:00
jp9000
97ead131c1 UI: Show popup menu w/ vol. control config button
Use the config button on volume controls to allow the ability for
filters/properties to be accessed via the mixer.  Particularly useful
for the purpose of accessing filters/properties of global audio outputs
that are added via audio settings.
2015-06-25 15:55:30 -07:00
jp9000
84567f2745 UI: Implement scene reordering
This simply saves/loads the actual list widget item order.

The reason why this is done is because internally, libobs doesn't have a
list of scenes, it only has a list of sources.  The list of scenes is
actually something artificially implemented by the basic window user
interface.
2015-06-25 03:55:33 -07:00
jp9000
19932f552a UI: Fix output mode name when setting defaults
The item in the [Output] section for the output mode is "Mode", not
"Type".
2015-06-25 01:06:46 -07:00
jp9000
f15965e721 UI: Add menu to visit website to basic main window 2015-06-25 01:02:47 -07:00
jp9000
c618ac4e04 UI: Remove unused signals from basic main window 2015-06-25 00:23:17 -07:00
jp9000
556fde66ae UI: Warn user if recording format unsupported
If the recording format is unsupported or doesn't support multiple
tracks, warn the user to check their settings.
2015-06-21 22:34:54 -07:00
jp9000
a24af63527 UI: Allow multi-track recording in advanced output 2015-06-21 22:34:52 -07:00
jp9000
d07664b129 UI: Add option to select recording format
Add a listboxes to recording to allow changing file formats (allows mp4,
mov, mkv, ts, flv)
2015-06-21 22:34:51 -07:00
Jim
859415943f Merge pull request #436 from ThoNohT/output-folder
Use correct output folder for Show/Remux
2015-06-09 17:32:28 -07:00
jp9000
d16ec97f7b UI: Change default simple audio bitrate to 160
The audio bitrate required is insignificant relative to the video
bitrate, and due to the fact that it's possible that a lower-quality
encoder may be in use (such as FFmpeg's AAC encoder), setting the
default to 160 is really more ideal to reducee any potential quality
loss.
2015-06-05 08:57:01 -07:00
Eric Bataille
e42aee5da9 UI: Use correct output folder for Show/Remux
Ensures that the "Show Recordings" an "Remux Recordings" file menu
items will open the recordings folder from the currently active
output mode rather than always the simple output mode.
2015-06-04 20:57:16 +02:00
jp9000
e7eaa268e5 UI: Add option to disable aero on windows vista/7
On windows vista/7, you cannot really use display capture efficiently
without disabling aero, so this will add an option to settings to allow
it to be disabled and cause it to be disabled on startup.
2015-06-02 19:18:15 -07:00
jp9000
4b422d7d23 UI: Replace os_get_config_path with GetConfigPath
This allows the UI to be able to use a custom config path for cases such
as portable mode, where the config path is relative to the executable.
2015-06-01 16:42:30 -07:00
jp9000
13bed1a448 UI: Replace Qt5Network classes with libcurl
The Qt5Network classes seem to only support OpenSSL, and because OpenSSL
isn't available on windows, we would have to distribute it with the
program to get SSL access working.  The problem with that is that
OpenSSL is not GPL-compatible, so we cannot distribute OpenSSL with the
program, which means we have to find a better (and preferably superior)
library for accessing remote files that can use the windows SSPI for our
SSL needs, which comes with the operating system.

Fortunately, libcurl is probably the best library out there, and can be
compiled with SSPI instead of OpenSSL, so we're just going to switch to
libcurl instead.  Originally I thought it didn't support SSPI, otherwise
I would have implemented it sooner.

As a side note, this will make it so we'll able to get files from the
internet via plugins, which will be quite useful.
2015-05-24 16:20:13 -07:00
Palana
f6234ec90d UI: Fix push-to-* localization strings being swapped 2015-05-12 21:36:46 +02:00
Palana
37069d372f UI: Add Start/Stop Recording/Streaming hotkeys 2015-05-11 20:45:28 +02:00
Palana
6192b34ab3 UI: Add OBSBasic::StartStreaming/StopStreaming 2015-05-11 20:45:28 +02:00
Palana
508f04d927 UI: Add OBSBasic::StartRecording/StopRecording 2015-05-11 20:45:28 +02:00
Palana
054f00ced1 UI: Add SelectScene hotkey
UI supplied per scene hotkey to allow switching between scenes; this
has to be done in the UI since it's up to the application to define
what exactly "changing/selecting a scene" means (changing the output
of channel 0 may not be enough for other applications)
2015-05-11 20:45:28 +02:00