Turn UI picker dialog into a SfxTabDialog

Prerequisite to 6fa44178cad838fe126e64c87c873a1ee181f542

Change-Id: I8612658bddc79682b9b63c60eb8e4bf72021b50e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184714
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
Tested-by: Jenkins
This commit is contained in:
Heiko Tietze
2025-04-30 19:00:43 +02:00
committed by Heiko Tietze
parent 234cb2da35
commit ec04856ff1
12 changed files with 662 additions and 526 deletions
+1
View File
@@ -161,6 +161,7 @@ $(eval $(call gb_Library_add_exception_objects,cui,\
cui/source/dialogs/srchxtra \
cui/source/dialogs/thesdlg \
cui/source/dialogs/toolbarmodedlg \
cui/source/dialogs/uitabpage \
cui/source/dialogs/zoom \
cui/source/factory/cuiexp \
cui/source/factory/cuiresmgr \
+1
View File
@@ -222,6 +222,7 @@ $(eval $(call gb_UIConfig_add_uifiles,cui,\
cui/uiconfig/ui/textflowpage \
cui/uiconfig/ui/thesaurus \
cui/uiconfig/ui/toolbarmodedialog \
cui/uiconfig/ui/uitabpage \
cui/uiconfig/ui/transparencytabpage \
cui/uiconfig/ui/tsaurldialog \
cui/uiconfig/ui/twolinespage \
+2 -1
View File
@@ -385,7 +385,8 @@
#define RID_CUISTR_ADDITIONS_THEMES NC_("RID_SVXSTR_ADDITIONS_THEMES", "Extensions: Color Themes")
#define RID_CUISTR_ADDITIONS_TEMPLATES NC_("RID_SVXSTR_ADDITIONS_TEMPLATES", "Extensions: Templates")
#define RID_CUISTR_UI_APPLYALL NC_("RID_SVXSTR_UI_APPLYALL", "Apply to %MODULE")
#define RID_CUISTR_UI_APPLY NC_("RID_SVXSTR_UI_APPLY", "Apply to %MODULE")
#define RID_CUISTR_UI_APPLYALL NC_("RID_SVXSTR_UI_APPLYALL", "Apply to All")
#define RID_CUISTR_OLE_INSERT NC_("RID_SVXSTR_OLE_INSERT", "Inserting OLE object...")
-38
View File
@@ -1,38 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#pragma once
#define NC_(Context, String) TranslateId(Context, u8##String)
#include <rtl/ustring.hxx>
#include <tuple>
#include <unotools/resmgr.hxx>
/*
Description, ui file name, preview file name
*/
const std::tuple<TranslateId, OUString, OUString> TOOLBARMODES_ARRAY[] =
{
{ NC_("RID_CUI_TOOLBARMODES", "Standard user interface with menu, toolbar, and collapsed sidebar. Intended for users who are familiar with the classic interface."), "Default", "default.png" },
{ NC_("RID_CUI_TOOLBARMODES", "The Tabbed user interface is the most similar to the Ribbons used in Microsoft Office. It organizes functions in tabs and makes the main menu obsolete."), "notebookbar.ui", "notebookbar.png" },
{ NC_("RID_CUI_TOOLBARMODES", "Standard user interface but with single-line toolbar. Intended for use on small screens."), "Single", "single.png" },
{ NC_("RID_CUI_TOOLBARMODES", "Standard user interface with expanded sidebar. Expert users who want to quickly change many different properties are advised to use this UI."), "Sidebar", "sidebar.png" },
{ NC_("RID_CUI_TOOLBARMODES", "The Tabbed Compact variant aims to be familiar with the Microsoft Office interface, yet occupying less space for smaller screens."), "notebookbar_compact.ui", "notebookbar_compact.png" },
{ NC_("RID_CUI_TOOLBARMODES", "The Groupedbar interface provides access to functions in groups, with icons for most-frequently used features, and dropdown menus for others. This full variant favors functions and is slightly larger than others."), "notebookbar_groupedbar_full.ui", "notebookbar_groupedbar_full.png" },
{ NC_("RID_CUI_TOOLBARMODES", "The Groupedbar interface provides access to functions in groups, with icons for most-frequently used features, and dropdown menus for others. This compact variant favors vertical space."), "notebookbar_groupedbar_compact.ui", "notebookbar_groupedbar_compact.png" },
{ NC_("RID_CUI_TOOLBARMODES", "The Contextual Single interface shows functions in a single-line toolbar with context-dependent content."), "notebookbar_single.ui", "notebookbar_single.png" },
{ NC_("RID_CUI_TOOLBARMODES", "The Contextual Groups interface focuses on beginners. It exposes the most frequently used functions on groups with the core action as large icon and a couple of small additional features. All functions have a label. Depending on the context, an additional section provides access to those functions."), "notebookbar_groups.ui", "notebookbar_groups.png" },
};
//hide experimental UIs
constexpr int nGroupedbarFull = 5;
constexpr int nContextualGroups = 8;
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
+38
View File
@@ -0,0 +1,38 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#pragma once
#define NC_(Context, String) TranslateId(Context, u8##String)
#include <rtl/ustring.hxx>
#include <tuple>
#include <unotools/resmgr.hxx>
/*
Description, ui file name, preview file name
*/
const std::tuple<TranslateId, OUString, OUString> UIMODES_ARRAY[] =
{
{ NC_("RID_CUI_UIMODES", "Standard user interface with menu, toolbar, and collapsed sidebar. Intended for users who are familiar with the classic interface."), "Default", "default.png" },
{ NC_("RID_CUI_UIMODES", "The Tabbed user interface is the most similar to the Ribbons used in Microsoft Office. It organizes functions in tabs and makes the main menu obsolete."), "notebookbar.ui", "notebookbar.png" },
{ NC_("RID_CUI_UIMODES", "Standard user interface but with single-line toolbar. Intended for use on small screens."), "Single", "single.png" },
{ NC_("RID_CUI_UIMODES", "Standard user interface with expanded sidebar. Expert users who want to quickly change many different properties are advised to use this UI."), "Sidebar", "sidebar.png" },
{ NC_("RID_CUI_UIMODES", "The Tabbed Compact variant aims to be familiar with the Microsoft Office interface, yet occupying less space for smaller screens."), "notebookbar_compact.ui", "notebookbar_compact.png" },
{ NC_("RID_CUI_UIMODES", "The Groupedbar interface provides access to functions in groups, with icons for most-frequently used features, and dropdown menus for others. This full variant favors functions and is slightly larger than others."), "notebookbar_groupedbar_full.ui", "notebookbar_groupedbar_full.png" },
{ NC_("RID_CUI_UIMODES", "The Groupedbar interface provides access to functions in groups, with icons for most-frequently used features, and dropdown menus for others. This compact variant favors vertical space."), "notebookbar_groupedbar_compact.ui", "notebookbar_groupedbar_compact.png" },
{ NC_("RID_CUI_UIMODES", "The Contextual Single interface shows functions in a single-line toolbar with context-dependent content."), "notebookbar_single.ui", "notebookbar_single.png" },
{ NC_("RID_CUI_UIMODES", "The Contextual Groups interface focuses on beginners. It exposes the most frequently used functions on groups with the core action as large icon and a couple of small additional features. All functions have a label. Depending on the context, an additional section provides access to those functions."), "notebookbar_groups.ui", "notebookbar_groups.png" },
};
//hide experimental UIs
constexpr int nGroupedbarFull = 5;
constexpr int nContextualGroups = 8;
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
+24 -149
View File
@@ -7,177 +7,52 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#include <sal/config.h>
#include <toolbarmodedlg.hxx>
#include <toolbarmode.hrc>
#include <com/sun/star/frame/ModuleManager.hpp>
#include <comphelper/dispatchcommand.hxx>
#include <comphelper/types.hxx>
#include <dialmgr.hxx>
#include <officecfg/Office/Common.hxx>
#include <officecfg/Office/UI/ToolbarMode.hxx>
#include <osl/file.hxx>
#include <rtl/bootstrap.hxx>
#include <sfx2/viewfrm.hxx>
#include <strings.hrc>
#include <unotools/confignode.hxx>
#include <vcl/virdev.hxx>
#include <vcl/graphicfilter.hxx>
#include <vcl/EnumContext.hxx>
#include <vcl/weld.hxx>
#include <com/sun/star/beans/PropertyValue.hpp>
static OUString GetCurrentApp()
{
OUString sResult;
if (SfxViewFrame* pViewFrame = SfxViewFrame::Current())
{
const auto xCurrentFrame = pViewFrame->GetFrame().GetFrameInterface();
const auto& xContext = comphelper::getProcessComponentContext();
const auto xModuleManager = css::frame::ModuleManager::create(xContext);
switch (vcl::EnumContext::GetApplicationEnum(xModuleManager->identify(xCurrentFrame)))
{
case vcl::EnumContext::Application::Writer:
sResult = "Writer";
break;
case vcl::EnumContext::Application::Calc:
sResult = "Calc";
break;
case vcl::EnumContext::Application::Impress:
sResult = "Impress";
break;
case vcl::EnumContext::Application::Draw:
sResult = "Draw";
break;
case vcl::EnumContext::Application::Formula:
sResult = "Formula";
break;
case vcl::EnumContext::Application::Base:
sResult = "Base";
break;
default:
sResult = "Unsupported";
}
}
return sResult;
}
static OUString GetCurrentMode()
{
OUString sResult;
if (SfxViewFrame::Current())
{
const auto& xContext = comphelper::getProcessComponentContext();
const utl::OConfigurationTreeRoot aAppNode(
xContext, "org.openoffice.Office.UI.ToolbarMode/Applications/" + GetCurrentApp(), true);
if (aAppNode.isValid())
sResult = comphelper::getString(aAppNode.getNodeValue(u"Active"_ustr));
};
return sResult;
}
ToolbarmodeDialog::ToolbarmodeDialog(weld::Window* pParent)
: GenericDialogController(pParent, u"cui/ui/toolbarmodedialog.ui"_ustr,
u"ToolbarmodeDialog"_ustr)
, m_pImage(m_xBuilder->weld_image(u"imImage"_ustr))
, m_pApply(m_xBuilder->weld_button(u"btnApply"_ustr))
, m_pApplyAll(m_xBuilder->weld_button(u"btnApplyAll"_ustr))
, m_pRadioButtons{ (m_xBuilder->weld_radio_button(u"rbButton1"_ustr)),
(m_xBuilder->weld_radio_button(u"rbButton2"_ustr)),
(m_xBuilder->weld_radio_button(u"rbButton3"_ustr)),
(m_xBuilder->weld_radio_button(u"rbButton4"_ustr)),
(m_xBuilder->weld_radio_button(u"rbButton5"_ustr)),
(m_xBuilder->weld_radio_button(u"rbButton6"_ustr)),
(m_xBuilder->weld_radio_button(u"rbButton7"_ustr)),
(m_xBuilder->weld_radio_button(u"rbButton8"_ustr)),
(m_xBuilder->weld_radio_button(u"rbButton9"_ustr)) }
, m_pInfoLabel(m_xBuilder->weld_label(u"lbInfo"_ustr))
: SfxTabDialogController(pParent, u"cui/ui/toolbarmodedialog.ui"_ustr,
u"ToolbarModeDialog"_ustr)
, m_xOKBtn(m_xBuilder->weld_button(u"ok"_ustr))
, m_xApplyBtn(m_xBuilder->weld_button(u"apply"_ustr)) // Apply to %Module
, m_xCancelBtn(m_xBuilder->weld_button(u"cancel"_ustr)) // Close
, m_xHelpBtn(m_xBuilder->weld_button(u"help"_ustr))
, m_xResetBtn(m_xBuilder->weld_button(u"reset"_ustr)) // Apply to All
{
static_assert(SAL_N_ELEMENTS(m_pRadioButtons) == std::size(TOOLBARMODES_ARRAY));
AddTabPage("uimode", UITabPage::Create, nullptr);
Link<weld::Toggleable&, void> aLink = LINK(this, ToolbarmodeDialog, SelectToolbarmode);
const OUString sCurrentMode = GetCurrentMode();
for (std::size_t i = 0; i < std::size(m_pRadioButtons); ++i)
{
m_pRadioButtons[i]->connect_toggled(aLink);
if (sCurrentMode == std::get<1>(TOOLBARMODES_ARRAY[i]))
{
m_pRadioButtons[i]->set_active(true);
UpdateImage(std::get<2>(TOOLBARMODES_ARRAY[i]));
m_pInfoLabel->set_label(CuiResId(std::get<0>(TOOLBARMODES_ARRAY[i])));
}
}
m_pApply->set_label(CuiResId(RID_CUISTR_UI_APPLYALL).replaceFirst("%MODULE", GetCurrentApp()));
m_pApply->connect_clicked(LINK(this, ToolbarmodeDialog, OnApplyClick));
m_pApplyAll->connect_clicked(LINK(this, ToolbarmodeDialog, OnApplyClick));
if (!officecfg::Office::Common::Misc::ExperimentalMode::get())
{
m_pRadioButtons[nGroupedbarFull]->set_visible(false);
m_pRadioButtons[nContextualGroups]->set_visible(false);
}
m_xOKBtn->set_visible(false);
m_xHelpBtn->set_visible(false);
m_xCancelBtn->set_label(CuiResId(RID_CUISTR_HYPDLG_CLOSEBUT)); // "close"
}
ToolbarmodeDialog::~ToolbarmodeDialog() = default;
static bool file_exists(const OUString& fileName)
void ToolbarmodeDialog::ActivatePage(const OUString& rPage)
{
osl::File aFile(fileName);
return aFile.open(osl_File_OpenFlag_Read) == osl::FileBase::E_None;
}
int ToolbarmodeDialog::GetActiveRadioButton()
{
for (std::size_t i = 0; i < std::size(m_pRadioButtons); ++i)
if (rPage == "uimode")
{
if (m_pRadioButtons[i]->get_active())
return i;
}
return -1;
}
m_xApplyBtn->set_label(
CuiResId(RID_CUISTR_UI_APPLY).replaceFirst("%MODULE", UITabPage::GetCurrentApp()));
m_xApplyBtn->set_from_icon_name("sw/res/sc20558.png");
m_xResetBtn->set_label(CuiResId(RID_CUISTR_UI_APPLYALL));
void ToolbarmodeDialog::UpdateImage(std::u16string_view sFileName)
{
// load image
OUString aURL(u"$BRAND_BASE_DIR/$BRAND_SHARE_SUBDIR/toolbarmode/"_ustr);
rtl::Bootstrap::expandMacros(aURL);
aURL += sFileName;
if (sFileName.empty() || !file_exists(aURL))
return;
// draw image
Graphic aGraphic;
if (GraphicFilter::LoadGraphic(aURL, OUString(), aGraphic) == ERRCODE_NONE)
{
ScopedVclPtr<VirtualDevice> m_pVirDev = m_pImage->create_virtual_device();
m_pVirDev->SetOutputSizePixel(aGraphic.GetSizePixel());
m_pVirDev->DrawBitmapEx(Point(0, 0), aGraphic.GetBitmapEx());
m_pImage->set_image(m_pVirDev.get());
m_pVirDev.disposeAndClear();
}
}
IMPL_LINK_NOARG(ToolbarmodeDialog, SelectToolbarmode, weld::Toggleable&, void)
{
const int i = GetActiveRadioButton();
if (i > -1)
{
UpdateImage(std::get<2>(TOOLBARMODES_ARRAY[i]));
m_pInfoLabel->set_label(CuiResId(std::get<0>(TOOLBARMODES_ARRAY[i])));
m_xApplyBtn->connect_clicked(LINK(this, ToolbarmodeDialog, OnApplyClick));
m_xResetBtn->connect_clicked(LINK(this, ToolbarmodeDialog, OnApplyClick));
}
}
IMPL_LINK(ToolbarmodeDialog, OnApplyClick, weld::Button&, rButton, void)
{
const int i = GetActiveRadioButton();
if (i == -1)
return;
const OUString sCmd = std::get<1>(TOOLBARMODES_ARRAY[i]);
UITabPage* pUITabPage = static_cast<UITabPage*>(GetCurTabPage());
const OUString& sCmd = pUITabPage->GetSelectedMode();
//apply to all except current module
if (&rButton == m_pApplyAll.get())
if (&rButton == m_xResetBtn.get()) // Apply to All
{
std::shared_ptr<comphelper::ConfigurationChanges> aBatch(
comphelper::ConfigurationChanges::create());
@@ -187,7 +62,7 @@ IMPL_LINK(ToolbarmodeDialog, OnApplyClick, weld::Button&, rButton, void)
officecfg::Office::UI::ToolbarMode::ActiveDraw::set(sCmd, aBatch);
aBatch->commit();
OUString sCurrentApp = GetCurrentApp();
const OUString sCurrentApp = UITabPage::GetCurrentApp();
if (SfxViewFrame::Current())
{
const auto& xContext = comphelper::getProcessComponentContext();
+173
View File
@@ -0,0 +1,173 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#include <uitabpage.hxx>
#include <com/sun/star/frame/ModuleManager.hpp>
#include <comphelper/types.hxx>
#include <dialmgr.hxx>
#include <officecfg/Office/Common.hxx>
#include <osl/file.hxx>
#include <rtl/bootstrap.hxx>
#include <sfx2/viewfrm.hxx>
#include <unotools/confignode.hxx>
#include <vcl/virdev.hxx>
#include <vcl/graphicfilter.hxx>
#include <vcl/EnumContext.hxx>
std::unique_ptr<SfxTabPage> UITabPage::Create(weld::Container* pPage,
weld::DialogController* pController,
const SfxItemSet* rAttr)
{
return std::make_unique<UITabPage>(pPage, pController, *rAttr);
}
UITabPage::UITabPage(weld::Container* pPage, weld::DialogController* pController,
const SfxItemSet& rAttr)
: SfxTabPage(pPage, pController, u"cui/ui/uitabpage.ui"_ustr, u"UITabPage"_ustr, &rAttr)
, m_pImage(m_xBuilder->weld_image(u"imImage"_ustr))
, m_pApply(m_xBuilder->weld_button(u"btnApply"_ustr))
, m_pApplyAll(m_xBuilder->weld_button(u"btnApplyAll"_ustr))
, m_pRadioButtons{ (m_xBuilder->weld_radio_button(u"rbButton1"_ustr)),
(m_xBuilder->weld_radio_button(u"rbButton2"_ustr)),
(m_xBuilder->weld_radio_button(u"rbButton3"_ustr)),
(m_xBuilder->weld_radio_button(u"rbButton4"_ustr)),
(m_xBuilder->weld_radio_button(u"rbButton5"_ustr)),
(m_xBuilder->weld_radio_button(u"rbButton6"_ustr)),
(m_xBuilder->weld_radio_button(u"rbButton7"_ustr)),
(m_xBuilder->weld_radio_button(u"rbButton8"_ustr)),
(m_xBuilder->weld_radio_button(u"rbButton9"_ustr)) }
, m_pInfoLabel(m_xBuilder->weld_label(u"lbInfo"_ustr))
{
static_assert(SAL_N_ELEMENTS(m_pRadioButtons) == std::size(UIMODES_ARRAY));
Link<weld::Toggleable&, void> aLink = LINK(this, UITabPage, SelectUIMode);
const OUString sCurrentMode = GetCurrentMode();
for (std::size_t i = 0; i < std::size(m_pRadioButtons); ++i)
{
m_pRadioButtons[i]->connect_toggled(aLink);
if (sCurrentMode == std::get<1>(UIMODES_ARRAY[i]))
{
m_pRadioButtons[i]->set_active(true);
UpdateImage(std::get<2>(UIMODES_ARRAY[i]));
m_pInfoLabel->set_label(CuiResId(std::get<0>(UIMODES_ARRAY[i])));
}
}
if (!officecfg::Office::Common::Misc::ExperimentalMode::get())
{
m_pRadioButtons[nGroupedbarFull]->set_visible(false);
m_pRadioButtons[nContextualGroups]->set_visible(false);
}
}
OUString UITabPage::GetCurrentMode()
{
OUString sResult;
if (SfxViewFrame::Current())
{
const auto& xContext = comphelper::getProcessComponentContext();
const utl::OConfigurationTreeRoot aAppNode(
xContext, "org.openoffice.Office.UI.ToolbarMode/Applications/" + GetCurrentApp(), true);
if (aAppNode.isValid())
sResult = comphelper::getString(aAppNode.getNodeValue(u"Active"_ustr));
};
return sResult;
}
OUString UITabPage::GetCurrentApp()
{
OUString sResult;
if (SfxViewFrame* pViewFrame = SfxViewFrame::Current())
{
const auto xCurrentFrame = pViewFrame->GetFrame().GetFrameInterface();
const auto& xContext = comphelper::getProcessComponentContext();
const auto xModuleManager = css::frame::ModuleManager::create(xContext);
switch (vcl::EnumContext::GetApplicationEnum(xModuleManager->identify(xCurrentFrame)))
{
case vcl::EnumContext::Application::Writer:
sResult = "Writer";
break;
case vcl::EnumContext::Application::Calc:
sResult = "Calc";
break;
case vcl::EnumContext::Application::Impress:
sResult = "Impress";
break;
case vcl::EnumContext::Application::Draw:
sResult = "Draw";
break;
case vcl::EnumContext::Application::Formula:
sResult = "Formula";
break;
case vcl::EnumContext::Application::Base:
sResult = "Base";
break;
default:
sResult = "Unsupported";
}
}
return sResult;
}
int UITabPage::GetActiveRadioButton()
{
const int nSize = std::size(m_pRadioButtons);
for (int i = 0; i < nSize; ++i)
{
if (m_pRadioButtons[i]->get_active())
return i;
}
return -1;
}
const OUString& UITabPage::GetSelectedMode()
{
int i = GetActiveRadioButton();
return std::get<1>(UIMODES_ARRAY[i]);
}
static bool file_exists(const OUString& fileName)
{
osl::File aFile(fileName);
return aFile.open(osl_File_OpenFlag_Read) == osl::FileBase::E_None;
}
void UITabPage::UpdateImage(std::u16string_view sFileName)
{
// load image
OUString aURL(u"$BRAND_BASE_DIR/$BRAND_SHARE_SUBDIR/toolbarmode/"_ustr);
rtl::Bootstrap::expandMacros(aURL);
aURL += sFileName;
if (sFileName.empty() || !file_exists(aURL))
return;
// draw image
Graphic aGraphic;
if (GraphicFilter::LoadGraphic(aURL, OUString(), aGraphic) == ERRCODE_NONE)
{
ScopedVclPtr<VirtualDevice> m_pVirDev = m_pImage->create_virtual_device();
m_pVirDev->SetOutputSizePixel(aGraphic.GetSizePixel());
m_pVirDev->DrawBitmapEx(Point(0, 0), aGraphic.GetBitmapEx());
m_pImage->set_image(m_pVirDev.get());
m_pVirDev.disposeAndClear();
}
}
IMPL_LINK_NOARG(UITabPage, SelectUIMode, weld::Toggleable&, void)
{
const int i = GetActiveRadioButton();
if (i > -1)
{
UpdateImage(std::get<2>(UIMODES_ARRAY[i]));
m_pInfoLabel->set_label(CuiResId(std::get<0>(UIMODES_ARRAY[i])));
}
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
+13 -18
View File
@@ -9,29 +9,24 @@
#pragma once
#include <sal/config.h>
#include <sfx2/tabdlg.hxx>
#include "uitabpage.hxx"
#include <string_view>
#include <vcl/weld.hxx>
class ToolbarmodeDialog : public weld::GenericDialogController
class ToolbarmodeDialog : public SfxTabDialogController
{
public:
ToolbarmodeDialog(weld::Window* pWindow);
virtual ~ToolbarmodeDialog() override;
private:
std::unique_ptr<weld::Image> m_pImage;
std::unique_ptr<weld::Button> m_pApply;
std::unique_ptr<weld::Button> m_pApplyAll;
std::unique_ptr<weld::RadioButton> m_pRadioButtons[9];
std::unique_ptr<weld::Label> m_pInfoLabel;
std::unique_ptr<weld::Button> m_xOKBtn;
std::unique_ptr<weld::Button> m_xApplyBtn;
std::unique_ptr<weld::Button> m_xCancelBtn;
std::unique_ptr<weld::Button> m_xHelpBtn;
std::unique_ptr<weld::Button> m_xResetBtn;
virtual void ActivatePage(const OUString& rPage) override;
void UpdateImage(std::u16string_view sFileName);
int GetActiveRadioButton();
DECL_LINK(SelectToolbarmode, weld::Toggleable&, void);
DECL_LINK(OnApplyClick, weld::Button&, void);
public:
ToolbarmodeDialog(weld::Window* pParent);
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
+39
View File
@@ -0,0 +1,39 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#pragma once
#include <sfx2/tabdlg.hxx>
#include <uimode.hrc>
class UITabPage : public SfxTabPage
{
private:
std::unique_ptr<weld::Image> m_pImage;
std::unique_ptr<weld::Button> m_pApply;
std::unique_ptr<weld::Button> m_pApplyAll;
std::unique_ptr<weld::RadioButton> m_pRadioButtons[std::size(UIMODES_ARRAY)];
std::unique_ptr<weld::Label> m_pInfoLabel;
void UpdateImage(std::u16string_view sFileName);
static OUString GetCurrentMode();
int GetActiveRadioButton();
DECL_LINK(SelectUIMode, weld::Toggleable&, void);
public:
UITabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet);
static std::unique_ptr<SfxTabPage>
Create(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rSet);
const OUString& GetSelectedMode();
static OUString GetCurrentApp();
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
+64 -319
View File
@@ -2,36 +2,28 @@
<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkImage" id="imgApply">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">sw/res/sc20558.png</property>
</object>
<object class="GtkDialog" id="ToolbarmodeDialog">
<object class="GtkDialog" id="ToolbarModeDialog">
<property name="can-focus">False</property>
<property name="border-width">6</property>
<property name="title" translatable="yes" context="ToolbarmodeDialog|Name">Select Your Preferred User Interface</property>
<property name="resizable">False</property>
<property name="title" translatable="yes" context="toolbarmodedialog|ToolbarModeDialog">Select Your Preferred User Interface</property>
<property name="modal">True</property>
<property name="window-position">center-on-parent</property>
<property name="default-width">0</property>
<property name="default-height">0</property>
<property name="type-hint">dialog</property>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox">
<object class="GtkBox" id="dialog-vbox1">
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child internal-child="action_area">
<object class="GtkButtonBox" id="dialog-action_area">
<object class="GtkButtonBox" id="dialog-action_area1">
<property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="layout-style">end</property>
<child>
<object class="GtkButton" id="btnApplyAll">
<property name="label" translatable="yes" context="ToolbarmodeDialog|applyall">A_pply to All</property>
<object class="GtkButton" id="reset">
<property name="label" translatable="yes" context="stock">_Reset</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="can-default">True</property>
<property name="has-default">True</property>
<property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
@@ -42,16 +34,14 @@
</packing>
</child>
<child>
<object class="GtkButton" id="btnApply">
<property name="label" translatable="yes" context="ToolbarmodeDialog|applymodule">A_pply to %MODULE</property>
<object class="GtkButton" id="ok">
<property name="label" translatable="yes" context="stock">_OK</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="can-default">True</property>
<property name="has-default">True</property>
<property name="receives-default">True</property>
<property name="image">imgApply</property>
<property name="use-underline">True</property>
<property name="always-show-image">True</property>
</object>
<packing>
<property name="expand">False</property>
@@ -60,12 +50,10 @@
</packing>
</child>
<child>
<object class="GtkButton" id="close">
<property name="label" translatable="yes" context="stock">_Close</property>
<object class="GtkButton" id="cancel">
<property name="label" translatable="yes" context="stock">_Cancel</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="can-default">True</property>
<property name="has-default">True</property>
<property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
@@ -82,327 +70,84 @@
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="use-underline">True</property>
<property name="image-position">right</property>
</object>
<packing>
<property name="expand">True</property>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
<property name="secondary">True</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="pack-type">end</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkFrame">
<object class="GtkButton" id="apply">
<property name="label" translatable="yes" context="stock">_Apply</property>
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="label-xalign">0</property>
<property name="shadow-type">none</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
<property name="orientation">vertical</property>
<property name="spacing">3</property>
<child>
<object class="GtkRadioButton" id="rbButton1">
<property name="label" translatable="yes" context="ToolbarmodeDialog|radiobutton1">Standard Toolbar</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="active">True</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="rbButton2">
<property name="label" translatable="yes" context="ToolbarmodeDialog|radiobutton2">Tabbed</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="draw-indicator">True</property>
<property name="group">rbButton1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="rbButton3">
<property name="label" translatable="yes" context="ToolbarmodeDialog|radiobutton3">Single Toolbar</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="draw-indicator">True</property>
<property name="group">rbButton1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="rbButton4">
<property name="label" translatable="yes" context="ToolbarmodeDialog|radiobutton4">Sidebar</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="draw-indicator">True</property>
<property name="group">rbButton1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="rbButton5">
<property name="label" translatable="yes" context="ToolbarmodeDialog|radiobutton5">Tabbed Compact</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="draw-indicator">True</property>
<property name="group">rbButton1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">5</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="rbButton6">
<property name="label" translatable="yes" context="ToolbarmodeDialog|radiobutton6">Groupedbar</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="draw-indicator">True</property>
<property name="group">rbButton1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">6</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="rbButton7">
<property name="label" translatable="yes" context="ToolbarmodeDialog|radiobutton7">Groupedbar Compact</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="draw-indicator">True</property>
<property name="group">rbButton1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">7</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="rbButton8">
<property name="label" translatable="yes" context="ToolbarmodeDialog|radiobutton8">Contextual Single</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="draw-indicator">True</property>
<property name="group">rbButton1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">8</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="rbButton9">
<property name="label" translatable="yes" context="ToolbarmodeDialog|radiobutton9">Contextual Groups</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="draw-indicator">True</property>
<property name="group">rbButton1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">9</property>
</packing>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes" context="ToolbarmodeDialog|leftframe">UI variants</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
</child>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkFrame">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="label-xalign">0</property>
<property name="shadow-type">none</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<property name="baseline-position">top</property>
<child>
<object class="GtkImage" id="imImage">
<property name="height-request">125</property>
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">center</property>
<property name="valign">start</property>
<property name="vexpand">True</property>
<property name="icon-name">missing-image</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkScrolledWindow">
<property name="width-request">436</property>
<property name="height-request">100</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkLabel" id="lbInfo">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="valign">start</property>
<property name="vexpand">True</property>
<property name="label">Information:</property>
<property name="wrap">True</property>
<property name="wrap-mode">word-char</property>
<property name="max-width-chars">50</property>
<property name="xalign">0</property>
<attributes>
<attribute name="scale" value="0.90000000000000002"/>
</attributes>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes" context="ToolbarmodeDialog|rightframe">Preview</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
<property name="position">4</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkNotebook" id="tabcontrol">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="scrollable">True</property>
<property name="enable-popup">True</property>
<child>
<!-- n-columns=1 n-rows=1 -->
<object class="GtkGrid">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<placeholder/>
</child>
</object>
</child>
<child type="tab">
<object class="GtkLabel" id="uimode">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes" context="toolbarmodedialog|uimode">User Interface</property>
</object>
<packing>
<property name="tab-fill">False</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
<action-widgets>
<action-widget response="-5">btnApplyAll</action-widget>
<action-widget response="-5">btnApply</action-widget>
<action-widget response="-7">close</action-widget>
<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="102">apply</action-widget>
</action-widgets>
<child internal-child="accessible">
<object class="AtkObject" id="ToolbarModeDialog-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="toolbarmodedialog|extended_tip|ToolbarModeDialog">Sets the fill properties of the selected drawing object.</property>
</object>
</child>
</object>
</interface>
+307
View File
@@ -0,0 +1,307 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkBox" id="UITabPage">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkFrame">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="margin-top">12</property>
<property name="label-xalign">0</property>
<property name="shadow-type">none</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
<property name="orientation">vertical</property>
<property name="spacing">3</property>
<child>
<object class="GtkRadioButton" id="rbButton1">
<property name="label" translatable="yes" context="ToolbarmodeDialog|radiobutton1">Standard Toolbar</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="active">True</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="rbButton2">
<property name="label" translatable="yes" context="ToolbarmodeDialog|radiobutton2">Tabbed</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="draw-indicator">True</property>
<property name="group">rbButton1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="rbButton3">
<property name="label" translatable="yes" context="ToolbarmodeDialog|radiobutton3">Single Toolbar</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="draw-indicator">True</property>
<property name="group">rbButton1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="rbButton4">
<property name="label" translatable="yes" context="ToolbarmodeDialog|radiobutton4">Sidebar</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="draw-indicator">True</property>
<property name="group">rbButton1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="rbButton5">
<property name="label" translatable="yes" context="ToolbarmodeDialog|radiobutton5">Tabbed Compact</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="draw-indicator">True</property>
<property name="group">rbButton1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">5</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="rbButton6">
<property name="label" translatable="yes" context="ToolbarmodeDialog|radiobutton6">Groupedbar</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="draw-indicator">True</property>
<property name="group">rbButton1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">6</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="rbButton7">
<property name="label" translatable="yes" context="ToolbarmodeDialog|radiobutton7">Groupedbar Compact</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="draw-indicator">True</property>
<property name="group">rbButton1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">7</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="rbButton8">
<property name="label" translatable="yes" context="ToolbarmodeDialog|radiobutton8">Contextual Single</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="draw-indicator">True</property>
<property name="group">rbButton1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">8</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="rbButton9">
<property name="label" translatable="yes" context="ToolbarmodeDialog|radiobutton9">Contextual Groups</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="draw-indicator">True</property>
<property name="group">rbButton1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">9</property>
</packing>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes" context="ToolbarmodeDialog|leftframe">Options</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkFrame">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="margin-top">12</property>
<property name="label-xalign">0</property>
<property name="shadow-type">none</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<property name="baseline-position">top</property>
<child>
<object class="GtkImage" id="imImage">
<property name="height-request">125</property>
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">center</property>
<property name="valign">start</property>
<property name="vexpand">True</property>
<property name="icon-name">missing-image</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkScrolledWindow">
<property name="width-request">436</property>
<property name="height-request">100</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkLabel" id="lbInfo">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="valign">start</property>
<property name="vexpand">True</property>
<property name="label">Information:</property>
<property name="wrap">True</property>
<property name="wrap-mode">word-char</property>
<property name="max-width-chars">50</property>
<property name="xalign">0</property>
<attributes>
<attribute name="scale" value="0.90000000000000002"/>
</attributes>
<child internal-child="accessible">
<object class="AtkObject" id="lbInfo-atkobject">
<property name="AtkObject::accessible-role">static</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child internal-child="accessible">
<object class="AtkObject">
<property name="AtkObject::accessible-role">static</property>
</object>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes" context="ToolbarmodeDialog|rightframe">Preview</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</interface>
-1
View File
@@ -200,7 +200,6 @@ cui/uiconfig/ui/textanimtabpage.ui://GtkLabel[@id='FT_DELAY'] orphan-label
cui/uiconfig/ui/textflowpage.ui://GtkLabel[@id='labelOrphan'] orphan-label
cui/uiconfig/ui/textflowpage.ui://GtkLabel[@id='labelWidow'] orphan-label
cui/uiconfig/ui/thesaurus.ui://GtkLabel[@id='notfound'] orphan-label
cui/uiconfig/ui/toolbarmodedialog.ui://GtkLabel[@id='lbInfo'] orphan-label
cui/uiconfig/ui/tsaurldialog.ui://GtkLabel[@id='label2'] orphan-label
cui/uiconfig/ui/tsaurldialog.ui://GtkLabel[@id='enteraurl'] orphan-label
cui/uiconfig/ui/twolinespage.ui://GtkLabel[@id='label29'] orphan-label