Author: tian
Date: Sat Mar  5 17:00:33 2016
New Revision: 2270

URL: http://svn.gna.org/viewcvs/gcstar?rev=2270&view=rev
Log:
Fields selection in the panel below the list didn't contain user fields. This 
was because the model was initialized too early and didn't contain user fields. 
There was also a useless cache in GCMold that contains the list of groups, and 
was not refreshed with user groups.

Modified:
    trunk/gcstar/lib/gcstar/GCGraphicComponents/GCDoubleLists.pm
    trunk/gcstar/lib/gcstar/GCItemsLists/GCListOptions.pm
    trunk/gcstar/lib/gcstar/GCModel.pm

Modified: trunk/gcstar/lib/gcstar/GCGraphicComponents/GCDoubleLists.pm
URL: 
http://svn.gna.org/viewcvs/gcstar/trunk/gcstar/lib/gcstar/GCGraphicComponents/GCDoubleLists.pm?rev=2270&r1=2269&r2=2270&view=diff
==============================================================================
--- trunk/gcstar/lib/gcstar/GCGraphicComponents/GCDoubleLists.pm        
(original)
+++ trunk/gcstar/lib/gcstar/GCGraphicComponents/GCDoubleLists.pm        Sat Mar 
 5 17:00:33 2016
@@ -470,6 +470,32 @@
         $self->removeFromPermanent($self->{ignoreString});
     }
 
+    sub setModel
+    {
+        my ($self, $model) = @_;
+        $self->{model} = $model;
+        if ($model)
+        {
+            my $groups = $model->getGroups;
+            $self->{separator} = $model->getDisplayedText('Separator');
+            while (my ($key, $value) = each %{$model->{fieldsInfo}})
+            {
+                next if !$value->{displayed};
+                my $displayed = $groups->{$value->{group}}->{displayed}
+                              . $self->{separator}
+                              . $value->{displayed};
+                $self->{fieldNameToId}->{$displayed} = $key;
+                $self->{fieldIdToName}->{$key} = $displayed;
+            }
+            my $order = 0;
+            foreach (@{$model->{groups}})
+            {
+                $self->{groupsOrder}->{$groups->{$_->{id}}->{displayed}} = 
$order++;
+            }
+            $self->{model} = $model;
+        }        
+    }
+
     sub new
     {
         my ($proto, $parent, $preList, $isIdList, $ignoreField) = @_;
@@ -524,27 +550,32 @@
         $self->{fieldNameToId} = {};
         $self->{groupsOrder} = {};
 
-        my $model = $self->{parent}->{model};
-        if ($model)
-        {
-            my $groups = $model->getGroups;
-            $self->{separator} = $model->getDisplayedText('Separator');
-            while (my ($key, $value) = each %{$model->{fieldsInfo}})
-            {
-                next if !$value->{displayed};
-                my $displayed = $groups->{$value->{group}}->{displayed}
-                              . $self->{separator}
-                              . $value->{displayed};
-                $self->{fieldNameToId}->{$displayed} = $key;
-                $self->{fieldIdToName}->{$key} = $displayed;
-            }
-            my $order = 0;
-            foreach (@{$model->{groups}})
-            {
-                $self->{groupsOrder}->{$groups->{$_->{id}}->{displayed}} = 
$order++;
-            }
-            $self->{model} = $model;
-        }
+#        my $model = $self->{parent}->{model};
+#        use Data::Dumper;
+#        if ($model)
+#        {
+#            my $groups = $model->getGroups;
+#            print "GROUPS  : ",Dumper($groups),"\n";
+#            print "FIELDS  : ",Dumper($model->{fieldsInfo}),"\n";
+#            $self->{separator} = $model->getDisplayedText('Separator');
+#            while (my ($key, $value) = each %{$model->{fieldsInfo}})
+#            {
+#                next if !$value->{displayed};
+#                my $displayed = $groups->{$value->{group}}->{displayed}
+#                              . $self->{separator}
+#                              . $value->{displayed};
+#                print "ADDING ",$displayed,"\n";
+#                $self->{fieldNameToId}->{$displayed} = $key;
+#                $self->{fieldIdToName}->{$key} = $displayed;
+#            }
+#            my $order = 0;
+#            foreach (@{$model->{groups}})
+#            {
+#                $self->{groupsOrder}->{$groups->{$_->{id}}->{displayed}} = 
$order++;
+#            }
+#            $self->{model} = $model;
+#        }
+        $self->setModel($self->{parent}->{model});
         
         if ($preList)
         {

Modified: trunk/gcstar/lib/gcstar/GCItemsLists/GCListOptions.pm
URL: 
http://svn.gna.org/viewcvs/gcstar/trunk/gcstar/lib/gcstar/GCItemsLists/GCListOptions.pm?rev=2270&r1=2269&r2=2270&view=diff
==============================================================================
--- trunk/gcstar/lib/gcstar/GCItemsLists/GCListOptions.pm       (original)
+++ trunk/gcstar/lib/gcstar/GCItemsLists/GCListOptions.pm       Sat Mar  5 
17:00:33 2016
@@ -390,13 +390,14 @@
         
         $self->{groupByOption}->setModel($self->{parent}->{model});
         $self->{secondarySortOption}->setModel($self->{parent}->{model});
-
+        
         
$self->{imgSizeOption}->setValue($self->{optionsManager}->detailImgSize);
         $self->{groupByOption}->setValue($self->{optionsManager}->groupBy);
         
$self->{secondarySortOption}->setValue($self->{optionsManager}->secondarySort);
         $self->{groupedFirst}->setValue($self->{optionsManager}->groupedFirst);
         $self->{addCount}->setValue($self->{optionsManager}->addCount);
         
+        $self->{fieldsSelection}->setModel($self->{parent}->{model});
         my @tmpFieldsArray = split m/\|/, $self->{optionsManager}->details;
         $self->{fieldsSelection}->setListFromIds(\@tmpFieldsArray);
 

Modified: trunk/gcstar/lib/gcstar/GCModel.pm
URL: 
http://svn.gna.org/viewcvs/gcstar/trunk/gcstar/lib/gcstar/GCModel.pm?rev=2270&r1=2269&r2=2270&view=diff
==============================================================================
--- trunk/gcstar/lib/gcstar/GCModel.pm  (original)
+++ trunk/gcstar/lib/gcstar/GCModel.pm  Sat Mar  5 17:00:33 2016
@@ -1176,18 +1176,15 @@
     sub getGroups
     {
         my $self = shift;
-        
-        if (!$self->{groupsHash})
-        {
-            $self->{groupsHash} = {};
-            foreach (@{$self->{groups}})
-            {
-                $self->{groupsHash}->{$_->{id}} = {
-                                                      id => $_->{id},
-                                                      label => $_->{label},
-                                                      displayed => 
$self->getDisplayedText($_->{label})
-                                                  };
-            }
+
+        $self->{groupsHash} = {};
+        foreach (@{$self->{groups}})
+        {
+            $self->{groupsHash}->{$_->{id}} = {
+                                                  id => $_->{id},
+                                                  label => $_->{label},
+                                                  displayed => 
$self->getDisplayedText($_->{label})
+                                              };
         }
         return $self->{groupsHash};
     }


_______________________________________________
GCstar-commits mailing list
[email protected]
https://mail.gna.org/listinfo/gcstar-commits

Reply via email to