[Libreoffice-commits] core.git: basctl/source cui/source dbaccess/source fpicker/inc fpicker/Library_fps_office.mk fpicker/source fpicker/uiconfig fpicker/UIConfig_fps.mk include/svtools include/vcl solenv/clang-format solenv/sanitizers svtools/source sw/source vcl/inc vcl/Library_vcl.mk vcl/source vcl/unx
Caolán McNamara (via logerrit)
logerrit at kemper.freedesktop.org
Tue Oct 29 12:59:58 UTC 2019
basctl/source/basicide/moduldl2.cxx | 4
basctl/source/basicide/moduldlg.cxx | 4
basctl/source/inc/bastype2.hxx | 9
cui/source/customize/CommandCategoryListBox.cxx | 4
cui/source/options/optgdlg.cxx | 2
dbaccess/source/ui/dlg/indexdialog.cxx | 4
fpicker/Library_fps_office.mk | 2
fpicker/UIConfig_fps.mk | 1
fpicker/inc/bitmaps.hlst | 2
fpicker/inc/strings.hrc | 1
fpicker/source/office/OfficeControlAccess.cxx | 296 ++--
fpicker/source/office/OfficeControlAccess.hxx | 59
fpicker/source/office/OfficeFilePicker.cxx | 131 --
fpicker/source/office/OfficeFilePicker.hxx | 4
fpicker/source/office/OfficeFolderPicker.cxx | 30
fpicker/source/office/OfficeFolderPicker.hxx | 2
fpicker/source/office/PlacesListBox.cxx | 183 --
fpicker/source/office/PlacesListBox.hxx | 100 -
fpicker/source/office/RemoteFilesDialog.cxx | 795 +++---------
fpicker/source/office/RemoteFilesDialog.hxx | 78 -
fpicker/source/office/asyncfilepicker.hxx | 5
fpicker/source/office/autocmpledit.cxx | 41
fpicker/source/office/autocmpledit.hxx | 26
fpicker/source/office/breadcrumb.cxx | 164 --
fpicker/source/office/breadcrumb.hxx | 62
fpicker/source/office/commonpicker.cxx | 107 -
fpicker/source/office/commonpicker.hxx | 8
fpicker/source/office/contentenumeration.hxx | 6
fpicker/source/office/fileview.cxx | 1204 ++++++++----------
fpicker/source/office/fileview.hxx | 53
fpicker/source/office/foldertree.cxx | 110 -
fpicker/source/office/foldertree.hxx | 26
fpicker/source/office/fpdialogbase.hxx | 11
fpicker/source/office/iodlg.cxx | 1568 ++++++++----------------
fpicker/source/office/iodlg.hxx | 131 --
fpicker/source/office/iodlgimp.cxx | 186 --
fpicker/source/office/iodlgimp.hxx | 232 +--
fpicker/source/office/pickercallbacks.hxx | 14
fpicker/uiconfig/ui/breadcrumb.ui | 32
fpicker/uiconfig/ui/explorerfiledialog.ui | 498 ++++++-
fpicker/uiconfig/ui/remotefilesdialog.ui | 319 ++++
include/svtools/imagemgr.hxx | 1
include/svtools/inettbc.hxx | 10
include/svtools/strings.hrc | 11
include/vcl/treelistbox.hxx | 1
include/vcl/weld.hxx | 95 +
solenv/clang-format/blacklist | 8
solenv/sanitizers/ui/fps.suppr | 9
svtools/source/control/inettbc.cxx | 39
svtools/source/misc/imagemgr.cxx | 17
sw/source/ui/frmdlg/frmpage.cxx | 2
vcl/Library_vcl.mk | 2
vcl/inc/iconview.hxx | 2
vcl/inc/treeglue.hxx | 24
vcl/source/app/salvtables.cxx | 313 ++++
vcl/source/treelist/iconview.cxx | 15
vcl/source/treelist/iconviewimpl.cxx | 4
vcl/source/window/builder.cxx | 24
vcl/unx/gtk3/gtk3gtkinst.cxx | 496 +++++++
59 files changed, 4005 insertions(+), 3582 deletions(-)
New commits:
commit 09e3d45cdc5c739e5246388a83ccfc6d76bf66e9
Author: Caolán McNamara <caolanm at redhat.com>
AuthorDate: Mon Oct 21 14:20:12 2019 +0100
Commit: Caolán McNamara <caolanm at redhat.com>
CommitDate: Tue Oct 29 13:58:47 2019 +0100
weld fpicker cluster
Change-Id: I6566263809ff0032388a0b56571f0cf7428058d7
Reviewed-on: https://gerrit.libreoffice.org/81334
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/basctl/source/basicide/moduldl2.cxx b/basctl/source/basicide/moduldl2.cxx
index 2673658205b7..c2633699b66a 100644
--- a/basctl/source/basicide/moduldl2.cxx
+++ b/basctl/source/basicide/moduldl2.cxx
@@ -228,8 +228,8 @@ LibPage::LibPage(weld::Container* pParent, OrganizeDialog* pDialog)
m_xBasicsBox->connect_changed( LINK( this, LibPage, BasicSelectHdl ) );
- m_xLibBox->connect_editing_started( LINK( this, LibPage, EditingEntryHdl ) );
- m_xLibBox->connect_editing_done( LINK( this, LibPage, EditedEntryHdl ) );
+ m_xLibBox->connect_editing(LINK(this, LibPage, EditingEntryHdl),
+ LINK(this, LibPage, EditedEntryHdl));
FillListBox();
m_xBasicsBox->set_active(0);
diff --git a/basctl/source/basicide/moduldlg.cxx b/basctl/source/basicide/moduldlg.cxx
index fb1d72e2d161..0812647911f0 100644
--- a/basctl/source/basicide/moduldlg.cxx
+++ b/basctl/source/basicide/moduldlg.cxx
@@ -557,8 +557,8 @@ ObjectPage::ObjectPage(weld::Container* pParent, const OString &rName, BrowseMod
m_xDropTarget.reset(new SbTreeListBoxDropTarget(*m_xBasicBox));
- m_xBasicBox->connect_editing_started( LINK( this, ObjectPage, EditingEntryHdl ) );
- m_xBasicBox->connect_editing_done( LINK( this, ObjectPage, EditedEntryHdl ) );
+ m_xBasicBox->connect_editing(LINK(this, ObjectPage, EditingEntryHdl),
+ LINK(this, ObjectPage, EditedEntryHdl));
m_xBasicBox->SetMode( nMode );
m_xBasicBox->ScanAllEntries();
diff --git a/basctl/source/inc/bastype2.hxx b/basctl/source/inc/bastype2.hxx
index 88c303e3f5d1..d6abc4414453 100644
--- a/basctl/source/inc/bastype2.hxx
+++ b/basctl/source/inc/bastype2.hxx
@@ -320,13 +320,10 @@ public:
float get_approximate_digit_width() const { return m_xControl->get_approximate_digit_width(); }
int get_height_rows(int nRows) const { return m_xControl->get_height_rows(nRows); }
int get_iter_index_in_parent(const weld::TreeIter& rIter) const { return m_xControl->get_iter_index_in_parent(rIter); }
- void connect_editing_started(const Link<const weld::TreeIter&, bool>& rLink)
+ void connect_editing(const Link<const weld::TreeIter&, bool>& rStartLink,
+ const Link<const std::pair<const weld::TreeIter&, OUString>&, bool>& rEndLink)
{
- m_xControl->connect_editing_started(rLink);
- }
- void connect_editing_done(const Link<const std::pair<const weld::TreeIter&, OUString>&, bool>& rLink)
- {
- m_xControl->connect_editing_done(rLink);
+ m_xControl->connect_editing(rStartLink, rEndLink);
}
void make_sorted() { m_xControl->make_sorted(); };
diff --git a/cui/source/customize/CommandCategoryListBox.cxx b/cui/source/customize/CommandCategoryListBox.cxx
index 1df6422db190..a5c572e6a935 100644
--- a/cui/source/customize/CommandCategoryListBox.cxx
+++ b/cui/source/customize/CommandCategoryListBox.cxx
@@ -137,7 +137,7 @@ void CommandCategoryListBox::Init(
}
// Separate the "All commands"category from the actual categories
- m_xControl->append_separator();
+ m_xControl->append_separator("");
typedef std::pair<OUString, sal_Int16> str_id;
std::vector<str_id> aCategories;
@@ -180,7 +180,7 @@ void CommandCategoryListBox::Init(
}
// Separate regular commands from styles and macros
- m_xControl->append_separator();
+ m_xControl->append_separator("");
// Add macros category
m_aGroupInfo.push_back(
diff --git a/cui/source/options/optgdlg.cxx b/cui/source/options/optgdlg.cxx
index 3c039792ec57..3079b2c92c2c 100644
--- a/cui/source/options/optgdlg.cxx
+++ b/cui/source/options/optgdlg.cxx
@@ -667,7 +667,7 @@ OfaViewTabPage::OfaViewTabPage(weld::Container* pPage, weld::DialogController* p
m_xIconStyleLB->append_text(entryForAuto);
// separate auto and other icon themes
- m_xIconStyleLB->append_separator();
+ m_xIconStyleLB->append_separator("");
for (auto const& installIconTheme : mInstalledIconThemes)
m_xIconStyleLB->append_text(installIconTheme.GetDisplayName());
diff --git a/dbaccess/source/ui/dlg/indexdialog.cxx b/dbaccess/source/ui/dlg/indexdialog.cxx
index 072c507e4da7..a4e75d116ac9 100644
--- a/dbaccess/source/ui/dlg/indexdialog.cxx
+++ b/dbaccess/source/ui/dlg/indexdialog.cxx
@@ -98,8 +98,8 @@ namespace dbaui
m_xActions->connect_clicked(LINK(this, DbaIndexDialog, OnIndexAction));
m_xIndexList->connect_changed(LINK(this, DbaIndexDialog, OnIndexSelected));
- m_xIndexList->connect_editing_started(LINK(this, DbaIndexDialog, OnEntryEditing));
- m_xIndexList->connect_editing_done(LINK(this, DbaIndexDialog, OnEntryEdited));
+ m_xIndexList->connect_editing(LINK(this, DbaIndexDialog, OnEntryEditing),
+ LINK(this, DbaIndexDialog, OnEntryEdited));
m_xFields->SetSizePixel(Size(nWidth, 100));
m_xFields->Init(_rFieldNames, ::dbtools::getBooleanDataSourceSetting( m_xConnection, "AddIndexAppendix" ));
diff --git a/fpicker/Library_fps_office.mk b/fpicker/Library_fps_office.mk
index eff3f5ebe84f..3aec0b66906e 100644
--- a/fpicker/Library_fps_office.mk
+++ b/fpicker/Library_fps_office.mk
@@ -52,8 +52,6 @@ $(eval $(call gb_Library_add_exception_objects,fps_office,\
fpicker/source/office/fpinteraction \
fpicker/source/office/fpsmartcontent \
fpicker/source/office/fps_office \
- fpicker/source/office/iconview \
- fpicker/source/office/iconviewimpl \
fpicker/source/office/iodlg \
fpicker/source/office/iodlgimp \
fpicker/source/office/OfficeControlAccess \
diff --git a/fpicker/UIConfig_fps.mk b/fpicker/UIConfig_fps.mk
index ee8fea50d663..2c179b296481 100644
--- a/fpicker/UIConfig_fps.mk
+++ b/fpicker/UIConfig_fps.mk
@@ -10,6 +10,7 @@
$(eval $(call gb_UIConfig_UIConfig,fps))
$(eval $(call gb_UIConfig_add_uifiles,fps,\
+ fpicker/uiconfig/ui/breadcrumb \
fpicker/uiconfig/ui/explorerfiledialog \
fpicker/uiconfig/ui/foldernamedialog \
fpicker/uiconfig/ui/remotefilesdialog \
diff --git a/fpicker/inc/bitmaps.hlst b/fpicker/inc/bitmaps.hlst
index 878058154fb6..4951ead796f0 100644
--- a/fpicker/inc/bitmaps.hlst
+++ b/fpicker/inc/bitmaps.hlst
@@ -11,8 +11,6 @@
#define INCLUDED_FPICKER_INC_BITMAPS_HRC
#define RID_BMP_FOLDER_OPEN "res/folderop.png"
-#define BMP_FILEDLG_BTN_UP "res/fp010.png"
-#define BMP_FILEDLG_CREATEFOLDER "fpicker/res/fp014.png"
#define BMP_FILEDLG_PLACE_LOCAL "fpicker/res/fp015.png"
#define BMP_FILEDLG_PLACE_REMOTE "fpicker/res/fp016.png"
#define RID_BMP_FOLDER "svtools/res/folder.png"
diff --git a/fpicker/inc/strings.hrc b/fpicker/inc/strings.hrc
index 05acac0935fc..b175069c05da 100644
--- a/fpicker/inc/strings.hrc
+++ b/fpicker/inc/strings.hrc
@@ -30,7 +30,6 @@
#define STR_BUTTONSELECT NC_("STR_BUTTONSELECT", "~Select")
#define STR_PREVIEW NC_("STR_PREVIEW", "File Preview")
#define STR_DEFAULT_DIRECTORY NC_("STR_DEFAULT_DIRECTORY", "My Documents")
-#define STR_PLACES_TITLE NC_("STR_PLACES_TITLE", "Places")
#define RID_FILEOPEN_NOTEXISTENTFILE NC_("RID_FILEOPEN_NOTEXISTENTFILE", "The file $name$ does not exist.\nMake sure you have entered the correct file name.")
#define STR_SVT_NEW_FOLDER NC_("STR_SVT_NEW_FOLDER", "Folder")
#define STR_SVT_NOREMOVABLEDEVICE NC_("STR_SVT_NOREMOVABLEDEVICE", "No removable storage device detected.\nMake sure it is plugged in properly and try again.")
diff --git a/fpicker/source/office/OfficeControlAccess.cxx b/fpicker/source/office/OfficeControlAccess.cxx
index 073d0268a9be..256839897f83 100644
--- a/fpicker/source/office/OfficeControlAccess.cxx
+++ b/fpicker/source/office/OfficeControlAccess.cxx
@@ -101,22 +101,19 @@ namespace svt
{ "VersionListLabel", LISTBOX_VERSION_LABEL, PROPERTY_FLAGS_COMMON | PropFlags::Text }
};
-
static const sal_Int32 s_nControlCount = SAL_N_ELEMENTS( aDescriptions );
static ControlDescIterator s_pControls = aDescriptions;
static ControlDescIterator s_pControlsEnd = aDescriptions + s_nControlCount;
-
struct ControlDescriptionLookup
{
- bool operator()( const ControlDescription& _rDesc1, const ControlDescription& _rDesc2 )
+ bool operator()( const ControlDescription& rDesc1, const ControlDescription& rDesc2 )
{
- return strcmp(_rDesc1.pControlName, _rDesc2.pControlName) < 0;
+ return strcmp(rDesc1.pControlName, rDesc2.pControlName) < 0;
}
};
-
struct ControlProperty
{
const sal_Char* pPropertyName;
@@ -125,7 +122,6 @@ namespace svt
typedef const ControlProperty* ControlPropertyIterator;
-
static const ControlProperty aProperties[] = {
{ "Text", PropFlags::Text },
{ "Enabled", PropFlags::Enabled },
@@ -137,7 +133,6 @@ namespace svt
{ "Checked", PropFlags::Checked }
};
-
static const int s_nPropertyCount = SAL_N_ELEMENTS( aProperties );
static ControlPropertyIterator s_pProperties = aProperties;
@@ -166,38 +161,48 @@ namespace svt
}
}
-
- OControlAccess::OControlAccess( IFilePickerController* _pController, SvtFileView* _pFileView )
- :m_pFilePickerController( _pController )
- ,m_pFileView( _pFileView )
+ OControlAccess::OControlAccess(IFilePickerController* pController, SvtFileView* pFileView)
+ : m_pFilePickerController(pController)
+ , m_pFileView(pFileView)
{
DBG_ASSERT( m_pFilePickerController, "OControlAccess::OControlAccess: invalid control locator!" );
}
+ bool OControlAccess::IsFileViewWidget(weld::Widget const * pControl) const
+ {
+ if (!pControl)
+ return false;
+ if (!m_pFileView)
+ return false;
+ return pControl == m_pFileView->identifier();
+ }
- void OControlAccess::setHelpURL( vcl::Window* _pControl, const OUString& sHelpURL, bool _bFileView )
+ void OControlAccess::setHelpURL(weld::Widget* pControl, const OUString& sHelpURL)
{
OUString sHelpID( sHelpURL );
INetURLObject aHID( sHelpURL );
- if ( aHID.GetProtocol() == INetProtocol::Hid )
- sHelpID = aHID.GetURLPath();
+ if (aHID.GetProtocol() == INetProtocol::Hid)
+ sHelpID = aHID.GetURLPath();
// URLs should always be UTF8 encoded and escaped
OString sID( OUStringToOString( sHelpID, RTL_TEXTENCODING_UTF8 ) );
- if ( _bFileView )
+ if (IsFileViewWidget(pControl))
+ {
// the file view "overrides" the SetHelpId
- static_cast< SvtFileView* >( _pControl )->SetHelpId( sID );
+ m_pFileView->set_help_id(sID);
+ }
else
- _pControl->SetHelpId( sID );
+ pControl->set_help_id(sID);
}
-
- OUString OControlAccess::getHelpURL( vcl::Window const * _pControl, bool _bFileView )
+ OUString OControlAccess::getHelpURL(weld::Widget const * pControl) const
{
- OString aHelpId = _pControl->GetHelpId();
- if ( _bFileView )
+ OString aHelpId = pControl->get_help_id();
+ if (IsFileViewWidget(pControl))
+ {
// the file view "overrides" the SetHelpId
- aHelpId = static_cast< SvtFileView const * >( _pControl )->GetHelpId( );
+ aHelpId = m_pFileView->get_help_id();
+ }
OUString sHelpURL;
OUString aTmp( OStringToOUString( aHelpId, RTL_TEXTENCODING_UTF8 ) );
@@ -208,17 +213,16 @@ namespace svt
return sHelpURL;
}
-
- Any OControlAccess::getControlProperty( const OUString& _rControlName, const OUString& _rControlProperty )
+ Any OControlAccess::getControlProperty( const OUString& rControlName, const OUString& rControlProperty )
{
// look up the control
sal_Int16 nControlId = -1;
PropFlags nPropertyMask = PropFlags::NONE;
- Control* pControl = implGetControl( _rControlName, &nControlId, &nPropertyMask );
+ weld::Widget* pControl = implGetControl( rControlName, &nControlId, &nPropertyMask );
// will throw an IllegalArgumentException if the name is not valid
// look up the property
- ControlPropertyIterator aPropDesc = ::std::find_if( s_pProperties, s_pPropertiesEnd, ControlPropertyLookup( _rControlProperty ) );
+ ControlPropertyIterator aPropDesc = ::std::find_if( s_pProperties, s_pPropertiesEnd, ControlPropertyLookup( rControlProperty ) );
if ( aPropDesc == s_pPropertiesEnd )
// it's a completely unknown property
lcl_throwIllegalArgumentException();
@@ -230,12 +234,11 @@ namespace svt
return implGetControlProperty( pControl, aPropDesc->nPropertyId );
}
-
- Control* OControlAccess::implGetControl( const OUString& _rControlName, sal_Int16* _pId, PropFlags* _pPropertyMask ) const
+ weld::Widget* OControlAccess::implGetControl( const OUString& rControlName, sal_Int16* _pId, PropFlags* _pPropertyMask ) const
{
- Control* pControl = nullptr;
+ weld::Widget* pControl = nullptr;
ControlDescription tmpDesc;
- OString aControlName = OUStringToOString( _rControlName, RTL_TEXTENCODING_UTF8 );
+ OString aControlName = OUStringToOString( rControlName, RTL_TEXTENCODING_UTF8 );
tmpDesc.pControlName = aControlName.getStr();
// translate the name into an id
@@ -259,24 +262,22 @@ namespace svt
return pControl;
}
-
- void OControlAccess::setControlProperty( const OUString& _rControlName, const OUString& _rControlProperty, const css::uno::Any& _rValue )
+ void OControlAccess::setControlProperty( const OUString& rControlName, const OUString& rControlProperty, const css::uno::Any& rValue )
{
// look up the control
sal_Int16 nControlId = -1;
- Control* pControl = implGetControl( _rControlName, &nControlId );
+ weld::Widget* pControl = implGetControl( rControlName, &nControlId );
// will throw an IllegalArgumentException if the name is not valid
// look up the property
- ControlPropertyIterator aPropDesc = ::std::find_if( s_pProperties, s_pPropertiesEnd, ControlPropertyLookup( _rControlProperty ) );
+ ControlPropertyIterator aPropDesc = ::std::find_if( s_pProperties, s_pPropertiesEnd, ControlPropertyLookup( rControlProperty ) );
if ( aPropDesc == s_pPropertiesEnd )
lcl_throwIllegalArgumentException();
// set the property
- implSetControlProperty( nControlId, pControl, aPropDesc->nPropertyId, _rValue, false );
+ implSetControlProperty( nControlId, pControl, aPropDesc->nPropertyId, rValue, false );
}
-
Sequence< OUString > OControlAccess::getSupportedControls( ) const
{
Sequence< OUString > aControls( s_nControlCount );
@@ -293,12 +294,11 @@ namespace svt
return aControls;
}
-
- Sequence< OUString > OControlAccess::getSupportedControlProperties( const OUString& _rControlName )
+ Sequence< OUString > OControlAccess::getSupportedControlProperties( const OUString& rControlName )
{
sal_Int16 nControlId = -1;
PropFlags nPropertyMask = PropFlags::NONE;
- implGetControl( _rControlName, &nControlId, &nPropertyMask );
+ implGetControl( rControlName, &nControlId, &nPropertyMask );
// will throw an IllegalArgumentException if the name is not valid
// fill in the property names
@@ -313,26 +313,24 @@ namespace svt
return aProps;
}
-
- bool OControlAccess::isControlSupported( const OUString& _rControlName )
+ bool OControlAccess::isControlSupported( const OUString& rControlName )
{
ControlDescription tmpDesc;
- OString aControlName = OUStringToOString(_rControlName, RTL_TEXTENCODING_UTF8);
+ OString aControlName = OUStringToOString(rControlName, RTL_TEXTENCODING_UTF8);
tmpDesc.pControlName = aControlName.getStr();
return ::std::binary_search( s_pControls, s_pControlsEnd, tmpDesc, ControlDescriptionLookup() );
}
-
- bool OControlAccess::isControlPropertySupported( const OUString& _rControlName, const OUString& _rControlProperty )
+ bool OControlAccess::isControlPropertySupported( const OUString& rControlName, const OUString& rControlProperty )
{
// look up the control
sal_Int16 nControlId = -1;
PropFlags nPropertyMask = PropFlags::NONE;
- implGetControl( _rControlName, &nControlId, &nPropertyMask );
+ implGetControl( rControlName, &nControlId, &nPropertyMask );
// will throw an IllegalArgumentException if the name is not valid
// look up the property
- ControlPropertyIterator aPropDesc = ::std::find_if( s_pProperties, s_pPropertiesEnd, ControlPropertyLookup( _rControlProperty ) );
+ ControlPropertyIterator aPropDesc = ::std::find_if( s_pProperties, s_pPropertiesEnd, ControlPropertyLookup( rControlProperty ) );
if ( aPropDesc == s_pPropertiesEnd )
// it's a property which is completely unknown
return false;
@@ -340,21 +338,20 @@ namespace svt
return bool( aPropDesc->nPropertyId & nPropertyMask );
}
-
- void OControlAccess::setValue( sal_Int16 _nControlId, sal_Int16 _nControlAction, const Any& _rValue )
+ void OControlAccess::setValue( sal_Int16 nControlId, sal_Int16 nControlAction, const Any& rValue )
{
- Control* pControl = m_pFilePickerController->getControl( _nControlId );
+ weld::Widget* pControl = m_pFilePickerController->getControl( nControlId );
DBG_ASSERT( pControl, "OControlAccess::SetValue: don't have this control in the current mode!" );
if ( pControl )
{
PropFlags nPropertyId = PropFlags::Unknown;
- if ( ControlActions::SET_HELP_URL == _nControlAction )
+ if ( ControlActions::SET_HELP_URL == nControlAction )
{
nPropertyId = PropFlags::HelpUrl;
}
else
{
- switch ( _nControlId )
+ switch ( nControlId )
{
case CHECKBOX_AUTOEXTENSION:
case CHECKBOX_PASSWORD:
@@ -374,41 +371,41 @@ namespace svt
case LISTBOX_TEMPLATE:
case LISTBOX_IMAGE_TEMPLATE:
case LISTBOX_IMAGE_ANCHOR:
- if ( ControlActions::SET_SELECT_ITEM == _nControlAction )
+ if ( ControlActions::SET_SELECT_ITEM == nControlAction )
{
nPropertyId = PropFlags::SelectedItemIndex;
}
else
{
- DBG_ASSERT( WindowType::LISTBOX == pControl->GetType(), "OControlAccess::SetValue: implGetControl returned nonsense!" );
- implDoListboxAction( static_cast< ListBox* >( pControl ), _nControlAction, _rValue );
+ weld::ComboBox* pComboBox = dynamic_cast<weld::ComboBox*>(pControl);
+ assert(pComboBox && "OControlAccess::SetValue: implGetControl returned nonsense!");
+ implDoListboxAction(pComboBox, nControlAction, rValue);
}
break;
}
}
if ( PropFlags::Unknown != nPropertyId )
- implSetControlProperty( _nControlId, pControl, nPropertyId, _rValue );
+ implSetControlProperty( nControlId, pControl, nPropertyId, rValue );
}
}
-
- Any OControlAccess::getValue( sal_Int16 _nControlId, sal_Int16 _nControlAction ) const
+ Any OControlAccess::getValue( sal_Int16 nControlId, sal_Int16 nControlAction ) const
{
Any aRet;
- Control* pControl = m_pFilePickerController->getControl( _nControlId );
+ weld::Widget* pControl = m_pFilePickerController->getControl( nControlId );
DBG_ASSERT( pControl, "OControlAccess::GetValue: don't have this control in the current mode!" );
if ( pControl )
{
PropFlags nPropertyId = PropFlags::Unknown;
- if ( ControlActions::SET_HELP_URL == _nControlAction )
+ if ( ControlActions::SET_HELP_URL == nControlAction )
{
nPropertyId = PropFlags::HelpUrl;
}
else
{
- switch ( _nControlId )
+ switch ( nControlId )
{
case CHECKBOX_AUTOEXTENSION:
case CHECKBOX_PASSWORD:
@@ -422,7 +419,7 @@ namespace svt
break;
case LISTBOX_FILTER:
- if ( ControlActions::GET_SELECTED_ITEM == _nControlAction )
+ if ( ControlActions::GET_SELECTED_ITEM == nControlAction )
{
aRet <<= m_pFilePickerController->getCurFilter();
}
@@ -436,7 +433,7 @@ namespace svt
case LISTBOX_TEMPLATE:
case LISTBOX_IMAGE_TEMPLATE:
case LISTBOX_IMAGE_ANCHOR:
- switch ( _nControlAction )
+ switch ( nControlAction )
{
case ControlActions::GET_SELECTED_ITEM:
nPropertyId = PropFlags::SelectedItem;
@@ -462,57 +459,47 @@ namespace svt
return aRet;
}
-
void OControlAccess::setLabel( sal_Int16 nId, const OUString &rLabel )
{
- Control* pControl = m_pFilePickerController->getControl( nId, true );
- DBG_ASSERT( pControl, "OControlAccess::GetValue: don't have this control in the current mode!" );
- if ( pControl )
- pControl->SetText( rLabel );
+ weld::Label* pControl = dynamic_cast<weld::Label*>(m_pFilePickerController->getControl(nId, true));
+ assert(pControl && "OControlAccess::GetValue: don't have this control in the current mode!");
+ pControl->set_label(rLabel);
}
-
OUString OControlAccess::getLabel( sal_Int16 nId ) const
{
- OUString sLabel;
-
- Control* pControl = m_pFilePickerController->getControl( nId, true );
- DBG_ASSERT( pControl, "OControlAccess::GetValue: don't have this control in the current mode!" );
- if ( pControl )
- sLabel = pControl->GetText();
-
- return sLabel;
+ weld::Label* pControl = dynamic_cast<weld::Label*>(m_pFilePickerController->getControl(nId, true));
+ assert(pControl && "OControlAccess::GetValue: don't have this control in the current mode!");
+ return pControl->get_label();
}
-
- void OControlAccess::enableControl( sal_Int16 _nId, bool _bEnable )
+ void OControlAccess::enableControl(sal_Int16 nId, bool bEnable)
{
- m_pFilePickerController->enableControl( _nId, _bEnable );
+ m_pFilePickerController->enableControl(nId, bEnable);
}
-
- void OControlAccess::implDoListboxAction( ListBox* _pListbox, sal_Int16 _nControlAction, const Any& _rValue )
+ void OControlAccess::implDoListboxAction(weld::ComboBox* pListbox, sal_Int16 nControlAction, const Any& rValue)
{
- switch ( _nControlAction )
+ switch ( nControlAction )
{
case ControlActions::ADD_ITEM:
{
OUString aEntry;
- _rValue >>= aEntry;
+ rValue >>= aEntry;
if ( !aEntry.isEmpty() )
- _pListbox->InsertEntry( aEntry );
+ pListbox->append_text( aEntry );
}
break;
case ControlActions::ADD_ITEMS:
{
Sequence < OUString > aTemplateList;
- _rValue >>= aTemplateList;
+ rValue >>= aTemplateList;
if ( aTemplateList.hasElements() )
{
for ( long i=0; i < aTemplateList.getLength(); i++ )
- _pListbox->InsertEntry( aTemplateList[i] );
+ pListbox->append_text( aTemplateList[i] );
}
}
break;
@@ -520,13 +507,13 @@ namespace svt
case ControlActions::DELETE_ITEM:
{
sal_Int32 nPos = 0;
- if ( _rValue >>= nPos )
- _pListbox->RemoveEntry( nPos );
+ if ( rValue >>= nPos )
+ pListbox->remove( nPos );
}
break;
case ControlActions::DELETE_ITEMS:
- _pListbox->Clear();
+ pListbox->clear();
break;
default:
@@ -534,16 +521,15 @@ namespace svt
}
}
-
- void OControlAccess::implSetControlProperty( sal_Int16 _nControlId, Control* _pControl, PropFlags _nProperty, const Any& _rValue, bool _bIgnoreIllegalArgument )
+ void OControlAccess::implSetControlProperty( sal_Int16 nControlId, weld::Widget* pControl, PropFlags _nProperty, const Any& rValue, bool _bIgnoreIllegalArgument )
{
- if ( !_pControl )
- _pControl = m_pFilePickerController->getControl( _nControlId );
- DBG_ASSERT( _pControl, "OControlAccess::implSetControlProperty: invalid argument, this will crash!" );
- if ( !_pControl )
+ if ( !pControl )
+ pControl = m_pFilePickerController->getControl( nControlId );
+ DBG_ASSERT( pControl, "OControlAccess::implSetControlProperty: invalid argument, this will crash!" );
+ if ( !pControl )
return;
- DBG_ASSERT( _pControl == m_pFilePickerController->getControl( _nControlId ),
+ DBG_ASSERT( pControl == m_pFilePickerController->getControl( nControlId ),
"OControlAccess::implSetControlProperty: inconsistent parameters!" );
switch ( _nProperty )
@@ -551,9 +537,11 @@ namespace svt
case PropFlags::Text:
{
OUString sText;
- if ( _rValue >>= sText )
+ if (rValue >>= sText)
{
- _pControl->SetText( sText );
+ weld::Label* pLabel = dynamic_cast<weld::Label*>(pControl);
+ assert(pLabel);
+ pLabel->set_label(sText);
}
else if ( !_bIgnoreIllegalArgument )
{
@@ -565,9 +553,9 @@ namespace svt
case PropFlags::Enabled:
{
bool bEnabled = false;
- if ( _rValue >>= bEnabled )
+ if ( rValue >>= bEnabled )
{
- m_pFilePickerController->enableControl( _nControlId, bEnabled );
+ m_pFilePickerController->enableControl( nControlId, bEnabled );
}
else if ( !_bIgnoreIllegalArgument )
{
@@ -579,9 +567,9 @@ namespace svt
case PropFlags::Visible:
{
bool bVisible = false;
- if ( _rValue >>= bVisible )
+ if ( rValue >>= bVisible )
{
- _pControl->Show( bVisible );
+ pControl->set_visible( bVisible );
}
else if ( !_bIgnoreIllegalArgument )
{
@@ -593,9 +581,9 @@ namespace svt
case PropFlags::HelpUrl:
{
OUString sHelpURL;
- if ( _rValue >>= sHelpURL )
+ if ( rValue >>= sHelpURL )
{
- setHelpURL( _pControl, sHelpURL, m_pFileView == _pControl );
+ setHelpURL(pControl, sHelpURL);
}
else if ( !_bIgnoreIllegalArgument )
{
@@ -606,19 +594,19 @@ namespace svt
case PropFlags::ListItems:
{
- DBG_ASSERT( WindowType::LISTBOX == _pControl->GetType(),
- "OControlAccess::implSetControlProperty: invalid control/property combination!" );
+ weld::ComboBox* pComboBox = dynamic_cast<weld::ComboBox*>(pControl);
+ assert(pComboBox && "OControlAccess::implSetControlProperty: invalid control/property combination!");
Sequence< OUString > aItems;
- if ( _rValue >>= aItems )
+ if ( rValue >>= aItems )
{
// remove all previous items
- static_cast< ListBox* >( _pControl )->Clear();
+ pComboBox->clear();
// add the new ones
- for ( auto const & item : std::as_const(aItems) )
+ for (auto const & item : std::as_const(aItems))
{
- static_cast< ListBox* >( _pControl )->InsertEntry( item );
+ pComboBox->append_text(item);
}
}
@@ -631,13 +619,13 @@ namespace svt
case PropFlags::SelectedItem:
{
- DBG_ASSERT( WindowType::LISTBOX == _pControl->GetType(),
- "OControlAccess::implSetControlProperty: invalid control/property combination!" );
+ weld::ComboBox* pComboBox = dynamic_cast<weld::ComboBox*>(pControl);
+ assert(pComboBox && "OControlAccess::implSetControlProperty: invalid control/property combination!");
OUString sSelected;
- if ( _rValue >>= sSelected )
+ if ( rValue >>= sSelected )
{
- static_cast< ListBox* >( _pControl )->SelectEntry( sSelected );
+ pComboBox->set_active_text(sSelected);
}
else if ( !_bIgnoreIllegalArgument )
{
@@ -648,13 +636,13 @@ namespace svt
case PropFlags::SelectedItemIndex:
{
- DBG_ASSERT( WindowType::LISTBOX == _pControl->GetType(),
- "OControlAccess::implSetControlProperty: invalid control/property combination!" );
+ weld::ComboBox* pComboBox = dynamic_cast<weld::ComboBox*>(pControl);
+ assert(pComboBox && "OControlAccess::implSetControlProperty: invalid control/property combination!");
sal_Int32 nPos = 0;
- if ( _rValue >>= nPos )
+ if ( rValue >>= nPos )
{
- static_cast< ListBox* >( _pControl )->SelectEntryPos( nPos );
+ pComboBox->set_active(nPos);
}
else if ( !_bIgnoreIllegalArgument )
{
@@ -665,13 +653,13 @@ namespace svt
case PropFlags::Checked:
{
- DBG_ASSERT( WindowType::CHECKBOX == _pControl->GetType(),
- "OControlAccess::implSetControlProperty: invalid control/property combination!" );
+ weld::ToggleButton* pToggleButton = dynamic_cast<weld::ToggleButton*>(pControl);
+ assert(pToggleButton && "OControlAccess::implSetControlProperty: invalid control/property combination!");
bool bChecked = false;
- if ( _rValue >>= bChecked )
+ if ( rValue >>= bChecked )
{
- static_cast< CheckBox* >( _pControl )->Check( bChecked );
+ pToggleButton->set_active(bChecked);
}
else if ( !_bIgnoreIllegalArgument )
{
@@ -685,76 +673,80 @@ namespace svt
}
}
-
- Any OControlAccess::implGetControlProperty( Control const * _pControl, PropFlags _nProperty ) const
+ Any OControlAccess::implGetControlProperty( weld::Widget const * pControl, PropFlags _nProperty ) const
{
- DBG_ASSERT( _pControl, "OControlAccess::implGetControlProperty: invalid argument, this will crash!" );
+ assert(pControl && "OControlAccess::implGetControlProperty: invalid argument, this will crash!");
Any aReturn;
switch ( _nProperty )
{
case PropFlags::Text:
- aReturn <<= _pControl->GetText();
+ {
+ const weld::Label* pLabel = dynamic_cast<const weld::Label*>(pControl);
+ assert(pLabel);
+ aReturn <<= pLabel->get_label();
break;
-
+ }
case PropFlags::Enabled:
- aReturn <<= _pControl->IsEnabled();
+ aReturn <<= pControl->get_sensitive();
break;
case PropFlags::Visible:
- aReturn <<= _pControl->IsVisible();
+ aReturn <<= pControl->get_visible();
break;
case PropFlags::HelpUrl:
- aReturn <<= getHelpURL( _pControl, m_pFileView == _pControl );
+ aReturn <<= getHelpURL(pControl);
break;
case PropFlags::ListItems:
{
- DBG_ASSERT( WindowType::LISTBOX == _pControl->GetType(),
- "OControlAccess::implGetControlProperty: invalid control/property combination!" );
+ const weld::ComboBox* pComboBox = dynamic_cast<const weld::ComboBox*>(pControl);
+ assert(pComboBox && "OControlAccess::implGetControlProperty: invalid control/property combination!");
- Sequence< OUString > aItems( static_cast< ListBox const * >( _pControl )->GetEntryCount() );
+ Sequence< OUString > aItems(pComboBox->get_count());
OUString* pItems = aItems.getArray();
- for ( sal_Int32 i=0; i<static_cast< ListBox const * >( _pControl )->GetEntryCount(); ++i )
- *pItems++ = static_cast< ListBox const * >( _pControl )->GetEntry( i );
+ for (sal_Int32 i = 0; i < pComboBox->get_count(); ++i)
+ *pItems++ = pComboBox->get_text(i);
aReturn <<= aItems;
+ break;
}
- break;
case PropFlags::SelectedItem:
{
- DBG_ASSERT( WindowType::LISTBOX == _pControl->GetType(),
- "OControlAccess::implGetControlProperty: invalid control/property combination!" );
+ const weld::ComboBox* pComboBox = dynamic_cast<const weld::ComboBox*>(pControl);
+ assert(pComboBox && "OControlAccess::implGetControlProperty: invalid control/property combination!");
- sal_Int32 nSelected = static_cast< ListBox const * >( _pControl )->GetSelectedEntryPos();
+ sal_Int32 nSelected = pComboBox->get_active();
OUString sSelected;
- if ( LISTBOX_ENTRY_NOTFOUND != nSelected )
- sSelected = static_cast< ListBox const * >( _pControl )->GetSelectedEntry();
+ if (nSelected != -1)
+ sSelected = pComboBox->get_active_text();
aReturn <<= sSelected;
+ break;
}
- break;
case PropFlags::SelectedItemIndex:
{
- DBG_ASSERT( WindowType::LISTBOX == _pControl->GetType(),
- "OControlAccess::implGetControlProperty: invalid control/property combination!" );
+ const weld::ComboBox* pComboBox = dynamic_cast<const weld::ComboBox*>(pControl);
+ assert(pComboBox && "OControlAccess::implGetControlProperty: invalid control/property combination!");
- sal_Int32 nSelected = static_cast< ListBox const * >( _pControl )->GetSelectedEntryPos();
- if ( LISTBOX_ENTRY_NOTFOUND != nSelected )
- aReturn <<= static_cast< ListBox const * >( _pControl )->GetSelectedEntryPos();
+ sal_Int32 nSelected = pComboBox->get_active();
+ if (nSelected != -1)
+ aReturn <<= nSelected;
else
aReturn <<= sal_Int32(-1);
+ break;
}
- break;
case PropFlags::Checked:
- DBG_ASSERT( WindowType::CHECKBOX == _pControl->GetType(),
- "OControlAccess::implGetControlProperty: invalid control/property combination!" );
+ {
+ const weld::ToggleButton* pToggleButton = dynamic_cast<const weld::ToggleButton*>(pControl);
+ assert(pToggleButton && "OControlAccess::implGetControlProperty: invalid control/property combination!");
- aReturn <<= static_cast< CheckBox const * >( _pControl )->IsChecked( );
+ aReturn <<= pToggleButton->get_active();
break;
+ }
default:
OSL_FAIL( "OControlAccess::implGetControlProperty: invalid property id!" );
@@ -762,8 +754,6 @@ namespace svt
return aReturn;
}
-
} // namespace svt
-
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/fpicker/source/office/OfficeControlAccess.hxx b/fpicker/source/office/OfficeControlAccess.hxx
index 0f857cb08f78..e66baae3d37c 100644
--- a/fpicker/source/office/OfficeControlAccess.hxx
+++ b/fpicker/source/office/OfficeControlAccess.hxx
@@ -25,7 +25,6 @@
#include "pickercallbacks.hxx"
#include <o3tl/typed_flags_set.hxx>
-
enum class PropFlags {
Unknown = -1, // used as an error sentinel
NONE = 0x0000,
@@ -62,66 +61,68 @@ namespace svt
class OControlAccess
{
IFilePickerController* m_pFilePickerController;
- VclPtr<SvtFileView> m_pFileView;
+ SvtFileView* m_pFileView;
public:
- OControlAccess( IFilePickerController* _pController, SvtFileView* _pFileView );
+ OControlAccess( IFilePickerController* pController, SvtFileView* pFileView );
// XControlAccess implementation
- void setControlProperty( const OUString& _rControlName, const OUString& _rControlProperty, const css::uno::Any& _rValue );
- css::uno::Any getControlProperty( const OUString& _rControlName, const OUString& _rControlProperty );
+ void setControlProperty( const OUString& rControlName, const OUString& rControlProperty, const css::uno::Any& rValue );
+ css::uno::Any getControlProperty( const OUString& rControlName, const OUString& rControlProperty );
// XControlInformation implementation
css::uno::Sequence< OUString > getSupportedControls( ) const;
- css::uno::Sequence< OUString > getSupportedControlProperties( const OUString& _rControlName );
- static bool isControlSupported( const OUString& _rControlName );
- bool isControlPropertySupported( const OUString& _rControlName, const OUString& _rControlProperty );
+ css::uno::Sequence< OUString > getSupportedControlProperties( const OUString& rControlName );
+ static bool isControlSupported( const OUString& rControlName );
+ bool isControlPropertySupported( const OUString& rControlName, const OUString& rControlProperty );
// XFilePickerControlAccess
- void setValue( sal_Int16 _nId, sal_Int16 _nCtrlAction, const css::uno::Any& _rValue );
- css::uno::Any getValue( sal_Int16 _nId, sal_Int16 _nCtrlAction ) const;
- void setLabel( sal_Int16 _nId, const OUString& _rValue );
- OUString getLabel( sal_Int16 _nId ) const;
- void enableControl( sal_Int16 _nId, bool _bEnable );
+ void setValue( sal_Int16 nId, sal_Int16 nCtrlAction, const css::uno::Any& rValue );
+ css::uno::Any getValue( sal_Int16 nId, sal_Int16 nCtrlAction ) const;
+ void setLabel( sal_Int16 nId, const OUString& rValue );
+ OUString getLabel( sal_Int16 nId ) const;
+ void enableControl( sal_Int16 nId, bool bEnable );
- static void setHelpURL( vcl::Window* _pControl, const OUString& _rURL, bool _bFileView );
- static OUString getHelpURL( vcl::Window const * _pControl, bool _bFileView );
+ void setHelpURL(weld::Widget* pControl, const OUString& rURL);
+ OUString getHelpURL(weld::Widget const* pControl) const;
private:
/** implements the various methods for setting properties on controls
- @param _nControlId
+ @param nControlId
the id of the control
- @param _pControl
- the affected control. Must be the same as referred by <arg>_nControlId</arg>, or NULL.
- @param _nProperty
+ @param pControl
+ the affected control. Must be the same as referred by <arg>nControlId</arg>, or NULL.
+ @param nProperty
the property to set
See PropFlags::*
- @param _rValue
+ @param rValue
the value to set
- @param _bIgnoreIllegalArgument
+ @param bIgnoreIllegalArgument
if <FALSE/>, an exception will be thrown if the given value is of improper type
*/
void implSetControlProperty(
- sal_Int16 _nControlId,
- Control* _pControl, PropFlags _nProperty, const css::uno::Any& _rValue,
- bool _bIgnoreIllegalArgument = true );
+ sal_Int16 nControlId,
+ weld::Widget* pControl, PropFlags nProperty, const css::uno::Any& rValue,
+ bool bIgnoreIllegalArgument = true );
- Control* implGetControl( const OUString& _rControlName, sal_Int16* _pId, PropFlags* _pPropertyMask = nullptr ) const;
+ weld::Widget* implGetControl( const OUString& rControlName, sal_Int16* pId, PropFlags* pPropertyMask = nullptr ) const;
/** implements the various methods for retrieving properties from controls
- @param _pControl
+ @param pControl
the affected control
@PRECOND not <NULL/>
- @param _nProperty
+ @param nProperty
the property to retrieve
See PropFlags::*
@return
*/
- css::uno::Any implGetControlProperty( Control const * _pControl, PropFlags _nProperty ) const;
+ css::uno::Any implGetControlProperty( weld::Widget const * pControl, PropFlags nProperty ) const;
+
+ bool IsFileViewWidget(weld::Widget const * pControl) const;
- static void implDoListboxAction( ListBox* _pListbox, sal_Int16 _nCtrlAction, const css::uno::Any& _rValue );
+ static void implDoListboxAction(weld::ComboBox* pListbox, sal_Int16 nCtrlAction, const css::uno::Any& rValue);
};
diff --git a/fpicker/source/office/OfficeFilePicker.cxx b/fpicker/source/office/OfficeFilePicker.cxx
index ab5d0e3b435e..db7ac9d2bd60 100644
--- a/fpicker/source/office/OfficeFilePicker.cxx
+++ b/fpicker/source/office/OfficeFilePicker.cxx
@@ -149,28 +149,28 @@ void SvtFilePicker::prepareExecute()
if ( !m_aDefaultName.isEmpty() )
{
aPath.insertName( m_aDefaultName );
- getDialog()->SetHasFilename( true );
+ m_xDlg->SetHasFilename( true );
}
- getDialog()->SetPath( aPath.GetMainURL( INetURLObject::DecodeMechanism::NONE ) );
+ m_xDlg->SetPath( aPath.GetMainURL( INetURLObject::DecodeMechanism::NONE ) );
isFileSet = true;
}
if ( !isFileSet && !m_aDefaultName.isEmpty() )
{
- getDialog()->SetPath( m_aDefaultName );
- getDialog()->SetHasFilename( true );
+ m_xDlg->SetPath( m_aDefaultName );
+ m_xDlg->SetHasFilename( true );
}
}
else
{
// set the default standard dir
INetURLObject aStdDirObj( SvtPathOptions().GetWorkPath() );
- getDialog()->SetPath( aStdDirObj.GetMainURL( INetURLObject::DecodeMechanism::NONE ) );
+ m_xDlg->SetPath( aStdDirObj.GetMainURL( INetURLObject::DecodeMechanism::NONE ) );
}
// set the control values and set the control labels, too
if ( m_pElemList && !m_pElemList->empty() )
{
- ::svt::OControlAccess aAccess( getDialog(), getDialog()->GetView() );
+ ::svt::OControlAccess aAccess( m_xDlg.get(), m_xDlg->GetView() );
for (auto const& elem : *m_pElemList)
{
@@ -193,17 +193,19 @@ void SvtFilePicker::prepareExecute()
UnoFilterList aSubFilters;
elem.getSubFilters( aSubFilters );
- getDialog()->AddFilterGroup( elem.getTitle(), aSubFilters );
- }
+ m_xDlg->AddFilterGroup( elem.getTitle(), aSubFilters );
+ }
else
+ {
// it's a single filter
- getDialog()->AddFilter( elem.getTitle(), elem.getFilter() );
+ m_xDlg->AddFilter( elem.getTitle(), elem.getFilter() );
+ }
}
}
// set the default filter
if ( !m_aCurrentFilter.isEmpty() )
- getDialog()->SetCurFilter( m_aCurrentFilter );
+ m_xDlg->SetCurFilter( m_aCurrentFilter );
}
@@ -413,30 +415,28 @@ SvtFilePicker::~SvtFilePicker()
{
}
-
sal_Int16 SvtFilePicker::implExecutePicker( )
{
- getDialog()->SetFileCallback( this );
+ m_xDlg->SetFileCallback( this );
prepareExecute();
- getDialog()->EnableAutocompletion();
+ m_xDlg->EnableAutocompletion();
// now we are ready to execute the dialog
- sal_Int16 nRet = getDialog()->Execute();
+ sal_Int16 nRet = m_xDlg->run();
// the execution of the dialog yields, so it is possible the at this point the window or the dialog is closed
- if ( getDialog() )
- getDialog()->SetFileCallback( nullptr );
+ if (m_xDlg)
+ m_xDlg->SetFileCallback( nullptr );
return nRet;
}
-
-VclPtr<SvtFileDialog_Base> SvtFilePicker::implCreateDialog( vcl::Window* _pParent )
+std::unique_ptr<SvtFileDialog_Base> SvtFilePicker::implCreateDialog( weld::Window* pParent )
{
PickerFlags nBits = getPickerFlags();
- VclPtrInstance<SvtFileDialog> dialog( _pParent, nBits );
+ auto dialog = std::make_unique<SvtFileDialog>(pParent, nBits);
// Set StandardDir if present
if ( !m_aStandardDir.isEmpty())
@@ -475,38 +475,31 @@ void SAL_CALL SvtFilePicker::setTitle( const OUString& _rTitle )
OCommonPicker::setTitle( _rTitle );
}
-
sal_Int16 SAL_CALL SvtFilePicker::execute( )
{
return OCommonPicker::execute();
}
-
// XAsynchronousExecutableDialog functions
-
-
void SAL_CALL SvtFilePicker::setDialogTitle( const OUString& _rTitle )
{
setTitle( _rTitle );
}
-
void SAL_CALL SvtFilePicker::startExecuteModal( const Reference< css::ui::dialogs::XDialogClosedListener >& xListener )
{
m_xDlgClosedListener = xListener;
prepareDialog();
prepareExecute();
- SvtFileDialog_Base* pDialog = getDialog();
- pDialog->EnableAutocompletion();
- pDialog->StartExecuteAsync([this](sal_Int32 nResult){
+ m_xDlg->EnableAutocompletion();
+ if (!m_xDlg->PrepareExecute())
+ return;
+ weld::DialogController::runAsync(m_xDlg, [this](sal_Int32 nResult){
DialogClosedHdl(nResult);
});
}
-
// XFilePicker functions
-
-
void SAL_CALL SvtFilePicker::setMultiSelectionMode( sal_Bool bMode )
{
checkAlive();
@@ -536,15 +529,15 @@ OUString SAL_CALL SvtFilePicker::getDisplayDirectory()
checkAlive();
SolarMutexGuard aGuard;
- if ( getDialog() )
+ if (m_xDlg)
{
- OUString aPath = getDialog()->GetPath();
+ OUString aPath = m_xDlg->GetPath();
if( m_aOldHideDirectory == aPath )
return m_aOldDisplayDirectory;
m_aOldHideDirectory = aPath;
- if( !getDialog()->ContentIsFolder( aPath ) )
+ if( !m_xDlg->ContentIsFolder( aPath ) )
{
INetURLObject aFolder( aPath );
aFolder.CutLastName();
@@ -562,13 +555,13 @@ Sequence< OUString > SAL_CALL SvtFilePicker::getSelectedFiles()
checkAlive();
SolarMutexGuard aGuard;
- if ( ! getDialog() )
+ if (!m_xDlg)
{
Sequence< OUString > aEmpty;
return aEmpty;
}
- return comphelper::containerToSequence(getDialog()->GetPathList());
+ return comphelper::containerToSequence(m_xDlg->GetPathList());
}
Sequence< OUString > SAL_CALL SvtFilePicker::getFiles()
@@ -590,9 +583,9 @@ void SAL_CALL SvtFilePicker::setValue( sal_Int16 nElementID,
checkAlive();
SolarMutexGuard aGuard;
- if ( getDialog() )
+ if (m_xDlg)
{
- ::svt::OControlAccess aAccess( getDialog(), getDialog()->GetView() );
+ ::svt::OControlAccess aAccess( m_xDlg.get(), m_xDlg->GetView() );
aAccess.setValue( nElementID, nControlAction, rValue );
}
else
@@ -632,9 +625,9 @@ Any SAL_CALL SvtFilePicker::getValue( sal_Int16 nElementID, sal_Int16 nControlAc
Any aAny;
// execute() called?
- if ( getDialog() )
+ if (m_xDlg)
{
- ::svt::OControlAccess aAccess( getDialog(), getDialog()->GetView() );
+ ::svt::OControlAccess aAccess( m_xDlg.get(), m_xDlg->GetView() );
aAny = aAccess.getValue( nElementID, nControlAction );
}
else if ( m_pElemList )
@@ -660,9 +653,9 @@ void SAL_CALL SvtFilePicker::setLabel( sal_Int16 nLabelID, const OUString& rValu
checkAlive();
SolarMutexGuard aGuard;
- if ( getDialog() )
+ if (m_xDlg)
{
- ::svt::OControlAccess aAccess( getDialog(), getDialog()->GetView() );
+ ::svt::OControlAccess aAccess( m_xDlg.get(), m_xDlg->GetView() );
aAccess.setLabel( nLabelID, rValue );
}
else
@@ -698,9 +691,9 @@ OUString SAL_CALL SvtFilePicker::getLabel( sal_Int16 nLabelID )
SolarMutexGuard aGuard;
OUString aLabel;
- if ( getDialog() )
+ if (m_xDlg)
{
- ::svt::OControlAccess aAccess( getDialog(), getDialog()->GetView() );
+ ::svt::OControlAccess aAccess(m_xDlg.get(), m_xDlg->GetView());
aLabel = aAccess.getLabel( nLabelID );
}
else if ( m_pElemList )
@@ -725,9 +718,9 @@ void SAL_CALL SvtFilePicker::enableControl( sal_Int16 nElementID, sal_Bool bEnab
checkAlive();
SolarMutexGuard aGuard;
- if ( getDialog() )
+ if (m_xDlg)
{
- ::svt::OControlAccess aAccess( getDialog(), getDialog()->GetView() );
+ ::svt::OControlAccess aAccess(m_xDlg.get(), m_xDlg->GetView());
aAccess.enableControl( nElementID, bEnable );
}
else
@@ -776,10 +769,7 @@ void SAL_CALL SvtFilePicker::removeFilePickerListener( const Reference< XFilePic
m_xListener.clear();
}
-
// XFilePreview functions
-
-
Sequence< sal_Int16 > SAL_CALL SvtFilePicker::getSupportedImageFormats()
{
checkAlive();
@@ -792,21 +782,11 @@ Sequence< sal_Int16 > SAL_CALL SvtFilePicker::getSupportedImageFormats()
return aFormats;
}
-
sal_Int32 SAL_CALL SvtFilePicker::getTargetColorDepth()
{
- checkAlive();
-
- SolarMutexGuard aGuard;
- sal_Int32 nDepth = 0;
-
- if ( getDialog() )
- nDepth = getDialog()->getTargetColorDepth();
-
- return nDepth;
+ return 0;
}
-
sal_Int32 SAL_CALL SvtFilePicker::getAvailableWidth()
{
checkAlive();
@@ -814,13 +794,12 @@ sal_Int32 SAL_CALL SvtFilePicker::getAvailableWidth()
SolarMutexGuard aGuard;
sal_Int32 nWidth = 0;
- if ( getDialog() )
- nWidth = getDialog()->getAvailableWidth();
+ if (m_xDlg)
+ nWidth = m_xDlg->getAvailableWidth();
return nWidth;
}
-
sal_Int32 SAL_CALL SvtFilePicker::getAvailableHeight()
{
checkAlive();
@@ -828,23 +807,21 @@ sal_Int32 SAL_CALL SvtFilePicker::getAvailableHeight()
SolarMutexGuard aGuard;
sal_Int32 nHeight = 0;
- if ( getDialog() )
- nHeight = getDialog()->getAvailableHeight();
+ if (m_xDlg)
+ nHeight = m_xDlg->getAvailableHeight();
return nHeight;
}
-
-void SAL_CALL SvtFilePicker::setImage( sal_Int16 /*aImageFormat*/, const Any& rImage )
+void SAL_CALL SvtFilePicker::setImage(sal_Int16 /*aImageFormat*/, const Any& rImage)
{
checkAlive();
SolarMutexGuard aGuard;
- if ( getDialog() )
- getDialog()->setImage( rImage );
+ if (m_xDlg)
+ m_xDlg->setImage(rImage);
}
-
sal_Bool SAL_CALL SvtFilePicker::setShowState( sal_Bool )
{
checkAlive();
@@ -852,7 +829,7 @@ sal_Bool SAL_CALL SvtFilePicker::setShowState( sal_Bool )
SolarMutexGuard aGuard;
bool bRet = false;
- if ( getDialog() )
+ if (m_xDlg)
{
// #97633 for the system filedialog it's
// useful to make the preview switchable
@@ -880,8 +857,8 @@ sal_Bool SAL_CALL SvtFilePicker::getShowState()
SolarMutexGuard aGuard;
bool bRet = false;
- if ( getDialog() )
- bRet = getDialog()->getShowState();
+ if (m_xDlg)
+ bRet = m_xDlg->getShowState();
return bRet;
}
@@ -946,8 +923,8 @@ void SAL_CALL SvtFilePicker::setCurrentFilter( const OUString& aTitle )
m_aCurrentFilter = aTitle;
- if ( getDialog() )
- getDialog()->SetCurFilter( aTitle );
+ if (m_xDlg)
+ m_xDlg->SetCurFilter( aTitle );
}
@@ -956,7 +933,7 @@ OUString SAL_CALL SvtFilePicker::getCurrentFilter()
checkAlive();
SolarMutexGuard aGuard;
- OUString aFilter = getDialog() ? getDialog()->GetCurFilter() :
+ OUString aFilter = m_xDlg ? m_xDlg->GetCurFilter() :
m_aCurrentFilter;
return aFilter;
}
@@ -1091,11 +1068,11 @@ SvtRemoteFilePicker::SvtRemoteFilePicker()
{
}
-VclPtr<SvtFileDialog_Base> SvtRemoteFilePicker::implCreateDialog( vcl::Window* _pParent )
+std::unique_ptr<SvtFileDialog_Base> SvtRemoteFilePicker::implCreateDialog(weld::Window* pParent)
{
PickerFlags nBits = getPickerFlags();
- VclPtrInstance<RemoteFilesDialog> dialog( _pParent, nBits);
+ auto dialog = std::make_unique<RemoteFilesDialog>(pParent, nBits);
// Set StandardDir if present
if ( !m_aStandardDir.isEmpty())
diff --git a/fpicker/source/office/OfficeFilePicker.hxx b/fpicker/source/office/OfficeFilePicker.hxx
index 678ad35197f4..e682581c5372 100644
--- a/fpicker/source/office/OfficeFilePicker.hxx
+++ b/fpicker/source/office/OfficeFilePicker.hxx
@@ -203,7 +203,7 @@ protected:
// OCommonPicker overridables
- virtual VclPtr<SvtFileDialog_Base> implCreateDialog( vcl::Window* _pParent ) override;
+ virtual std::unique_ptr<SvtFileDialog_Base> implCreateDialog( weld::Window* pParent ) override;
virtual sal_Int16 implExecutePicker( ) override;
virtual bool implHandleInitializationArgument(
const OUString& _rName,
@@ -231,7 +231,7 @@ class SvtRemoteFilePicker : public SvtFilePicker
public:
SvtRemoteFilePicker();
- virtual VclPtr<SvtFileDialog_Base> implCreateDialog( vcl::Window* _pParent ) override;
+ virtual std::unique_ptr<SvtFileDialog_Base> implCreateDialog( weld::Window* pParent ) override;
// disambiguate XInterface
diff --git a/fpicker/source/office/OfficeFolderPicker.cxx b/fpicker/source/office/OfficeFolderPicker.cxx
index 398fbe3a3932..db06eb421c76 100644
--- a/fpicker/source/office/OfficeFolderPicker.cxx
+++ b/fpicker/source/office/OfficeFolderPicker.cxx
@@ -59,16 +59,18 @@ void SAL_CALL SvtFolderPicker::startExecuteModal( const Reference< css::ui::dial
m_xListener = xListener;
prepareDialog();
prepareExecute();
- SvtFileDialog_Base* pDialog = getDialog();
- pDialog->EnableAutocompletion();
- pDialog->StartExecuteAsync([this](sal_Int32 nResult){
+
+ m_xDlg->EnableAutocompletion();
+ if (!m_xDlg->PrepareExecute())
+ return;
+ weld::DialogController::runAsync(m_xDlg, [this](sal_Int32 nResult){
DialogClosedHdl(nResult);
});
}
-VclPtr<SvtFileDialog_Base> SvtFolderPicker::implCreateDialog( vcl::Window* _pParent )
+std::unique_ptr<SvtFileDialog_Base> SvtFolderPicker::implCreateDialog( weld::Window* pParent )
{
- return VclPtr<SvtFileDialog>::Create( _pParent, PickerFlags::PathDialog );
+ return std::make_unique<SvtFileDialog>(pParent, PickerFlags::PathDialog);
}
sal_Int16 SvtFolderPicker::implExecutePicker( )
@@ -76,22 +78,20 @@ sal_Int16 SvtFolderPicker::implExecutePicker( )
prepareExecute();
// now we are ready to execute the dialog
- getDialog()->EnableAutocompletion( false );
- sal_Int16 nRet = getDialog()->Execute();
-
- return nRet;
+ m_xDlg->EnableAutocompletion( false );
+ return m_xDlg->run();
}
void SvtFolderPicker::prepareExecute()
{
// set the default directory
if ( !m_aDisplayDirectory.isEmpty() )
- getDialog()->SetPath( m_aDisplayDirectory );
+ m_xDlg->SetPath( m_aDisplayDirectory );
else
{
// set the default standard dir
INetURLObject aStdDirObj( SvtPathOptions().GetWorkPath() );
- getDialog()->SetPath( aStdDirObj.GetMainURL( INetURLObject::DecodeMechanism::NONE) );
+ m_xDlg->SetPath( aStdDirObj.GetMainURL( INetURLObject::DecodeMechanism::NONE) );
}
}
@@ -113,10 +113,10 @@ void SAL_CALL SvtFolderPicker::setDisplayDirectory( const OUString& aDirectory )
OUString SAL_CALL SvtFolderPicker::getDisplayDirectory()
{
- if ( ! getDialog() )
+ if (!m_xDlg)
return m_aDisplayDirectory;
- std::vector<OUString> aPathList(getDialog()->GetPathList());
+ std::vector<OUString> aPathList(m_xDlg->GetPathList());
if(!aPathList.empty())
return aPathList[0];
@@ -126,10 +126,10 @@ OUString SAL_CALL SvtFolderPicker::getDisplayDirectory()
OUString SAL_CALL SvtFolderPicker::getDirectory()
{
- if ( ! getDialog() )
+ if (!m_xDlg)
return m_aDisplayDirectory;
- std::vector<OUString> aPathList(getDialog()->GetPathList());
+ std::vector<OUString> aPathList(m_xDlg->GetPathList());
if(!aPathList.empty())
return aPathList[0];
diff --git a/fpicker/source/office/OfficeFolderPicker.hxx b/fpicker/source/office/OfficeFolderPicker.hxx
index e4408df314db..a9f3606b1050 100644
--- a/fpicker/source/office/OfficeFolderPicker.hxx
+++ b/fpicker/source/office/OfficeFolderPicker.hxx
@@ -93,7 +93,7 @@ protected:
// OCommonPicker overridables
- virtual VclPtr<SvtFileDialog_Base> implCreateDialog( vcl::Window* _pParent ) override;
+ virtual std::unique_ptr<SvtFileDialog_Base> implCreateDialog( weld::Window* pParent ) override;
virtual sal_Int16 implExecutePicker( ) override;
};
diff --git a/fpicker/source/office/PlacesListBox.cxx b/fpicker/source/office/PlacesListBox.cxx
index da318d6030a5..f500e9a608cc 100644
--- a/fpicker/source/office/PlacesListBox.cxx
+++ b/fpicker/source/office/PlacesListBox.cxx
@@ -14,96 +14,36 @@
#include <vcl/event.hxx>
#include <bitmaps.hlst>
-#define COLUMN_NAME 1
-
-
-PlacesListBox_Impl::PlacesListBox_Impl( PlacesListBox* pParent, const OUString& rTitle ) :
- SvHeaderTabListBox( pParent, WB_TABSTOP | WB_NOINITIALSELECTION ),
- mpHeaderBar( nullptr ),
- mpParent( pParent )
-{
- Size aBoxSize = pParent->GetSizePixel( );
- mpHeaderBar = VclPtr<HeaderBar>::Create( pParent, WB_BUTTONSTYLE | WB_BOTTOMBORDER );
- mpHeaderBar->SetPosSizePixel( Point( 0, 0 ), Size( 600, 16 ) );
-
- long aTabPositions[] = { 20, 600 };
- SetTabs( SAL_N_ELEMENTS(aTabPositions), aTabPositions, MapUnit::MapPixel );
- mpHeaderBar->InsertItem( COLUMN_NAME, rTitle, 600, HeaderBarItemBits::LEFT );
-
- Size aHeadSize = mpHeaderBar->GetSizePixel();
- SetPosSizePixel( Point( 0, aHeadSize.getHeight() ),
- Size( aBoxSize.getWidth(), aBoxSize.getHeight() - aHeadSize.getHeight() ) );
-
- InitHeaderBar( mpHeaderBar );
-
- Show( );
- mpHeaderBar->Show();
-}
-
-PlacesListBox_Impl::~PlacesListBox_Impl( )
-{
- disposeOnce();
-}
-
-void PlacesListBox_Impl::dispose()
-{
- mpHeaderBar.disposeAndClear();
- mpParent.clear();
- SvHeaderTabListBox::dispose();
-}
-
-void PlacesListBox_Impl::MouseButtonUp( const MouseEvent& rMEvt )
-{
- SvHeaderTabListBox::MouseButtonUp( rMEvt );
- mpParent->updateView( );
-}
-
-PlacesListBox::PlacesListBox( vcl::Window* pParent, SvtFileDialog* pFileDlg, const OUString& rTitle, WinBits nBits ) :
- Control( pParent, nBits ),
- maPlaces( ),
- mpDlg( pFileDlg ),
- mpImpl( nullptr ),
- mpAddBtn( ),
- mpDelBtn( ),
- mnNbEditables( 0 ),
- mbUpdated( false ),
- mbSelectionChanged( false )
-{
- mpImpl = VclPtr<PlacesListBox_Impl>::Create( this, rTitle );
-
- mpImpl->SetSelectHdl( LINK( this, PlacesListBox, Selection ) );
- mpImpl->SetDoubleClickHdl( LINK( this, PlacesListBox, DoubleClick ) ) ;
-
- mpAddBtn.reset( VclPtr<ImageButton>::Create( this, 0 ) );
- mpAddBtn->SetText( "+" );
- mpAddBtn->SetPosSizePixel( Point( 0, 0 ), Size( 22, 22 ) );
- mpAddBtn->Show();
-
- mpDelBtn.reset( VclPtr<ImageButton>::Create( this, 0 ) );
- mpDelBtn->SetText( "-" );
- mpDelBtn->SetPosSizePixel( Point( 0, 0 ), Size( 22, 22 ) );
- mpDelBtn->Show();
+PlacesListBox::PlacesListBox(std::unique_ptr<weld::TreeView> xControl,
+ std::unique_ptr<weld::Button> xAdd,
+ std::unique_ptr<weld::Button> xDel,
+ SvtFileDialog* pFileDlg)
+ : maPlaces( )
+ , mpDlg(pFileDlg)
+ , mxImpl(std::move(xControl))
+ , mxAddBtn(std::move(xAdd))
+ , mxDelBtn(std::move(xDel))
+ , mnNbEditables(0)
+ , mbUpdated( false )
+ , mbSelectionChanged( false )
+{
+ Size aSize(mxImpl->get_approximate_digit_width() * 18,
+ mxImpl->get_height_rows(9));
+ mxImpl->set_size_request(aSize.Width(), aSize.Height());
+
+ mxImpl->connect_changed( LINK( this, PlacesListBox, Selection ) );
+ mxImpl->connect_row_activated( LINK( this, PlacesListBox, DoubleClick ) ) ;
}
PlacesListBox::~PlacesListBox( )
{
- disposeOnce();
-}
-
-void PlacesListBox::dispose()
-{
- mpImpl.disposeAndClear();
- mpAddBtn.disposeAndClear();
- mpDelBtn.disposeAndClear();
- mpDlg.clear();
- Control::dispose();
}
void PlacesListBox::AppendPlace( const PlacePtr& pPlace )
{
maPlaces.push_back( pPlace );
- mpImpl->InsertEntry( pPlace->GetName( ),
- getEntryIcon( pPlace ), getEntryIcon( pPlace ) );
+ mxImpl->append_text(pPlace->GetName());
+ mxImpl->set_image(maPlaces.size() - 1, getEntryIcon(pPlace));
if(pPlace->IsEditable()) {
++mnNbEditables;
@@ -111,7 +51,6 @@ void PlacesListBox::AppendPlace( const PlacePtr& pPlace )
}
}
-
bool PlacesListBox::IsUpdated() {
if(mbUpdated) {
mbUpdated = false;
@@ -120,7 +59,6 @@ bool PlacesListBox::IsUpdated() {
return false;
}
-
void PlacesListBox::RemovePlace( sal_uInt16 nPos )
{
if ( nPos < maPlaces.size() )
@@ -130,88 +68,61 @@ void PlacesListBox::RemovePlace( sal_uInt16 nPos )
mbUpdated = true;
}
maPlaces.erase( maPlaces.begin() + nPos );
- SvTreeListEntry* pEntry = mpImpl->GetEntry( nPos );
- mpImpl->RemoveEntry( pEntry );
+ mxImpl->remove(nPos);
}
}
void PlacesListBox::RemoveSelectedPlace() {
- RemovePlace(mpImpl->GetCurrRow());
+ RemovePlace(mxImpl->get_cursor_index());
}
-void PlacesListBox::SetAddHdl( const Link<Button*,void>& rHdl )
+void PlacesListBox::SetAddHdl( const Link<weld::Button&,void>& rHdl )
{
- mpAddBtn->SetClickHdl( rHdl );
+ mxAddBtn->connect_clicked( rHdl );
}
-void PlacesListBox::SetDelHdl( const Link<Button*,void>& rHdl )
+void PlacesListBox::SetDelHdl( const Link<weld::Button&,void>& rHdl )
{
- mpDelBtn->SetClickHdl( rHdl );
+ mxDelBtn->connect_clicked( rHdl );
}
void PlacesListBox::SetDelEnabled( bool enabled )
{
- mpDelBtn->Enable( enabled );
-}
-
-void PlacesListBox::SetSizePixel( const Size& rNewSize )
-{
- Control::SetSizePixel( rNewSize );
- Size aListSize( rNewSize );
- aListSize.AdjustHeight( -(26 + 18) );
- mpImpl->SetSizePixel( aListSize );
-
- sal_Int32 nBtnY = rNewSize.Height() - 26;
- mpAddBtn->SetPosPixel( Point( 3, nBtnY ) );
- mpDelBtn->SetPosPixel( Point( 6 + 24, nBtnY ) );
-}
-
-bool PlacesListBox::EventNotify( NotifyEvent& rNEvt )
-{
- if( rNEvt.GetType() == MouseNotifyEvent::KEYINPUT )
- {
- const KeyEvent* pKeyEvent = rNEvt.GetKeyEvent();
- const vcl::KeyCode& rCode = pKeyEvent->GetKeyCode();
-
- if( rCode.GetCode() == KEY_RETURN )
- {
- mbSelectionChanged = true;
- updateView();
- return true;
- }
- }
- return Control::EventNotify(rNEvt);
+ mxDelBtn->set_sensitive( enabled );
}
-Image PlacesListBox::getEntryIcon( const PlacePtr& pPlace )
+OUString PlacesListBox::getEntryIcon( const PlacePtr& pPlace )
{
- Image theImage = SvtFileDialog::GetButtonImage( BMP_FILEDLG_PLACE_LOCAL );
+ OUString theImage = BMP_FILEDLG_PLACE_LOCAL;
if ( !pPlace->IsLocal( ) )
- theImage = SvtFileDialog::GetButtonImage( BMP_FILEDLG_PLACE_REMOTE );
+ theImage = BMP_FILEDLG_PLACE_REMOTE;
return theImage;
}
-IMPL_LINK_NOARG( PlacesListBox, Selection, SvTreeListBox*, void )
+IMPL_LINK_NOARG( PlacesListBox, Selection, weld::TreeView&, void )
{
- sal_uInt32 nSelected = mpImpl->GetCurrRow();
+ sal_uInt32 nSelected = mxImpl->get_cursor_index();
PlacePtr pPlace = maPlaces[nSelected];
mbSelectionChanged = true;
- if(pPlace->IsEditable())
+ if (pPlace->IsEditable())
mpDlg->RemovablePlaceSelected();
else
mpDlg->RemovablePlaceSelected(false);
+
+ updateView();
}
-IMPL_LINK_NOARG( PlacesListBox, DoubleClick, SvTreeListBox*, bool )
+IMPL_LINK_NOARG( PlacesListBox, DoubleClick, weld::TreeView&, bool )
{
- sal_uInt16 nSelected = mpImpl->GetCurrRow();
+ sal_uInt16 nSelected = mxImpl->get_cursor_index();
PlacePtr pPlace = maPlaces[nSelected];
if ( pPlace->IsEditable() && !pPlace->IsLocal( ) )
{
- PlaceEditDialog aDlg(mpDlg->GetFrameWeld(), pPlace);
+ PlaceEditDialog aDlg(mpDlg->getDialog(), pPlace);
short aRetCode = aDlg.run();
- switch(aRetCode) {
+ switch (aRetCode)
+ {
case RET_OK :
{
pPlace->SetName ( aDlg.GetServerName() );
@@ -228,18 +139,14 @@ IMPL_LINK_NOARG( PlacesListBox, DoubleClick, SvTreeListBox*, bool )
break;
};
}
- return false;
+ return true;
}
void PlacesListBox::updateView( )
{
- if ( mbSelectionChanged )
- {
- mbSelectionChanged = false;
- sal_uInt32 nSelected = mpImpl->GetCurrRow();
- PlacePtr pPlace = maPlaces[nSelected];
- mpDlg->OpenURL_Impl( pPlace->GetUrl( ) );
- }
+ sal_uInt32 nSelected = mxImpl->get_cursor_index();
+ PlacePtr pPlace = maPlaces[nSelected];
+ mpDlg->OpenURL_Impl( pPlace->GetUrl( ) );
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/fpicker/source/office/PlacesListBox.hxx b/fpicker/source/office/PlacesListBox.hxx
index 81a11f0e8123..151a0d1d4a01 100644
--- a/fpicker/source/office/PlacesListBox.hxx
+++ b/fpicker/source/office/PlacesListBox.hxx
@@ -12,72 +12,60 @@
#include "iodlg.hxx"
#include <svtools/place.hxx>
-#include <vcl/svtabbx.hxx>
+#include <vcl/weld.hxx>
#include <memory>
#include <vector>
-typedef std::shared_ptr< Place > PlacePtr;
+typedef std::shared_ptr<Place> PlacePtr;
class PlacesListBox;
-class PlacesListBox_Impl : public SvHeaderTabListBox
-{
- private:
- VclPtr<HeaderBar> mpHeaderBar;
- VclPtr<PlacesListBox> mpParent;
-
- public:
- PlacesListBox_Impl( PlacesListBox* pParent, const OUString& rTitle );
- virtual ~PlacesListBox_Impl( ) override;
- virtual void dispose() override;
-
- virtual void MouseButtonUp( const MouseEvent& rMEvt ) override;
-};
/** ListBox to handle Places.
*/
-class PlacesListBox : public Control
+class PlacesListBox
{
- private:
- std::vector< PlacePtr > maPlaces;
- VclPtr<SvtFileDialog> mpDlg;
- VclPtr<PlacesListBox_Impl> mpImpl;
- VclPtr<PushButton> mpAddBtn;
- VclPtr<PushButton> mpDelBtn;
- sal_Int32 mnNbEditables;
- bool mbUpdated;
- bool mbSelectionChanged;
-
- public:
- PlacesListBox( vcl::Window* pParent, SvtFileDialog* pFileDlg, const OUString& rTitle, WinBits nBits );
- virtual ~PlacesListBox( ) override;
- virtual void dispose() override;
-
- void AppendPlace( const PlacePtr& pPlace );
- void RemovePlace( sal_uInt16 nPos );
- void RemoveSelectedPlace();
- sal_Int32 GetNbEditablePlaces() const { return mnNbEditables;}
- bool IsUpdated();
- const std::vector<PlacePtr>& GetPlaces() const { return maPlaces;}
-
- void SetAddHdl( const Link<Button*,void>& rHdl );
- void SetDelHdl( const Link<Button*,void>& rHdl );
- void SetDelEnabled( bool enabled );
- void SetSizePixel( const Size& rNewSize ) override;
- void updateView( );
-
- const VclPtr<PushButton>& GetAddButton() const { return mpAddBtn; }
- const VclPtr<PushButton>& GetDeleteButton() const { return mpDelBtn; }
- const VclPtr<PlacesListBox_Impl>& GetPlacesListBox() const { return mpImpl; }
-
- virtual bool EventNotify( NotifyEvent& rNEvt ) override;
-
- private:
-
- static Image getEntryIcon( const PlacePtr& pPlace );
-
- DECL_LINK( Selection, SvTreeListBox*, void );
- DECL_LINK( DoubleClick, SvTreeListBox*, bool );
+private:
+ std::vector<PlacePtr> maPlaces;
+ SvtFileDialog* mpDlg;
+ std::unique_ptr<weld::TreeView> mxImpl;
+ std::unique_ptr<weld::Button> mxAddBtn;
+ std::unique_ptr<weld::Button> mxDelBtn;
+ sal_Int32 mnNbEditables;
+ bool mbUpdated;
+ bool mbSelectionChanged;
+
+public:
+ PlacesListBox(std::unique_ptr<weld::TreeView> xTreeView,
+ std::unique_ptr<weld::Button> xAddBtn,
+ std::unique_ptr<weld::Button> xDelBtn,
+ SvtFileDialog* pFileDlg);
+ ~PlacesListBox();
+
+ void AppendPlace( const PlacePtr& pPlace );
+ void RemovePlace( sal_uInt16 nPos );
+ void RemoveSelectedPlace();
+ sal_Int32 GetNbEditablePlaces() const { return mnNbEditables;}
+ bool IsUpdated();
+ const std::vector<PlacePtr>& GetPlaces() const { return maPlaces;}
+
+ void SetAddHdl( const Link<weld::Button&,void>& rHdl );
+ void SetDelHdl( const Link<weld::Button&,void>& rHdl );
+ void SetDelEnabled( bool enabled );
+ void updateView( );
+
+ void set_help_id(const OString& rHelpId) { mxImpl->set_help_id(rHelpId); }
+
+ const weld::Button& GetAddButton() const { return *mxAddBtn; }
+ const weld::Button& GetDeleteButton() const { return *mxDelBtn; }
+ weld::TreeView& GetPlacesListBox() { return *mxImpl; }
+
+private:
+
+ static OUString getEntryIcon(const PlacePtr& pPlace);
+
+ DECL_LINK( Selection, weld::TreeView&, void );
+ DECL_LINK( DoubleClick, weld::TreeView&, bool );
};
#endif
diff --git a/fpicker/source/office/RemoteFilesDialog.cxx b/fpicker/source/office/RemoteFilesDialog.cxx
index 97aa44706a6d..a795338581f4 100644
--- a/fpicker/source/office/RemoteFilesDialog.cxx
+++ b/fpicker/source/office/RemoteFilesDialog.cxx
@@ -22,7 +22,6 @@
#include <svtools/PlaceEditDialog.hxx>
#include <tools/debug.hxx>
#include <ucbhelper/commandenvironment.hxx>
-#include <vcl/dialog.hxx>
#include <vcl/errinf.hxx>
#include <vcl/lstbox.hxx>
#include <vcl/treelistentry.hxx>
@@ -30,183 +29,25 @@
#include <vcl/ptrstyle.hxx>
#include <officecfg/Office/Common.hxx>
-class FileViewContainer : public vcl::Window
-{
- enum FocusState
- {
- Prev = 0,
- TreeView,
- FileView,
- Next,
- FocusCount
- };
-
- private:
- VclPtr< SvtFileView > m_pFileView;
- VclPtr< FolderTree > m_pTreeView;
- VclPtr< Splitter > m_pSplitter;
-
- int m_nCurrentFocus;
- VclPtr<vcl::Window> m_pFocusWidgets[FocusState::FocusCount];
-
- public:
- explicit FileViewContainer( vcl::Window *pParent )
- : Window( pParent, WB_TABSTOP )
- , m_pFileView( nullptr )
- , m_pTreeView( nullptr )
- , m_pSplitter( nullptr )
- , m_nCurrentFocus( 0 )
- {
- }
-
- virtual ~FileViewContainer() override
- {
- disposeOnce();
- }
-
- virtual void dispose() override
- {
- m_pFileView.clear();
- m_pTreeView.clear();
- m_pSplitter.clear();
- vcl::Window::dispose();
- }
-
- void init( SvtFileView* pFileView,
- Splitter* pSplitter,
- FolderTree* pTreeView,
- vcl::Window* pPrevSibling,
- vcl::Window* pNextSibling )
- {
- m_pFileView = pFileView;
- m_pTreeView = pTreeView;
- m_pSplitter = pSplitter;
- m_pFocusWidgets[FocusState::Prev] = pPrevSibling;
- m_pFocusWidgets[FocusState::TreeView] = pTreeView;
- m_pFocusWidgets[FocusState::FileView] = pFileView;
- m_pFocusWidgets[FocusState::Next] = pNextSibling;
- }
-
- virtual void Resize() override
- {
- Window::Resize();
-
- if( !m_pFileView || !m_pTreeView )
- return;
-
- Size aSize = GetSizePixel();
- Point aPos( m_pFileView->GetPosPixel() );
- Size aNewSize( aSize.Width() - aPos.X(), aSize.Height() );
-
- m_pFileView->SetSizePixel( aNewSize );
-
- // Resize the Splitter to fit the height
- Size splitterNewSize = m_pSplitter->GetSizePixel();
- splitterNewSize.setHeight( aSize.Height() );
- m_pSplitter->SetSizePixel( splitterNewSize );
- sal_Int32 nMinX = m_pTreeView->GetPosPixel().X();
- sal_Int32 nMaxX = m_pFileView->GetPosPixel().X() + m_pFileView->GetSizePixel().Width() - nMinX;
- m_pSplitter->SetDragRectPixel( tools::Rectangle( Point( nMinX, 0 ), Size( nMaxX, aSize.Width() ) ) );
-
- // Resize the tree list box to fit the height of the FileView
- Size placesNewSize( m_pTreeView->GetSizePixel() );
- placesNewSize.setHeight( aSize.Height() );
- m_pTreeView->SetSizePixel( placesNewSize );
- }
-
- void changeFocus( bool bReverse )
- {
- if( !m_pFileView || !m_pTreeView )
- return;
-
- if( bReverse && m_nCurrentFocus > FocusState::Prev && m_nCurrentFocus <= FocusState::Next )
- {
- m_pFocusWidgets[m_nCurrentFocus]->SetFakeFocus(false);
- m_pFocusWidgets[m_nCurrentFocus]->LoseFocus();
-
- m_pFocusWidgets[--m_nCurrentFocus]->SetFakeFocus( true );
- m_pFocusWidgets[m_nCurrentFocus]->GrabFocus();
- }
- else if( !bReverse && m_nCurrentFocus >= FocusState::Prev && m_nCurrentFocus < FocusState::Next )
- {
- m_pFocusWidgets[m_nCurrentFocus]->SetFakeFocus(false);
- m_pFocusWidgets[m_nCurrentFocus]->LoseFocus();
-
- m_pFocusWidgets[++m_nCurrentFocus]->SetFakeFocus( true );
- m_pFocusWidgets[m_nCurrentFocus]->GrabFocus();
- }
- }
-
- virtual void GetFocus() override
- {
- if( !m_pFileView || !m_pTreeView )
- return;
-
- GetFocusFlags aFlags = GetGetFocusFlags();
-
- if( aFlags & GetFocusFlags::Forward )
- m_nCurrentFocus = FocusState::TreeView;
- else if( aFlags & GetFocusFlags::Backward )
- m_nCurrentFocus = FocusState::FileView;
-
- if( m_nCurrentFocus >= FocusState::Prev && m_nCurrentFocus <= FocusState::Next )
- {
- m_pFocusWidgets[m_nCurrentFocus]->SetFakeFocus( true );
- m_pFocusWidgets[m_nCurrentFocus]->GrabFocus();
- }
- }
-
- virtual bool EventNotify( NotifyEvent& rNEvt ) override
- {
- if( rNEvt.GetType() == MouseNotifyEvent::GETFOCUS )
- {
- // we must also update counter when user change focus using mouse
- for(int i = FocusState::Prev; i <= FocusState::Next; i++)
- {
- if( rNEvt.GetWindow() == m_pFocusWidgets[i] )
- {
- m_nCurrentFocus = i;
- return true;
- }
- }
-
- // GETFOCUS for one of FileView's subcontrols
- m_nCurrentFocus = FocusState::FileView;
- return true;
- }
- if( rNEvt.GetType() == MouseNotifyEvent::KEYINPUT )
- {
- const KeyEvent* pKeyEvent = rNEvt.GetKeyEvent();
- const vcl::KeyCode& rCode = pKeyEvent->GetKeyCode();
- bool bShift = rCode.IsShift();
- if( rCode.GetCode() == KEY_TAB )
- {
- changeFocus( bShift );
- return true;
- }
- }
- return Window::EventNotify(rNEvt);
- }
-};
-
-RemoteFilesDialog::RemoteFilesDialog( vcl::Window* pParent, PickerFlags nBits )
- : SvtFileDialog_Base( pParent, "RemoteFilesDialog", "fps/ui/remotefilesdialog.ui" )
+RemoteFilesDialog::RemoteFilesDialog( weld::Window* pParent, PickerFlags nBits )
+ : SvtFileDialog_Base( pParent, "fps/ui/remotefilesdialog.ui", "RemoteFilesDialog" )
, m_xContext( comphelper::getProcessComponentContext() )
, m_xMasterPasswd( PasswordContainer::create( m_xContext ) )
, m_nWidth( 0 )
, m_nHeight( 0 )
- , m_pSplitter( nullptr )
- , m_pFileView( nullptr )
- , m_pContainer( nullptr )
- , m_pAddMenu( nullptr )
+ , m_bIsInExecute( false )
+ , m_xCancel_btn(m_xBuilder->weld_button("cancel"))
+ , m_xAddService_bar(m_xBuilder->weld_toolbar("add_service_bar"))
+ , m_xAddService_menu(m_xBuilder->weld_menu("service_edit_menu"))
+ , m_xServices_lb(m_xBuilder->weld_combo_box("services_lb"))
+ , m_xPathContainer(m_xBuilder->weld_container("breadcrumb_container"))
+ , m_xNewFolder(m_xBuilder->weld_button("new_folder"))
+ , m_xListView_btn(m_xBuilder->weld_toggle_button("list_view"))
+ , m_xIconView_btn(m_xBuilder->weld_toggle_button("icon_view"))
+ , m_xFilter_lb(m_xBuilder->weld_combo_box("filter_lb"))
+ , m_xName_ed(new AutocompleteEdit(m_xBuilder->weld_entry("filename")))
{
- get( m_pCancel_btn, "cancel" );
- get( m_pAddService_btn, "add_service_btn" );
- get( m_pServices_lb, "services_lb" );
- get( m_pFilter_lb, "filter_lb" );
- get( m_pNewFolder, "new_folder" );
- get( m_pListView_btn, "list_view" );
- get( m_pIconView_btn, "icon_view" );
+ m_xAddService_bar->set_item_menu("add_service_btn", m_xAddService_menu.get());
m_eMode = ( nBits & PickerFlags::SaveAs ) ? REMOTEDLG_MODE_SAVE : REMOTEDLG_MODE_OPEN;
m_eType = ( nBits & PickerFlags::PathDialog ) ? REMOTEDLG_TYPE_PATHDLG : REMOTEDLG_TYPE_FILEDLG;
@@ -214,124 +55,94 @@ RemoteFilesDialog::RemoteFilesDialog( vcl::Window* pParent, PickerFlags nBits )
m_bIsUpdated = false;
m_bIsConnected = false;
m_bServiceChanged = false;
- m_nCurrentFilter = LISTBOX_ENTRY_NOTFOUND;
+ m_nCurrentFilter = -1;
- m_pName_ed = VclPtr< AutocompleteEdit >::Create( get< vcl::Window >( "filename_container" ) );
- m_pName_ed->Show();
+ m_xName_ed->show();
- m_pFilter_lb->Enable( false );
- m_pName_ed->Enable( false );
- m_pNewFolder->Enable( false );
+ // limit width due to super wide strings that may end up here
+ m_xFilter_lb->set_size_request(m_xFilter_lb->get_approximate_digit_width() * 60, -1);
+
+ m_xFilter_lb->set_sensitive(false);
+ m_xName_ed->set_sensitive(false);
+ m_xNewFolder->set_sensitive(false);
if( m_eMode == REMOTEDLG_MODE_OPEN )
{
- get( m_pOk_btn, "open" );
+ m_xOk_btn = m_xBuilder->weld_button("open");
- m_pNewFolder->Hide();
+ m_xNewFolder->hide();
}
else
{
- get( m_pOk_btn, "save" );
-
- m_pNewFolder->SetModeImage(Image(StockImage::Yes, BMP_FILEDLG_CREATEFOLDER));
- m_pNewFolder->SetClickHdl( LINK( this, RemoteFilesDialog, NewFolderHdl ) );
+ m_xOk_btn = m_xBuilder->weld_button("save");
+ m_xNewFolder->connect_clicked( LINK( this, RemoteFilesDialog, NewFolderHdl ) );
}
- m_pIconView_btn->SetClickHdl( LINK( this, RemoteFilesDialog, IconViewHdl ) );
- m_pListView_btn->SetClickHdl( LINK( this, RemoteFilesDialog, ListViewHdl ) );
+ m_xListView_btn->set_active(true);
+ m_xIconView_btn->connect_clicked( LINK( this, RemoteFilesDialog, IconViewHdl ) );
+ m_xListView_btn->connect_clicked( LINK( this, RemoteFilesDialog, ListViewHdl ) );
- m_pOk_btn->Show();
- m_pOk_btn->Enable( false );
+ m_xOk_btn->show();
+ m_xOk_btn->set_sensitive(false);
- m_pOk_btn->SetClickHdl( LINK( this, RemoteFilesDialog, OkHdl ) );
- m_pCancel_btn->SetClickHdl( LINK( this, RemoteFilesDialog, CancelHdl ) );
+ m_xOk_btn->connect_clicked( LINK( this, RemoteFilesDialog, OkHdl ) );
+ m_xCancel_btn->connect_clicked( LINK( this, RemoteFilesDialog, CancelHdl ) );
m_sRootLabel = FpsResId( STR_SVT_ROOTLABEL );
- m_pPath = VclPtr<Breadcrumb>::Create( get< vcl::Window >( "breadcrumb_container" ) );
- m_pPath->set_hexpand( true );
- m_pPath->SetClickHdl( LINK( this, RemoteFilesDialog, SelectBreadcrumbHdl ) );
- m_pPath->SetMode( SvtBreadcrumbMode::ALL_VISITED );
- m_pPath->Show();
-
- m_pContainer = VclPtr< FileViewContainer >::Create( get< vcl::Window >("container") );
-
- m_pContainer->set_hexpand( true );
- m_pContainer->set_vexpand( true );
-
- m_pFileView = VclPtr< SvtFileView >::Create( m_pContainer, WB_BORDER | WB_TABSTOP,
- REMOTEDLG_TYPE_PATHDLG == m_eType,
- bMultiselection, false );
-
- m_pFileView->Show();
- m_pFileView->EnableAutoResize();
- m_pFileView->SetDoubleClickHdl( LINK( this, RemoteFilesDialog, DoubleClickHdl ) );
- m_pFileView->SetSelectHdl( LINK( this, RemoteFilesDialog, SelectHdl ) );
- m_pFileView->EnableDelete( true );
-
- m_pSplitter = VclPtr< Splitter >::Create( m_pContainer, WB_HSCROLL );
- m_pSplitter->SetBackground( Wallpaper( Application::GetSettings().GetStyleSettings().GetFaceColor() ) );
- m_pSplitter->SetSplitHdl( LINK( this, RemoteFilesDialog, SplitHdl ) );
- m_pSplitter->Show();
-
- m_pTreeView = VclPtr< FolderTree >::Create( m_pContainer, WB_BORDER );
- Size aSize( 150, 200 );
- m_pTreeView->set_height_request( aSize.Height() );
- m_pTreeView->set_width_request( aSize.Width() );
- m_pTreeView->SetSizePixel( aSize );
- m_pTreeView->Show();
-
- m_pTreeView->SetSelectHdl( LINK( this, RemoteFilesDialog, TreeSelectHdl ) );
-
- sal_Int32 nPosX = m_pTreeView->GetSizePixel().Width();
- m_pSplitter->SetPosPixel( Point( nPosX, 0 ) );
- nPosX += m_pSplitter->GetSizePixel().Width();
- m_pFileView->SetPosPixel( Point( nPosX, 0 ) );
-
- m_pContainer->init( m_pFileView, m_pSplitter, m_pTreeView, m_pAddService_btn, m_pFilter_lb );
- m_pContainer->Show();
- m_pContainer->Enable( false );
+ m_xPath.reset(new Breadcrumb(m_xPathContainer.get()));
+ m_xPath->connect_clicked( LINK( this, RemoteFilesDialog, SelectBreadcrumbHdl ) );
+ m_xPath->SetMode( SvtBreadcrumbMode::ALL_VISITED );
+
+ m_xContainer = m_xBuilder->weld_container("container");
+ m_xContainer->set_size_request(m_xContainer->get_approximate_digit_width() * 82, -1);
+
+ m_xFileView.reset(new SvtFileView(m_xDialog.get(),
+ m_xBuilder->weld_tree_view("fileview"),
+ m_xBuilder->weld_icon_view("iconview"),
+ REMOTEDLG_TYPE_PATHDLG == m_eType,
+ bMultiselection, false));
+
+ m_xFileView->SetDoubleClickHdl( LINK( this, RemoteFilesDialog, DoubleClickHdl ) );
+ m_xFileView->SetSelectHdl( LINK( this, RemoteFilesDialog, SelectHdl ) );
+ m_xFileView->EnableDelete( true );
+
+ m_xTreeView.reset(new FolderTree(m_xBuilder->weld_tree_view("foldertree"), m_xDialog.get()));
+ m_xTreeView->connect_changed(LINK(this, RemoteFilesDialog, TreeSelectHdl));
+
+ m_xContainer->set_sensitive(false);
m_sIniKey = "RemoteFilesDialog";
InitSize();
- m_pName_ed->SetGetFocusHdl( LINK( this, RemoteFilesDialog, FileNameGetFocusHdl ) );
- m_pName_ed->SetModifyHdl( LINK( this, RemoteFilesDialog, FileNameModifyHdl ) );
-
- m_pAddService_btn->SetDelayMenu(true);
- m_pAddService_btn->SetDropDown(PushButtonDropdownStyle::SplitMenuButton);
+ m_xName_ed->connect_focus_in(LINK(this, RemoteFilesDialog, FileNameGetFocusHdl));
+ m_xName_ed->connect_changed(LINK(this, RemoteFilesDialog, FileNameModifyHdl));
- m_pAddMenu = m_pAddService_btn->GetPopupMenu();
- m_pAddService_btn->SetClickHdl( LINK( this, RemoteFilesDialog, AddServiceHdl ) );
- m_pAddService_btn->SetSelectHdl( LINK( this, RemoteFilesDialog, EditServiceMenuHdl ) );
+ m_xAddService_bar->connect_clicked(LINK( this, RemoteFilesDialog, AddServiceHdl));
+ m_xAddService_menu->connect_activate(LINK(this, RemoteFilesDialog, EditServiceMenuHdl));
FillServicesListbox();
- m_pServices_lb->SetSelectHdl( LINK( this, RemoteFilesDialog, SelectServiceHdl ) );
+ m_xServices_lb->connect_changed( LINK( this, RemoteFilesDialog, SelectServiceHdl ) );
- m_pFilter_lb->SetSelectHdl( LINK( this, RemoteFilesDialog, SelectFilterHdl ) );
+ m_xFilter_lb->connect_changed( LINK( this, RemoteFilesDialog, SelectFilterHdl ) );
}
RemoteFilesDialog::~RemoteFilesDialog()
{
- disposeOnce();
-}
-
-void RemoteFilesDialog::dispose()
-{
- m_pFileView->SetSelectHdl( Link<SvTreeListBox*,void>() );
+ m_xFileView->SetSelectHdl(Link<SvtFileView*,void>());
// save window state
if( !m_sIniKey.isEmpty() )
{
SvtViewOptions aDlgOpt( EViewType::Dialog, m_sIniKey );
- aDlgOpt.SetWindowState( OStringToOUString( GetWindowState(), osl_getThreadTextEncoding() ) );
+ aDlgOpt.SetWindowState(OStringToOUString(m_xDialog->get_window_state(WindowStateMask::All), RTL_TEXTENCODING_UTF8));
- Size aSize( GetSizePixel() );
+ Size aSize(m_xDialog->get_size());
OUString sSize = OUString::number( aSize.Width() ) + "|";
sSize = sSize + OUString::number( aSize.Height() ) + "|";
- OUString sUserData = m_pFileView->GetConfigString();
+ OUString sUserData = m_xFileView->GetConfigString();
aDlgOpt.SetUserItem( "UserData",
makeAny( sSize + sUserData ) );
}
@@ -359,68 +170,27 @@ void RemoteFilesDialog::dispose()
}
batch->commit();
-
- m_pTreeView.disposeAndClear();
- m_pFileView.disposeAndClear();
- m_pSplitter.disposeAndClear();
- m_pContainer.disposeAndClear();
- m_pPath.disposeAndClear();
-
- m_pOk_btn.clear();
- m_pCancel_btn.clear();
- m_pAddService_btn.clear();
- m_pServices_lb.clear();
- m_pFilter_lb.clear();
- m_pName_ed.disposeAndClear();
- m_pNewFolder.clear();
- m_pIconView_btn.clear();
- m_pListView_btn.clear();
- m_pAddMenu.clear();
-
- Dialog::dispose();
}
-void RemoteFilesDialog::Resize()
+short RemoteFilesDialog::run()
{
- Dialog::Resize();
-
- if( m_pFileView && m_pContainer )
+ if (m_xServices_lb->get_count() > 0)
{
- Size aSize = m_pContainer->GetSizePixel();
- m_pFileView->SetSizePixel( aSize );
+ m_xDialog->show();
+ SelectServiceHdl(*m_xServices_lb);
}
- Invalidate(InvalidateFlags::Update);
-}
-
-short RemoteFilesDialog::Execute()
-{
- if( m_pServices_lb->GetEntryCount() > 0 )
- {
- Show();
- SelectServiceHdl( *m_pServices_lb );
- }
- if( !m_bIsConnected )
+ if (!m_bIsConnected)
{
- m_pServices_lb->SetNoSelection();
- m_pAddService_btn->SetPopupMenu( nullptr );
+ m_xServices_lb->set_active(-1);
+ m_xAddService_bar->set_item_menu("add_service_btn", nullptr);
}
- short nRet = SvtFileDialog_Base::Execute();
-
+ m_bIsInExecute = true;
+ short nRet = SvtFileDialog_Base::run();
+ m_bIsInExecute = false;
return nRet;
}
-void RemoteFilesDialog::Show()
-{
- SvtFileDialog_Base::Show();
-
- if( m_nWidth > 0 && m_nHeight > 0 )
- {
- Size aSize( m_nWidth, m_nHeight );
- SetSizePixel( aSize );
- }
-}
-
static OUString lcl_GetServiceType( const ServicePtr& pService )
{
INetProtocol aProtocol = pService->GetUrlObject().GetProtocol();
@@ -466,7 +236,7 @@ void RemoteFilesDialog::InitSize()
if( aDlgOpt.Exists() )
{
- SetWindowState( OUStringToOString( aDlgOpt.GetWindowState(), osl_getThreadTextEncoding() ) );
+ m_xDialog->set_window_state(OUStringToOString(aDlgOpt.GetWindowState(), RTL_TEXTENCODING_UTF8));
Any aUserData = aDlgOpt.GetUserItem( "UserData" );
OUString sCfgStr;
@@ -480,16 +250,14 @@ void RemoteFilesDialog::InitSize()
return;
m_nWidth = sCfgStr.copy(0, nPos1++).toInt32();
m_nHeight = sCfgStr.copy(nPos1, nPos2-nPos1).toInt32();
- m_pFileView->SetConfigString( sCfgStr.copy(nPos2+1) );
+ m_xFileView->SetConfigString( sCfgStr.copy(nPos2+1) );
}
}
- else
- m_pFileView->SetConfigString( "" );
}
void RemoteFilesDialog::FillServicesListbox()
{
- m_pServices_lb->Clear();
+ m_xServices_lb->clear();
m_aServices.clear();
// Load from user settings
@@ -517,31 +285,32 @@ void RemoteFilesDialog::FillServicesListbox()
if( placesUrlsList[nPlace] == m_sLastServiceUrl )
nPos = i;
- m_pServices_lb->InsertEntry( sPrefix + placesNamesList[nPlace] );
+ m_xServices_lb->append_text(sPrefix + placesNamesList[nPlace]);
i++;
}
}
- if( m_pServices_lb->GetEntryCount() > 0 )
+ if (m_xServices_lb->get_count() > 0)
{
- m_pServices_lb->SelectEntryPos( nPos );
- m_pAddService_btn->SetPopupMenu( m_pAddMenu );
+ m_xServices_lb->set_active(nPos);
+ m_xAddService_bar->set_item_menu("add_service_btn", m_xAddService_menu.get());
}
else
- m_pAddService_btn->SetPopupMenu( nullptr );
+ m_xAddService_bar->set_item_menu("add_service_btn", nullptr);
EnableControls();
}
int RemoteFilesDialog::GetSelectedServicePos()
{
- int nSelected = m_pServices_lb->GetSelectedEntryPos();
+ if( m_aServices.empty() )
+ return -1;
+
int nPos = 0;
int i = -1;
- if( m_aServices.empty() )
- return -1;
+ int nSelected = m_xServices_lb->get_active();
int nServices = static_cast<int>(m_aServices.size());
while( nPos < nServices )
@@ -561,94 +330,85 @@ void RemoteFilesDialog::AddFilter( const OUString& rFilter, const OUString& rTyp
{
OUString sName = rFilter;
- if ( rType.isEmpty() )
- sName = "------------------------------------------";
-
m_aFilters.emplace_back( rFilter, rType );
- m_pFilter_lb->InsertEntry( sName );
+ if (rType.isEmpty())
+ m_xFilter_lb->append_separator("");
+ else
+ m_xFilter_lb->append_text(sName);
- if( m_pFilter_lb->GetSelectedEntryPos() == LISTBOX_ENTRY_NOTFOUND )
- m_pFilter_lb->SelectEntryPos( 0 );
+ if (m_xFilter_lb->get_active() == -1)
+ m_xFilter_lb->set_active(0);
}
-
void RemoteFilesDialog::OpenURL( OUString const & sURL )
{
- if( m_pFileView )
+ if( m_xFileView )
{
- m_pTreeView->EndSelection();
DisableControls();
- EnableChildPointerOverwrite( true );
- SetPointer( PointerStyle::Wait );
- Invalidate(InvalidateFlags::Update);
+ auto xWait = std::make_unique<weld::WaitObject>(m_xDialog.get());
if( !sURL.isEmpty() )
{
OUString sFilter = FILEDIALOG_FILTER_ALL;
- if( m_nCurrentFilter != LISTBOX_ENTRY_NOTFOUND )
+ if( m_nCurrentFilter != -1)
{
sFilter = m_aFilters[m_nCurrentFilter].second;
}
- m_pFileView->EndInplaceEditing();
+ m_xFileView->EndInplaceEditing();
DBG_ASSERT( !m_pCurrentAsyncAction.is(), "SvtFileDialog::executeAsync: previous async action not yet finished!" );
- m_pCurrentAsyncAction = new AsyncPickerAction( this, m_pFileView, AsyncPickerAction::Action::eOpenURL );
+ m_pCurrentAsyncAction = new AsyncPickerAction( this, m_xFileView.get(), AsyncPickerAction::Action::eOpenURL );
// -1 timeout - sync
m_pCurrentAsyncAction->execute( sURL, sFilter, -1, -1, GetBlackList() );
if( m_eMode != REMOTEDLG_MODE_SAVE )
- m_pName_ed->SetText( "" );
+ m_xName_ed->set_text( "" );
- m_pFileView->GrabFocus();
+ m_xFileView->grab_focus();
}
else
{
- SetPointer( PointerStyle::Arrow );
- EnableChildPointerOverwrite( false );
+ xWait.reset();
// content doesn't exist
ErrorHandler::HandleError( ERRCODE_IO_NOTEXISTS );
EnableControls();
- return;
}
-
- SetPointer( PointerStyle::Arrow );
- EnableChildPointerOverwrite( false );
}
}
void RemoteFilesDialog::AddFileExtension()
{
- if( m_nCurrentFilter != LISTBOX_ENTRY_NOTFOUND )
+ if (m_nCurrentFilter != -1)
{
OUString sExt = m_aFilters[m_nCurrentFilter].second;
- OUString sFileName = m_pName_ed->GetText();
+ OUString sFileName = m_xName_ed->get_text();
sal_Int32 nDotPos = sFileName.lastIndexOf( '.' );
if ( nDotPos == -1 )
{
sFileName += sExt.copy( 1 ); // without '*'
- m_pName_ed->SetText( sFileName );
+ m_xName_ed->set_text( sFileName );
}
}
}
void RemoteFilesDialog::EnableControls()
{
- if( m_pServices_lb->GetEntryCount() > 0 )
+ if (m_xServices_lb->get_count() > 0)
{
- m_pServices_lb->Enable();
+ m_xServices_lb->set_sensitive(true);
- if( m_pServices_lb->GetSelectedEntryCount() )
+ if (m_xServices_lb->get_active() != -1)
{
- m_pAddMenu->EnableItem( "change_password", false );
+ m_xAddService_menu->set_sensitive("change_password", false);
try
{
@@ -664,7 +424,7 @@ void RemoteFilesDialog::EnableControls()
if( aURLEntries.UserList.hasElements() )
{
- m_pAddMenu->EnableItem( "change_password" );
+ m_xAddService_menu->set_sensitive("change_password", true);
}
}
}
@@ -674,50 +434,48 @@ void RemoteFilesDialog::EnableControls()
}
}
else
- m_pServices_lb->Enable( false );
+ m_xServices_lb->set_sensitive(false);
if( m_bIsConnected )
{
- m_pFilter_lb->Enable();
- m_pName_ed->Enable();
- m_pContainer->Enable();
- m_pNewFolder->Enable();
+ m_xFilter_lb->set_sensitive(true);
+ m_xName_ed->set_sensitive(true);
+ m_xContainer->set_sensitive(true);
+ m_xNewFolder->set_sensitive(true);
- if( !m_pName_ed->GetText().isEmpty() )
- m_pOk_btn->Enable();
+ if (!m_xName_ed->get_text().isEmpty())
+ m_xOk_btn->set_sensitive(true);
else
- m_pOk_btn->Enable( false );
+ m_xOk_btn->set_sensitive(false);
}
else
{
- m_pFilter_lb->Enable( false );
- m_pName_ed->Enable( false );
- m_pContainer->Enable( false );
- m_pNewFolder->Enable( false );
- m_pOk_btn->Enable( false );
+ m_xFilter_lb->set_sensitive(false);
+ m_xName_ed->set_sensitive(false);
+ m_xContainer->set_sensitive(false);
+ m_xNewFolder->set_sensitive(false);
+ m_xOk_btn->set_sensitive(false);
}
- m_pPath->EnableFields( true );
- m_pAddService_btn->Enable();
-
- Invalidate(InvalidateFlags::Update);
+ m_xPath->EnableFields( true );
+ m_xAddService_bar->set_sensitive(true);
}
void RemoteFilesDialog::DisableControls()
{
- m_pServices_lb->Enable( false );
- m_pFilter_lb->Enable( false );
- m_pAddService_btn->Enable( false );
- m_pName_ed->Enable( false );
- m_pContainer->Enable( false );
- m_pOk_btn->Enable( false );
- m_pPath->EnableFields( false );
-
- m_pCancel_btn->Enable();
+ m_xServices_lb->set_sensitive(false);
+ m_xFilter_lb->set_sensitive(false);
+ m_xAddService_bar->set_sensitive(false);
+ m_xName_ed->set_sensitive(false);
+ m_xContainer->set_sensitive(false);
+ m_xOk_btn->set_sensitive(false);
+ m_xPath->EnableFields( false );
+
+ m_xCancel_btn->set_sensitive(true);
}
-void RemoteFilesDialog::SavePassword( const OUString& rURL, const OUString& rUser
- , const OUString& rPassword, bool bPersistent )
+void RemoteFilesDialog::SavePassword(const OUString& rURL, const OUString& rUser,
+ const OUString& rPassword, bool bPersistent)
{
if( rURL.isEmpty() || rUser.isEmpty() || rPassword.isEmpty() )
return;
@@ -745,19 +503,21 @@ void RemoteFilesDialog::SavePassword( const OUString& rURL, const OUString& rUse
{}
}
-IMPL_LINK_NOARG ( RemoteFilesDialog, IconViewHdl, Button*, void )
+IMPL_LINK_NOARG ( RemoteFilesDialog, IconViewHdl, weld::Button&, void )
{
- m_pFileView->SetViewMode( eIcon );
+ m_xListView_btn->set_active(false);
+ m_xFileView->SetViewMode( eIcon );
}
-IMPL_LINK_NOARG ( RemoteFilesDialog, ListViewHdl, Button*, void )
+IMPL_LINK_NOARG ( RemoteFilesDialog, ListViewHdl, weld::Button&, void )
{
- m_pFileView->SetViewMode( eDetailedList );
+ m_xIconView_btn->set_active(false);
+ m_xFileView->SetViewMode( eDetailedList );
}
-IMPL_LINK_NOARG ( RemoteFilesDialog, AddServiceHdl, Button*, void )
... etc. - the rest is truncated
More information about the Libreoffice-commits
mailing list