Changeset 438
- Timestamp:
- 02/15/07 10:39:35 (18 months ago)
- Location:
- murmur/trunk/sources
- Files:
-
- 1 added
- 4 modified
-
encode_bitmaps.py (modified) (1 diff)
-
images/birdies/hilite.png (added)
-
murmur (modified) (59 diffs)
-
pymurmur/entrydialog.py (modified) (3 diffs)
-
pymurmur/imagedata.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
murmur/trunk/sources/encode_bitmaps.py
r393 r438 27 27 ["close.png", "close"], 28 28 ["logo.png", "logo"], 29 ["hilite.png", "hilite"], 29 30 ] 30 31 path = "" 32 if len (sys.argv[1:]) == 1: 33 path = sys.argv[1] 31 34 outf = open(os.path.join("pymurmur","imagedata.py"), "w") 32 35 for image in table: 33 36 print image[0] 34 f = open(os.path.join("images", image[0]), "rb") 37 if os.path.exists(os.path.join(os.path.join("images", path), image[0])): 38 filename = os.path.join(os.path.join("images", path), image[0]) 39 else: 40 filename = os.path.join("images", image[0]) 41 42 f = open(filename, "rb") 35 43 d = f.read() 36 44 f.close() -
murmur/trunk/sources/murmur
r433 r438 284 284 button.grab_default() 285 285 self.ret = None 286 286 287 def quit(self, w=None, event=None): 287 288 self.hide() 288 289 self.destroy() 289 #gtk.main_quit() 290 gtk.main_quit() 291 290 292 def click(self, button): 291 293 self.ret = None … … 325 327 self.frame.userlists.trusted.update(key, value) 326 328 if domain in ("banned", "buddies", "ignored", "trusted"): 327 self.frame.ChatRooms. roomsmaster.GetListStatus( key)329 self.frame.ChatRooms.GetListStatus( key) 328 330 self.frame.userlists.updateListIcon(key) 329 331 … … 345 347 self.frame.userlists.trusted.append(key, value) 346 348 if domain in ("banned", "buddies", "ignored", "trusted"): 347 self.frame.ChatRooms. roomsmaster.GetListStatus( key)349 self.frame.ChatRooms.GetListStatus( key) 348 350 self.frame.userlists.updateListIcon(key) 349 351 … … 373 375 self.frame.userlists.trusted.remove(key) 374 376 if domain in ("banned", "buddies", "ignored", "trusted"): 375 self.frame.ChatRooms. roomsmaster.GetListStatus(key)377 self.frame.ChatRooms.GetListStatus(key) 376 378 self.frame.userlists.updateListIcon(key) 377 379 if domain == "interests.hate": … … 583 585 584 586 if DEBUG == True: print " **** cb_room_list", len(roomlist) 585 self.frame.room_lists = {}586 for x, y in roomlist.items():587 self.frame.room_lists[x] = y588 # print x, y589 590 self.frame.ChatRooms. roomsmaster.UpdateRoomList(roomlist)587 #self.frame.room_lists = {} 588 #for x, y in roomlist.items(): 589 #self.chatrooms.rooms[x] = y 590 ##print x, y 591 592 self.frame.ChatRooms.UpdateRoomList(roomlist) 591 593 gtk.gdk.threads_leave() 592 594 … … 604 606 gtk.gdk.threads_enter() 605 607 606 if DEBUG == True: print " **** cb_search_ticket" 608 if DEBUG == True: print " **** cb_search_ticket", query, ticket 607 609 self.frame.Searches.NewSearch( query, ticket) 608 610 … … 678 680 gtk.gdk.threads_enter() 679 681 try: 680 self.frame.ChatRooms. roomsmaster.SayChatRoom(room, user, text)682 self.frame.ChatRooms.SayChatRoom(room, user, text) 681 683 self.frame.Logging.ChatRoomLog(room, user, text) 682 684 except Exception,e: … … 688 690 if DEBUG == True: print "Logged in, getting Rooms" 689 691 try: 690 for rooms1, numbers in roomlist.items(): 691 self.frame.room_lists[str(rooms1)] = numbers 692 self.frame.ChatRooms.roomsmaster.UpdateRoomList(roomlist) 692 693 self.frame.ChatRooms.UpdateRoomList(roomlist) 693 694 joined_rooms = joined.keys() 694 695 joined_rooms.sort(key=str.lower) 695 696 for room in joined_rooms: 696 room = str(room) 697 698 roomlist = [] 699 700 for users in joined[room]: 701 roomlist.append(users) 702 self.frame.user_stats[users] = [joined[room][users][0], joined[room][users][1], joined[room][users][2 ], joined[room][users][3], joined[room][users][4], 1] 703 self.frame.ChatRooms.roomsmaster.JoinRoom(room, joined[room]) 704 created = [] 697 for users, stats in joined[room].items(): 698 self.frame.user_stats[users] = [stats[0], stats[1], stats[2], stats[3], stats[4], 1] 699 self.frame.ChatRooms.JoinRoom(str(room), joined[room]) 705 700 706 701 except Exception, e: … … 717 712 718 713 719 self.frame.ChatRooms. roomsmaster.JoinRoom(room, list_of_users)714 self.frame.ChatRooms.JoinRoom(room, list_of_users) 720 715 721 716 … … 728 723 if DEBUG == True: print " **** cb_room_left %s"% room 729 724 try: 730 self.frame.ChatRooms. roomsmaster.LeaveRoom(room)725 self.frame.ChatRooms.LeaveRoom(room) 731 726 except Exception, e: 732 727 if DEBUG == True: print "Leave room bug", e … … 742 737 self.frame.user_stats[user] = [stats[0], stats[1], stats[2 ], stats[3], stats[4], 1] 743 738 744 self.frame.ChatRooms. roomsmaster.UserJoinedRoom(room, user)739 self.frame.ChatRooms.UserJoinedRoom(room, user) 745 740 746 741 except Exception, e: … … 755 750 print "%s left room %s" % (user, room) 756 751 757 self.frame.ChatRooms. roomsmaster.UserLeftRoom(room, user)752 self.frame.ChatRooms.UserLeftRoom(room, user) 758 753 759 754 … … 806 801 self.frame.TrayApp.SetToolTip( "Couldn't connect to Museek: %s" % "Invalid Password") 807 802 self.frame.update_statusbar( "Invalid Password") 808 809 #self.connect() 803 810 804 811 805 else: … … 864 858 self.config = {} 865 859 866 self.frame.ChatRooms. roomsmaster.ConnClose()860 self.frame.ChatRooms.ConnClose() 867 861 868 862 self.connected = False … … 897 891 self.frame.TrayApp.SetImage("red") 898 892 899 900 893 self.frame.username = username 901 #self.start_MurmurWindow("window") 902 903 894 904 895 except Exception,e: 905 896 if DEBUG == True: print " **** cb_server_state ERROR", e … … 956 947 if DEBUG == True: print " **** cb_peer_stats ERROR", e 957 948 #gtk.gdk.threads_enter() 949 950 self.frame.ChatRooms.GetUserStats( user, speed, files) 958 951 self.frame.userlists.updateStats(user, self.frame.user_stats[user]) 959 952 … … 972 965 973 966 ## Update Lists with new status information 974 self.frame.ChatRooms. roomsmaster.GetUserStatus( user, status)967 self.frame.ChatRooms.GetUserStatus( user, status) 975 968 self.frame.userlists.updateStatus(user, status) 976 969 self.frame.PrivateChats.updateStatus(user, status) … … 1221 1214 # @param searchtype (0:Global, 1:Buddy, 2:Rooms) 1222 1215 # @param query Search string 1223 def Search(self, searchtype, query): 1224 message = messages.Search(searchtype, query ) 1225 self.SendMessage(message) 1216 def Search(self, searchtype, query, user=None): 1217 1218 if searchtype in (0, 1, 2): 1219 message = messages.Search(searchtype, query ) 1220 self.SendMessage(message) 1221 elif searchtype == 3 and user is not None: 1222 self.UserSearch(user, query) 1223 1226 1224 ## Search a user's shares for a string 1227 1225 # @param self Networking (class) … … 1460 1458 def OnJoinRoom(self, widget): 1461 1459 room = self.user 1462 self.frame. RoomJoin(room)1460 self.frame.JoinARoom(room) 1463 1461 1464 1462 … … 1504 1502 hbox1.set_spacing(5) 1505 1503 1506 label1 = gtk.Label(("Search Shares For:"))1507 label1.set_padding(5, 0)1508 label1.show()1509 hbox1.pack_start( label1, False, False, 5)1504 self.label1 = gtk.Label(("Search Shares For:")) 1505 self.label1.set_padding(5, 0) 1506 self.label1.show() 1507 hbox1.pack_start(self.label1, False, False, 5) 1510 1508 1511 1509 self.entry = entry= gtk.Entry() … … 1517 1515 hbox1.pack_start(entry, True, True, 5) 1518 1516 1519 self.searchbutton = self.frame.CreateIconButton(gtk.STOCK_FIND, "stock", self.SearchShares, "Search") 1520 1521 1522 hbox1.pack_start(self.searchbutton, False, False, 5) 1517 self.SearchButton = self.frame.CreateIconButton(gtk.STOCK_FIND, "stock", self.SearchShares, "Search") 1518 1519 1520 hbox1.pack_start(self.SearchButton, False, False, 5) 1521 1522 self.RefreshButton = self.frame.CreateIconButton(gtk.STOCK_REFRESH, "stock", self.OnRefreshShares, "Refresh") 1523 1524 1525 hbox1.pack_start(self.RefreshButton, False, False, 5) 1523 1526 1524 1527 self.Main.pack_start(hbox1, False, True, 0) … … 1686 1689 files = [] 1687 1690 files += self.DownloadDirectoryRecursive(dir, os.path.join(localdir, "")) 1688 print files1691 1689 1692 # Check the number of files to be downloaded, just to make sure we aren't accidently downloading hundreds or thousands 1690 1693 numfiles = len(files) … … 1744 1747 def OnDownloadFiles(self, widget, prefix = ""): 1745 1748 dir = self.selected_folder 1746 print self.selected_files1747 1749 for fn in self.selected_files: 1748 1750 self.frame.Networking.DownloadFileTo(self.user, "\\".join([dir, fn]), prefix) … … 1859 1861 if DEBUG == True: print "-- dir :", directory 1860 1862 self.BrowseChangeDir(self.user, directory) 1861 1863 1864 def SetSensitive(self, bool): 1865 self.DirTreeView.set_sensitive(bool) 1866 self.FilesTreeView.set_sensitive(bool) 1867 self.SearchButton.set_sensitive(bool) 1868 self.RefreshButton.set_sensitive(bool) 1869 self.entry.set_sensitive(bool) 1870 self.label1.set_sensitive(bool) 1871 1862 1872 def ShowShares(self, user, shares): 1863 1873 try: 1874 1864 1875 if user != self.user: 1865 1876 return … … 1869 1880 self.BrowseChangeDir(user, directory) 1870 1881 self.DirTreeView.expand_all() 1882 self.SetSensitive(True) 1871 1883 1872 1884 except Exception,e: … … 1875 1887 def OnClose(self, user): 1876 1888 self.browses.RemoveTab(self) 1877 1878 def SearchShares(self, user): 1889 1890 def OnRefreshShares(self, widget): 1891 self.SetSensitive(False) 1892 self.frame.GetShares(self.user) 1893 1894 def SearchShares(self, widget): 1879 1895 query = self.entry.get_text() 1880 1896 if self.query == query: … … 1883 1899 self.search_position = 0 1884 1900 self.query = query 1901 if self.query == "": 1902 return 1885 1903 if DEBUG == True: print "Query:", query 1886 1904 dir = self.directory … … 2022 2040 2023 2041 self.users[user].ShowShares(user, shares) 2042 self.request_changed(self.users[user].Main) 2024 2043 self.frame.RequestIcon(self.frame.UserBrowseLabel) 2025 2044 def OnSwitchPage(self, notebook, page, page_num, force = 0): … … 2233 2252 2234 2253 self.users[user].ShowInfo(user, info, picture, uploads, queue, slotsfree) 2235 2254 self.request_changed(self.users[user].Main) 2236 2255 def OnSwitchPage(self, notebook, page, page_num, force = 0): 2237 2256 … … 2552 2571 elif cmd in ["/s", "/search"]: 2553 2572 if realargs: 2554 self.frame. Searches.DoSearch(0, realargs)2573 self.frame.Networking.Search(0, realargs) 2555 2574 self.frame.OnSearch(None) 2556 2575 elif cmd in ["/us", "/usearch"]: 2557 if realargs:2558 self.frame.searches.user = self.user2559 self.frame. searches.DoSearch(3, realargs)2576 s = args.split(" ", 1) 2577 if len(s) == 2: 2578 self.frame.Networking.Search(3, s[1], s[0]) 2560 2579 self.frame.OnSearch(None) 2580 else: 2581 return 2561 2582 elif cmd in ["/rs", "/rsearch"]: 2562 2583 if realargs: 2563 #self.frame.searches.DoSearch(1, realargs)2584 self.frame.Networking.Search(1, realargs) 2564 2585 self.frame.OnSearch(None) 2565 2586 elif cmd in ["/bs", "/bsearch"]: 2566 2587 if realargs: 2567 self.frame. searches.DoSearch(2, realargs)2588 self.frame.Networking.Search(2, realargs) 2568 2589 self.frame.OnSearch(None) 2569 2590 elif cmd in ["/ad", "/add", "/buddy"]: … … 2715 2736 return 2716 2737 2717 #ctcpversion = 02718 #if text == "\x01VERSION\x01":2719 #ctcpversion = 12720 #text = "CTCP VERSION"2738 ctcpversion = 0 2739 if text == "\x01VERSION\x01": 2740 ctcpversion = 1 2741 text = "CTCP VERSION" 2721 2742 self.SendMessage(user, None) 2722 2743 tab = self.users[user] … … 2730 2751 #self.frame.tray_status["hilites"]["private"].append(msg.user) 2731 2752 #self.frame.SetImage(None) 2732 2753 self.request_changed(self.users[user].Main) 2754 2733 2755 def OnSwitchPage(self, notebook, page, page_num, force = 0): 2734 2756 if self.frame.notebook_outside.get_current_page() != 1 and not force: … … 2766 2788 del self.tickets[tab.ticket] 2767 2789 2768 def DoSearch(self, searchtype, query ):2769 self.frame.Networking.Search(searchtype, query )2790 def DoSearch(self, searchtype, query, user=None): 2791 self.frame.Networking.Search(searchtype, query, user=None) 2770 2792 2771 2793 def OnSwitchPage(self, notebook, page, page_num, force = 0): … … 2781 2803 if self.tickets.has_key(ticket): 2782 2804 self.tickets[ticket].NewResults(user, free, speed, queue, results) 2805 self.request_changed(self.tickets[ticket].Main) 2783 2806 2784 2807 def NewSearch(self, query, ticket): … … 2807 2830 2808 2831 self.ScrolledWindow = gtk.ScrolledWindow() 2809 self.ScrolledWindow.set_policy(gtk.POLICY_A LWAYS, gtk.POLICY_ALWAYS)2832 self.ScrolledWindow.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) 2810 2833 self.ScrolledWindow.show() 2811 2834 self.ScrolledWindow.set_shadow_type(gtk.SHADOW_IN) … … 3119 3142 class ChatRoom: 3120 3143 3121 def __init__(self, roomsmaster, room, users):3144 def __init__(self, chatrooms, room, users): 3122 3145 self.lines = [] 3123 self. roomsmaster = roomsmaster3124 self.frame = roomsmaster.frame3146 self.chatrooms = chatrooms 3147 self.frame = chatrooms.frame 3125 3148 self.room = room 3126 3149 self.leaving = 0 … … 3195 3218 hspeed = Humanize(users[user][1]) 3196 3219 hfiles = Humanize(users[user][3]) 3197 #iter = self.usersmodel.append([img, user, hspeed, hfiles, users[user][0], users[user][1], users[user][2]]) 3198 iter = self.usersmodel.append([img, str(user), hfiles, hspeed, users[user][0] ] ) #, , users[user][1], users[user][2]]) 3220 iter = self.usersmodel.append([img, str(user), hfiles, hspeed, users[user][0] ] ) 3199 3221 self.users[user] = iter 3200 #self.usersmodel.set_sort_column_id(1, gtk.SORT_ASCENDING)3222 self.usersmodel.set_sort_column_id(1, gtk.SORT_ASCENDING) 3201 3223 3202 3224 self.popup_menu = popup = PopupMenu(self.frame, "chat") … … 3330 3352 3331 3353 elif cmd == "/reload": 3332 self. Networking.ReloadShares()3354 self.frame.Networking.ReloadShares() 3333 3355 3334 3356 elif cmd == "/pm": … … 3346 3368 elif cmd in ["/s", "/search"]: 3347 3369 if realargs: 3348 self.frame. Searches.DoSearch(0, realargs)3370 self.frame.Networking.Search(0, realargs) 3349 3371 self.frame.OnSearch(None) 3350 3372 elif cmd in ["/us", "/usearch"]: 3351 if realargs:3352 self.frame.searches.user = self.user3353 self.frame. searches.DoSearch(3, realargs)3373 s = args.split(" ", 1) 3374 if len(s) == 2: 3375 self.frame.Networking.Search(3, s[1], s[0]) 3354 3376 self.frame.OnSearch(None) 3377 else: 3378 return 3379 #if realargs: 3380 ##self.frame.Searches.user = self.user 3381 #self.frame.Searches.DoSearch(3, realargs) 3382 #self.frame.OnSearch(None) 3355 3383 elif cmd in ["/rs", "/rsearch"]: 3356 3384 if realargs: 3385 self.frame.Networking.Search(2, realargs) 3357 3386 self.frame.OnSearch(None) 3358 3387 elif cmd in ["/bs", "/bsearch"]: 3359 3388 if realargs: 3360 self.frame. searches.DoSearch(2, realargs)3389 self.frame.Networking.Search(1, realargs) 3361 3390 self.frame.OnSearch(None) 3362 3391 elif cmd in ["/ad", "/add", "/buddy"]: … … 3477 3506 3478 3507 self.lines.append(AppendLine(self.chatview, message, None, username=user, usertag=self.tag_users[user])) 3479 3508 if user != self.frame.username and self.frame.username in message: 3509 self.chatrooms.request_hilite(self.Main) 3510 else: 3511 self.chatrooms.request_changed(self.Main) 3480 3512 #if self.Log.get_active(): 3481 3513 #self.logfile = WriteLog(self.logfile, self.frame.np.config.sections["logging"]["logsdir"], self.room, line) … … 3543 3575 self.usersmodel.set(self.users[user], 0, img, 4, status) 3544 3576 3577 def GetUserStats(self, user, speed, files): 3578 if not self.users.has_key(user): 3579 return 3580 hspeed = Humanize(speed) 3581 hfiles = Humanize(files) 3582 self.usersmodel.set(self.users[user], 2, hfiles, 3, hspeed) 3583 3545 3584 def GetUserStatus(self, user, status): 3546 3585 if not self.users.has_key(user): … … 3668 3707 if self.leaving: 3669 3708 return 3670 if self.room in self. roomsmaster.joinedrooms:3709 if self.room in self.chatrooms.joinedrooms: 3671 3710 self.frame.Networking.LeaveRoom(self.room) 3672 3711 self.Leave.set_sensitive(False) … … 3690 3729 self.popup_enable() 3691 3730 self.frame = frame 3692 self.roomsmaster = MasterRoom(frame) 3731 3732 self.joinedrooms = {} 3733 self.rooms = {} 3734 self.autojoin = 1 3735 3736 self.CreateRoomList() 3693 3737 3694 3738 self.set_tab_pos(gtk.POS_TOP) … … 3696 3740 self.show() 3697 3741 self.connect("switch-page", self.OnSwitchPage) 3698 3699 def ConnClose(self): 3700 self.roomsmaster.ConnClose() 3742 &
