| | |
| | | void CoreWindowAgentPrivate::init() { |
| | | } |
| | | |
| | | bool CoreWindowAgentPrivate::setup(QWindow *window, WindowItemDelegate *delegate) { |
| | | Q_ASSERT(window); |
| | | if (!window) { |
| | | return false; |
| | | } |
| | | |
| | | auto handler = |
| | | AbstractWindowContext *CoreWindowAgentPrivate::createContext() const { |
| | | return |
| | | #ifdef Q_OS_WINDOWS |
| | | new Win32WindowContext(window, delegate) |
| | | new Win32WindowContext() |
| | | #else |
| | | new QtWindowContext(window, delegate) |
| | | new QtWindowContext() |
| | | #endif |
| | | ; |
| | | if (!handler->setup()) { |
| | | delete handler; |
| | | ; |
| | | } |
| | | |
| | | |
| | | bool CoreWindowAgentPrivate::setup(QObject *host, WindowItemDelegate *delegate) { |
| | | std::unique_ptr<AbstractWindowContext> ctx(createContext()); |
| | | if (!ctx->setup(host, delegate)) { |
| | | return false; |
| | | } |
| | | context.reset(handler); |
| | | context = std::move(ctx); |
| | | return true; |
| | | } |
| | | |