Ver Fonte

!1 fix popup windows
* fix popup windows

goodl3000 há 6 meses atrás
pai
commit
3ec78f4c36

+ 11 - 2
src/widgets/attachmentpopup.cpp

@@ -8,6 +8,7 @@
 #include <QFileDialog>
 #include <QInputDialog>
 #include <QTimer>
+#include <QWidgetAction>
 
 #include "propertydefs.h"
 
@@ -46,7 +47,8 @@ AttachmentPopup::AttachmentPopup(QToolButton *p_btn, QWidget *p_parent)
 
 void AttachmentPopup::setupUI()
 {
-    auto mainLayout = new QVBoxLayout(this);
+    QWidget *widget = new QWidget{};
+    auto mainLayout = new QVBoxLayout(widget);
 
     const auto &themeMgr = VNoteX::getInst().getThemeMgr();
 
@@ -202,7 +204,14 @@ void AttachmentPopup::setupUI()
             });
     mainLayout->addWidget(m_viewer);
 
-    setMinimumSize(320, 384);
+    widget->setMinimumSize(320, 384);
+
+
+    auto act = new QWidgetAction(this);
+    // @act will own @p_widget.
+    act->setDefaultWidget(widget);
+    addAction(act);
+
 }
 
 QToolButton *AttachmentPopup::createButton()

+ 8 - 5
src/widgets/outlinepopup.cpp

@@ -2,6 +2,7 @@
 
 #include <QVBoxLayout>
 #include <QToolButton>
+#include <QWidgetAction>
 
 #include <core/global.h>
 #include <utils/widgetutils.h>
@@ -23,13 +24,15 @@ OutlinePopup::OutlinePopup(QToolButton *p_btn, QWidget *p_parent)
 
 void OutlinePopup::setupUI()
 {
-    auto mainLayout = new QVBoxLayout(this);
-    WidgetUtils::setContentsMargins(mainLayout);
-
     m_viewer = new OutlineViewer(tr("Outline"), this);
-    mainLayout->addWidget(m_viewer);
+    m_viewer->setMinimumSize(320, 384);
+
+    auto act = new QWidgetAction(this);
+    // @act will own @p_widget.
+    act->setDefaultWidget(m_viewer);
+    addAction(act);
+
 
-    setMinimumSize(320, 384);
 }
 
 void OutlinePopup::setOutlineProvider(const QSharedPointer<OutlineProvider> &p_provider)

+ 8 - 2
src/widgets/tagpopup.cpp

@@ -2,6 +2,7 @@
 
 #include <QHBoxLayout>
 #include <QVBoxLayout>
+#include <QWidgetAction>
 
 #include <utils/widgetutils.h>
 #include <buffer/buffer.h>
@@ -30,9 +31,14 @@ TagPopup::TagPopup(QToolButton *p_btn, QWidget *p_parent)
 void TagPopup::setupUI()
 {
     m_tagViewer = new TagViewer(true, this);
-    setCentralWidget(m_tagViewer);
+    //setCentralWidget(m_tagViewer);
 
-    setMinimumSize(256, 320);
+    m_tagViewer->setMinimumSize(256, 320);
+
+    auto act = new QWidgetAction(this);
+    // @act will own @p_widget.
+    act->setDefaultWidget(m_tagViewer);
+    addAction(act);
 }
 
 void TagPopup::setBuffer(Buffer *p_buffer)

+ 6 - 5
src/widgets/wordcountpopup.cpp

@@ -4,6 +4,7 @@
 #include <QLabel>
 #include <QGroupBox>
 #include <QPointer>
+#include <QWidgetAction>
 
 #include <utils/widgetutils.h>
 
@@ -70,11 +71,11 @@ void WordCountPopup::updateCount(const ViewWindow::WordCountInfo &p_info)
 
 void WordCountPopup::setupUI()
 {
-    QWidget *mainWidget = new QWidget(this);
-    setCentralWidget(mainWidget);
+    m_panel = new WordCountPanel(this);
 
-    auto mainLayout = new QVBoxLayout(mainWidget);
 
-    m_panel = new WordCountPanel(mainWidget);
-    mainLayout->addWidget(m_panel);
+    auto act = new QWidgetAction(this);
+    // @act will own @p_widget.
+    act->setDefaultWidget(m_panel);
+    addAction(act);
 }