cui/source/dialogs/sdrcelldlg.cxx    |    7 +++++
 cui/source/inc/sdrcelldlg.hxx        |    2 +
 cui/uiconfig/ui/formatcellsdialog.ui |   48 +++++++++++++++++++++++++++++++++++
 svx/source/table/tablecontroller.cxx |   12 ++++++++
 4 files changed, 69 insertions(+)

New commits:
commit 74ba28fe238b7f15d1fb7d119e4cef3a7b544e0b
Author:     Miklos Vajna <vmik...@collabora.com>
AuthorDate: Mon Dec 14 12:15:09 2020 +0100
Commit:     Miklos Vajna <vmik...@collabora.com>
CommitDate: Mon Dec 14 13:02:19 2020 +0100

    tdf#129961 cui: start UI for table shadow as direct format
    
    It reads from the doc model and shows it, but doesn't write it back yet.
    
    Change-Id: I6611229e71d0a49f09576ca452b901958c33db58
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107682
    Reviewed-by: Miklos Vajna <vmik...@collabora.com>
    Tested-by: Jenkins

diff --git a/cui/source/dialogs/sdrcelldlg.cxx 
b/cui/source/dialogs/sdrcelldlg.cxx
index 3c745692f7ea..fda8b4ce1385 100644
--- a/cui/source/dialogs/sdrcelldlg.cxx
+++ b/cui/source/dialogs/sdrcelldlg.cxx
@@ -27,6 +27,7 @@ SvxFormatCellsDialog::SvxFormatCellsDialog(weld::Window* 
pParent, const SfxItemS
     : SfxTabDialogController(pParent, "cui/ui/formatcellsdialog.ui", 
"FormatCellsDialog", pAttr)
     , mrOutAttrs(*pAttr)
     , mpColorTab(rModel.GetColorList())
+    , mnColorTabState ( ChangeType::NONE )
     , mpGradientList(rModel.GetGradientList())
     , mpHatchingList(rModel.GetHatchList())
     , mpBitmapList(rModel.GetBitmapList())
@@ -36,6 +37,7 @@ SvxFormatCellsDialog::SvxFormatCellsDialog(weld::Window* 
pParent, const SfxItemS
     AddTabPage("effects", RID_SVXPAGE_CHAR_EFFECTS);
     AddTabPage("border", RID_SVXPAGE_BORDER );
     AddTabPage("area", RID_SVXPAGE_AREA);
+    AddTabPage("shadow", SvxShadowTabPage::Create, nullptr);
 }
 
 void SvxFormatCellsDialog::PageCreated(const OString& rId, SfxTabPage &rPage)
@@ -55,6 +57,11 @@ void SvxFormatCellsDialog::PageCreated(const OString& rId, 
SfxTabPage &rPage)
         SvxBorderTabPage& rBorderPage = static_cast<SvxBorderTabPage&>(rPage);
         rBorderPage.SetTableMode();
     }
+    else if (rId == "shadow")
+    {
+        static_cast<SvxShadowTabPage&>(rPage).SetColorList( mpColorTab );
+        static_cast<SvxShadowTabPage&>(rPage).SetColorChgd( &mnColorTabState );
+    }
     else
         SfxTabDialogController::PageCreated(rId, rPage);
 }
diff --git a/cui/source/inc/sdrcelldlg.hxx b/cui/source/inc/sdrcelldlg.hxx
index a9f6183bd1d1..5b7e9ca71a20 100644
--- a/cui/source/inc/sdrcelldlg.hxx
+++ b/cui/source/inc/sdrcelldlg.hxx
@@ -22,6 +22,7 @@
 
 #include <sfx2/tabdlg.hxx>
 #include <svx/xtable.hxx>
+#include <svx/tabarea.hxx>
 
 class SdrModel;
 class SvxFormatCellsDialog : public SfxTabDialogController
@@ -30,6 +31,7 @@ private:
     const SfxItemSet&   mrOutAttrs;
 
     XColorListRef       mpColorTab;
+    ChangeType          mnColorTabState;
     XGradientListRef    mpGradientList;
     XHatchListRef       mpHatchingList;
     XBitmapListRef      mpBitmapList;
diff --git a/cui/uiconfig/ui/formatcellsdialog.ui 
b/cui/uiconfig/ui/formatcellsdialog.ui
index 32c9b0558c4e..3ac39e087551 100644
--- a/cui/uiconfig/ui/formatcellsdialog.ui
+++ b/cui/uiconfig/ui/formatcellsdialog.ui
@@ -285,6 +285,54 @@
                 <property name="tab_fill">False</property>
               </packing>
             </child>
+            <child>
+              <!-- n-columns=1 n-rows=1 -->
+              <object class="GtkGrid">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+              </object>
+              <packing>
+                <property name="position">4</property>
+              </packing>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="shadow">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes" 
context="formatcellsdialog|shadow">Shadow</property>
+              </object>
+              <packing>
+                <property name="position">5</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
           </object>
           <packing>
             <property name="expand">False</property>
diff --git a/svx/source/table/tablecontroller.cxx 
b/svx/source/table/tablecontroller.cxx
index ee40835ec5d8..1dce1dab81ec 100644
--- a/svx/source/table/tablecontroller.cxx
+++ b/svx/source/table/tablecontroller.cxx
@@ -925,6 +925,18 @@ void SvxTableController::onFormatTable(const SfxRequest& 
rReq)
     aNewAttr.Put( aBoxItem );
     aNewAttr.Put( aBoxInfoItem );
 
+    // Fill in shadow properties.
+    const SfxItemSet& rTableItemSet = rTableObj.GetMergedItemSet();
+    for (sal_uInt16 nWhich = SDRATTR_SHADOW_FIRST; nWhich <= 
SDRATTR_SHADOW_LAST; ++nWhich)
+    {
+        if (rTableItemSet.GetItemState(nWhich, false) != SfxItemState::SET)
+        {
+            continue;
+        }
+
+        aNewAttr.Put(rTableItemSet.Get(nWhich));
+    }
+
     SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
     VclPtr<SfxAbstractTabDialog> xDlg( pFact->CreateSvxFormatCellsDialog(
         rReq.GetFrameWeld(),
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to