[Libreoffice-commits] .: Branch 'feature/calc-xml-source' - 2 commits - sc/inc sc/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Fri Oct 5 14:48:39 PDT 2012


 sc/inc/orcusfilters.hxx                     |    2 -
 sc/source/filter/inc/orcusfiltersimpl.hxx   |    2 -
 sc/source/filter/orcus/orcusfiltersimpl.cxx |   32 +++++++++++++++++++---------
 sc/source/ui/inc/xmlsourcedlg.hrc           |    3 +-
 sc/source/ui/inc/xmlsourcedlg.hxx           |    1 
 sc/source/ui/src/xmlsourcedlg.src           |    6 +++++
 sc/source/ui/xmlsource/xmlsourcedlg.cxx     |    4 ++-
 7 files changed, 36 insertions(+), 14 deletions(-)

New commits:
commit a700919263c73714b52b631623dc6d2f4ef1f092
Author: Kohei Yoshida <kohei.yoshida at gmail.com>
Date:   Fri Oct 5 17:48:48 2012 -0400

    Use different icon image for the attribute entries.
    
    Change-Id: Icd053ba7906191f3bc937cdb3c76d037fd67dab5

diff --git a/sc/inc/orcusfilters.hxx b/sc/inc/orcusfilters.hxx
index 2ec5a49..7db7034 100644
--- a/sc/inc/orcusfilters.hxx
+++ b/sc/inc/orcusfilters.hxx
@@ -28,7 +28,7 @@ public:
 
     virtual bool loadXMLStructure(
        SvTreeListBox& rTreeCtrl, const rtl::OUString& rPath,
-       const Image& rImgDefaultElem, const Image& rImgRepeatElem) const = 0;
+       const Image& rImgDefaultElem, const Image& rImgRepeatElem, const Image& rImgElemAttr) const = 0;
 };
 
 #endif
diff --git a/sc/source/filter/inc/orcusfiltersimpl.hxx b/sc/source/filter/inc/orcusfiltersimpl.hxx
index 311b6e0..2f42d0b 100644
--- a/sc/source/filter/inc/orcusfiltersimpl.hxx
+++ b/sc/source/filter/inc/orcusfiltersimpl.hxx
@@ -19,7 +19,7 @@ public:
 
     virtual bool loadXMLStructure(
        SvTreeListBox& rTreeCtrl, const rtl::OUString& rPath,
-       const Image& rImgDefaultElem, const Image& rImgRepeatElem) const;
+       const Image& rImgDefaultElem, const Image& rImgRepeatElem, const Image& rImgElemAttr) const;
 };
 
 #endif
diff --git a/sc/source/filter/orcus/orcusfiltersimpl.cxx b/sc/source/filter/orcus/orcusfiltersimpl.cxx
index 4635175..824eea9 100644
--- a/sc/source/filter/orcus/orcusfiltersimpl.cxx
+++ b/sc/source/filter/orcus/orcusfiltersimpl.cxx
@@ -175,7 +175,9 @@ bool ScOrcusFiltersImpl::importCSV(ScDocument& rDoc, const OUString& rPath) cons
 
 void populateTree(
    SvTreeListBox& rTreeCtrl, orcus::xml_structure_tree::walker& rWalker,
-   const orcus::xml_structure_tree::entity_name& rElemName, bool bRepeat, const Image& rImgRepeatElem, SvLBoxEntry* pParent)
+   const orcus::xml_structure_tree::entity_name& rElemName, bool bRepeat,
+   const Image& rImgRepeatElem, const Image& rImgElemAttr,
+   SvLBoxEntry* pParent)
 {
     OUString aName(rElemName.name.get(), rElemName.name.size(), RTL_TEXTENCODING_UTF8);
     SvLBoxEntry* pEntry = rTreeCtrl.InsertEntry(aName, pParent);
@@ -196,7 +198,9 @@ void populateTree(
     for (; it != itEnd; ++it)
     {
         orcus::xml_structure_tree::entity_name aAttrName = *it;
-        rTreeCtrl.InsertEntry(OUString(aAttrName.name.get(), aAttrName.name.size(), RTL_TEXTENCODING_UTF8), pEntry);
+        SvLBoxEntry* pAttr = rTreeCtrl.InsertEntry(OUString(aAttrName.name.get(), aAttrName.name.size(), RTL_TEXTENCODING_UTF8), pEntry);
+        rTreeCtrl.SetExpandedEntryBmp(pAttr, rImgElemAttr);
+        rTreeCtrl.SetCollapsedEntryBmp(pAttr, rImgElemAttr);
     }
     rTreeCtrl.Expand(pEntry);
 
@@ -205,13 +209,14 @@ void populateTree(
     for (it = aNames.begin(), itEnd = aNames.end(); it != itEnd; ++it)
     {
         orcus::xml_structure_tree::element aElem = rWalker.descend(*it);
-        populateTree(rTreeCtrl, rWalker, *it, aElem.repeat, rImgRepeatElem, pEntry);
+        populateTree(rTreeCtrl, rWalker, *it, aElem.repeat, rImgRepeatElem, rImgElemAttr, pEntry);
         rWalker.ascend();
     }
 }
 
 bool ScOrcusFiltersImpl::loadXMLStructure(
-   SvTreeListBox& rTreeCtrl, const rtl::OUString& rPath, const Image& rImgDefaultElem, const Image& rImgRepeatElem) const
+   SvTreeListBox& rTreeCtrl, const rtl::OUString& rPath,
+   const Image& rImgDefaultElem, const Image& rImgRepeatElem, const Image& rImgElemAttr) const
 {
     INetURLObject aURL(rPath);
     OString aSysPath = rtl::OUStringToOString(aURL.getFSysPath(SYSTEM_PATH), RTL_TEXTENCODING_UTF8);
@@ -238,7 +243,7 @@ bool ScOrcusFiltersImpl::loadXMLStructure(
 
         // Root element.
         orcus::xml_structure_tree::element aElem = aWalker.root();
-        populateTree(rTreeCtrl, aWalker, aElem.name, aElem.repeat, rImgRepeatElem, NULL);
+        populateTree(rTreeCtrl, aWalker, aElem.name, aElem.repeat, rImgRepeatElem, rImgElemAttr, NULL);
     }
     catch (const std::exception&)
     {
diff --git a/sc/source/ui/inc/xmlsourcedlg.hrc b/sc/source/ui/inc/xmlsourcedlg.hrc
index 24c40b1..ec10aff 100644
--- a/sc/source/ui/inc/xmlsourcedlg.hrc
+++ b/sc/source/ui/inc/xmlsourcedlg.hrc
@@ -21,6 +21,7 @@
 
 #define IMG_ELEMENT_DEFAULT 50
 #define IMG_ELEMENT_REPEAT  51
-#define IMG_FILE_OPEN 52
+#define IMG_ELEMENT_ATTRIBUTE 52
+#define IMG_FILE_OPEN 53
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
\ No newline at end of file
diff --git a/sc/source/ui/inc/xmlsourcedlg.hxx b/sc/source/ui/inc/xmlsourcedlg.hxx
index b6fb2ba..39bfa6b 100644
--- a/sc/source/ui/inc/xmlsourcedlg.hxx
+++ b/sc/source/ui/inc/xmlsourcedlg.hxx
@@ -42,6 +42,7 @@ class ScXMLSourceDlg : public ModalDialog
     Image maImgFileOpen;
     Image maImgElemDefault;
     Image maImgElemRepeat;
+    Image maImgElemAttribute;
 
     ScDocument* mpDoc;
 
diff --git a/sc/source/ui/src/xmlsourcedlg.src b/sc/source/ui/src/xmlsourcedlg.src
index 564b9d1..8a7b13a 100644
--- a/sc/source/ui/src/xmlsourcedlg.src
+++ b/sc/source/ui/src/xmlsourcedlg.src
@@ -68,6 +68,12 @@ ModalDialog RID_SCDLG_XML_SOURCE
         MaskColor = STD_MASKCOLOR ;
     };
 
+    Image IMG_ELEMENT_ATTRIBUTE
+    {
+        ImageBitmap = Bitmap { File = "time.png" ; };
+        MaskColor = STD_MASKCOLOR ;
+    };
+
     Image IMG_FILE_OPEN
     {
         ImageBitmap = Bitmap { File = "file.png" ; };
diff --git a/sc/source/ui/xmlsource/xmlsourcedlg.cxx b/sc/source/ui/xmlsource/xmlsourcedlg.cxx
index 7f0a48b..2a94a9b 100644
--- a/sc/source/ui/xmlsource/xmlsourcedlg.cxx
+++ b/sc/source/ui/xmlsource/xmlsourcedlg.cxx
@@ -36,6 +36,7 @@ ScXMLSourceDlg::ScXMLSourceDlg(Window* pParent, ScDocument* pDoc) :
     maImgFileOpen(ScResId(IMG_FILE_OPEN)),
     maImgElemDefault(ScResId(IMG_ELEMENT_DEFAULT)),
     maImgElemRepeat(ScResId(IMG_ELEMENT_REPEAT)),
+    maImgElemAttribute(ScResId(IMG_ELEMENT_ATTRIBUTE)),
     mpDoc(pDoc)
 {
     maBtnSelectSource.SetModeImage(maImgFileOpen);
@@ -80,7 +81,8 @@ void ScXMLSourceDlg::LoadSourceFileStructure(const OUString& rPath)
     if (!pOrcus)
         return;
 
-    pOrcus->loadXMLStructure(maLbTree, rPath, maImgElemDefault, maImgElemRepeat);
+    pOrcus->loadXMLStructure(
+        maLbTree, rPath, maImgElemDefault, maImgElemRepeat, maImgElemAttribute);
 }
 
 IMPL_LINK(ScXMLSourceDlg, BtnPressedHdl, Button*, pBtn)
commit 2c67a1b65d7027fb9362f83bf7b110a64e7b68c7
Author: Kohei Yoshida <kohei.yoshida at gmail.com>
Date:   Fri Oct 5 17:41:33 2012 -0400

    Add detected attributes to the tree too.
    
    Change-Id: I6d4b757f599ac8d33be3775ee55eaef61d89871a

diff --git a/sc/source/filter/orcus/orcusfiltersimpl.cxx b/sc/source/filter/orcus/orcusfiltersimpl.cxx
index 8453043..4635175 100644
--- a/sc/source/filter/orcus/orcusfiltersimpl.cxx
+++ b/sc/source/filter/orcus/orcusfiltersimpl.cxx
@@ -175,10 +175,8 @@ bool ScOrcusFiltersImpl::importCSV(ScDocument& rDoc, const OUString& rPath) cons
 
 void populateTree(
    SvTreeListBox& rTreeCtrl, orcus::xml_structure_tree::walker& rWalker,
-   const orcus::xml_structure_tree::element_name& rElemName, bool bRepeat, const Image& rImgRepeatElem, SvLBoxEntry* pParent)
+   const orcus::xml_structure_tree::entity_name& rElemName, bool bRepeat, const Image& rImgRepeatElem, SvLBoxEntry* pParent)
 {
-    // TODO: Make use of bRepeat flag.
-
     OUString aName(rElemName.name.get(), rElemName.name.size(), RTL_TEXTENCODING_UTF8);
     SvLBoxEntry* pEntry = rTreeCtrl.InsertEntry(aName, pParent);
     if (bRepeat)
@@ -190,13 +188,22 @@ void populateTree(
     if (pParent)
         rTreeCtrl.Expand(pParent);
 
-    orcus::xml_structure_tree::element_names_type aChildElements;
-    rWalker.get_children(aChildElements);
+    orcus::xml_structure_tree::entity_names_type aNames;
 
-    orcus::xml_structure_tree::element_names_type::const_iterator it = aChildElements.begin();
-    orcus::xml_structure_tree::element_names_type::const_iterator itEnd = aChildElements.end();
+    rWalker.get_attributes(aNames);
+    orcus::xml_structure_tree::entity_names_type::const_iterator it = aNames.begin();
+    orcus::xml_structure_tree::entity_names_type::const_iterator itEnd = aNames.end();
     for (; it != itEnd; ++it)
     {
+        orcus::xml_structure_tree::entity_name aAttrName = *it;
+        rTreeCtrl.InsertEntry(OUString(aAttrName.name.get(), aAttrName.name.size(), RTL_TEXTENCODING_UTF8), pEntry);
+    }
+    rTreeCtrl.Expand(pEntry);
+
+    rWalker.get_children(aNames);
+
+    for (it = aNames.begin(), itEnd = aNames.end(); it != itEnd; ++it)
+    {
         orcus::xml_structure_tree::element aElem = rWalker.descend(*it);
         populateTree(rTreeCtrl, rWalker, *it, aElem.repeat, rImgRepeatElem, pEntry);
         rWalker.ascend();


More information about the Libreoffice-commits mailing list