[Libreoffice-commits] core.git: Branch 'libreoffice-4-3' - extensions/source

Caolán McNamara caolanm at redhat.com
Thu Apr 9 17:15:32 PDT 2015


 extensions/source/bibliography/bib.hrc      |   23 +++
 extensions/source/bibliography/datman.cxx   |   59 +++++++++
 extensions/source/bibliography/general.cxx  |   76 +-----------
 extensions/source/bibliography/general.hxx  |    1 
 extensions/source/bibliography/sections.hrc |   23 ---
 extensions/source/bibliography/sections.src |  177 ++++++++++++++--------------
 6 files changed, 181 insertions(+), 178 deletions(-)

New commits:
commit ebdaab9d4a042f1338f97628cf0c0f294d7dc059
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Apr 9 20:43:28 2015 +0100

    Related: tdf#90472 initial load of bibliography doesn't...
    
    set bibliography type
    
    moving to a new row will set the new type, but initially
    its not set because the ListStore property was set after
    the model is connected to the database so at the initial
    connection time there isn't a available set of values
    to map the row to.
    
    So move that connection code from general.cxx to datman.cxx
    and put it before the connection is established
    
    we can then remove the intermediate aBibTypeArr list and
    those resources then need to be global bib ones.
    
    Change-Id: I12276c3df9955ec399e1b5de6d0836c69ebb1ebb
    Reviewed-on: https://gerrit.libreoffice.org/15220
    Tested-by: Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>
    Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>

diff --git a/extensions/source/bibliography/bib.hrc b/extensions/source/bibliography/bib.hrc
index cb9a7e2..9752c06 100644
--- a/extensions/source/bibliography/bib.hrc
+++ b/extensions/source/bibliography/bib.hrc
@@ -80,6 +80,29 @@
 #define ST_CUSTOM4                  (RID_BIB_STRING +  35)
 #define ST_CUSTOM5                  (RID_BIB_STRING +  36)
 
+#define ST_TYPE_ARTICLE             (RID_BIB_STRING +  38)
+#define ST_TYPE_BOOK                (RID_BIB_STRING +  39)
+#define ST_TYPE_BOOKLET             (RID_BIB_STRING +  40)
+#define ST_TYPE_CONFERENCE          (RID_BIB_STRING +  41)
+#define ST_TYPE_INBOOK              (RID_BIB_STRING +  42)
+#define ST_TYPE_INCOLLECTION        (RID_BIB_STRING +  43)
+#define ST_TYPE_INPROCEEDINGS       (RID_BIB_STRING +  44)
+#define ST_TYPE_JOURNAL             (RID_BIB_STRING +  45)
+#define ST_TYPE_MANUAL              (RID_BIB_STRING +  46)
+#define ST_TYPE_MASTERSTHESIS       (RID_BIB_STRING +  47)
+#define ST_TYPE_MISC                (RID_BIB_STRING +  48)
+#define ST_TYPE_PHDTHESIS           (RID_BIB_STRING +  49)
+#define ST_TYPE_PROCEEDINGS         (RID_BIB_STRING +  50)
+#define ST_TYPE_TECHREPORT          (RID_BIB_STRING +  51)
+#define ST_TYPE_UNPUBLISHED         (RID_BIB_STRING +  52)
+#define ST_TYPE_EMAIL               (RID_BIB_STRING +  53)
+#define ST_TYPE_WWW                 (RID_BIB_STRING +  54)
+#define ST_TYPE_CUSTOM1             (RID_BIB_STRING +  55)
+#define ST_TYPE_CUSTOM2             (RID_BIB_STRING +  56)
+#define ST_TYPE_CUSTOM3             (RID_BIB_STRING +  57)
+#define ST_TYPE_CUSTOM4             (RID_BIB_STRING +  58)
+#define ST_TYPE_CUSTOM5             (RID_BIB_STRING +  59)
+
 #endif
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/extensions/source/bibliography/datman.cxx b/extensions/source/bibliography/datman.cxx
index 28bbd27..751f692 100644
--- a/extensions/source/bibliography/datman.cxx
+++ b/extensions/source/bibliography/datman.cxx
@@ -37,6 +37,7 @@
 #include <com/sun/star/sdbc/XConnection.hpp>
 #include <com/sun/star/sdb/XCompletedConnection.hpp>
 #include <com/sun/star/task/InteractionHandler.hpp>
+#include <com/sun/star/form/ListSourceType.hpp>
 #include <com/sun/star/form/XLoadable.hpp>
 #include <com/sun/star/form/runtime/FormController.hpp>
 #include <com/sun/star/sdbcx/XColumnsSupplier.hpp>
@@ -59,12 +60,12 @@
 #include "bibresid.hxx"
 #include "bibmod.hxx"
 #include "bibview.hxx"
-// #100312# ---------
 #include "bibprop.hrc"
 #include "toolbar.hxx"
 #include "toolbar.hrc"
 #include "bibconfig.hxx"
 #include "bibbeam.hxx"
+#include "general.hxx"
 #include "bib.hrc"
 #include "datman.hrc"
 #include "bibliography.hrc"
@@ -1378,6 +1379,62 @@ Reference< awt::XControlModel > BibDataManager::loadControlModel(
             xPropSet->setPropertyValue( FM_PROP_CONTROLSOURCE, makeAny( rName ) );
             xPropSet->setPropertyValue("NativeWidgetLook", makeAny( true ) );
 
+            if (bForceListBox)
+            {
+                uno::Any aAny;
+
+                //uno::Reference< beans::XPropertySet >  xPropSet(xControl, UNO_QUERY);
+                aAny <<= (sal_Int16)1;
+                xPropSet->setPropertyValue("BoundColumn", aAny);
+                ListSourceType eSet = ListSourceType_VALUELIST;
+                aAny.setValue( &eSet, ::cppu::UnoType<ListSourceType>::get() );
+                xPropSet->setPropertyValue("ListSourceType", aAny);
+
+                uno::Sequence<OUString> aListSource(TYPE_COUNT);
+                OUString* pListSourceArr = aListSource.getArray();
+                //pListSourceArr[0] = "select TypeName, TypeIndex from TypeNms";
+                for(sal_Int32 i = 0; i < TYPE_COUNT; ++i)
+                    pListSourceArr[i] = OUString::number(i);
+                aAny.setValue(&aListSource, cppu::UnoType<uno::Sequence<OUString>>::get());
+
+                xPropSet->setPropertyValue("ListSource", aAny);
+
+                uno::Sequence<OUString> aValues(TYPE_COUNT + 1);
+                OUString* pValuesArr = aValues.getArray();
+                pValuesArr[0] = BIB_RESSTR(ST_TYPE_ARTICLE);
+                pValuesArr[1] = BIB_RESSTR(ST_TYPE_BOOK);
+                pValuesArr[2] = BIB_RESSTR(ST_TYPE_BOOKLET);
+                pValuesArr[3] = BIB_RESSTR(ST_TYPE_CONFERENCE);
+                pValuesArr[4] = BIB_RESSTR(ST_TYPE_INBOOK );
+                pValuesArr[5] = BIB_RESSTR(ST_TYPE_INCOLLECTION);
+                pValuesArr[6] = BIB_RESSTR(ST_TYPE_INPROCEEDINGS);
+                pValuesArr[7] = BIB_RESSTR(ST_TYPE_JOURNAL       );
+                pValuesArr[8] = BIB_RESSTR(ST_TYPE_MANUAL    );
+                pValuesArr[9] = BIB_RESSTR(ST_TYPE_MASTERSTHESIS);
+                pValuesArr[10] = BIB_RESSTR(ST_TYPE_MISC      );
+                pValuesArr[11] = BIB_RESSTR(ST_TYPE_PHDTHESIS );
+                pValuesArr[12] = BIB_RESSTR(ST_TYPE_PROCEEDINGS   );
+                pValuesArr[13] = BIB_RESSTR(ST_TYPE_TECHREPORT    );
+                pValuesArr[14] = BIB_RESSTR(ST_TYPE_UNPUBLISHED   );
+                pValuesArr[15] = BIB_RESSTR(ST_TYPE_EMAIL     );
+                pValuesArr[16] = BIB_RESSTR(ST_TYPE_WWW           );
+                pValuesArr[17] = BIB_RESSTR(ST_TYPE_CUSTOM1       );
+                pValuesArr[18] = BIB_RESSTR(ST_TYPE_CUSTOM2       );
+                pValuesArr[19] = BIB_RESSTR(ST_TYPE_CUSTOM3       );
+                pValuesArr[20] = BIB_RESSTR(ST_TYPE_CUSTOM4       );
+                pValuesArr[21] = BIB_RESSTR(ST_TYPE_CUSTOM5       );
+                // empty string if an invalid value no values is set
+                pValuesArr[TYPE_COUNT] = OUString();
+
+                aAny.setValue(&aValues, cppu::UnoType<uno::Sequence<OUString>>::get());
+
+                xPropSet->setPropertyValue("StringItemList", aAny);
+
+                sal_Bool bTrue = sal_True;
+                aAny.setValue( &bTrue, cppu::UnoType<bool>::get() );
+                xPropSet->setPropertyValue( "Dropdown", aAny );
+            }
+
             Reference< XFormComponent >  aFormComp(xModel,UNO_QUERY );
 
             Reference< XNameContainer >  xNameCont( m_xForm, UNO_QUERY );
diff --git a/extensions/source/bibliography/general.cxx b/extensions/source/bibliography/general.cxx
index 2babb13..057c01e 100644
--- a/extensions/source/bibliography/general.cxx
+++ b/extensions/source/bibliography/general.cxx
@@ -23,7 +23,6 @@
 #include <com/sun/star/sdb/XColumn.hpp>
 #include <com/sun/star/sdb/CommandType.hpp>
 #include <com/sun/star/sdbcx/XColumnsSupplier.hpp>
-#include <com/sun/star/form/ListSourceType.hpp>
 #include <com/sun/star/awt/XWindow.hpp>
 #include <toolkit/helper/vclunohelper.hxx>
 #include <cppuhelper/implbase1.hxx>
@@ -222,29 +221,6 @@ BibGeneralPage::BibGeneralPage(Window* pParent, BibDataManager* pMan):
     aControlParentWin.SetHelpId(HID_BIB_CONTROL_PARENT);
     aStdSize = GetOutputSizePixel();
 
-    aBibTypeArr[0] = BIB_RESSTR(ST_TYPE_ARTICLE);
-    aBibTypeArr[1] = BIB_RESSTR(ST_TYPE_BOOK);
-    aBibTypeArr[2] = BIB_RESSTR(ST_TYPE_BOOKLET);
-    aBibTypeArr[3] = BIB_RESSTR(ST_TYPE_CONFERENCE);
-    aBibTypeArr[4] = BIB_RESSTR(ST_TYPE_INBOOK );
-    aBibTypeArr[5] = BIB_RESSTR(ST_TYPE_INCOLLECTION);
-    aBibTypeArr[6] = BIB_RESSTR(ST_TYPE_INPROCEEDINGS);
-    aBibTypeArr[7] = BIB_RESSTR(ST_TYPE_JOURNAL       );
-    aBibTypeArr[8] = BIB_RESSTR(ST_TYPE_MANUAL    );
-    aBibTypeArr[9] = BIB_RESSTR(ST_TYPE_MASTERSTHESIS);
-    aBibTypeArr[10] = BIB_RESSTR(ST_TYPE_MISC      );
-    aBibTypeArr[11] = BIB_RESSTR(ST_TYPE_PHDTHESIS );
-    aBibTypeArr[12] = BIB_RESSTR(ST_TYPE_PROCEEDINGS   );
-    aBibTypeArr[13] = BIB_RESSTR(ST_TYPE_TECHREPORT    );
-    aBibTypeArr[14] = BIB_RESSTR(ST_TYPE_UNPUBLISHED   );
-    aBibTypeArr[15] = BIB_RESSTR(ST_TYPE_EMAIL     );
-    aBibTypeArr[16] = BIB_RESSTR(ST_TYPE_WWW           );
-    aBibTypeArr[17] = BIB_RESSTR(ST_TYPE_CUSTOM1       );
-    aBibTypeArr[18] = BIB_RESSTR(ST_TYPE_CUSTOM2       );
-    aBibTypeArr[19] = BIB_RESSTR(ST_TYPE_CUSTOM3       );
-    aBibTypeArr[20] = BIB_RESSTR(ST_TYPE_CUSTOM4       );
-    aBibTypeArr[21] = BIB_RESSTR(ST_TYPE_CUSTOM5       );
-
     FreeResource();
 
     InitFixedTexts();
@@ -461,7 +437,7 @@ uno::Reference< awt::XControlModel >  BibGeneralPage::AddXControl(
     uno::Reference< awt::XControlModel >  xCtrModel;
     try
     {
-        bool bTypeListBox = sTypeColumnName == rName;
+        const bool bTypeListBox = sTypeColumnName == rName;
         xCtrModel = pDatMan->loadControlModel(rName, bTypeListBox);
         if ( xCtrModel.is() )
         {
@@ -471,9 +447,17 @@ uno::Reference< awt::XControlModel >  BibGeneralPage::AddXControl(
             {
                 uno::Reference< beans::XPropertySetInfo >  xPropInfo = xPropSet->getPropertySetInfo();
 
-                uno::Any aAny = xPropSet->getPropertyValue( "DefaultControl" );
                 OUString aControlName;
-                aAny >>= aControlName;
+                if (bTypeListBox)
+                {
+                    aControlName = "com.sun.star.form.control.ListBox";
+                    xLBModel = Reference< form::XBoundComponent >(xCtrModel, UNO_QUERY);
+                }
+                else
+                {
+                    uno::Any aAny = xPropSet->getPropertyValue( "DefaultControl" );
+                    aAny >>= aControlName;
+                }
 
                 OUString uProp("HelpURL");
                 if(xPropInfo->hasPropertyByName(uProp))
@@ -484,44 +468,6 @@ uno::Reference< awt::XControlModel >  BibGeneralPage::AddXControl(
                     xPropSet->setPropertyValue( uProp, makeAny( sId ) );
                 }
 
-                if(bTypeListBox)
-                {
-                    //uno::Reference< beans::XPropertySet >  xPropSet(xControl, UNO_QUERY);
-                    aAny <<= (sal_Int16)1;
-                    xPropSet->setPropertyValue("BoundColumn", aAny);
-                    ListSourceType eSet = ListSourceType_VALUELIST;
-                    aAny.setValue( &eSet, ::cppu::UnoType<ListSourceType>::get() );
-                    xPropSet->setPropertyValue("ListSourceType", aAny);
-
-                    uno::Sequence<OUString> aListSource(TYPE_COUNT);
-                    OUString* pListSourceArr = aListSource.getArray();
-                    //pListSourceArr[0] = "select TypeName, TypeIndex from TypeNms";
-                    for(sal_Int32 i = 0; i < TYPE_COUNT; ++i)
-                        pListSourceArr[i] = OUString::number(i);
-                    aAny.setValue(&aListSource, ::getCppuType((uno::Sequence<OUString>*)0));
-
-                    xPropSet->setPropertyValue("ListSource", aAny);
-
-                    uno::Sequence<OUString> aValues(TYPE_COUNT + 1);
-                    OUString* pValuesArr = aValues.getArray();
-                    for(sal_uInt16 j = 0; j < TYPE_COUNT; j++)
-                        pValuesArr[j]  = aBibTypeArr[j];
-                    // empty string if an invalid value no values is set
-                    pValuesArr[TYPE_COUNT] = OUString();
-
-                    aAny.setValue(&aValues, ::getCppuType((uno::Sequence<OUString>*)0));
-
-                    xPropSet->setPropertyValue("StringItemList", aAny);
-
-                    sal_Bool bTrue = sal_True;
-                    aAny.setValue( &bTrue, ::getBooleanCppuType() );
-                    xPropSet->setPropertyValue( "Dropdown", aAny );
-
-                    aControlName = "com.sun.star.form.control.ListBox";
-                    xLBModel = Reference< form::XBoundComponent >(xCtrModel, UNO_QUERY);
-
-                }
-
                 uno::Reference< XComponentContext > xContext = comphelper::getProcessComponentContext();
                 uno::Reference< awt::XControl > xControl( xContext->getServiceManager()->createInstanceWithContext(aControlName, xContext), UNO_QUERY);
                 if ( xControl.is() )
diff --git a/extensions/source/bibliography/general.hxx b/extensions/source/bibliography/general.hxx
index 526319f..14e44fb 100644
--- a/extensions/source/bibliography/general.hxx
+++ b/extensions/source/bibliography/general.hxx
@@ -102,7 +102,6 @@ class BibGeneralPage: public BibGeneralPageBaseClass, public BibTabPage
     Size                aStdSize;
     Point               aBasePos;
 
-    OUString            aBibTypeArr[ TYPE_COUNT ];
     OUString            sErrorPrefix;
     OUString            sTableErrorString;
 
diff --git a/extensions/source/bibliography/sections.hrc b/extensions/source/bibliography/sections.hrc
index 9d04056..c5e9516 100644
--- a/extensions/source/bibliography/sections.hrc
+++ b/extensions/source/bibliography/sections.hrc
@@ -59,27 +59,4 @@
 #define FL_2                35
 #define FL_3                36
 
-#define ST_TYPE_ARTICLE                 40
-#define ST_TYPE_BOOK                    41
-#define ST_TYPE_BOOKLET                 42
-#define ST_TYPE_CONFERENCE              43
-#define ST_TYPE_INBOOK                  44
-#define ST_TYPE_INCOLLECTION            45
-#define ST_TYPE_INPROCEEDINGS           46
-#define ST_TYPE_JOURNAL                 47
-#define ST_TYPE_MANUAL                  48
-#define ST_TYPE_MASTERSTHESIS           49
-#define ST_TYPE_MISC                    50
-#define ST_TYPE_PHDTHESIS               51
-#define ST_TYPE_PROCEEDINGS             52
-#define ST_TYPE_TECHREPORT              53
-#define ST_TYPE_UNPUBLISHED             54
-#define ST_TYPE_EMAIL                   55
-#define ST_TYPE_WWW                     56
-#define ST_TYPE_CUSTOM1                 57
-#define ST_TYPE_CUSTOM2                 58
-#define ST_TYPE_CUSTOM3                 59
-#define ST_TYPE_CUSTOM4                 60
-#define ST_TYPE_CUSTOM5                 61
-
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/extensions/source/bibliography/sections.src b/extensions/source/bibliography/sections.src
index d6fbac8..92fb2cc 100644
--- a/extensions/source/bibliography/sections.src
+++ b/extensions/source/bibliography/sections.src
@@ -244,94 +244,6 @@ TabPage RID_TP_GENERAL
     {
         Text [ en-US ] = "The following column names could not be assigned:\n";
     };
-    String ST_TYPE_ARTICLE
-    {
-        Text [ en-US ] = "Article";
-    };
-    String ST_TYPE_BOOK
-    {
-        Text [ en-US ] = "Book";
-    };
-    String ST_TYPE_BOOKLET
-    {
-        Text [ en-US ] = "Brochures";
-    };
-    String ST_TYPE_CONFERENCE
-    {
-        Text [ en-US ] = "Conference proceedings";
-    };
-    String ST_TYPE_INBOOK
-    {
-        Text [ en-US ] = "Book excerpt";
-    };
-    String ST_TYPE_INCOLLECTION
-    {
-        Text [ en-US ] = "Book excerpt with title";
-    };
-    String ST_TYPE_INPROCEEDINGS
-    {
-        Text [ en-US ] = "Conference proceedings";
-    };
-    String ST_TYPE_JOURNAL
-    {
-        Text [ en-US ] = "Journal";
-    };
-    String ST_TYPE_MANUAL
-    {
-        Text [ en-US ] = "Techn. documentation";
-    };
-    String ST_TYPE_MASTERSTHESIS
-    {
-        Text [ en-US ] = "Thesis";
-    };
-    String ST_TYPE_MISC
-    {
-        Text [ en-US ] = "Miscellaneous";
-    };
-    String ST_TYPE_PHDTHESIS
-    {
-        Text [ en-US ] = "Dissertation";
-    };
-    String ST_TYPE_PROCEEDINGS
-    {
-        Text [ en-US ] = "Conference proceedings";
-    };
-    String ST_TYPE_TECHREPORT
-    {
-        Text [ en-US ] = "Research report";
-    };
-    String ST_TYPE_UNPUBLISHED
-    {
-        Text [ en-US ] = "Unpublished";
-    };
-    String ST_TYPE_EMAIL
-    {
-        Text [ en-US ] = "e-mail";
-    };
-    String ST_TYPE_WWW
-    {
-        Text [ en-US ] = "WWW document";
-    };
-    String ST_TYPE_CUSTOM1
-    {
-        Text [ en-US ] = "User-defined1";
-    };
-    String ST_TYPE_CUSTOM2
-    {
-        Text [ en-US ] = "User-defined2";
-    };
-    String ST_TYPE_CUSTOM3
-    {
-        Text [ en-US ] = "User-defined3";
-    };
-    String ST_TYPE_CUSTOM4
-    {
-        Text [ en-US ] = "User-defined4";
-    };
-    String ST_TYPE_CUSTOM5
-    {
-        Text [ en-US ] = "User-defined5";
-    };
     Text [ en-US ] = "General";
 };
 
@@ -461,4 +373,93 @@ String ST_CUSTOM5
     Text [ en-US ] = "User-defined field ~5";
 };
 
+String ST_TYPE_ARTICLE
+{
+    Text [ en-US ] = "Article";
+};
+String ST_TYPE_BOOK
+{
+    Text [ en-US ] = "Book";
+};
+String ST_TYPE_BOOKLET
+{
+    Text [ en-US ] = "Brochures";
+};
+String ST_TYPE_CONFERENCE
+{
+    Text [ en-US ] = "Conference proceedings";
+};
+String ST_TYPE_INBOOK
+{
+    Text [ en-US ] = "Book excerpt";
+};
+String ST_TYPE_INCOLLECTION
+{
+    Text [ en-US ] = "Book excerpt with title";
+};
+String ST_TYPE_INPROCEEDINGS
+{
+    Text [ en-US ] = "Conference proceedings";
+};
+String ST_TYPE_JOURNAL
+{
+    Text [ en-US ] = "Journal";
+};
+String ST_TYPE_MANUAL
+{
+    Text [ en-US ] = "Techn. documentation";
+};
+String ST_TYPE_MASTERSTHESIS
+{
+    Text [ en-US ] = "Thesis";
+};
+String ST_TYPE_MISC
+{
+    Text [ en-US ] = "Miscellaneous";
+};
+String ST_TYPE_PHDTHESIS
+{
+    Text [ en-US ] = "Dissertation";
+};
+String ST_TYPE_PROCEEDINGS
+{
+    Text [ en-US ] = "Conference proceedings";
+};
+String ST_TYPE_TECHREPORT
+{
+    Text [ en-US ] = "Research report";
+};
+String ST_TYPE_UNPUBLISHED
+{
+    Text [ en-US ] = "Unpublished";
+};
+String ST_TYPE_EMAIL
+{
+    Text [ en-US ] = "e-mail";
+};
+String ST_TYPE_WWW
+{
+    Text [ en-US ] = "WWW document";
+};
+String ST_TYPE_CUSTOM1
+{
+    Text [ en-US ] = "User-defined1";
+};
+String ST_TYPE_CUSTOM2
+{
+    Text [ en-US ] = "User-defined2";
+};
+String ST_TYPE_CUSTOM3
+{
+    Text [ en-US ] = "User-defined3";
+};
+String ST_TYPE_CUSTOM4
+{
+    Text [ en-US ] = "User-defined4";
+};
+String ST_TYPE_CUSTOM5
+{
+    Text [ en-US ] = "User-defined5";
+};
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */


More information about the Libreoffice-commits mailing list