weld GalleryThemeProperties
Change-Id: I88fbb9ab03f0026ffe0c5fe79ab0a386160738a1
Reviewed-on: https://gerrit.libreoffice.org/64220
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
diff --git a/cui/source/dialogs/cuigaldlg.cxx b/cui/source/dialogs/cuigaldlg.cxx
index f2eeb83..e9a12d9 100644
--- a/cui/source/dialogs/cuigaldlg.cxx
+++ b/cui/source/dialogs/cuigaldlg.cxx
@@ -63,13 +63,13 @@ using namespace ::com::sun::star::ui::dialogs;
using namespace ::com::sun::star::uno;
SearchThread::SearchThread( SearchProgress* pProgress,
TPGalleryThemeProperties* pBrowser,
const INetURLObject& rStartURL ) :
Thread ( "cuiSearchThread" ),
mpProgress ( pProgress ),
mpBrowser ( pBrowser ),
maStartURL ( rStartURL )
SearchThread::SearchThread(SearchProgress* pProgress,
TPGalleryThemeProperties* pBrowser,
const INetURLObject& rStartURL)
: Thread("cuiSearchThread")
, mpProgress(pProgress)
, mpBrowser(pBrowser)
, maStartURL(rStartURL)
{
}
@@ -101,7 +101,7 @@ void SearchThread::execute()
ImplSearch( maStartURL, aFormats, mpBrowser->bSearchRecursive );
}
Application::PostUserEvent( LINK( mpProgress, SearchProgress, CleanUpHdl ), nullptr, true );
Application::PostUserEvent(LINK(mpProgress, SearchProgress, CleanUpHdl));
}
@@ -113,7 +113,6 @@ void SearchThread::ImplSearch( const INetURLObject& rStartURL,
SolarMutexGuard aGuard;
mpProgress->SetDirectory( rStartURL );
mpProgress->Flush();
}
try
@@ -189,68 +188,43 @@ void SearchThread::ImplSearch( const INetURLObject& rStartURL,
}
}
SearchProgress::SearchProgress( vcl::Window* pParent, const INetURLObject& rStartURL )
: ModalDialog(pParent, "GallerySearchProgress", "cui/ui/gallerysearchprogress.ui")
, parent_(pParent)
SearchProgress::SearchProgress(weld::Window* pParent, TPGalleryThemeProperties* pTabPage, const INetURLObject& rStartURL)
: GenericDialogController(pParent, "cui/ui/gallerysearchprogress.ui", "GallerySearchProgress")
, startUrl_(rStartURL)
, m_xTabPage(pTabPage)
, m_xFtSearchDir(m_xBuilder->weld_label("dir"))
, m_xFtSearchType(m_xBuilder->weld_label("file"))
, m_xBtnCancel(m_xBuilder->weld_button("cancel"))
{
get(m_pFtSearchDir, "dir");
get(m_pFtSearchType, "file");
m_pFtSearchType->set_width_request(m_pFtSearchType->get_preferred_size().Width());
get(m_pBtnCancel, "cancel");
m_pBtnCancel->SetClickHdl( LINK( this, SearchProgress, ClickCancelBtn ) );
m_xFtSearchType->set_size_request(m_xFtSearchType->get_preferred_size().Width(), -1);
m_xBtnCancel->connect_clicked(LINK(this, SearchProgress, ClickCancelBtn));
}
SearchProgress::~SearchProgress()
{
disposeOnce();
}
void SearchProgress::dispose()
IMPL_LINK_NOARG(SearchProgress, ClickCancelBtn, weld::Button&, void)
{
m_pFtSearchDir.clear();
m_pFtSearchType.clear();
m_pBtnCancel.clear();
parent_.clear();
ModalDialog::dispose();
if (m_aSearchThread.is())
m_aSearchThread->terminate();
}
IMPL_LINK_NOARG(SearchProgress, ClickCancelBtn, Button*, void)
{
if (maSearchThread.is())
maSearchThread->terminate();
}
IMPL_LINK_NOARG(SearchProgress, CleanUpHdl, void*, void)
{
if (maSearchThread.is())
maSearchThread->join();
if (m_aSearchThread.is())
m_aSearchThread->join();
EndDialog( RET_OK );
m_xDialog->response(RET_OK);
disposeOnce();
m_xDialog.reset();
}
short SearchProgress::Execute()
void SearchProgress::LaunchThread()
{
OSL_FAIL( "SearchProgress cannot be executed via Dialog::Execute!\n"
"It creates a thread that will call back to VCL apartment => deadlock!\n"
"Use Dialog::StartExecuteModal to execute the dialog!" );
return RET_CANCEL;
}
bool SearchProgress::StartExecuteAsync(VclAbstractDialog::AsyncContext &rCtx)
{
assert(!maSearchThread.is());
maSearchThread = new SearchThread(
this, static_cast< TPGalleryThemeProperties * >(parent_.get()), startUrl_);
maSearchThread->launch();
return ModalDialog::StartExecuteAsync(rCtx);
assert(!m_aSearchThread.is());
m_aSearchThread = new SearchThread(this, m_xTabPage, startUrl_);
m_aSearchThread->launch();
}
TakeThread::TakeThread(
@@ -304,7 +278,6 @@ void TakeThread::execute()
mpProgress->SetFile( aURL );
pStatusProgress->Update( i, nEntries - 1 );
mpProgress->Flush();
pThm->InsertURL( aURL );
}
}
@@ -320,34 +293,22 @@ void TakeThread::execute()
}
TakeProgress::TakeProgress(vcl::Window* pWindow)
: ModalDialog(pWindow, "GalleryApplyProgress",
"cui/ui/galleryapplyprogress.ui")
, window_(pWindow)
TakeProgress::TakeProgress(weld::Window* pParent, TPGalleryThemeProperties* pTabPage)
: GenericDialogController(pParent, "cui/ui/galleryapplyprogress.ui",
"GalleryApplyProgress")
, m_pParent(pParent)
, m_xTabPage(pTabPage)
, m_xFtTakeFile(m_xBuilder->weld_label("file"))
, m_xBtnCancel(m_xBuilder->weld_button("cancel"))
{
get(m_pFtTakeFile, "file");
get(m_pBtnCancel, "cancel");
m_pBtnCancel->SetClickHdl( LINK( this, TakeProgress, ClickCancelBtn ) );
m_xBtnCancel->connect_clicked(LINK(this, TakeProgress, ClickCancelBtn));
}
TakeProgress::~TakeProgress()
{
disposeOnce();
}
void TakeProgress::dispose()
{
m_pFtTakeFile.clear();
m_pBtnCancel.clear();
window_.clear();
ModalDialog::dispose();
}
IMPL_LINK_NOARG(TakeProgress, ClickCancelBtn, Button*, void)
IMPL_LINK_NOARG(TakeProgress, ClickCancelBtn, weld::Button&, void)
{
if (maTakeThread.is())
maTakeThread->terminate();
@@ -359,14 +320,14 @@ IMPL_LINK_NOARG(TakeProgress, CleanUpHdl, void*, void)
if (maTakeThread.is())
maTakeThread->join();
TPGalleryThemeProperties* pBrowser = static_cast<TPGalleryThemeProperties*>( GetParent() );
std::vector<bool, std::allocator<bool> > aRemoveEntries( pBrowser->aFoundList.size(), false );
std::vector<bool, std::allocator<bool> > aRemoveEntries(m_xTabPage->aFoundList.size(), false);
std::vector< OUString > aRemainingVector;
sal_uInt32 i, nCount;
GetParent()->EnterWait();
pBrowser->m_xLbxFound->select(-1);
pBrowser->m_xLbxFound->freeze();
std::unique_ptr<weld::WaitObject> xWait(new weld::WaitObject(m_pParent));
m_xTabPage->m_xLbxFound->select(-1);
m_xTabPage->m_xLbxFound->freeze();
// mark all taken positions in aRemoveEntries
for( i = 0, nCount = maTakenList.size(); i < nCount; ++i )
@@ -376,50 +337,41 @@ IMPL_LINK_NOARG(TakeProgress, CleanUpHdl, void*, void)
// refill found list
for( i = 0, nCount = aRemoveEntries.size(); i < nCount; ++i )
if( !aRemoveEntries[ i ] )
aRemainingVector.push_back( pBrowser->aFoundList[i] );
aRemainingVector.push_back( m_xTabPage->aFoundList[i] );
pBrowser->aFoundList.clear();
m_xTabPage->aFoundList.clear();
for( i = 0, nCount = aRemainingVector.size(); i < nCount; ++i )
pBrowser->aFoundList.push_back( aRemainingVector[ i ] );
m_xTabPage->aFoundList.push_back( aRemainingVector[ i ] );
aRemainingVector.clear();
// refill list box
for( i = 0, nCount = aRemoveEntries.size(); i < nCount; ++i )
if( !aRemoveEntries[ i ] )
aRemainingVector.push_back(pBrowser->m_xLbxFound->get_text(i));
aRemainingVector.push_back(m_xTabPage->m_xLbxFound->get_text(i));
pBrowser->m_xLbxFound->clear();
m_xTabPage->m_xLbxFound->clear();
for( i = 0, nCount = aRemainingVector.size(); i < nCount; ++i )
pBrowser->m_xLbxFound->append_text(aRemainingVector[i]);
m_xTabPage->m_xLbxFound->append_text(aRemainingVector[i]);
aRemainingVector.clear();
pBrowser->m_xLbxFound->thaw();
pBrowser->SelectFoundHdl( *pBrowser->m_xLbxFound );
GetParent()->LeaveWait();
m_xTabPage->m_xLbxFound->thaw();
m_xTabPage->SelectFoundHdl( *m_xTabPage->m_xLbxFound );
EndDialog( RET_OK );
disposeOnce();
xWait.reset();
m_xDialog->response(RET_OK);
m_xDialog.reset();
}
short TakeProgress::Execute()
{
OSL_FAIL( "TakeProgress cannot be executed via Dialog::Execute!\n"
"It creates a thread that will call back to VCL apartment => deadlock!\n"
"Use Dialog::StartExecuteModal to execute the dialog!" );
return RET_CANCEL;
}
bool TakeProgress::StartExecuteAsync(VclAbstractDialog::AsyncContext &rCtx)
void TakeProgress::LaunchThread()
{
assert(!maTakeThread.is());
maTakeThread = new TakeThread(
this, static_cast< TPGalleryThemeProperties * >(window_.get()), maTakenList);
maTakeThread = new TakeThread(this, m_xTabPage, maTakenList);
maTakeThread->launch();
return ModalDialog::StartExecuteAsync(rCtx);
}
ActualizeProgress::ActualizeProgress(vcl::Window* pWindow, GalleryTheme* pThm)
@@ -555,30 +507,28 @@ IMPL_LINK_NOARG(GalleryIdDialog, ClickOkHdl, weld::Button&, void)
m_xDialog->response(RET_OK);
}
GalleryThemeProperties::GalleryThemeProperties(vcl::Window* pParent,
GalleryThemeProperties::GalleryThemeProperties(weld::Window* pParent,
ExchangeData* _pData, SfxItemSet const * pItemSet)
: SfxTabDialog( pParent, "GalleryThemeDialog",
"cui/ui/gallerythemedialog.ui", pItemSet)
: SfxTabDialogController(pParent, "cui/ui/gallerythemedialog.ui",
"GalleryThemeDialog", pItemSet)
, pData(_pData)
, m_nGeneralPageId(0)
{
m_nGeneralPageId = AddTabPage("general", TPGalleryThemeGeneral::Create, nullptr);
sal_uInt16 nFilesPageId = AddTabPage("files", TPGalleryThemeProperties::Create, nullptr);
AddTabPage("general", TPGalleryThemeGeneral::Create, nullptr);
AddTabPage("files", TPGalleryThemeProperties::Create, nullptr);
if (pData->pTheme->IsReadOnly())
RemoveTabPage("files");
if( pData->pTheme->IsReadOnly() )
RemoveTabPage(nFilesPageId);
OUString aText = m_xDialog->get_title().replaceFirst( "%1", pData->pTheme->GetName() );
OUString aText = GetText().replaceFirst( "%1", pData->pTheme->GetName() );
if( pData->pTheme->IsReadOnly() )
if (pData->pTheme->IsReadOnly())
aText += " " + CuiResId( RID_SVXSTR_GALLERY_READONLY );
SetText( aText );
m_xDialog->set_title(aText);
}
void GalleryThemeProperties::PageCreated( sal_uInt16 nId, SfxTabPage &rPage )
void GalleryThemeProperties::PageCreated(const OString& rId, SfxTabPage &rPage)
{
if (nId == m_nGeneralPageId)
if (rId == "general")
static_cast<TPGalleryThemeGeneral&>( rPage ).SetXChgData( pData );
else
static_cast<TPGalleryThemeProperties&>( rPage ).SetXChgData( pData );
@@ -872,7 +822,7 @@ IMPL_LINK_NOARG(TPGalleryThemeProperties, SelectFileTypeHdl, weld::ComboBox&, vo
{
aLastFilterName = aText;
std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/queryupdategalleryfilelistdialog.ui"));
std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetDialogFrameWeld(), "cui/ui/queryupdategalleryfilelistdialog.ui"));
std::unique_ptr<weld::MessageDialog> xQuery(xBuilder->weld_message_dialog("QueryUpdateFileListDialog"));
if (xQuery->run() == RET_YES)
SearchFiles();
@@ -881,16 +831,16 @@ IMPL_LINK_NOARG(TPGalleryThemeProperties, SelectFileTypeHdl, weld::ComboBox&, vo
void TPGalleryThemeProperties::SearchFiles()
{
VclPtrInstance<SearchProgress> pProgress( this, aURL );
std::shared_ptr<SearchProgress> xProgress(new SearchProgress(GetDialogFrameWeld(), this, aURL));
aFoundList.clear();
m_xLbxFound->clear();
pProgress->SetFileType( m_xCbbFileType->get_active_text() );
pProgress->SetDirectory( INetURLObject() );
pProgress->Update();
xProgress->SetFileType( m_xCbbFileType->get_active_text() );
xProgress->SetDirectory( INetURLObject() );
pProgress->StartExecuteAsync([=](sal_Int32 nResult){
xProgress->LaunchThread();
weld::DialogController::runAsync(xProgress, [=](sal_Int32 nResult) {
EndSearchProgressHdl(nResult);
});
}
@@ -934,13 +884,13 @@ void TPGalleryThemeProperties::TakeFiles()
{
if (m_xLbxFound->count_selected_rows() || (bTakeAll && bEntriesFound))
{
VclPtrInstance<TakeProgress> pTakeProgress( this );
pTakeProgress->Update();
pTakeProgress->StartExecuteAsync([=](sal_Int32 /*nResult*/){
std::shared_ptr<TakeProgress> xTakeProgress(new TakeProgress(GetDialogFrameWeld(), this));
xTakeProgress->LaunchThread();
weld::DialogController::runAsync(xTakeProgress, [=](sal_Int32 /*nResult*/) {
/* no postprocessing needed, pTakeProgress
will be disposed in TakeProgress::CleanupHdl */
});
}
}
@@ -999,7 +949,7 @@ IMPL_LINK_NOARG(TPGalleryThemeProperties, ClickTakeHdl, weld::Button&, void)
if (!m_xLbxFound->count_selected_rows() || !bEntriesFound)
{
SvxOpenGraphicDialog aDlg("Gallery", GetFrameWeld());
SvxOpenGraphicDialog aDlg("Gallery", GetDialogFrameWeld());
aDlg.EnableLink(false);
aDlg.AsLink(false);
diff --git a/cui/source/factory/dlgfact.cxx b/cui/source/factory/dlgfact.cxx
index f2f0986..d1fa040 100644
--- a/cui/source/factory/dlgfact.cxx
+++ b/cui/source/factory/dlgfact.cxx
@@ -1118,12 +1118,12 @@ VclPtr<AbstractGalleryIdDialog> AbstractDialogFactory_Impl::CreateGalleryIdDialo
return VclPtr<AbstractGalleryIdDialog_Impl>::Create(o3tl::make_unique<GalleryIdDialog>(pParent, pThm));
}
VclPtr<VclAbstractDialog> AbstractDialogFactory_Impl::CreateGalleryThemePropertiesDialog(vcl::Window* pParent,
VclPtr<VclAbstractDialog> AbstractDialogFactory_Impl::CreateGalleryThemePropertiesDialog(weld::Window* pParent,
ExchangeData* pData,
SfxItemSet* pItemSet)
{
VclPtrInstance<GalleryThemeProperties> pDlg(pParent, pData, pItemSet);
return VclPtr<CuiVclAbstractDialog_Impl>::Create( pDlg );
return VclPtr<CuiAbstractTabController_Impl>::Create(o3tl::make_unique<GalleryThemeProperties>(
pParent, pData, pItemSet));
}
VclPtr<AbstractURLDlg> AbstractDialogFactory_Impl::CreateURLDialog( vcl::Window* pParent,
diff --git a/cui/source/factory/dlgfact.hxx b/cui/source/factory/dlgfact.hxx
index 0b1436f..e672ea1 100644
--- a/cui/source/factory/dlgfact.hxx
+++ b/cui/source/factory/dlgfact.hxx
@@ -741,7 +741,7 @@ public:
virtual VclPtr<AbstractTitleDialog> CreateTitleDialog(weld::Window* pParent, const OUString& rOldText) override;
virtual VclPtr<AbstractGalleryIdDialog> CreateGalleryIdDialog(weld::Window* pParent,
GalleryTheme* pThm) override;
virtual VclPtr<VclAbstractDialog> CreateGalleryThemePropertiesDialog(vcl::Window* pParent,
virtual VclPtr<VclAbstractDialog> CreateGalleryThemePropertiesDialog(weld::Window* pParent,
ExchangeData* pData,
SfxItemSet* pItemSet) override;
virtual VclPtr<AbstractURLDlg> CreateURLDialog( vcl::Window* pParent,
diff --git a/cui/source/inc/cuigaldlg.hxx b/cui/source/inc/cuigaldlg.hxx
index a6085e8..cc959a3 100644
--- a/cui/source/inc/cuigaldlg.hxx
+++ b/cui/source/inc/cuigaldlg.hxx
@@ -59,7 +59,7 @@ class SearchThread: public salhelper::Thread
{
private:
VclPtr<SearchProgress> mpProgress;
SearchProgress* mpProgress;
VclPtr<TPGalleryThemeProperties> mpBrowser;
INetURLObject maStartURL;
@@ -72,42 +72,39 @@ private:
public:
SearchThread( SearchProgress* pProgress,
TPGalleryThemeProperties* pBrowser,
const INetURLObject& rStartURL );
SearchThread(SearchProgress* pProgress,
TPGalleryThemeProperties* pBrowser,
const INetURLObject& rStartURL);
};
class SearchProgress : public ModalDialog
class SearchProgress : public weld::GenericDialogController
{
private:
VclPtr<FixedText> m_pFtSearchDir;
VclPtr<FixedText> m_pFtSearchType;
VclPtr<CancelButton> m_pBtnCancel;
VclPtr<vcl::Window> parent_;
INetURLObject startUrl_;
rtl::Reference< SearchThread > maSearchThread;
VclPtr<TPGalleryThemeProperties> m_xTabPage;
rtl::Reference< SearchThread > m_aSearchThread;
std::unique_ptr<weld::Label> m_xFtSearchDir;
std::unique_ptr<weld::Label> m_xFtSearchType;
std::unique_ptr<weld::Button> m_xBtnCancel;
DECL_LINK( ClickCancelBtn, Button*, void );
DECL_LINK(ClickCancelBtn, weld::Button&, void);
public:
SearchProgress( vcl::Window* pParent, const INetURLObject& rStartURL );
virtual ~SearchProgress() override;
virtual void dispose() override;
SearchProgress(weld::Window* pParent, TPGalleryThemeProperties* pTabPage, const INetURLObject& rStartURL);
void LaunchThread();
virtual ~SearchProgress() override;
DECL_LINK( CleanUpHdl, void*, void );
DECL_LINK( CleanUpHdl, void*, void );
virtual short Execute() override;
using ModalDialog::StartExecuteAsync;
virtual bool StartExecuteAsync(VclAbstractDialog::AsyncContext &rCtx) override;
void SetFileType( const OUString& rType ) { m_pFtSearchType->SetText( rType ); }
void SetDirectory( const INetURLObject& rURL ) { m_pFtSearchDir->SetText( GetReducedString( rURL, 30 ) ); }
void SetFileType( const OUString& rType ) { m_xFtSearchType->set_label(rType); }
void SetDirectory( const INetURLObject& rURL ) { m_xFtSearchDir->set_label(GetReducedString(rURL, 30)); }
};
class TakeThread: public salhelper::Thread
{
private:
VclPtr<TakeProgress> mpProgress;
TakeProgress* mpProgress;
VclPtr<TPGalleryThemeProperties> mpBrowser;
TokenList_impl& mrTakenList;
@@ -123,29 +120,27 @@ public:
);
};
class TakeProgress : public ModalDialog
class TakeProgress : public weld::GenericDialogController
{
private:
VclPtr<FixedText> m_pFtTakeFile;
VclPtr<CancelButton> m_pBtnCancel;
VclPtr<vcl::Window> window_;
weld::Window* m_pParent;
VclPtr<TPGalleryThemeProperties> m_xTabPage;
rtl::Reference< TakeThread > maTakeThread;
TokenList_impl maTakenList;
std::unique_ptr<weld::Label> m_xFtTakeFile;
std::unique_ptr<weld::Button> m_xBtnCancel;
DECL_LINK( ClickCancelBtn, Button*, void );
DECL_LINK(ClickCancelBtn, weld::Button&, void);
public:
TakeProgress( vcl::Window* pWindow );
TakeProgress(weld::Window* pParent, TPGalleryThemeProperties* pTabPage);
void LaunchThread();
virtual ~TakeProgress() override;
virtual void dispose() override;
DECL_LINK( CleanUpHdl, void*, void );
void SetFile( const INetURLObject& rURL ) { m_pFtTakeFile->SetText( GetReducedString( rURL, 30 ) ); }
virtual short Execute() override;
using ModalDialog::StartExecuteAsync;
virtual bool StartExecuteAsync(VclAbstractDialog::AsyncContext &rCtx) override;
void SetFile( const INetURLObject& rURL ) { m_xFtTakeFile->set_label(GetReducedString(rURL, 30)); }
};
class ActualizeProgress : public ModalDialog
@@ -193,16 +188,14 @@ public:
sal_uInt32 GetId() const { return m_xLbResName->get_active(); }
};
class GalleryThemeProperties : public SfxTabDialog
class GalleryThemeProperties : public SfxTabDialogController
{
ExchangeData* pData;
sal_uInt16 m_nGeneralPageId;
virtual void PageCreated(sal_uInt16 nId, SfxTabPage &rPage) override;
virtual void PageCreated(const OString& rId, SfxTabPage &rPage) override;
public:
GalleryThemeProperties(vcl::Window* pParent, ExchangeData* pData, SfxItemSet const * pItemSet);
GalleryThemeProperties(weld::Window* pParent, ExchangeData* pData, SfxItemSet const * pItemSet);
};
class TPGalleryThemeGeneral : public SfxTabPage
diff --git a/cui/uiconfig/ui/galleryapplyprogress.ui b/cui/uiconfig/ui/galleryapplyprogress.ui
index 1d06c77..df93be3 100644
--- a/cui/uiconfig/ui/galleryapplyprogress.ui
+++ b/cui/uiconfig/ui/galleryapplyprogress.ui
@@ -1,12 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.16.1 -->
<!-- Generated with glade 3.22.1 -->
<interface domain="cui">
<requires lib="gtk+" version="3.18"/>
<object class="GtkDialog" id="GalleryApplyProgress">
<property name="can_focus">False</property>
<property name="border_width">6</property>
<property name="title" translatable="yes" context="galleryapplyprogress|GalleryApplyProgress">Apply</property>
<property name="modal">True</property>
<property name="type_hint">normal</property>
<child>
<placeholder/>
</child>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox1">
<property name="can_focus">False</property>
@@ -80,8 +84,6 @@
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
</object>
diff --git a/cui/uiconfig/ui/gallerysearchprogress.ui b/cui/uiconfig/ui/gallerysearchprogress.ui
index 9acdafc..37ea5ba 100644
--- a/cui/uiconfig/ui/gallerysearchprogress.ui
+++ b/cui/uiconfig/ui/gallerysearchprogress.ui
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.18.3 -->
<!-- Generated with glade 3.22.1 -->
<interface domain="cui">
<requires lib="gtk+" version="3.18"/>
<object class="GtkDialog" id="GallerySearchProgress">
@@ -7,7 +7,11 @@
<property name="border_width">6</property>
<property name="title" translatable="yes" context="gallerysearchprogress|GallerySearchProgress">Find</property>
<property name="resizable">False</property>
<property name="modal">True</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>
@@ -62,11 +66,11 @@
<object class="GtkLabel" id="file">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
<property name="ellipsize">end</property>
<property name="width_chars">40</property>
<property name="single_line_mode">True</property>
<property name="max_width_chars">40</property>
<property name="xalign">0</property>
</object>
</child>
</object>
diff --git a/cui/uiconfig/ui/gallerythemedialog.ui b/cui/uiconfig/ui/gallerythemedialog.ui
index 35e86c9..9933008 100644
--- a/cui/uiconfig/ui/gallerythemedialog.ui
+++ b/cui/uiconfig/ui/gallerythemedialog.ui
@@ -21,6 +21,20 @@
<property name="can_focus">False</property>
<property name="layout_style">end</property>
<child>
<object class="GtkButton" id="reset">
<property name="label">gtk-revert-to-saved</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="ok">
<property name="label">gtk-ok</property>
<property name="visible">True</property>
@@ -33,7 +47,7 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
<property name="position">1</property>
</packing>
</child>
<child>
@@ -47,7 +61,7 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
<property name="position">2</property>
</packing>
</child>
<child>
@@ -61,22 +75,8 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
<property name="secondary">True</property>
</packing>
</child>
<child>
<object class="GtkButton" id="reset">
<property name="label">gtk-revert-to-saved</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
<property name="secondary">True</property>
</packing>
</child>
</object>
@@ -195,10 +195,10 @@
</object>
</child>
<action-widgets>
<action-widget response="101">reset</action-widget>
<action-widget response="-5">ok</action-widget>
<action-widget response="-6">cancel</action-widget>
<action-widget response="-11">help</action-widget>
<action-widget response="0">reset</action-widget>
</action-widgets>
</object>
</interface>
diff --git a/include/svx/svxdlg.hxx b/include/svx/svxdlg.hxx
index 5ff7187..d81be92 100644
--- a/include/svx/svxdlg.hxx
+++ b/include/svx/svxdlg.hxx
@@ -359,7 +359,7 @@ public:
const OUString& rOldText) = 0;
virtual VclPtr<AbstractGalleryIdDialog> CreateGalleryIdDialog(weld::Window* pParent,
GalleryTheme* pThm) = 0;
virtual VclPtr<VclAbstractDialog> CreateGalleryThemePropertiesDialog(vcl::Window* pParent,
virtual VclPtr<VclAbstractDialog> CreateGalleryThemePropertiesDialog(weld::Window* pParent,
ExchangeData* pData,
SfxItemSet* pItemSet ) = 0;
virtual VclPtr<AbstractURLDlg> CreateURLDialog( vcl::Window* pParent,
diff --git a/svx/source/gallery2/galbrws1.cxx b/svx/source/gallery2/galbrws1.cxx
index e5349d3..8da52c3 100644
--- a/svx/source/gallery2/galbrws1.cxx
+++ b/svx/source/gallery2/galbrws1.cxx
@@ -264,7 +264,7 @@ void GalleryBrowser1::ImplGalleryThemeProperties( const OUString & rThemeName, b
ImplFillExchangeData( pTheme, *mpExchangeData );
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
mpThemePropertiesDialog = pFact->CreateGalleryThemePropertiesDialog(this, mpExchangeData.get(), mpThemePropsDlgItemSet.get());
mpThemePropertiesDialog = pFact->CreateGalleryThemePropertiesDialog(GetFrameWeld(), mpExchangeData.get(), mpThemePropsDlgItemSet.get());
if ( bCreateNew )
{
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index 286206f..e04c6e6 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -4637,13 +4637,22 @@ public:
{
assert(gtk_tree_view_get_model(m_pTreeView) && "don't request selection when frozen");
int nRet = -1;
GtkTreeIter iter;
GtkTreeModel* pModel;
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(m_pTreeView), &pModel, &iter))
GtkTreeSelection *selection = gtk_tree_view_get_selection(m_pTreeView);
if (gtk_tree_selection_get_mode(selection) != GTK_SELECTION_MULTIPLE)
{
GtkTreePath* path = gtk_tree_model_get_path(pModel, &iter);
nRet = gtk_tree_path_get_indices(path)[0];
gtk_tree_path_free(path);
GtkTreeIter iter;
GtkTreeModel* pModel;
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(m_pTreeView), &pModel, &iter))
{
GtkTreePath* path = gtk_tree_model_get_path(pModel, &iter);
nRet = gtk_tree_path_get_indices(path)[0];
gtk_tree_path_free(path);
}
}
else
{
auto vec = get_selected_rows();
return vec.empty() ? -1 : vec[0];
}
return nRet;
}