All pastes #992035 Raw Edit

Untitled

public text v1 · immutable
#992035 ·published 2008-04-21 15:55 UTC
rendered paste body
Index: PreferenceWindow.py
===================================================================
--- PreferenceWindow.py	(revision 1342)
+++ PreferenceWindow.py	(working copy)
@@ -70,15 +70,18 @@
                 gtk.Label(_('Filetransfer')))
 
         self.desktopTab = DesktopTab(self.controller)
+        self.webcamTab = WebcamTab(self.config)
         self.connectionTab = ConnectionTab(self.config)
 
         if self.controller.connected:
+            notebook.append_page(self.webcamTab, gtk.Label(_('Webcam')))
             notebook.append_page(self.desktopTab, gtk.Label(_('Desktop')))
             notebook.append_page(self.connectionTab, gtk.Label(_('Connection')))
         else:
             notebook.append_page(self.connectionTab, gtk.Label(_('Connection')))
             notebook.append_page(self.desktopTab, gtk.Label(_('Desktop')))
 
+
         
         vbox.show_all()
         self.add(vbox)
@@ -99,12 +102,14 @@
         '''save the actual setting'''
 
         self.connectionTab.save()
+        self.webcamTab.save()
         
         if self.controller.connected:
             self.interface_tab.save()
             self.themesTab.save()
             self.colorSchemeTab.save()
             self.desktopTab.save()
+            self.webcamTab.save()
             self.ftTab.save()
             # TODO: remove preferences-changed
             self.controller.emit('preferences-changed')
@@ -167,8 +172,124 @@
     def save(self, *args):
         for i in self.items.keys():
             self.config.user[self.items[i].configColor] = rgbToHexa(self.items[i].button.get_color())
+
+class WebcamTab(gtk.VBox):
+    '''A tab that lets the user override the detected desktop settings'''
+
+    def __init__(self, config):
+        gtk.VBox.__init__(self)
         
+        self.config = config
+        
+        self.imageQuality = ImageQuality(self.config)
+        frame = gtk.Frame(_('Image quality'))
+        frame.set_border_width(4)
+        frame.add(self.imageQuality)
+        self.webConnectionSettings = WebConnectionSettings(self.config)
+        frame1 = gtk.Frame(_('Connection settings'))
+        frame1.set_border_width(4)
+        frame1.add(self.webConnectionSettings)
+        
+        self.set_spacing(8)
+        self.set_border_width(8)
+        
+        self.pack_start(frame, False)
+        self.pack_start(frame1, False)
 
+    def save(self):
+        self.imageQuality.save()
+        self.webConnectionSettings.save()
+
+class ImageQuality(gtk.VBox):
+    def __init__(self, config):
+        gtk.VBox.__init__(self)
+        
+        self.set_spacing(8)
+        self.set_border_width(8)
+        
+        self.config = config
+        
+        markup = _('If you need it, you can choose a different webcam resolution') 
+        
+        self.infolabel = gtk.Label()
+        self.infolabel.set_markup(markup)
+        self.infolabel.set_line_wrap(True)
+        self.infolabel.set_alignment(0.0, 0.0)
+        
+        self.low = gtk.CheckButton(_('Low ( 160x120, for slow CPU )'))
+        self.low.set_active(self.config.glob['camLowQuality'])
+        #self.low.set_active(self.config.glob['weblowquality'] == '160x120')
+        #self.low.connect('toggled', self.toggleLow)
+
+        self.hight = gtk.CheckButton(_('Hight ( 320x240, for better quality )'))
+        self.hight.set_active(self.config.glob['camHightQuality'])
+        #self.hight.connect('toggled', self.toggleHight)
+
+        self.imagelabel = gtk.Label()
+        self.imagelabel.set_markup("<i>Note:</i> The image quality depends also on your connection")
+        self.imagelabel.set_alignment(0, 1.0)
+        
+        self.webbox = gtk.HBox()
+        self.prevbutton = gtk.Button(_('See a preview of webcam'))
+        self.prevbutton.set_sensitive(False)
+        self.webbox.pack_start(gtk.Label())
+        self.webbox.pack_start(self.prevbutton, False, True, 6)
+        
+        self.pack_start(self.infolabel, False)
+        self.pack_start(self.hight, False)
+        self.pack_start(self.low, False)
+        self.pack_start(self.webbox, False)
+        self.pack_start(self.imagelabel, False)
+        self.save()
+
+    def save(self):
+        self.config.glob['camLowQuality'] = self.low.get_active() 
+        self.config.glob['camHightQuality'] = self.hight.get_active() 
+
+class WebConnectionSettings(gtk.VBox):
+    def __init__(self, config):
+        gtk.VBox.__init__(self)
+        
+        self.set_spacing(8)
+        self.set_border_width(8)
+        
+        self.config = config
+		
+        self.refresh = gtk.HBox()
+        self.msrefresh = gtk.Entry()
+        self.refresh.pack_start(gtk.Label(_("Refresh image every:")), False)
+        self.refresh.pack_start(self.msrefresh)
+        self.msrefresh.set_text(str(self.config.glob['msrefresh']))#number of ms
+		#resize the input field, I don't know how I do, I've tryed with set_width_chars but it doesn't work
+        self.refresh.pack_start(gtk.Label(_(" ms")), False)
+		
+        self.refreshlabel = gtk.Label()
+        self.refreshlabel.set_markup("\n<i>Note:</i> Change it at own risk!")
+        self.refreshlabel.set_alignment(0, 1.0)
+        
+        self.webCamServer = gtk.HBox()
+        self.nserverport = gtk.Entry()
+        self.webCamServer.pack_start(gtk.Label(_("\nServer port:")), False)
+        self.nserverport.set_text(str(self.config.glob['webcamPort']))#number of serverport
+        self.webCamServer.pack_start(self.nserverport)
+
+		#fix the alignment of input field, and resize it too
+		
+        self.webCamServerLabel = gtk.Label()
+        self.webCamServerLabel.set_markup("\n<i>Note:</i> You need one port opened to use webcam (MSN default port: 6891)")
+        self.webCamServerLabel.set_alignment(0, 1.0)
+
+        self.pack_start(self.refresh, False)
+        self.pack_start(self.refreshlabel, False)
+        self.pack_start(self.webCamServer, False)
+        self.pack_start(self.webCamServerLabel, False)
+        self.save()
+
+
+    def save(self):
+        self.config.glob['webcamPort'] = self.nserverport.get_text() 
+        self.config.glob['msrefresh'] = self.msrefresh.get_text() 
+
 class DesktopTab(gtk.VBox):
     '''A tab that lets the user override the detected desktop settings'''
 
@@ -195,7 +316,6 @@
         self.config.glob['rgbaColormap'] = self.rgba.get_active()
         self.urlSettings.save()
 
-            
 class UrlSettings(gtk.VBox):
     def __init__(self, config):
         gtk.VBox.__init__(self)
@@ -322,6 +442,7 @@
         self.proxySettings.save()
         
 
+    
 class ThemesTab(gtk.VBox):
     '''This class represent the tab that ...'''
     
@@ -617,6 +738,7 @@
         mkcheck(self, 'showTabCloseButton', _('Show close button on _each tab'))
         mkcheck(self, 'avatarsInUserList', _('Show _avatars'))
         mkcheck(self, 'avatarsInTaskbar', _('Show avatars in task_bar'))
+        mkcheck(self, 'hideNewWindow', _('Hide new conversation window automatically'))
         #mkcheck(self, 'showMailTyping', _('Show ma_il on "is typing" message'))
         #mkcheck(self, 'disableEsc', _('Don\'t _close by pressing ESC'))
         
Index: ConversationManager.py
===================================================================
--- ConversationManager.py	(revision 1342)
+++ ConversationManager.py	(working copy)
@@ -128,11 +128,10 @@
 
             # Gnome does not support calling iconify() before show() (?)
             # so we call it before and after, other WMs may support it...
-            if not weStarted:
+            if self.config.user['hideNewWindow']:
                 window.iconify() 
             window.show()
-            if not weStarted:
-                window.iconify()
+            
                 
         conversation.setWindow(window)
         window.set_icon(conversation.getWindowIcon())
Index: Config.py
===================================================================
--- Config.py	(revision 1342)
+++ Config.py	(working copy)
@@ -40,6 +40,11 @@
     'lastLoggedAccount': '',
     'rgbaColormap' : False,
     'overrideDesktop' : '',
+
+    'webcamPort' : 6891,
+    'camLowQuality' : True,
+    'camHightQuality' : False,
+	'msrefresh' : 1000,
 }
 
 
@@ -96,6 +101,7 @@
     'showTabCloseButton' : True, # TODO: w/o signal
     'avatarsInUserList' : True, # TODO: w/o signal
     'avatarsInTaskbar' : False,
+    'hideNewWindow' : True,
     'showMailTyping' : True,
     'showSendButton' : False,
 
@@ -113,7 +119,7 @@
     'sendTyping' : True, # send the is typing notification to other clients
     'useFancyLabel' : False, 
     'userListAvatarSize': 32,
-    
+	
     'receivedFilesSortedByUser' : False,
     'receivedFilesDir' : '~/',
     'disableEsc' : False, # disable the esc key to close conversations
Index: emesenelib/p2p/transfers.py
===================================================================
--- emesenelib/p2p/transfers.py	(revision 1342)
+++ emesenelib/p2p/transfers.py	(working copy)
@@ -24,7 +24,9 @@
 import base64
 import struct
 import gobject
+import Config
 
+
 import socket, asyncore
 from threading import Thread
 
@@ -829,8 +831,11 @@
             print 'Got ReflData, connect to reflector?'
             
     def get_viewer_xml(self, session, rid):
+	
+        self.config = Config.Config()
+		
         ip = '<tcpipaddress1>%s</tcpipaddress1>' % self.external_ip
-        port = '6891'
+        port = (str(self.config.glob['webcamport']))
         
         xml = '<viewer>'
         xml += '<version>2.0</version>'