weld NameClashDialog
Change-Id: I4c68bc92fa90ca4a9723f2664549f34b50213bfb Reviewed-on: https://gerrit.libreoffice.org/54471 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
This commit is contained in:
@@ -1019,18 +1019,18 @@ executeMessageBox(
|
||||
return aResult;
|
||||
}
|
||||
|
||||
NameClashResolveDialogResult executeSimpleNameClashResolveDialog( vcl::Window *pParent,
|
||||
OUString const & rTargetFolderURL,
|
||||
OUString const & rClashingName,
|
||||
OUString & rProposedNewName,
|
||||
bool bAllowOverwrite )
|
||||
NameClashResolveDialogResult executeSimpleNameClashResolveDialog(weld::Window *pParent,
|
||||
OUString const & rTargetFolderURL,
|
||||
OUString const & rClashingName,
|
||||
OUString & rProposedNewName,
|
||||
bool bAllowOverwrite)
|
||||
{
|
||||
std::locale aResLocale = Translate::Create("uui");
|
||||
ScopedVclPtrInstance<NameClashDialog> aDialog(pParent, aResLocale, rTargetFolderURL,
|
||||
rClashingName, rProposedNewName, bAllowOverwrite);
|
||||
NameClashDialog aDialog(pParent, aResLocale, rTargetFolderURL,
|
||||
rClashingName, rProposedNewName, bAllowOverwrite);
|
||||
|
||||
NameClashResolveDialogResult eResult = static_cast<NameClashResolveDialogResult>(aDialog->Execute());
|
||||
rProposedNewName = aDialog->getNewName();
|
||||
NameClashResolveDialogResult eResult = static_cast<NameClashResolveDialogResult>(aDialog.run());
|
||||
rProposedNewName = aDialog.getNewName();
|
||||
return eResult;
|
||||
}
|
||||
|
||||
@@ -1063,11 +1063,12 @@ UUIInteractionHelper::handleNameClashResolveRequest(
|
||||
NameClashResolveDialogResult eResult = ABORT;
|
||||
OUString aProposedNewName( rRequest.ProposedNewName );
|
||||
|
||||
eResult = executeSimpleNameClashResolveDialog( getParentProperty(),
|
||||
uno::Reference<awt::XWindow> xParent = getParentXWindow();
|
||||
eResult = executeSimpleNameClashResolveDialog(Application::GetFrameWeld(xParent),
|
||||
rRequest.TargetFolderURL,
|
||||
rRequest.ClashingName,
|
||||
aProposedNewName,
|
||||
xReplaceExistingData.is() );
|
||||
xReplaceExistingData.is());
|
||||
|
||||
switch ( eResult )
|
||||
{
|
||||
|
@@ -27,48 +27,47 @@
|
||||
|
||||
// NameClashDialog ---------------------------------------------------------
|
||||
|
||||
IMPL_LINK( NameClashDialog, ButtonHdl_Impl, Button *, pBtn, void )
|
||||
IMPL_LINK(NameClashDialog, ButtonHdl_Impl, weld::Button&, rBtn, void)
|
||||
{
|
||||
long nRet = long(ABORT);
|
||||
if ( m_pBtnRename == pBtn )
|
||||
if (m_xBtnRename.get() == &rBtn)
|
||||
{
|
||||
nRet = long(RENAME);
|
||||
OUString aNewName = m_pEDNewName->GetText();
|
||||
if ( ( aNewName == maNewName ) || aNewName.isEmpty() )
|
||||
OUString aNewName = m_xEDNewName->get_text();
|
||||
if ( ( aNewName == m_aNewName ) || aNewName.isEmpty() )
|
||||
{
|
||||
std::unique_ptr<weld::MessageDialog> xErrorBox(Application::CreateMessageDialog(GetFrameWeld(),
|
||||
std::unique_ptr<weld::MessageDialog> xErrorBox(Application::CreateMessageDialog(m_xDialog.get(),
|
||||
VclMessageType::Warning, VclButtonsType::Ok,
|
||||
maSameName));
|
||||
m_aSameName));
|
||||
xErrorBox->run();
|
||||
return;
|
||||
}
|
||||
maNewName = aNewName;
|
||||
m_aNewName = aNewName;
|
||||
}
|
||||
else if ( m_pBtnOverwrite == pBtn )
|
||||
else if (m_xBtnOverwrite.get() == &rBtn)
|
||||
nRet = long(OVERWRITE);
|
||||
|
||||
EndDialog( nRet );
|
||||
m_xDialog->response(nRet);
|
||||
}
|
||||
|
||||
|
||||
NameClashDialog::NameClashDialog( vcl::Window* pParent, const std::locale& rResLocale,
|
||||
NameClashDialog::NameClashDialog( weld::Window* pParent, const std::locale& rResLocale,
|
||||
OUString const & rTargetFolderURL,
|
||||
OUString const & rClashingName,
|
||||
OUString const & rProposedNewName,
|
||||
bool bAllowOverwrite )
|
||||
: ModalDialog( pParent, "SimpleNameClashDialog", "uui/ui/simplenameclash.ui" ),
|
||||
maNewName ( rClashingName )
|
||||
: GenericDialogController(pParent, "uui/ui/simplenameclash.ui", "SimpleNameClashDialog")
|
||||
, m_aNewName(rClashingName)
|
||||
, m_xFTMessage(m_xBuilder->weld_label("warning"))
|
||||
, m_xEDNewName(m_xBuilder->weld_entry("newname"))
|
||||
, m_xBtnOverwrite(m_xBuilder->weld_button("replace"))
|
||||
, m_xBtnRename(m_xBuilder->weld_button("rename"))
|
||||
, m_xBtnCancel(m_xBuilder->weld_button("cancel"))
|
||||
{
|
||||
get(m_pFTMessage, "warning");
|
||||
get(m_pEDNewName, "newname");
|
||||
get(m_pBtnOverwrite, "replace");
|
||||
get(m_pBtnRename, "rename");
|
||||
get(m_pBtnCancel, "cancel");
|
||||
|
||||
Link<Button*,void> aLink( LINK( this, NameClashDialog, ButtonHdl_Impl ) );
|
||||
m_pBtnOverwrite->SetClickHdl( aLink );
|
||||
m_pBtnRename->SetClickHdl( aLink );
|
||||
m_pBtnCancel->SetClickHdl( aLink );
|
||||
Link<weld::Button&,void> aLink( LINK( this, NameClashDialog, ButtonHdl_Impl ) );
|
||||
m_xBtnOverwrite->connect_clicked( aLink );
|
||||
m_xBtnRename->connect_clicked( aLink );
|
||||
m_xBtnCancel->connect_clicked( aLink );
|
||||
|
||||
OUString aInfo;
|
||||
if ( bAllowOverwrite )
|
||||
@@ -78,37 +77,26 @@ NameClashDialog::NameClashDialog( vcl::Window* pParent, const std::locale& rResL
|
||||
else
|
||||
{
|
||||
aInfo = Translate::get(STR_NAME_CLASH_RENAME_ONLY, rResLocale);
|
||||
m_pBtnOverwrite->Hide();
|
||||
m_xBtnOverwrite->hide();
|
||||
}
|
||||
|
||||
OUString aPath;
|
||||
if ( osl::FileBase::E_None != osl::FileBase::getSystemPathFromFileURL( rTargetFolderURL, aPath ) )
|
||||
aPath = rTargetFolderURL;
|
||||
|
||||
maSameName = Translate::get(STR_SAME_NAME_USED, rResLocale);
|
||||
m_aSameName = Translate::get(STR_SAME_NAME_USED, rResLocale);
|
||||
|
||||
aInfo = aInfo.replaceFirst( "%NAME", rClashingName );
|
||||
aInfo = aInfo.replaceFirst( "%FOLDER", aPath );
|
||||
m_pFTMessage->SetText( aInfo );
|
||||
m_xFTMessage->set_label(aInfo);
|
||||
if ( !rProposedNewName.isEmpty() )
|
||||
m_pEDNewName->SetText( rProposedNewName );
|
||||
m_xEDNewName->set_text( rProposedNewName );
|
||||
else
|
||||
m_pEDNewName->SetText( rClashingName );
|
||||
m_xEDNewName->set_text( rClashingName );
|
||||
}
|
||||
|
||||
NameClashDialog::~NameClashDialog()
|
||||
{
|
||||
disposeOnce();
|
||||
}
|
||||
|
||||
void NameClashDialog::dispose()
|
||||
{
|
||||
m_pFTMessage.clear();
|
||||
m_pEDNewName.clear();
|
||||
m_pBtnOverwrite.clear();
|
||||
m_pBtnRename.clear();
|
||||
m_pBtnCancel.clear();
|
||||
ModalDialog::dispose();
|
||||
}
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
||||
|
@@ -20,36 +20,31 @@
|
||||
#ifndef INCLUDED_UUI_SOURCE_NAMECLASHDLG_HXX
|
||||
#define INCLUDED_UUI_SOURCE_NAMECLASHDLG_HXX
|
||||
|
||||
#include <vcl/button.hxx>
|
||||
#include <vcl/dialog.hxx>
|
||||
#include <vcl/fixed.hxx>
|
||||
#include <vcl/edit.hxx>
|
||||
|
||||
#include <vcl/weld.hxx>
|
||||
|
||||
enum NameClashResolveDialogResult { ABORT, RENAME, OVERWRITE };
|
||||
|
||||
class NameClashDialog : public ModalDialog
|
||||
class NameClashDialog : public weld::GenericDialogController
|
||||
{
|
||||
VclPtr<FixedText> m_pFTMessage;
|
||||
VclPtr<Edit> m_pEDNewName;
|
||||
VclPtr<PushButton> m_pBtnOverwrite;
|
||||
VclPtr<PushButton> m_pBtnRename;
|
||||
VclPtr<CancelButton> m_pBtnCancel;
|
||||
OUString m_aSameName;
|
||||
OUString m_aNewName;
|
||||
|
||||
OUString maSameName;
|
||||
OUString maNewName;
|
||||
std::unique_ptr<weld::Label> m_xFTMessage;
|
||||
std::unique_ptr<weld::Entry> m_xEDNewName;
|
||||
std::unique_ptr<weld::Button> m_xBtnOverwrite;
|
||||
std::unique_ptr<weld::Button> m_xBtnRename;
|
||||
std::unique_ptr<weld::Button> m_xBtnCancel;
|
||||
|
||||
DECL_LINK( ButtonHdl_Impl, Button *, void );
|
||||
DECL_LINK(ButtonHdl_Impl, weld::Button&, void);
|
||||
|
||||
public:
|
||||
NameClashDialog( vcl::Window* pParent, const std::locale& rLocale,
|
||||
OUString const & rTargetFolderURL,
|
||||
OUString const & rClashingName,
|
||||
OUString const & rProposedNewName,
|
||||
bool bAllowOverwrite );
|
||||
NameClashDialog(weld::Window* pParent, const std::locale& rLocale,
|
||||
OUString const & rTargetFolderURL,
|
||||
OUString const & rClashingName,
|
||||
OUString const & rProposedNewName,
|
||||
bool bAllowOverwrite);
|
||||
virtual ~NameClashDialog() override;
|
||||
virtual void dispose() override;
|
||||
const OUString& getNewName() const { return maNewName; }
|
||||
const OUString& getNewName() const { return m_aNewName; }
|
||||
};
|
||||
|
||||
#endif // UUI_COOKIEDG_HXX
|
||||
|
@@ -1,12 +1,18 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.18.3 -->
|
||||
<!-- Generated with glade 3.22.1 -->
|
||||
<interface domain="uui">
|
||||
<requires lib="gtk+" version="3.18"/>
|
||||
<object class="GtkDialog" id="SimpleNameClashDialog">
|
||||
<property name="can_focus">False</property>
|
||||
<property name="border_width">6</property>
|
||||
<property name="title" translatable="yes" context="simplenameclash|SimpleNameClashDialog">File Exists</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>
|
||||
@@ -109,6 +115,7 @@
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="activates_default">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
@@ -127,8 +134,6 @@
|
||||
</child>
|
||||
<action-widgets>
|
||||
<action-widget response="-11">help</action-widget>
|
||||
<action-widget response="0">replace</action-widget>
|
||||
<action-widget response="0">rename</action-widget>
|
||||
<action-widget response="-6">cancel</action-widget>
|
||||
</action-widgets>
|
||||
</object>
|
||||
|
Reference in New Issue
Block a user