summaryrefslogtreecommitdiff
path: root/svx/source
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2021-02-19 12:51:39 +0000
committerCaolán McNamara <caolanm@redhat.com>2021-02-19 16:10:44 +0100
commit91dffd7424a4522440a84fca2262a1701aaf4e8b (patch)
tree5088b564613121571642d5dd30af1b09c6495ee3 /svx/source
parent84a3b4d7635d0a5819e8b376efa4d47e74612739 (diff)
weld rows menu
Change-Id: I0dd56e2c236b15b057ddd0f2d93019b783d457d0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111218 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'svx/source')
-rw-r--r--svx/source/fmcomp/gridctrl.cxx32
-rw-r--r--svx/source/stbctrls/pszctrl.cxx1
2 files changed, 17 insertions, 16 deletions
diff --git a/svx/source/fmcomp/gridctrl.cxx b/svx/source/fmcomp/gridctrl.cxx
index 3bdec10d7145..1d1108a1a88d 100644
--- a/svx/source/fmcomp/gridctrl.cxx
+++ b/svx/source/fmcomp/gridctrl.cxx
@@ -43,11 +43,11 @@
#include <com/sun/star/container/XIndexAccess.hpp>
#include <tools/diagnose_ex.h>
#include <tools/debug.hxx>
-#include <vcl/builder.hxx>
-#include <vcl/menu.hxx>
#include <vcl/settings.hxx>
#include <vcl/commandevent.hxx>
#include <vcl/svapp.hxx>
+#include <vcl/weld.hxx>
+#include <vcl/weldutils.hxx>
#include <svx/strings.hrc>
@@ -2408,14 +2408,14 @@ sal_uInt32 DbGridControl::GetTotalCellWidth(sal_Int32 nRow, sal_uInt16 nColId)
return 30; // FIXME magic number for default cell width
}
-void DbGridControl::PreExecuteRowContextMenu(PopupMenu& rMenu)
+void DbGridControl::PreExecuteRowContextMenu(weld::Menu& rMenu)
{
bool bDelete = (m_nOptions & DbGridControlOptions::Delete) && GetSelectRowCount() && !IsCurrentAppending();
// if only a blank row is selected then do not delete
bDelete = bDelete && !((m_nOptions & DbGridControlOptions::Insert) && GetSelectRowCount() == 1 && IsRowSelected(GetRowCount() - 1));
- rMenu.EnableItem(rMenu.GetItemId("delete"), bDelete);
- rMenu.EnableItem(rMenu.GetItemId("save"), IsModified());
+ rMenu.set_visible("delete", bDelete);
+ rMenu.set_visible("save", IsModified());
// the undo is more difficult
bool bCanUndo = IsModified();
@@ -2424,21 +2424,21 @@ void DbGridControl::PreExecuteRowContextMenu(PopupMenu& rMenu)
nState = m_aMasterStateProvider.Call(DbGridControlNavigationBarState::Undo);
bCanUndo &= ( 0 != nState );
- rMenu.EnableItem(rMenu.GetItemId("undo"), bCanUndo);
+ rMenu.set_visible("undo", bCanUndo);
}
-void DbGridControl::PostExecuteRowContextMenu(const PopupMenu& rMenu, sal_uInt16 nExecutionResult)
+void DbGridControl::PostExecuteRowContextMenu(const OString& rExecutionResult)
{
- if (nExecutionResult == rMenu.GetItemId("delete"))
+ if (rExecutionResult == "delete")
{
// delete asynchronously
if (m_nDeleteEvent)
Application::RemoveUserEvent(m_nDeleteEvent);
m_nDeleteEvent = Application::PostUserEvent(LINK(this,DbGridControl,OnDelete), nullptr, true);
}
- else if (nExecutionResult == rMenu.GetItemId("undo"))
+ else if (rExecutionResult == "undo")
Undo();
- else if (nExecutionResult == rMenu.GetItemId("save"))
+ else if (rExecutionResult == "save")
SaveRow();
}
@@ -2531,12 +2531,14 @@ void DbGridControl::copyCellText(sal_Int32 _nRow, sal_uInt16 _nColId)
void DbGridControl::executeRowContextMenu(const Point& _rPreferredPos)
{
- VclBuilder aBuilder(nullptr, AllSettings::GetUIRootDir(), "svx/ui/rowsmenu.ui", "");
- VclPtr<PopupMenu> aContextMenu(aBuilder.get_menu("menu"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(nullptr, "svx/ui/rowsmenu.ui"));
+ std::unique_ptr<weld::Menu> xContextMenu(xBuilder->weld_menu("menu"));
- PreExecuteRowContextMenu(*aContextMenu );
- aContextMenu->RemoveDisabledEntries( true, true );
- PostExecuteRowContextMenu(*aContextMenu, aContextMenu->Execute(this, _rPreferredPos));
+ tools::Rectangle aRect(_rPreferredPos, Size(1,1));
+ weld::Window* pParent = weld::GetPopupParent(*this, aRect);
+
+ PreExecuteRowContextMenu(*xContextMenu);
+ PostExecuteRowContextMenu(xContextMenu->popup_at_rect(pParent, aRect));
}
void DbGridControl::Command(const CommandEvent& rEvt)
diff --git a/svx/source/stbctrls/pszctrl.cxx b/svx/source/stbctrls/pszctrl.cxx
index 2c2ef29b1574..e3539a5e7c5b 100644
--- a/svx/source/stbctrls/pszctrl.cxx
+++ b/svx/source/stbctrls/pszctrl.cxx
@@ -21,7 +21,6 @@
#include <vcl/event.hxx>
#include <vcl/fieldvalues.hxx>
#include <vcl/status.hxx>
-#include <vcl/menu.hxx>
#include <vcl/image.hxx>
#include <vcl/settings.hxx>
#include <vcl/svapp.hxx>