diff options
author | Caolán McNamara <caolanm@redhat.com> | 2021-02-17 14:27:06 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2021-02-17 21:55:16 +0100 |
commit | 48d27dc08012b5f0e9adf2053a8d73479bed5938 (patch) | |
tree | 81a424141e367acf33782d7d07cc9108ff1d6112 /dbaccess | |
parent | 48aac3c1d06994d17f20dbdc2ad8add722192ec3 (diff) |
move statusbar into DBTreeListBox container
and convert to weld::Label
Change-Id: Ic3cacf2197895712c6e6b38226f65078320c590f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111071
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'dbaccess')
-rw-r--r-- | dbaccess/source/ui/browser/brwview.cxx | 38 | ||||
-rw-r--r-- | dbaccess/source/ui/control/dbtreelistbox.cxx | 2 | ||||
-rw-r--r-- | dbaccess/source/ui/inc/brwview.hxx | 1 | ||||
-rw-r--r-- | dbaccess/source/ui/inc/dbtreelistbox.hxx | 3 | ||||
-rw-r--r-- | dbaccess/uiconfig/ui/dbtreelist.ui | 38 |
5 files changed, 49 insertions, 33 deletions
diff --git a/dbaccess/source/ui/browser/brwview.cxx b/dbaccess/source/ui/browser/brwview.cxx index b0e3e516511c..4aa7c4c5abb9 100644 --- a/dbaccess/source/ui/browser/brwview.cxx +++ b/dbaccess/source/ui/browser/brwview.cxx @@ -21,7 +21,6 @@ #include <sbagrid.hxx> #include <toolkit/helper/vclunohelper.hxx> #include <comphelper/types.hxx> -#include <vcl/fixed.hxx> #include <vcl/split.hxx> #include <strings.hxx> #include <com/sun/star/form/XLoadable.hpp> @@ -71,7 +70,6 @@ UnoDataBrowserView::UnoDataBrowserView( vcl::Window* pParent, ,m_pTreeView(nullptr) ,m_pSplitter(nullptr) ,m_pVclControl(nullptr) - ,m_pStatus(nullptr) { } @@ -124,8 +122,6 @@ void UnoDataBrowserView::dispose() m_pSplitter.disposeAndClear(); setTreeView(nullptr); - m_pStatus.disposeAndClear(); - try { ::comphelper::disposeComponent(m_xGrid); @@ -167,10 +163,11 @@ void UnoDataBrowserView::showStatus( const OUString& _rStatus ) hideStatus(); else { - if (!m_pStatus) - m_pStatus = VclPtr<FixedText>::Create(this); - m_pStatus->SetText(_rStatus); - m_pStatus->Show(); + if (!m_pTreeView) + return; + weld::Label& rLabel = m_pTreeView->GetStatusBar(); + rLabel.set_label(_rStatus); + rLabel.show(); Resize(); PaintImmediately(); } @@ -178,10 +175,15 @@ void UnoDataBrowserView::showStatus( const OUString& _rStatus ) void UnoDataBrowserView::hideStatus() { - if (!m_pStatus || !m_pStatus->IsVisible()) + if (!m_pTreeView) + return; + weld::Label& rLabel = m_pTreeView->GetStatusBar(); + if (!rLabel.get_visible()) + { // nothing to do return; - m_pStatus->Hide(); + } + rLabel.hide(); Resize(); PaintImmediately(); } @@ -211,20 +213,12 @@ void UnoDataBrowserView::resizeDocumentView(tools::Rectangle& _rPlayground) Point aTreeViewPos( aPlaygroundPos ); Size aTreeViewSize( aSplitPos.X(), aPlaygroundSize.Height() ); - // the status pos and size - if (m_pStatus && m_pStatus->IsVisible()) - { - Size aStatusSize(aPlaygroundPos.X(), GetTextHeight() + 2); - aStatusSize = LogicToPixel(aStatusSize, MapMode(MapUnit::MapAppFont)); - aStatusSize.setWidth( aTreeViewSize.Width() - 2 - 2 ); - - Point aStatusPos( aPlaygroundPos.X() + 2, aTreeViewPos.Y() + aTreeViewSize.Height() - aStatusSize.Height() ); - m_pStatus->SetPosSizePixel( aStatusPos, aStatusSize ); - aTreeViewSize.AdjustHeight( -(aStatusSize.Height()) ); - } - // set the size of treelistbox m_pTreeView->SetPosSizePixel( aTreeViewPos, aTreeViewSize ); + // Call this to trigger InterimItemWindow::Layout immediately, and + // not later on idle so the statusbar will be shown to explain + // a long delay on opening databases + m_pTreeView->Resize(); //set the size of the splitter m_pSplitter->SetPosSizePixel( aSplitPos, Size( aSplitSize.Width(), aPlaygroundSize.Height() ) ); diff --git a/dbaccess/source/ui/control/dbtreelistbox.cxx b/dbaccess/source/ui/control/dbtreelistbox.cxx index 132a659a776f..4c415007709c 100644 --- a/dbaccess/source/ui/control/dbtreelistbox.cxx +++ b/dbaccess/source/ui/control/dbtreelistbox.cxx @@ -56,6 +56,7 @@ using namespace ::com::sun::star::view; InterimDBTreeListBox::InterimDBTreeListBox(vcl::Window* pParent, bool bSQLType) : InterimItemWindow(pParent, "dbaccess/ui/dbtreelist.ui", "DBTreeList") , TreeListBox(m_xBuilder->weld_tree_view("treeview"), bSQLType) + , m_xStatusBar(m_xBuilder->weld_label("statusbar")) { InitControlBase(&GetWidget()); } @@ -68,6 +69,7 @@ InterimDBTreeListBox::~InterimDBTreeListBox() void InterimDBTreeListBox::dispose() { implStopSelectionTimer(); + m_xStatusBar.reset(); m_xTreeView.reset(); InterimItemWindow::dispose(); } diff --git a/dbaccess/source/ui/inc/brwview.hxx b/dbaccess/source/ui/inc/brwview.hxx index 2d8b4f879dc3..0933861b8cf3 100644 --- a/dbaccess/source/ui/inc/brwview.hxx +++ b/dbaccess/source/ui/inc/brwview.hxx @@ -44,7 +44,6 @@ namespace dbaui VclPtr<InterimDBTreeListBox> m_pTreeView; VclPtr<Splitter> m_pSplitter; mutable VclPtr<SbaGridControl> m_pVclControl; // our grid's VCL representation - VclPtr<vcl::Window> m_pStatus; DECL_LINK( SplitHdl, Splitter*, void ); // attribute access diff --git a/dbaccess/source/ui/inc/dbtreelistbox.hxx b/dbaccess/source/ui/inc/dbtreelistbox.hxx index 4838e5c74d10..7beb90a6d69d 100644 --- a/dbaccess/source/ui/inc/dbtreelistbox.hxx +++ b/dbaccess/source/ui/inc/dbtreelistbox.hxx @@ -116,9 +116,12 @@ namespace dbaui class InterimDBTreeListBox : public InterimItemWindow , public TreeListBox { + private: + std::unique_ptr<weld::Label> m_xStatusBar; public: InterimDBTreeListBox(vcl::Window* pParent, bool bSQLType); virtual void dispose() override; + weld::Label& GetStatusBar() { return *m_xStatusBar; } virtual ~InterimDBTreeListBox() override; void show_container() { m_xContainer->show(); } protected: diff --git a/dbaccess/uiconfig/ui/dbtreelist.ui b/dbaccess/uiconfig/ui/dbtreelist.ui index e5c692953b62..aa875dd74c83 100644 --- a/dbaccess/uiconfig/ui/dbtreelist.ui +++ b/dbaccess/uiconfig/ui/dbtreelist.ui @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.36.0 --> +<!-- Generated with glade 3.38.2 --> <interface domain="dba"> <requires lib="gtk+" version="3.20"/> <object class="GtkTreeStore" id="liststore1"> @@ -21,29 +21,30 @@ </columns> </object> <object class="GtkBox" id="DBTreeList"> - <property name="can_focus">False</property> - <property name="no_show_all">True</property> + <property name="can-focus">False</property> + <property name="no-show-all">True</property> <property name="hexpand">True</property> <property name="vexpand">True</property> - <property name="border_width">0</property> + <property name="border-width">0</property> + <property name="orientation">vertical</property> <child> <object class="GtkScrolledWindow"> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can-focus">True</property> <property name="hexpand">True</property> <property name="vexpand">True</property> <child> <object class="GtkTreeView" id="treeview"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> + <property name="can-focus">True</property> + <property name="receives-default">True</property> <property name="hexpand">True</property> <property name="vexpand">True</property> <property name="model">liststore1</property> - <property name="headers_visible">False</property> + <property name="headers-visible">False</property> <property name="reorderable">True</property> - <property name="search_column">2</property> - <property name="enable_tree_lines">True</property> + <property name="search-column">2</property> + <property name="enable-tree-lines">True</property> <child internal-child="selection"> <object class="GtkTreeSelection" id="Macro Library List-selection2"/> </child> @@ -82,5 +83,22 @@ <property name="position">0</property> </packing> </child> + <child> + <object class="GtkLabel" id="statusbar"> + <property name="can-focus">False</property> + <property name="no-show-all">True</property> + <property name="xalign">0</property> + <child internal-child="accessible"> + <object class="AtkObject" id="statusbar-atkobject"> + <property name="AtkObject::accessible-role" translatable="no">static</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> </object> </interface> |