[Libreoffice-commits] .: 7 commits - officecfg/registry sc/inc sc/sdi sc/source sc/uiconfig

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Sat Oct 6 12:27:01 PDT 2012


 officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu |   12 +-
 sc/inc/sc.hrc                                                     |    4 
 sc/sdi/cellsh.sdi                                                 |    2 
 sc/sdi/scalc.sdi                                                  |   50 ++++++++
 sc/source/ui/attrdlg/scdlgfact.cxx                                |   13 +-
 sc/source/ui/condformat/condformatdlg.cxx                         |   58 ++++++++--
 sc/source/ui/condformat/condformatmgr.cxx                         |   42 ++++++-
 sc/source/ui/inc/condformatdlg.hxx                                |   26 +++-
 sc/source/ui/inc/condformatmgr.hxx                                |    1 
 sc/source/ui/view/cellsh1.cxx                                     |   13 +-
 sc/uiconfig/scalc/menubar/menubar.xml                             |    2 
 11 files changed, 204 insertions(+), 19 deletions(-)

New commits:
commit ce8ac5bbe40e4cb57e1826a81b3b5c4632474789
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Sat Oct 6 06:52:28 2012 +0200

    prevent creating cond formats without a attached range
    
    Change-Id: Ic4c13fa3d0eae54b7db1fa5a4e5c5040582b21ed

diff --git a/sc/source/ui/condformat/condformatdlg.cxx b/sc/source/ui/condformat/condformatdlg.cxx
index 9dc6350..4c5708a 100644
--- a/sc/source/ui/condformat/condformatdlg.cxx
+++ b/sc/source/ui/condformat/condformatdlg.cxx
@@ -1133,6 +1133,7 @@ ScCondFormatDlg::ScCondFormatDlg(Window* pParent, ScDocument* pDoc, const ScCond
     maBtnAdd.SetClickHdl( LINK( &maCondFormList, ScCondFormatList, AddBtnHdl ) );
     maBtnRemove.SetClickHdl( LINK( &maCondFormList, ScCondFormatList, RemoveBtnHdl ) );
     maEdRange.SetModifyHdl( LINK( this, ScCondFormatDlg, EdRangeModifyHdl ) );
+    maBtnOk.SetClickHdl( LINK( this, ScCondFormatDlg, OkBtnHdl ) );
     FreeResource();
 
     maEdRange.SetText(aRangeString);
@@ -1207,5 +1208,21 @@ IMPL_LINK( ScCondFormatDlg, EdRangeModifyHdl, Edit*, pEdit )
     return 0;
 }
 
+IMPL_LINK_NOARG( ScCondFormatDlg, OkBtnHdl )
+{
+    rtl::OUString aRangeStr = maEdRange.GetText();
+    ScRangeList aRange;
+    aRange.Parse(aRangeStr, mpDoc, SCA_VALID, mpDoc->GetAddressConvention());
+    boost::scoped_ptr<ScConditionalFormat> pFormat(maCondFormList.GetConditionalFormat());
+    if(pFormat && pFormat->GetRange().empty() && aRange.empty())
+        return 0;
+    else
+    {
+        EndDialog(RET_OK);
+    }
+
+    return 0;
+}
+
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/inc/condformatdlg.hxx b/sc/source/ui/inc/condformatdlg.hxx
index c7a247c..52c03e5 100644
--- a/sc/source/ui/inc/condformatdlg.hxx
+++ b/sc/source/ui/inc/condformatdlg.hxx
@@ -205,6 +205,7 @@ private:
     ScDocument* mpDoc;
 
     DECL_LINK( EdRangeModifyHdl, Edit* );
+    DECL_LINK( OkBtnHdl, void* );
 
 public:
     ScCondFormatDlg(Window* pWindow, ScDocument* pDoc, const ScConditionalFormat* pFormat, const ScRangeList& rRange, const ScAddress& rPos, condformat::dialog::ScCondFormatDialogType eType);
commit 7f127204ce0d601ef4b956b92c6ba433f753d534
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Sat Oct 6 06:52:03 2012 +0200

    prevent crash when no cond format will be defined in cond format dlg
    
    Change-Id: Iffc54ada1fcf586c00eddf934079fa671f263ce0

diff --git a/sc/source/ui/condformat/condformatmgr.cxx b/sc/source/ui/condformat/condformatmgr.cxx
index c6a6465..0bd3538 100644
--- a/sc/source/ui/condformat/condformatmgr.cxx
+++ b/sc/source/ui/condformat/condformatmgr.cxx
@@ -257,6 +257,9 @@ IMPL_LINK_NOARG(ScCondFormatManagerDlg, AddBtnHdl)
     if(pDlg->Execute() == RET_OK)
     {
         ScConditionalFormat* pNewFormat = pDlg->GetConditionalFormat();
+        if(!pNewFormat)
+            return 0;
+
         mpFormatList->InsertNew(pNewFormat);
         pNewFormat->SetKey(FindKey(mpFormatList));
         maCtrlManager.Update();
commit d8a854364f6c3d9a7a1de2073d3ff5f17c5c2762
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Sat Oct 6 06:24:30 2012 +0200

    enable the add button in manage conditional formats
    
    Change-Id: I82a0abf58f8fc68d0e9e145923961fa3e3c654fe

diff --git a/sc/source/ui/condformat/condformatmgr.cxx b/sc/source/ui/condformat/condformatmgr.cxx
index 6eeecd1..c6a6465 100644
--- a/sc/source/ui/condformat/condformatmgr.cxx
+++ b/sc/source/ui/condformat/condformatmgr.cxx
@@ -181,8 +181,8 @@ ScCondFormatManagerDlg::ScCondFormatManagerDlg(Window* pParent, ScDocument* pDoc
 
     maBtnRemove.SetClickHdl(LINK(this, ScCondFormatManagerDlg, RemoveBtnHdl));
     maBtnEdit.SetClickHdl(LINK(this, ScCondFormatManagerDlg, EditBtnHdl));
+    maBtnAdd.SetClickHdl(LINK(this, ScCondFormatManagerDlg, AddBtnHdl));
     maCtrlManager.GetListControl().SetDoubleClickHdl(LINK(this, ScCondFormatManagerDlg, EditBtnHdl));
-    maBtnAdd.Hide();
 }
 
 ScCondFormatManagerDlg::~ScCondFormatManagerDlg()
@@ -233,4 +233,39 @@ IMPL_LINK_NOARG(ScCondFormatManagerDlg, EditBtnHdl)
     return 0;
 }
 
+namespace {
+
+sal_uInt32 FindKey(ScConditionalFormatList* pFormatList)
+{
+    sal_uInt32 nKey = 0;
+    for(ScConditionalFormatList::const_iterator itr = pFormatList->begin(), itrEnd = pFormatList->end();
+            itr != itrEnd; ++itr)
+    {
+        if(itr->GetKey() > nKey)
+            nKey = itr->GetKey();
+    }
+
+    return nKey + 1;
+}
+
+}
+
+IMPL_LINK_NOARG(ScCondFormatManagerDlg, AddBtnHdl)
+{
+    boost::scoped_ptr<ScCondFormatDlg> pDlg(new ScCondFormatDlg(this, mpDoc, NULL, ScRangeList(),
+                                                maPos, condformat::dialog::CONDITION));
+    if(pDlg->Execute() == RET_OK)
+    {
+        ScConditionalFormat* pNewFormat = pDlg->GetConditionalFormat();
+        mpFormatList->InsertNew(pNewFormat);
+        pNewFormat->SetKey(FindKey(mpFormatList));
+        maCtrlManager.Update();
+
+        mbModified = true;
+    }
+
+    return 0;
+}
+
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/inc/condformatmgr.hxx b/sc/source/ui/inc/condformatmgr.hxx
index c71e2ef..5b0d1e8 100644
--- a/sc/source/ui/inc/condformatmgr.hxx
+++ b/sc/source/ui/inc/condformatmgr.hxx
@@ -106,6 +106,7 @@ private:
 
     DECL_LINK(RemoveBtnHdl, void*);
     DECL_LINK(EditBtnHdl, void*);
+    DECL_LINK(AddBtnHdl, void*);
 
     bool mbModified;
 };
commit c2d8d60748769d32133f33efb43be3e9ea28f8c8
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Sat Oct 6 05:19:19 2012 +0200

    selecting the correct entry will also show it in the dialog
    
    Change-Id: I6bbeb2d1cb5af724ac0743d13f3e36cb8b613a88

diff --git a/sc/source/ui/attrdlg/scdlgfact.cxx b/sc/source/ui/attrdlg/scdlgfact.cxx
index 7962c6d..9200eba 100644
--- a/sc/source/ui/attrdlg/scdlgfact.cxx
+++ b/sc/source/ui/attrdlg/scdlgfact.cxx
@@ -787,8 +787,17 @@ AbstractScCondFormatDlg* ScAbstractDialogFactory_Impl::CreateScCondFormatDlg(Win
     ScCondFormatDlg* pDlg = NULL;
     switch( nId )
     {
-        case RID_SCDLG_CONDFORMAT:
-            pDlg = new ScCondFormatDlg( pParent, pDoc, pFormat, rRange, rPos );
+        case 0:
+            pDlg = new ScCondFormatDlg( pParent, pDoc, pFormat, rRange, rPos, condformat::dialog::NONE );
+            break;
+        case SID_OPENDLG_CONDFRMT:
+            pDlg = new ScCondFormatDlg( pParent, pDoc, pFormat, rRange, rPos, condformat::dialog::CONDITION );
+            break;
+        case SID_OPENDLG_COLORSCALE:
+            pDlg = new ScCondFormatDlg( pParent, pDoc, pFormat, rRange, rPos, condformat::dialog::COLORSCALE );
+            break;
+        case SID_OPENDLG_DATABAR:
+            pDlg = new ScCondFormatDlg( pParent, pDoc, pFormat, rRange, rPos, condformat::dialog::DATABAR );
             break;
         default:
             break;
diff --git a/sc/source/ui/condformat/condformatdlg.cxx b/sc/source/ui/condformat/condformatdlg.cxx
index e2f8d67..9dc6350 100644
--- a/sc/source/ui/condformat/condformatdlg.cxx
+++ b/sc/source/ui/condformat/condformatdlg.cxx
@@ -633,6 +633,14 @@ void ScCondFrmtEntry::Select()
     SetHeight();
 }
 
+void ScCondFrmtEntry::SetType( ScCondFormatEntryType eType )
+{
+    meType = eType;
+    if(eType == DATABAR)
+        maLbColorFormat.SelectEntryPos(2);
+    Select();
+}
+
 void ScCondFrmtEntry::Deselect()
 {
     SetControlBackground(GetSettings().GetStyleSettings().GetDialogColor());
@@ -987,7 +995,8 @@ IMPL_LINK_NOARG( ScCondFrmtEntry, ConditionTypeSelectHdl )
     return 0;
 }
 
-ScCondFormatList::ScCondFormatList(Window* pParent, const ResId& rResId, ScDocument* pDoc, const ScConditionalFormat* pFormat, const ScRangeList& rRanges, const ScAddress& rPos):
+ScCondFormatList::ScCondFormatList(Window* pParent, const ResId& rResId, ScDocument* pDoc, const ScConditionalFormat* pFormat,
+                                const ScRangeList& rRanges, const ScAddress& rPos, condformat::dialog::ScCondFormatDialogType eType):
     Control(pParent, rResId),
     mbHasScrollBar(false),
     mpScrollBar(new ScrollBar(this, WB_VERT )),
@@ -1005,9 +1014,28 @@ ScCondFormatList::ScCondFormatList(Window* pParent, const ResId& rResId, ScDocum
         {
             maEntries.push_back(new ScCondFrmtEntry( this, mpDoc, pFormat->GetEntry(nIndex), maPos ));
         }
-        if (nCount > 0)
-            maEntries.begin()->Select();
     }
+    else
+    {
+        switch(eType)
+        {
+            case condformat::dialog::CONDITION:
+                maEntries.push_back(new ScCondFrmtEntry( this, mpDoc, maPos ));
+                break;
+            case condformat::dialog::COLORSCALE:
+                maEntries.push_back(new ScCondFrmtEntry( this, mpDoc, maPos ));
+                maEntries[0].SetType(COLORSCALE);
+                break;
+            case condformat::dialog::DATABAR:
+                maEntries.push_back(new ScCondFrmtEntry( this, mpDoc, maPos ));
+                maEntries[0].SetType(DATABAR);
+                break;
+            default:
+                break;
+        }
+    }
+    if (!maEntries.empty())
+        maEntries.begin()->Select();
 
     RecalcAll();
     FreeResource();
@@ -1083,7 +1111,8 @@ void ScCondFormatList::DoScroll(long nDelta)
     mpScrollBar->SetPosPixel(aNewPoint);
 }
 
-ScCondFormatDlg::ScCondFormatDlg(Window* pParent, ScDocument* pDoc, const ScConditionalFormat* pFormat, const ScRangeList& rRange, const ScAddress& rPos):
+ScCondFormatDlg::ScCondFormatDlg(Window* pParent, ScDocument* pDoc, const ScConditionalFormat* pFormat, const ScRangeList& rRange,
+                                    const ScAddress& rPos, condformat::dialog::ScCondFormatDialogType eType):
     ModalDialog(pParent, ScResId( RID_SCDLG_CONDFORMAT )),
     maBtnAdd( this, ScResId( BTN_ADD ) ),
     maBtnRemove( this, ScResId( BTN_REMOVE ) ),
@@ -1091,7 +1120,7 @@ ScCondFormatDlg::ScCondFormatDlg(Window* pParent, ScDocument* pDoc, const ScCond
     maBtnCancel( this, ScResId( BTN_CANCEL ) ),
     maFtRange( this, ScResId( FT_RANGE ) ),
     maEdRange( this, ScResId( ED_RANGE ) ),
-    maCondFormList( this, ScResId( CTRL_LIST ), pDoc, pFormat, rRange, rPos ),
+    maCondFormList( this, ScResId( CTRL_LIST ), pDoc, pFormat, rRange, rPos, eType ),
     maPos(rPos),
     mpDoc(pDoc)
 {
diff --git a/sc/source/ui/condformat/condformatmgr.cxx b/sc/source/ui/condformat/condformatmgr.cxx
index 0931899..6eeecd1 100644
--- a/sc/source/ui/condformat/condformatmgr.cxx
+++ b/sc/source/ui/condformat/condformatmgr.cxx
@@ -217,7 +217,7 @@ IMPL_LINK_NOARG(ScCondFormatManagerDlg, EditBtnHdl)
         return 0;
 
     boost::scoped_ptr<ScCondFormatDlg> pDlg(new ScCondFormatDlg(this, mpDoc, pFormat, pFormat->GetRange(),
-                                                pFormat->GetRange().GetTopLeftCorner()));
+                                                pFormat->GetRange().GetTopLeftCorner(), condformat::dialog::NONE));
     if(pDlg->Execute() == RET_OK)
     {
         sal_Int32 nKey = pFormat->GetKey();
diff --git a/sc/source/ui/inc/condformatdlg.hxx b/sc/source/ui/inc/condformatdlg.hxx
index 4b3e780..c7a247c 100644
--- a/sc/source/ui/inc/condformatdlg.hxx
+++ b/sc/source/ui/inc/condformatdlg.hxx
@@ -47,6 +47,22 @@ class ScFormatEntry;
 class ScConditionalFormat;
 struct ScDataBarFormatData;
 
+namespace condformat {
+
+namespace dialog {
+
+enum ScCondFormatDialogType
+{
+    NONE,
+    CONDITION,
+    COLORSCALE,
+    DATABAR
+};
+
+}
+
+}
+
 class ScCondFrmtEntry : public Control
 {
 private:
@@ -96,7 +112,6 @@ private:
     boost::scoped_ptr<ScDataBarFormatData> mpDataBarData;
 
     //
-    void SwitchToType(ScCondFormatEntryType eType);
     void SetCondType();
     void SetColorScaleType();
     void SetDataBarType();
@@ -104,6 +119,7 @@ private:
     void HideCondElements();
     void HideColorScaleElements();
     void HideDataBarElements();
+    void SwitchToType(ScCondFormatEntryType eType);
 
     void SetHeight();
     void Init();
@@ -134,6 +150,8 @@ public:
 
     virtual long Notify( NotifyEvent& rNEvt );
 
+    void SetType( ScCondFormatEntryType eType );
+
     void Select();
     void Deselect();
 
@@ -159,7 +177,8 @@ private:
     void RecalcAll();
     void DoScroll(long nDiff);
 public:
-    ScCondFormatList( Window* pParent, const ResId& rResId, ScDocument* pDoc, const ScConditionalFormat* pFormat, const ScRangeList& rRanges, const ScAddress& rPos);
+    ScCondFormatList( Window* pParent, const ResId& rResId, ScDocument* pDoc, const ScConditionalFormat* pFormat,
+            const ScRangeList& rRanges, const ScAddress& rPos, condformat::dialog::ScCondFormatDialogType eType);
 
     ScConditionalFormat* GetConditionalFormat() const;
 
@@ -188,7 +207,7 @@ private:
     DECL_LINK( EdRangeModifyHdl, Edit* );
 
 public:
-    ScCondFormatDlg(Window* pWindow, ScDocument* pDoc, const ScConditionalFormat* pFormat, const ScRangeList& rRange, const ScAddress& rPos);
+    ScCondFormatDlg(Window* pWindow, ScDocument* pDoc, const ScConditionalFormat* pFormat, const ScRangeList& rRange, const ScAddress& rPos, condformat::dialog::ScCondFormatDialogType eType);
 
     ScConditionalFormat* GetConditionalFormat() const;
 };
diff --git a/sc/source/ui/view/cellsh1.cxx b/sc/source/ui/view/cellsh1.cxx
index c4b21f3..1f970b6 100644
--- a/sc/source/ui/view/cellsh1.cxx
+++ b/sc/source/ui/view/cellsh1.cxx
@@ -2065,15 +2065,15 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
                 {
                     const ScRangeList& rCondFormatRange = pCondFormat->GetRange();
                     if(rCondFormatRange == aRangeList)
-                        pDlg.reset(pFact->CreateScCondFormatDlg( pTabViewShell->GetDialogParent(), pDoc, pCondFormat, pCondFormat->GetRange(), aPos, RID_SCDLG_CONDFORMAT ));
+                        pDlg.reset(pFact->CreateScCondFormatDlg( pTabViewShell->GetDialogParent(), pDoc, pCondFormat, pCondFormat->GetRange(), aPos, 0 ));
                 }
 
                 if(!pDlg)
                 {
-                    pDlg.reset(pFact->CreateScCondFormatDlg( pTabViewShell->GetDialogParent(), pDoc, NULL, aRangeList, aRangeList.GetTopLeftCorner(), RID_SCDLG_CONDFORMAT ));
+                    pDlg.reset(pFact->CreateScCondFormatDlg( pTabViewShell->GetDialogParent(), pDoc, NULL, aRangeList, aRangeList.GetTopLeftCorner(), nSlot ));
                 }
 
-                if(pDlg->Execute() == RET_OK)
+                if(pDlg && pDlg->Execute() == RET_OK)
                 {
                     ScConditionalFormat* pFormat = pDlg->GetConditionalFormat();
                     sal_uLong nOldIndex = 0;
commit b65e98a6a8be0ad7864eb607087d9b85003e5a1e
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Sat Oct 6 02:32:07 2012 +0200

    implement the menu strucutre from Astron's proposal
    
    Change-Id: I46b751f033f2b4f08461b2eaae8ad16c1487f1c0

diff --git a/officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu
index e6767b7..7418498 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu
@@ -446,7 +446,17 @@
             </node>
             <node oor:name=".uno:ConditionalFormatDialog" oor:op="replace">
                 <prop oor:name="Label" oor:type="xs:string">
-                    <value xml:lang="en-US">Conditional Formatting...</value>
+                    <value xml:lang="en-US">Condition...</value>
+                </prop>
+            </node>
+            <node oor:name=".uno:ColorScaleFormatDialog" oor:op="replace">
+                <prop oor:name="Label" oor:type="xs:string">
+                    <value xml:lang="en-US">Color Scale...</value>
+                </prop>
+            </node>
+            <node oor:name=".uno:DataBarFormatDialog" oor:op="replace">
+                <prop oor:name="Label" oor:type="xs:string">
+                    <value xml:lang="en-US">Data Bar...</value>
                 </prop>
             </node>
             <node oor:name=".uno:ConditionalFormatManagerDialog" oor:op="replace">
diff --git a/sc/inc/sc.hrc b/sc/inc/sc.hrc
index 51cebf3..e47ee57 100644
--- a/sc/inc/sc.hrc
+++ b/sc/inc/sc.hrc
@@ -250,7 +250,9 @@
 #define SID_OPENDLG_OPTSOLVER       (SC_MESSAGE_START + 60)
 #define SID_VALIDITY_REFERENCE      (SC_MESSAGE_START + 61)
 #define SID_OPENDLG_CONDFRMT_MANAGER (SC_MESSAGE_START + 62)
-#define SC_HINT_NAVIGATOR_UPDATEALL  (SC_MESSAGE_START + 65)
+#define SC_HINT_NAVIGATOR_UPDATEALL (SC_MESSAGE_START + 65)
+#define SID_OPENDLG_COLORSCALE      (SC_MESSAGE_START + 66)
+#define SID_OPENDLG_DATABAR         (SC_MESSAGE_START + 67)
 
 // functions
 
diff --git a/sc/sdi/cellsh.sdi b/sc/sdi/cellsh.sdi
index 77eea5c..15233b6 100644
--- a/sc/sdi/cellsh.sdi
+++ b/sc/sdi/cellsh.sdi
@@ -189,6 +189,8 @@ interface CellSelection
     SID_CANCEL      [ ExecMethod = Execute; ]
     SID_TOGGLE_REL  [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
     SID_OPENDLG_CONDFRMT    [ ExecMethod = ExecuteEdit; ]
+    SID_OPENDLG_COLORSCALE  [ ExecMethod = ExecuteEdit; ]
+    SID_OPENDLG_DATABAR     [ ExecMethod = ExecuteEdit; ]
     SID_OPENDLG_CONDFRMT_MANAGER    [ ExecMethod = ExecuteEdit; ]
     SID_COLORSCALE          [ ExecMethod = ExecuteEdit; ]
     SID_DATABAR             [ ExecMethod = ExecuteEdit; ]
diff --git a/sc/sdi/scalc.sdi b/sc/sdi/scalc.sdi
index 0350d7d..5b9cda6 100644
--- a/sc/sdi/scalc.sdi
+++ b/sc/sdi/scalc.sdi
@@ -1094,6 +1094,56 @@ SfxVoidItem ConditionalFormatDialog SID_OPENDLG_CONDFRMT
 ]
 
 //--------------------------------------------------------------------------
+SfxVoidItem ColorScaleFormatDialog SID_OPENDLG_COLORSCALE
+()
+[
+    /* flags: */
+    AutoUpdate = FALSE,
+    Cachable = Cachable,
+    FastCall = FALSE,
+    HasCoreId = FALSE,
+    HasDialog = TRUE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+    Synchron;
+
+    /* config: */
+    AccelConfig = TRUE,
+    MenuConfig = TRUE,
+    StatusBarConfig = FALSE,
+    ToolBoxConfig = TRUE,
+    GroupId = GID_FORMAT;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem DataBarFormatDialog SID_OPENDLG_DATABAR
+()
+[
+    /* flags: */
+    AutoUpdate = FALSE,
+    Cachable = Cachable,
+    FastCall = FALSE,
+    HasCoreId = FALSE,
+    HasDialog = TRUE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+    Synchron;
+
+    /* config: */
+    AccelConfig = TRUE,
+    MenuConfig = TRUE,
+    StatusBarConfig = FALSE,
+    ToolBoxConfig = TRUE,
+    GroupId = GID_FORMAT;
+]
+
+//--------------------------------------------------------------------------
 SfxVoidItem ConditionalFormatManagerDialog SID_OPENDLG_CONDFRMT_MANAGER
 ()
 [
diff --git a/sc/source/ui/view/cellsh1.cxx b/sc/source/ui/view/cellsh1.cxx
index 3d292f6..c4b21f3 100644
--- a/sc/source/ui/view/cellsh1.cxx
+++ b/sc/source/ui/view/cellsh1.cxx
@@ -2035,6 +2035,8 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
             break;
 
         case SID_OPENDLG_CONDFRMT:
+        case SID_OPENDLG_COLORSCALE:
+        case SID_OPENDLG_DATABAR:
             {
                 ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
                 OSL_ENSURE(pFact, "ScAbstractFactory create fail!");
diff --git a/sc/uiconfig/scalc/menubar/menubar.xml b/sc/uiconfig/scalc/menubar/menubar.xml
index 0bff97c..621586e 100644
--- a/sc/uiconfig/scalc/menubar/menubar.xml
+++ b/sc/uiconfig/scalc/menubar/menubar.xml
@@ -277,6 +277,8 @@
             <menu:menu menu:id=".uno:ConditionalFormatMenu">
               <menu:menupopup>
                 <menu:menuitem menu:id=".uno:ConditionalFormatDialog"/>
+                <menu:menuitem menu:id=".uno:ColorScaleFormatDialog"/>
+                <menu:menuitem menu:id=".uno:DataBarFormatDialog"/>
                 <menu:menuseparator/>
                 <menu:menuitem menu:id=".uno:ConditionalFormatManagerDialog"/>
               </menu:menupopup>
commit ea89abb435a0175a7c12a6ccb430752393ce4b64
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Sat Oct 6 01:15:10 2012 +0200

    onyl show the exisiting cond format if the range is equal
    
    Change-Id: I6a183b41261f1813b1cce277f3fe4a276ab07bb0

diff --git a/sc/source/ui/view/cellsh1.cxx b/sc/source/ui/view/cellsh1.cxx
index b468530..3d292f6 100644
--- a/sc/source/ui/view/cellsh1.cxx
+++ b/sc/source/ui/view/cellsh1.cxx
@@ -2061,9 +2061,12 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
                 const ScConditionalFormat* pCondFormat = pDoc->GetCondFormat(aPos.Col(), aPos.Row(), aPos.Tab());
                 if(pCondFormat)
                 {
-                    pDlg.reset(pFact->CreateScCondFormatDlg( pTabViewShell->GetDialogParent(), pDoc, pCondFormat, pCondFormat->GetRange(), aPos, RID_SCDLG_CONDFORMAT ));
+                    const ScRangeList& rCondFormatRange = pCondFormat->GetRange();
+                    if(rCondFormatRange == aRangeList)
+                        pDlg.reset(pFact->CreateScCondFormatDlg( pTabViewShell->GetDialogParent(), pDoc, pCondFormat, pCondFormat->GetRange(), aPos, RID_SCDLG_CONDFORMAT ));
                 }
-                else
+
+                if(!pDlg)
                 {
                     pDlg.reset(pFact->CreateScCondFormatDlg( pTabViewShell->GetDialogParent(), pDoc, NULL, aRangeList, aRangeList.GetTopLeftCorner(), RID_SCDLG_CONDFORMAT ));
                 }
commit 32d8c9b96cef77fd563ca1ab0c3943f783f1b16a
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Sat Oct 6 01:13:57 2012 +0200

    fix another crash in cond format dialog with range name list
    
    Change-Id: I84f9c71fd7f80ad9300f4f7b2c273cd9af0f075e

diff --git a/sc/source/ui/condformat/condformatdlg.cxx b/sc/source/ui/condformat/condformatdlg.cxx
index 2e294f2..e2f8d67 100644
--- a/sc/source/ui/condformat/condformatdlg.cxx
+++ b/sc/source/ui/condformat/condformatdlg.cxx
@@ -1116,7 +1116,7 @@ ScConditionalFormat* ScCondFormatDlg::GetConditionalFormat() const
     sal_uInt16 nFlags = aRange.Parse(aRangeStr, mpDoc, SCA_VALID, mpDoc->GetAddressConvention());
     ScConditionalFormat* pFormat = maCondFormList.GetConditionalFormat();
 
-    if(nFlags & SCA_VALID && !aRange.empty())
+    if(nFlags & SCA_VALID && !aRange.empty() && pFormat)
         pFormat->AddRange(aRange);
 
     return pFormat;


More information about the Libreoffice-commits mailing list