obs-studio/UI
Matt Gajownik 0e57a7beef UI: Fix performance issues with the Log Viewer
This commit includes two big changes, alongside other smaller tweaks.

1) Update the internal QTextDocument of the text component directly
2) Use QPlainTextEdit, which supports HTML & is designed for long text
3) Use QString's arg function for formatting strings

Fix 1 significantly improves realtime performance when adding lines
individually, to the point that the UI no longer freezes if the viewer
is open and the log is being spammed. It also improves initial launch
speed when there's a large amount of text already in the file.
Reference: https://stackoverflow.com/a/54501760/2763321

Fix 2 completely eliminates delay when opening the viewer, regardless
of how many lines are already in the log file. For a standard log
after OBS launch, this cuts opening time from about 2 seconds to half a
second. For anything longer than 1,000 lines, the UI no longer freezes,
and the viewer (& its contents) open within half a second.
Reference: https://stackoverflow.com/a/17466240/2763321
2022-02-26 15:03:35 -08:00
..
data UI: Correctly style "Chrome OS" 2022-02-12 15:04:42 -08:00
forms UI: Don't collapse preview in Filters splitter view 2022-02-18 19:46:02 +11:00
frontend-plugins UI: Use std::unique_ptr for ui variables 2022-02-20 00:30:37 -08:00
importers UI/importers: Automatically detect SL Collections on macOS 2021-11-30 23:19:13 -08:00
installer UI: Improve installer, add release notes & Quickstart link 2021-10-10 17:19:10 +11:00
obs-frontend-api UI: Add `obs_frontend_open_source_interaction()` 2021-12-28 21:44:35 -08:00
win-update UI/updater: Explicitly set PSAPI_VERSION=2 2021-12-09 02:51:08 +01:00
xdg-data UI: Fix bugtracker URL in AppData file (#5861) 2022-01-24 19:02:55 -06:00
CMakeLists.txt UI: Fix build with YT integration without browser 2021-12-30 11:36:33 +01:00
adv-audio-control.cpp libobs: Rename obs_audio_monitoring_supported to _available 2021-12-22 02:43:14 -08:00
adv-audio-control.hpp UI: Fix bug with audio balance slider not updating 2021-11-23 22:06:25 -08:00
api-interface.cpp UI: Replace addref calls with get_ref 2022-01-24 14:06:50 -08:00
audio-encoders.cpp docs/sphinx: Fix various typos 2019-10-14 17:19:38 -07:00
audio-encoders.hpp clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
auth-base.cpp UI: Rework YouTube broadcast setup flow 2021-09-12 13:45:51 +02:00
auth-base.hpp UI: Rework YouTube broadcast setup flow 2021-09-12 13:45:51 +02:00
auth-listener.cpp UI: Fix AuthListener error HTTP response body 2021-09-16 15:03:28 +02:00
auth-listener.hpp UI: Properly verify state parameter for YouTube auth 2021-09-15 06:16:29 -07:00
auth-oauth.cpp UI: Cleanup libobs C++ type use 2021-11-26 23:23:51 +13:00
auth-oauth.hpp UI: Add support for external browser OAuth 2021-07-24 15:50:59 -07:00
auth-restream.cpp UI: Fix service integration with older Qt versions 2021-12-01 18:53:11 +11:00
auth-restream.hpp UI: Specify exact service to auth login callbacks 2021-07-24 15:50:59 -07:00
auth-twitch.cpp UI: Add UUID to Twitch panel URLs 2021-12-11 14:39:19 -08:00
auth-twitch.hpp UI: Add UUID to Twitch panel URLs 2021-12-11 14:39:19 -08:00
auth-youtube.cpp UI: Fix service integration with older Qt versions 2021-12-01 18:53:11 +11:00
auth-youtube.hpp UI: Use STL random as fallback 2021-09-17 02:59:21 -07:00
balance-slider.hpp UI: Add ability to reset sliders when double clicked 2018-09-07 09:27:20 -05:00
clickable-label.hpp clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
combobox-ignorewheel.cpp UI: Rename UI files for consistency 2019-04-21 04:10:46 -07:00
combobox-ignorewheel.hpp UI: Rename UI files for consistency 2019-04-21 04:10:46 -07:00
context-bar-controls.cpp UI: Use std::unique_ptr for ui variables 2022-02-20 00:30:37 -08:00
context-bar-controls.hpp UI: Use std::unique_ptr for ui variables 2022-02-20 00:30:37 -08:00
crash-report.cpp clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
crash-report.hpp
display-helpers.hpp UI: Add option to draw safe areas in preview 2021-08-20 15:20:59 -07:00
double-slider.cpp clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
double-slider.hpp clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
expand-checkbox.hpp UI, libobs, text-freetype2: Add missing pragma once in header files 2019-04-01 02:48:28 -05:00
focus-list.cpp
focus-list.hpp clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
horizontal-scroll-area.cpp UI: Add Vertical Mixer option 2018-05-19 00:17:58 -03:00
horizontal-scroll-area.hpp clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
hotkey-edit.cpp UI: Don't recreate entire Hotkey Settings tab 2022-01-05 23:56:34 -08:00
hotkey-edit.hpp UI: Don't recreate entire Hotkey Settings tab 2022-01-05 23:56:34 -08:00
item-widget-helpers.cpp
item-widget-helpers.hpp UI: sort audio sources by name locale aware 2020-04-12 19:33:02 +02:00
locked-checkbox.cpp UI: Source Toolbar 2020-08-17 07:18:18 -07:00
locked-checkbox.hpp UI: Source Toolbar 2020-08-17 07:18:18 -07:00
log-viewer.cpp UI: Fix performance issues with the Log Viewer 2022-02-26 15:03:35 -08:00
log-viewer.hpp UI: Fix performance issues with the Log Viewer 2022-02-26 15:03:35 -08:00
media-controls.cpp UI: Use std::unique_ptr for ui variables 2022-02-20 00:30:37 -08:00
media-controls.hpp UI: Use std::unique_ptr for ui variables 2022-02-20 00:30:37 -08:00
media-slider.cpp UI: Allow adjusting media slider with arrow buttons 2020-09-05 23:53:54 -05:00
media-slider.hpp UI: Allow adjusting media slider with arrow buttons 2020-09-05 23:53:54 -05:00
menu-button.cpp
menu-button.hpp clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
mute-checkbox.hpp
obf.c clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obf.h UI: Add obfuscation func 2019-02-07 14:47:15 -08:00
obs-app.cpp UI: Log 'Hide OBS from capture' on startup & settings change 2022-02-20 13:38:17 +11:00
obs-app.hpp UI: Add option to hide OBS windows on Windows 2022-01-22 15:14:16 -08:00
obs-proxy-style.cpp UI: Source Toolbar 2020-08-17 07:18:18 -07:00
obs-proxy-style.hpp UI: Source Toolbar 2020-08-17 07:18:18 -07:00
obs.manifest UI: Supply Windows manifest file 2020-01-01 15:58:48 +11:00
obs.rc.in UI: Automatically generate Windows file description 2019-02-02 11:22:31 +11:00
platform-osx.mm UI: Add option to hide OBS windows on Windows 2022-01-22 15:14:16 -08:00
platform-windows.cpp UI: Add warning on startup for running in Wine 2022-02-07 14:16:59 -08:00
platform-x11.cpp UI: Add option to hide OBS windows on Windows 2022-01-22 15:14:16 -08:00
platform.hpp UI: Add warning on startup for running in Wine 2022-02-07 14:16:59 -08:00
properties-view.cpp UI: Fix properties view crash with non-obs objects 2022-02-08 11:07:23 -08:00
properties-view.hpp UI: Fix uninitialized memory access in OBSPropertiesView 2022-02-08 21:57:08 +01:00
properties-view.moc.hpp UI: Fix missing includes 2020-04-08 17:20:52 -07:00
qt-display.cpp UI: Add OBSQTDisplay::OnMove()/OnDisplayChange() 2022-02-26 01:09:07 -08:00
qt-display.hpp UI: Add OBSQTDisplay::OnMove()/OnDisplayChange() 2022-02-26 01:09:07 -08:00
qt-wrappers.cpp Merge pull request #5580 from VodBox/add-cpp-templates 2021-12-13 21:31:27 -08:00
qt-wrappers.hpp UI: Set default string size arg for QT_UTF8 / QString::fromUtf8 2021-03-09 09:16:16 -05:00
record-button.cpp UI: Add save button next to replay buffer button 2019-12-12 17:59:20 -08:00
record-button.hpp UI: Add save button next to replay buffer button 2019-12-12 17:59:20 -08:00
remote-text.cpp UI: Expose cURL error if Remote Text error text is empty 2021-11-25 00:57:00 -08:00
remote-text.hpp UI: Add postDataSize option to GetRemoteText 2021-09-15 07:44:55 +02:00
scene-tree.cpp UI: Remove unnecessary code 2021-03-08 23:42:21 +13:00
scene-tree.hpp UI: Fix grid mode scenes overlapping 2021-03-08 23:33:54 +13:00
screenshot-obj.hpp UI: Add ability to make screenshots 2020-07-30 17:41:43 -07:00
slider-absoluteset-style.cpp UI: Use Qt::MiddleButton instead of deprecated Qt::MidButton 2020-12-01 10:54:21 -05:00
slider-absoluteset-style.hpp clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
slider-ignorewheel.cpp UI: Remove unneeded include 2022-01-04 01:54:38 -08:00
slider-ignorewheel.hpp UI: Various screen reader fixes 2020-11-25 19:38:05 -08:00
source-label.cpp clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
source-label.hpp UI: Fix warnings for Qt 5.15 2020-06-21 18:23:05 -07:00
source-tree.cpp UI: Refresh edit menu on item select/deselect 2022-02-19 15:42:57 -08:00
source-tree.hpp UI: Dim hidden source items in source tree 2021-08-17 08:24:28 -07:00
sparkle-updater.mm Apply clang-format to objective c code 2019-07-09 13:39:13 -05:00
spinbox-ignorewheel.cpp UI: Rename UI files for consistency 2019-04-21 04:10:46 -07:00
spinbox-ignorewheel.hpp UI: Rename UI files for consistency 2019-04-21 04:10:46 -07:00
ui-config.h.in UI: Add YouTube integration 2021-08-07 01:07:04 -07:00
ui-validation.cpp UI: Add Start Streaming settings check on start 2019-12-11 01:50:41 -08:00
ui-validation.hpp UI: Add Start Streaming settings check on start 2019-12-11 01:50:41 -08:00
undo-stack-obs.cpp UI: Optimize undo/redo functions with constant references 2022-01-19 21:39:43 +01:00
undo-stack-obs.hpp UI: Optimize undo/redo functions with constant references 2022-01-19 21:39:43 +01:00
url-push-button.cpp UI: Upgrade stream link hotlink to a button 2019-10-30 12:09:07 -07:00
url-push-button.hpp UI: Upgrade stream link hotlink to a button 2019-10-30 12:09:07 -07:00
vertical-scroll-area.cpp
vertical-scroll-area.hpp clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
visibility-checkbox.cpp UI: Source Toolbar 2020-08-17 07:18:18 -07:00
visibility-checkbox.hpp UI: Source Toolbar 2020-08-17 07:18:18 -07:00
visibility-item-widget.cpp UI: Remove unused code from visibility item widget 2019-10-06 00:42:19 -05:00
visibility-item-widget.hpp UI: Remove unused code from visibility item widget 2019-10-06 00:42:19 -05:00
volume-control.cpp UI: Fix vertical grayscale meters when volume is muted 2021-12-30 22:32:24 -08:00
volume-control.hpp UI: Add grayscale meters when volume is muted 2021-12-23 06:35:29 -08:00
window-basic-about.cpp UI: Update Contribute link in about box 2020-03-12 00:12:22 +01:00
window-basic-about.hpp UI: Add Patreon contributors to About dialog 2019-05-05 20:00:26 -07:00
window-basic-adv-audio.cpp libobs: Rename obs_audio_monitoring_supported to _available 2021-12-22 02:43:14 -08:00
window-basic-adv-audio.hpp UI: Add percent checkbox to advanced audio dialog 2020-05-23 01:05:07 -05:00
window-basic-auto-config-test.cpp UI: Use std::unique_ptr for ui variables 2022-02-20 00:30:37 -08:00
window-basic-auto-config.cpp UI: Use std::unique_ptr for ui variables 2022-02-20 00:30:37 -08:00
window-basic-auto-config.hpp UI: Use std::unique_ptr for ui variables 2022-02-20 00:30:37 -08:00
window-basic-filters.cpp UI: Add OBSQTDisplay::OnMove()/OnDisplayChange() 2022-02-26 01:09:07 -08:00
window-basic-filters.hpp UI: Add OBSQTDisplay::OnMove()/OnDisplayChange() 2022-02-26 01:09:07 -08:00
window-basic-interaction.cpp UI: Add OBSQTDisplay::OnMove()/OnDisplayChange() 2022-02-26 01:09:07 -08:00
window-basic-interaction.hpp UI: Add OBSQTDisplay::OnMove()/OnDisplayChange() 2022-02-26 01:09:07 -08:00
window-basic-main-browser.cpp clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
window-basic-main-dropfiles.cpp UI: Cleanup libobs C++ type use 2021-11-26 23:23:51 +13:00
window-basic-main-icons.cpp UI: Add source icons 2019-11-24 20:50:42 -08:00
window-basic-main-outputs.cpp UI: Fix hotkey JSON error for Advanced Replay Buffer 2022-01-08 13:34:40 +11:00
window-basic-main-outputs.hpp Revert "UI: Add checks for overwrite setting to replay buffer" 2022-01-04 20:42:58 -08:00
window-basic-main-profiles.cpp UI: Avoid emiting events 2 times when renaming a profile 2022-02-12 15:14:21 -08:00
window-basic-main-scene-collections.cpp UI: Cleanup libobs C++ type use 2021-11-26 23:23:51 +13:00
window-basic-main-screenshot.cpp UI: Add save notifications to status bar 2021-04-01 07:36:20 -07:00
window-basic-main-transitions.cpp UI: Fix "Null 'source' parameter" warning 2022-01-04 02:08:18 -08:00
window-basic-main.cpp UI: Add OBSQTDisplay::OnMove()/OnDisplayChange() 2022-02-26 01:09:07 -08:00
window-basic-main.hpp UI: Add OBSQTDisplay::OnMove()/OnDisplayChange() 2022-02-26 01:09:07 -08:00
window-basic-preview.cpp UI: Ignore resizing item when it is locked 2022-01-07 15:18:59 -08:00
window-basic-preview.hpp UI: Cleanup libobs C++ type use 2021-11-26 23:23:51 +13:00
window-basic-properties.cpp UI: Add OBSQTDisplay::OnMove()/OnDisplayChange() 2022-02-26 01:09:07 -08:00
window-basic-properties.hpp UI: Add OBSQTDisplay::OnMove()/OnDisplayChange() 2022-02-26 01:09:07 -08:00
window-basic-settings-stream.cpp UI: Cleanup libobs C++ type use 2021-11-26 23:23:51 +13:00
window-basic-settings.cpp UI: Log 'Hide OBS from capture' on startup & settings change 2022-02-20 13:38:17 +11:00
window-basic-settings.hpp UI: Better Hide OBS Window description, add first time dialog & tooltip 2022-01-29 17:09:15 -08:00
window-basic-source-select.cpp UI: Fix Copy/Paste not including blend mode 2021-12-28 09:12:51 -08:00
window-basic-source-select.hpp UI: Apply transforms/crops correctly to sources on paste 2021-11-10 14:22:45 -08:00
window-basic-stats.cpp UI: Cleanup libobs C++ type use 2021-11-26 23:23:51 +13:00
window-basic-stats.hpp UI: Fix missing includes 2020-04-08 17:20:52 -07:00
window-basic-status-bar.cpp UI: Fix crash on exit with stuck encoder 2021-03-31 01:21:51 -07:00
window-basic-status-bar.hpp UI: Add status icons for recording and streaming 2020-04-16 19:15:13 +02:00
window-basic-transform.cpp UI: Fix a stack overlow caused by using OBSScene 2021-12-16 23:38:59 -08:00
window-basic-transform.hpp UI: Update Edit Transform dialog on scene switch 2021-11-10 06:08:48 -08:00
window-dock-browser.cpp UI: Check for null pointer 2019-09-19 05:39:25 -07:00
window-dock-browser.hpp UI: Make BrowserDock native 2021-01-26 09:43:16 -08:00
window-dock.cpp clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
window-dock.hpp UI: Warn when closing dock widgets for first time 2019-03-05 14:39:24 -08:00
window-extra-browsers.cpp UI: Use std::unique_ptr for ui variables 2022-02-20 00:30:37 -08:00
window-extra-browsers.hpp UI: Use std::unique_ptr for ui variables 2022-02-20 00:30:37 -08:00
window-importer.cpp UI: Fix imported scene collection names duplicating 2021-04-20 00:17:34 -07:00
window-importer.hpp UI: Add advanced scene collection importer 2020-02-16 17:56:06 +13:00
window-log-reply.cpp UI: Add button to Analyzer in the Log Reply window 2020-04-07 20:43:12 +10:00
window-log-reply.hpp UI: Add button to Analyzer in the Log Reply window 2020-04-07 20:43:12 +10:00
window-main.hpp clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
window-missing-files.cpp UI: Cleanup libobs C++ type use 2021-11-26 23:23:51 +13:00
window-missing-files.hpp UI: Add missing files dialog 2021-01-17 10:31:59 +13:00
window-namedialog.cpp Revert "UI: Disable hotkeys when a user is expected to type text" 2021-10-03 07:52:44 -07:00
window-namedialog.hpp UI: Run Autoconfig Wizard on New Profile Creation 2020-10-29 14:15:57 -07:00
window-projector.cpp UI: Properly close projector when source is removed (#5171) 2022-01-29 15:36:38 -08:00
window-projector.hpp UI: Add option to draw safe areas in preview 2021-08-20 15:20:59 -07:00
window-remux.cpp UI: Show autoremux progress bar 2021-08-07 23:17:50 -07:00
window-remux.hpp UI: Declare missing overrides 2019-07-21 20:53:30 -07:00
window-youtube-actions.cpp Merge pull request #5216 from derrod/yt-thumbnail-upload 2021-09-15 00:26:56 -07:00
window-youtube-actions.hpp UI, libobs, obs-plugins: Fix compiler warnings 2021-11-04 06:25:52 -07:00
youtube-api-wrappers.cpp UI: Log YouTube API HTTP request errors 2022-01-13 23:07:45 +01:00
youtube-api-wrappers.hpp UI: Fix YT broadcast start/stop failing due to redundant transition/reset 2021-10-13 12:27:47 +02:00