More porting away from _qtwidgets
This commit is contained in:
@@ -34,9 +34,9 @@ using namespace KDDockWidgets;
|
||||
class FocusScope::Private : public QObject // clazy:exclude=missing-qobject-macro (breaks unity build with earlier cmake due to including .moc here.)
|
||||
{
|
||||
public:
|
||||
Private(FocusScope *qq, Views::View_qtwidgets<QWidget> *thisWidget)
|
||||
Private(FocusScope *qq, View *thisView)
|
||||
: q(qq)
|
||||
, m_thisWidget(thisWidget)
|
||||
, m_thisView(thisView)
|
||||
{
|
||||
connect(qApp, &QGuiApplication::focusObjectChanged,
|
||||
this, &Private::onFocusObjectChanged);
|
||||
@@ -68,7 +68,7 @@ public:
|
||||
bool isInFocusScope(WidgetType *) const;
|
||||
|
||||
FocusScope *const q;
|
||||
Views::View_qtwidgets<QWidget> *const m_thisWidget;
|
||||
View *const m_thisView = nullptr;
|
||||
bool m_isFocused = false;
|
||||
bool m_inCtor = true;
|
||||
QPointer<WidgetType> m_lastFocusedInScope;
|
||||
@@ -78,8 +78,8 @@ FocusScope::Private::~Private()
|
||||
{
|
||||
}
|
||||
|
||||
FocusScope::FocusScope(Views::View_qtwidgets<QWidget> *thisWidget)
|
||||
: d(new Private(this, thisWidget))
|
||||
FocusScope::FocusScope(View *thisView)
|
||||
: d(new Private(this, thisView))
|
||||
{
|
||||
}
|
||||
|
||||
@@ -106,7 +106,7 @@ void FocusScope::focus(Qt::FocusReason reason)
|
||||
// very useful.
|
||||
d->m_lastFocusedInScope->setFocus(reason);
|
||||
} else {
|
||||
if (auto frame = qobject_cast<Controllers::Frame *>(d->m_thisWidget)) {
|
||||
if (auto frame = d->m_thisView->asFrameController()) {
|
||||
if (auto dw = frame->currentDockWidget()) {
|
||||
if (auto guest = dw->widget()) {
|
||||
if (guest->focusPolicy() != Qt::NoFocus)
|
||||
@@ -115,7 +115,7 @@ void FocusScope::focus(Qt::FocusReason reason)
|
||||
}
|
||||
} else {
|
||||
// Not a use case right now
|
||||
d->m_thisWidget->setFocus(reason);
|
||||
d->m_thisView->setFocus(reason);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -132,7 +132,7 @@ void FocusScope::Private::setIsFocused(bool is)
|
||||
|
||||
void FocusScope::Private::onFocusObjectChanged(QObject *obj)
|
||||
{
|
||||
auto widget = qobject_cast<WidgetType *>(obj);
|
||||
auto widget = qobject_cast<QWidget *>(obj);
|
||||
if (!widget) {
|
||||
setIsFocused(false);
|
||||
return;
|
||||
@@ -152,7 +152,7 @@ bool FocusScope::Private::isInFocusScope(WidgetType *widget) const
|
||||
{
|
||||
WidgetType *p = widget;
|
||||
while (p) {
|
||||
if (p == m_thisWidget)
|
||||
if (p == m_thisView->handle())
|
||||
return true;
|
||||
|
||||
p = p->parentWidget();
|
||||
|
||||
@@ -30,7 +30,7 @@ class DOCKS_EXPORT FocusScope
|
||||
Q_DISABLE_COPY(FocusScope)
|
||||
public:
|
||||
///@brief constructor
|
||||
explicit FocusScope(Views::View_qtwidgets<QWidget> *thisWidget);
|
||||
explicit FocusScope(View *thisView);
|
||||
virtual ~FocusScope();
|
||||
|
||||
///@brief Returns true if this FocusScope is focused.
|
||||
|
||||
@@ -158,6 +158,7 @@ public:
|
||||
virtual void grabMouse() = 0;
|
||||
virtual void releaseMouse() = 0;
|
||||
virtual QScreen *screen() const = 0;
|
||||
virtual void setFocus(Qt::FocusReason) = 0;
|
||||
|
||||
// TODOv2: Check if these two should be in the controller or on view
|
||||
virtual void onLayoutRequest()
|
||||
|
||||
@@ -26,6 +26,8 @@
|
||||
#include "Config.h"
|
||||
#include "FrameworkWidgetFactory.h"
|
||||
|
||||
#include "views_qtwidgets/MainWindow_qtwidgets.h"
|
||||
|
||||
#include <QEvent>
|
||||
#include <QCloseEvent>
|
||||
#include <QTimer>
|
||||
|
||||
@@ -18,8 +18,6 @@
|
||||
#include "controllers/FloatingWindow.h"
|
||||
#include "controllers/SideBar.h"
|
||||
|
||||
#include "views_qtwidgets/MainWindow_qtwidgets.h"
|
||||
|
||||
#include <QCoreApplication>
|
||||
#include <QString>
|
||||
#include <QSize>
|
||||
@@ -65,15 +63,15 @@ public:
|
||||
return nullptr;
|
||||
|
||||
// Note: Don't simply use window(), as the MainWindow might be embedded into something else
|
||||
QWidgetOrQuick *p = q->view()->asQWidget()->parentWidget();
|
||||
auto p = q->view()->parentView();
|
||||
while (p) {
|
||||
if (auto view = qobject_cast<Views::MainWindow_qtwidgets *>(p))
|
||||
return view->mainWindow();
|
||||
if (auto mw = p->asMainWindowController())
|
||||
return mw;
|
||||
|
||||
if (p->isWindow())
|
||||
return nullptr;
|
||||
|
||||
p = p->parentWidget();
|
||||
p = p->parentView();
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
|
||||
@@ -530,8 +530,8 @@ LayoutSaver::FloatingWindow FloatingWindow::serialize() const
|
||||
fw.affinities = affinities();
|
||||
fw.windowState = windowStateOverride();
|
||||
|
||||
auto mainWindow = qobject_cast<Views::MainWindow_qtwidgets *>(view()->asQWidget()->parentWidget());
|
||||
fw.parentIndex = mainWindow ? DockRegistry::self()->mainwindows().indexOf(mainWindow->mainWindow())
|
||||
auto mainWindow = view()->parentView()->asMainWindowController();
|
||||
fw.parentIndex = mainWindow ? DockRegistry::self()->mainwindows().indexOf(mainWindow)
|
||||
: -1;
|
||||
|
||||
return fw;
|
||||
@@ -602,8 +602,7 @@ bool FloatingWindow::isWindow() const
|
||||
|
||||
MainWindow *FloatingWindow::mainWindow() const
|
||||
{
|
||||
auto view = qobject_cast<Views::MainWindow_qtwidgets *>(parent());
|
||||
return view ? view->mainWindow() : nullptr;
|
||||
return view()->parentView()->asMainWindowController();
|
||||
}
|
||||
|
||||
QMargins FloatingWindow::contentMargins() const
|
||||
|
||||
@@ -34,7 +34,6 @@
|
||||
|
||||
#include <QCloseEvent>
|
||||
#include <QTimer>
|
||||
#include <qobject.h>
|
||||
|
||||
#define MARGIN_THRESHOLD 100
|
||||
|
||||
@@ -67,7 +66,7 @@ static StackOptions tabWidgetOptions(FrameOptions options)
|
||||
|
||||
Frame::Frame(View *parent, FrameOptions options, int userType)
|
||||
: Controller(Type::Frame, Config::self().frameworkWidgetFactory()->createFrame(this, parent))
|
||||
, FocusScope(static_cast<Views::View_qtwidgets<QWidget> *>(view()->asQWidget())) // TODO
|
||||
, FocusScope(view())
|
||||
, m_tabWidget(new Controllers::Stack(this, tabWidgetOptions(options)))
|
||||
, m_titleBar(new Controllers::TitleBar(this))
|
||||
, m_options(actualOptions(options))
|
||||
@@ -80,7 +79,7 @@ Frame::Frame(View *parent, FrameOptions options, int userType)
|
||||
connect(m_tabWidget, &Controllers::Stack::currentTabChanged,
|
||||
this, &Frame::onCurrentTabChanged);
|
||||
|
||||
setLayoutWidget(qobject_cast<LayoutWidget *>(parent ? parent->asQWidget() : nullptr)); // TODO
|
||||
setLayoutWidget(qobject_cast<LayoutWidget *>(parent ? parent->asQObject() : nullptr)); // TODO
|
||||
|
||||
view()->init();
|
||||
|
||||
|
||||
@@ -19,14 +19,6 @@
|
||||
#include <QString>
|
||||
#include <QIcon>
|
||||
|
||||
namespace KDDockWidgets {
|
||||
|
||||
namespace Views {
|
||||
class FloatingWindow_qtwidgets;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
namespace KDDockWidgets::Controllers {
|
||||
|
||||
class Frame;
|
||||
@@ -133,7 +125,6 @@ protected:
|
||||
|
||||
private:
|
||||
friend class ::TestDocks;
|
||||
friend class Views::FloatingWindow_qtwidgets;
|
||||
|
||||
void updateFloatButton();
|
||||
void updateCloseButton();
|
||||
|
||||
@@ -238,3 +238,8 @@ QScreen *ViewWrapper_qtwidgets::screen() const
|
||||
{
|
||||
return m_widget->screen();
|
||||
}
|
||||
|
||||
void ViewWrapper_qtwidgets::setFocus(Qt::FocusReason reason)
|
||||
{
|
||||
m_widget->setFocus(reason);
|
||||
}
|
||||
|
||||
@@ -48,6 +48,7 @@ public:
|
||||
void grabMouse() override;
|
||||
void releaseMouse() override;
|
||||
QScreen *screen() const override;
|
||||
void setFocus(Qt::FocusReason) override;
|
||||
|
||||
private:
|
||||
QWidget *const m_widget;
|
||||
|
||||
@@ -352,6 +352,11 @@ public:
|
||||
return QWidget::screen();
|
||||
}
|
||||
|
||||
void setFocus(Qt::FocusReason reason) override
|
||||
{
|
||||
return QWidget::setFocus(reason);
|
||||
}
|
||||
|
||||
protected:
|
||||
bool event(QEvent *e) override
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user