[Libreoffice-commits] .: 6 commits - wizards/com wizards/Pyuno_commonwizards.mk

Xisco Fauli anistenis at gmail.com
Sat Feb 2 15:44:07 PST 2013


 wizards/Pyuno_commonwizards.mk                                |    1 
 wizards/com/sun/star/wizards/agenda/AgendaDocument.py         |   26 -
 wizards/com/sun/star/wizards/agenda/AgendaWizardDialogImpl.py |   47 +--
 wizards/com/sun/star/wizards/agenda/CGAgenda.py               |   45 +-
 wizards/com/sun/star/wizards/agenda/CGTopic.py                |   29 -
 wizards/com/sun/star/wizards/agenda/TopicsControl.py          |   14 
 wizards/com/sun/star/wizards/common/ConfigGroup.py            |    8 
 wizards/com/sun/star/wizards/common/ConfigNode.py             |   30 -
 wizards/com/sun/star/wizards/common/ConfigSet.py              |  151 ----------
 wizards/com/sun/star/wizards/text/TextSectionHandler.py       |    2 
 10 files changed, 92 insertions(+), 261 deletions(-)

New commits:
commit 0e5f695a8e0e50889d74b266f96c88aabd590c65
Author: Xisco Fauli <anistenis at gmail.com>
Date:   Sun Feb 3 00:41:45 2013 +0100

    pyagenda: load the proper data for each topic
    
    Change-Id: Ia7d8d65a868b86c81feb489328cbcb6bbd4f75f6

diff --git a/wizards/com/sun/star/wizards/agenda/CGAgenda.py b/wizards/com/sun/star/wizards/agenda/CGAgenda.py
index a50dbd9..335f6ed 100644
--- a/wizards/com/sun/star/wizards/agenda/CGAgenda.py
+++ b/wizards/com/sun/star/wizards/agenda/CGAgenda.py
@@ -17,7 +17,6 @@
 #
 from ..common.ConfigGroup import ConfigGroup
 from ..common.ConfigSet import ConfigSet
-from .CGTopic import CGTopic
 
 class CGAgenda(ConfigGroup):
 
@@ -43,4 +42,4 @@ class CGAgenda(ConfigGroup):
         self.cp_TemplatePath = str()
         self.cp_ProceedMethod = int()
 
-        self.cp_Topics = ConfigSet(CGTopic())
+        self.cp_Topics = ConfigSet()
diff --git a/wizards/com/sun/star/wizards/common/ConfigSet.py b/wizards/com/sun/star/wizards/common/ConfigSet.py
index ba7ea69..e69ed13 100644
--- a/wizards/com/sun/star/wizards/common/ConfigSet.py
+++ b/wizards/com/sun/star/wizards/common/ConfigSet.py
@@ -16,9 +16,9 @@
 #   the License at http://www.apache.org/licenses/LICENSE-2.0 .
 #
 import traceback
-import inspect
 from .ConfigGroup import ConfigGroup
 from .Configuration import Configuration
+from ..agenda.CGTopic import CGTopic
 
 class ConfigSet(ConfigGroup):
     '''
@@ -30,13 +30,9 @@ class ConfigSet(ConfigGroup):
     to avoid this "deletion" of nulls.
     '''
 
-    def __init__(self, topic):
-        self.topic = topic
+    def __init__(self):
         self.childrenList = []
 
-    def add(self, name, o):
-        self.childrenList.append(o)
-
     def writeConfiguration(self, configView, param):
         names = self.childrenMap.keys()
         if isinstance(self.childClass, ConfigNode):
@@ -68,8 +64,9 @@ class ConfigSet(ConfigGroup):
         if names:
             for i in names:
                 try:
-                    self.topic.readConfiguration(
+                    topic = CGTopic()
+                    topic.readConfiguration(
                         configurationView.getByName(i), param)
-                    self.add(i, self.topic)
+                    self.childrenList.append(topic)
                 except Exception:
                     traceback.print_exc()
commit ae4d40f3f0e13c3720667a6c6a143480d0136c52
Author: Xisco Fauli <anistenis at gmail.com>
Date:   Sat Feb 2 22:49:18 2013 +0100

    pyagenda: i have to redo this class so this method is unused now
    
    Change-Id: Ief3461be5eeb6b952b76eeacf2778cb5beef6826

diff --git a/wizards/com/sun/star/wizards/common/ConfigSet.py b/wizards/com/sun/star/wizards/common/ConfigSet.py
index aa02c6a..ba7ea69 100644
--- a/wizards/com/sun/star/wizards/common/ConfigSet.py
+++ b/wizards/com/sun/star/wizards/common/ConfigSet.py
@@ -32,30 +32,7 @@ class ConfigSet(ConfigGroup):
 
     def __init__(self, topic):
         self.topic = topic
-        self.childrenMap = {}
         self.childrenList = []
-        self.noNulls = False
-
-    def add2(self, name, o):
-        self.childrenMap[name] = o
-        if isinstance(name, int):
-            i = name
-            self.childrenList.insert(i, o)
-        else:
-            try:
-                i = o.cp_Index
-                oldSize = self.getSize()
-                if oldSize <= i:
-                    newSize = i - oldSize
-                    self.childrenList += [None] * newSize
-                    self.noNulls = True
-                else:
-                    self.noNulls = False
-                self.childrenList.insert(i, o);
-                if oldSize > i:
-                    oldSize = i
-            except Exception:
-                self.childrenList.append(o)
 
     def add(self, name, o):
         self.childrenList.append(o)
commit acee06b28e2991cf4b3a8935b9a754902367fa1c
Author: Xisco Fauli <anistenis at gmail.com>
Date:   Sat Feb 2 22:47:51 2013 +0100

    pyagenda: remove ConfigNode from makefile
    
    Change-Id: Icacd1addd9e43fb891b0d5cb3c20741380afbd51

diff --git a/wizards/Pyuno_commonwizards.mk b/wizards/Pyuno_commonwizards.mk
index 0391df1d..143b913 100644
--- a/wizards/Pyuno_commonwizards.mk
+++ b/wizards/Pyuno_commonwizards.mk
@@ -35,7 +35,6 @@ $(eval $(call gb_Pyuno_add_files,wizards,\
     common/FileAccess.py \
     common/Properties.py \
     common/Resource.py \
-    common/ConfigNode.py \
     common/DebugHelper.py \
     common/NoValidPathException.py \
     common/PropertyNames.py \
commit 57f01781c62d741e603d90010ea74c121131c9fd
Author: Xisco Fauli <anistenis at gmail.com>
Date:   Sat Feb 2 22:46:11 2013 +0100

    pyagenda: some duck typing here
    
    Change-Id: I6761962178473828039317a6826beaa242954c69

diff --git a/wizards/com/sun/star/wizards/common/ConfigGroup.py b/wizards/com/sun/star/wizards/common/ConfigGroup.py
index 225b2fc..bda4f96 100644
--- a/wizards/com/sun/star/wizards/common/ConfigGroup.py
+++ b/wizards/com/sun/star/wizards/common/ConfigGroup.py
@@ -16,10 +16,9 @@
 #   the License at http://www.apache.org/licenses/LICENSE-2.0 .
 #
 import inspect
-from .ConfigNode import ConfigNode
 from .Configuration import Configuration
 
-class ConfigGroup(ConfigNode):
+class ConfigGroup(object):
 
     def writeConfiguration(self, configurationView, param):
         for name,data in inspect.getmembers(self):
@@ -29,7 +28,7 @@ class ConfigGroup(ConfigNode):
     def writeField(self, field, configView, prefix):
         propertyName = field[len(prefix):]
         child = getattr(self, field)
-        if isinstance(child, ConfigNode):
+        if isinstance(child, ConfigGroup):
             child.writeConfiguration(configView.getByName(propertyName),
                 prefix)
         else:
@@ -43,7 +42,7 @@ class ConfigGroup(ConfigNode):
     def readField(self, field, configView, prefix):
         propertyName = field[len(prefix):]
         child = getattr(self, field)
-        if isinstance(child, ConfigNode):
+        if isinstance(child, ConfigGroup):
             child.readConfiguration(configView.getByName(propertyName),
                 prefix)
         else:
diff --git a/wizards/com/sun/star/wizards/common/ConfigNode.py b/wizards/com/sun/star/wizards/common/ConfigNode.py
deleted file mode 100644
index efaeedb..0000000
--- a/wizards/com/sun/star/wizards/common/ConfigNode.py
+++ /dev/null
@@ -1,27 +0,0 @@
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-# This file incorporates work covered by the following license notice:
-#
-#   Licensed to the Apache Software Foundation (ASF) under one or more
-#   contributor license agreements. See the NOTICE file distributed
-#   with this work for additional information regarding copyright
-#   ownership. The ASF licenses this file to you under the Apache
-#   License, Version 2.0 (the "License"); you may not use this file
-#   except in compliance with the License. You may obtain a copy of
-#   the License at http://www.apache.org/licenses/LICENSE-2.0 .
-#
-from abc import ABCMeta, abstractmethod
-
-class ConfigNode(object):
-    @abstractmethod
-    def readConfiguration(self, configurationView, param):
-        pass
-
-    @abstractmethod
-    def writeConfiguration(self, configurationView, param):
-        pass
diff --git a/wizards/com/sun/star/wizards/common/ConfigSet.py b/wizards/com/sun/star/wizards/common/ConfigSet.py
index 0675e8d..aa02c6a 100644
--- a/wizards/com/sun/star/wizards/common/ConfigSet.py
+++ b/wizards/com/sun/star/wizards/common/ConfigSet.py
@@ -17,10 +17,10 @@
 #
 import traceback
 import inspect
-from .ConfigNode import ConfigNode
+from .ConfigGroup import ConfigGroup
 from .Configuration import Configuration
 
-class ConfigSet(ConfigNode):
+class ConfigSet(ConfigGroup):
     '''
     After reading the configuration set items,
     the ConfigSet checks this field.
commit 98185094cf975dcc3fe4e6c234bea9b46b4e9482
Author: Xisco Fauli <anistenis at gmail.com>
Date:   Sat Feb 2 22:36:03 2013 +0100

    pyagenda: load previous topics configuration when launching the wizard
    
    Change-Id: I771c3a86d00c55e82a96286fec0484283d28ff4c

diff --git a/wizards/com/sun/star/wizards/agenda/AgendaDocument.py b/wizards/com/sun/star/wizards/agenda/AgendaDocument.py
index b3d8806..25ecf04 100644
--- a/wizards/com/sun/star/wizards/agenda/AgendaDocument.py
+++ b/wizards/com/sun/star/wizards/agenda/AgendaDocument.py
@@ -836,13 +836,14 @@ class Topics(object):
         except Exception:
             traceback.print_exc()
 
-    '''@param topic the topic number to write
-    @param data the data of the topic.
-    @return the number of rows that have been added
-    to the table. 0 or a negative number: no rows added.
+    '''rewrites a single cell containing.
+    This is used in order to refresh the topic/responsible/duration data
+    in the preview document, in response to a change in the gui (by the user)
+    Since the structure of the topics table is flexible,
+    The Topics object, which analyzed the structure of the topics table appon
+    initialization, refreshes the approperiate cell.
     '''
-
-    def write(self, row, column, data):
+    def writeCell(self, row, column, data):
         # if the whole row should be written...
         if self.writtenTopics < row:
             self.writtenTopics += 1
@@ -863,21 +864,10 @@ class Topics(object):
             # move the cursor to the needed cell...
             cursor.goRight(column, False)
             
-        self.writeCell(cursor, column, data)
-
-    '''rewrites a single cell containing.
-    This is used in order to refresh the topic/responsible/duration data
-    in the preview document, in response to a change in the gui (by the user)
-    Since the structure of the topics table is flexible,
-    The Topics object, which analyzed the structure of the topics table appon
-    initialization, refreshes the approperiate cell.
-    '''
-                       
-    def writeCell(self, cursor, column, data):
         xc = Topics.table.getCellByName(cursor.RangeName)
         # and write it !
         te = TextElement(xc, data[column].Value)
-        te.write()
+        te.write()                       
 
     '''removes obsolete rows, reducing the
     topics table to the given number of topics.
diff --git a/wizards/com/sun/star/wizards/agenda/AgendaWizardDialogImpl.py b/wizards/com/sun/star/wizards/agenda/AgendaWizardDialogImpl.py
index e40442b..1cf8489 100644
--- a/wizards/com/sun/star/wizards/agenda/AgendaWizardDialogImpl.py
+++ b/wizards/com/sun/star/wizards/agenda/AgendaWizardDialogImpl.py
@@ -72,13 +72,24 @@ class AgendaWizardDialogImpl(AgendaWizardDialog):
             #Number of steps on WizardDialog
             self.nMaxStep = 6
 
-            # initialize the agenda template
             self.agenda = CGAgenda()
-            
+
+            # read configuration data before we initialize the topics
+            root = Configuration.getConfigurationRoot(
+                self.xMSF, "/org.openoffice.Office.Writer/Wizards/Agenda",
+                False)
+            self.agenda.readConfiguration(root, "cp_")
+
             self.templateConsts = TemplateConsts
+                        
+            # initialize the agenda template
             self.agendaTemplate = AgendaDocument(
                 self.xMSF, self.agenda, self.resources,
                 self.templateConsts, self)
+            self.initializeTemplates()                
+
+            self.agendaTemplate.load(
+                self.agendaTemplates[1][self.agenda.cp_AgendaType], [])
 
             # build the dialog.
             self.drawNaviBar()
@@ -96,8 +107,6 @@ class AgendaWizardDialogImpl(AgendaWizardDialog):
             #special Control for setting the save Path:
             self.insertPathSelectionControl()
 
-            self.initializeTemplates()
-
             # synchronize GUI and CGAgenda object.
             self.initConfiguration()
 
@@ -111,8 +120,6 @@ class AgendaWizardDialogImpl(AgendaWizardDialog):
             # initialize roadmap
             self.insertRoadmap()
 
-            self.pageDesignChanged()
-
             self.executeDialogFromComponent(self.agendaTemplate.xFrame)
             self.removeTerminateListener()
             self.closeDocument()
@@ -150,11 +157,6 @@ class AgendaWizardDialogImpl(AgendaWizardDialog):
     '''
 
     def initConfiguration(self):
-        # read configuration data.
-        root = Configuration.getConfigurationRoot(
-            self.xMSF, "/org.openoffice.Office.Writer/Wizards/Agenda", False)
-        self.agenda.readConfiguration(root, "cp_")
-
         self.xDialogModel.listPageDesign.StringItemList = \
             tuple(self.agendaTemplates[0])
         UnoDataAware.attachListBox(
diff --git a/wizards/com/sun/star/wizards/agenda/CGAgenda.py b/wizards/com/sun/star/wizards/agenda/CGAgenda.py
index 32d033e..a50dbd9 100644
--- a/wizards/com/sun/star/wizards/agenda/CGAgenda.py
+++ b/wizards/com/sun/star/wizards/agenda/CGAgenda.py
@@ -20,25 +20,27 @@ from ..common.ConfigSet import ConfigSet
 from .CGTopic import CGTopic
 
 class CGAgenda(ConfigGroup):
-    cp_AgendaType = int()
-    cp_IncludeMinutes = bool()
-    cp_Title = ""
-    cp_Date = str()
-    cp_Time = str()
-    cp_Location = ""
-    cp_ShowMeetingType = bool()
-    cp_ShowRead = bool()
-    cp_ShowBring = bool()
-    cp_ShowNotes = bool()
-    cp_ShowCalledBy = bool()
-    cp_ShowFacilitator = bool()
-    cp_ShowNotetaker = bool()
-    cp_ShowTimekeeper = bool()
-    cp_ShowAttendees = bool()
-    cp_ShowObservers = bool()
-    cp_ShowResourcePersons = bool()
-    cp_TemplateName = str()
-    cp_TemplatePath = str()
-    cp_ProceedMethod = int()
 
-    cp_Topics = ConfigSet(CGTopic())
+    def __init__(self):
+        self.cp_AgendaType = int()
+        self.cp_IncludeMinutes = bool()
+        self.cp_Title = ""
+        self.cp_Date = str()
+        self.cp_Time = str()
+        self.cp_Location = ""
+        self.cp_ShowMeetingType = bool()
+        self.cp_ShowRead = bool()
+        self.cp_ShowBring = bool()
+        self.cp_ShowNotes = bool()
+        self.cp_ShowCalledBy = bool()
+        self.cp_ShowFacilitator = bool()
+        self.cp_ShowNotetaker = bool()
+        self.cp_ShowTimekeeper = bool()
+        self.cp_ShowAttendees = bool()
+        self.cp_ShowObservers = bool()
+        self.cp_ShowResourcePersons = bool()
+        self.cp_TemplateName = str()
+        self.cp_TemplatePath = str()
+        self.cp_ProceedMethod = int()
+
+        self.cp_Topics = ConfigSet(CGTopic())
diff --git a/wizards/com/sun/star/wizards/agenda/CGTopic.py b/wizards/com/sun/star/wizards/agenda/CGTopic.py
index 50ebc4d..240ad0e 100644
--- a/wizards/com/sun/star/wizards/agenda/CGTopic.py
+++ b/wizards/com/sun/star/wizards/agenda/CGTopic.py
@@ -27,11 +27,6 @@ and vice versa (setDataToRow method - used when loading the last session...)
 
 class CGTopic(ConfigGroup):
 
-    cp_Index = int()
-    cp_Topic = str()
-    cp_Responsible = str()
-    cp_Time = str()
-
     '''
     create a new CGTopic object with data from the given row.
     the row object is a PropertyValue array, as used
@@ -41,12 +36,16 @@ class CGTopic(ConfigGroup):
 
     def __init__(self, row=None):
         if row is None:
-            return
-        num = row[0].Value
-        CGTopic.cp_Index = int(row[0].Value[:-1])
-        CGTopic.cp_Topic = row[1].Value
-        CGTopic.cp_Responsible = row[2].Value
-        CGTopic.cp_Time = row[3].Value
+            self.cp_Index = int()
+            self.cp_Topic = str()
+            self.cp_Responsible = str()
+            self.cp_Time = str()        
+        else:
+            num = row[0].Value
+            self.cp_Index = int(row[0].Value[:-1])
+            self.cp_Topic = row[1].Value
+            self.cp_Responsible = row[2].Value
+            self.cp_Time = row[3].Value
 
     '''
     copies the data in this CGTopic object
@@ -56,7 +55,7 @@ class CGTopic(ConfigGroup):
     '''
 
     def setDataToRow(self, row):
-        row[0].Value = "" + str(CGTopic.cp_Index) + "."
-        row[1].Value = CGTopic.cp_Topic
-        row[2].Value = CGTopic.cp_Responsible
-        row[3].Value = CGTopic.cp_Time
+        row[0].Value = "" + str(self.cp_Index) + "."
+        row[1].Value = self.cp_Topic
+        row[2].Value = self.cp_Responsible
+        row[3].Value = self.cp_Time
diff --git a/wizards/com/sun/star/wizards/agenda/TopicsControl.py b/wizards/com/sun/star/wizards/agenda/TopicsControl.py
index af962b8..8116b43 100644
--- a/wizards/com/sun/star/wizards/agenda/TopicsControl.py
+++ b/wizards/com/sun/star/wizards/agenda/TopicsControl.py
@@ -105,6 +105,7 @@ class TopicsControl(ControlScroller):
         try:
             super(TopicsControl, self).__init__(
                 dialog, xmsf, 5, 92, 38, 212, 5, 18, HID + 32)
+            self.dialog = dialog
             self.initializeScrollFields(agenda)
             # set some focus listeners for TAB scroll down and up...
             # prepare scroll down on tab press...
@@ -127,9 +128,9 @@ class TopicsControl(ControlScroller):
 
     def initializeScrollFields(self, agenda):
         # create a row for each topic with the given values....
-        for i  in range(agenda.cp_Topics.getSize()):
+        for i  in range(len(agenda.cp_Topics.childrenList)):
             row = self.newRow(i)
-            agenda.cp_Topics.getElementAt(i).setDataToRow(row)
+            agenda.cp_Topics.childrenList[i].setDataToRow(row)
             # a parent class method
             self.registerControlGroup(row, i)
             self.updateDocumentRow(i)
@@ -313,7 +314,7 @@ class TopicsControl(ControlScroller):
 
     @classmethod
     def newRow(self, i):
-        pv = [None] * 4
+        pv = list(range(4))
         pv[0] = Properties.createProperty(
             TopicsControl.LABEL + str(i), "" + str(i + 1) + ".")
         pv[1] = Properties.createProperty(TopicsControl.TOPIC + str(i), "")
@@ -699,8 +700,9 @@ class TopicsControl(ControlScroller):
         if data is None:
             data = ControlScroller.scrollfields[row]
         try:
-            ControlScroller.CurUnoDialog.agendaTemplate.topics.write(
-                row, data)
+            for i in range(len(data)):
+                ControlScroller.CurUnoDialog.agendaTemplate.topics.writeCell(
+                    row, i, data)
         except Exception:
             traceback.print_exc()
 
@@ -716,7 +718,7 @@ class TopicsControl(ControlScroller):
     @classmethod
     def updateDocumentCell(self, row, column, data):
         try:
-            ControlScroller.CurUnoDialog.agendaTemplate.topics.write(
+            ControlScroller.CurUnoDialog.agendaTemplate.topics.writeCell(
                 row, column, data)
         except Exception:
             traceback.print_exc()
diff --git a/wizards/com/sun/star/wizards/common/ConfigGroup.py b/wizards/com/sun/star/wizards/common/ConfigGroup.py
index ae15e85..225b2fc 100644
--- a/wizards/com/sun/star/wizards/common/ConfigGroup.py
+++ b/wizards/com/sun/star/wizards/common/ConfigGroup.py
@@ -44,7 +44,6 @@ class ConfigGroup(ConfigNode):
         propertyName = field[len(prefix):]
         child = getattr(self, field)
         if isinstance(child, ConfigNode):
-            child.root = self.root
             child.readConfiguration(configView.getByName(propertyName),
                 prefix)
         else:
diff --git a/wizards/com/sun/star/wizards/common/ConfigNode.py b/wizards/com/sun/star/wizards/common/ConfigNode.py
index c2cd231..efaeedb 100644
--- a/wizards/com/sun/star/wizards/common/ConfigNode.py
+++ b/wizards/com/sun/star/wizards/common/ConfigNode.py
@@ -18,9 +18,6 @@
 from abc import ABCMeta, abstractmethod
 
 class ConfigNode(object):
-
-    root = None
-
     @abstractmethod
     def readConfiguration(self, configurationView, param):
         pass
diff --git a/wizards/com/sun/star/wizards/common/ConfigSet.py b/wizards/com/sun/star/wizards/common/ConfigSet.py
index f9b3856..0675e8d 100644
--- a/wizards/com/sun/star/wizards/common/ConfigSet.py
+++ b/wizards/com/sun/star/wizards/common/ConfigSet.py
@@ -16,6 +16,7 @@
 #   the License at http://www.apache.org/licenses/LICENSE-2.0 .
 #
 import traceback
+import inspect
 from .ConfigNode import ConfigNode
 from .Configuration import Configuration
 
@@ -29,13 +30,13 @@ class ConfigSet(ConfigNode):
     to avoid this "deletion" of nulls.
     '''
 
-    def __init__(self, childType):
-        self.childClass = childType
+    def __init__(self, topic):
+        self.topic = topic
         self.childrenMap = {}
         self.childrenList = []
         self.noNulls = False
 
-    def add(self, name, o):
+    def add2(self, name, o):
         self.childrenMap[name] = o
         if isinstance(name, int):
             i = name
@@ -56,6 +57,9 @@ class ConfigSet(ConfigNode):
             except Exception:
                 self.childrenList.append(o)
 
+    def add(self, name, o):
+        self.childrenList.append(o)
+
     def writeConfiguration(self, configView, param):
         names = self.childrenMap.keys()
         if isinstance(self.childClass, ConfigNode):
@@ -80,122 +84,15 @@ class ConfigSet(ConfigNode):
             raise AttributeError (
             "Unable to write primitive sets to configuration (not implemented)")
 
+
     def readConfiguration(self, configurationView, param):
+        #each iteration represents a Topic row
         names = configurationView.ElementNames
-        if isinstance(self.childClass, ConfigNode):
-            if names:
-                for i in names:
-                    try:
-                        child = type(self.childClass)()
-                        child.root = self.root
-                        child.readConfiguration(
-                            configurationView.getByName(i), param)
-                        self.add(i, child)
-                    except Exception:
-                         traceback.print_exc()
-            #remove any nulls from the list
-            if self.noNulls:
-                i = 0
-                while i < len(self.childrenList):
-                    if self.childrenList[i] is None:
-                        del self.childrenList[i]
-                        i -= 1
-                    i += 1
-
-        else:
+        if names:
             for i in names:
                 try:
-                    child = configurationView.getByName(i)
-                    self.add(i, child)
+                    self.topic.readConfiguration(
+                        configurationView.getByName(i), param)
+                    self.add(i, self.topic)
                 except Exception:
                     traceback.print_exc()
-
-    def remove(self, obj):
-        key = getKey(obj)
-        self.childrenMap.remove(key)
-        i = self.childrenList.indexOf(obj)
-        self.childrenList.remove(obj)
-        fireListDataListenerIntervalRemoved(i, i)
-
-    def remove(self, i):
-        o = getElementAt(i)
-        remove(o)
-
-    def clear(self):
-        self.childrenMap.clear()
-        del self.childrenList[:]
-
-    def createDOM(self, parent):
-        items = items()
-        i = 0
-        while i < items.length:
-            item = items[i]
-            if item.instanceof.XMLProvider:
-                item.createDOM(parent)
-
-            i += 1
-        return parent
-
-    def getKey(self, _object):
-        for k,v in self.childrenMap.items():
-            if v == _object:
-                return k
-
-        return None
-
-    def getElementAt(self, i):
-        return self.childrenList[i]
-
-    def getElement(self, o):
-        return self.childrenMap[o]
-
-    def getSize(self):
-        return len(self.childrenList)
-
-    def getIndexOf(self, item):
-        return self.childrenList.index(item)
-
-    '''
-    Set members might include a property
-    which orders them.
-    This method reindexes the given member to be
-    the index number 0
-    Do not forget to call commit() after calling this method.
-    @param confView
-    @param memebrName
-    '''
-
-    def reindexSet(self, confView, memberName, indexPropertyName):
-        '''
-        First I read all memebrs of the set,
-        except the one that should be number 0
-        to a vector, ordered by there index property
-        '''
-        names = Configuration.getChildrenNames(confView)
-        v = Vector.Vector_unknown(names.length)
-        member = None
-        index = 0
-        i = 0
-        while i < names.length:
-            if not names[i].equals(memberName):
-                member = Configuration.getConfigurationNode(names[i], confView)
-                index = Configuration.getInt(indexPropertyName, member)
-                while index >= v.size():
-                    v.add(None)
-                v.setElementAt(member, index)
-            '''
-            Now I reindex them
-            '''
-
-            i += 1
-        index = 1
-        i = 0
-        while i < v.size():
-            member = v.get(i)
-            if member is not None:
-                Configuration.set((index + 1), indexPropertyName, member)
-
-            i += 1
-
-    def sort(self, comparator):
-        self.childrenList.sort(comparator)
commit 270a8259bf86ea5a338f57abd02d747756c0c43a
Author: Xisco Fauli <anistenis at gmail.com>
Date:   Fri Feb 1 18:48:08 2013 +0100

    pyagenda: Fix finish action
    
    Change-Id: I89b2b8b8a3f5988d6a53fe2a743fbf191e04ff58

diff --git a/wizards/com/sun/star/wizards/agenda/AgendaWizardDialogImpl.py b/wizards/com/sun/star/wizards/agenda/AgendaWizardDialogImpl.py
index 5d641c6..e40442b 100644
--- a/wizards/com/sun/star/wizards/agenda/AgendaWizardDialogImpl.py
+++ b/wizards/com/sun/star/wizards/agenda/AgendaWizardDialogImpl.py
@@ -16,6 +16,7 @@
 #   the License at http://www.apache.org/licenses/LICENSE-2.0 .
 #
 import traceback
+import os.path
 from .AgendaWizardDialog import AgendaWizardDialog, uno
 from .AgendaWizardDialogConst import HID
 from .AgendaDocument import AgendaDocument
@@ -330,24 +331,22 @@ class AgendaWizardDialogImpl(AgendaWizardDialog):
         try:
             fileAccess = FileAccess(self.xMSF)
             self.sPath = self.myPathSelection.getSelectedPath()
-            if not self.sPath:
+            if not self.sPath or not os.path.exists(self.sPath):
                 self.myPathSelection.triggerPathPicker()
                 self.sPath = self.myPathSelection.getSelectedPath()
 
-            self.sPath = fileAccess.getURL(self.sPath)
             #first, if the filename was not changed, thus
             #it is coming from a saved session, check if the
             # file exists and warn the user.
             if not self.filenameChanged:
-                if fileAccess.exists(self.sPath, True):
-                    answer = SystemDialog.showMessageBox(
-                        self.xMSF, "MessBox", YES_NO + DEF_NO,
-                        self.resources.resOverwriteWarning,
-                        self.xUnoDialog.Peer)
-                    if answer == 3:
-                        # user said: no, do not overwrite
-                        endWizard = False
-                        return False
+                answer = SystemDialog.showMessageBox(
+                    self.xMSF, "MessBox", YES_NO + DEF_NO,
+                    self.resources.resOverwriteWarning,
+                    self.xUnoDialog.Peer)
+                if answer == 3:
+                    # user said: no, do not overwrite
+                    endWizard = False
+                    return False
             
             xDocProps = self.agendaTemplate.xTextDocument.DocumentProperties
             xDocProps.Title = self.txtTemplateName.Text
@@ -363,7 +362,7 @@ class AgendaWizardDialogImpl(AgendaWizardDialog):
 
                 self.agendaTemplate.finish(self.topicsControl.scrollfields)
 
-                loadValues = range(2)
+                loadValues = list(range(2))
                 loadValues[0] = uno.createUnoStruct( \
                     'com.sun.star.beans.PropertyValue')
                 loadValues[0].Name = "AsTemplate"
diff --git a/wizards/com/sun/star/wizards/text/TextSectionHandler.py b/wizards/com/sun/star/wizards/text/TextSectionHandler.py
index 8896539..c9ec437 100644
--- a/wizards/com/sun/star/wizards/text/TextSectionHandler.py
+++ b/wizards/com/sun/star/wizards/text/TextSectionHandler.py
@@ -74,7 +74,7 @@ class TextSectionHandler(object):
         try:
             TextSectionCount = self.xTextDocument.TextSections.Count
             xAllTextSections = self.xTextDocument.TextSections
-            for i in xrange(TextSectionCount - 1, -1, -1):
+            for i in range(TextSectionCount - 1, -1, -1):
                 xTextContentTextSection = xAllTextSections.getByIndex(i)
                 self.xText.removeTextContent(xTextContentTextSection)
         except Exception:


More information about the Libreoffice-commits mailing list