# signal handlers
self.h={}
+ self.maxsz=(0,0)
+
# setup allicons
+ self.resizeMax()
+
+ def resizeMax(self):
+ sz=self.maxsz
maxsz=self.config.getMaxSize()
- for x in xrange(maxsz[0]):
- for y in xrange(maxsz[1]):
- k=(x,y)
- ico=Icon(self.isconfig, self.config)
- self.allicons[k]=ico
- self.connect_one(ico)
+
+ # Create new entries in x
+ if maxsz[0]>sz[0]:
+ for x in xrange(maxsz[0]-sz[0]):
+ for y in xrange(sz[1]):
+ k=(x+sz[0],y)
+ ico=Icon(self.isconfig, self.config)
+ self.allicons[k]=ico
+ self.connect_one(ico)
+ sz=(maxsz[0], sz[1])
+ elif maxsz[0]<sz[0]:
+ for x in xrange(sz[0]-maxsz[0]):
+ for y in xrange(sz[1]):
+ k=(maxsz[0]+x,y)
+ self.allicons.pop(k)
+ sz=(maxsz[0], sz[1])
+
+ # Create new entries in y
+ if maxsz[1]>sz[1]:
+ for y in xrange(maxsz[1]-sz[1]):
+ for x in xrange(sz[0]):
+ k=(x,y+sz[1])
+ ico=Icon(self.isconfig, self.config)
+ self.allicons[k]=ico
+ self.connect_one(ico)
+ sz=(sz[0], maxsz[1])
+ elif maxsz[1]<sz[1]:
+ for y in xrange(sz[1]-maxsz[1]):
+ for x in xrange(sz[0]):
+ k=(x,y+maxsz[1])
+ self.allicons.pop(k)
+ sz=(sz[0], maxsz[1])
+
+ self.maxsz=sz
@classmethod
def register_signals(cls):
# 'extcalllog', 'browser', 'modest', 'osso-addressbook']
wapps=self.config.getApps()
- sz=self.config.getSize()
+ #sz=self.config.getSize()
+ sz=self.getSize()
for k in wapps:
x,y=k
app['icon2']=getIcon(app['icon'], self.config.getIconSize())
self.get(x,y).setApp(app)
else:
- self.get(x,y).setApp(None)
+ ic=self.get(x,y)
+ ic.setApp(None)
+
+ # Reload icons to make sure backgrounds, etc are valid
+ for x in xrange(sz[0]):
+ for y in xrange(sz[1]):
+ ic=self.get(x,y)
+ ic.reload()
+
# for f in fn:
# dt=apps.readOne(f)