diff --git a/UI/cmake/legacy.cmake b/UI/cmake/legacy.cmake index 25d0ab87d..c38c11d3e 100644 --- a/UI/cmake/legacy.cmake +++ b/UI/cmake/legacy.cmake @@ -71,6 +71,10 @@ find_package(CURL REQUIRED) add_subdirectory(frontend-plugins) add_executable(obs) +if(NOT TARGET OBS::properties-view) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/properties-view" "${CMAKE_BINARY_DIR}/shared/properties-view") +endif() + if(NOT TARGET OBS::qt-plain-text-edit) add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/plain-text-edit" "${CMAKE_BINARY_DIR}/shared/qt/plain-text-edit") endif() @@ -187,8 +191,6 @@ target_sources( basic-controls.cpp basic-controls.hpp clickable-label.hpp - double-slider.cpp - double-slider.hpp horizontal-scroll-area.cpp horizontal-scroll-area.hpp item-widget-helpers.cpp @@ -209,9 +211,6 @@ target_sources( menu-button.hpp mute-checkbox.hpp noncheckable-button.hpp - properties-view.cpp - properties-view.hpp - properties-view.moc.hpp remote-text.cpp remote-text.hpp scene-tree.cpp @@ -219,8 +218,6 @@ target_sources( screenshot-obj.hpp source-label.cpp source-label.hpp - spinbox-ignorewheel.cpp - spinbox-ignorewheel.hpp source-tree.cpp source-tree.hpp url-push-button.cpp @@ -325,7 +322,8 @@ target_link_libraries( OBS::qt-wrappers OBS::qt-plain-text-edit OBS::qt-vertical-scroll-area - OBS::qt-slider-ignorewheel) + OBS::qt-slider-ignorewheel + OBS::properties-view) set_target_properties(obs PROPERTIES FOLDER "frontend") diff --git a/UI/cmake/ui-elements.cmake b/UI/cmake/ui-elements.cmake index 65f73f41a..7c66c6ecd 100644 --- a/UI/cmake/ui-elements.cmake +++ b/UI/cmake/ui-elements.cmake @@ -1,25 +1,18 @@ add_library(obs-ui-support INTERFACE) add_library(OBS::ui-support ALIAS obs-ui-support) -target_sources( - obs-ui-support - INTERFACE # cmake-format: sortable - clickable-label.hpp - double-slider.cpp - double-slider.hpp - horizontal-scroll-area.cpp - horizontal-scroll-area.hpp - properties-view.cpp - properties-view.hpp - properties-view.moc.hpp - spinbox-ignorewheel.cpp - spinbox-ignorewheel.hpp) +target_sources(obs-ui-support INTERFACE # cmake-format: sortable + clickable-label.hpp horizontal-scroll-area.cpp horizontal-scroll-area.hpp) target_include_directories(obs-ui-support INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}") target_compile_options(obs-ui-support INTERFACE $<$:-Wno-error=enum-conversion>) target_link_libraries(obs-studio PRIVATE OBS::ui-support) +if(NOT TARGET OBS::properties-view) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/properties-view" "${CMAKE_BINARY_DIR}/shared/properties-view") +endif() + if(NOT TARGET OBS::qt-plain-text-edit) add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/plain-text-edit" "${CMAKE_BINARY_DIR}/shared/qt/plain-text-edit") endif() @@ -34,7 +27,7 @@ if(NOT TARGET OBS::qt-vertical-scroll-area) "${CMAKE_BINARY_DIR}/shared/qt/vertical-scroll-area") endif() -target_link_libraries(obs-studio PRIVATE OBS::qt-plain-text-edit OBS::qt-slider-ignorewheel +target_link_libraries(obs-studio PRIVATE OBS::properties-view OBS::qt-plain-text-edit OBS::qt-slider-ignorewheel OBS::qt-vertical-scroll-area) target_sources( diff --git a/UI/frontend-plugins/aja-output-ui/AJAOutputUI.h b/UI/frontend-plugins/aja-output-ui/AJAOutputUI.h index dfeb2b09f..0bf913148 100644 --- a/UI/frontend-plugins/aja-output-ui/AJAOutputUI.h +++ b/UI/frontend-plugins/aja-output-ui/AJAOutputUI.h @@ -1,9 +1,9 @@ #pragma once #include +#include #include "ui_output.h" -#include "../../UI/properties-view.hpp" namespace aja { class CardManager; diff --git a/UI/frontend-plugins/aja-output-ui/CMakeLists.txt b/UI/frontend-plugins/aja-output-ui/CMakeLists.txt index 0281b5462..2be9f3893 100644 --- a/UI/frontend-plugins/aja-output-ui/CMakeLists.txt +++ b/UI/frontend-plugins/aja-output-ui/CMakeLists.txt @@ -23,22 +23,8 @@ if(NOT TARGET OBS::aja-support) add_subdirectory("${CMAKE_SOURCE_DIR}/plugins/aja" "${CMAKE_BINARY_DIR}/plugins/aja") endif() -if(NOT TARGET OBS::qt-plain-text-edit) - add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/plain-text-edit" "${CMAKE_BINARY_DIR}/shared/qt/plain-text-edit") -endif() - -if(NOT TARGET OBS::qt-slider-ignorewheel) - add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/slider-ignorewheel" - "${CMAKE_BINARY_DIR}/shared/qt/slider-ignorewheel") -endif() - -if(NOT TARGET OBS::qt-vertical-scroll-area) - add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/vertical-scroll-area" - "${CMAKE_BINARY_DIR}/shared/qt/vertical-scroll-area") -endif() - -if(NOT TARGET OBS::qt-wrappers) - add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/wrappers" "${CMAKE_BINARY_DIR}/shared/qt/wrappers") +if(NOT TARGET OBS::properties-view) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/properties-view" "${CMAKE_BINARY_DIR}/shared/properties-view") endif() add_library(aja-output-ui MODULE) @@ -58,11 +44,7 @@ target_link_libraries( PRIVATE OBS::libobs OBS::aja-support OBS::frontend-api - OBS::qt-plain-text-edit - OBS::qt-slider-ignorewheel - OBS::qt-vertical-scroll-area - OBS::qt-wrappers - OBS::ui-support + OBS::properties-view Qt::Widgets AJA::LibAJANTV2 $<$:X11::X11> diff --git a/UI/frontend-plugins/aja-output-ui/cmake/legacy.cmake b/UI/frontend-plugins/aja-output-ui/cmake/legacy.cmake index 617be178a..df7e2b2ad 100644 --- a/UI/frontend-plugins/aja-output-ui/cmake/legacy.cmake +++ b/UI/frontend-plugins/aja-output-ui/cmake/legacy.cmake @@ -9,22 +9,8 @@ find_package(LibAJANTV2 REQUIRED) add_library(aja-output-ui MODULE) add_library(OBS::aja-output-ui ALIAS aja-output-ui) -if(NOT TARGET OBS::qt-plain-text-edit) - add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/plain-text-edit" "${CMAKE_BINARY_DIR}/shared/qt/plain-text-edit") -endif() - -if(NOT TARGET OBS::qt-slider-ignorewheel) - add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/slider-ignorewheel" - "${CMAKE_BINARY_DIR}/shared/qt/slider-ignorewheel") -endif() - -if(NOT TARGET OBS::qt-vertical-scroll-area) - add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/vertical-scroll-area" - "${CMAKE_BINARY_DIR}/shared/qt/vertical-scroll-area") -endif() - -if(NOT TARGET OBS::qt-wrappers) - add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/wrappers" "${CMAKE_BINARY_DIR}/shared/qt/wrappers") +if(NOT TARGET OBS::properties-view) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/properties-view" "${CMAKE_BINARY_DIR}/shared/properties-view") endif() find_qt(COMPONENTS Widgets COMPONENTS_LINUX Gui) @@ -63,25 +49,10 @@ target_sources( ${CMAKE_SOURCE_DIR}/plugins/aja/aja-vpid-data.cpp ${CMAKE_SOURCE_DIR}/plugins/aja/aja-vpid-data.hpp ${CMAKE_SOURCE_DIR}/plugins/aja/aja-widget-io.cpp - ${CMAKE_SOURCE_DIR}/plugins/aja/aja-widget-io.hpp - ${CMAKE_SOURCE_DIR}/UI/double-slider.cpp - ${CMAKE_SOURCE_DIR}/UI/double-slider.hpp - ${CMAKE_SOURCE_DIR}/UI/properties-view.hpp - ${CMAKE_SOURCE_DIR}/UI/properties-view.cpp - ${CMAKE_SOURCE_DIR}/UI/properties-view.moc.hpp - ${CMAKE_SOURCE_DIR}/UI/spinbox-ignorewheel.cpp - ${CMAKE_SOURCE_DIR}/UI/spinbox-ignorewheel.hpp) + ${CMAKE_SOURCE_DIR}/plugins/aja/aja-widget-io.hpp) -target_link_libraries( - aja-output-ui - PRIVATE OBS::libobs - OBS::frontend-api - OBS::qt-wrappers - OBS::qt-plain-text-edit - OBS::qt-vertical-scroll-area - OBS::qt-slider-ignorewheel - Qt::Widgets - AJA::LibAJANTV2) +target_link_libraries(aja-output-ui PRIVATE OBS::libobs OBS::frontend-api OBS::properties-view Qt::Widgets + AJA::LibAJANTV2) if(OS_MACOS) find_library(IOKIT_FRAMEWORK Iokit) diff --git a/UI/frontend-plugins/decklink-output-ui/CMakeLists.txt b/UI/frontend-plugins/decklink-output-ui/CMakeLists.txt index f8e9a356f..db08c2aa5 100644 --- a/UI/frontend-plugins/decklink-output-ui/CMakeLists.txt +++ b/UI/frontend-plugins/decklink-output-ui/CMakeLists.txt @@ -20,22 +20,8 @@ endif() add_library(decklink-output-ui MODULE) add_library(OBS::decklink-output-ui ALIAS decklink-output-ui) -if(NOT TARGET OBS::qt-plain-text-edit) - add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/plain-text-edit" "${CMAKE_BINARY_DIR}/shared/qt/plain-text-edit") -endif() - -if(NOT TARGET OBS::qt-vertical-scroll-area) - add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/vertical-scroll-area" - "${CMAKE_BINARY_DIR}/shared/qt/vertical-scroll-area") -endif() - -if(NOT TARGET OBS::qt-slider-ignorewheel) - add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/slider-ignorewheel" - "${CMAKE_BINARY_DIR}/shared/qt/slider-ignorewheel") -endif() - -if(NOT TARGET OBS::qt-wrappers) - add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/wrappers" "${CMAKE_BINARY_DIR}/shared/qt/wrappers") +if(NOT TARGET OBS::properties-view) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/properties-view" "${CMAKE_BINARY_DIR}/shared/properties-view") endif() target_sources(decklink-output-ui PRIVATE forms/output.ui) @@ -49,11 +35,7 @@ target_link_libraries( decklink-output-ui PRIVATE OBS::libobs OBS::frontend-api - OBS::qt-plain-text-edit - OBS::qt-slider-ignorewheel - OBS::qt-vertical-scroll-area - OBS::qt-wrappers - OBS::ui-support + OBS::properties-view Qt::Widgets "$<$:$>" $<$:X11::X11> diff --git a/UI/frontend-plugins/decklink-output-ui/DecklinkOutputUI.h b/UI/frontend-plugins/decklink-output-ui/DecklinkOutputUI.h index f550a4635..12ba60530 100644 --- a/UI/frontend-plugins/decklink-output-ui/DecklinkOutputUI.h +++ b/UI/frontend-plugins/decklink-output-ui/DecklinkOutputUI.h @@ -1,9 +1,9 @@ #pragma once #include +#include #include "ui_output.h" -#include "../../UI/properties-view.hpp" class DecklinkOutputUI : public QDialog { Q_OBJECT diff --git a/UI/frontend-plugins/decklink-output-ui/cmake/legacy.cmake b/UI/frontend-plugins/decklink-output-ui/cmake/legacy.cmake index e325b55c5..45c9cc2bc 100644 --- a/UI/frontend-plugins/decklink-output-ui/cmake/legacy.cmake +++ b/UI/frontend-plugins/decklink-output-ui/cmake/legacy.cmake @@ -7,22 +7,8 @@ endif() add_library(decklink-output-ui MODULE) add_library(OBS::decklink-output-ui ALIAS decklink-output-ui) -if(NOT TARGET OBS::qt-plain-text-edit) - add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/plain-text-edit" "${CMAKE_BINARY_DIR}/shared/qt/plain-text-edit") -endif() - -if(NOT TARGET OBS::qt-slider-ignorewheel) - add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/slider-ignorewheel" - "${CMAKE_BINARY_DIR}/shared/qt/slider-ignorewheel") -endif() - -if(NOT TARGET OBS::qt-vertical-scroll-area) - add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/vertical-scroll-area" - "${CMAKE_BINARY_DIR}/shared/qt/vertical-scroll-area") -endif() - -if(NOT TARGET OBS::qt-wrappers) - add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/wrappers" "${CMAKE_BINARY_DIR}/shared/qt/wrappers") +if(NOT TARGET OBS::properties-view) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/properties-view" "${CMAKE_BINARY_DIR}/shared/properties-view") endif() find_qt(COMPONENTS Widgets COMPONENTS_LINUX Gui) @@ -40,29 +26,10 @@ endif() target_sources(decklink-output-ui PRIVATE forms/output.ui) -target_sources( - decklink-output-ui - PRIVATE DecklinkOutputUI.cpp - DecklinkOutputUI.h - decklink-ui-main.cpp - decklink-ui-main.h - ${CMAKE_SOURCE_DIR}/UI/double-slider.cpp - ${CMAKE_SOURCE_DIR}/UI/double-slider.hpp - ${CMAKE_SOURCE_DIR}/UI/properties-view.hpp - ${CMAKE_SOURCE_DIR}/UI/properties-view.cpp - ${CMAKE_SOURCE_DIR}/UI/properties-view.moc.hpp - ${CMAKE_SOURCE_DIR}/UI/spinbox-ignorewheel.cpp - ${CMAKE_SOURCE_DIR}/UI/spinbox-ignorewheel.hpp) +target_sources(decklink-output-ui PRIVATE DecklinkOutputUI.cpp DecklinkOutputUI.h decklink-ui-main.cpp + decklink-ui-main.h) -target_link_libraries( - decklink-output-ui - PRIVATE OBS::libobs - OBS::frontend-api - OBS::qt-wrappers - OBS::qt-plain-text-edit - OBS::qt-vertical-scroll-area - OBS::qt-slider-ignorewheel - Qt::Widgets) +target_link_libraries(decklink-output-ui PRIVATE OBS::libobs OBS::frontend-api OBS::properties-view Qt::Widgets) target_compile_features(decklink-output-ui PRIVATE cxx_std_17) diff --git a/UI/frontend-plugins/frontend-tools/CMakeLists.txt b/UI/frontend-plugins/frontend-tools/CMakeLists.txt index 7c9885472..6b88874f1 100644 --- a/UI/frontend-plugins/frontend-tools/CMakeLists.txt +++ b/UI/frontend-plugins/frontend-tools/CMakeLists.txt @@ -14,20 +14,14 @@ endif() add_library(frontend-tools MODULE) add_library(OBS::frontend-tools ALIAS frontend-tools) +if(NOT TARGET OBS::properties-view) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/properties-view" "${CMAKE_BINARY_DIR}/shared/properties-view") +endif() + if(NOT TARGET OBS::qt-plain-text-edit) add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/plain-text-edit" "${CMAKE_BINARY_DIR}/shared/qt/plain-text-edit") endif() -if(NOT TARGET OBS::qt-vertical-scroll-area) - add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/vertical-scroll-area" - "${CMAKE_BINARY_DIR}/shared/qt/vertical-scroll-area") -endif() - -if(NOT TARGET OBS::qt-slider-ignorewheel) - add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/slider-ignorewheel" - "${CMAKE_BINARY_DIR}/shared/qt/slider-ignorewheel") -endif() - if(NOT TARGET OBS::qt-wrappers) add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/wrappers" "${CMAKE_BINARY_DIR}/shared/qt/wrappers") endif() @@ -63,11 +57,9 @@ target_link_libraries( frontend-tools PRIVATE OBS::frontend-api OBS::libobs + OBS::properties-view OBS::qt-plain-text-edit - OBS::qt-slider-ignorewheel - OBS::qt-vertical-scroll-area OBS::qt-wrappers - OBS::ui-support Qt::Widgets "$<$:$>" $<$:X11::X11> diff --git a/UI/frontend-plugins/frontend-tools/cmake/legacy.cmake b/UI/frontend-plugins/frontend-tools/cmake/legacy.cmake index f4001186d..cbfbaa5e0 100644 --- a/UI/frontend-plugins/frontend-tools/cmake/legacy.cmake +++ b/UI/frontend-plugins/frontend-tools/cmake/legacy.cmake @@ -3,20 +3,14 @@ project(frontend-tools) add_library(frontend-tools MODULE) add_library(OBS::frontend-tools ALIAS frontend-tools) +if(NOT TARGET OBS::properties-view) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/properties-view" "${CMAKE_BINARY_DIR}/shared/properties-view") +endif() + if(NOT TARGET OBS::qt-plain-text-edit) add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/plain-text-edit" "${CMAKE_BINARY_DIR}/shared/qt/plain-text-edit") endif() -if(NOT TARGET OBS::qt-slider-ignorewheel) - add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/slider-ignorewheel" - "${CMAKE_BINARY_DIR}/shared/qt/slider-ignorewheel") -endif() - -if(NOT TARGET OBS::qt-vertical-scroll-area) - add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/vertical-scroll-area" - "${CMAKE_BINARY_DIR}/shared/qt/vertical-scroll-area") -endif() - if(NOT TARGET OBS::qt-wrappers) add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/wrappers" "${CMAKE_BINARY_DIR}/shared/qt/wrappers") endif() @@ -37,33 +31,13 @@ endif() target_sources(frontend-tools PRIVATE forms/auto-scene-switcher.ui forms/captions.ui forms/output-timer.ui forms/scripts.ui) -target_sources( - frontend-tools - PRIVATE frontend-tools.c - auto-scene-switcher.hpp - auto-scene-switcher.cpp - output-timer.hpp - tool-helpers.hpp - output-timer.cpp - ${CMAKE_SOURCE_DIR}/UI/double-slider.cpp - ${CMAKE_SOURCE_DIR}/UI/double-slider.hpp - ${CMAKE_SOURCE_DIR}/UI/properties-view.cpp - ${CMAKE_SOURCE_DIR}/UI/properties-view.hpp - ${CMAKE_SOURCE_DIR}/UI/properties-view.moc.hpp - ${CMAKE_SOURCE_DIR}/UI/spinbox-ignorewheel.cpp - ${CMAKE_SOURCE_DIR}/UI/spinbox-ignorewheel.hpp) +target_sources(frontend-tools PRIVATE frontend-tools.c auto-scene-switcher.hpp auto-scene-switcher.cpp output-timer.hpp + tool-helpers.hpp output-timer.cpp) target_compile_features(frontend-tools PRIVATE cxx_std_17) -target_link_libraries( - frontend-tools - PRIVATE OBS::frontend-api - OBS::qt-wrappers - OBS::qt-plain-text-edit - OBS::qt-vertical-scroll-area - OBS::qt-slider-ignorewheel - OBS::libobs - Qt::Widgets) +target_link_libraries(frontend-tools PRIVATE OBS::frontend-api OBS::qt-wrappers OBS::qt-plain-text-edit + OBS::properties-view OBS::libobs Qt::Widgets) if(OS_POSIX AND NOT OS_MACOS) target_link_libraries(frontend-tools PRIVATE Qt::GuiPrivate) diff --git a/UI/frontend-plugins/frontend-tools/scripts.cpp b/UI/frontend-plugins/frontend-tools/scripts.cpp index 3407fc725..2906f7e7a 100644 --- a/UI/frontend-plugins/frontend-tools/scripts.cpp +++ b/UI/frontend-plugins/frontend-tools/scripts.cpp @@ -1,6 +1,5 @@ #include "obs-module.h" #include "scripts.hpp" -#include "../../properties-view.hpp" #include #include @@ -18,6 +17,7 @@ #include #include #include +#include #include #include diff --git a/UI/window-basic-filters.hpp b/UI/window-basic-filters.hpp index 1d170582a..9d9d9999b 100644 --- a/UI/window-basic-filters.hpp +++ b/UI/window-basic-filters.hpp @@ -21,8 +21,7 @@ #include #include #include - -#include "properties-view.hpp" +#include class OBSBasic; class QMenu; diff --git a/UI/window-basic-interaction.hpp b/UI/window-basic-interaction.hpp index 029a5fe08..df6a2b7d2 100644 --- a/UI/window-basic-interaction.hpp +++ b/UI/window-basic-interaction.hpp @@ -22,8 +22,7 @@ #include #include - -#include "properties-view.hpp" +#include class OBSBasic; diff --git a/UI/window-basic-properties.cpp b/UI/window-basic-properties.cpp index 51a88d481..722812265 100644 --- a/UI/window-basic-properties.cpp +++ b/UI/window-basic-properties.cpp @@ -19,9 +19,9 @@ #include "window-basic-properties.hpp" #include "window-basic-main.hpp" #include "display-helpers.hpp" -#include "properties-view.hpp" #include +#include #include #include #include diff --git a/shared/properties-view/CMakeLists.txt b/shared/properties-view/CMakeLists.txt new file mode 100644 index 000000000..b66393fcf --- /dev/null +++ b/shared/properties-view/CMakeLists.txt @@ -0,0 +1,51 @@ +cmake_minimum_required(VERSION 3.22...3.25) + +find_package(Qt6 REQUIRED Core Widgets) + +if(NOT TARGET OBS::qt-wrappers) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/wrappers" "${CMAKE_BINARY_DIR}/shared/qt/wrappers") +endif() + +if(NOT TARGET OBS::qt-plain-text-edit) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/plain-text-edit" "${CMAKE_BINARY_DIR}/shared/qt/plain-text-edit") +endif() + +if(NOT TARGET OBS::qt-vertical-scroll-area) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/vertical-scroll-area" + "${CMAKE_BINARY_DIR}/shared/qt/vertical-scroll-area") +endif() + +if(NOT TARGET OBS::qt-slider-ignorewheel) + add_subdirectory("${CMAKE_SOURCE_DIR}/shared/qt/slider-ignorewheel" + "${CMAKE_BINARY_DIR}/shared/qt/slider-ignorewheel") +endif() + +add_library(properties-view INTERFACE) +add_library(OBS::properties-view ALIAS properties-view) + +target_sources( + properties-view + INTERFACE # cmake-format: sortable + double-slider.cpp + double-slider.hpp + properties-view.cpp + properties-view.hpp + properties-view.moc.hpp + spinbox-ignorewheel.cpp + spinbox-ignorewheel.hpp) +target_include_directories(properties-view INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}") + +if(OS_LINUX AND Qt6_VERSION VERSION_LESS 6.3) + target_compile_options(properties-view INTERFACE -Wno-error=enum-conversion) +endif() + +target_link_libraries( + properties-view + INTERFACE OBS::frontend-api + OBS::libobs + OBS::qt-wrappers + OBS::qt-plain-text-edit + OBS::qt-vertical-scroll-area + OBS::qt-slider-ignorewheel + Qt::Core + Qt::Widgets) diff --git a/UI/double-slider.cpp b/shared/properties-view/double-slider.cpp similarity index 100% rename from UI/double-slider.cpp rename to shared/properties-view/double-slider.cpp diff --git a/UI/double-slider.hpp b/shared/properties-view/double-slider.hpp similarity index 100% rename from UI/double-slider.hpp rename to shared/properties-view/double-slider.hpp diff --git a/UI/properties-view.cpp b/shared/properties-view/properties-view.cpp similarity index 96% rename from UI/properties-view.cpp rename to shared/properties-view/properties-view.cpp index 67b541455..ad861ea7e 100644 --- a/UI/properties-view.cpp +++ b/shared/properties-view/properties-view.cpp @@ -28,7 +28,6 @@ #include "spinbox-ignorewheel.hpp" #include "properties-view.hpp" #include "properties-view.moc.hpp" -#include "obs-app.hpp" #include #include @@ -39,6 +38,7 @@ #include #include #include +#include using namespace std; @@ -106,7 +106,7 @@ void OBSPropertiesView::ReloadProperties() RefreshProperties(); } -#define NO_PROPERTIES_STRING QTStr("Basic.PropertiesWindow.NoProperties") +#define NO_PROPERTIES_STRING QObject::tr("Basic.PropertiesWindow.NoProperties") void OBSPropertiesView::RefreshProperties() { @@ -306,7 +306,7 @@ QWidget *OBSPropertiesView::AddText(obs_property_t *prop, QFormLayout *layout, QLineEdit *edit = new QLineEdit(); QPushButton *show = new QPushButton(); - show->setText(QTStr("Show")); + show->setText(tr("Show")); show->setCheckable(true); edit->setText(QT_UTF8(val)); edit->setEchoMode(QLineEdit::Password); @@ -318,7 +318,7 @@ QWidget *OBSPropertiesView::AddText(obs_property_t *prop, QFormLayout *layout, connect(show, &QAbstractButton::toggled, info, &WidgetInfo::TogglePasswordText); connect(show, &QAbstractButton::toggled, [=](bool hide) { - show->setText(hide ? QTStr("Hide") : QTStr("Show")); + show->setText(hide ? tr("Hide") : tr("Show")); }); children.emplace_back(info); @@ -345,7 +345,7 @@ QWidget *OBSPropertiesView::AddText(obs_property_t *prop, QFormLayout *layout, label = new QLabel(desc); if (long_desc != NULL && !info_label->text().isEmpty()) { - QString file = !App()->IsThemeDark() + QString file = !obs_frontend_is_theme_dark() ? ":/res/images/help.svg" : ":/res/images/help_light.svg"; QString lStr = "%1