Use SvxNameDialog for editing config values

Instead of having a separate dialog which does the same.

Change-Id: I3b20920fa1c68593b6787a01592621c7b02fa715
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159209
Tested-by: Jenkins
Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
This commit is contained in:
Samuel Mehrbrodt
2023-11-13 10:38:37 +01:00
parent 6c761fa3b4
commit ee4eb828fb
8 changed files with 18 additions and 247 deletions
-1
View File
@@ -24,7 +24,6 @@ endif
$(eval $(call gb_UIConfig_add_uifiles,cui,\
cui/uiconfig/ui/aboutdialog \
cui/uiconfig/ui/aboutconfigdialog\
cui/uiconfig/ui/aboutconfigvaluedialog \
cui/uiconfig/ui/accelconfigpage \
cui/uiconfig/ui/additionsdialog \
cui/uiconfig/ui/additionsfragment \
-1
View File
@@ -53,7 +53,6 @@ cui/ui/textdialog.ui
cui/ui/aboutconfigdialog.ui
cui/ui/aboutconfigvaluedialog.ui
cui/ui/aboutdialog.ui
cui/ui/accelconfigpage.ui
cui/ui/acorexceptpage.ui
+2 -2
View File
@@ -43,10 +43,10 @@ SvxNameDialog::SvxNameDialog(weld::Window* pParent, const OUString& rName, const
IMPL_LINK_NOARG(SvxNameDialog, ModifyHdl, weld::Entry&, void)
{
// Do not allow empty names
// Do not allow empty names, unless custom CheckNameHdl is specified
bool bEnable;
if (m_aCheckNameHdl.IsSet())
bEnable = !m_xEdtName->get_text().isEmpty() && m_aCheckNameHdl.Call(*this);
bEnable = m_aCheckNameHdl.Call(*this);
else
bEnable = !m_xEdtName->get_text().isEmpty();
m_xBtnOK->set_sensitive(bEnable);
+12 -92
View File
@@ -31,6 +31,7 @@
#include <com/sun/star/util/SearchFlags.hpp>
#include <com/sun/star/util/SearchAlgorithms2.hpp>
#include <cppu/unotype.hxx>
#include <cui/dlgname.hxx>
#include <rtl/ustrbuf.hxx>
#include <unotools/textsearch.hxx>
#include <utility>
@@ -49,10 +50,6 @@ using namespace ::com::sun::star;
using namespace com::sun::star::uno;
using namespace com::sun::star::container;
#define SHORT_LEN_LIMIT 7
#define LONG_LEN_LIMIT 11
#define HYPER_LEN_LIMIT 20
struct Prop_Impl
{
OUString Name;
@@ -91,64 +88,6 @@ struct UserData
{}
};
IMPL_LINK(CuiAboutConfigValueDialog, KeyInputHdl, const KeyEvent&, rKeyEvent, bool)
{
bool bValid = false;
bool bNonSpace = rKeyEvent.GetKeyCode().GetCode() != KEY_SPACE;
if (m_bNumericOnly && bNonSpace )
{
const vcl::KeyCode& rKeyCode = rKeyEvent.GetKeyCode();
sal_uInt16 nGroup = rKeyCode.GetGroup();
sal_uInt16 nKey = rKeyCode.GetCode();
switch ( nGroup ) {
case KEYGROUP_NUM :
case KEYGROUP_CURSOR :
{
bValid = true;
break;
}
case KEYGROUP_MISC :
{
switch ( nKey ) {
case KEY_SUBTRACT :
case KEY_COMMA :
case KEY_POINT :
{
bValid = true;
break;
}
default :
{
if( nKey < KEY_ADD || nKey > KEY_EQUAL )
bValid = true;
break;
}
}
break;
}
default :
{
bValid = false;
break;
}
}
//Select all, Copy, Paste, Cut, Undo Keys
if ( !bValid && ( rKeyCode.IsMod1() && (
KEY_A == nKey || KEY_C == nKey || KEY_V == nKey || KEY_X == nKey || KEY_Z == nKey ) ) )
bValid = true;
}
else
bValid = true;
//if value return true to claim that it has been handled
return !bValid;
}
CuiAboutConfigTabPage::CuiAboutConfigTabPage(weld::Window* pParent)
: GenericDialogController(pParent, "cui/ui/aboutconfigdialog.ui", "AboutConfig")
, m_xResetBtn(m_xBuilder->weld_button("reset"))
@@ -158,6 +97,7 @@ CuiAboutConfigTabPage::CuiAboutConfigTabPage(weld::Window* pParent)
, m_xPrefBox(m_xBuilder->weld_tree_view("preferences"))
, m_xScratchIter(m_xPrefBox->make_iterator())
, m_bSorted(false)
, m_pParent(pParent)
{
m_xPrefBox->set_size_request(m_xPrefBox->get_approximate_digit_width() * 100,
m_xPrefBox->get_height_rows(23));
@@ -235,6 +175,12 @@ IMPL_LINK(CuiAboutConfigTabPage, HeaderBarClick, int, nColumn, void)
}
}
IMPL_STATIC_LINK_NOARG(CuiAboutConfigTabPage, ValidNameHdl, SvxNameDialog&, bool)
{
// Allow empty value
return true;
}
CuiAboutConfigTabPage::~CuiAboutConfigTabPage()
{
}
@@ -649,23 +595,6 @@ std::vector< OUString > CuiAboutConfigTabPage::commaStringToSequence( std::u16st
return tempVector;
}
CuiAboutConfigValueDialog::CuiAboutConfigValueDialog(weld::Window* pWindow,
const OUString& rValue,
int limit)
: GenericDialogController(pWindow, "cui/ui/aboutconfigvaluedialog.ui", "AboutConfigValueDialog")
, m_bNumericOnly(limit != 0)
, m_xEDValue(m_xBuilder->weld_entry("valuebox"))
{
if (limit)
m_xEDValue->set_max_length(limit);
m_xEDValue->set_text(rValue);
m_xEDValue->connect_key_press(LINK(this, CuiAboutConfigValueDialog, KeyInputHdl));
}
CuiAboutConfigValueDialog::~CuiAboutConfigValueDialog()
{
}
IMPL_LINK_NOARG( CuiAboutConfigTabPage, ResetBtnHdl_Impl, weld::Button&, void )
{
Reset();
@@ -725,20 +654,11 @@ IMPL_LINK_NOARG( CuiAboutConfigTabPage, StandardHdl_Impl, weld::Button&, void )
{
if( bOpenDialog )
{
//Cosmetic length limit for integer values.
int limit=0;
if( sPropertyType == "short" )
limit = SHORT_LEN_LIMIT;
else if( sPropertyType == "int" )
limit = LONG_LEN_LIMIT;
else if( sPropertyType == "long" )
limit = HYPER_LEN_LIMIT;
CuiAboutConfigValueDialog aValueDialog(m_xDialog.get(), sDialogValue, limit);
if (aValueDialog.run() == RET_OK )
SvxNameDialog aNameDialog(m_pParent, sDialogValue, sPropertyName);
aNameDialog.SetCheckNameHdl( LINK( this, CuiAboutConfigTabPage, ValidNameHdl ), true );
if (aNameDialog.run() == RET_OK )
{
OUString sNewValue = aValueDialog.getValue();
OUString sNewValue = aNameDialog.GetName();
bSaveChanges = true;
if ( sPropertyType == "short")
{
+3 -18
View File
@@ -12,6 +12,7 @@
#include <com/sun/star/container/XNameAccess.hpp>
#include <i18nutil/searchopt.hxx>
#include <cui/dlgname.hxx>
#include <vcl/weld.hxx>
#include <vector>
@@ -50,6 +51,7 @@ private:
std::vector<prefBoxEntry> m_prefBoxEntries;
bool m_bSorted;
weld::Window* m_pParent;
void AddToModifiedVector( const std::shared_ptr< Prop_Impl >& rProp );
static std::vector< OUString > commaStringToSequence( std::u16string_view rCommaSepString );
@@ -62,6 +64,7 @@ private:
DECL_LINK(SearchHdl_Impl, weld::Button&, void);
DECL_LINK(ExpandingHdl_Impl, const weld::TreeIter&, bool);
DECL_LINK(HeaderBarClick, int, void);
DECL_STATIC_LINK(CuiAboutConfigTabPage, ValidNameHdl, SvxNameDialog&, bool);
public:
explicit CuiAboutConfigTabPage(weld::Window* pParent);
@@ -76,22 +79,4 @@ public:
void FillItemSet();
};
class CuiAboutConfigValueDialog : public weld::GenericDialogController
{
private:
bool m_bNumericOnly;
std::unique_ptr<weld::Entry> m_xEDValue;
DECL_LINK(KeyInputHdl, const KeyEvent&, bool);
public:
CuiAboutConfigValueDialog(weld::Window* pWindow, const OUString& rValue , int limit);
virtual ~CuiAboutConfigValueDialog() override;
OUString getValue() const
{
return m_xEDValue->get_text();
}
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
-131
View File
@@ -1,131 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.22.1 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkDialog" id="AboutConfigValueDialog">
<property name="can_focus">False</property>
<property name="border_width">6</property>
<property name="title" translatable="yes" context="aboutconfigvaluedialog|AboutConfigValueDialog">Name</property>
<property name="modal">True</property>
<property name="default_width">0</property>
<property name="default_height">0</property>
<property name="type_hint">dialog</property>
<child>
<placeholder/>
</child>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox1">
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child internal-child="action_area">
<object class="GtkButtonBox" id="dialog-action_area1">
<property name="can_focus">False</property>
<property name="layout_style">end</property>
<child>
<object class="GtkButton" id="ok">
<property name="label" translatable="yes" context="stock">_OK</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="can_default">True</property>
<property name="has_default">True</property>
<property name="receives_default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="cancel">
<property name="label" translatable="yes" context="stock">_Cancel</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="help">
<property name="label" translatable="yes" context="stock">_Help</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
<property name="secondary">True</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack_type">end</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes" context="aboutconfigvaluedialog|label1">Value:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">valuebox</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="valuebox">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="activates_default">True</property>
<property name="truncate-multiline">True</property>
<property name="width_chars">50</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
<action-widgets>
<action-widget response="-5">ok</action-widget>
<action-widget response="-6">cancel</action-widget>
<action-widget response="-11">help</action-widget>
</action-widgets>
</object>
</interface>
+1 -1
View File
@@ -60,7 +60,7 @@ public:
{
m_aCheckNameHdl = rLink;
if (bCheckImmediately)
m_xBtnOK->set_sensitive(rLink.Call(*this));
ModifyHdl(*m_xEdtName);
}
void SetCheckNameTooltipHdl(const Link<SvxNameDialog&, OUString>& rLink)
@@ -43,7 +43,6 @@ gb_emscripten_fs_image_files := \
$(INSTROOT)/$(LIBO_ETC_FOLDER)/$(call gb_Helper_get_rcfile,version) \
$(INSTROOT)/$(LIBO_ETC_FOLDER)/services/services.rdb \
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/cui/ui/aboutconfigdialog.ui \
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/cui/ui/aboutconfigvaluedialog.ui \
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/cui/ui/aboutdialog.ui \
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/cui/ui/accelconfigpage.ui \
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/cui/ui/acorexceptpage.ui \