Changeset 28 for conseil.py

Show
Ignore:
Timestamp:
07/08/06 21:03:17 (3 years ago)
Author:
ploum
Message:

Big big big refactorization.

The really nasty description_in_the_widget_name hack is now in page.py only,
allowing an easy change

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • conseil.py

    r27 r28  
    2020from bug import bug 
    2121from bookmarks_store import * 
     22from page import * 
    2223 
    2324class MainWindow : 
     
    129130                        array = string.split(None,1) 
    130131                        if len(array) < 2 : 
    131                                 array.append('') 
    132                         args = "%s\n%s"%(array[0],array[1]) 
    133                         widget.__searchDisplay(widget.bts.packageSearch(array[0],array[1]),3,args) 
    134  
     132                                widget.__searchDisplay(widget.bts.packageSearch(array[0],None),3,array[0]) 
     133                        else :   
     134                                widget.__searchDisplay(widget.bts.packageSearch(array[0],array[1]),3,string) 
     135 
     136        #when the "add bookmark button is clicked 
    135137        def addBookmark_clicked(self, widget): 
    136138                tab = self.bugs_tabs.get_nth_page(self.bugs_tabs.get_current_page()) 
    137                 #Naughty hack : informations about a tab are stored in the wigdet name 
    138139                if tab != None : 
    139                         array=tab.get_name().split("\n\n",2) 
     140                        #tab_descr function is part of page 
     141                        array = tab_descr(tab) 
    140142                        self.bookmarks.add(array[0],int(array[1]),array[2]) 
    141143         
     144        #main search button pressed 
    142145        def simpleSearch_clicked(self, widget): 
    143146                searchString = self.wTree.get_widget("simple_search_entry").get_text() 
     
    151154                                #this is only to avoid an error when searching on a lonely package 
    152155                                if len(array) < 2 : 
    153                                         args="%s\n%s"%(array[0],'') 
    154                                         self.__searchDisplay(self.bts.packageSearch(array[0],None),3,args) 
     156                                        self.__searchDisplay(self.bts.packageSearch(array[0],None),3,array[0]) 
    155157                                        #array.append('') 
    156158                                else : 
     
    165167                tree=self.__treeInit__() 
    166168                tree.connect("row-activated", self.__row_clicked, tree.get_selection()) 
    167                 zename = self.bookmarks.makeTitle(search_type, args) 
    168169                tree.set_headers_clickable(1) 
    169170                tree.set_rules_hint(1) 
    170171                tree.set_model(store) 
    171172                tab = gtk.ScrolledWindow() 
    172                 tab.set_name(zename[1])  
    173173                tab.show() 
    174174                tab.add(tree) 
    175                 self.insertTab(tab,zename[0]) 
    176                  
     175                zepage = page(tab, search_type, args) 
     176                self.insertTab(zepage)           
    177177 
    178178        #Callback for the row_activated in a search view 
     
    190190                bugwidget = gtk.glade.XML(bugtemplate) 
    191191                widget_comments_nbr = bugwidget.get_widget("comments_nbr") 
    192                 # TODO : handle nicely plurals 
    193                 com_text = "%d comment(s) : "%zebug.comNbr() 
     192                # handle nicely plurals 
     193                bugtotal = zebug.comNbr() 
     194                if bugtotal > 1 : 
     195                        com_text = "%d comments : "%bugtotal 
     196                else : 
     197                        com_text = "%d comment : "%bugtotal 
    194198                widget_comments_nbr.set_text(com_text) 
    195199                widget_comments = bugwidget.get_widget("com_frame") 
     
    210214                widget_package= bugwidget.get_widget("package") 
    211215                widget_package.set_text(zebug.getPackage()) 
    212  
    213216                #inserting comments 
    214217                hbox = gtk.VBox(spacing=2) 
     
    225228                widget_comments.remove(to_remove) 
    226229                widget_comments.add(hbox) 
    227  
    228  
    229230                #We take the vbox to insert it 
    230231                main_widget = bugwidget.get_widget("bug_main") 
    231                 zename = self.bookmarks.makeTitle(1,bugnbr) 
    232                 main_widget.set_name(zename[1]) 
    233                 self.insertTab(main_widget,zename[0]) 
     232                zepage = page(main_widget, 1, bugnbr) 
     233                self.insertTab(zepage) 
    234234 
    235235 
    236236        # Adding a tab 
    237         def insertTab(self, widget, name) : 
     237        # we receive as arguments an objet page 
     238        def insertTab(self, tab_page) : 
    238239                #close tab button callback 
    239                 def closeTab(widget, data): 
    240                         page = self.bugs_tabs.page_num(data) 
     240                tab = tab_page.get_widget() 
     241                name = tab_page.get_title() 
     242                def closeTab(tab): 
     243                        page = self.bugs_tabs.page_num(tab) 
    241244                        self.bugs_tabs.remove_page(page) 
    242                 tab = widget 
    243245                #this is ugly ! I don't want to use glade for this 
    244246                label_widget=gtk.glade.XML("tab_label.glade") 
    245                 dic = {"on_close_tab_clicked" : lambda tab: closeTab(tab, widget) } 
     247                dic = {"on_close_tab_clicked" : lambda tab: closeTab(tab) } 
    246248                label_widget.signal_autoconnect(dic) 
    247249                label=label_widget.get_widget("label1") 
    248250                label.set_text(name) 
    249251                top=label_widget.get_widget("hbox1") 
    250                 tabid = self.bugs_tabs.insert_page(widget, top) 
     252                tabid = self.bugs_tabs.insert_page(tab, top) 
    251253                 
    252254