From 21b8a4f3db369e14e9310b1f61ff2854088dee70 Mon Sep 17 00:00:00 2001 From: Don Allingham Date: Tue, 17 Dec 2002 05:12:28 +0000 Subject: [PATCH] Hold onto iconlists to keep from crashing while program is active svn: r1224 --- gramps2/src/ImageSelect.py | 13 +++++- gramps2/src/PlaceView.py | 92 ++++++++++++++++--------------------- gramps2/src/gramps.zodb | Bin 13401 -> 13401 bytes 3 files changed, 50 insertions(+), 55 deletions(-) diff --git a/gramps2/src/ImageSelect.py b/gramps2/src/ImageSelect.py index b8e7d346e..dfc5c94fd 100644 --- a/gramps2/src/ImageSelect.py +++ b/gramps2/src/ImageSelect.py @@ -64,6 +64,9 @@ _IMAGEX = 140 _IMAGEY = 150 _PAD = 5 + +_iconlist_refs = [] + #------------------------------------------------------------------------- # # ImageSelect class @@ -217,6 +220,8 @@ class Gallery(ImageSelect): icon_list.connect("drag_data_get", self.on_photolist_drag_data_get) + _iconlist_refs.append(icon_list) + # Remember arguments self.path = path; self.dataobj = dataobj; @@ -235,9 +240,13 @@ class Gallery(ImageSelect): def close(self): self.iconlist.hide() - self.canvas_list = None + for a in self.canvas_list: + a[0].destroy() + a[1].destroy() + a[2].destroy() + self.p_map = None -# gc.collect() + self.canvas_list = None self.iconlist.destroy() def on_canvas1_event(self,obj,event): diff --git a/gramps2/src/PlaceView.py b/gramps2/src/PlaceView.py index 4148283ec..150053405 100644 --- a/gramps2/src/PlaceView.py +++ b/gramps2/src/PlaceView.py @@ -142,17 +142,12 @@ class PlaceView: def button_press(self,obj,event): if event.type == gtk.gdk._2BUTTON_PRESS and event.button == 1: - store,iter = self.selection.get_selected() - id = store.get_value(iter,1) - - place = self.db.getPlace(id) - EditPlace.EditPlace(self,place,self.update_display) + mlist = [] + self.selection.selected_foreach(self.blist,mlist) + if mlist: + EditPlace.EditPlace(self,mlist[0],self.update_display) return 1 -# def insert_place(self,place): -# self.place_list.append(place.getDisplayInfo()) -# self.place_list.set_row_data(self.place_list.rows-1,place.getId()) - def new_place_after_edit(self,place): self.db.addPlace(place) self.update(0) @@ -165,57 +160,48 @@ class PlaceView: def on_add_place_clicked(self,obj): EditPlace.EditPlace(self,Place(),self.new_place_after_edit) -# def moveto(self,row): -# self.place_list.unselect_all() -# self.place_list.select_row(row,0) -# self.place_list.moveto(row) - def on_delete_clicked(self,obj): - store,iter = self.selection.get_selected() - if not iter: - return - - id = store.get_value(iter,1) + mlist = [] + self.selection.selected_foreach(self.blist,mlist) - used = 0 - place = self.db.getPlace(id) - for key in self.db.getPersonKeys(): - p = self.db.getPerson(key) - event_list = [p.getBirth(), p.getDeath()] + p.getEventList() - if p.getLdsBaptism(): - event_list.append(p.getLdsBaptism()) - if p.getLdsEndowment(): - event_list.append(p.getLdsEndowment()) - if p.getLdsSeal(): - event_list.append(p.getLdsSeal()) - for event in event_list: - if event.getPlace() == place: - used = 1 + for place in mlist: + for key in self.db.getPersonKeys(): + p = self.db.getPerson(key) + event_list = [p.getBirth(), p.getDeath()] + p.getEventList() + if p.getLdsBaptism(): + event_list.append(p.getLdsBaptism()) + if p.getLdsEndowment(): + event_list.append(p.getLdsEndowment()) + if p.getLdsSeal(): + event_list.append(p.getLdsSeal()) + for event in event_list: + if event.getPlace() == place: + used = 1 - for f in self.db.getFamilyMap().values(): - event_list = f.getEventList() - if f.getLdsSeal(): - event_list.append(f.getLdsSeal()) - for event in event_list: - if event.getPlace() == place: - used = 1 + for f in self.db.getFamilyMap().values(): + event_list = f.getEventList() + if f.getLdsSeal(): + event_list.append(f.getLdsSeal()) + for event in event_list: + if event.getPlace() == place: + used = 1 - if used == 1: - ans = EditPlace.DeletePlaceQuery(place,self.db,self.update_display) - QuestionDialog(_('Delete Place'), - _("This place is currently being used. Delete anyway?"), - ans.query_response) - else: - self.db.removePlace(place.getId()) - self.update(0) - Utils.modified() + if used == 1: + ans = EditPlace.DeletePlaceQuery(place,self.db,self.update_display) + QuestionDialog(_('Delete Place'), + _("%s is currently being used.\nDelete anyway?" % place.get_title()), + ans.query_response) + else: + self.db.removePlace(place.getId()) + self.update(0) + Utils.modified() def on_edit_clicked(self,obj): """Display the selected places in the EditPlace display""" - list_store, iter = self.selection.get_selected() - if iter: - id = list_store.get_value(iter,1) - place = self.db.getPlace(id) + mlist = [] + self.selection.selected_foreach(self.blist,mlist) + + for place in mlist: EditPlace.EditPlace(self, place, self.update_display) def blist(self,store,path,iter,list): diff --git a/gramps2/src/gramps.zodb b/gramps2/src/gramps.zodb index d7f7a315e2068d8688d71626acb7516bb7ac8f86..ad3e9f9b8b45e0a21955cc38fbf2eb4a35b068a3 100644 GIT binary patch literal 13401 zcmeHNU2I%O6`u9)*g;{FwA3X9E`^6J0<$4;yL~}%R8fZ#XVYedQ&c54_H}lZ_3qx? zYwW$Hl97-wJhVal)Cn(+1giVCp{f)Fv|FIy^3yK=u7rezcrf(E1tEo>3cl~ojPKoz zU79{1f$m7-nfc~BbIzP|=G={x7cYH$pGXQ}`XHv9zrgXZ5Pwf_61Ug`u?J!g#2$z} z5PKl@K z((?+dU_OT4_?|E2^qjOWZ`{KD&wfY<5~tBA+jzb%FFZCUn;6L>MqaepuO<$1J&C`R z{UADd-549+ReBdO5}SZNz+(9azU00=x__MOS2|=TU}puL95%|TS@_rf!l43J_rX^@ z^fmn72=Yb=etk}ELT7pY-~nQR4*)MguenF7az9ZTwoJ-SdWBq=mW8-99roUL1*S;P4dHtDs zU{~}!&J#Bak@=l3^G)Sb%PU(SvAw)gRZoLD8b48f7B9n(Gm1yqF|0FlYLC1X=xko` zrBkhyOQ$D`#HPT@qo>dpble(CDi1a_uIl&FgkJl^OP|7) z5IXOp@9hlaxOE1d=ZQ66uKgLd9P{N0_5zHANZSdMkX-?f_6+H}o%wxTu4d+C@-J$n zEbnDKr`}QPPwKvr?X zk>i!e=OjlQeVu*VV#piHE+Yo4H=F-Z=Mv*O{ZF;7JfL)3z?$b@eXSn6CGv*8qx2>A zC_fTgzKH|m5ewc~p%mDgz3t&3mKOLye#6EF-Y9u#Gg7K5deR02(nh3;!By8Bhwn`J%epBK*eh zi(!&yzAtwGOv4Yvm|v`IN%+LX%^MjJ8C_2s$V2k77&pOTU1uYvX5rsXEU#q?pv<4H z%jA`M@czl8PWBC)$rFq$N~f^U7r&f3Sx)hi)bAq2GO>*9cDjygsCq6s(*8tyr;eN8~3s=g*kK)>*NaR#O1oQ|MrQG z2Kybd+tsxN)RAaivyaX?lzo54Z!YEy>zaA*+u7WSt>PSFi^zM*ncoS-f_JIw>89q5 z;XakRFP9OsjLr?(5^a=?t~n<*1V1w`7#IG&C8p~C-6E^wLX2@)f}RFC<3bEWTYEih zPrneWh%etUdEQ7SkmdX1H-s3!BjPb%8h;aGU0R23<8Na8ju7W}#Jo#>N7msh<8SiX zjKg9lY#DoF=*^b$BY7FzlYTL6Ct0(<1X=RQqaV|dH-01*tru>e`Vj}&~^i1;2Vwii5Qd963id_wNF$cH`T896ilC+uZ>NBC~YQ|F^Np)r2MqI!uF%ix~; zo-ux#k1N^e?=rq8@}l*N`^5Nu%`J9jI_K&WaX{ONy^pwksoX%VJX@V~z;*jmIg?ijS6*-AKxpKk=bgyyss#VS zJZYaTI_|DexXXP@D&I+#wb^RPo^fjK?vUB-zBQHG_u%n+jtqxpe+-v#leyg;$R4Wf zpK_+{*`nv}9nZ;1(N>1<3s3BEZ)($hGo=R3mdod7?CSZN`?iPNTXF;VM_-{>=beW_ z(O&n~Hqo~SqUw&M?hmPb?ro{u;JsCQrc$Hz?mKb=G`CzL@tuKllwXx|-W7`WyH=Z) zcauCATt#tj54qBPPaF5W;LdI(L4PC(-bg;_-06#mMX!*EULle)JyZA{<@SbF4KQsw z750a@Az|f~kpmHJoif`cy*9G<&58BAIkE1D*tXf2xGo#7chEy_-`1_WA_v~UtrIsW F_HREbRDl2h literal 13401 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