Reduce duplicate code in Template Manager

Remove ViewBar and put contents in ActionBar

Change-Id: I6551d36503f659f076ecf2b6766c6a14db771a1d
Reviewed-on: https://gerrit.libreoffice.org/25833
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
diff --git a/include/sfx2/templatedlg.hxx b/include/sfx2/templatedlg.hxx
index e404e88..d9730d1 100644
--- a/include/sfx2/templatedlg.hxx
+++ b/include/sfx2/templatedlg.hxx
@@ -148,7 +148,6 @@ protected:
    VclPtr<PushButton> mpExportButton;
    VclPtr<PushButton> mpImportButton;
    VclPtr<PushButton> mpLinkButton;
    VclPtr<ToolBox> mpViewBar;
    VclPtr<ToolBox> mpActionBar;
    VclPtr<TemplateSearchView> mpSearchView;
    VclPtr<TemplateAbstractView> mpCurView;
diff --git a/sfx2/source/doc/templatedlg.cxx b/sfx2/source/doc/templatedlg.cxx
index 907e4c8..a05a304 100644
--- a/sfx2/source/doc/templatedlg.cxx
+++ b/sfx2/source/doc/templatedlg.cxx
@@ -67,7 +67,7 @@ const char TM_SETTING_LASTAPPLICATION[] = "LastApplication";

const char SERVICENAME_CFGREADACCESS[] = "com.sun.star.configuration.ConfigurationAccess";

const char VIEWBAR_REPOSITORY[] = "repository";
const char ACTIONBAR_REPOSITORY[] = "repository";
const char ACTIONBAR_ACTION[] = "action_menu";

#define MNI_ACTION_NEW_FOLDER 1
@@ -170,7 +170,6 @@ SfxTemplateManagerDlg::SfxTemplateManagerDlg(vcl::Window *parent)
    get(mpSearchFilter, "search_filter");
    get(mpCBApp, "filter_application");
    get(mpCBFolder, "filter_folder");
    get(mpViewBar, "action_view");
    get(mpActionBar, "action_action");
    get(mpLocalView, "template_view");
    get(mpSearchView, "search_view");
@@ -205,14 +204,13 @@ SfxTemplateManagerDlg::SfxTemplateManagerDlg(vcl::Window *parent)
    mpActionMenu->SetPopupMenu(MNI_ACTION_DEFAULT,mpTemplateDefaultMenu);

    // Set toolbox styles
    mpViewBar->SetButtonType(ButtonType::SYMBOLTEXT);
    mpActionBar->SetButtonType(ButtonType::SYMBOLTEXT);

    // Set toolbox button bits
    mpViewBar->SetItemBits(mpViewBar->GetItemId(VIEWBAR_REPOSITORY), ToolBoxItemBits::DROPDOWNONLY);
    mpActionBar->SetItemBits(mpActionBar->GetItemId(ACTIONBAR_REPOSITORY), ToolBoxItemBits::DROPDOWNONLY);
    mpActionBar->SetItemBits(mpActionBar->GetItemId(ACTIONBAR_ACTION), ToolBoxItemBits::DROPDOWNONLY);

    // Set toolbox handlers
    mpViewBar->SetDropdownClickHdl(LINK(this,SfxTemplateManagerDlg,TBXDropdownHdl));
    mpActionBar->SetDropdownClickHdl(LINK(this,SfxTemplateManagerDlg,TBXDropdownHdl));

    mpLocalView->SetStyle(mpLocalView->GetStyle() | WB_VSCROLL);
@@ -267,11 +265,10 @@ SfxTemplateManagerDlg::SfxTemplateManagerDlg(vcl::Window *parent)
    SvtMiscOptions aMiscOptions;
    if ( !aMiscOptions.IsExperimentalMode() )
    {
        sal_uInt16 nPos = mpViewBar->GetItemPos(mpViewBar->GetItemId(VIEWBAR_REPOSITORY));
        mpViewBar->RemoveItem(nPos);
        sal_uInt16 nPos = mpActionBar->GetItemPos(mpActionBar->GetItemId(ACTIONBAR_REPOSITORY));
        mpActionBar->RemoveItem(nPos);
    }

    mpViewBar->Show();
    mpActionBar->Show();

    switchMainView(true);
@@ -331,7 +328,6 @@ void SfxTemplateManagerDlg::dispose()
    mpSearchFilter.clear();
    mpCBApp.clear();
    mpCBFolder.clear();
    mpViewBar.clear();
    mpActionBar.clear();
    mpSearchView.clear();
    mpCurView.clear();
@@ -527,30 +523,19 @@ IMPL_LINK_NOARG_TYPED(SfxTemplateManagerDlg, SelectRegionHdl, ListBox&, void)
        SearchUpdateHdl(*mpSearchFilter);
}

IMPL_LINK_TYPED(SfxTemplateManagerDlg, TBXDropdownHdl, ToolBox*, pBox, void)
IMPL_LINK_NOARG_TYPED(SfxTemplateManagerDlg, TBXDropdownHdl, ToolBox*, void)
{
    const sal_uInt16 nCurItemId = pBox->GetCurItemId();
    const sal_uInt16 nCurItemId = mpActionBar->GetCurItemId();
    mpActionBar->SetItemDown( nCurItemId, true );

    if (pBox == mpActionBar && nCurItemId == mpActionBar->GetItemId(ACTIONBAR_ACTION))
    {
        pBox->SetItemDown( nCurItemId, true );
    if (nCurItemId == mpActionBar->GetItemId(ACTIONBAR_ACTION))
        mpActionMenu->Execute(mpActionBar, mpActionBar->GetItemRect(nCurItemId), PopupMenuFlags::ExecuteDown);
    else if (nCurItemId == mpActionBar->GetItemId(ACTIONBAR_REPOSITORY))
        mpRepositoryMenu->Execute(mpActionBar, mpActionBar->GetItemRect(nCurItemId), PopupMenuFlags::ExecuteDown);

        mpActionMenu->Execute(pBox, pBox->GetItemRect(nCurItemId), PopupMenuFlags::ExecuteDown);

        pBox->SetItemDown( nCurItemId, false );
        pBox->EndSelection();
        pBox->Invalidate();
    }
    else if (pBox == mpViewBar && nCurItemId == mpViewBar->GetItemId(VIEWBAR_REPOSITORY))
    {
        pBox->SetItemDown( nCurItemId, true );

        mpRepositoryMenu->Execute(pBox, pBox->GetItemRect(nCurItemId), PopupMenuFlags::ExecuteDown);

        pBox->SetItemDown( nCurItemId, false );
        pBox->EndSelection();
        pBox->Invalidate();
    }
    mpActionBar->SetItemDown( nCurItemId, false );
    mpActionBar->EndSelection();
    mpActionBar->Invalidate();
}

IMPL_LINK_TYPED(SfxTemplateManagerDlg, TVItemStateHdl, const ThumbnailViewItem*, pItem, void)
@@ -751,10 +736,7 @@ IMPL_STATIC_LINK_NOARG_TYPED(SfxTemplateManagerDlg, LinkClickHdl, Button*, void)
IMPL_LINK_NOARG_TYPED(SfxTemplateManagerDlg, OpenRegionHdl, void*, void)
{
    maSelTemplates.clear();

    mpOKButton->Disable();

    mpViewBar->Show();
    mpActionBar->Show();
}

diff --git a/sfx2/uiconfig/ui/templatedlg.ui b/sfx2/uiconfig/ui/templatedlg.ui
index 385b833..ca7134e 100644
--- a/sfx2/uiconfig/ui/templatedlg.ui
+++ b/sfx2/uiconfig/ui/templatedlg.ui
@@ -3,21 +3,6 @@
<interface>
  <requires lib="gtk+" version="3.6"/>
  <requires lib="LibreOffice" version="1.0"/>
  <object class="GtkImage" id="image1">
    <property name="visible">True</property>
    <property name="can_focus">False</property>
    <property name="pixbuf">sfx2/imglst/actiontemplates020.png</property>
  </object>
  <object class="GtkImage" id="image3">
    <property name="visible">True</property>
    <property name="can_focus">False</property>
    <property name="pixbuf">sfx2/imglst/actiontemplates017.png</property>
  </object>
  <object class="GtkImage" id="image4">
    <property name="visible">True</property>
    <property name="can_focus">False</property>
    <property name="pixbuf">sfx2/imglst/actionview010.png</property>
  </object>
  <object class="GtkListStore" id="applist">
    <columns>
      <!-- column-name gchararray1 -->
@@ -41,7 +26,6 @@
      </row>
    </data>
  </object>

  <object class="GtkListStore" id="folderlist">
    <columns>
      <!-- column-name gchararray1 -->
@@ -53,6 +37,26 @@
      </row>
    </data>
  </object>
  <object class="GtkImage" id="image1">
    <property name="visible">True</property>
    <property name="can_focus">False</property>
    <property name="pixbuf">sfx2/imglst/actiontemplates020.png</property>
  </object>
  <object class="GtkImage" id="image3">
    <property name="visible">True</property>
    <property name="can_focus">False</property>
    <property name="pixbuf">sfx2/imglst/actiontemplates017.png</property>
  </object>
  <object class="GtkImage" id="image4">
    <property name="visible">True</property>
    <property name="can_focus">False</property>
    <property name="pixbuf">sfx2/imglst/actionview010.png</property>
  </object>
  <object class="GtkImage" id="image5">
    <property name="visible">True</property>
    <property name="can_focus">False</property>
    <property name="pixbuf">cmd/lc_webhtml.png</property>
  </object>
  <object class="GtkDialog" id="TemplateDialog">
    <property name="width_request">800</property>
    <property name="height_request">600</property>
@@ -291,9 +295,11 @@
                    <property name="visible">True</property>
                    <property name="can_focus">False</property>
                    <child>
                      <object class="GtkToolbar" id="action_view">
                      <object class="GtkToolbar" id="action_action">
                        <property name="visible">True</property>
                        <property name="can_focus">False</property>
                        <property name="halign">end</property>
                        <property name="hexpand">True</property>
                        <child>
                          <object class="GtkToolButton" id="repository">
                            <property name="visible">True</property>
@@ -308,26 +314,11 @@
                            <property name="homogeneous">True</property>
                          </packing>
                        </child>
                      </object>
                      <packing>
                        <property name="expand">False</property>
                        <property name="fill">True</property>
                        <property name="position">0</property>
                      </packing>
                    </child>
                    <child>
                      <object class="GtkToolbar" id="action_action">
                        <property name="visible">True</property>
                        <property name="can_focus">False</property>
                        <property name="halign">end</property>
                        <property name="hexpand">True</property>
                        <child>
                          <object class="GtkToolButton" id="action_menu">
                            <property name="visible">True</property>
                            <property name="can_focus">False</property>
                            <property name="action_name">action_menu</property>
                            <property name="label" translatable="yes">Action Menu</property>
                            <property name="use_underline">True</property>
                            <property name="icon_name">sfx2/imglst/actionaction013.png</property>
                          </object>
                          <packing>
@@ -453,9 +444,4 @@
      <action-widget response="0">cancel</action-widget>
    </action-widgets>
  </object>
  <object class="GtkImage" id="image5">
    <property name="visible">True</property>
    <property name="can_focus">False</property>
    <property name="pixbuf">cmd/lc_webhtml.png</property>
  </object>
</interface>