mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-01-27 12:35:46 +00:00
Add an initial Qt6 support
This commit is contained in:
parent
72efd3a650
commit
7e2aedf637
@ -934,7 +934,7 @@ printf "Qt ${QT_VER}... "
|
||||
else
|
||||
DLLSUFFIX=""
|
||||
fi
|
||||
add_runtime_dlls $CONFIGURATION "$(pwd)/bin/Qt5"{Core,Gui,Network,OpenGL,Widgets}${DLLSUFFIX}.dll
|
||||
add_runtime_dlls $CONFIGURATION "$(pwd)/bin/Qt${QT_VER:0:1}"{Core,Gui,Network,OpenGL,Widgets}${DLLSUFFIX}.dll
|
||||
add_qt_platform_dlls $CONFIGURATION "$(pwd)/plugins/platforms/qwindows${DLLSUFFIX}.dll"
|
||||
add_qt_style_dlls $CONFIGURATION "$(pwd)/plugins/styles/qwindowsvistastyle${DLLSUFFIX}.dll"
|
||||
done
|
||||
|
@ -131,7 +131,7 @@ configure_file ("${OpenMW_SOURCE_DIR}/docs/mainpage.hpp.cmake" "${OpenMW_BINARY_
|
||||
|
||||
option(BOOST_STATIC "Link static build of Boost into the binaries" FALSE)
|
||||
option(SDL2_STATIC "Link static build of SDL into the binaries" FALSE)
|
||||
option(QT_STATIC "Link static build of QT into the binaries" FALSE)
|
||||
option(QT_STATIC "Link static build of Qt into the binaries" FALSE)
|
||||
|
||||
option(OPENMW_USE_SYSTEM_BULLET "Use system provided bullet physics library" ON)
|
||||
if(OPENMW_USE_SYSTEM_BULLET)
|
||||
@ -236,10 +236,14 @@ find_package(OpenGL REQUIRED)
|
||||
find_package(LZ4 REQUIRED)
|
||||
|
||||
if (USE_QT)
|
||||
find_package(Qt5Core 5.12 REQUIRED)
|
||||
find_package(Qt5Widgets REQUIRED)
|
||||
find_package(Qt5Network REQUIRED)
|
||||
find_package(Qt5OpenGL REQUIRED)
|
||||
find_package(Qt5 5.15 COMPONENTS Core Widgets Network OpenGL)
|
||||
if (Qt5_FOUND)
|
||||
message(STATUS "Using Qt5")
|
||||
else()
|
||||
find_package(Qt6 6.4 COMPONENTS Core Widgets Network OpenGL REQUIRED)
|
||||
message(STATUS "Using Qt6")
|
||||
message(STATUS "Warning: Qt6 support is experimental and incomplete")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(USED_OSG_COMPONENTS
|
||||
@ -618,7 +622,7 @@ endif (CMAKE_CXX_COMPILER_ID STREQUAL GNU OR CMAKE_CXX_COMPILER_ID STREQUAL Clan
|
||||
add_subdirectory (extern/osg-ffmpeg-videoplayer)
|
||||
add_subdirectory (extern/oics)
|
||||
add_subdirectory (extern/Base64)
|
||||
if (BUILD_OPENCS)
|
||||
if (BUILD_OPENCS AND Qt5_FOUND)
|
||||
add_subdirectory (extern/osgQt)
|
||||
endif()
|
||||
|
||||
@ -815,13 +819,13 @@ if (OPENMW_OSX_DEPLOYMENT AND APPLE)
|
||||
message(FATAL_ERROR "macOS packaging requires CMake 3.19 or higher to sign macOS app bundles.")
|
||||
endif ()
|
||||
|
||||
get_property(QT_COCOA_PLUGIN_PATH TARGET Qt5::QCocoaIntegrationPlugin PROPERTY LOCATION_RELEASE)
|
||||
get_property(QT_COCOA_PLUGIN_PATH TARGET Qt::QCocoaIntegrationPlugin PROPERTY LOCATION_RELEASE)
|
||||
get_filename_component(QT_COCOA_PLUGIN_DIR "${QT_COCOA_PLUGIN_PATH}" DIRECTORY)
|
||||
get_filename_component(QT_COCOA_PLUGIN_GROUP "${QT_COCOA_PLUGIN_DIR}" NAME)
|
||||
get_filename_component(QT_COCOA_PLUGIN_NAME "${QT_COCOA_PLUGIN_PATH}" NAME)
|
||||
configure_file("${QT_COCOA_PLUGIN_PATH}" "${APP_BUNDLE_DIR}/Contents/PlugIns/${QT_COCOA_PLUGIN_GROUP}/${QT_COCOA_PLUGIN_NAME}" COPYONLY)
|
||||
|
||||
get_property(QT_QMACSTYLE_PLUGIN_PATH TARGET Qt5::QMacStylePlugin PROPERTY LOCATION_RELEASE)
|
||||
get_property(QT_QMACSTYLE_PLUGIN_PATH TARGET Qt::QMacStylePlugin PROPERTY LOCATION_RELEASE)
|
||||
get_filename_component(QT_QMACSTYLE_PLUGIN_DIR "${QT_QMACSTYLE_PLUGIN_PATH}" DIRECTORY)
|
||||
get_filename_component(QT_QMACSTYLE_PLUGIN_GROUP "${QT_QMACSTYLE_PLUGIN_DIR}" NAME)
|
||||
get_filename_component(QT_QMACSTYLE_PLUGIN_NAME "${QT_QMACSTYLE_PLUGIN_PATH}" NAME)
|
||||
|
@ -54,8 +54,8 @@ if(WIN32)
|
||||
set(QT_USE_QTMAIN TRUE)
|
||||
endif(WIN32)
|
||||
|
||||
QT5_ADD_RESOURCES(RCC_SRCS ${CMAKE_SOURCE_DIR}/files/launcher/launcher.qrc)
|
||||
QT5_WRAP_UI(UI_HDRS ${LAUNCHER_UI})
|
||||
QT_ADD_RESOURCES(RCC_SRCS ${CMAKE_SOURCE_DIR}/files/launcher/launcher.qrc)
|
||||
QT_WRAP_UI(UI_HDRS ${LAUNCHER_UI})
|
||||
|
||||
include_directories(${CMAKE_CURRENT_BINARY_DIR})
|
||||
if(NOT WIN32)
|
||||
@ -82,7 +82,7 @@ target_link_libraries(openmw-launcher
|
||||
components_qt
|
||||
)
|
||||
|
||||
target_link_libraries(openmw-launcher Qt5::Widgets Qt5::Core)
|
||||
target_link_libraries(openmw-launcher Qt::Widgets Qt::Core)
|
||||
|
||||
if (BUILD_WITH_CODE_COVERAGE)
|
||||
add_definitions (--coverage)
|
||||
|
@ -149,8 +149,8 @@ if(WIN32)
|
||||
set(QT_USE_QTMAIN TRUE)
|
||||
endif(WIN32)
|
||||
|
||||
qt5_wrap_ui(OPENCS_UI_HDR ${OPENCS_UI})
|
||||
qt5_add_resources(OPENCS_RES_SRC ${OPENCS_RES})
|
||||
qt_wrap_ui(OPENCS_UI_HDR ${OPENCS_UI})
|
||||
qt_add_resources(OPENCS_RES_SRC ${OPENCS_RES})
|
||||
|
||||
# for compiled .ui files
|
||||
include_directories(${CMAKE_CURRENT_BINARY_DIR})
|
||||
@ -228,7 +228,7 @@ target_link_libraries(openmw-cs
|
||||
components_qt
|
||||
)
|
||||
|
||||
target_link_libraries(openmw-cs Qt5::Widgets Qt5::Core Qt5::Network Qt5::OpenGL)
|
||||
target_link_libraries(openmw-cs Qt::Widgets Qt::Core Qt::Network Qt::OpenGL)
|
||||
|
||||
if (WIN32)
|
||||
target_link_libraries(openmw-cs ${Boost_LOCALE_LIBRARY})
|
||||
|
@ -66,11 +66,13 @@ void CSMPrefs::State::declare()
|
||||
.addValue(scrollbarOnly)
|
||||
.addValue("Grow Only", "The view window grows as subviews are added. No scrollbars.")
|
||||
.addValue("Grow then Scroll", "The view window grows. The scrollbar appears once it cannot grow any further.");
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
|
||||
declareBool("grow-limit", "Grow Limit Screen", false)
|
||||
.setTooltip(
|
||||
"When \"Grow then Scroll\" option is selected, the window size grows to"
|
||||
" the width of the virtual desktop. \nIf this option is selected the the window growth"
|
||||
"is limited to the current screen.");
|
||||
#endif
|
||||
|
||||
declareCategory("Records");
|
||||
EnumValue iconAndText("Icon and Text");
|
||||
|
@ -2,7 +2,11 @@
|
||||
|
||||
#include <QApplication>
|
||||
#include <QCloseEvent>
|
||||
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
|
||||
#include <QDesktopWidget>
|
||||
#endif
|
||||
|
||||
#include <QMenuBar>
|
||||
#include <QMessageBox>
|
||||
#include <QScreen>
|
||||
@ -651,7 +655,11 @@ void CSVDoc::View::addSubView(const CSMWorld::UniversalId& id, const std::string
|
||||
//
|
||||
mScrollbarOnly = windows["mainwindow-scrollbar"].toString() == "Scrollbar Only";
|
||||
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
|
||||
updateWidth(windows["grow-limit"].isTrue(), minWidth);
|
||||
#else
|
||||
updateWidth(true, minWidth);
|
||||
#endif
|
||||
|
||||
mSubViewWindow.addDockWidget(Qt::TopDockWidgetArea, view);
|
||||
|
||||
@ -1098,12 +1106,15 @@ void CSVDoc::View::merge()
|
||||
|
||||
void CSVDoc::View::updateWidth(bool isGrowLimit, int minSubViewWidth)
|
||||
{
|
||||
QDesktopWidget* dw = QApplication::desktop();
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
|
||||
QRect rect;
|
||||
if (isGrowLimit)
|
||||
rect = dw->screenGeometry(this);
|
||||
rect = QApplication::screenAt(pos())->geometry();
|
||||
else
|
||||
rect = QGuiApplication::screens().at(dw->screenNumber(this))->geometry();
|
||||
rect = QGuiApplication::screens().at(QApplication::desktop()->screenNumber(this))->geometry();
|
||||
#else
|
||||
QRect rect = QApplication::screenAt(pos())->geometry();
|
||||
#endif
|
||||
|
||||
if (!mScrollbarOnly && mScroll && mSubViews.size() > 1)
|
||||
{
|
||||
|
@ -13,7 +13,9 @@
|
||||
#include <apps/opencs/view/render/lightingday.hpp>
|
||||
#include <apps/opencs/view/render/lightingnight.hpp>
|
||||
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
|
||||
#include <extern/osgQt/GraphicsWindowQt>
|
||||
#endif
|
||||
|
||||
#include <osg/Array>
|
||||
#include <osg/Camera>
|
||||
@ -90,6 +92,7 @@ namespace CSVRender
|
||||
mView = new osgViewer::View;
|
||||
updateCameraParameters(traits->width / static_cast<double>(traits->height));
|
||||
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
|
||||
osg::ref_ptr<osgQt::GraphicsWindowQt> window = new osgQt::GraphicsWindowQt(traits.get());
|
||||
QLayout* layout = new QHBoxLayout(this);
|
||||
layout->setContentsMargins(0, 0, 0, 0);
|
||||
@ -97,6 +100,7 @@ namespace CSVRender
|
||||
setLayout(layout);
|
||||
|
||||
mView->getCamera()->setGraphicsContext(window);
|
||||
#endif
|
||||
mView->getCamera()->setViewport(new osg::Viewport(0, 0, traits->width, traits->height));
|
||||
|
||||
SceneUtil::LightManager* lightMgr = new SceneUtil::LightManager;
|
||||
|
@ -141,6 +141,7 @@ void CSVWorld::Table::contextMenuEvent(QContextMenuEvent* event)
|
||||
}
|
||||
}
|
||||
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
|
||||
if (selectedRows.size() == 1)
|
||||
{
|
||||
int row = selectedRows.begin()->row();
|
||||
@ -172,6 +173,7 @@ void CSVWorld::Table::contextMenuEvent(QContextMenuEvent* event)
|
||||
menu.addAction(mPreviewAction);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if (mHelpAction)
|
||||
menu.addAction(mHelpAction);
|
||||
@ -388,14 +390,18 @@ CSVWorld::Table::Table(const CSMWorld::UniversalId& id, bool createAndDelete, bo
|
||||
mViewAction->setIcon(QIcon(":/cell.png"));
|
||||
addAction(mViewAction);
|
||||
CSMPrefs::Shortcut* viewShortcut = new CSMPrefs::Shortcut("table-view", this);
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
|
||||
viewShortcut->associateAction(mViewAction);
|
||||
#endif
|
||||
|
||||
mPreviewAction = new QAction(tr("Preview"), this);
|
||||
connect(mPreviewAction, &QAction::triggered, this, &Table::previewRecord);
|
||||
mPreviewAction->setIcon(QIcon(":edit-preview"));
|
||||
addAction(mPreviewAction);
|
||||
CSMPrefs::Shortcut* previewShortcut = new CSMPrefs::Shortcut("table-preview", this);
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
|
||||
previewShortcut->associateAction(mPreviewAction);
|
||||
#endif
|
||||
|
||||
mExtendedDeleteAction = new QAction(tr("Extended Delete Record"), this);
|
||||
connect(mExtendedDeleteAction, &QAction::triggered, this, &Table::executeExtendedDelete);
|
||||
|
@ -62,8 +62,8 @@ if(WIN32)
|
||||
set(QT_USE_QTMAIN TRUE)
|
||||
endif(WIN32)
|
||||
|
||||
QT5_ADD_RESOURCES(RCC_SRCS ${CMAKE_SOURCE_DIR}/files/wizard/wizard.qrc)
|
||||
QT5_WRAP_UI(UI_HDRS ${WIZARD_UI})
|
||||
QT_ADD_RESOURCES(RCC_SRCS ${CMAKE_SOURCE_DIR}/files/wizard/wizard.qrc)
|
||||
QT_WRAP_UI(UI_HDRS ${WIZARD_UI})
|
||||
|
||||
include_directories(${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
@ -83,7 +83,7 @@ target_link_libraries(openmw-wizard
|
||||
components_qt
|
||||
)
|
||||
|
||||
target_link_libraries(openmw-wizard Qt5::Widgets Qt5::Core)
|
||||
target_link_libraries(openmw-wizard Qt::Widgets Qt::Core)
|
||||
|
||||
if (OPENMW_USE_UNSHIELD)
|
||||
target_link_libraries(openmw-wizard ${LIBUNSHIELD_LIBRARIES})
|
||||
|
@ -387,7 +387,7 @@ if (USE_QT)
|
||||
qtconfigpath
|
||||
)
|
||||
|
||||
QT5_WRAP_UI(ESM_UI_HDR ${ESM_UI})
|
||||
QT_WRAP_UI(ESM_UI_HDR ${ESM_UI})
|
||||
endif()
|
||||
|
||||
if (CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
||||
@ -455,7 +455,7 @@ endif()
|
||||
|
||||
if (USE_QT)
|
||||
add_library(components_qt STATIC ${COMPONENT_QT_FILES} ${ESM_UI_HDR})
|
||||
target_link_libraries(components_qt components Qt5::Widgets Qt5::Core)
|
||||
target_link_libraries(components_qt components Qt::Widgets Qt::Core)
|
||||
target_compile_definitions(components_qt PRIVATE OPENMW_DOC_BASEURL="${OPENMW_DOC_BASEURL}")
|
||||
endif()
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user