summaryrefslogtreecommitdiff
path: root/dbaccess
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2020-07-23 16:03:09 +0100
committerCaolán McNamara <caolanm@redhat.com>2020-07-23 22:10:15 +0200
commit33e0f4c8f1a38ed06508eb0754c7b6fe9cc9f2c8 (patch)
treee2e2c1ecbc9ea5983e946a0c602ccbd6db06b630 /dbaccess
parent7cfd8b201beeb356ee4cc58385664d5b37dd4e35 (diff)
weld OTableDesignHelpBar
Change-Id: If77b9e180791909998cb8536439bcc6ea6d4137b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99331 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'dbaccess')
-rw-r--r--dbaccess/UIConfig_dbaccess.mk1
-rw-r--r--dbaccess/source/ui/control/FieldDescControl.cxx2
-rw-r--r--dbaccess/source/ui/inc/TableDesignHelpBar.hxx15
-rw-r--r--dbaccess/source/ui/tabledesign/TableDesignHelpBar.cxx52
-rw-r--r--dbaccess/source/ui/tabledesign/TableFieldDescWin.cxx29
-rw-r--r--dbaccess/uiconfig/ui/designhelpbox.ui38
6 files changed, 73 insertions, 64 deletions
diff --git a/dbaccess/UIConfig_dbaccess.mk b/dbaccess/UIConfig_dbaccess.mk
index eed1ba41a531..25f840ec5494 100644
--- a/dbaccess/UIConfig_dbaccess.mk
+++ b/dbaccess/UIConfig_dbaccess.mk
@@ -28,6 +28,7 @@ $(eval $(call gb_UIConfig_add_uifiles,dbaccess, \
dbaccess/uiconfig/ui/dbwizspreadsheetpage \
dbaccess/uiconfig/ui/dbwiztextpage \
dbaccess/uiconfig/ui/deleteallrowsdialog \
+ dbaccess/uiconfig/ui/designhelpbox \
dbaccess/uiconfig/ui/designsavemodifieddialog \
dbaccess/uiconfig/ui/directsqldialog \
dbaccess/uiconfig/ui/emptypage \
diff --git a/dbaccess/source/ui/control/FieldDescControl.cxx b/dbaccess/source/ui/control/FieldDescControl.cxx
index 578574d933a5..eaa34b34fafa 100644
--- a/dbaccess/source/ui/control/FieldDescControl.cxx
+++ b/dbaccess/source/ui/control/FieldDescControl.cxx
@@ -732,6 +732,8 @@ void OFieldDescControl::DisplayData(OFieldDescription* pFieldDescr )
pActFieldDescr = pFieldDescr;
if(!pFieldDescr)
{
+ if (pHelp)
+ pHelp->SetHelpText( OUString() );
DeactivateAggregate( tpDefault );
DeactivateAggregate( tpRequired );
DeactivateAggregate( tpTextLen );
diff --git a/dbaccess/source/ui/inc/TableDesignHelpBar.hxx b/dbaccess/source/ui/inc/TableDesignHelpBar.hxx
index 87118362511b..a6d32dd1ae51 100644
--- a/dbaccess/source/ui/inc/TableDesignHelpBar.hxx
+++ b/dbaccess/source/ui/inc/TableDesignHelpBar.hxx
@@ -19,22 +19,15 @@
#ifndef INCLUDED_DBACCESS_SOURCE_UI_INC_TABLEDESIGNHELPBAR_HXX
#define INCLUDED_DBACCESS_SOURCE_UI_INC_TABLEDESIGNHELPBAR_HXX
-#include <vcl/tabpage.hxx>
#include "IClipBoardTest.hxx"
-
-class VclMultiLineEdit;
+#include <vcl/InterimItemWindow.hxx>
namespace dbaui
{
- // Deriving from TabPage is a trick to notice changes
- // of the system colors
- class OTableDesignHelpBar : public TabPage, public IClipboardTest
+ class OTableDesignHelpBar final : public InterimItemWindow, public IClipboardTest
{
private:
- VclPtr<VclMultiLineEdit> m_pTextWin;
-
- protected:
- virtual void Resize() override;
+ std::unique_ptr<weld::TextView> m_xTextWin;
public:
OTableDesignHelpBar( vcl::Window* pParent );
@@ -43,8 +36,6 @@ namespace dbaui
void SetHelpText( const OUString& rText );
- virtual bool PreNotify( NotifyEvent& rNEvt ) override;
-
// IClipboardTest
virtual bool isCutAllowed() override;
virtual bool isCopyAllowed() override;
diff --git a/dbaccess/source/ui/tabledesign/TableDesignHelpBar.cxx b/dbaccess/source/ui/tabledesign/TableDesignHelpBar.cxx
index 3d73ff0e6170..5d9069b3451c 100644
--- a/dbaccess/source/ui/tabledesign/TableDesignHelpBar.cxx
+++ b/dbaccess/source/ui/tabledesign/TableDesignHelpBar.cxx
@@ -20,19 +20,15 @@
#include <TableDesignHelpBar.hxx>
#include <vcl/event.hxx>
#include <vcl/settings.hxx>
-#include <vcl/vclmedit.hxx>
#include <helpids.h>
using namespace dbaui;
-#define STANDARD_MARGIN 6
-OTableDesignHelpBar::OTableDesignHelpBar( vcl::Window* pParent ) :
- TabPage( pParent, WB_3DLOOK )
+
+OTableDesignHelpBar::OTableDesignHelpBar(vcl::Window* pParent)
+ : InterimItemWindow(pParent, "dbaccess/ui/designhelpbox.ui", "DesignHelpBox")
+ , m_xTextWin(m_xBuilder->weld_text_view("textview"))
{
- m_pTextWin = VclPtr<VclMultiLineEdit>::Create( this, WB_VSCROLL | WB_LEFT | WB_BORDER | WB_NOTABSTOP | WB_READONLY);
- m_pTextWin->SetHelpId(HID_TABLE_DESIGN_HELP_WINDOW);
- m_pTextWin->SetReadOnly();
- m_pTextWin->SetControlBackground( GetSettings().GetStyleSettings().GetFaceColor() );
- m_pTextWin->Show();
+ m_xTextWin->set_help_id(HID_TABLE_DESIGN_HELP_WINDOW);
}
OTableDesignHelpBar::~OTableDesignHelpBar()
@@ -42,40 +38,21 @@ OTableDesignHelpBar::~OTableDesignHelpBar()
void OTableDesignHelpBar::dispose()
{
- m_pTextWin.disposeAndClear();
- TabPage::dispose();
+ m_xTextWin.reset();
+ InterimItemWindow::dispose();
}
void OTableDesignHelpBar::SetHelpText( const OUString& rText )
{
- if(m_pTextWin)
- m_pTextWin->SetText( rText );
- Invalidate();
-}
-
-void OTableDesignHelpBar::Resize()
-{
- // parent window dimensions
- Size aOutputSize( GetOutputSizePixel() );
-
- // adapt the TextWin
- if(m_pTextWin)
- m_pTextWin->SetPosSizePixel( Point(STANDARD_MARGIN+1, STANDARD_MARGIN+1),
- Size(aOutputSize.Width()-(2*STANDARD_MARGIN)-2,
- aOutputSize.Height()-(2*STANDARD_MARGIN)-2) );
-
-}
-
-bool OTableDesignHelpBar::PreNotify( NotifyEvent& rNEvt )
-{
- if (rNEvt.GetType() == MouseNotifyEvent::LOSEFOCUS)
- SetHelpText(OUString());
- return TabPage::PreNotify(rNEvt);
+ if (!m_xTextWin)
+ return;
+ m_xTextWin->set_text(rText);
}
bool OTableDesignHelpBar::isCopyAllowed()
{
- return m_pTextWin && !m_pTextWin->GetSelected().isEmpty();
+ int mStartPos, nEndPos;
+ return m_xTextWin && m_xTextWin->get_selection_bounds(mStartPos, nEndPos);
}
bool OTableDesignHelpBar::isCutAllowed()
@@ -94,8 +71,9 @@ void OTableDesignHelpBar::cut()
void OTableDesignHelpBar::copy()
{
- if ( m_pTextWin )
- m_pTextWin->Copy();
+ if (!m_xTextWin)
+ return;
+ m_xTextWin->copy_clipboard();
}
void OTableDesignHelpBar::paste()
diff --git a/dbaccess/source/ui/tabledesign/TableFieldDescWin.cxx b/dbaccess/source/ui/tabledesign/TableFieldDescWin.cxx
index 9507507949e1..cdcd932a2f74 100644
--- a/dbaccess/source/ui/tabledesign/TableFieldDescWin.cxx
+++ b/dbaccess/source/ui/tabledesign/TableFieldDescWin.cxx
@@ -28,7 +28,6 @@
#include <helpids.h>
#include <core_resource.hxx>
-#define STANDARD_MARGIN 6
#define DETAILS_HEADER_HEIGHT 25
#define CONTROL_SPACING_X 18 // 6
#define CONTROL_SPACING_Y 5
@@ -111,9 +110,9 @@ void OTableFieldDescWin::Paint(vcl::RenderContext& rRenderContext, const tools::
rRenderContext.DrawLine(Point(0,0), Point(GetSizePixel().Width(), 0));
// 3D-line for the separation of the header
- rRenderContext.DrawLine(Point(3, DETAILS_HEADER_HEIGHT), Point(GetSizePixel().Width() - 6, DETAILS_HEADER_HEIGHT));
- rRenderContext.SetLineColor(rStyleSettings.GetShadowColor());
rRenderContext.DrawLine(Point(3, DETAILS_HEADER_HEIGHT - 1), Point(GetSizePixel().Width() - 6, DETAILS_HEADER_HEIGHT - 1));
+ rRenderContext.SetLineColor(rStyleSettings.GetShadowColor());
+ rRenderContext.DrawLine(Point(3, DETAILS_HEADER_HEIGHT - 2), Point(GetSizePixel().Width() - 6, DETAILS_HEADER_HEIGHT - 2));
}
void OTableFieldDescWin::Resize()
@@ -131,10 +130,10 @@ void OTableFieldDescWin::Resize()
long nPageWidth, nPageHeight;
// do both fit next to each other (margin + page + margin + help)?
- if (STANDARD_MARGIN + DETAILS_OPT_PAGE_WIDTH + STANDARD_MARGIN + DETAILS_MIN_HELP_WIDTH <= nOutputWidth)
+ if (DETAILS_OPT_PAGE_WIDTH + DETAILS_MIN_HELP_WIDTH <= nOutputWidth)
{ // yes -> then we wonder if can give the help its optimum width
nHelpWidth = DETAILS_OPT_HELP_WIDTH;
- nPageWidth = nOutputWidth - nHelpWidth - STANDARD_MARGIN - STANDARD_MARGIN;
+ nPageWidth = nOutputWidth - nHelpWidth;
if (nPageWidth < DETAILS_OPT_PAGE_WIDTH)
{ // rather resize the help from its optimal width to its minimum width
long nTransfer = DETAILS_OPT_PAGE_WIDTH - nPageWidth;
@@ -143,16 +142,16 @@ void OTableFieldDescWin::Resize()
}
nHelpX = nOutputWidth - nHelpWidth;
// the heights are simple in that case...
- nHelpY = DETAILS_HEADER_HEIGHT + 1;
+ nHelpY = DETAILS_HEADER_HEIGHT;
nHelpHeight = nOutputHeight - nHelpY;
- nPageHeight = nOutputHeight - STANDARD_MARGIN - DETAILS_HEADER_HEIGHT - STANDARD_MARGIN;
+ nPageHeight = nOutputHeight - DETAILS_HEADER_HEIGHT;
}
else
{ // doesn't work next to each other, thus below each other (margin + header + page + help)
- if (STANDARD_MARGIN + DETAILS_HEADER_HEIGHT + DETAILS_OPT_PAGE_HEIGHT + DETAILS_MIN_HELP_HEIGHT <= nOutputHeight)
+ if (DETAILS_HEADER_HEIGHT + DETAILS_OPT_PAGE_HEIGHT + DETAILS_MIN_HELP_HEIGHT <= nOutputHeight)
{ // it's at least enough, to fit both below each other (page optimal, help minimal)
nHelpHeight = DETAILS_OPT_HELP_HEIGHT;
- nPageHeight = nOutputHeight - nHelpHeight - DETAILS_HEADER_HEIGHT - STANDARD_MARGIN;
+ nPageHeight = nOutputHeight - nHelpHeight - DETAILS_HEADER_HEIGHT;
if (nPageHeight < DETAILS_OPT_PAGE_HEIGHT)
{ // like above: page optimal, help gets whatever is left (which is bigger/equal to its minimum)
long nTransfer = DETAILS_OPT_PAGE_HEIGHT - nPageHeight;
@@ -163,20 +162,20 @@ void OTableFieldDescWin::Resize()
// and across the entire width
nHelpX = 0; // without margin, since the HelpCtrl has its own one
nHelpWidth = nOutputWidth; // dito
- nPageWidth = nOutputWidth - STANDARD_MARGIN - STANDARD_MARGIN;
+ nPageWidth = nOutputWidth;
}
else
{ // unfortunately that's not even enough, to show page at its optimum and help with minimum width
nHelpX = nHelpY = nHelpWidth = nHelpHeight = 0; // thus no help window
- nPageWidth = nOutputWidth - STANDARD_MARGIN - STANDARD_MARGIN;
- nPageHeight = nOutputHeight - STANDARD_MARGIN - DETAILS_HEADER_HEIGHT - STANDARD_MARGIN;
+ nPageWidth = nOutputWidth;
+ nPageHeight = nOutputHeight - DETAILS_HEADER_HEIGHT;
}
}
- m_pHeader->SetPosSizePixel( Point(0, STANDARD_MARGIN), Size(nOutputWidth, 15) );
+ m_pHeader->SetPosSizePixel( Point(0, 0), Size(nOutputWidth, 15) );
- getGenPage()->SetPosSizePixel(Point ( STANDARD_MARGIN,
- STANDARD_MARGIN + DETAILS_HEADER_HEIGHT
+ getGenPage()->SetPosSizePixel(Point ( 0,
+ DETAILS_HEADER_HEIGHT
),
Size ( nPageWidth,
nPageHeight
diff --git a/dbaccess/uiconfig/ui/designhelpbox.ui b/dbaccess/uiconfig/ui/designhelpbox.ui
new file mode 100644
index 000000000000..e5791e4b931e
--- /dev/null
+++ b/dbaccess/uiconfig/ui/designhelpbox.ui
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.36.0 -->
+<interface domain="dba">
+ <requires lib="gtk+" version="3.18"/>
+ <object class="GtkBox" id="DesignHelpBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="border_width">6</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkScrolledWindow">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="hscrollbar_policy">never</property>
+ <property name="shadow_type">in</property>
+ <child>
+ <object class="GtkTextView" id="textview">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="editable">False</property>
+ <property name="wrap_mode">word</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+</interface>