[Libreoffice-commits] core.git: Branch 'feature/cmis' - include/sfx2 sfx2/source sfx2/uiconfig

Cao Cuong Ngo cao.cuong.ngo at gmail.com
Fri Aug 23 12:59:33 PDT 2013


 include/sfx2/dinfdlg.hxx       |   34 +++-
 sfx2/source/dialog/dinfdlg.cxx |  309 +++++++++++++++++++++++++----------------
 sfx2/uiconfig/ui/cmisline.ui   |   18 +-
 3 files changed, 231 insertions(+), 130 deletions(-)

New commits:
commit a54b7340e89c2a5d3ff4acf88fae5bf0ad63fd36
Author: Cao Cuong Ngo <cao.cuong.ngo at gmail.com>
Date:   Fri Aug 23 19:41:01 2013 +0200

    CMIS properties: make multiple values
    
    Change-Id: I0d5ed8fbfd113940aadc117bcc7cf751be246071

diff --git a/include/sfx2/dinfdlg.hxx b/include/sfx2/dinfdlg.hxx
index e9fd2a2..11fd2f6 100644
--- a/include/sfx2/dinfdlg.hxx
+++ b/include/sfx2/dinfdlg.hxx
@@ -508,6 +508,29 @@ public:
     static SfxTabPage*  Create( Window* pParent, const SfxItemSet& );
 };
 
+struct CmisValue : public VclBuilderContainer
+{
+    Edit*   m_aValueEdit;
+
+    CmisValue( Window* pParent, const OUString& aStr );
+};
+
+struct CmisDateTime : public VclBuilderContainer
+{
+    DateField*  m_aDateField;
+    TimeField*  m_aTimeField;
+
+    CmisDateTime( Window* pParent, const ::com::sun::star::util::DateTime& aDateTime );
+};
+
+struct CmisYesNo : public VclBuilderContainer
+{
+    RadioButton* m_aYesButton;
+    RadioButton* m_aNoButton;
+
+    CmisYesNo( Window* pParent, bool bValue);
+};
+
 // struct CmisPropertyLine ---------------------------------------------
 
 struct CmisPropertyLine : public VclBuilderContainer
@@ -521,14 +544,13 @@ struct CmisPropertyLine : public VclBuilderContainer
     bool                          m_bOpenChoice;
     FixedText*                    m_aName;
     FixedText*                    m_aType;
-    Edit*                         m_aValueEdit;
-    DateField*                    m_aDateField;
-    TimeField*                    m_aTimeField;
-    RadioButton*                  m_aYesButton;
-    RadioButton*                  m_aNoButton;
-
+    std::vector< CmisValue* >     m_aValues;
+    std::vector< CmisDateTime* >  m_aDateTimes;
+    std::vector< CmisYesNo* >     m_aYesNos;
+    sal_Int32                     m_nNumValue;
     long getItemHeight() const;
     CmisPropertyLine( Window* pParent );
+    ~CmisPropertyLine();
 };
 
 // class CmisPropertiesWindow ------------------------------------------
diff --git a/sfx2/source/dialog/dinfdlg.cxx b/sfx2/source/dialog/dinfdlg.cxx
index 1c1b3d0..e00f36d 100644
--- a/sfx2/source/dialog/dinfdlg.cxx
+++ b/sfx2/source/dialog/dinfdlg.cxx
@@ -2106,21 +2106,81 @@ SfxTabPage* SfxCustomPropertiesPage::Create( Window* pParent, const SfxItemSet&
     return new SfxCustomPropertiesPage( pParent, rItemSet );
 }
 
+CmisValue::CmisValue( Window* pParent, const OUString& aStr )
+{
+    m_pUIBuilder = new VclBuilder( pParent, getUIRootDir(), "sfx/ui/cmisline.ui");
+    get( m_aValueEdit, "value");
+    m_aValueEdit->Show( true );
+    m_aValueEdit->SetText( aStr );
+}
+
+CmisDateTime::CmisDateTime( Window* pParent, const util::DateTime& aDateTime )
+{
+    m_pUIBuilder = new VclBuilder( pParent, getUIRootDir(), "sfx/ui/cmisline.ui");
+    get( m_aDateField, "date");
+    get( m_aTimeField, "time");
+    m_aDateField->Show( true );
+    m_aTimeField->Show( true );
+    m_aDateField->SetDate( Date( aDateTime.Day, aDateTime.Month, aDateTime.Year ) );
+    m_aTimeField->SetTime( Time( aDateTime.Hours, aDateTime.Minutes,
+                           aDateTime.Seconds, aDateTime.NanoSeconds ) );
+}
+
+CmisYesNo::CmisYesNo( Window* pParent, bool bValue )
+{
+    m_pUIBuilder = new VclBuilder( pParent, getUIRootDir(), "sfx/ui/cmisline.ui");
+    get( m_aYesButton, "yes");
+    get( m_aNoButton, "no");
+    m_aYesButton->Show( true );
+    m_aNoButton->Show( true );
+    if ( bValue )
+        m_aYesButton->Check( );
+    else
+        m_aNoButton->Check( );
+}
+
 // struct CmisPropertyLine ---------------------------------------------
 CmisPropertyLine::CmisPropertyLine( Window* pParent )
 {
+    m_nNumValue = 1;
     m_sId = OUString("");
     m_sType = CMIS_TYPE_STRING;
     m_pUIBuilder = new VclBuilder( pParent, getUIRootDir(), "sfx/ui/cmisline.ui");
     get( m_pFrame, "CmisFrame" );
-    m_pFrame->Enable();
     get( m_aName, "name" );
     get( m_aType, "type" );
-    get( m_aValueEdit, "value" );
-    get( m_aYesButton, "yes" );
-    get( m_aNoButton, "no" );
-    get( m_aDateField, "date" );
-    get( m_aTimeField, "time" );
+    m_pFrame->Enable();
+}
+
+CmisPropertyLine::~CmisPropertyLine( )
+{
+    std::vector< CmisValue* >::iterator pIter;
+    for ( pIter = m_aValues.begin();
+          pIter != m_aValues.end(); ++pIter )
+    {
+        CmisValue* pValue = *pIter;
+        delete pValue;
+    }
+    m_aValues.clear();
+
+    std::vector< CmisYesNo* >::iterator pIterYesNo;
+    for ( pIterYesNo = m_aYesNos.begin();
+          pIterYesNo != m_aYesNos.end(); ++pIterYesNo )
+    {
+        CmisYesNo* pYesNo = *pIterYesNo;
+        delete pYesNo;
+    }
+    m_aYesNos.clear();
+
+    std::vector< CmisDateTime* >::iterator pIterDateTime;
+    for ( pIterDateTime = m_aDateTimes.begin();
+          pIterDateTime != m_aDateTimes.end(); ++pIterDateTime )
+    {
+        CmisDateTime* pDateTime = *pIterDateTime;
+        delete pDateTime;
+    }
+    m_aDateTimes.clear();
+
 }
 
 long CmisPropertyLine::getItemHeight() const
@@ -2159,7 +2219,12 @@ void CmisPropertiesWindow::ClearAllLines()
 
 sal_uInt16 CmisPropertiesWindow::GetLineCount() const
 {
-    return m_aCmisPropertiesLines.size( );
+    sal_uInt16 nCount = 0;
+    std::vector< CmisPropertyLine* >::const_iterator pIter;
+    for ( pIter = m_aCmisPropertiesLines.begin();
+          pIter != m_aCmisPropertiesLines.end(); ++pIter )
+        nCount += ( (*pIter)->m_nNumValue + 1 );
+    return nCount;
 }
 
 void CmisPropertiesWindow::AddLine( const OUString& sId, const OUString& sName,
@@ -2176,62 +2241,80 @@ void CmisPropertiesWindow::AddLine( const OUString& sId, const OUString& sName,
     pNewLine->m_bMultiValued = bMultiValued;
     pNewLine->m_bOpenChoice = bOpenChoice;
 
-    pNewLine->m_aValueEdit->SetReadOnly( !bUpdatable );
-    pNewLine->m_aDateField->SetReadOnly( !bUpdatable );
-    pNewLine->m_aTimeField->SetReadOnly( !bUpdatable );
-    pNewLine->m_aYesButton->Enable( bUpdatable );
-    pNewLine->m_aNoButton->Enable( bUpdatable );
-
-    pNewLine->m_aName->SetText( sName );
-
-    OUString sValue;
     if ( sType == CMIS_TYPE_INTEGER )
     {
-        Sequence< sal_Int64 > nTmpValue;
-        rAny >>= nTmpValue;
+        Sequence< sal_Int64 > seqValue;
+        rAny >>= seqValue;
         sal_uInt32 nIndex = m_aNumberFormatter.GetFormatIndex( NF_NUMBER_SYSTEM );
-        m_aNumberFormatter.GetInputLineString( nTmpValue[0], nIndex, sValue );
+        sal_Int32 m_nNumValue = seqValue.getLength( );
+        for ( sal_Int32 i = 0; i < m_nNumValue; ++i )
+        {
+            OUString sValue;
+            m_aNumberFormatter.GetInputLineString( seqValue[i], nIndex, sValue );
+            CmisValue* pValue = new CmisValue( m_pBox, sValue );
+            pValue->m_aValueEdit->SetReadOnly( !bUpdatable );
+            pNewLine->m_aValues.push_back( pValue );
+        }
     }
     else if ( sType == CMIS_TYPE_DECIMAL )
     {
-        Sequence< double > dTmpValue;
-        rAny >>= dTmpValue;
+        Sequence< double > seqValue;
+        rAny >>= seqValue;
         sal_uInt32 nIndex = m_aNumberFormatter.GetFormatIndex( NF_NUMBER_SYSTEM );
-        m_aNumberFormatter.GetInputLineString( dTmpValue[0], nIndex, sValue );
+        sal_Int32 m_nNumValue = seqValue.getLength( );
+        for ( sal_Int32 i = 0; i < m_nNumValue; ++i )
+        {
+            OUString sValue;
+            m_aNumberFormatter.GetInputLineString( seqValue[i], nIndex, sValue );
+            CmisValue* pValue = new CmisValue( m_pBox, sValue );
+            pValue->m_aValueEdit->SetReadOnly( !bUpdatable );
+            pNewLine->m_aValues.push_back( pValue );
+        }
+
     }
     else if ( sType == CMIS_TYPE_BOOL )
     {
-        Sequence< bool > bTmpValue;
-        rAny >>= bTmpValue;
-        if ( bTmpValue[0] )
-            pNewLine->m_aYesButton->Check();
-        else
-            pNewLine->m_aNoButton->Check();
+        Sequence< bool > seqValue;
+        rAny >>= seqValue;
+        sal_Int32 m_nNumValue = seqValue.getLength( );
+        for ( sal_Int32 i = 0; i < m_nNumValue; ++i )
+        {
+            CmisYesNo* pYesNo = new CmisYesNo( m_pBox, seqValue[i] );
+            pYesNo->m_aYesButton->Enable( bUpdatable );
+            pYesNo->m_aNoButton->Enable( bUpdatable );
+            pNewLine->m_aYesNos.push_back( pYesNo );
+        }
     }
     else if ( sType == CMIS_TYPE_STRING )
     {
         Sequence< OUString > seqValue;
         rAny >>= seqValue;
-        sValue = seqValue[0];
+        sal_Int32 m_nNumValue = seqValue.getLength( );
+        for ( sal_Int32 i = 0; i < m_nNumValue; ++i )
+        {
+            CmisValue* pValue = new CmisValue( m_pBox, seqValue[i] );
+            pValue->m_aValueEdit->SetReadOnly( !bUpdatable );
+            pNewLine->m_aValues.push_back( pValue );
+        }
     }
     else if ( sType == CMIS_TYPE_DATETIME )
     {
-        Sequence< util::DateTime > aTmpDateTime;
-        rAny >>= aTmpDateTime;
-        pNewLine->m_aDateField->SetDate( Date( aTmpDateTime[0].Day, aTmpDateTime[0].Month, aTmpDateTime[0].Year ) );
-        pNewLine->m_aTimeField->SetTime( Time( aTmpDateTime[0].Hours, aTmpDateTime[0].Minutes, aTmpDateTime[0].Seconds, aTmpDateTime[0].NanoSeconds ) );
+        Sequence< util::DateTime > seqValue;
+        rAny >>= seqValue;
+        sal_Int32 m_nNumValue = seqValue.getLength( );
+        for ( sal_Int32 i = 0; i < m_nNumValue; ++i )
+        {
+            CmisDateTime* pDateTime = new CmisDateTime( m_pBox, seqValue[i]);
+            pDateTime->m_aDateField->SetReadOnly( !bUpdatable );
+            pDateTime->m_aTimeField->SetReadOnly( !bUpdatable );
+            pNewLine->m_aDateTimes.push_back( pDateTime );
+        }
 
     }
-
-    pNewLine->m_aValueEdit->SetText( sValue );
+    pNewLine->m_aName->SetText( sName );
+    pNewLine->m_aName->Show( true );
     pNewLine->m_aType->SetText( sType );
-    pNewLine->m_aValueEdit->Show( CMIS_TYPE_STRING == sType ||
-                                 CMIS_TYPE_INTEGER == sType ||
-                                 CMIS_TYPE_DECIMAL == sType );
-    pNewLine->m_aDateField->Show( CMIS_TYPE_DATETIME  == sType );
-    pNewLine->m_aTimeField->Show( CMIS_TYPE_DATETIME  == sType );
-    pNewLine->m_aYesButton->Show( CMIS_TYPE_BOOL == sType );
-    pNewLine->m_aNoButton->Show( CMIS_TYPE_BOOL == sType );
+    pNewLine->m_aType->Show( true );
 
     m_aCmisPropertiesLines.push_back( pNewLine );
 }
@@ -2263,41 +2346,82 @@ Sequence< document::CmisProperty > CmisPropertiesWindow::GetCmisProperties() con
         {
             aPropertiesSeq[i].Name = sPropertyName;
             OUString sType = pLine->m_aType->GetText( );
-            if ( CMIS_TYPE_INTEGER == sType ||
-                 CMIS_TYPE_DECIMAL == sType )
+            if ( CMIS_TYPE_DECIMAL == sType )
             {
-                double nValue = 0;
                 sal_uInt32 nIndex = const_cast< SvNumberFormatter& >(
                     m_aNumberFormatter ).GetFormatIndex( NF_NUMBER_SYSTEM );
-                sal_Bool bIsNum = const_cast< SvNumberFormatter& >( m_aNumberFormatter ).
-                    IsNumberFormat( pLine->m_aValueEdit->GetText(), nIndex, nValue );
-                Sequence< double > seqValue( 1 );
-                seqValue[0] = nValue;
-                if ( bIsNum )
-                    aPropertiesSeq[i].Value <<= makeAny( seqValue );
+                Sequence< double > seqValue( pLine->m_aValues.size( ) );
+                sal_Int32 k = 0;
+                for ( std::vector< CmisValue*>::const_iterator it = pLine->m_aValues.begin();
+                    it != pLine->m_aValues.end(); ++it, ++k)
+                {
+                    double dValue = 0.0;
+                    OUString sValue( (*it)->m_aValueEdit->GetText() );
+                    sal_Bool bIsNum = const_cast< SvNumberFormatter& >( m_aNumberFormatter ).
+                    IsNumberFormat( sValue, nIndex, dValue );
+                    if ( bIsNum )
+                        seqValue[k] = dValue;
+                }
+                aPropertiesSeq[i].Value <<= makeAny( seqValue );
+            }
+            else if ( CMIS_TYPE_INTEGER == sType )
+            {
+                sal_uInt32 nIndex = const_cast< SvNumberFormatter& >(
+                    m_aNumberFormatter ).GetFormatIndex( NF_NUMBER_SYSTEM );
+                Sequence< sal_Int64 > seqValue( pLine->m_aValues.size( ) );
+                sal_Int32 k = 0;
+                for ( std::vector< CmisValue*>::const_iterator it = pLine->m_aValues.begin();
+                    it != pLine->m_aValues.end(); ++it, ++k)
+                {
+                    double dValue = 0;
+                    OUString sValue( (*it)->m_aValueEdit->GetText() );
+                    sal_Bool bIsNum = const_cast< SvNumberFormatter& >( m_aNumberFormatter ).
+                    IsNumberFormat( sValue, nIndex, dValue );
+                    if ( bIsNum )
+                        seqValue[k] = (sal_Int64) dValue;
+                }
+                aPropertiesSeq[i].Value <<= makeAny( seqValue );
             }
             else if ( CMIS_TYPE_BOOL == sType )
             {
-                bool bValue = pLine->m_aYesButton->IsChecked();
-                Sequence< bool > seqValue( 1 );
-                seqValue[0] = bValue;
+                Sequence< bool > seqValue( pLine->m_aYesNos.size( ) );
+                sal_Int32 k = 0;
+                for ( std::vector< CmisYesNo*>::const_iterator it = pLine->m_aYesNos.begin();
+                    it != pLine->m_aYesNos.end(); ++it, ++k)
+                {
+                    bool bValue = (*it)->m_aYesButton->IsChecked();
+                    seqValue[k] = bValue;
+                }
                 aPropertiesSeq[i].Value <<= makeAny( seqValue );
+
             }
             else if ( CMIS_TYPE_DATETIME == sType )
             {
-                Date aTmpDate = pLine->m_aDateField->GetDate();
-                Time aTmpTime = pLine->m_aTimeField->GetTime();
-                util::DateTime aDateTime(aTmpTime.GetNanoSec(), aTmpTime.GetSec(), aTmpTime.GetMin(), aTmpTime.GetHour(),
-                        aTmpDate.GetDay(), aTmpDate.GetMonth(), aTmpDate.GetYear() );
-                Sequence< util::DateTime > seqValue( 1 );
-                seqValue[0] = aDateTime;
-                aPropertiesSeq[i].Value <<= seqValue;
+                Sequence< util::DateTime > seqValue( pLine->m_aDateTimes.size( ) );
+                sal_Int32 k = 0;
+                for ( std::vector< CmisDateTime*>::const_iterator it = pLine->m_aDateTimes.begin();
+                    it != pLine->m_aDateTimes.end(); ++it, ++k)
+                {
+                    Date aTmpDate = (*it)->m_aDateField->GetDate();
+                    Time aTmpTime = (*it)->m_aTimeField->GetTime();
+                    util::DateTime aDateTime( aTmpTime.GetNanoSec(), aTmpTime.GetSec(),
+                                              aTmpTime.GetMin(), aTmpTime.GetHour(),
+                                              aTmpDate.GetDay(), aTmpDate.GetMonth(),
+                                              aTmpDate.GetYear() );
+                    seqValue[k] = aDateTime;
+                }
+                aPropertiesSeq[i].Value <<= makeAny( seqValue );
             }
             else
             {
-                OUString sValue( pLine->m_aValueEdit->GetText() );
-                Sequence< OUString > seqValue( 1 );
-                seqValue[0] = sValue;
+                Sequence< OUString > seqValue( pLine->m_aValues.size( ) );
+                sal_Int32 k = 0;
+                for ( std::vector< CmisValue*>::const_iterator it = pLine->m_aValues.begin();
+                    it != pLine->m_aValues.end(); ++it, ++k)
+                {
+                    OUString sValue( (*it)->m_aValueEdit->GetText() );
+                    seqValue[k] = sValue;
+                }
                 aPropertiesSeq[i].Value <<= makeAny( seqValue );
             }
         }
@@ -2350,8 +2474,6 @@ void CmisPropertiesControl::setScrollRange()
 {
     sal_Int32 nScrollOffset = m_pPropertiesWin.GetItemHeight();
     sal_Int32 nVisibleItems = m_rScrolledWindow.getVisibleChildSize().Height() / nScrollOffset;
-    if ( !nVisibleItems )
-        nVisibleItems =  m_pPropertiesWin.GetLineCount() / 2;
     m_rVertScroll.SetPageSize( nVisibleItems - 1 );
     m_rVertScroll.SetVisibleSize( nVisibleItems );
     m_rVertScroll.Scroll();
@@ -2404,33 +2526,9 @@ sal_Bool SfxCmisPropertiesPage::FillItemSet( SfxItemSet& rSet )
 
         std::vector< document::CmisProperty > changedProps;
         for ( sal_Int32 i = 0; i< aNewProps.getLength( ); ++i )
-        if ( aOldProps[i].Updatable )
+        if ( aOldProps[i].Updatable && !aNewProps[i].Id.isEmpty( ) )
         {
-            if ( aOldProps[i].Type == CMIS_TYPE_STRING )
-            {
-                Sequence< OUString > oldValue;
-                aOldProps[i].Value >>= oldValue;
-                Sequence< OUString > newValue;
-                aNewProps[i].Value >>= newValue;
-                if ( !aNewProps[i].Id.isEmpty() && aNewProps[i].Updatable && oldValue != newValue )
-                {
-                    modifiedNum++;
-                    changedProps.push_back( aNewProps[i] );
-                }
-            }
-            else if ( aOldProps[i].Type == CMIS_TYPE_BOOL )
-            {
-                Sequence< bool > oldValue;
-                aOldProps[i].Value >>= oldValue;
-                Sequence< bool > newValue;
-                aNewProps[i].Value >>= newValue;
-                if ( !aNewProps[i].Id.isEmpty() && aNewProps[i].Updatable && oldValue != newValue )
-                {
-                    modifiedNum++;
-                    changedProps.push_back( aNewProps[i] );
-                }
-            }
-            else if ( aOldProps[i].Type == CMIS_TYPE_DATETIME )
+            if ( aOldProps[i].Type == CMIS_TYPE_DATETIME )
             {
                 Sequence< util::DateTime > oldValue;
                 aOldProps[i].Value >>= oldValue;
@@ -2443,35 +2541,16 @@ sal_Bool SfxCmisPropertiesPage::FillItemSet( SfxItemSet& rSet )
                 }
                 Sequence< util::DateTime > newValue;
                 aNewProps[i].Value >>= newValue;
-                if ( !aNewProps[i].Id.isEmpty() && aNewProps[i].Updatable && oldValue != newValue )
-                {
-                    modifiedNum++;
-                    changedProps.push_back( aNewProps[i] );
-                }
-            }
-            else if ( aOldProps[i].Type == CMIS_TYPE_INTEGER )
-            {
-                Sequence< sal_Int64 > oldValue;
-                aOldProps[i].Value >>= oldValue;
-                Sequence< sal_Int64 > newValue;
-                aNewProps[i].Value >>= newValue;
-                if ( !aNewProps[i].Id.isEmpty() && aNewProps[i].Updatable && oldValue != newValue )
+                if ( oldValue != newValue )
                 {
                     modifiedNum++;
                     changedProps.push_back( aNewProps[i] );
                 }
             }
-            else if ( aOldProps[i].Type == CMIS_TYPE_DECIMAL )
+            else if ( aOldProps[i].Value != aNewProps[i].Value )
             {
-                Sequence< double > oldValue;
-                aOldProps[i].Value >>= oldValue;
-                Sequence< double > newValue;
-                aNewProps[i].Value >>= newValue;
-                if ( !aNewProps[i].Id.isEmpty() && aNewProps[i].Updatable && oldValue != newValue )
-                {
-                    modifiedNum++;
-                    changedProps.push_back( aNewProps[i] );
-                }
+                modifiedNum++;
+                changedProps.push_back( aNewProps[i] );
             }
         }
         Sequence< document::CmisProperty> aModifiedProps( modifiedNum );
diff --git a/sfx2/uiconfig/ui/cmisline.ui b/sfx2/uiconfig/ui/cmisline.ui
index 3f5b498..bfdf7b0 100644
--- a/sfx2/uiconfig/ui/cmisline.ui
+++ b/sfx2/uiconfig/ui/cmisline.ui
@@ -6,6 +6,7 @@
     <property name="can_focus">False</property>
     <property name="border_width">6</property>
     <property name="label_xalign">0</property>
+    <property name="label_yalign">0</property>
     <property name="shadow_type">none</property>
     <child>
       <object class="GtkAlignment" id="alignment1">
@@ -23,9 +24,9 @@
               <object class="GtkLabel" id="name">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
-                <property name="xpad">95</property>
-                <property name="label" translatable="yes">Name</property>
-                <property name="width_chars">26</property>
+                <property name="xalign">0</property>
+                <property name="yalign">0</property>
+                <property name="width_chars">30</property>
                 <attributes>
                   <attribute name="weight" value="bold"/>
                 </attributes>
@@ -39,9 +40,9 @@
             </child>
             <child>
               <object class="GtkLabel" id="type">
-                <property name="visible">True</property>
                 <property name="can_focus">False</property>
-                <property name="xpad">47</property>
+                <property name="xalign">0</property>
+                <property name="yalign">0</property>
                 <property name="label" translatable="yes">Type</property>
                 <property name="width_chars">8</property>
                 <attributes>
@@ -59,12 +60,12 @@
               <object class="GtkRadioButton" id="yes">
                 <property name="label" translatable="yes">Yes</property>
                 <property name="use_action_appearance">False</property>
-                <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">False</property>
                 <property name="use_action_appearance">False</property>
                 <property name="use_underline">True</property>
                 <property name="xalign">0</property>
+                <property name="yalign">0</property>
                 <property name="active">True</property>
                 <property name="draw_indicator">True</property>
                 <property name="group">no</property>
@@ -80,12 +81,12 @@
               <object class="GtkRadioButton" id="no">
                 <property name="label" translatable="yes">No</property>
                 <property name="use_action_appearance">False</property>
-                <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">False</property>
                 <property name="use_action_appearance">False</property>
                 <property name="use_underline">True</property>
                 <property name="xalign">0</property>
+                <property name="yalign">0</property>
                 <property name="draw_indicator">True</property>
                 <property name="group">yes</property>
               </object>
@@ -98,9 +99,8 @@
             </child>
             <child>
               <object class="GtkEntry" id="value">
-                <property name="visible">True</property>
                 <property name="can_focus">True</property>
-                <property name="max_length">80</property>
+                <property name="max_length">300</property>
                 <property name="width_chars">55</property>
               </object>
               <packing>


More information about the Libreoffice-commits mailing list