summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVolker Hilsheimer <volker.hilsheimer@qt.io>2023-12-21 11:00:33 +0100
committerVolker Hilsheimer <volker.hilsheimer@qt.io>2023-12-21 18:38:01 +0100
commit5a0135fafb16203a812163f7ed55c1b981477cb5 (patch)
tree4ff69d44d838fd4f796bf64acf6d812df696c038
parentf83e14b13a32b2cddff45dfdbce8e819c02aa9ca (diff)
Remove the style plugin example
The snippets in the QStylePlugin class documentation show the relevant bits well enough. Pick-to: 6.7 6.6 Fixes: QTBUG-119974 Change-Id: Iba4a37664d64d86a2946f41d131a201ccdcd723b Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
-rw-r--r--examples/widgets/doc/images/stylepluginexample.pngbin15331 -> 0 bytes
-rw-r--r--examples/widgets/doc/src/styleplugin.qdoc133
-rw-r--r--examples/widgets/tools/CMakeLists.txt1
-rw-r--r--examples/widgets/tools/styleplugin/CMakeLists.txt18
-rw-r--r--examples/widgets/tools/styleplugin/plugin/CMakeLists.txt41
-rw-r--r--examples/widgets/tools/styleplugin/plugin/plugin.pro34
-rw-r--r--examples/widgets/tools/styleplugin/plugin/simplestyle.cpp9
-rw-r--r--examples/widgets/tools/styleplugin/plugin/simplestyle.h19
-rw-r--r--examples/widgets/tools/styleplugin/plugin/simplestyle.json3
-rw-r--r--examples/widgets/tools/styleplugin/plugin/simplestyleplugin.cpp21
-rw-r--r--examples/widgets/tools/styleplugin/plugin/simplestyleplugin.h23
-rw-r--r--examples/widgets/tools/styleplugin/styleplugin.pro3
-rw-r--r--examples/widgets/tools/styleplugin/stylewindow/CMakeLists.txt30
-rw-r--r--examples/widgets/tools/styleplugin/stylewindow/main.cpp26
-rw-r--r--examples/widgets/tools/styleplugin/stylewindow/stylewindow.cpp25
-rw-r--r--examples/widgets/tools/styleplugin/stylewindow/stylewindow.h17
-rw-r--r--examples/widgets/tools/styleplugin/stylewindow/stylewindow.pro19
-rw-r--r--examples/widgets/tools/tools.pro1
18 files changed, 0 insertions, 423 deletions
diff --git a/examples/widgets/doc/images/stylepluginexample.png b/examples/widgets/doc/images/stylepluginexample.png
deleted file mode 100644
index 9ff69c512b..0000000000
--- a/examples/widgets/doc/images/stylepluginexample.png
+++ /dev/null
Binary files differ
diff --git a/examples/widgets/doc/src/styleplugin.qdoc b/examples/widgets/doc/src/styleplugin.qdoc
deleted file mode 100644
index a41d75ec9e..0000000000
--- a/examples/widgets/doc/src/styleplugin.qdoc
+++ /dev/null
@@ -1,133 +0,0 @@
-// Copyright (C) 2016 The Qt Company Ltd.
-// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
-
-/*!
- \example tools/styleplugin
- \title Style Plugin Example
- \examplecategory {User Interface Components}
- \ingroup examples-widgets-tools
-
- \brief This example shows how to create a plugin that extends Qt with a new
- GUI look and feel.
-
- \image stylepluginexample.png
-
- A plugin in Qt is a class stored in a shared library that can be
- loaded by a QPluginLoader at run-time. When you create plugins in
- Qt, they either extend a Qt application or Qt itself. Writing a
- plugin that extends Qt itself is achieved by inheriting one of the
- plugin \l{Plugin Classes}{base classes}, reimplementing functions
- from that class, and adding a macro. In this example we extend Qt
- by adding a new GUI look and feel (i.e., making a new QStyle
- available). A high-level introduction to plugins is given in the
- plugin \l{How to Create Qt Plugins}{overview document}.
-
- Plugins that provide new styles inherit the QStylePlugin base
- class. Style plugins are loaded by Qt and made available through
- QStyleFactory; we will look at this later. We have implemented \c
- SimpleStylePlugin, which provides \c SimpleStyle. The new style
- contributes to widget styling by changing the text color of the
- text edit widget to red - not a major contribution, but it still
- makes a new style.
-
- The new style is platform agnostic in the sense that it is not
- based on any specific style implementation, but uses QProxyStyle
- to merely tweak the looks in the current application style that
- defaults to the native system style.
-
- \note On some platforms, the native style may overwrite some custom
- stylings, e.g., button background color. In that case, try to run
- your application in another style (e.g., fusion). You may do this
- by passing \c{-style fusion} as a command line argument to your
- application.
-
- We test the plugin with \c StyleWindow, in which we display a
- QTextEdit. The \c SimpleStyle and \c StyleWindow classes do not
- contain any plugin specific functionality and their implementations
- are trivial; we will therefore leap past them and head on to the \c
- SimpleStylePlugin and the \c main() function. After we have looked
- at that, we examine the plugin's \c{.pro} file.
-
-
- \section1 SimpleStylePlugin Class Definition
-
- \c SimpleStylePlugin inherits QStylePlugin and is the plugin
- class.
-
- \snippet tools/styleplugin/plugin/simplestyleplugin.h 0
-
- \c keys() returns a list of style names that this plugin can
- create, while \c create() takes such a string and returns the
- QStyle corresponding to the key. Both functions are pure virtual
- functions reimplemented from QStylePlugin. When an application
- requests an instance of the \c SimpleStyle style, which this
- plugin creates, Qt will create it with this plugin.
-
-
- \section1 SimpleStylePlugin Class Implementation
-
- Here is the implementation of \c keys():
-
- \snippet tools/styleplugin/plugin/simplestyleplugin.cpp 0
-
- Since this plugin only supports one style, we return a QStringList
- with the class name of that style.
-
- Here is the \c create() function:
-
- \snippet tools/styleplugin/plugin/simplestyleplugin.cpp 1
-
- Note that the key for style plugins are case insensitive.
- The case sensitivity varies from plugin to plugin, so you need to
- check this when implementing new plugins.
-
- \section1 The \c main() function
-
- \snippet tools/styleplugin/stylewindow/main.cpp 0
-
- Qt loads the available style plugins when the QApplication object
- is initialized. The QStyleFactory class knows about all styles and
- produces them with \l{QStyleFactory::}{create()} (it is a
- wrapper around all the style plugins).
-
- \section1 The Simple Style Plugin's QMake Project File
-
- The \c SimpleStylePlugin lives in its own directory and has
- its own \c{.pro} file:
-
- \snippet tools/styleplugin/plugin/plugin.pro 0
-
- In the plugin \c{.pro} file we need to set the lib template as we are
- building a shared library instead of an executable. We must also
- set the config to plugin. We set the library to be stored in the
- \c{styles} folder next to the main executable because this is a path
- in which Qt will search for style plugins.
-
- \section2 Using CMake to Set up the Simple Style Plugin
-
- When using CMake, we use \l{qt6_add_plugin}{qt_add_plugin}
- to create the \c simplestyleplugin plugin:
-
- \snippet tools/styleplugin/plugin/CMakeLists.txt 0
-
- On Windows and Linux, we place the plugin into the \c{styles} folder
- next to the main executable, i.e., \c{styleplugin.exe}:
-
- \snippet tools/styleplugin/plugin/CMakeLists.txt 2
-
- And on macOS, we store the \c simplestyleplugin into the
- \c{Contents/PlugIns/styles} folder of the App Bundle.
-
- \snippet tools/styleplugin/plugin/CMakeLists.txt 1
-
- \note On macOS, when creating an App Bundle, store the plugins in
- the \c PlugIns folder and not next to the main executable in
- the \c MacOS folder as the latter will cause issues during signing
- and distribution of the app.
-
- \section1 Related Articles and Examples
-
- In addition to the plugin \l{How to Create Qt Plugins}{overview
- document}, we have other examples and articles that concern
- plugins.
-*/
diff --git a/examples/widgets/tools/CMakeLists.txt b/examples/widgets/tools/CMakeLists.txt
index bcf97b3b50..ae834e26dd 100644
--- a/examples/widgets/tools/CMakeLists.txt
+++ b/examples/widgets/tools/CMakeLists.txt
@@ -4,6 +4,5 @@
qt_internal_add_example(completer)
qt_internal_add_example(customcompleter)
qt_internal_add_example(regularexpression)
-qt_internal_add_example(styleplugin)
qt_internal_add_example(treemodelcompleter)
qt_internal_add_example(undoframework)
diff --git a/examples/widgets/tools/styleplugin/CMakeLists.txt b/examples/widgets/tools/styleplugin/CMakeLists.txt
deleted file mode 100644
index 7e46a7b2af..0000000000
--- a/examples/widgets/tools/styleplugin/CMakeLists.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-# Copyright (C) 2022 The Qt Company Ltd.
-# SPDX-License-Identifier: BSD-3-Clause
-
-cmake_minimum_required(VERSION 3.16)
-project(styleplugin LANGUAGES CXX)
-
-if(NOT DEFINED INSTALL_EXAMPLESDIR)
- set(INSTALL_EXAMPLESDIR "examples")
-endif()
-
-set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/widgets/tools/styleplugin")
-
-find_package(Qt6 REQUIRED COMPONENTS Widgets)
-
-qt_standard_project_setup()
-
-add_subdirectory(stylewindow)
-add_subdirectory(plugin)
diff --git a/examples/widgets/tools/styleplugin/plugin/CMakeLists.txt b/examples/widgets/tools/styleplugin/plugin/CMakeLists.txt
deleted file mode 100644
index 494a4a90f6..0000000000
--- a/examples/widgets/tools/styleplugin/plugin/CMakeLists.txt
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright (C) 2022 The Qt Company Ltd.
-# SPDX-License-Identifier: BSD-3-Clause
-
-#! [0]
-qt_add_plugin(simplestyleplugin
- CLASS_NAME SimpleStylePlugin
- simplestyle.cpp simplestyle.h
- simplestyleplugin.cpp simplestyleplugin.h
-)
-#! [0]
-
-if(QT_FEATURE_debug AND APPLE)
- set_property(TARGET simplestyleplugin
- APPEND_STRING PROPERTY OUTPUT_NAME "_debug")
-endif()
-
-get_target_property(is_bundle styleplugin MACOSX_BUNDLE)
-if(APPLE AND is_bundle)
-#! [1]
- set_target_properties(simplestyleplugin PROPERTIES
- LIBRARY_OUTPUT_DIRECTORY "$<TARGET_BUNDLE_CONTENT_DIR:styleplugin>/PlugIns/styles"
- )
-#! [1]
-else()
-#! [2]
- set_target_properties(simplestyleplugin PROPERTIES
- LIBRARY_OUTPUT_DIRECTORY "$<TARGET_FILE_DIR:styleplugin>/styles"
- )
-#! [2]
-endif()
-
-target_link_libraries(simplestyleplugin PRIVATE
- Qt6::Core
- Qt6::Gui
- Qt6::Widgets
-)
-
-install(TARGETS simplestyleplugin
- RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
- LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
-)
diff --git a/examples/widgets/tools/styleplugin/plugin/plugin.pro b/examples/widgets/tools/styleplugin/plugin/plugin.pro
deleted file mode 100644
index 5ab00016ca..0000000000
--- a/examples/widgets/tools/styleplugin/plugin/plugin.pro
+++ /dev/null
@@ -1,34 +0,0 @@
-#! [0]
-TEMPLATE = lib
-CONFIG += plugin
-QT += widgets
-HEADERS = simplestyle.h \
- simplestyleplugin.h
-SOURCES = simplestyle.cpp \
- simplestyleplugin.cpp
-TARGET = simplestyleplugin
-#! [0]
-win32 {
- CONFIG(debug, release|debug):DESTDIR = ../debug/styles/
- CONFIG(release, release|debug):DESTDIR = ../release/styles/
-} else {
- macos {
- # The non-app-bundle case is not supported with qmake, because
- # the plugin project cannot know whether the app is built
- # as a bundle or not.
- DESTDIR = ../styleplugin.app/Contents/PlugIns/styles/
- contains(QT_CONFIG, debug) {
- TARGET = $$join(TARGET,,,_debug)
- }
- } else {
- DESTDIR = ../styles/
- }
-}
-
-EXAMPLE_FILES += simplestyle.json
-
-# install
-target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tools/styleplugin/styles
-INSTALLS += target
-
-CONFIG += install_ok # Do not cargo-cult this!
diff --git a/examples/widgets/tools/styleplugin/plugin/simplestyle.cpp b/examples/widgets/tools/styleplugin/plugin/simplestyle.cpp
deleted file mode 100644
index fa60d50140..0000000000
--- a/examples/widgets/tools/styleplugin/plugin/simplestyle.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright (C) 2016 The Qt Company Ltd.
-// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-#include "simplestyle.h"
-
-void SimpleStyle::polish(QPalette &palette)
-{
- palette.setBrush(QPalette::Text, Qt::red);
-}
diff --git a/examples/widgets/tools/styleplugin/plugin/simplestyle.h b/examples/widgets/tools/styleplugin/plugin/simplestyle.h
deleted file mode 100644
index 315c4d836c..0000000000
--- a/examples/widgets/tools/styleplugin/plugin/simplestyle.h
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2016 The Qt Company Ltd.
-// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-#ifndef SIMPLESTYLE_H
-#define SIMPLESTYLE_H
-
-#include <QProxyStyle>
-
-class SimpleStyle : public QProxyStyle
-{
- Q_OBJECT
-
-public:
- SimpleStyle() = default;
-
- void polish(QPalette &palette) override;
-};
-
-#endif
diff --git a/examples/widgets/tools/styleplugin/plugin/simplestyle.json b/examples/widgets/tools/styleplugin/plugin/simplestyle.json
deleted file mode 100644
index a708e2aafe..0000000000
--- a/examples/widgets/tools/styleplugin/plugin/simplestyle.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "Keys": [ "simplestyle" ]
-}
diff --git a/examples/widgets/tools/styleplugin/plugin/simplestyleplugin.cpp b/examples/widgets/tools/styleplugin/plugin/simplestyleplugin.cpp
deleted file mode 100644
index f28d22ccc9..0000000000
--- a/examples/widgets/tools/styleplugin/plugin/simplestyleplugin.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2016 The Qt Company Ltd.
-// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-#include "simplestyleplugin.h"
-#include "simplestyle.h"
-
-//! [0]
-QStringList SimpleStylePlugin::keys() const
-{
- return {"SimpleStyle"};
-}
-//! [0]
-
-//! [1]
-QStyle *SimpleStylePlugin::create(const QString &key)
-{
- if (key.toLower() == "simplestyle")
- return new SimpleStyle;
- return nullptr;
-}
-//! [1]
diff --git a/examples/widgets/tools/styleplugin/plugin/simplestyleplugin.h b/examples/widgets/tools/styleplugin/plugin/simplestyleplugin.h
deleted file mode 100644
index 8a3dc45210..0000000000
--- a/examples/widgets/tools/styleplugin/plugin/simplestyleplugin.h
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2016 The Qt Company Ltd.
-// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-#ifndef SIMPLESTYLEPLUGIN_H
-#define SIMPLESTYLEPLUGIN_H
-
-#include <QStylePlugin>
-
-//! [0]
-class SimpleStylePlugin : public QStylePlugin
-{
- Q_OBJECT
- Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QStyleFactoryInterface" FILE "simplestyle.json")
-
-public:
- SimpleStylePlugin() = default;
-
- QStringList keys() const;
- QStyle *create(const QString &key) override;
-};
-//! [0]
-
-#endif
diff --git a/examples/widgets/tools/styleplugin/styleplugin.pro b/examples/widgets/tools/styleplugin/styleplugin.pro
deleted file mode 100644
index 4f120637b0..0000000000
--- a/examples/widgets/tools/styleplugin/styleplugin.pro
+++ /dev/null
@@ -1,3 +0,0 @@
-TEMPLATE = subdirs
-SUBDIRS = stylewindow \
- plugin
diff --git a/examples/widgets/tools/styleplugin/stylewindow/CMakeLists.txt b/examples/widgets/tools/styleplugin/stylewindow/CMakeLists.txt
deleted file mode 100644
index 3c1ac7670f..0000000000
--- a/examples/widgets/tools/styleplugin/stylewindow/CMakeLists.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright (C) 2022 The Qt Company Ltd.
-# SPDX-License-Identifier: BSD-3-Clause
-
-qt_add_executable(styleplugin
- main.cpp
- stylewindow.cpp stylewindow.h
-)
-
-set_target_properties(styleplugin PROPERTIES
- WIN32_EXECUTABLE TRUE
- MACOSX_BUNDLE TRUE
-)
-
-target_link_libraries(styleplugin PRIVATE
- Qt6::Core
- Qt6::Gui
- Qt6::Widgets
-)
-
-if(NOT QT6_IS_SHARED_LIBS_BUILD)
- target_link_libraries(styleplugin PRIVATE
- simplestyleplugin
- )
-endif()
-
-install(TARGETS styleplugin
- RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
- BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
- LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
-)
diff --git a/examples/widgets/tools/styleplugin/stylewindow/main.cpp b/examples/widgets/tools/styleplugin/stylewindow/main.cpp
deleted file mode 100644
index 0b0a295410..0000000000
--- a/examples/widgets/tools/styleplugin/stylewindow/main.cpp
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2016 The Qt Company Ltd.
-// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-#include <QApplication>
-#include <QStyleFactory>
-
-#include "stylewindow.h"
-
-//! [0]
-int main(int argv, char *args[])
-{
- QApplication app(argv, args);
-
- QStyle *style = QStyleFactory::create("simplestyle");
- if (!style)
- qFatal("Cannot load the 'simplestyle' plugin.");
-
- QApplication::setStyle(style);
-
- StyleWindow window;
- window.resize(350, 50);
- window.show();
-
- return app.exec();
-}
-//! [0]
diff --git a/examples/widgets/tools/styleplugin/stylewindow/stylewindow.cpp b/examples/widgets/tools/styleplugin/stylewindow/stylewindow.cpp
deleted file mode 100644
index 9268666c21..0000000000
--- a/examples/widgets/tools/styleplugin/stylewindow/stylewindow.cpp
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2016 The Qt Company Ltd.
-// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-#include <QGridLayout>
-#include <QGroupBox>
-#include <QTextEdit>
-
-#include "stylewindow.h"
-
-StyleWindow::StyleWindow()
-{
- QTextEdit *styledTextEdit = new QTextEdit(tr("The quick brown fox jumps over the lazy dog"));
-
- QGridLayout *layout = new QGridLayout;
- layout->addWidget(styledTextEdit);
-
- QGroupBox *styleBox = new QGroupBox(tr("A simple styled text edit"));
- styleBox->setLayout(layout);
-
- QGridLayout *outerLayout = new QGridLayout;
- outerLayout->addWidget(styleBox, 0, 0);
- setLayout(outerLayout);
-
- setWindowTitle(tr("Style Plugin Example"));
-}
diff --git a/examples/widgets/tools/styleplugin/stylewindow/stylewindow.h b/examples/widgets/tools/styleplugin/stylewindow/stylewindow.h
deleted file mode 100644
index 50fa6b29f7..0000000000
--- a/examples/widgets/tools/styleplugin/stylewindow/stylewindow.h
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2016 The Qt Company Ltd.
-// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-#ifndef STYLEWINDOW_H
-#define STYLEWINDOW_H
-
-#include <QWidget>
-
-class StyleWindow : public QWidget
-{
- Q_OBJECT
-
-public:
- StyleWindow();
-};
-
-#endif
diff --git a/examples/widgets/tools/styleplugin/stylewindow/stylewindow.pro b/examples/widgets/tools/styleplugin/stylewindow/stylewindow.pro
deleted file mode 100644
index cdc1bd2fda..0000000000
--- a/examples/widgets/tools/styleplugin/stylewindow/stylewindow.pro
+++ /dev/null
@@ -1,19 +0,0 @@
-QT += widgets
-
-HEADERS = stylewindow.h
-SOURCES = stylewindow.cpp \
- main.cpp
-
-TARGET = styleplugin
-win32 {
- debug:DESTDIR = ../debug/
- release:DESTDIR = ../release/
-} else {
- DESTDIR = ../
-}
-
-# install
-target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tools/styleplugin
-INSTALLS += target
-
-CONFIG += install_ok # Do not cargo-cult this!
diff --git a/examples/widgets/tools/tools.pro b/examples/widgets/tools/tools.pro
index 533fa25377..a6d483f7e2 100644
--- a/examples/widgets/tools/tools.pro
+++ b/examples/widgets/tools/tools.pro
@@ -3,7 +3,6 @@ SUBDIRS = \
completer \
customcompleter \
regularexpression \
- styleplugin \
treemodelcompleter \
undoframework