+++ /dev/null
-commit 204aa75536d5508ca326bddd273d7d7e617109b1
-Author: Dhananjay Sathe <dhananjaysathe@gmail.com>
-Date: Tue Aug 16 19:27:39 2011 +0000
-
- pep fixes to dialogs (pysrvsvc.py)
-
-diff --git a/sambagtk/pysrvsvc.py b/sambagtk/pysrvsvc.py
-index b433d6d..5fa6e0c 100644
---- a/sambagtk/pysrvsvc.py
-+++ b/sambagtk/pysrvsvc.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/python2.6
-+#!/usr/bin/python
- # -*- coding: utf-8 -*-
-
- # pysrvsvc.py
-@@ -24,8 +24,6 @@
- #
- #
-
--
--
- """ srvsvc related dialogues"""
-
- import gtk
-@@ -33,7 +31,6 @@ import gobject
- import os
- import sys
-
--
- from samba.dcerpc import srvsvc
-
-
-@@ -41,15 +38,9 @@ class srvsvcConnectDialog(gtk.Dialog):
-
- """Connect Dialog"""
-
-- def __init__(
-- self,
-- server,
-- transport_type,
-- username,
-- password='',
-- ):
-- super(srvsvcConnectDialog, self).__init__()
-+ def __init__(self, server, transport_type, username, password=''):
-
-+ super(srvsvcConnectDialog, self).__init__()
-
- self.server_address = server
- self.username = username
-@@ -61,6 +52,7 @@ class srvsvcConnectDialog(gtk.Dialog):
- self.set_modal(True)
-
- self.update_sensitivity()
-+ self.about_dialog = gtk.AboutDialog()
-
- def create(self):
- self.set_title('Connect to Samba Share Server')
-@@ -72,10 +64,10 @@ class srvsvcConnectDialog(gtk.Dialog):
- self.vbox.set_spacing(5)
-
- # artwork TODO remove post decession
--
-+
- self.artwork = gtk.VBox()
-
-- self.samba_image_filename = os.path.join(sys.path[0],'images',
-+ self.samba_image_filename = os.path.join(sys.path[0], 'images',
- 'samba-logo-small.png')
- self.samba_image = gtk.Image()
- self.samba_image.set_from_file(self.samba_image_filename)
-@@ -106,37 +98,44 @@ class srvsvcConnectDialog(gtk.Dialog):
-
- label = gtk.Label(' Server address: ')
- label.set_alignment(0, 0.5)
-- table.attach(label, 0, 1, 0, 1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 0, 1, 0, 1, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
- self.server_address_entry = gtk.Entry()
- self.server_address_entry.set_text(self.server_address)
- self.server_address_entry.set_activates_default(True)
-- self.server_address_entry.set_tooltip_text('Enter the Server Address')
-- table.attach(self.server_address_entry, 1, 2, 0, 1, gtk.FILL | gtk.EXPAND, gtk.FILL | gtk.EXPAND, 1, 1)
-+ self.server_address_entry.set_tooltip_text(
-+ 'Enter the Server Address')
-+ table.attach(self.server_address_entry, 1, 2, 0, 1,
-+ gtk.FILL | gtk.EXPAND, gtk.FILL | gtk.EXPAND, 1, 1)
-
- label = gtk.Label(' Username: ')
- label.set_alignment(0, 0.5)
-- table.attach(label,0,1,1,2,gtk.FILL,gtk.FILL | gtk.EXPAND,0,0)
-+ table.attach(label, 0, 1, 1, 2, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
- self.username_entry = gtk.Entry()
- self.username_entry.set_text(self.username)
- self.username_entry.set_activates_default(True)
- self.username_entry.set_tooltip_text('Enter your Username')
-- table.attach(self.username_entry,1,2,1,2,gtk.FILL | gtk.EXPAND,gtk.FILL | gtk.EXPAND,1,1)
-+ table.attach(self.username_entry, 1, 2, 1, 2,
-+ gtk.FILL | gtk.EXPAND, gtk.FILL | gtk.EXPAND, 1, 1)
-
- label = gtk.Label(' Password: ')
- label.set_alignment(0, 0.5)
-- table.attach(label, 0, 1, 2, 3, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 0, 1, 2, 3, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
- self.password_entry = gtk.Entry()
- self.password_entry.set_text(self.password)
- self.password_entry.set_visibility(False)
- self.password_entry.set_activates_default(True)
- self.password_entry.set_tooltip_text('Enter your Password')
-- table.attach(self.password_entry, 1, 2, 2, 3, gtk.FILL | gtk.EXPAND, gtk.FILL | gtk.EXPAND, 1, 1)
-+ table.attach(self.password_entry, 1, 2, 2, 3,
-+ gtk.FILL | gtk.EXPAND, gtk.FILL | gtk.EXPAND, 1, 1)
-
- # transport frame
--
-+
- self.transport_frame = gtk.Frame(' Transport type ')
- self.vbox.pack_start(self.transport_frame, False, True, 0)
-
-@@ -146,21 +145,22 @@ class srvsvcConnectDialog(gtk.Dialog):
-
- self.rpc_smb_tcpip_radio_button = gtk.RadioButton(None,
- 'RPC over SMB over TCP/IP ')
-- self.rpc_smb_tcpip_radio_button.set_tooltip_text('ncacn_np type : Recomended (default)'
-- ) # # according MS-SRVS specification
-+ self.rpc_smb_tcpip_radio_button.set_tooltip_text(
-+ 'ncacn_np type : Recomended (default)')
-+ # Default according MS-SRVS specification
-+
- self.rpc_smb_tcpip_radio_button.set_active(self.transport_type
- == 0)
- vbox.pack_start(self.rpc_smb_tcpip_radio_button)
-
--
- self.rpc_tcpip_radio_button = \
- gtk.RadioButton(self.rpc_smb_tcpip_radio_button,
- 'RPC over TCP/IP')
-- self.rpc_tcpip_radio_button.set_tooltip_text('ncacn_ip_tcp type')
-+ self.rpc_tcpip_radio_button.set_tooltip_text('ncacn_ip_tcp type'
-+ )
- self.rpc_tcpip_radio_button.set_active(self.transport_type == 1)
- vbox.pack_start(self.rpc_tcpip_radio_button)
-
--
- self.localhost_radio_button = \
- gtk.RadioButton(self.rpc_tcpip_radio_button, 'Localhost')
- self.localhost_radio_button.set_tooltip_text('ncalrpc type') # # MS-SRVS specification
-@@ -188,42 +188,42 @@ class srvsvcConnectDialog(gtk.Dialog):
- self.on_radio_button_toggled)
-
- def get_server_address(self):
-- if self.get_transport_type() is 2:
-- return '127.0.0.1'
-- return self.server_address_entry.get_text().strip()
-+ if self.get_transport_type() is 2:
-+ return '127.0.0.1'
-+ return self.server_address_entry.get_text().strip()
-
- def get_username(self):
-- return self.username_entry.get_text().strip()
-+ return self.username_entry.get_text().strip()
-
- def get_password(self):
-- return self.password_entry.get_text()
-+ return self.password_entry.get_text()
-
- def update_sensitivity(self):
-- server_required = \
-- not self.localhost_radio_button.get_active()
-- self.server_address_entry.set_sensitive(server_required)
-+ server_required = not self.localhost_radio_button.get_active()
-+ self.server_address_entry.set_sensitive(server_required)
-
- def get_transport_type(self):
-- if self.rpc_smb_tcpip_radio_button.get_active():
-- return 0
-- elif self.rpc_tcpip_radio_button.get_active():
-- return 1
-- elif self.localhost_radio_button.get_active():
-- return 2
-- else:
-- return -1
-+ if self.rpc_smb_tcpip_radio_button.get_active():
-+ return 0
-+ elif self.rpc_tcpip_radio_button.get_active():
-+ return 1
-+ elif self.localhost_radio_button.get_active():
-+ return 2
-+ else:
-+ return -1
-
- def on_radio_button_toggled(self, widget):
-- self.update_sensitivity()
-+ self.update_sensitivity()
-
-
- class ShareAddEditDialog(gtk.Dialog):
-
-- """ Share add and edit dialog
-+ """
-+ Share add and edit dialog
-
-- If 'edit_mode' is set to True then in Edit mode .
-- Immutable fields are automatically greyed out.
-- """
-+ If 'edit_mode' is set to True then in Edit mode .
-+ Immutable fields are automatically greyed out.
-+ """
-
- def __init__(self, pipe_manager, share=None):
- """ Class initialiser """
-@@ -232,12 +232,11 @@ class ShareAddEditDialog(gtk.Dialog):
- self.pipe = pipe_manager
- self.islocal = self.pipe.islocal
-
--
-- if share is None :
-+ if share is None:
- self.edit_mode = 0
- self.share = self.pipe.get_share_object()
-- else :
-- self.edit_mode = 1
-+ else:
-+ self.edit_mode = 1
- self.share = share
- self.share_to_fields()
- self.create()
-@@ -245,10 +244,9 @@ class ShareAddEditDialog(gtk.Dialog):
- self.set_window_mode()
- self.set_modal(True)
-
--
--
- def set_window_mode(self):
- """ Deactivates a bunch of widgets in Edit mode """
-+
- if self.edit_mode:
- self.share_name_entry.set_sensitive(False)
- self.stype_disktree_radio_button.set_sensitive(False)
-@@ -257,70 +255,73 @@ class ShareAddEditDialog(gtk.Dialog):
- self.sflag_temp_check_button.set_sensitive(False)
- self.sflag_hidden_check_button.set_sensitive(False)
-
--
--
-- def get_stype_final(self):
-+ def get_stype_final(self):
- """ Calculates share type from base type and share flags """
-+
- stype = self.stype
-- if self.flags[0] :
-+ if self.flags[0]:
- stype |= srvsvc.STYPE_TEMPORARY
-- if self.flags[1] :
-- stype |= -(srvsvc.STYPE_HIDDEN)
-+ if self.flags[1]:
-+ stype |= -srvsvc.STYPE_HIDDEN
- return stype
-
--
--
- def validate_fields(self):
-+ """ Checks for some Errors"""
-
-- if type(self) is ShareAddEditDialog :
-+ if type(self) is ShareAddEditDialog:
- name = self.share_name_entry.get_text()
-- elif type(self) is ShareWizardDialog :
-+ elif type(self) is ShareWizardDialog:
- name = self.sname
-
- if len(name) == 0:
-- return "Share name may not be empty!"
-+ return 'Share name may not be empty!'
-
- if not self.pipe.name_validate(name):
-- return "Invalid Share name"
-+ return 'Invalid Share name'
-
-- if (not self.edit_mode):
-+ if not self.edit_mode:
- for share in self.pipe.share_list:
- if share.name == name:
-- return ' '.join(["A Share with the name : ", share.name ,"already exists!"])
-+ return ' '.join(['A Share with the name : ',
-+ share.name, 'already exists!'])
-
- return None
-
--
--
-- def toggle_pwd_visiblity(self,widget,Junk):
-+ def toggle_pwd_visiblity(self, widget, Junk):
- """ Toggels Password visiblity"""
-+
- mode = self.set_pw_visiblity.get_active()
- self.share_password_entry.set_visibility(mode)
-
--
--
-- def share_to_fields(self):
-+ def share_to_fields(self):
- """ Gets values from the share . """
-+
- self.sname = self.share.name
-- self.stype = self.pipe.get_share_type_info(self.share.type,'base_type')
-- self.flags = self.pipe.get_share_type_info(self.share.type,'flags')
-+ self.stype = self.pipe.get_share_type_info(self.share.type,
-+ 'base_type')
-+ self.flags = self.pipe.get_share_type_info(self.share.type,
-+ 'flags')
- self.comment = self.share.comment
- self.max_users = self.share.max_users
- if self.share.password is None:
-- self.password = ""
-+ self.password = ''
- else:
- self.password = self.share.password
- self.path = self.share.path
-
-- def fields_to_gui (self):
-- """" Used to reset the gui fields from share fields on apply"""
-+ def fields_to_gui(self):
-+ """ Used to reset the gui fields from share fields on apply"""
-+
- self.share_name_entry.set_text(self.sname)
- self.share_comment_entry.set_text(self.comment)
- self.share_password_entry.set_text(self.password)
-
-- self.stype_disktree_radio_button.set_active(self.stype == srvsvc.STYPE_DISKTREE)
-- self.stype_printq_radio_button.set_active(self.stype == srvsvc.STYPE_PRINTQ )
-- self.stype_ipc_radio_button.set_active(self.stype == srvsvc.STYPE_IPC)
-+ self.stype_disktree_radio_button.set_active(self.stype
-+ == srvsvc.STYPE_DISKTREE)
-+ self.stype_printq_radio_button.set_active(self.stype
-+ == srvsvc.STYPE_PRINTQ)
-+ self.stype_ipc_radio_button.set_active(self.stype
-+ == srvsvc.STYPE_IPC)
-
- self.sflag_temp_check_button.set_active(self.flags[0])
- self.sflag_hidden_check_button.set_active(self.flags[1])
-@@ -331,91 +332,87 @@ class ShareAddEditDialog(gtk.Dialog):
- self.file_entry.set_text(self.path)
- self.max_users_spinbox.set_value(self.max_users)
-
--
--
- def collect_fields(self):
- """ Collects fields from the GUI and saves in class variables """
-+
- self.sname = self.share_name_entry.get_text()
- self.comment = self.share_comment_entry.get_text()
- self.password = self.share_password_entry.get_text()
-+
- # Now to handle the share type resolution
-- if self.stype_disktree_radio_button.get_active() :
-+ if self.stype_disktree_radio_button.get_active():
- self.stype = srvsvc.STYPE_DISKTREE
-- elif self.stype_printq_radio_button.get_active() :
-+ elif self.stype_printq_radio_button.get_active():
- self.stype = srvsvc.STYPE_PRINTQ
- else:
- self.stype = srvsvc.STYPE_IPC
- # check flags
-- self.flags = [False,False]
-+ self.flags = [False, False]
- if self.sflag_temp_check_button.get_active():
- self.flags[0] = True
- if self.sflag_hidden_check_button.get_active():
- self.flags[1] = True
-- if self.islocal :
-+ if self.islocal:
- self.path = self.file_button.get_filename()
- else:
- self.path = self.path_entry.get_text()
- self.max_users = self.max_users_spinbox.get_value_as_int()
-
--
--
-- def fields_to_share(self):
-+ def fields_to_share(self):
- """ Modify a share type 502 object from the fields collected """
-+
- self.collect_fields()
-- self.share.name= self.sname
-- self.share.type= self.get_stype_final()
-- self.share.comment= self.comment
-- self.share.max_users= self.max_users
-- self.share.password= self.password
-+ self.share.name = self.sname
-+ self.share.type = self.get_stype_final()
-+ self.share.comment = self.comment
-+ self.share.max_users = self.max_users
-+ self.share.password = self.password
- self.share.path = self.pipe.fix_path_format(self.path)
-
--
--
--
--
-- def create(self):
-+ def create(self):
- """ Create the window """
-- self.set_title(' '.join([(" New Share",
-- " Edit Share : ")[self.edit_mode],self.sname]))
-- self.icon_name = ["network-folder","network-printer",
-- "network","network-pipe"][self.stype]
-- self.icon_filename = \
-- os.path.join(sys.path[0],"images",''.join([self.icon_name,'.png']))
-+
-+ self.set_title(' '.join([(' New Share', ' Edit Share : '
-+ )[self.edit_mode], self.sname]))
-+ self.icon_name = ['network-folder', 'network-printer', 'network'
-+ , 'network-pipe'][self.stype]
-+ self.icon_filename = os.path.join(sys.path[0], 'images',
-+ ''.join([self.icon_name, '.png']))
- self.set_icon_from_file(self.icon_filename)
- self.vbox.set_spacing(3)
- self.set_border_width(5)
- self.set_decorated(True)
- self.set_resizable(False)
--
--
-- #artwork
-- self.desc_box= gtk.HBox()
-- self.vbox.pack_start(self.desc_box,False,True,0)
-+
-+ # artwork
-+ self.desc_box = gtk.HBox()
-+ self.vbox.pack_start(self.desc_box, False, True, 0)
-
- hbox = gtk.HBox()
-- icon = gtk.Image()
-+ icon = gtk.Image()
- icon.set_from_file(self.icon_filename)
-
- hbox.pack_start(icon, False, True, 0)
-- self.desc_box.pack_start(hbox,False, True, 0)
--
-+ self.desc_box.pack_start(hbox, False, True, 0)
-
- hbox = gtk.HBox()
- label = gtk.Label()
-- if self.edit_mode :
-- label.set_markup("<b>%s</b>" %" ".join(["Editing The Share : ",self.sname]))
-- else :
-- label.set_markup("<b>Add a New Share</b>")
-+ if self.edit_mode:
-+ label.set_markup('<b>%s</b>'
-+ % ' '.join(['Editing The Share : ',
-+ self.sname]))
-+ else:
-+ label.set_markup('<b>Add a New Share</b>')
- label.set_alignment(0.5, 0.5)
- hbox.pack_start(label, True, True, 0)
-- self.desc_box.pack_start(hbox,True, True, 0)
--
-- # the main form
-+ self.desc_box.pack_start(hbox, True, True, 0)
-+
-+ # main form box
-
- self.form_box = gtk.VBox()
- self.vbox.pack_start(self.form_box, True, True, 0)
--
-- # Name , password and comment (npc) frame
-+
-+ # Name , password and comment (npc) frame
- frame = gtk.Frame()
- label = gtk.Label('<b>Name and Comment</b>')
- label.set_use_markup(True)
-@@ -423,58 +420,68 @@ class ShareAddEditDialog(gtk.Dialog):
- self.form_box.pack_start(frame, True, True, 0)
- frame.set_border_width(5)
-
-- table = gtk.Table(4,2)
-+ table = gtk.Table(4, 2)
- table.set_border_width(5)
- table.set_row_spacings(1)
- table.set_col_spacings(6)
-
- frame.add(table)
-
-- label = gtk.Label(" Share Name : ")
-+ label = gtk.Label(' Share Name : ')
- label.set_alignment(1, 0.5)
-- table.attach(label, 0, 1, 0, 1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 0, 1, 0, 1, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
- self.share_name_entry = gtk.Entry()
- self.share_name_entry.set_tooltip_text('Enter the Share Name')
- self.share_name_entry.set_text(self.sname)
- self.share_name_entry.set_activates_default(True)
-
-- # dcesrv_srvsvc name check does this but just to reduce chances of an error limit max length
-+ # dcesrv_srvsvc name check does this but just to reduce chances of an error limit max length
- if self.flags[1]:
- self.share_name_entry.set_max_length(12)
- else:
- self.share_name_entry.set_max_length(80)
-- table.attach(self.share_name_entry, 1, 2, 0, 1, gtk.FILL | gtk.EXPAND, gtk.FILL | gtk.EXPAND, 1, 1)
-+ table.attach(self.share_name_entry, 1, 2, 0, 1,
-+ gtk.FILL | gtk.EXPAND, gtk.FILL | gtk.EXPAND, 1, 1)
-
-- label = gtk.Label(" Comment : ")
-+ label = gtk.Label(' Comment : ')
- label.set_alignment(1, 0.5)
-- table.attach(label, 0, 1, 1, 2, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 0, 1, 1, 2, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
- self.share_comment_entry = gtk.Entry()
-- self.share_comment_entry.set_max_length(48) # max allowed is 48 MS-SRVS
-+ self.share_comment_entry.set_max_length(48) # max allowed is 48 MS-SRVS
- self.share_comment_entry.set_activates_default(True)
- self.share_comment_entry.set_text(self.comment)
-- self.share_comment_entry.set_tooltip_text('Add a Comment or Description of the Share, Will default to share_type description')
-- table.attach(self.share_comment_entry, 1, 2, 1, 2, gtk.FILL | gtk.EXPAND, gtk.FILL | gtk.EXPAND, 1, 1)
-+ self.share_comment_entry.set_tooltip_text('Add a Comment or Description of the Share, Will default to share_type description'
-+ )
-+ table.attach(self.share_comment_entry, 1, 2, 1, 2,
-+ gtk.FILL | gtk.EXPAND, gtk.FILL | gtk.EXPAND, 1, 1)
-
- label = gtk.Label(' Password : ')
- label.set_alignment(1, 0.5)
-- table.attach(label, 0, 1, 2, 3, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 0, 1, 2, 3, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
- self.share_password_entry = gtk.Entry()
- self.share_password_entry.set_activates_default(True)
- self.share_password_entry.set_text(self.password)
- self.share_password_entry.set_visibility(False)
-- self.share_password_entry.set_tooltip_text('Set a Share Password')
-- table.attach(self.share_password_entry, 1, 2, 2, 3, gtk.FILL | gtk.EXPAND, gtk.FILL | gtk.EXPAND, 1, 1)
--
-- self.set_pw_visiblity = gtk.CheckButton("Visible")
-- self.set_pw_visiblity.set_tooltip_text('Enable or disable the password visiblity')
-- self.set_pw_visiblity.set_active(False)
-- self.set_pw_visiblity.connect("toggled",self.toggle_pwd_visiblity,None)
-- table.attach(self.set_pw_visiblity, 1, 2, 3, 4,gtk.SHRINK,gtk.FILL, 0, 0)
-+ self.share_password_entry.set_tooltip_text(
-+ 'Set a Share Password')
-+ table.attach(self.share_password_entry, 1, 2, 2, 3,
-+ gtk.FILL | gtk.EXPAND, gtk.FILL | gtk.EXPAND, 1, 1)
-
-
-+ self.set_pw_visiblity = gtk.CheckButton('Visible')
-+ self.set_pw_visiblity.set_tooltip_text('Enable or disable the password visiblity'
-+ )
-+ self.set_pw_visiblity.set_active(False)
-+ self.set_pw_visiblity.connect('toggled',
-+ self.toggle_pwd_visiblity, None)
-+ table.attach(self.set_pw_visiblity, 1, 2, 3, 4, gtk.SHRINK,
-+ gtk.FILL, 0, 0)
-
- # Share frame
- frame = gtk.Frame()
-@@ -484,50 +491,63 @@ class ShareAddEditDialog(gtk.Dialog):
-
- self.form_box.pack_start(frame, True, True, 0)
-
-- table = gtk.Table(1,2,True)
-+ table = gtk.Table(1, 2, True)
- frame.add(table)
-
- # Base Share Types
- vbox = gtk.VBox()
- vbox.set_border_width(5)
-- table.attach(vbox,0,1,0,1,gtk.FILL | gtk.EXPAND, gtk.FILL | gtk.EXPAND, 1, 1)
-+ table.attach(vbox, 0, 1, 0, 1, gtk.FILL | gtk.EXPAND,
-+ gtk.FILL | gtk.EXPAND, 1, 1)
-
- # Radio buttons
-- self.stype_disktree_radio_button = gtk.RadioButton(None,'Disktree')
-- self.stype_disktree_radio_button.set_tooltip_text('Disktree (folder) type Share. Default')
-- self.stype_disktree_radio_button.set_active(self.stype == srvsvc.STYPE_DISKTREE)
-+ self.stype_disktree_radio_button = gtk.RadioButton(None,
-+ 'Disktree')
-+ self.stype_disktree_radio_button.set_tooltip_text(
-+ 'Disktree (folder) type Share. Default')
-+ self.stype_disktree_radio_button.set_active(self.stype
-+ == srvsvc.STYPE_DISKTREE)
- vbox.pack_start(self.stype_disktree_radio_button)
-
-- self.stype_printq_radio_button = gtk.RadioButton(self.stype_disktree_radio_button,'Print Queue')
-- self.stype_printq_radio_button.set_tooltip_text('Shared Print Queue')
-- self.stype_printq_radio_button.set_active(self.stype == srvsvc.STYPE_PRINTQ)
-- #vbox.pack_start(self.stype_printq_radio_button)
-- #deactivating this option until samba4 is fixed TODO activate once base is fixed
--
-- self.stype_ipc_radio_button = gtk.RadioButton(self.stype_printq_radio_button,'IPC ')
-- self.stype_ipc_radio_button.set_tooltip_text('Shared Interprocess Communication Pipe (IPC).')
-- self.stype_ipc_radio_button.set_active(self.stype == srvsvc.STYPE_IPC)
-- #vbox.pack_start(self.stype_ipc_radio_button)
-+ self.stype_printq_radio_button = \
-+ gtk.RadioButton(self.stype_disktree_radio_button,
-+ 'Print Queue')
-+ self.stype_printq_radio_button.set_tooltip_text(
-+ 'Shared Print Queue')
-+ self.stype_printq_radio_button.set_active(self.stype
-+ == srvsvc.STYPE_PRINTQ)
-+ # vbox.pack_start(self.stype_printq_radio_button)
-+ # deactivating this option until samba4 is fixed TODO activate once base is fixed
-+
-+ self.stype_ipc_radio_button = \
-+ gtk.RadioButton(self.stype_printq_radio_button, 'IPC ')
-+ self.stype_ipc_radio_button.set_tooltip_text(
-+ 'Shared Interprocess Communication Pipe (IPC).')
-+ self.stype_ipc_radio_button.set_active(self.stype
-+ == srvsvc.STYPE_IPC)
-+ #vbox.pack_start(self.stype_ipc_radio_button)
- #deactivating this option until samba4 is fixed TODO activate once base is fixed
--
-+
- # Special Share Flags
- vbox = gtk.VBox()
- vbox.set_border_width(5)
-- table.attach(vbox,1,2,0,1,gtk.FILL | gtk.EXPAND, gtk.FILL | gtk.EXPAND, 1, 1)
-+ table.attach(vbox, 1, 2, 0, 1, gtk.FILL | gtk.EXPAND,
-+ gtk.FILL | gtk.EXPAND, 1, 1)
-
- # Check buttons
- self.sflag_temp_check_button = gtk.CheckButton('Temporary')
-- self.sflag_temp_check_button.set_tooltip_text('Make share Temporary')
-+ self.sflag_temp_check_button.set_tooltip_text(
-+ 'Make share Temporary')
- self.sflag_temp_check_button.set_active(self.flags[0])
- vbox.pack_start(self.sflag_temp_check_button)
-
- self.sflag_hidden_check_button = gtk.CheckButton('Hidden ')
-- self.sflag_hidden_check_button.set_tooltip_text('Make share hidden.')
-+ self.sflag_hidden_check_button.set_tooltip_text(
-+ 'Make share hidden.')
- self.sflag_hidden_check_button.set_active(self.flags[1])
- vbox.pack_start(self.sflag_hidden_check_button)
-
- # Path frame
--
- frame = gtk.Frame()
- label = gtk.Label('<b>Path</b>')
- label.set_use_markup(True)
-@@ -535,31 +555,37 @@ class ShareAddEditDialog(gtk.Dialog):
- self.form_box.pack_start(frame, True, True, 0)
- frame.set_border_width(5)
-
-- table = gtk.Table(1,2)
-+ table = gtk.Table(1, 2)
- table.set_col_spacings(6)
- frame.add(table)
-
-- label = gtk.Label("Share path : ")
-+ label = gtk.Label('Share path : ')
- label.set_alignment(0, 0.5)
-- table.attach(label, 0, 1, 0, 1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
--
-+ table.attach(label, 0, 1, 0, 1, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-+
- # FIXME may need another parameter to select type of selctor in combination with local
- # eg selecting a ipc / printer may be easier with a path
-
-- if self.islocal :
-+ if self.islocal:
- self.file_button = gtk.FileChooserButton('Browse')
- self.file_button.set_current_folder(self.path)
- self.file_button.set_action(gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER)
-- self.file_button.set_tooltip_text('Select the folder to share')
-- table.attach(self.file_button, 1, 2, 0, 1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ self.file_button.set_tooltip_text(
-+ 'Select the folder to share')
-+ table.attach(self.file_button, 1, 2, 0, 1, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-+
- else:
- self.file_entry = gtk.Entry()
- self.file_entry.set_text(self.path)
-- self.file_entry.set_tooltip_text('Path to the folder to share')
-- table.attach(self.file_entry, 1, 2, 0, 1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ self.file_entry.set_tooltip_text('Path to the folder to share'
-+ )
-+ table.attach(self.file_entry, 1, 2, 0, 1, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
- # max users frame
--
-+
- frame = gtk.Frame()
- label = gtk.Label('<b>Max Users</b>')
- label.set_use_markup(True)
-@@ -567,104 +593,111 @@ class ShareAddEditDialog(gtk.Dialog):
- self.form_box.pack_start(frame, True, True, 0)
- frame.set_border_width(5)
-
-- table = gtk.Table(1,2)
-+ table = gtk.Table(1, 2)
- table.set_col_spacings(6)
- frame.add(table)
-
-- label = gtk.Label(" Max Users : ")
-+ label = gtk.Label(' Max Users : ')
- label.set_alignment(0, 0.5)
-- table.attach(label, 0, 1, 0, 1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 0, 1, 0, 1, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
- # adjustment for max users spinbox
-- self.max_users_adjustment = gtk.Adjustment(self.max_users,1,0xFFFFFFFF,1,5)
-+ self.max_users_adjustment = gtk.Adjustment(self.max_users, 1,
-+ 0xFFFFFFFF, 1, 5)
-
-- self.max_users_spinbox = gtk.SpinButton(self.max_users_adjustment)
-+ self.max_users_spinbox = \
-+ gtk.SpinButton(self.max_users_adjustment)
- self.max_users_spinbox.set_numeric(True)
-- self.max_users_spinbox.set_tooltip_text('Max Users for the Share')
-- table.attach(self.max_users_spinbox, 1, 2, 0, 1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ self.max_users_spinbox.set_tooltip_text('Max Users for the Share'
-+ )
-+ table.attach(self.max_users_spinbox, 1, 2, 0, 1,
-+ gtk.FILL, gtk.FILL | gtk.EXPAND, 0, 0)
-
- # action area
--
-+
- self.action_area.set_layout(gtk.BUTTONBOX_END)
-
-- self.cancel_button = gtk.Button("Cancel", gtk.STOCK_CANCEL)
-+ self.cancel_button = gtk.Button('Cancel', gtk.STOCK_CANCEL)
- self.cancel_button.set_flags(gtk.CAN_DEFAULT)
- self.add_action_widget(self.cancel_button, gtk.RESPONSE_CANCEL)
-
-- self.apply_button = gtk.Button("Apply", gtk.STOCK_APPLY)
-+ self.apply_button = gtk.Button('Apply', gtk.STOCK_APPLY)
- self.apply_button.set_flags(gtk.CAN_DEFAULT)
- self.apply_button.set_sensitive(self.edit_mode)
- self.add_action_widget(self.apply_button, gtk.RESPONSE_APPLY)
-
-- self.ok_button = gtk.Button("OK", gtk.STOCK_OK)
-+ self.ok_button = gtk.Button('OK', gtk.STOCK_OK)
- self.ok_button.set_flags(gtk.CAN_DEFAULT)
- self.add_action_widget(self.ok_button, gtk.RESPONSE_OK)
-
- self.set_default_response(gtk.RESPONSE_OK)
-
-
--
--
- class DeleteDialog(gtk.Dialog):
-+
- """ The delete dialog """
-
- def __init__(self, pipe_manager, share=None):
- """ Class initialiser """
-+
- super(DeleteDialog, self).__init__()
- self.pipe = pipe_manager
- self.set_modal(True)
-
--
-- if share is None :
-- raise KeyError("Non existant Share cannot be deleted")
-+ if share is None:
-+ raise KeyError('Non existant Share cannot be deleted')
-
- self.share = share
-
- # resolving some types that are required for gtk dialog creation
-- self.stype = self.pipe.get_share_type_info(self.share.type,'base_type')
-- self.flags = self.pipe.get_share_type_info(self.share.type,'flags')
-- self.generic_typestring = self.pipe.get_share_type_info(self.share.type,'typestring')
-- self.desc = self.pipe.get_share_type_info(self.share.type,'desc')
-+
-+ self.stype = self.pipe.get_share_type_info(self.share.type,
-+ 'base_type')
-+ self.flags = self.pipe.get_share_type_info(self.share.type,
-+ 'flags')
-+ self.generic_typestring = \
-+ self.pipe.get_share_type_info(self.share.type, 'typestring')
-+ self.desc = self.pipe.get_share_type_info(self.share.type,
-+ 'desc')
-
- self.create()
- self.set_position(gtk.WIN_POS_CENTER)
-
--
--
-- def create(self):
-+ def create(self):
- """ Create the window """
-- self.set_title(' '.join([" Delete Share",self.share.name]))
-- self.icon_name = ["network-folder","network-printer",
-- "network","network-pipe"][self.stype]
-- self.icon_filename = \
-- os.path.join(sys.path[0],"images",''.join([self.icon_name,'.png']))
-+
-+ self.set_title(' '.join([' Delete Share', self.share.name]))
-+ self.icon_name = ['network-folder', 'network-printer', 'network'
-+ , 'network-pipe'][self.stype]
-+ self.icon_filename = os.path.join(sys.path[0], 'images',
-+ ''.join([self.icon_name, '.png']))
- self.set_icon_from_file(self.icon_filename)
- self.vbox.set_spacing(3)
- self.set_border_width(5)
- self.set_decorated(True)
- self.set_resizable(False)
-
--
- #artwork
-- self.desc_box= gtk.HBox()
-- self.vbox.pack_start(self.desc_box,False,True,0)
-+ self.desc_box = gtk.HBox()
-+ self.vbox.pack_start(self.desc_box, False, True, 0)
-
- hbox = gtk.HBox()
-- icon = gtk.Image()
-+ icon = gtk.Image()
- icon.set_from_file(self.icon_filename)
-
- hbox.pack_start(icon, False, True, 0)
-- self.desc_box.pack_start(hbox,False, True, 0)
-+ self.desc_box.pack_start(hbox, False, True, 0)
-
- hbox = gtk.HBox()
- label = gtk.Label()
-- label.set_text("You are deleting the share with the following properties")
-+ label.set_text(
-+ 'You are deleting the share with the following properties')
- label.set_alignment(0, 0.5)
- hbox.pack_start(label, True, True, 0)
-- self.desc_box.pack_start(hbox,True, True, 0)
--
-- # the main form
-+ self.desc_box.pack_start(hbox, True, True, 0)
-
-+ # main form box
- self.form_box = gtk.VBox()
- self.vbox.pack_start(self.form_box, True, True, 0)
-
-@@ -675,7 +708,7 @@ class DeleteDialog(gtk.Dialog):
- self.form_box.pack_start(frame, True, True, 0)
- frame.set_border_width(5)
-
-- table = gtk.Table(11,2)
-+ table = gtk.Table(11, 2)
- table.set_border_width(5)
- table.set_row_spacings(2)
- table.set_col_spacings(6)
-@@ -684,117 +717,137 @@ class DeleteDialog(gtk.Dialog):
-
- label = gtk.Label(' Share Name : ')
- label.set_alignment(1, 0.5)
-- table.attach(label, 0, 1, 0, 1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 0, 1, 0, 1, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
- label = gtk.Label(self.share.name)
- label.set_alignment(0, 0.5)
-- table.attach(label, 1, 2, 0, 1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 1, 2, 0, 1, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
- label = gtk.Label(' Comment : ')
- label.set_alignment(1, 0.5)
-- table.attach(label, 0, 1, 1, 2, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 0, 1, 1, 2, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
- label = gtk.Label(self.share.comment)
- label.set_alignment(0, 0.5)
-- table.attach(label, 1, 2, 1, 2, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 1, 2, 1, 2, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
- label = gtk.Label(' Path : ')
- label.set_alignment(1, 0.5)
-- table.attach(label, 0, 1, 2, 3, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 0, 1, 2, 3, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
- label = gtk.Label(self.share.path)
- label.set_alignment(0, 0.5)
-- table.attach(label, 1, 2, 2, 3, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 1, 2, 2, 3, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
- label = gtk.Label(' Password : ')
- label.set_alignment(1, 0.5)
-- table.attach(label, 0, 1, 3, 4, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 0, 1, 3, 4, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
- if self.share.password:
-- label = gtk.Label("Share Password Enabled")
-+ label = gtk.Label('Share Password Enabled')
- else:
-- label = gtk.Label("Share Password Disabled")
-+ label = gtk.Label('Share Password Disabled')
- label.set_alignment(0, 0.5)
-- table.attach(label, 1, 2, 3, 4, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 1, 2, 3, 4, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
- label = gtk.Label('<b> Share Type</b>')
- label.set_use_markup(True)
- label.set_alignment(0, 0.5)
-- table.attach(label, 0, 1, 4, 5, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 0, 1, 4, 5, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
- label = gtk.Label(' Generic Typestring : ')
- label.set_alignment(1, 0.5)
-- table.attach(label, 0, 1, 5, 6, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 0, 1, 5, 6, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
- label = gtk.Label(self.generic_typestring)
- label.set_alignment(0, 0.5)
-- table.attach(label, 1, 2, 5, 6, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 1, 2, 5, 6, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
-- label = gtk.Label(' Type Description : ') #spaces for Gui align do not change
-+ label = gtk.Label(' Type Description : ') # spaces for Gui align do not change
- label.set_alignment(1, 0.5)
-- table.attach(label, 0, 1, 6, 7, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 0, 1, 6, 7, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
- label = gtk.Label(self.desc)
- label.set_alignment(0, 0.5)
-- table.attach(label, 1, 2, 6, 7, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 1, 2, 6, 7, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-+
-
- label = gtk.Label()
- label.set_markup('<b> Special Flags </b>')
- label.set_alignment(0, 0.5)
-- table.attach(label, 0, 1, 7, 8, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 0, 1, 7, 8, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
- label = gtk.Label(' Temporary : ')
- label.set_alignment(1, 0.5)
-- table.attach(label, 0, 1, 8, 9, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 0, 1, 8, 9, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
- label = gtk.Label(str(self.flags[0]))
- label.set_alignment(0, 0.5)
-- table.attach(label, 1, 2, 8, 9, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 1, 8, 9, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
-- label = gtk.Label(' Hidden : ') #spaces for Gui align do not change
-+ label = gtk.Label(' Hidden : ') # spaces for Gui align do not change
- label.set_alignment(1, 0.5)
-- table.attach(label, 0, 1, 9, 10, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 0, 1, 9, 10, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
- label = gtk.Label(str(self.flags[1]))
- label.set_alignment(0, 0.5)
-- table.attach(label, 1, 2, 9, 10, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 1, 2, 9, 10, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
- label = gtk.Label(' Max Users : ')
- label.set_alignment(1, 0.5)
-- table.attach(label, 0, 1, 10, 11, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 0, 1, 10, 11, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
- label = gtk.Label(self.share.max_users)
- label.set_alignment(0, 0.5)
-- table.attach(label, 1, 2, 10, 11, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 1, 2, 10, 11, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
-- box = gtk.VBox(3)
-- label = gtk.Label("Are yous sure you want to delete the share ?")
-- label.set_alignment(0.5,0.5)
-- box.pack_start(label,True,True,0)
-- warning ="(Please Note this is an irreversable action)"
-+ box = gtk.VBox(3)
-+ label = gtk.Label('Are yous sure you want to delete the share ?'
-+ )
-+ label.set_alignment(0.5, 0.5)
-+ box.pack_start(label, True, True, 0)
-+ warning = '(Please Note this is an irreversable action)'
- label = gtk.Label('<span foreground="red">%s</span>' % warning)
- label.set_use_markup(True)
-- label.set_alignment(0.5,0.5)
-- box.pack_start(label,True,True,0)
-+ label.set_alignment(0.5, 0.5)
-+ box.pack_start(label, True, True, 0)
- box.set_border_width(5)
-
-- self.vbox.pack_start(box,True,True,0)
--
--
-+ self.vbox.pack_start(box, True, True, 0)
-
- # action area
--
- self.action_area.set_layout(gtk.BUTTONBOX_END)
-
-- self.cancel_button = gtk.Button("Cancel", gtk.STOCK_CANCEL)
-+ self.cancel_button = gtk.Button('Cancel', gtk.STOCK_CANCEL)
- self.cancel_button.set_flags(gtk.CAN_DEFAULT)
- self.add_action_widget(self.cancel_button, gtk.RESPONSE_CANCEL)
-
-- self.ok_button = gtk.Button("Delete", gtk.STOCK_OK)
-+ self.ok_button = gtk.Button('Delete', gtk.STOCK_OK)
- self.add_action_widget(self.ok_button, gtk.RESPONSE_OK)
-
- self.set_default_response(gtk.RESPONSE_OK)
-
-+
- class ShareWizardDialog(ShareAddEditDialog):
-
- def create(self):
-@@ -802,12 +855,12 @@ class ShareWizardDialog(ShareAddEditDialog):
- self.page = 0
- self.set_default_size(400, 275)
-
-- self.main_box = gtk.VBox()
-- self.vbox.pack_start(self.main_box,True,True,0)
-+ self.main_box = gtk.VBox()
-+ self.vbox.pack_start(self.main_box, True, True, 0)
-
- vbox = gtk.VBox()
- vbox.set_border_width(5)
-- samba_image_filename = os.path.join(sys.path[0],'images',
-+ samba_image_filename = os.path.join(sys.path[0], 'images',
- 'samba-logo-small.png')
- samba_image = gtk.Image()
- samba_image.set_from_file(samba_image_filename)
-@@ -815,7 +868,7 @@ class ShareWizardDialog(ShareAddEditDialog):
- self.main_box.pack_start(vbox, False, True, 0)
-
- vbox = gtk.VBox()
-- self.main_box.pack_start(vbox,True,True,0)
-+ self.main_box.pack_start(vbox, True, True, 0)
-
- frame = gtk.Frame()
- frame.set_border_width(10)
-@@ -826,19 +879,18 @@ class ShareWizardDialog(ShareAddEditDialog):
- frame.add(self.data_box)
-
- self.title_label = gtk.Label()
-- self.title_label.set_alignment(0.05,0.5)
-- self.data_box.pack_start(self.title_label,False,True,1)
-+ self.title_label.set_alignment(0.05, 0.5)
-+ self.data_box.pack_start(self.title_label, False, True, 1)
-
- self.info_label = gtk.Label()
-- self.info_label.set_alignment(.15,0.5)
-- self.data_box.pack_start(self.info_label,False,True,0)
-+ self.info_label.set_alignment(.15, 0.5)
-+ self.data_box.pack_start(self.info_label, False, True, 0)
-
- self.fields_box = gtk.VBox()
-- self.data_box.pack_start(self.fields_box,True,True,3)
--
-+ self.data_box.pack_start(self.fields_box, True, True, 3)
-
- # create all entities do not attach them so as to that they are refrenced
-- #name
-+ # name
- self.share_name_entry = gtk.Entry()
- self.share_name_entry.set_tooltip_text('Enter the Share Name')
- self.share_name_entry.set_text(self.sname)
-@@ -849,93 +901,98 @@ class ShareWizardDialog(ShareAddEditDialog):
- else:
- self.share_name_entry.set_max_length(80)
-
-- #comment
-+ # comment
- self.share_comment_entry = gtk.Entry()
-- self.share_comment_entry.set_max_length(48) # max allowed is 48 MS-SRVS
-+ self.share_comment_entry.set_max_length(48) # max allowed is 48 MS-SRVS
- self.share_comment_entry.set_activates_default(True)
- self.share_comment_entry.set_text(self.comment)
-- self.share_comment_entry.set_tooltip_text('Add a Comment or Description of the Share, Will default to share_type description')
-+ self.share_comment_entry.set_tooltip_text(
-+ 'Add a Comment or Description of the Share. \
-+ Will default to share_type description')
-
-- #password
-+ # password
- self.share_password_entry = gtk.Entry()
- self.share_password_entry.set_activates_default(True)
- self.share_password_entry.set_text(self.password)
-- self.share_password_entry.set_visibility(False)
-- self.share_password_entry.set_tooltip_text('Set a Share Password')
-+ self.share_password_entry.set_tooltip_text(
-+ 'Set a Share Password')
-
- # For radio buttons we define other fields on the fly as these
- # are lost on parent removal , and cause errors on draw .
- # Radio buttons
-- self.stype_disktree_radio_button = gtk.RadioButton(None,'Disktree')
-- self.stype_printq_radio_button = gtk.RadioButton(self.stype_disktree_radio_button,'Print Queue')
-- self.stype_ipc_radio_button = gtk.RadioButton(self.stype_printq_radio_button,'IPC ')
-+ self.stype_disktree_radio_button = gtk.RadioButton(None,
-+ 'Disktree')
-+ self.stype_printq_radio_button = \
-+ gtk.RadioButton(self.stype_disktree_radio_button,
-+ 'Print Queue')
-+ self.stype_ipc_radio_button = \
-+ gtk.RadioButton(self.stype_printq_radio_button, 'IPC ')
-
- self.sflag_temp_check_button = gtk.CheckButton('Temporary')
- self.sflag_hidden_check_button = gtk.CheckButton('Hidden ')
-
-- #path
-+ # path
- if self.islocal:
- self.file_button = gtk.FileChooserButton('Browse')
- else:
- self.file_entry = gtk.Entry()
-
-- #max_users
-- self.max_users_adjustment = gtk.Adjustment(self.max_users,1,0xFFFFFFFF,1,5)
-+ # max_users
-+ self.max_users_adjustment = gtk.Adjustment(self.max_users, 1,
-+ 0xFFFFFFFF, 1, 5)
-
-- self.max_users_spinbox = gtk.SpinButton(self.max_users_adjustment)
-+ self.max_users_spinbox = \
-+ gtk.SpinButton(self.max_users_adjustment)
- self.max_users_spinbox.set_numeric(True)
-- self.max_users_spinbox.set_tooltip_text('Max Users for the Share')
--
-+ self.max_users_spinbox.set_tooltip_text(
-+ 'Max Users for the Share')
-
- self.action_area.set_layout(gtk.BUTTONBOX_CENTER)
-
--
-- self.cancel_button = gtk.Button("Cancel", gtk.STOCK_CANCEL)
-+ self.cancel_button = gtk.Button('Cancel', gtk.STOCK_CANCEL)
- self.cancel_button.set_flags(gtk.CAN_DEFAULT)
- self.add_action_widget(self.cancel_button, gtk.RESPONSE_CANCEL)
-
- self.prev_button = gtk.Button(stock=gtk.STOCK_GO_BACK)
-- self.prev_button.connect("clicked",self.update_fields,-1)
-+ self.prev_button.connect('clicked', self.update_fields, -1)
- self.action_area.pack_start(self.prev_button, False, False, 10)
-
- self.next_button = gtk.Button(stock=gtk.STOCK_GO_FORWARD)
-- self.next_button.connect("clicked", self.update_fields,+1)
-+ self.next_button.connect('clicked', self.update_fields, +1)
- self.action_area.pack_start(self.next_button, False, False, 0)
-
-- self.ok_button = gtk.Button("OK", gtk.STOCK_OK)
-+ self.ok_button = gtk.Button('OK', gtk.STOCK_OK)
- self.ok_button.set_flags(gtk.CAN_DEFAULT)
- self.add_action_widget(self.ok_button, gtk.RESPONSE_OK)
-
- self.set_default_response(gtk.RESPONSE_OK)
-- self.update_fields(None,0)
-+ self.update_fields(None, 0)
-
--
-- def update_fields(self,widget,change):
-+ def update_fields(self, widget, change):
- self.collect_fields()
-- self.page+=change
-+ self.page += change
- for widget in self.fields_box.get_children():
- self.fields_box.remove(widget)
-
-- if self.page == 0 :
-- self.title_label.set_markup('<b>Welcome to the New Share Wizard</b>')
-+ if self.page == 0:
-+ self.title_label.set_markup(
-+ '<b>Welcome to the New Share Wizard</b>')
- self.info_label.set_text(' ')
-
-- label =gtk.Label('Please press next to continue.')
-- label.set_alignment(0,0.5)
-- self.fields_box.pack_start(label,False,True,0)
-+ label = gtk.Label('Please press next to continue.')
-+ label.set_alignment(0, 0.5)
-+ self.fields_box.pack_start(label, False, True, 0)
- self.fields_box.show_all()
- self.prev_button.set_sensitive(False)
- self.next_button.set_sensitive(True)
- self.ok_button.set_sensitive(False)
-
--
--
- self.fields_box.show_all()
--
--
- elif self.page == 1:
-+
- self.title_label.set_markup('<b>Name and Password</b>')
-- self.info_label.set_text('Please enter a valid name and password (optional) for your share.')
-+ self.info_label.set_text('Please enter a valid name and password (optional) for your share.'
-+ )
- self.prev_button.set_sensitive(True)
- self.next_button.set_sensitive(True)
- self.ok_button.set_sensitive(False)
-@@ -944,30 +1001,34 @@ class ShareWizardDialog(ShareAddEditDialog):
- if self.password is not None:
- self.share_comment_entry.set_text(self.password)
-
-- table = gtk.Table(2,2,True)
-+ table = gtk.Table(2, 2, True)
- table.set_border_width(5)
- table.set_row_spacings(2)
- table.set_col_spacings(6)
-
-- label = gtk.Label("* Share Name : ")
-- label.set_alignment(1,0.5)
-+ label = gtk.Label('* Share Name : ')
-+ label.set_alignment(1, 0.5)
-
-- table.attach(label, 0, 1, 0, 1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-- table.attach(self.share_name_entry, 1, 2, 0, 1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 0, 1, 0, 1, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(self.share_name_entry, 1, 2, 0, 1,
-+ gtk.FILL, gtk.FILL | gtk.EXPAND, 0, 0)
-
-- label = gtk.Label(" Share Password : ")
-- label.set_alignment(1,0.5)
-- table.attach(label, 0, 1, 1, 2, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-- table.attach(self.share_password_entry, 1, 2, 1, 2, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ label = gtk.Label(' Share Password : ')
-+ label.set_alignment(1, 0.5)
-
-+ table.attach(label, 0, 1, 1, 2, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(self.share_password_entry, 1, 2, 1, 2,
-+ gtk.FILL, gtk.FILL | gtk.EXPAND, 0, 0)
-
-- self.fields_box.pack_start(table,False,True,0)
-+ self.fields_box.pack_start(table, False, True, 0)
- self.fields_box.show_all()
--
--
- elif self.page == 2:
-+
- self.title_label.set_markup('<b>Comment and Max Users </b>')
-- self.info_label.set_text('Please enter a comment(optional) and select max users')
-+ self.info_label.set_text(
-+ 'Please enter a comment(optional) and select max users')
- self.prev_button.set_sensitive(True)
- self.next_button.set_sensitive(True)
- self.ok_button.set_sensitive(False)
-@@ -975,80 +1036,93 @@ class ShareWizardDialog(ShareAddEditDialog):
- self.share_comment_entry.set_text(self.comment)
- self.max_users_spinbox.set_value(self.max_users)
-
--
-- table = gtk.Table(2,2,True)
-+ table = gtk.Table(2, 2, True)
- table.set_border_width(5)
- table.set_row_spacings(2)
- table.set_col_spacings(6)
-
-- label = gtk.Label(" Share Comment :")
-- label.set_alignment(1,0.5)
-- table.attach(label, 0, 1, 0, 1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-- table.attach(self.share_comment_entry, 1, 2, 0, 1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
--
-- label = gtk.Label(" Max Users : ")
-- label.set_alignment(1,0.5)
-- table.attach(label, 0, 1, 1, 2, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-- table.attach(self.max_users_spinbox, 1, 2, 1, 2, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
--
-- self.fields_box.pack_start(table,False,True,0)
-+ label = gtk.Label(' Share Comment :')
-+ label.set_alignment(1, 0.5)
-+ table.attach(label, 0, 1, 0, 1, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(self.share_comment_entry, 1, 2, 0, 1,
-+ gtk.FILL, gtk.FILL | gtk.EXPAND, 0, 0)
-+
-+ label = gtk.Label(' Max Users : ')
-+ label.set_alignment(1, 0.5)
-+ table.attach(label, 0, 1, 1, 2, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(self.max_users_spinbox, 1, 2, 1, 2,
-+ gtk.FILL, gtk.FILL | gtk.EXPAND, 0, 0)
-+
-+ self.fields_box.pack_start(table, False, True, 0)
- self.fields_box.show_all()
--
- elif self.page == 3:
-+
- self.title_label.set_markup('<b>Share Type Options</b>')
-- self.info_label.set_text('Please select your share type options.')
-+ self.info_label.set_text('Please select your share type options.'
-+ )
- self.prev_button.set_sensitive(True)
- self.next_button.set_sensitive(True)
- self.ok_button.set_sensitive(False)
-
-- # Radio buttons
-- self.stype_disktree_radio_button = gtk.RadioButton(None,'Disktree')
-- self.stype_disktree_radio_button.set_tooltip_text('Disktree (folder) type Share. Default')
-- self.stype_disktree_radio_button.set_active(self.stype == srvsvc.STYPE_DISKTREE)
--
-- self.stype_printq_radio_button = gtk.RadioButton(self.stype_disktree_radio_button,'Print Queue')
-- self.stype_printq_radio_button.set_tooltip_text('Shared Print Queue')
-- self.stype_printq_radio_button.set_active(self.stype == srvsvc.STYPE_PRINTQ)
--
-- self.stype_ipc_radio_button = gtk.RadioButton(self.stype_printq_radio_button,'IPC ')
-- self.stype_ipc_radio_button.set_tooltip_text('Shared Interprocess Communication Pipe (IPC).')
-- self.stype_ipc_radio_button.set_active(self.stype == srvsvc.STYPE_IPC)
-+ self.stype_disktree_radio_button = gtk.RadioButton(None,
-+ 'Disktree')
-+ self.stype_disktree_radio_button.set_tooltip_text('Disktree (folder) type Share. Default'
-+ )
-+ self.stype_disktree_radio_button.set_active(self.stype
-+ == srvsvc.STYPE_DISKTREE)
-+
-+ self.stype_printq_radio_button = \
-+ gtk.RadioButton(self.stype_disktree_radio_button,
-+ 'Print Queue')
-+ self.stype_printq_radio_button.set_tooltip_text('Shared Print Queue'
-+ )
-+ self.stype_printq_radio_button.set_active(self.stype
-+ == srvsvc.STYPE_PRINTQ)
-+
-+ self.stype_ipc_radio_button = \
-+ gtk.RadioButton(self.stype_printq_radio_button, 'IPC ')
-+ self.stype_ipc_radio_button.set_tooltip_text(
-+ 'Shared Interprocess Communication Pipe (IPC).')
-+ self.stype_ipc_radio_button.set_active(self.stype
-+ == srvsvc.STYPE_IPC)
-
-- # Check buttons
- self.sflag_temp_check_button = gtk.CheckButton('Temporary')
-- self.sflag_temp_check_button.set_tooltip_text('Make share Temporary')
-+ self.sflag_temp_check_button.set_tooltip_text(
-+ 'Make share Temporary')
- self.sflag_temp_check_button.set_active(self.flags[0])
-
- self.sflag_hidden_check_button = gtk.CheckButton('Hidden ')
-- self.sflag_hidden_check_button.set_tooltip_text('Make share hidden.')
-+ self.sflag_hidden_check_button.set_tooltip_text(
-+ 'Make share hidden.')
- self.sflag_hidden_check_button.set_active(self.flags[1])
-
-- hbox = gtk.HBox(True,10)
-+ hbox = gtk.HBox(True, 10)
-
- vbox = gtk.VBox()
- vbox.set_border_width(5)
-
-- vbox.pack_start(self.stype_disktree_radio_button,True,True,3)
-- vbox.pack_start(self.stype_printq_radio_button,True,True,3)
-- vbox.pack_start(self.stype_ipc_radio_button,True,True,3)
-- hbox.pack_start(vbox,True,True,0)
-+ vbox.pack_start(self.stype_disktree_radio_button, True,
-+ True, 3)
-+ vbox.pack_start(self.stype_printq_radio_button, True, True,
-+ 3)
-+ vbox.pack_start(self.stype_ipc_radio_button, True, True, 3)
-+ hbox.pack_start(vbox, True, True, 0)
-
- vbox = gtk.VBox()
- vbox.set_border_width(5)
-
-- vbox.pack_start(self.sflag_temp_check_button,True,True,3)
-- vbox.pack_start(self.sflag_hidden_check_button,True,True,3)
-+ vbox.pack_start(self.sflag_temp_check_button, True, True, 3)
-+ vbox.pack_start(self.sflag_hidden_check_button, True, True,
-+ 3)
-
-- hbox.pack_start(vbox,True,True,0)
-+ hbox.pack_start(vbox, True, True, 0)
-
--
--
-- self.fields_box.pack_start(hbox,True,True,0)
-+ self.fields_box.pack_start(hbox, True, True, 0)
- self.fields_box.show_all()
-+ else:
-
--
--
-- else :
- self.title_label.set_markup('<b>Path</b>')
- if self.islocal:
- self.info_label.set_text('Please select a valid path.')
-@@ -1058,71 +1132,74 @@ class ShareWizardDialog(ShareAddEditDialog):
- self.next_button.set_sensitive(False)
- self.ok_button.set_sensitive(True)
-
-- #path
- if self.islocal:
- self.file_button = gtk.FileChooserButton('Browse')
- if self.path is not None:
- self.file_button.set_current_folder(self.path)
- else:
-- self.file_button.set_current_folder(".")
-- self.file_button.set_action(gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER)
-- self.file_button.set_tooltip_text('Select the folder to share')
-+ self.file_button.set_current_folder('.')
-+ self.file_button.set_action(
-+ gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER)
-+ self.file_button.set_tooltip_text(
-+ 'Select the folder to share')
- else:
- self.file_entry = gtk.Entry()
- if self.path is not None:
- self.file_entry.set_text(self.path)
- else:
-- self.file_entry.set_text("")
-- self.file_entry.set_tooltip_text('Path to the folder to share')
-+ self.file_entry.set_text('')
-+ self.file_entry.set_tooltip_text(
-+ 'Path to the folder to share')
-
-- table = gtk.Table(1,2,True)
-+ table = gtk.Table(1, 2, True)
- table.set_border_width(5)
- table.set_row_spacings(2)
- table.set_col_spacings(6)
-
--
- label = gtk.Label(' Path : ')
-- label.set_alignment(1,0.5)
-- table.attach(label, 0, 1, 0, 1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-- if self.islocal :
-- table.attach(self.file_button, 1, 2, 0, 1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ label.set_alignment(1, 0.5)
-+ table.attach(label, 0, 1, 0, 1, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-+ if self.islocal:
-+ table.attach(self.file_button, 1, 2, 0, 1, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
- else:
-- table.attach(self.file_entry, 1, 2, 0, 1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(self.file_entry, 1, 2, 0, 1, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
-- self.fields_box.pack_start(table,False,True,0)
-+ self.fields_box.pack_start(table, False, True, 0)
- self.fields_box.show_all()
-
-- def collect_fields (self):
-+ def collect_fields(self):
- """ Custom collect fields from the GUI and saves in class variables which is page specific. """
-+
- if self.page == 0:
- pass
-+ elif self.page == 1:
-
-- elif self.page == 1 :
- self.sname = self.share_name_entry.get_text()
- self.password = self.share_password_entry.get_text()
--
--
- elif self.page == 2:
-+
- self.comment = self.share_comment_entry.get_text()
- self.max_users = self.max_users_spinbox.get_value_as_int()
-+ elif self.page == 3:
-
-- elif self.page ==3 :
-- # Now to handle the share type resolution
-- if self.stype_disktree_radio_button.get_active() :
-+ if self.stype_disktree_radio_button.get_active():
- self.stype = srvsvc.STYPE_DISKTREE
-- elif self.stype_printq_radio_button.get_active() :
-+ elif self.stype_printq_radio_button.get_active():
- self.stype = srvsvc.STYPE_PRINTQ
- else:
- self.stype = srvsvc.STYPE_IPC
-- # check flags
-- self.flags = [False,False]
-+
-+ self.flags = [False, False]
- if self.sflag_temp_check_button.get_active():
- self.flags[0] = True
- if self.sflag_hidden_check_button.get_active():
- self.flags[1] = True
-+ else:
-
-- else :
-- if self.islocal :
-+ if self.islocal:
- self.path = self.file_button.get_filename()
- else:
- self.path = self.path_entry.get_text()
-
-commit c0cfd5beb6c3290b8da6d441281c29527d2293fe
-Author: Dhananjay Sathe <dhananjaysathe@gmail.com>
-Date: Tue Aug 16 18:15:12 2011 +0000
-
- fixes
-
-diff --git a/sambagtk/pygwshare.py b/sambagtk/pygwshare.py
-index 78d0852..9368bfa 100644
---- a/sambagtk/pygwshare.py
-+++ b/sambagtk/pygwshare.py
-@@ -23,6 +23,7 @@
- # MA 02110-1301, USA.
- #
- #
-+__docformat__ = 'restructuredtext'
-
- import sys
- import os.path
-@@ -45,13 +46,8 @@ from pysrvsvc import DeleteDialog, ShareAddEditDialog, \
-
- class srvsvcPipeManager(object):
-
-- def __init__(
-- self,
-- server_address,
-- transport_type,
-- username,
-- password,
-- ):
-+ def __init__(self, server_address, transport_type, username,
-+ password):
- """ Initialize the pipe object handling the srvsvc calls """
-
- creds = credentials.Credentials()
-@@ -123,16 +119,19 @@ class srvsvcPipeManager(object):
-
- @staticmethod
- def get_share_type_info(stype, field):
-- """ Return the desired info about a share type
-- Retrievable types :
-- 'typestring' -> The generic name of the share type
-- 'desc' -> Description of the type
-- 'base_type' -> Base share type
-- 'flags' -> special flags (Boolean temporary, Boolean hidden)
-- ..........
-- Usage :
-- S.get_share_type_info(stype, field) -> desired information
-- """
-+ """
-+ Return the desired info about a share type
-+ S.get_share_type_info(stype,field) -> desired information
-+
-+ Parameters:
-+ 'field' : can be one of the below :
-+ -`typestring`: The generic name of the share type
-+ -`desc`: Description of the type
-+ -`base_type`: Base share type
-+ -`flags`: special flags (Boolean temporary,Boolean hidden)
-+
-+
-+ """
-
- base_dict = {
- srvsvc.STYPE_DISKTREE: {'typestring': 'STYPE_DISKTREE',
-@@ -192,15 +191,15 @@ class srvsvcPipeManager(object):
- return stype_info_dict.get(field)
-
- def fix_path_format(self, path=''):
-- """ Fixes and checks the given path and convets it to the required format
--
-- Convert the unix path to relavant Info Struct path for samba share object
-- It also checks for validity of path if it is local.
-- To be used for distktree (Files not IPC etc) type shares.
-- Usage :
-- S.fix_path_format(path= "") -> path
-+ """
-+ Fixes and checks the given path to make it in tthe correct format
-
-- """
-+ Convert the unix path to relavant Info Struct path for samba
-+ share object.It also checks for validity of path if it is local.
-+ To be used for distktree (Files not IPC etc) type shares.
-+ `Usage` :
-+ S.fix_path_format(path= "") -> path
-+ """
-
- if self.islocal:
- if path.startswith('C:'):
-@@ -219,8 +218,7 @@ class srvsvcPipeManager(object):
-
- # NOT supported yet
- def get_connections(self, level=1, max_buffer=-1):
-- """ DO NOT USE : UNSUPPORTED BY SAMBA-4 YET
-- """
-+ """ DO NOT USE : UNSUPPORTED BY SAMBA-4 YET """
-
- self.conn_list = []
- info_ctr = srvsvc.NetConnInfoCtr()
-@@ -237,10 +235,9 @@ class srvsvcPipeManager(object):
- def modify_share(self, share=None):
- """ Modifies share 502 object.
-
-- Usage:
-- S.modify_share(self,share)-> parm_error
--
-- """
-+ Usage:
-+ S.modify_share(self,share)-> parm_error
-+ """
-
- if share is None:
- raise KeyError('Non existant Share cannot be modified')
-@@ -252,11 +249,14 @@ class srvsvcPipeManager(object):
- return parm_error
-
- def get_shares_list(self):
-- """ Updates the share list of the pipe object .
-- If show_all_shares is set to flase Hidden shares are set to
-- false and not returned It first tries to list all shares if
-- that fails it falls back to list standard shares and sets the
-- show_all_shares boolean accordingly"""
-+ """
-+ Updates the share list of the pipe object .
-+
-+ If show_all_shares is set to flase Hidden shares are set to
-+ false and not returned .It first tries to list all shares if
-+ that fails it falls back to list standard shares and sets the
-+ show_all_shares boolean accordingly
-+ """
-
- if self.show_all_shares is False:
- self.list_shares()
-@@ -264,19 +264,19 @@ class srvsvcPipeManager(object):
- try:
- self.list_shares_all()
- self.show_all_shares = True
-- except:
-+ except RuntimeError:
- self.list_shares()
- self.show_all_shares = False
-
- def list_shares(self):
-- """ Gets a list of all (not hidden/special)active shares
-- and update the share and share_name list.
--
-- Usage:
-- Recomended do not USE , use get_shares_list
-- S.list_shares() -> None
-- """
--
-+ """
-+ Gets a list of all (not hidden/special)active shares and update
-+ the share and share_name list.
-+
-+ `Usage`:
-+ Recomended do not USE , use get_shares_list
-+ S.list_shares() -> None
-+ """
- self.share_list = []
- self.share_names_list = []
- self.share_types_list = []
-@@ -293,11 +293,13 @@ class srvsvcPipeManager(object):
- self.share_types_list.append(i.type)
-
- def list_shares_all(self):
-- """ Gets a list of all (including hiden/special)active shares and update the share and share_name list.
-+ """
-+ Gets a list of all (including hiden/special)active shares and
-+ update the share and share_name list.
-
-- Usage:
-- S.list_shares() -> None
-- """
-+ `Usage`:
-+ S.list_shares() -> None
-+ """
-
- self.share_list = []
- self.share_names_list = []
-@@ -314,14 +316,14 @@ class srvsvcPipeManager(object):
- self.share_types_list.append(i.type)
-
- def add_share(self, share=None):
-- """Adds a share with a given name and type
-- This uses a share info 502 object.
-- Should be followed by modify_share to complete the addition of the share.
--
-- Usage :
-- S.add_share(self, share=None) -> parm_error
-+ """
-+ Adds a share with a given name and type
-+ This uses a share info 502 object.
-+ Should be followed by modify_share to complete the addition of the share.
-
-- """
-+ `Usage` :
-+ S.add_share(self,share=None) -> parm_error
-+ """
-
- if share is None:
- raise KeyError('Illegal to add an Empty Share ')
-@@ -333,11 +335,12 @@ class srvsvcPipeManager(object):
- return parm_error
-
- def get_share_info_local(self, name=''):
-- """ Gets share info for a share with a particular name from local cache lists.
-+ """
-+ Gets share info for a share with a particular name from local cache lists.
-
-- Usage:
-- S.get_share_info_local(self, name= "") -> sahre_info (502 type)
-- """
-+ `Usage`:
-+ S.get_share_info_local(self,name= "") -> sahre_info (502 type)
-+ """
-
- name = unicode(name)
- for i in self.share_names_list:
-@@ -345,55 +348,55 @@ class srvsvcPipeManager(object):
- return share_list[i.index()]
-
- def get_share_info_rpc(self, name=''):
-- """ Gets share info for a share with a particular name from the rpc server.
-+ """
-+ Gets share info for a share with a particular name from the rpc server.
-
-- Usage:
-- S.get_share_info_local(self, name= "") -> sahre_info (502 type)
-- """
-+ `Usage`:
-+ S.get_share_info_local(self,name= "") -> sahre_info (502 type)
-+ """
-
- name = unicode(name)
- info = self.pipe.NetShareGetInfo(self.server_unc, name, 502)
- return info
-
- def get_server_info(self):
-- """ Gets type 102 server info .
-+ """
-+ Gets type 102 server info .
-
-- Usage:
-- S.get_server_info() -> server_info
-- """
-+ `Usage`:
-+ S.get_server_info() -> server_info
-+ """
-
- server_info = self.pipe.NetSrvGetInfo(self.server_unc, 102)
- return server_info
-
- def delete_share(self, name=''):
-- """ Delete a share with the given name.
-+ """
-+ Delete a share with the given name.
-
-- Usage:
-- S.delete_share (self,name= "") -> Boolean indicating success or faliure ,[error object]
-- """
-+ `Usage`:
-+ S.delete_share (self,name= "") -> Boolean indicating success or faliure ,[error object]
-+ """
-
- name = unicode(name)
- self.pipe.NetShareDel(self.server_unc, name, 0)
-
- # NOT supported yet
- def remove_persistance(self, name=''):
-- """ Removes persistance of a share .
--
-- Usage: UNSUPPORTED YET
-- ........
-- """
-+ """ Removes persistance of a share """
-
- reserved = None
- name = unicode(name)
- self.pipe.NetShareDelSticky(self.server_unc, name, reserved)
-
- def get_share_type(self, name=''):
-- """ Returns type of share code
-- uses local cache for now as the rpc server in samba4 does not support it yet
-- ........
-- Usage:
-- S.update_tod()
-- """
-+ """
-+ Returns type of share code
-+
-+ uses local cache for now as the rpc server in samba4 does not support it yet
-+ `Usage`:
-+ S.update_tod()
-+ """
-
- name = unicode(name)
- for i in self.share_names_list:
-@@ -403,18 +406,14 @@ class srvsvcPipeManager(object):
- raise KeyError('Share Does no exist')
- return stype
-
-- def get_file_security(
-- self,
-- secdesc,
-- filename='',
-- filepath='',
-- ):
-- """ Returns a security descriptor buffer of a file .
-- Filepath must be full path relative to basepath of share's path.
-+ def get_file_security(self, secdesc, filename='', filepath=''):
-+ """
-+ Returns a security descriptor buffer of a file .
-+ Filepath must be full path relative to basepath of share's path.
-
-- Usage:
-- s.get_file_security(self,secdesc,sharename= " ",filepath= "")-> sd_buf
-- """
-+ `Usage`:
-+ S.get_file_security(self,secdesc,sharename="",filepath= "")-> sd_buf
-+ """
-
- filename = unicode(filename)
- sd_buf = self.pipe.NetGetFileSecurity(self.server_unc, share,
-@@ -422,28 +421,26 @@ class srvsvcPipeManager(object):
- return sd_buf
-
- def get_tod(self):
-- """ Updates Time and date (TOD) Info of the pipe object.
-- ........
-- Usage:
-- update_tod() -> tod info object
-- """
-+ """
-+ Updates Time and date (TOD) Info of the pipe object.
-+
-+ `Usage`:
-+ update_tod() -> tod info object
-+ """
-
- tod_info = self.pipe.NetRemoteTOD(self.server_unc)
- return tod_info
-
-- def set_file_security(
-- self,
-- secdesc,
-- sd_buf,
-- sharename='',
-- filepath='',
-- ):
-- """ Sets the security of a file .
-- Filepath must be full path relative to basepath of share's path.
-+ def set_file_security(self, secdesc, sd_buf, sharename='',
-+ filepath=''):
-+ """
-+ Sets the security of a file .
-+
-+ Filepath must be full path relative to basepath of share's path.
-
-- Usage:
-- S.set_file_security (self,secdesc,sd_buf,sharename= "",filepath= "") -> Boolean succes,[error]
-- """
-+ `Usage`:
-+ S.set_file_security (self,secdesc,sd_buf,sharename= "",filepath= "") -> Boolean succes,[error]
-+ """
-
- sharename = unicode(sharename)
- self.pipe.NetSetFileSecurity(self.server_unc, share, filename,
-@@ -452,13 +449,15 @@ class srvsvcPipeManager(object):
- @staticmethod
- def get_platform_info(platform_id, field):
- """ Return the desired field.
-- Retrievable types :
-- 'typestring' : The generic name of the platform type
-- 'desc' : Description of the type
-
-- Usage:
-- S.get_platform_string(platform_id,field)-> desired_field
-- """
-+ Parameters:
-+ `field` can be any of the below'
-+ `typestring` : The generic name of the platform type
-+ `desc` : Description of the type
-+
-+ `Usage`:
-+ S.get_platform_string(platform_id,field)-> desired_field
-+ """
-
- os_dict = {
- srvsvc.PLATFORM_ID_DOS: {'typestring': 'PLATFORM_ID_DOS',
-@@ -474,20 +473,14 @@ class srvsvcPipeManager(object):
- }
- return os_dict.get(platform_id).get(field)
-
-- def get_share_object(
-- self,
-- name='',
-- stype=0,
-- comment='',
-- max_users=0xFFFFFFFF,
-- password='',
-- path='',
-- #permissions= None, it's a reserved section (MS-SRVS)
-- ):
-- """ Gets a 502 type share object.
-- Usage:
-- S.get_share_object(self,name= "",comment= "",max_users= 0xFFFFFFFF,password= "",path= "",permissions= None,sd_buf=None) -> share (502 type share object)
-- """
-+ def get_share_object(self, name='', stype=0, comment='',
-+ max_users=0xFFFFFFFF, password='', path=''):
-+ """
-+ Gets a 502 type share object.
-+
-+ Usage:
-+ S.get_share_object(self,name= "",comment= "",max_users= 0xFFFFFFFF,password= "",path= "",permissions= None,sd_buf=None) -> share (502 type share object)
-+ """
-
- share = srvsvc.NetShareInfo502()
-
-@@ -504,29 +497,30 @@ class srvsvcPipeManager(object):
- return share
-
- def name_validate(self, name):
-- """ Validate a Given Share Name .
-+ """
-+ Validate a Given Share Name .
- Returns True for a given share name and false for a invalid one .
- It does so gracefully without raising a exception. Thus validating name cleanly
-- .....
-- Usage :
-- S.name_validate(name) -> Boolean Indicating Validity
-- """
-+ `Usage` :
-+ S.name_validate(name) -> Boolean Indicating Validity
-+ """
-
- try:
- self.pipe.NetNameValidate(self.server_unc, name, 9,
- 0)
- return True
-- except:
-+ except RuntimeError:
- return False
-
- def get_list_disks(self):
-- """ Returns a list of disk names on the system.
-- In samaba rpc server these are hard coded .
-- Refreshes Disk list of the pipe object.
--............
-- Usage:
-- S.get_list_disks()-> None
-- """
-+ """
-+ Returns a list of disk names on the system.
-+ In samaba rpc server these are hard coded .
-+ Refreshes Disk list of the pipe object.
-+
-+ `Usage`:
-+ S.get_list_disks()-> None
-+ """
-
- disk_info = srvsvc.NetDiskInfo()
- self.disks_list = []
-@@ -543,15 +537,8 @@ class ShareWindow(gtk.Window):
-
- """ Share management interface window """
-
-- def __init__(
-- self,
-- info_callback=None,
-- server='',
-- username='',
-- password='',
-- transport_type=0,
-- connect_now=False,
-- ):
-+ def __init__(self, info_callback=None, server='', username='',
-+ password='', transport_type=0, connect_now=False):
- super(ShareWindow, self).__init__()
-
- # It's nice to have this info saved when a user wants to reconnect
-@@ -564,14 +551,8 @@ class ShareWindow(gtk.Window):
-
- self.create()
- self.set_status('Disconnected.')
-- self.on_connect_item_activate(
-- None,
-- server,
-- transport_type,
-- username,
-- password,
-- connect_now,
-- )
-+ self.on_connect_item_activate(None, server, transport_type,
-+ username, password, connect_now)
- self.show_all()
- self.fill_active_pane()
- self.fill_server_info()
-@@ -590,13 +571,7 @@ class ShareWindow(gtk.Window):
- self.statusbar.pop(0)
- self.statusbar.push(0, message)
-
-- def run_message_dialog(
-- self,
-- type,
-- buttons,
-- message,
-- parent=None,
-- ):
-+ def run_message_dialog(self, type, buttons, message, parent=None):
- if parent is None:
- parent = self
-
-@@ -607,15 +582,10 @@ class ShareWindow(gtk.Window):
-
- return response
-
-- def on_connect_item_activate(
-- self,
-- widget,
-- server='',
-- transport_type=0,
-- username='',
-- password='',
-- connect_now=False,
-- ):
-+ def on_connect_item_activate(self, widget, server='',
-+ transport_type=0, username='', password='',
-+ connect_now=False):
-+
- transport_type = transport_type or self.transport_type
- if transport_type is 2:
- server = '127.0.0.1'
-@@ -624,14 +594,8 @@ class ShareWindow(gtk.Window):
- username = username or self.username
-
- try:
-- self.pipe_manager = self.run_connect_dialog(
-- None,
-- server,
-- transport_type,
-- username,
-- password,
-- connect_now,
-- )
-+ self.pipe_manager = self.run_connect_dialog(None, server,
-+ transport_type, username, password, connect_now)
- if self.pipe_manager is not None:
- self.pipe_manager.get_shares_list()
- self.server_info = self.pipe_manager.server_info
-@@ -661,15 +625,8 @@ class ShareWindow(gtk.Window):
- self.update_sensitivity()
- self.fill_server_info()
-
-- def run_connect_dialog(
-- self,
-- pipe_manager,
-- server_address,
-- transport_type,
-- username,
-- password='',
-- connect_now=False,
-- ):
-+ def run_connect_dialog(self, pipe_manager, server_address,
-+ transport_type, username, password='', connect_now=False):
-
- dialog = srvsvcConnectDialog(server_address, transport_type,
- username, password)
-@@ -886,9 +843,8 @@ Please check your network connection.''',
- label.set_alignment(1, 0.5)
- attach_index = self.pipe_manager.disks_list.index(i)+2
-
-- table.attach(label, 0, 1, attach_index,
-- attach_index + 1, gtk.FILL,
-- gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 0, 1, attach_index,attach_index + 1,
-+ gtk.FILL, gtk.FILL | gtk.EXPAND, 0, 0)
-
- self.sd_frame.add(table)
- self.sd_frame.show_all()
-@@ -927,12 +883,8 @@ Please check your network connection.''',
- dialog.hide()
- return response_id
-
-- def run_share_add_edit_dialog(
-- self,
-- share=None,
-- apply_callback=None,
-- wizard_mode=False,
-- ):
-+ def run_share_add_edit_dialog(self, share=None, apply_callback=None,
-+ wizard_mode=False):
-
- if wizard_mode: # wizard only for a new share
- dialog = ShareWizardDialog(self.pipe_manager, None)
-@@ -1126,12 +1078,7 @@ Please check your network connection.''',
-
- self.refresh_shares_view()
-
-- def on_notebook_switch_page(
-- self,
-- widget,
-- page,
-- page_num,
-- ):
-+ def on_notebook_switch_page(self, widget, page, page_num):
- self.active_page_index = page_num
- self.update_sensitivity()
-
-@@ -1223,10 +1170,8 @@ Please check your network connection.''',
- def fill_active_pane(self):
- """ Fills sthe active left pane """
-
-- try:
-- share = self.get_selected_share()
-- except:
-- share = None
-+ share = self.get_selected_share()
-+
-
- widget_to_delete = \
- self.shareinfo_frame.get_children()[0]
-@@ -1413,8 +1358,8 @@ Please check your network connection.''',
- self.shareinfo_frame.show_all()
-
- def create(self):
--
-- # main window
-+
-+ # main window
- self.set_title('Samba-Gtk Share Management Interface')
- self.set_default_size(800, 600)
- self.icon_filename = os.path.join(sys.path[0], 'images'
-@@ -1428,7 +1373,7 @@ Please check your network connection.''',
- accel_group = gtk.AccelGroup()
- toplevel_vbox = gtk.VBox(False, 0)
- self.add(toplevel_vbox)
--
-+
- # menu
- self.menubar = gtk.MenuBar()
- toplevel_vbox.pack_start(self.menubar, False, False, 0)
-@@ -1556,7 +1501,7 @@ Please check your network connection.''',
- main_hbox = gtk.HBox()
- self.share_notebook.append_page(main_hbox,
- gtk.Label('Share Management'))
--
-+
- # Share listing on left side
- rvbox = gtk.VBox()
- main_hbox.pack_start(rvbox, True, True, 0)
-@@ -1638,7 +1583,7 @@ Please check your network connection.''',
- self.toggle_share_view_visiblity, None)
-
- ### Right active widget :
--
-+
- vbox = gtk.VBox()
- main_hbox.pack_start(vbox, False, False, 0)
-
-@@ -1816,13 +1761,13 @@ Please check your network connection.''',
- label.set_use_markup(True)
- self.sd_frame.set_label_widget(label)
- vbox.pack_start(self.sd_frame, False, False, 0)
--
-+
- # status bar
-
- self.statusbar = gtk.Statusbar()
- self.statusbar.set_has_resize_grip(True)
- toplevel_vbox.pack_end(self.statusbar, False, False, 0)
--
-+
- # signals/events
-
- self.connect('delete_event', self.on_self_delete)
-@@ -1896,14 +1841,9 @@ def ParseArgs(argv):
- arguments = {}
-
- try: # get arguments into a nicer format
-- (opts, args) = getopt.getopt(argv, 'chu:s:p:t:', [
-- 'help',
-- 'user=',
-- 'server=',
-- 'password=',
-- 'connect-now',
-- 'transport=',
-- ])
-+ (opts, args) = getopt.getopt(argv, 'chu:s:p:t:', ['help',
-+ 'user=', 'server=', 'password=', 'connect-now',
-+ 'transport='])
- except getopt.GetoptError:
- PrintUsage()
- sys.exit(2)
-
-commit 8ecfea095c473771b5a4583dd5d3b19687b694ef
-Author: Dhananjay Sathe <dhananjaysathe@gmail.com>
-Date: Tue Aug 16 14:58:16 2011 +0000
-
- remove sys append by default, add gpl
-
-diff --git a/sambagtk/pygwshare.py b/sambagtk/pygwshare.py
-index 6a95184..78d0852 100644
---- a/sambagtk/pygwshare.py
-+++ b/sambagtk/pygwshare.py
-@@ -1,6 +1,29 @@
-- #!/usr/bin/python
-+#!/usr/bin/python2.6
- # -*- coding: utf-8 -*-
-
-+# pygwshare.py
-+# Frontends to Samba-Gtk Share Management
-+#
-+# Copyright 2011 Dhananjay Sathe <dhananjaysathe@gmail.com>
-+# Copyright 2011 Jelmer Vernooij <jelmer@samba.org>
-+#
-+# This program is free software; you can redistribute it and/or modify
-+# it under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; either version 3 of the License, or
-+# (at your option) any later version.
-+#
-+# This program is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+# GNU General Public License for more details.
-+#
-+# You should have received a copy of the GNU General Public License
-+# along with this program; if not, write to the Free Software
-+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-+# MA 02110-1301, USA.
-+#
-+#
-+
- import sys
- import os.path
- import traceback
-@@ -8,7 +31,7 @@ import getopt
- import gobject
- import gtk
-
--sys.path.append('/usr/local/samba/lib/python2.7/site-packages/')
-+# sys.path.append('/usr/local/samba/lib/python2.7/site-packages/')
- # default for ./configure.developer for use on python 2.7
- # Unhash the above line if it is yor your config , else edit it as req
-
-
-commit 9473d0b8b1b7696c413625a0c9bd96ffa4c36a76
-Author: Dhananjay Sathe <dhananjaysathe@gmail.com>
-Date: Tue Aug 16 14:51:42 2011 +0000
-
- pep fixes, statusbar fixed
-
-diff --git a/sambagtk/pygwshare.py b/sambagtk/pygwshare.py
-index 284c98d..6a95184 100644
---- a/sambagtk/pygwshare.py
-+++ b/sambagtk/pygwshare.py
-@@ -1,29 +1,6 @@
--#!/usr/bin/python2.6
-+ #!/usr/bin/python
- # -*- coding: utf-8 -*-
-
--# pygwshare.py
--# Frontends to Samba-Gtk Share Management
--#
--# Copyright 2011 Dhananjay Sathe <dhananjaysathe@gmail.com>
--# Copyright 2011 Jelmer Vernooij <jelmer@samba.org>
--#
--# This program is free software; you can redistribute it and/or modify
--# it under the terms of the GNU General Public License as published by
--# the Free Software Foundation; either version 3 of the License, or
--# (at your option) any later version.
--#
--# This program is distributed in the hope that it will be useful,
--# but WITHOUT ANY WARRANTY; without even the implied warranty of
--# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
--# GNU General Public License for more details.
--#
--# You should have received a copy of the GNU General Public License
--# along with this program; if not, write to the Free Software
--# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
--# MA 02110-1301, USA.
--#
--#
--
- import sys
- import os.path
- import traceback
-@@ -31,22 +8,16 @@ import getopt
- import gobject
- import gtk
-
--#sys.path.append('/usr/local/samba/lib/python2.7/site-packages/')
--#for use against the default binaries from default .configure.developer for use on python 2.7
--# Unhash the above line if it is yor your config , else edit it as required
-+sys.path.append('/usr/local/samba/lib/python2.7/site-packages/')
-+# default for ./configure.developer for use on python 2.7
-+# Unhash the above line if it is yor your config , else edit it as req
-
- from samba import credentials
--from samba.dcerpc import (
-- srvsvc,
-- security,
-- )
-+from samba.dcerpc import srvsvc, security
-+
- from sambagtk.dialogs import AboutDialog
--from pysrvsvc import (
-- DeleteDialog,
-- ShareAddEditDialog,
-- srvsvcConnectDialog,
-- ShareWizardDialog
-- )
-+from pysrvsvc import DeleteDialog, ShareAddEditDialog, \
-+ srvsvcConnectDialog, ShareWizardDialog
-
-
- class srvsvcPipeManager(object):
-@@ -73,19 +44,21 @@ class srvsvcPipeManager(object):
- creds.set_workstation('')
- creds.set_password(password)
-
-- #binding = "ncacn_np:%s" # srvsvc allows only named pipes tcp/upd not allowed under MS-SRVS specifications
-+ # binding = "ncacn_np:%s" # srvsvc allows only named pipes
-+ # tcp/upd not allowed under MS-SRVS specifications
-+
-
- binding = ['ncacn_np:%s', 'ncacn_ip_tcp:%s', 'ncalrpc:%s'
- ][transport_type]
- if transport_type is 2:
- server_address = '127.0.0.1'
-- # Not really necessary from the point of view of the pipe itself but later sections depend on it
-+
- self.pipe = srvsvc.srvsvc(binding % server_address,
- credentials=creds)
-
- # set up some basic parameters unique to the connection
-
-- self.server_unc = ''.join(['\\',server_address])
-+ self.server_unc = ''.join(['\\', server_address])
-
- # Retrive some info about the share server
-
-@@ -96,107 +69,107 @@ class srvsvcPipeManager(object):
-
- self.resume_handle_conn = 0x00000000
- self.resume_handle_share = 0x00000000
-- self.resume_handle = 0x00000000 # for general purposes where servers ignore this but it exists in the calls
-+ self.resume_handle = 0x00000000
- self.max_buffer = -1
-
-- # Initialise various cache lists :
-- # The idea is to use locally available share list and related conveiniece lists
-- # This should reduce the queries and improve performance
-- # The share list will be locally maintained any via the get_share_local_cache
--
-- if server_address in ('127.0.0.1','localhost') :
-+ if server_address in ('127.0.0.1', 'localhost'):
- self.islocal = True
-+ # Not really necessary from the point of view of the pipe itself but later sections depend on it
- else:
- self.islocal = False
-+
-+ # Initialise various cache lists :
-+ # The idea is to use locally available share & related lists
-+ # This should reduce the queries and improve performance
-+ # The share list will be locally maintained and updated
-+ # via the various methods (eg get_shares_list)
-+
- self.conn_list = []
- self.share_list = []
- self.share_names_list = []
- self.share_types_list = []
- self.get_list_disks()
-+
- # attempt to control listing of shares.
- self.show_all_shares = False
- self.get_shares_list()
-
--
--
- def close(self):
- pass
- # apparently there's no .Close() method for this pipe
-
--
--
- @staticmethod
-- def get_share_type_info(stype,field):
-+ def get_share_type_info(stype, field):
- """ Return the desired info about a share type
- Retrievable types :
- 'typestring' -> The generic name of the share type
- 'desc' -> Description of the type
- 'base_type' -> Base share type
-- 'flags' -> special flags (Boolean temporary,Boolean hidden)
-+ 'flags' -> special flags (Boolean temporary, Boolean hidden)
- ..........
- Usage :
-- S.get_share_type_info(stype,field) -> desired information
-+ S.get_share_type_info(stype, field) -> desired information
- """
-+
- base_dict = {
-- srvsvc.STYPE_DISKTREE : {
-- 'typestring' :'STYPE_DISKTREE',
-- 'desc' : 'Disktree (Folder) Share'
-- },
--
-- srvsvc.STYPE_PRINTQ : {
-- 'typestring' :'STYPE_PRINTQ',
-- 'desc' : 'Print Queue Share'
-- },
--
-- srvsvc.STYPE_DEVICE : {
-- 'typestring' :'STYPE_DEVICE',
-- 'desc' : 'Device Share'
-- },
--
-- srvsvc.STYPE_IPC : {
-- 'typestring' :'STYPE_IPC',
-- 'desc' : 'IPC Share'
-- }
-- }
-+ srvsvc.STYPE_DISKTREE: {'typestring': 'STYPE_DISKTREE',
-+ 'desc': 'Disktree (Folder) Share'},
-+ srvsvc.STYPE_PRINTQ: {'typestring': 'STYPE_PRINTQ',
-+ 'desc': 'Print Queue Share'},
-+ srvsvc.STYPE_DEVICE: {'typestring': 'STYPE_DEVICE',
-+ 'desc': 'Device Share'},
-+ srvsvc.STYPE_IPC: {'typestring': 'STYPE_IPC',
-+ 'desc': 'IPC Share'},
-+ }
-
- flag_temp = False
- flag_hidden = False
- if stype & srvsvc.STYPE_TEMPORARY:
-- flag_temp = True
-+ flag_temp = True
- if stype & srvsvc.STYPE_HIDDEN:
-- flag_hidden = True
--
-- if flag_temp is True and flag_hidden is False :
-- stype_base = stype - srvsvc.STYPE_TEMPORARY
-- stype_typestring = ''.join([base_dict.get(stype_base).get('typestring'),'_TEMPORARY'])
-- stype_desc = ' '.join(['Temporary',base_dict.get(stype_base).get('desc') ])
--
-- elif flag_temp is False and flag_hidden is True :
-- stype_base = stype + srvsvc.STYPE_HIDDEN
-- stype_typestring = ''.join([base_dict.get(stype_base).get('typestring'),'_HIDDEN'])
-- stype_desc = ' '.join(['Hidden',base_dict.get(stype_base).get('desc') ])
--
-- elif flag_temp is True and flag_hidden is True :
-- stype_base = stype - srvsvc.STYPE_TEMPORARY + srvsvc.STYPE_HIDDEN
-- stype_typestring = ''.join([base_dict.get(stype_base).get('typestring'),'_TEMPORARY_HIDDEN'])
-- stype_desc = ' '.join(['Temporary Hidden',base_dict.get(stype_base).get('desc') ])
-+ flag_hidden = True
-+
-+ if flag_temp is True and flag_hidden is False:
-+ stype_base = stype - srvsvc.STYPE_TEMPORARY
-+ base_str = base_dict.get(stype_base).get('typestring')
-+ stype_typestring = ''.join([base_str, '_TEMPORARY'])
-+ stype_desc = ' '.join(['Temporary',
-+ base_dict.get(stype_base).get('desc'
-+ )])
-+ elif flag_temp is False and flag_hidden is True:
-+
-+ stype_base = stype + srvsvc.STYPE_HIDDEN
-+ base_str = base_dict.get(stype_base).get('typestring')
-+ stype_typestring = ''.join([base_str, '_HIDDEN'])
-+ stype_desc = ' '.join(['Hidden',
-+ base_dict.get(stype_base).get('desc'
-+ )])
-+ elif flag_temp is True and flag_hidden is True:
-+
-+ stype_base = stype - srvsvc.STYPE_TEMPORARY\
-+ + srvsvc.STYPE_HIDDEN
-+ base_str = base_dict.get(stype_base).get('typestring')
-+ stype_typestring = ''.join([base_str, '_TEMPORARY_HIDDEN'])
-+ stype_desc = ' '.join(['Temporary Hidden',
-+ base_dict.get(stype_base).get('desc'
-+ )])
- else:
- stype_base = stype
-- stype_typestring = base_dict.get(stype_base).get('typestring')
-+ stype_typestring = \
-+ base_dict.get(stype_base).get('typestring')
- stype_desc = base_dict.get(stype_base).get('desc')
-
-- stype_info_dict = {'typestring':stype_typestring,
-- 'desc':stype_desc,
-- 'base_type':stype_base,
-- 'flags':[flag_temp,flag_hidden]
-- }
-+ stype_info_dict = {
-+ 'typestring': stype_typestring,
-+ 'desc': stype_desc,
-+ 'base_type': stype_base,
-+ 'flags': [flag_temp, flag_hidden],
-+ }
-
- return stype_info_dict.get(field)
-
--
--
-- def fix_path_format(self,path=''):
-- """ Fixes and checks the given path to make it in tthe correct format
-+ def fix_path_format(self, path=''):
-+ """ Fixes and checks the given path and convets it to the required format
-
- Convert the unix path to relavant Info Struct path for samba share object
- It also checks for validity of path if it is local.
-@@ -205,54 +178,49 @@ class srvsvcPipeManager(object):
- S.fix_path_format(path= "") -> path
-
- """
-- if self.islocal :
-+
-+ if self.islocal:
- if path.startswith('C:'):
-- path = path[2:].replace('\\','/')
-+ path = path[2:].replace('\\', '/')
- if os.path.exists(path):
- path = os.path.realpath(path) # gets canonical path
- else:
-- raise OSError("Path does not exist !")
-+ raise OSError('Path does not exist !')
-
- if path.startswith('/'):
- path = path.replace('/', '\\')
-- path = ''.join(['C:',path])
-+ path = ''.join(['C:', path])
- path = unicode(path)
-
- return path
-
--
--
- # NOT supported yet
-- def get_connections(
-- self,
-- level = 1,
-- max_buffer = -1,
-- ):
-+ def get_connections(self, level=1, max_buffer=-1):
- """ DO NOT USE : UNSUPPORTED BY SAMBA-4 YET
- """
-+
- self.conn_list = []
- info_ctr = srvsvc.NetConnInfoCtr()
-- info_ctr.level = level #
-- (no_ent,info_ctr,resume_handle) = \
-+ info_ctr.level = level #
-+ (no_ent, info_ctr, resume_handle) = \
- self.pipe.NetConnEnum(server_unc,
-- self.server_info_basic.path,
-- info_ctr,max_buffer,
-- self.resume_handle_conn)
-- if no_ent !=0 :
-- for i in info_ctr.ctr.array :
-+ self.server_info_basic.path,
-+ info_ctr, max_buffer,
-+ self.resume_handle_conn)
-+ if no_ent != 0:
-+ for i in info_ctr.ctr.array:
- self.conn_list.append(i)
-
--
--
-- def modify_share(self,share=None):
-+ def modify_share(self, share=None):
- """ Modifies share 502 object.
-
- Usage:
- S.modify_share(self,share)-> parm_error
-
- """
-+
- if share is None:
-- raise KeyError("Non existant Share cannot be modified")
-+ raise KeyError('Non existant Share cannot be modified')
-
- parm_error = 0x00000000
- name = share.name
-@@ -260,13 +228,12 @@ class srvsvcPipeManager(object):
- 502, share, parm_error)
- return parm_error
-
--
--
-- def get_shares_list(self):
-+ def get_shares_list(self):
- """ Updates the share list of the pipe object .
-- If show_all_shares is set to flase Hidden shares are set to false and not returned
-- It first tries to list all shares if that fails it falls back to list standard shares
-- and sets the show_all_shares boolean accordingly"""
-+ If show_all_shares is set to flase Hidden shares are set to
-+ false and not returned It first tries to list all shares if
-+ that fails it falls back to list standard shares and sets the
-+ show_all_shares boolean accordingly"""
-
- if self.show_all_shares is False:
- self.list_shares()
-@@ -278,15 +245,15 @@ class srvsvcPipeManager(object):
- self.list_shares()
- self.show_all_shares = False
-
--
--
- def list_shares(self):
-- """ Gets a list of all (not hidden/special)active shares and update the share and share_name list.
-+ """ Gets a list of all (not hidden/special)active shares
-+ and update the share and share_name list.
-
- Usage:
- Recomended do not USE , use get_shares_list
- S.list_shares() -> None
- """
-+
- self.share_list = []
- self.share_names_list = []
- self.share_types_list = []
-@@ -302,14 +269,13 @@ class srvsvcPipeManager(object):
- self.share_names_list.append(i.name)
- self.share_types_list.append(i.type)
-
--
--
- def list_shares_all(self):
- """ Gets a list of all (including hiden/special)active shares and update the share and share_name list.
-
- Usage:
- S.list_shares() -> None
- """
-+
- self.share_list = []
- self.share_names_list = []
- self.share_types_list = []
-@@ -324,75 +290,68 @@ class srvsvcPipeManager(object):
- self.share_names_list.append(i.name)
- self.share_types_list.append(i.type)
-
--
--
- def add_share(self, share=None):
- """Adds a share with a given name and type
- This uses a share info 502 object.
- Should be followed by modify_share to complete the addition of the share.
-
- Usage :
-- S.add_share(self,share=None) -> parm_error
-+ S.add_share(self, share=None) -> parm_error
-
- """
-- if share is None :
-- raise KeyError("Illegal to add an Empty Share ")
-+
-+ if share is None:
-+ raise KeyError('Illegal to add an Empty Share ')
- # Uses the default 502 share info
-+
- parm_error = 0x00000000
- parm_error = self.pipe.NetShareAdd(self.server_unc, 502, share,
- parm_error)
- return parm_error
-
--
--
- def get_share_info_local(self, name=''):
- """ Gets share info for a share with a particular name from local cache lists.
-
- Usage:
-- S.get_share_info_local(self,name= "") -> sahre_info (502 type)
-+ S.get_share_info_local(self, name= "") -> sahre_info (502 type)
- """
-+
- name = unicode(name)
- for i in self.share_names_list:
- if name is i:
- return share_list[i.index()]
-
--
--
- def get_share_info_rpc(self, name=''):
- """ Gets share info for a share with a particular name from the rpc server.
-
- Usage:
-- S.get_share_info_local(self,name= "") -> sahre_info (502 type)
-+ S.get_share_info_local(self, name= "") -> sahre_info (502 type)
- """
-+
- name = unicode(name)
- info = self.pipe.NetShareGetInfo(self.server_unc, name, 502)
- return info
-
--
--
-- def get_server_info(self):
-+ def get_server_info(self):
- """ Gets type 102 server info .
-
- Usage:
- S.get_server_info() -> server_info
- """
-- server_info=self.pipe.NetSrvGetInfo(self.server_unc, 102)
-- return server_info
--
-
-+ server_info = self.pipe.NetSrvGetInfo(self.server_unc, 102)
-+ return server_info
-
- def delete_share(self, name=''):
- """ Delete a share with the given name.
-
- Usage:
-- S.delete_share (self,name= "") -> Boolean indicating success or faliure ,[error object]
-+ S.delete_share (self,name= "") -> Boolean indicating success or faliure ,[error object]
- """
-
- name = unicode(name)
- self.pipe.NetShareDel(self.server_unc, name, 0)
-
--
--
- # NOT supported yet
- def remove_persistance(self, name=''):
- """ Removes persistance of a share .
-@@ -401,12 +360,10 @@ class srvsvcPipeManager(object):
- ........
- """
-
-- reserved = None # to figure out what type python accepts maybee int or str
-+ reserved = None
- name = unicode(name)
- self.pipe.NetShareDelSticky(self.server_unc, name, reserved)
-
--
--
- def get_share_type(self, name=''):
- """ Returns type of share code
- uses local cache for now as the rpc server in samba4 does not support it yet
-@@ -420,11 +377,9 @@ class srvsvcPipeManager(object):
- if name is i:
- stype = share_types_list[i.index()]
- else:
-- raise KeyError("Share Does no exist")
-+ raise KeyError('Share Does no exist')
- return stype
-
--
--
- def get_file_security(
- self,
- secdesc,
-@@ -435,7 +390,7 @@ class srvsvcPipeManager(object):
- Filepath must be full path relative to basepath of share's path.
-
- Usage:
-- s.get_file_security(self,secdesc,sharename="",filepath= "")-> sd_buf
-+ s.get_file_security(self,secdesc,sharename= " ",filepath= "")-> sd_buf
- """
-
- filename = unicode(filename)
-@@ -443,8 +398,6 @@ class srvsvcPipeManager(object):
- filename, secdesc)
- return sd_buf
-
--
--
- def get_tod(self):
- """ Updates Time and date (TOD) Info of the pipe object.
- ........
-@@ -455,8 +408,6 @@ class srvsvcPipeManager(object):
- tod_info = self.pipe.NetRemoteTOD(self.server_unc)
- return tod_info
-
--
--
- def set_file_security(
- self,
- secdesc,
-@@ -468,17 +419,15 @@ class srvsvcPipeManager(object):
- Filepath must be full path relative to basepath of share's path.
-
- Usage:
-- S.set_file_security (self,secdesc,sd_buf,sharename= "",filepath= "s") -> Boolean succes,[error]
-+ S.set_file_security (self,secdesc,sd_buf,sharename= "",filepath= "") -> Boolean succes,[error]
- """
-
- sharename = unicode(sharename)
- self.pipe.NetSetFileSecurity(self.server_unc, share, filename,
- secdesc, sd_buf)
-
--
--
- @staticmethod
-- def get_platform_info(platform_id,field):
-+ def get_platform_info(platform_id, field):
- """ Return the desired field.
- Retrievable types :
- 'typestring' : The generic name of the platform type
-@@ -489,47 +438,49 @@ class srvsvcPipeManager(object):
- """
-
- os_dict = {
-- srvsvc.PLATFORM_ID_DOS: {'typestring':'PLATFORM_ID_DOS','desc':'DOS'},
-- srvsvc.PLATFORM_ID_OS2: {'typestring':'PLATFORM_ID_OS2','desc':'OS2'},
-- srvsvc.PLATFORM_ID_NT: {'typestring':'PLATFORM_ID_NT','desc':'Windows NT or newer'},
-- srvsvc.PLATFORM_ID_OSF: {'typestring':'PLATFORM_ID_OSF','desc':'OSF/1'},
-- srvsvc.PLATFORM_ID_VMS: {'typestring':'PLATFORM_ID_VMS','desc':'VMS'},
-+ srvsvc.PLATFORM_ID_DOS: {'typestring': 'PLATFORM_ID_DOS',
-+ 'desc': 'DOS'},
-+ srvsvc.PLATFORM_ID_OS2: {'typestring': 'PLATFORM_ID_OS2',
-+ 'desc': 'OS2'},
-+ srvsvc.PLATFORM_ID_NT: {'typestring': 'PLATFORM_ID_NT',
-+ 'desc': 'Windows NT or newer'},
-+ srvsvc.PLATFORM_ID_OSF: {'typestring': 'PLATFORM_ID_OSF',
-+ 'desc': 'OSF/1'},
-+ srvsvc.PLATFORM_ID_VMS: {'typestring': 'PLATFORM_ID_VMS',
-+ 'desc': 'VMS'},
- }
- return os_dict.get(platform_id).get(field)
-
--
-- def get_share_object (
-+ def get_share_object(
- self,
-- name= "",
-- stype= 0,
-- comment= '',
-+ name='',
-+ stype=0,
-+ comment='',
- max_users=0xFFFFFFFF,
-- password= '',
-- path= '',
-- #permissions= None, it's a reserved section , pointless passing a value.
-- sd_buf= None
-+ password='',
-+ path='',
-+ #permissions= None, it's a reserved section (MS-SRVS)
- ):
- """ Gets a 502 type share object.
- Usage:
- S.get_share_object(self,name= "",comment= "",max_users= 0xFFFFFFFF,password= "",path= "",permissions= None,sd_buf=None) -> share (502 type share object)
- """
-+
- share = srvsvc.NetShareInfo502()
-
- share.comment = unicode(comment)
- share.name = unicode(name)
- share.type = stype
- share.current_users = 0x00000000
-- share.max_users= max_users
-+ share.max_users = max_users
- share.password = password
- share.path = path
- share.permissions = 0
-- share.sd_buf = security.sec_desc_buf()
-+ share.sd_buf = security.sec_desc_buf()
-
- return share
-
--
--
-- def name_validate(self,name):
-+ def name_validate(self, name):
- """ Validate a Given Share Name .
- Returns True for a given share name and false for a invalid one .
- It does so gracefully without raising a exception. Thus validating name cleanly
-@@ -537,15 +488,14 @@ class srvsvcPipeManager(object):
- Usage :
- S.name_validate(name) -> Boolean Indicating Validity
- """
-+
- try:
-- self.pipe.NetNameValidate(self.server_unc, name, 9, 0)
-+ self.pipe.NetNameValidate(self.server_unc, name, 9,
-+ 0)
- return True
- except:
- return False
-
--
--
--
- def get_list_disks(self):
- """ Returns a list of disk names on the system.
- In samaba rpc server these are hard coded .
-@@ -560,19 +510,25 @@ class srvsvcPipeManager(object):
- (disk_info, totalentries, self.resume_handle) = \
- self.pipe.NetDiskEnum(self.server_unc, 0x00000000,
- disk_info, 26, self.resume_handle)
-- if totalentries != 0 :
-+ if totalentries != 0:
- for i in disk_info.disks:
-- if i.disk != '': # disk lists returns a blank entry not of consequence to the program
-+ if i.disk != '':
- self.disks_list.append(i.disk)
-
-
--
--
- class ShareWindow(gtk.Window):
-+
- """ Share management interface window """
-
-- def __init__ (self, info_callback=None, server="", username="", password="",
-- transport_type=0,connect_now=False):
-+ def __init__(
-+ self,
-+ info_callback=None,
-+ server='',
-+ username='',
-+ password='',
-+ transport_type=0,
-+ connect_now=False,
-+ ):
- super(ShareWindow, self).__init__()
-
- # It's nice to have this info saved when a user wants to reconnect
-@@ -584,20 +540,25 @@ class ShareWindow(gtk.Window):
- self.server_info = None
-
- self.create()
-- self.set_status("Disconnected.")
-- self.on_connect_item_activate(None, server, transport_type, username, password, connect_now)
-+ self.set_status('Disconnected.')
-+ self.on_connect_item_activate(
-+ None,
-+ server,
-+ transport_type,
-+ username,
-+ password,
-+ connect_now,
-+ )
- self.show_all()
- self.fill_active_pane()
- self.fill_server_info()
-
-- # for easier further use
--
--
- # This is used so the parent program can grab the server info after
- # we've connected.
- if info_callback is not None:
-- info_callback(server=self.server_address, username=self.username,
-- transport_type=self.transport_type)
-+ info_callback(server=self.server_address,
-+ username=self.username,
-+ transport_type=self.transport_type)
-
- def connected(self):
- return self.pipe_manager is not None
-@@ -606,23 +567,32 @@ class ShareWindow(gtk.Window):
- self.statusbar.pop(0)
- self.statusbar.push(0, message)
-
--
--
-- def run_message_dialog(self, type, buttons, message, parent=None):
-+ def run_message_dialog(
-+ self,
-+ type,
-+ buttons,
-+ message,
-+ parent=None,
-+ ):
- if parent is None:
- parent = self
-
- message_box = gtk.MessageDialog(parent, gtk.DIALOG_MODAL, type,
-- buttons, message)
-+ buttons, message)
- response = message_box.run()
- message_box.hide()
-
- return response
-
--
--
-- def on_connect_item_activate(self, widget, server="", transport_type=0,
-- username="", password="", connect_now=False):
-+ def on_connect_item_activate(
-+ self,
-+ widget,
-+ server='',
-+ transport_type=0,
-+ username='',
-+ password='',
-+ connect_now=False,
-+ ):
- transport_type = transport_type or self.transport_type
- if transport_type is 2:
- server = '127.0.0.1'
-@@ -631,44 +601,57 @@ class ShareWindow(gtk.Window):
- username = username or self.username
-
- try:
-- self.pipe_manager = self.run_connect_dialog(None, server,
-- transport_type, username, password, connect_now)
-+ self.pipe_manager = self.run_connect_dialog(
-+ None,
-+ server,
-+ transport_type,
-+ username,
-+ password,
-+ connect_now,
-+ )
- if self.pipe_manager is not None:
- self.pipe_manager.get_shares_list()
- self.server_info = self.pipe_manager.server_info
-
-- self.set_status("Connected to Server: IP=%s NETBios Name=%s." % (
-- self.server_address,self.pipe_manager.server_info.server_name))
--
-+ self.set_status(
-+ 'Connected to Server: IP=%s NETBios Name=%s.'
-+ % (self.server_address,
-+ self.pipe_manager.server_info.server_name))
- except RuntimeError, re:
-- msg = "Failed to connect: %s." % (re.args[1])
-+
-+ msg = 'Failed to connect: %s.' % re.args[1]
- self.set_status(msg)
- print msg
- traceback.print_exc()
-- self.run_message_dialog(gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, msg)
--
-+ self.run_message_dialog(gtk.MESSAGE_ERROR, gtk.BUTTONS_OK,
-+ msg)
- except Exception, ex:
-- msg = "Failed to connect: %s." % (str(ex))
-+
-+ msg = 'Failed to connect: %s.' % str(ex)
- self.set_status(msg)
- print msg
- traceback.print_exc()
-- self.run_message_dialog(gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, msg)
--
-+ self.run_message_dialog(gtk.MESSAGE_ERROR, gtk.BUTTONS_OK,
-+ msg)
-
- self.refresh_shares_view()
- self.update_sensitivity()
- self.fill_server_info()
-
-+ def run_connect_dialog(
-+ self,
-+ pipe_manager,
-+ server_address,
-+ transport_type,
-+ username,
-+ password='',
-+ connect_now=False,
-+ ):
-
--
-- def run_connect_dialog(self, pipe_manager, server_address, transport_type,
-- username, password="", connect_now=False):
--
--
-- dialog = srvsvcConnectDialog(server_address, transport_type, username, password)
-+ dialog = srvsvcConnectDialog(server_address, transport_type,
-+ username, password)
- dialog.show_all()
-
--
- while True:
- if connect_now:
- connect_now = False
-@@ -689,39 +672,60 @@ class ShareWindow(gtk.Window):
- self.username = username
- password = dialog.get_password()
-
-- pipe_manager = srvsvcPipeManager(server_address, transport_type, username, password)
-+ pipe_manager = srvsvcPipeManager(server_address,
-+ transport_type, username, password)
- break
--
--
- except RuntimeError, re:
-- if re.args[1] == 'Logon failure': #user got the password wrong
-- self.run_message_dialog(gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, "Failed to connect: Invalid username or password.", dialog)
-+
-+ if re.args[1] == 'Logon failure': # user got the password wrong
-+ self.run_message_dialog(gtk.MESSAGE_ERROR,
-+ gtk.BUTTONS_OK,
-+ 'Failed to connect: Invalid username or password.'
-+ , dialog)
- dialog.password_entry.grab_focus()
-- dialog.password_entry.select_region(0, -1) #select all the text in the password box
-- elif re.args[0] == 5 or re.args[1] == 'Access denied':
-- self.run_message_dialog(gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, "Failed to connect: Access Denied.", dialog)
-+ dialog.password_entry.select_region(0,
-+ -1) # select all the text in the password box
-+ elif re.args[0] == 5 or re.args[1]\
-+ == 'Access denied':
-+ self.run_message_dialog(gtk.MESSAGE_ERROR,
-+ gtk.BUTTONS_OK,
-+ 'Failed to connect: Access Denied.',
-+ dialog)
- dialog.username_entry.grab_focus()
-- dialog.username_entry.select_region(0, -1)
-- elif re.args[1] == 'NT_STATUS_HOST_UNREACHABLE':
-- self.run_message_dialog(gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, "Failed to connect: Could not contact the server", dialog)
-+ dialog.username_entry.select_region(0,
-+ -1)
-+ elif re.args[1]\
-+ == 'NT_STATUS_HOST_UNREACHABLE':
-+ self.run_message_dialog(gtk.MESSAGE_ERROR,
-+ gtk.BUTTONS_OK,
-+ 'Failed to connect: Could not contact the server'
-+ , dialog)
- dialog.server_address_entry.grab_focus()
-- dialog.server_address_entry.select_region(0, -1)
-- elif re.args[1] == 'NT_STATUS_NETWORK_UNREACHABLE':
-- self.run_message_dialog(gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, "Failed to connect: The network is unreachable.\n\nPlease check your network connection.", dialog)
-+ dialog.server_address_entry.select_region(0,
-+ -1)
-+ elif re.args[1]\
-+ == 'NT_STATUS_NETWORK_UNREACHABLE':
-+ self.run_message_dialog(gtk.MESSAGE_ERROR,
-+ gtk.BUTTONS_OK,
-+ '''Failed to connect: The network is unreachable.
-+
-+Please check your network connection.''',
-+ dialog)
- else:
-- msg = "Failed to connect: %s." % (re.args[1])
-+ msg = 'Failed to connect: %s.'\
-+ % re.args[1]
- print msg
- traceback.print_exc()
-- self.run_message_dialog(gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, msg, dialog)
--
-+ self.run_message_dialog(gtk.MESSAGE_ERROR,
-+ gtk.BUTTONS_OK, msg, dialog)
- except Exception, ex:
-- msg = "Failed to connect: %s." % (str(ex))
-+
-+ msg = 'Failed to connect: %s.' % str(ex)
- print msg
- traceback.print_exc()
-- self.run_message_dialog(gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, msg, dialog)
--
-+ self.run_message_dialog(gtk.MESSAGE_ERROR,
-+ gtk.BUTTONS_OK, msg, dialog)
-
-- #return RESPONSE_OK if we were told to auto-connect. Otherwise run the dialog
- response_id = gtk.RESPONSE_OK or dialog.run()
- dialog.hide()
-
-@@ -730,141 +734,169 @@ class ShareWindow(gtk.Window):
-
- return pipe_manager
-
--
-- def on_switch_fill_active_pane(self,widget):
-+ def on_switch_fill_active_pane(self, widget):
- """ Function doc """
-+
- self.fill_active_pane()
-
- def on_update_sensitivity(self, widget):
- self.update_sensitivity()
-
--
-- def fill_server_info (self):
-+ def fill_server_info(self):
- """ Gracious fill out server info """
-- for widget in self.sd_frame.get_children() :
-+
-+ for widget in self.sd_frame.get_children():
- if type(widget) is gtk.Table:
- self.sd_frame.remove(widget)
-
- if self.server_info is None:
- self.srv_info_label.set_markup('<b>Server Disconnected</b>')
-
--
-- my_lables = self.srvinfo_frame.get_children()[0].get_children()
-- for label in my_lables :
-+ my_lables = \
-+ self.srvinfo_frame.get_children()[0].get_children()
-+ for label in my_lables:
- label.set_sensitive(False)
-
-- #handle the disk data
-- table = gtk.Table(2,2,True)
-+ table = gtk.Table(2, 2, True)
- table.set_border_width(5)
- table.set_row_spacings(4)
- label = gtk.Label('Not connected to share server.')
- label.set_alignment(1, 0.5)
-- table.attach(label, 0, 1, 1, 2, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
--
-+ table.attach(label, 0, 1, 1, 2, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
- else:
-- self.srv_info_label.set_markup('<b>Share Server Details</b>')
-
-- my_lables = self.srvinfo_frame.get_children()[0].get_children()
-- for label in my_lables :
-+ self.srv_info_label.set_markup('<b>Share Server Details</b>'
-+ )
-+
-+ my_lables = \
-+ self.srvinfo_frame.get_children()[0].get_children()
-+ for label in my_lables:
- label.set_sensitive(True)
-
-- label_data = self.pipe_manager.get_platform_info(
-- self.server_info.platform_id,'desc')
-+ label_data = \
-+ self.pipe_manager.get_platform_info(
-+ self.server_info.platform_id, 'desc')
- self.srvinfo_tos_label.set_text(label_data)
-- srv_type_genstr = self.pipe_manager.get_platform_info(
-- self.server_info.platform_id,'typestring')
-- self.srvinfo_name_label.set_text('\\'+self.server_info.server_name)
-- self.srvinfo_hidden_label.set_text(str(bool(self.server_info.hidden)))
-+ srv_type_genstr = \
-+ self.pipe_manager.get_platform_info(
-+ self.server_info.platform_id, 'typestring')
-+ self.srvinfo_name_label.set_text('\\'
-+ + self.server_info.server_name)
-+ self.srvinfo_hidden_label.set_text(
-+ str(bool(self.server_info.hidden)))
- self.srvinfo_comment_label.set_text(self.server_info.comment)
-- label_data = '.'.join([str(self.server_info.version_major),str(self.server_info.version_minor)])
-+ label_data = '.'.join([str(self.server_info.version_major),
-+ str(self.server_info.version_minor)])
- self.srvinfo_version_label.set_text(label_data)
- server_typedict = {
-- 0x00000001:('SV_TYPE_WORKSTATION','Workstation Service'),
-- 0x00000002:('SV_TYPE_SERVER','Server Service'),
-- 0x00000004:('SV_TYPE_SQLSERVER','SQL Server'),
-- 0x00000008:('SV_TYPE_DOMAIN_CTRL','Primary Domain Controller'),
-- 0x00000010:('SV_TYPE_DOMAIN_BAKCTRL','Backup Domain Controller'),
-- 0x00000020:('SV_TYPE_TIME_SOURCE','Time Source'),
-- 0x00000040:('SV_TYPE_AFP','Apple File Protocol Server'),
-- 0x00000080:('SV_TYPE_NOVELL','Novel Server'),
-- 0x00000100:('SV_TYPE_DOMAIN_MEMBER','LAN Manager 2.x Domain Member'),
-- 0x40000000:('SV_TYPE_LOCAL_LIST_ONLY','Server Maintained By the Browser'),
-- 0x00000200:('SV_TYPE_PRINTQ_SERVER','Print Queue Server'),
-- 0x00000400:('SV_TYPE_DIALIN_SERVER','Dial-In Server'),
-- 0x00000800:('SV_TYPE_XENIX_SERVER','Xenix Server'),
-- 0x00004000:('SV_TYPE_SERVER_MFPN','Microsoft File and Print for NetWare'),
-- 0x00001000:('SV_TYPE_NT','Windows NT/XP/2003 or Newer'),
-- 0x00002000:('SV_TYPE_WFW','Windows for Workgroups'),
-- 0x00008000:('SV_TYPE_SERVER_NT','Non DC Windows Server 2000/2003 or Newer'),
-- 0x00010000:('SV_TYPE_POTENTIAL_BROWSER','Potential Browser Service '),
-- 0x00020000:('SV_TYPE_BACKUP_BROWSER','Browser Service As Backup'),
-- 0x00040000:('SV_TYPE_MASTER_BROWSER','Master Browser Service'),
-- 0x00080000:('SV_TYPE_DOMAIN_MASTER','Domain Master Browser'),
-- 0x80000000:('SV_TYPE_DOMAIN_ENUM','Primary Domain'),
-- 0x00400000:('SV_TYPE_WINDOWS','Windows ME/98/95'),
-- 0xFFFFFFFF:('SV_TYPE_ALL','All Servers'),
-- 0x02000000:('SV_TYPE_TERMINALSERVER','Terminal Server'),
-- 0x10000000:('SV_TYPE_CLUSTER_NT','Server Cluster'),
-- 0x04000000:('SV_TYPE_CLUSTER_VS_NT','Virtual Server Cluster')
-- }
--
-- label_data = server_typedict.get(self.server_info.server_type,('','Multiple Capablities'))[1]
-+ 1: ('SV_TYPE_WORKSTATION',
-+ 'Workstation Service'),
-+ 2: ('SV_TYPE_SERVER', 'Server Service'),
-+ 4: ('SV_TYPE_SQLSERVER', 'SQL Server'),
-+ 8: ('SV_TYPE_DOMAIN_CTRL',
-+ 'Primary Domain Controller'),
-+ 0x00000010: ('SV_TYPE_DOMAIN_BAKCTRL',
-+ 'Backup Domain Controller'),
-+ 0x00000020: ('SV_TYPE_TIME_SOURCE', 'Time Source'),
-+ 0x00000040: ('SV_TYPE_AFP', 'Apple File Protocol Server'
-+ ),
-+ 0x00000080: ('SV_TYPE_NOVELL', 'Novel Server'),
-+ 0x00000100: ('SV_TYPE_DOMAIN_MEMBER',
-+ 'LAN Manager 2.x Domain Member'),
-+ 0x40000000: ('SV_TYPE_LOCAL_LIST_ONLY',
-+ 'Server Maintained By the Browser'),
-+ 0x00000200: ('SV_TYPE_PRINTQ_SERVER',
-+ 'Print Queue Server'),
-+ 0x00000400: ('SV_TYPE_DIALIN_SERVER', 'Dial-In Server'
-+ ),
-+ 0x00000800: ('SV_TYPE_XENIX_SERVER', 'Xenix Server'),
-+ 0x00004000: ('SV_TYPE_SERVER_MFPN',
-+ 'Microsoft File and Print for NetWare'),
-+ 0x00001000: ('SV_TYPE_NT', 'Windows NT/XP/2003 or Newer'
-+ ),
-+ 0x00002000: ('SV_TYPE_WFW', 'Windows for Workgroups'),
-+ 0x00008000: ('SV_TYPE_SERVER_NT',
-+ 'Non DC Windows Server 2000/2003 or Newer'
-+ ),
-+ 0x00010000: ('SV_TYPE_POTENTIAL_BROWSER',
-+ 'Potential Browser Service '),
-+ 0x00020000: ('SV_TYPE_BACKUP_BROWSER',
-+ 'Browser Service As Backup'),
-+ 0x00040000: ('SV_TYPE_MASTER_BROWSER',
-+ 'Master Browser Service'),
-+ 0x00080000: ('SV_TYPE_DOMAIN_MASTER',
-+ 'Domain Master Browser'),
-+ 0x80000000: ('SV_TYPE_DOMAIN_ENUM', 'Primary Domain'),
-+ 0x00400000: ('SV_TYPE_WINDOWS', 'Windows ME/98/95'),
-+ 0xFFFFFFFF: ('SV_TYPE_ALL', 'All Servers'),
-+ 0x02000000: ('SV_TYPE_TERMINALSERVER', 'Terminal Server'
-+ ),
-+ 0x10000000: ('SV_TYPE_CLUSTER_NT', 'Server Cluster'),
-+ 0x04000000: ('SV_TYPE_CLUSTER_VS_NT',
-+ 'Virtual Server Cluster'),
-+ }
-+
-+ label_data = \
-+ server_typedict.get(self.server_info.server_type, ('',
-+ 'Multiple Capablities'))[1]
- self.srvinfo_type_label.set_text(label_data)
-- self.srvinfo_upath_label.set_text(self.server_info.userpath.upper())
-+ self.srvinfo_upath_label.set_text(
-+ self.server_info.userpath.upper())
- self.srvinfo_to_label.set_text(str(self.server_info.disc))
- label_data = '/'.join([str(self.server_info.announce),
-- str(self.server_info.anndelta)])
-+ str(self.server_info.anndelta)])
- self.srvinfo_aa_label.set_text(label_data)
-
-- #handle server data windo
-- num_disks = len (self.pipe_manager.disks_list)
-- table = gtk.Table(num_disks+2,2,True)
-+ num_disks = len(self.pipe_manager.disks_list)
-+ table = gtk.Table(num_disks + 2, 2, True)
- table.set_border_width(5)
- table.set_row_spacings(4)
- label = gtk.Label('<b> Disks </b>')
- label.set_use_markup(True)
- label.set_alignment(1, 0.5)
-- table.attach(label, 0, 1, 1, 2, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-- for i in self.pipe_manager.disks_list :
-+ table.attach(label, 0, 1, 1, 2, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-+
-+ for i in self.pipe_manager.disks_list:
- label = gtk.Label(i)
- label.set_alignment(1, 0.5)
-- attach_index = self.pipe_manager.disks_list.index(i) + 2
-- #Note : attcah ofsets for uniformity of gui , no other practical reason
-- table.attach(label, 0, 1, attach_index, attach_index+1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ attach_index = self.pipe_manager.disks_list.index(i)+2
-+
-+ table.attach(label, 0, 1, attach_index,
-+ attach_index + 1, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
- self.sd_frame.add(table)
- self.sd_frame.show_all()
-
--
--
--
--
- def get_selected_share(self):
- if not self.connected():
- return None
-
-- (model, iter) = self.shares_tree_view.get_selection().get_selected()
-- if iter is None: # no selection
-+ (model, iter) = \
-+ self.shares_tree_view.get_selection().get_selected()
-+ if iter is None: # no selection
- return None
- else:
- share_name = model.get_value(iter, 0)
-- share_list = [share for share in self.pipe_manager.share_list if share.name == share_name]
-+ share_list = [share for share in
-+ self.pipe_manager.share_list if share.name
-+ == share_name]
- if len(share_list) > 0:
- return share_list[0]
- else:
- return None
-
--
- def on_about_item_activate(self, widget):
-- dialog = AboutDialog("PyGWShare",
-- "A tool to manage user shares on a SRVS Share server.\n"
-- "Based on Jelmer Vernooij's original Samba-GTK",
-- self.icon_pixbuf)
-- #dialog.set_copyright("Copyright \xc2\xa9 2011 Dhananjay Sathe <dhananjaysathe@gmail.com>")
-+ dialog = AboutDialog('PyGWShare',
-+ "A tool to manage user shares on a SRVS Share server.\nBased on Jelmer Vernooij's original Samba-GTK"
-+ , self.icon_pixbuf)
-+ dialog.set_copyright('Copyright \xc2\xa9 2011 Dhananjay Sathe <dhananjaysathe@gmail.com>'
-+ )
- dialog.run()
- dialog.hide()
-
--
- def run_delete_dialog(self, share=None):
- dialog = DeleteDialog(self.pipe_manager, share)
- dialog.show_all()
-@@ -872,17 +904,19 @@ class ShareWindow(gtk.Window):
- dialog.hide()
- return response_id
-
-+ def run_share_add_edit_dialog(
-+ self,
-+ share=None,
-+ apply_callback=None,
-+ wizard_mode=False,
-+ ):
-
--
-- def run_share_add_edit_dialog(self, share= None, apply_callback= None,wizard_mode=False):
--
-- if wizard_mode:
-- dialog = ShareWizardDialog(self.pipe_manager, None) # wizard only for a new share
-+ if wizard_mode: # wizard only for a new share
-+ dialog = ShareWizardDialog(self.pipe_manager, None)
- else:
- dialog = ShareAddEditDialog(self.pipe_manager, share)
- dialog.show_all()
-
-- # loop to handle the applies
- while True:
- response_id = dialog.run()
-
-@@ -890,7 +924,8 @@ class ShareWindow(gtk.Window):
- problem_msg = dialog.validate_fields()
-
- if problem_msg is not None:
-- self.run_message_dialog(gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, problem_msg, dialog)
-+ self.run_message_dialog(gtk.MESSAGE_ERROR,
-+ gtk.BUTTONS_OK, problem_msg, dialog)
- else:
- dialog.fields_to_share()
-
-@@ -902,8 +937,8 @@ class ShareWindow(gtk.Window):
- if response_id == gtk.RESPONSE_OK:
- dialog.hide()
- break
--
- else:
-+
- dialog.hide()
- return None
-
-@@ -911,9 +946,10 @@ class ShareWindow(gtk.Window):
-
- def update_sensitivity(self):
-
-- connected = (self.pipe_manager is not None)
-+ connected = self.pipe_manager is not None
- share_page_active = not self.active_page_index
-- selected = (self.get_selected_share() is not None) and share_page_active
-+ selected = self.get_selected_share() is not None\
-+ and share_page_active
-
- self.connect_item.set_sensitive(not connected)
- self.disconnect_item.set_sensitive(connected)
-@@ -922,7 +958,8 @@ class ShareWindow(gtk.Window):
- self.new_item.set_sensitive(connected and share_page_active)
- self.delete_item.set_sensitive(connected and selected)
- self.edit_item.set_sensitive(connected and selected)
-- self.new_share_wizard_item.set_sensitive(connected and share_page_active)
-+ self.new_share_wizard_item.set_sensitive(connected
-+ and share_page_active)
-
- self.connect_button.set_sensitive(not connected)
- self.disconnect_button.set_sensitive(connected)
-@@ -930,12 +967,15 @@ class ShareWindow(gtk.Window):
- self.new_button.set_sensitive(connected and share_page_active)
- self.delete_button.set_sensitive(connected and selected)
- self.edit_button.set_sensitive(connected and selected)
-- self.new_share_wizard_button.set_sensitive(connected and share_page_active)
--
-- self.active_frame_new_button.set_sensitive(connected and share_page_active)
-- self.active_frame_delete_button.set_sensitive(connected and selected)
-- self.active_frame_edit_button.set_sensitive(connected and selected)
-+ self.new_share_wizard_button.set_sensitive(connected
-+ and share_page_active)
-
-+ self.active_frame_new_button.set_sensitive(connected
-+ and share_page_active)
-+ self.active_frame_delete_button.set_sensitive(connected
-+ and selected)
-+ self.active_frame_edit_button.set_sensitive(connected
-+ and selected)
-
- def on_disconnect_item_activate(self, widget):
- if self.pipe_manager is not None:
-@@ -948,21 +988,19 @@ class ShareWindow(gtk.Window):
- self.fill_active_pane()
- self.fill_server_info()
-
-- self.set_status("Disconnected.")
--
-+ self.set_status('Disconnected.')
-
--
-- def toggle_share_view_visiblity(self,widget,Junk):
-+ def toggle_share_view_visiblity(self, widget, Junk):
- """ Toggels Visiblity of hidden shares if authorised """
-+
- is_visible = self.show_all_share_checkbox.get_active()
- self.pipe_manager.show_all_shares = is_visible
- self.pipe_manager.get_shares_list()
-- # set the box accordingly from get_shares list
-- self.show_all_share_checkbox.set_active(self.pipe_manager.show_all_shares)
-- # now refresh the share view
-- self.refresh_shares_view()
-
-+ self.show_all_share_checkbox.set_active(
-+ self.pipe_manager.show_all_shares)
-
-+ self.refresh_shares_view()
-
- def on_key_press(self, widget, event):
- if event.keyval == gtk.keysyms.F5:
-@@ -970,77 +1008,72 @@ class ShareWindow(gtk.Window):
- elif event.keyval == gtk.keysyms.Delete:
- self.on_delete_item_activate(None)
- elif event.keyval == gtk.keysyms.Return:
-- myev = gtk.gdk.Event(gtk.gdk._2BUTTON_PRESS) #emulate a double-click
-+ myev = gtk.gdk.Event(gtk.gdk._2BUTTON_PRESS)
-+ # emulates a double-click
- if self.active_page_index == 0:
- self.on_shares_tree_view_button_press(None, myev)
-
--
--
- def on_quit_item_activate(self, widget):
- self.on_self_delete(None, None)
-
--
--
-- def on_new_item_activate(self, widget,wizard_mode=False):
-+ def on_new_item_activate(self, widget, wizard_mode=False):
-
- share = self.run_share_add_edit_dialog(wizard_mode=wizard_mode)
-- #TODO cleanup Debug
-- #print share.name,share.comment,share.password,str(share.type),str(share.max_users),share.path
-+
- if share is None:
-- self.set_status("Share creation canceled.")
-+ self.set_status('Share creation canceled.')
- return
-
- try:
- self.pipe_manager.add_share(share)
-- self.set_status("Successfully added share \'%s\'." %
-- (share.name))
-+ self.set_status("Successfully added share \'%s\'."
-+ % share.name)
- except RuntimeError, re:
-- msg = "Failed to add share: %s." % (re.args[1])
-+ msg = 'Failed to add share: %s.' % re.args[1]
- self.set_status(msg)
- print msg
- traceback.print_exc()
-- self.run_message_dialog(gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, msg)
-+ self.run_message_dialog(gtk.MESSAGE_ERROR, gtk.BUTTONS_OK,
-+ msg)
- except Exception, ex:
-- msg = "Failed to ad share: %s." % (str(ex))
-+ msg = 'Failed to ad share: %s.' % str(ex)
- self.set_status(msg)
- print msg
- traceback.print_exc()
-- self.run_message_dialog(gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, msg)
-+ self.run_message_dialog(gtk.MESSAGE_ERROR, gtk.BUTTONS_OK,
-+ msg)
-
- self.refresh_shares_view()
-
--
--
--
--
- def on_edit_item_activate(self, widget):
- share = self.get_selected_share()
-- share = self.run_share_add_edit_dialog(share, self.update_share_callback)
-+ share = self.run_share_add_edit_dialog(share,
-+ self.update_share_callback)
- if share is None:
-- self.set_status("Last Share Edit Cancelled.")
-+ self.set_status('Last Share Edit Cancelled.')
- return
-
- try:
- self.pipe_manager.modify_share(share)
-- self.set_status("Successfully modified share \'%s\'." %
-- (share.name))
-+ self.set_status("Successfully modified share \'%s\'."
-+ % share.name)
- except RuntimeError, re:
-- msg = "Failed to add share: %s." % (re.args[1])
-+ msg = 'Failed to add share: %s.' % re.args[1]
- self.set_status(msg)
- print msg
- traceback.print_exc()
-- self.run_message_dialog(gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, msg)
-+ self.run_message_dialog(gtk.MESSAGE_ERROR, gtk.BUTTONS_OK,
-+ msg)
- except Exception, ex:
-- msg = "Failed to ad share: %s." % (str(ex))
-+ msg = 'Failed to ad share: %s.' % str(ex)
- self.set_status(msg)
- print msg
- traceback.print_exc()
-- self.run_message_dialog(gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, msg)
-+ self.run_message_dialog(gtk.MESSAGE_ERROR, gtk.BUTTONS_OK,
-+ msg)
-
- self.refresh_shares_view()
-
--
--
- def on_delete_item_activate(self, widget):
- share = self.get_selected_share()
-
-@@ -1049,78 +1082,87 @@ class ShareWindow(gtk.Window):
-
- try:
- self.pipe_manager.delete_share(share.name)
-- self.set_status("Successfully deleted share \'%s\'." % (share.name))
--
-+ self.set_status("Successfully deleted share \'%s\'."
-+ % share.name)
- except RuntimeError, re:
-- msg = "Failed to delete share: %s." % (re.args[1])
-+
-+ msg = 'Failed to delete share: %s.'\
-+ % re.args[1]
- self.set_status(msg)
- print msg
- traceback.print_exc()
-- self.run_message_dialog(gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, msg)
-+ self.run_message_dialog(gtk.MESSAGE_ERROR,
-+ gtk.BUTTONS_OK, msg)
- except Exception, ex:
-- msg = "Failed to delete share: %s." % (str(ex))
-+ msg = 'Failed to delete share: %s.' % str(ex)
- self.set_status(msg)
- print msg
- traceback.print_exc()
-- self.run_message_dialog(gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, msg)
-+ self.run_message_dialog(gtk.MESSAGE_ERROR,
-+ gtk.BUTTONS_OK, msg)
-
- self.refresh_shares_view()
-
--
--
-- def on_notebook_switch_page(self, widget, page, page_num):
-+ def on_notebook_switch_page(
-+ self,
-+ widget,
-+ page,
-+ page_num,
-+ ):
- self.active_page_index = page_num
- self.update_sensitivity()
-
- def update_share_callback(self, share):
- try:
- self.pipe_manager.modify_share(share)
-- self.set_status("Share \'%s\' Modified." % (share.name))
-+ self.set_status("Share \'%s\' Modified." % share.name)
- except RuntimeError, re:
-- msg = "Failed to Modify Share: %s." % (re.args[1])
-+ msg = 'Failed to Modify Share: %s.' % re.args[1]
- print msg
- self.set_status(msg)
- traceback.print_exc()
-- self.run_message_dialog(gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, msg)
--
-+ self.run_message_dialog(gtk.MESSAGE_ERROR, gtk.BUTTONS_OK,
-+ msg)
- except Exception, ex:
-- msg = "Failed to Modify Share: %s." % (str(ex))
-+
-+ msg = 'Failed to Modify Share: %s.' % str(ex)
- print msg
- self.set_status(msg)
- traceback.print_exc()
-- self.run_message_dialog(gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, msg)
-+ self.run_message_dialog(gtk.MESSAGE_ERROR, gtk.BUTTONS_OK,
-+ msg)
- finally:
- self.refresh_shares_view()
-
--
- def on_refresh_item_activate(self, widget):
- try:
- self.pipe_manager.get_shares_list()
- except RuntimeError, re:
-- msg = "Failed to Refresh SRV Info: %s." % (re.args[1])
-+ msg = 'Failed to Refresh SRV Info: %s.'\
-+ % re.args[1]
- self.set_status(msg)
- print msg
- traceback.print_exc()
-- self.run_message_dialog(gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, msg)
-+ self.run_message_dialog(gtk.MESSAGE_ERROR, gtk.BUTTONS_OK,
-+ msg)
- except Exception, ex:
-- msg = "Failed to Refresh SRV Info: %s." % (str(ex))
-+ msg = 'Failed to Refresh SRV Info: %s.' % str(ex)
- self.set_status(msg)
- print msg
- traceback.print_exc()
-- self.run_message_dialog(gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, msg)
-+ self.run_message_dialog(gtk.MESSAGE_ERROR, gtk.BUTTONS_OK,
-+ msg)
-
- self.refresh_shares_view()
-- self.set_status("Successfully Refreshed Shares List.")
-+ self.set_status('Successfully Refreshed Shares List.')
-
-- #deselect any selected shares
-- (model, iter) = self.shares_tree_view.get_selection().get_selected()
-+ (model, iter) = \
-+ self.shares_tree_view.get_selection().get_selected()
- if iter is None:
- return
- selector = self.shares_tree_view.get_selection()
- selector.unselect_iter(iter)
-
--
--
- def on_shares_tree_view_button_press(self, widget, event):
- if self.get_selected_share() is None:
- return
-@@ -1128,36 +1170,33 @@ class ShareWindow(gtk.Window):
- if event.type == gtk.gdk._2BUTTON_PRESS:
- self.on_edit_item_activate(self.edit_item)
-
--
--
- def on_self_delete(self, widget, event):
-- if (self.pipe_manager is not None):
-+ if self.pipe_manager is not None:
- self.on_disconnect_item_activate(self.disconnect_item)
-
- gtk.main_quit()
- return False
-
--
--
- def refresh_shares_view(self):
- if not self.connected():
- return None
-
-- (model, paths) = self.shares_tree_view.get_selection().get_selected_rows()
-+ (model, paths) = \
-+ self.shares_tree_view.get_selection().get_selected_rows()
- self.pipe_manager.get_shares_list()
-
- self.shares_store.clear()
-- for share in self.pipe_manager.share_list :
-- type_comment = self.pipe_manager.get_share_type_info(share.type,'desc')
-+ for share in self.pipe_manager.share_list:
-+ type_comment = \
-+ self.pipe_manager.get_share_type_info(share.type, 'desc'
-+ )
- view_compat_data = [share.name, type_comment,
-- share.comment, share.path]
-+ share.comment, share.path]
- self.shares_store.append(view_compat_data)
-
-- if (len(paths) > 0):
-+ if len(paths) > 0:
- self.shares_tree_view.get_selection().select_path(paths[0])
-
--
--
- def fill_active_pane(self):
- """ Fills sthe active left pane """
-
-@@ -1166,193 +1205,223 @@ class ShareWindow(gtk.Window):
- except:
- share = None
-
-- widget_to_delete = self.shareinfo_frame.get_children()[0]
-+ widget_to_delete = \
-+ self.shareinfo_frame.get_children()[0]
- self.shareinfo_frame.remove(widget_to_delete)
-
- if share is None:
-- table = gtk.Table(1,2)
-+ table = gtk.Table(1, 2)
- table.set_border_width(5)
-- self.active_pane_frame_label.set_markup('<b> No Share Selected </b>')
--
-+ self.active_pane_frame_label.set_markup(
-+ '<b> No Share Selected </b>')
-
-- label = gtk.Label("Please Select a Share First")
-+ label = gtk.Label('Please Select a Share First')
- label.set_alignment(1, 0.5)
-- table.attach(label, 0, 1, 0, 1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 0, 1, 0, 1, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
-- label = gtk.Label(" "*55 )
-+ label = gtk.Label(' ' * 55)
- label.set_alignment(1, 0.5)
-- table.attach(label, 1, 2, 0, 1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 1, 2, 0, 1, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
- else:
-+
- stype = share.type
-- flag_set = self.pipe_manager.get_share_type_info(stype,'flags')
-+ flag_set = self.pipe_manager.get_share_type_info(stype,
-+ 'flags')
-
-- rows_required = (8 -int(share.password is "") -int(share.max_users == 0xFFFFFFFF)
-- -int(not flag_set[1]) + ((len(share.path)/35)+1)
-- +((len(share.comment)/35)+1))
-+ rows_required = ((8 - int(share.password is ''))
-+ - int(share.max_users == 0xFFFFFFFF))\
-+ - int(not flag_set[1]) + len(share.path) / 35\
-+ + 1 + len(share.comment) / 35 + 1
-
-- table = gtk.Table(rows_required,2)
-+ table = gtk.Table(rows_required, 2)
- table.set_border_width(5)
- table.set_row_spacings(2)
- table.set_col_spacings(6)
-
- row_index = 0
-
-- self.active_pane_frame_label.set_markup('<b>Selected Share Details</b>')
--
-+ self.active_pane_frame_label.set_markup(
-+ '<b>Selected Share Details</b>')
-
- label = gtk.Label(' Share Name : ')
- label.set_alignment(1, 0.5)
-- table.attach(label, 0, 1, row_index, row_index+1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 0, 1, row_index, row_index + 1,
-+ gtk.FILL, gtk.FILL | gtk.EXPAND, 0, 0)
-+
-
- label = gtk.Label(share.name)
- label.set_alignment(0, 0.5)
-- table.attach(label, 1, 2, row_index, row_index+1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-- row_index+=1
-+ table.attach(label, 1, 2, row_index, row_index + 1,
-+ gtk.FILL, gtk.FILL | gtk.EXPAND, 0, 0)
-+ row_index += 1
-
- label = gtk.Label(' Comment : ')
- label.set_alignment(1, 0.5)
-- table.attach(label, 0, 1, row_index, row_index+1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 0, 1, row_index, row_index + 1,
-+ gtk.FILL, gtk.FILL | gtk.EXPAND, 0, 0)
-
-- if len(share.comment)>35:
-- for i in range((len(share.comment)/35)+1) :
-- label = gtk.Label(share.comment[i*35:i*35+35])
-+ if len(share.comment) > 35:
-+ for i in range(len(share.comment) / 35 + 1):
-+ label = gtk.Label(share.comment[i * 35:i * 35 + 35])
- label.set_alignment(0, 0.5)
-- table.attach(label, 1, 2, row_index, row_index+1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-- row_index+=1
-- else :
-- padding = (35 - len(share.comment))*" "
-- label = gtk.Label("".join([share.comment,padding]))
-+ table.attach(label, 1, 2, row_index, row_index + 1,
-+ gtk.FILL, gtk.FILL | gtk.EXPAND, 0, 0)
-+ row_index += 1
-+ else:
-+ padding = (35 - len(share.comment)) * ' '
-+ label = gtk.Label(''.join([share.comment, padding]))
- label.set_alignment(0, 0.5)
-- table.attach(label, 1, 2, row_index, row_index+1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-- row_index+=1
-+ table.attach(label, 1, 2, row_index, row_index + 1,
-+ gtk.FILL, gtk.FILL | gtk.EXPAND, 0, 0)
-+ row_index += 1
-
- label = gtk.Label(' Path : ')
- label.set_alignment(1, 0.5)
-- table.attach(label, 0, 1, row_index, row_index+1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 0, 1, row_index, row_index + 1,
-+ gtk.FILL, gtk.FILL | gtk.EXPAND, 0, 0)
-
-- if len(share.path)>35:
-- for i in range((len(share.path)/35)+1) :
-- label = gtk.Label(share.path[i*35:i*35+35])
-+ if len(share.path) > 35:
-+ for i in range(len(share.path) / 35 + 1):
-+ label = gtk.Label(share.path[i * 35:i * 35 + 35])
- label.set_alignment(0, 0.5)
-- table.attach(label, 1, 2, row_index, row_index+1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-- row_index+=1
-- else :
-- if share.path == "":
-- padding = 41*" "
-+ table.attach(label, 1, 2, row_index, row_index + 1,
-+ gtk.FILL, gtk.FILL | gtk.EXPAND, 0, 0)
-+ row_index += 1
-+ else:
-+ if share.path == '':
-+ padding = 41 * ' '
- else:
-- padding = (35 - len(share.path))*" "
-- label = gtk.Label("".join([share.path,padding]))
-+ padding = (35 - len(share.path)) * ' '
-+ label = gtk.Label(''.join([share.path, padding]))
- label.set_alignment(0, 0.5)
-- table.attach(label, 1, 2, row_index, row_index+1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-- row_index+=1
-+ table.attach(label, 1, 2, row_index, row_index + 1,
-+ gtk.FILL, gtk.FILL | gtk.EXPAND, 0, 0)
-+ row_index += 1
-
--
--
-- if share.password :
-+ if share.password:
- label = gtk.Label(' Password : ')
- label.set_alignment(1, 0.5)
-- table.attach(label, 0, 1, row_index, row_index+1, gtk.SHRINK,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 0, 1, row_index, row_index + 1,
-+ gtk.SHRINK, gtk.FILL | gtk.EXPAND, 0, 0)
-
-- label = gtk.Label("Protection Enabled")
-+ label = gtk.Label('Protection Enabled')
- label.set_alignment(0, 0.5)
-- table.attach(label, 1, 2, row_index, row_index+1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-- row_index+=1
-+ table.attach(label, 1, 2, row_index, row_index + 1,
-+ gtk.FILL, gtk.FILL | gtk.EXPAND, 0, 0)
-+ row_index += 1
-
- label = gtk.Label('<b> Share Type</b>')
- label.set_use_markup(True)
- label.set_alignment(0, 0.5)
-- table.attach(label, 0, 1, row_index, row_index+1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-- row_index+=1
-+ table.attach(label, 0, 1, row_index, row_index + 1,
-+ gtk.FILL, gtk.FILL | gtk.EXPAND, 0, 0)
-+ row_index += 1
-
- label = gtk.Label(' Type Description : ')
- label.set_alignment(1, 0.5)
-- table.attach(label, 0, 1, row_index, row_index+1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
--
-- label_data = self.pipe_manager.get_share_type_info(stype,'desc')
-+ table.attach(label, 0, 1, row_index, row_index + 1,
-+ gtk.FILL, gtk.FILL | gtk.EXPAND, 0, 0)
-+ label_data = self.pipe_manager.get_share_type_info(
-+ stype, 'desc')
-
- label = gtk.Label(label_data)
- label.set_alignment(0, 0.5)
-- table.attach(label, 1, 2, row_index, row_index+1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-- row_index+=1
-+ table.attach(label, 1, 2, row_index, row_index + 1,
-+ gtk.FILL, gtk.FILL | gtk.EXPAND, 0, 0)
-+ row_index += 1
-
- label = gtk.Label()
- label.set_markup('<b> Special Flags </b>')
- label.set_alignment(0, 0.5)
-- table.attach(label, 0, 1, row_index, row_index+1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-- row_index+=1
-+ table.attach(label, 0, 1, row_index, row_index + 1,
-+ gtk.FILL, gtk.FILL | gtk.EXPAND, 0, 0)
-+ row_index += 1
-
- flags_present = False
- if flag_set[0]:
- flags_present = True
- label = gtk.Label(' Temporary : ')
- label.set_alignment(1, 0.5)
-- table.attach(label, 0, 1, row_index, row_index+1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 0, 1, row_index, row_index + 1,
-+ gtk.FILL, gtk.FILL | gtk.EXPAND, 0, 0)
-
- label = gtk.Label(str(flag_set[0]))
- label.set_alignment(0, 0.5)
-- table.attach(label, 1, 2, row_index, row_index+1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-- row_index+=1
-+ table.attach(label, 1, 2, row_index, row_index + 1,
-+ gtk.FILL, gtk.FILL | gtk.EXPAND, 0, 0)
-+ row_index += 1
-
- if flag_set[1]:
- flags_present = True
- label = gtk.Label(' Hidden : ')
- label.set_alignment(1, 0.5)
-- table.attach(label, 0, 1, row_index, row_index+1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 0, 1, row_index, row_index + 1,
-+ gtk.FILL, gtk.FILL | gtk.EXPAND, 0, 0)
-
- label = gtk.Label(str(flag_set[1]))
- label.set_alignment(0, 0.5)
-- table.attach(label, 1, 2, row_index, row_index+1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-- row_index+=1
-+ table.attach(label, 1, 2, row_index, row_index + 1,
-+ gtk.FILL, gtk.FILL | gtk.EXPAND, 0, 0)
-+ row_index += 1
-
-- if not (flags_present) :
-- label = gtk.Label("No Special Flags")
-+ if not flags_present:
-+ label = gtk.Label('No Special Flags')
- label.set_alignment(0, 0.5)
-- table.attach(label, 1, 2, row_index, row_index+1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-- row_index+=1
-+ table.attach(label, 1, 2, row_index, row_index + 1,
-+ gtk.FILL, gtk.FILL | gtk.EXPAND, 0, 0)
-+ row_index += 1
-
-- if not (share.max_users == 0xFFFFFFFF):
-+ if not share.max_users == 0xFFFFFFFF:
- label = gtk.Label(' Max Users : ')
- label.set_alignment(1, 0.5)
-- table.attach(label, 0, 1, row_index, row_index+1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 0, 1, row_index, row_index + 1,
-+ gtk.FILL, gtk.FILL | gtk.EXPAND, 0, 0)
-
- label = gtk.Label(share.max_users)
- label.set_alignment(0, 0.5)
-- table.attach(label, 1, 2, row_index, row_index+1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-- row_index+=1
-+ table.attach(label, 1, 2, row_index, row_index + 1,
-+ gtk.FILL, gtk.FILL | gtk.EXPAND, 0, 0)
-+ row_index += 1
-
- self.shareinfo_frame.add(table)
- self.shareinfo_frame.show_all()
-
--
--
- def create(self):
-- # main window
-- self.set_title("Samba-Gtk Share Management Interface")
-+
-+ # main window
-+ self.set_title('Samba-Gtk Share Management Interface')
- self.set_default_size(800, 600)
-- self.icon_filename = os.path.join(sys.path[0], "images", "network.png")
-- self.share_icon_filename = os.path.join(sys.path[0], "images", "network.png")
-- self.icon_pixbuf = gtk.gdk.pixbuf_new_from_file(self.icon_filename)
-+ self.icon_filename = os.path.join(sys.path[0], 'images'
-+ , 'network.png')
-+ self.share_icon_filename = os.path.join(sys.path[0],
-+ 'images', 'network.png')
-+ self.icon_pixbuf = \
-+ gtk.gdk.pixbuf_new_from_file(self.icon_filename)
- self.set_icon(self.icon_pixbuf)
-
- accel_group = gtk.AccelGroup()
-- vbox = gtk.VBox(False, 0)
-- self.add(vbox)
--
-+ toplevel_vbox = gtk.VBox(False, 0)
-+ self.add(toplevel_vbox)
-+
- # menu
- self.menubar = gtk.MenuBar()
-- vbox.pack_start(self.menubar, False, False, 0)
-+ toplevel_vbox.pack_start(self.menubar, False, False, 0)
-
-- self.file_item = gtk.MenuItem("_File")
-+ self.file_item = gtk.MenuItem('_File')
- self.menubar.add(self.file_item)
-
- file_menu = gtk.Menu()
- self.file_item.set_submenu(file_menu)
-
-- self.connect_item = gtk.ImageMenuItem(gtk.STOCK_CONNECT, accel_group)
-+ self.connect_item = gtk.ImageMenuItem(gtk.STOCK_CONNECT,
-+ accel_group)
- file_menu.add(self.connect_item)
-
-- self.disconnect_item = gtk.ImageMenuItem(gtk.STOCK_DISCONNECT, accel_group)
-+ self.disconnect_item = gtk.ImageMenuItem(gtk.STOCK_DISCONNECT,
-+ accel_group)
- self.disconnect_item.set_sensitive(False)
- file_menu.add(self.disconnect_item)
-
-@@ -1363,17 +1432,18 @@ class ShareWindow(gtk.Window):
- self.quit_item = gtk.ImageMenuItem(gtk.STOCK_QUIT, accel_group)
- file_menu.add(self.quit_item)
-
-- self.view_item = gtk.MenuItem("_View")
-+ self.view_item = gtk.MenuItem('_View')
- self.menubar.add(self.view_item)
-
- view_menu = gtk.Menu()
- self.view_item.set_submenu(view_menu)
-
-- self.refresh_item = gtk.ImageMenuItem(gtk.STOCK_REFRESH, accel_group)
-+ self.refresh_item = gtk.ImageMenuItem(gtk.STOCK_REFRESH,
-+ accel_group)
- self.refresh_item.set_sensitive(False)
- view_menu.add(self.refresh_item)
-
-- self.share_item = gtk.MenuItem("_Share")
-+ self.share_item = gtk.MenuItem('_Share')
- self.menubar.add(self.share_item)
-
- share_menu = gtk.Menu()
-@@ -1383,7 +1453,8 @@ class ShareWindow(gtk.Window):
- self.new_item.set_sensitive(False)
- share_menu.add(self.new_item)
-
-- self.delete_item = gtk.ImageMenuItem(gtk.STOCK_DELETE, accel_group)
-+ self.delete_item = gtk.ImageMenuItem(gtk.STOCK_DELETE,
-+ accel_group)
- self.delete_item.set_sensitive(False)
- share_menu.add(self.delete_item)
-
-@@ -1391,36 +1462,39 @@ class ShareWindow(gtk.Window):
- self.edit_item.set_sensitive(False)
- share_menu.add(self.edit_item)
-
-- self.wizard_item = gtk.MenuItem("_Wizard")
-+ self.wizard_item = gtk.MenuItem('_Wizard')
- self.menubar.add(self.wizard_item)
-
- wizard_menu = gtk.Menu()
- self.wizard_item.set_submenu(wizard_menu)
-
-- self.new_share_wizard_item = gtk.MenuItem(label="New Share Wizard")
-+ self.new_share_wizard_item = \
-+ gtk.MenuItem(label='New Share Wizard')
- wizard_menu.add(self.new_share_wizard_item)
-
-- self.help_item = gtk.MenuItem("_Help")
-+ self.help_item = gtk.MenuItem('_Help')
- self.menubar.add(self.help_item)
-
- help_menu = gtk.Menu()
- self.help_item.set_submenu(help_menu)
-
-- self.about_item = gtk.ImageMenuItem(gtk.STOCK_ABOUT, accel_group)
-+ self.about_item = gtk.ImageMenuItem(gtk.STOCK_ABOUT,
-+ accel_group)
- help_menu.add(self.about_item)
-
-- # toolbar
-+ # Toolbar
- self.toolbar = gtk.Toolbar()
-- vbox.pack_start(self.toolbar, False, False, 0)
-+ toplevel_vbox.pack_start(self.toolbar, False, False, 0)
-
- self.connect_button = gtk.ToolButton(gtk.STOCK_CONNECT)
- self.connect_button.set_is_important(True)
-- self.connect_button.set_tooltip_text("Connect to a server")
-+ self.connect_button.set_tooltip_text('Connect to a server')
- self.toolbar.insert(self.connect_button, 0)
-
- self.disconnect_button = gtk.ToolButton(gtk.STOCK_DISCONNECT)
- self.disconnect_button.set_is_important(True)
-- self.disconnect_button.set_tooltip_text("Disconnect from the server")
-+ self.disconnect_button.set_tooltip_text(
-+ 'Disconnect from the server')
- self.toolbar.insert(self.disconnect_button, 1)
-
- sep = gtk.SeparatorToolItem()
-@@ -1443,330 +1517,393 @@ class ShareWindow(gtk.Window):
-
- image = gtk.Image()
- image.set_from_stock(gtk.STOCK_EXECUTE, 48)
-- self.new_share_wizard_button = gtk.ToolButton(image,"New Share Wizard")
-+ self.new_share_wizard_button = gtk.ToolButton(image,
-+ 'New Share Wizard')
- self.new_share_wizard_button.set_is_important(True)
- self.toolbar.insert(self.new_share_wizard_button, 7)
-
-- self.new_button.set_tooltip_text("Add a new Share")
-- self.edit_button.set_tooltip_text("Edit a Share")
-- self.delete_button.set_tooltip_text("Delete a Share")
-+ self.new_button.set_tooltip_text('Add a new Share')
-+ self.edit_button.set_tooltip_text('Edit a Share')
-+ self.delete_button.set_tooltip_text('Delete a Share')
-
-- #share-page
-+ # Share-page
- self.share_notebook = gtk.Notebook()
-- vbox.pack_start(self.share_notebook, True, True, 0)
-+ toplevel_vbox.pack_start(self.share_notebook, True, True, 0)
-
- main_hbox = gtk.HBox()
-- self.share_notebook.append_page(main_hbox, gtk.Label("Share Management"))
--
-- # share listing on left side
--
-+ self.share_notebook.append_page(main_hbox,
-+ gtk.Label('Share Management'))
-+
-+ # Share listing on left side
- rvbox = gtk.VBox()
-- main_hbox.pack_start(rvbox,True,True,0)
-+ main_hbox.pack_start(rvbox, True, True, 0)
-
- scrolledwindow = gtk.ScrolledWindow(None, None)
-- scrolledwindow.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
-+ scrolledwindow.set_policy(gtk.POLICY_AUTOMATIC,
-+ gtk.POLICY_AUTOMATIC)
- scrolledwindow.set_shadow_type(gtk.SHADOW_IN)
-- rvbox.pack_start(scrolledwindow,True,True,2)
--
-+ rvbox.pack_start(scrolledwindow, True, True, 2)
-
- self.shares_tree_view = gtk.TreeView()
- scrolledwindow.add(self.shares_tree_view)
-
- column = gtk.TreeViewColumn()
-- column.set_title("")
-+ column.set_title('')
- renderer = gtk.CellRendererPixbuf()
-- renderer.set_property("pixbuf", gtk.gdk.pixbuf_new_from_file_at_size(self.share_icon_filename, 22, 22))
-+ renderer.set_property('pixbuf',
-+ gtk.gdk.pixbuf_new_from_file_at_size(
-+ self.share_icon_filename,22, 22))
- column.pack_start(renderer, True)
- self.shares_tree_view.append_column(column)
-
- column = gtk.TreeViewColumn()
-- column.set_title("Name")
-+ column.set_title('Name')
- column.set_resizable(True)
- column.set_sort_column_id(0)
- renderer = gtk.CellRendererText()
- column.pack_start(renderer, True)
- self.shares_tree_view.append_column(column)
-- column.add_attribute(renderer, "text", 0)
-+ column.add_attribute(renderer, 'text', 0)
-
- column = gtk.TreeViewColumn()
-- column.set_title("Share Type")
-+ column.set_title('Share Type')
- column.set_resizable(True)
- column.set_expand(True)
- column.set_sort_column_id(1)
- renderer = gtk.CellRendererText()
- column.pack_start(renderer, True)
- self.shares_tree_view.append_column(column)
-- column.add_attribute(renderer, "text", 1)
-+ column.add_attribute(renderer, 'text', 1)
-
- column = gtk.TreeViewColumn()
-- column.set_title("Comment")
-+ column.set_title('Comment')
- column.set_resizable(True)
- column.set_expand(True)
- column.set_sort_column_id(2)
- renderer = gtk.CellRendererText()
- column.pack_start(renderer, True)
- self.shares_tree_view.append_column(column)
-- column.add_attribute(renderer, "text", 2)
-+ column.add_attribute(renderer, 'text', 2)
-
- column = gtk.TreeViewColumn()
-- column.set_title("Path")
-+ column.set_title('Path')
- column.set_resizable(True)
- column.set_sort_column_id(3)
- renderer = gtk.CellRendererText()
- column.pack_start(renderer, True)
- self.shares_tree_view.append_column(column)
-- column.add_attribute(renderer, "text", 3)
-+ column.add_attribute(renderer, 'text', 3)
-
-- self.shares_store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING)
-- self.shares_store.set_sort_column_id(0, gtk.SORT_ASCENDING)
-+ self.shares_store = gtk.ListStore(gobject.TYPE_STRING,
-+ gobject.TYPE_STRING, gobject.TYPE_STRING,
-+ gobject.TYPE_STRING)
-+ self.shares_store.set_sort_column_id(0,
-+ gtk.SORT_ASCENDING)
- self.shares_tree_view.set_model(self.shares_store)
-
- hbox = gtk.HBox()
-- rvbox.pack_start(hbox,False,False,0)
--
--
-- self.show_all_share_checkbox = gtk.CheckButton("Show Hidden Shares")
-- hbox.pack_end(self.show_all_share_checkbox,False,False,0)
-- self.show_all_share_checkbox.set_tooltip_text('Enable or disable the visiblity of hidden shares')
-+ rvbox.pack_start(hbox, False, False, 0)
-+
-+ self.show_all_share_checkbox = \
-+ gtk.CheckButton('Show Hidden Shares')
-+ hbox.pack_end(self.show_all_share_checkbox, False, False,
-+ 0)
-+ self.show_all_share_checkbox.set_tooltip_text(
-+ 'Enable or disable the visiblity of hidden shares')
- self.show_all_share_checkbox.set_active(False)
-- self.show_all_share_checkbox.connect("toggled",self.toggle_share_view_visiblity,None)
--
--
-+ self.show_all_share_checkbox.connect('toggled',
-+ self.toggle_share_view_visiblity, None)
-
-- ### right active widget :
-+ ### Right active widget :
-+
- vbox = gtk.VBox()
-- main_hbox.pack_start(vbox,False,False,0)
--
--
-+ main_hbox.pack_start(vbox, False, False, 0)
-
- self.shareinfo_frame = gtk.Frame()
- self.active_pane_frame_label = gtk.Label()
- self.active_pane_frame_label.set_use_markup(True)
-- self.active_pane_frame_label.set_markup('<b> No Share Selected </b>')
-- self.shareinfo_frame.set_label_widget(self.active_pane_frame_label)
-+ self.active_pane_frame_label.set_markup(
-+ '<b> No Share Selected </b>')
-+ self.shareinfo_frame.set_label_widget(
-+ self.active_pane_frame_label)
- vbox.pack_start(self.shareinfo_frame, False, True, 0)
- self.shareinfo_frame.set_border_width(5)
-
-- table = gtk.Table(1,2)
-+ table = gtk.Table(1, 2)
- table.set_border_width(5)
- table.set_row_spacings(2)
- table.set_col_spacings(6)
-
- self.shareinfo_frame.add(table)
-
-- label = gtk.Label("Please Slect a Share First" )
-+ label = gtk.Label('Please Slect a Share First')
- label.set_alignment(1, 0.5)
-- table.attach(label, 0, 1, 0, 1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 0, 1, 0, 1,gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-+
-
-- label = gtk.Label(" "*55 )
-+ label = gtk.Label(' ' * 55)
- label.set_alignment(1, 0.5)
-- table.attach(label, 1, 2, 0, 1, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 1, 2, 0, 1, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
- hbox = gtk.HBox()
-- vbox.pack_end(hbox,False,False,0)
-+ vbox.pack_end(hbox, False, False, 0)
-
-- table = gtk.Table(3,6,True)
-- hbox.pack_start(table,False,True,0)
-+ table = gtk.Table(3, 6, True)
-+ hbox.pack_start(table, False, True, 0)
-
-- self.active_frame_new_button = gtk.Button("New")
-+ self.active_frame_new_button = gtk.Button('New')
- self.active_frame_new_button.set_tooltip_text('Add a New Share')
-- table.attach(self.active_frame_new_button, 2, 3, 1, 2, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(self.active_frame_new_button, 2, 3, 1, 2,
-+ gtk.FILL, gtk.FILL | gtk.EXPAND, 0, 0)
-
-- self.active_frame_edit_button = gtk.Button("Edit")
-- self.active_frame_edit_button.set_tooltip_text('Edit Current Share')
-- table.attach(self.active_frame_edit_button, 3, 4, 1, 2, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
--
-- self.active_frame_delete_button = gtk.Button("Delete")
-- self.active_frame_delete_button.set_tooltip_text('Delete Current Share')
-- table.attach(self.active_frame_delete_button, 4, 5, 1, 2, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ self.active_frame_edit_button = gtk.Button('Edit')
-+ self.active_frame_edit_button.set_tooltip_text(
-+ 'Edit Current Share')
-+ table.attach(self.active_frame_edit_button, 3, 4, 1, 2,
-+ gtk.FILL, gtk.FILL | gtk.EXPAND, 0, 0)
-
-+ self.active_frame_delete_button = gtk.Button('Delete')
-+ self.active_frame_delete_button.set_tooltip_text(
-+ 'Delete Current Share')
-+ table.attach(self.active_frame_delete_button, 4, 5, 1, 2,
-+ gtk.FILL, gtk.FILL | gtk.EXPAND, 0, 0)
-
- # Server Info Page
- hbox = gtk.HBox(True)
-- self.share_notebook.append_page(hbox, gtk.Label("Share Server Info"))
-+ self.share_notebook.append_page(hbox,
-+ gtk.Label('Share Server Info'))
-
- vbox = gtk.VBox()
- hbox.pack_start(vbox, True, True, 0)
-- self.srvinfo_frame = gtk.Frame()
-+ self.srvinfo_frame = gtk.Frame()
- self.srv_info_label = gtk.Label('<b>Share Server Details</b>')
- self.srv_info_label.set_use_markup(True)
- self.srvinfo_frame.set_label_widget(self.srv_info_label)
- vbox.pack_start(self.srvinfo_frame, False, True, 0)
- self.srvinfo_frame.set_border_width(5)
-
-- table = gtk.Table(10,2)
-+ table = gtk.Table(10, 2)
- table.set_border_width(5)
- table.set_row_spacings(3)
- table.set_col_spacings(6)
- self.srvinfo_frame.add(table)
-
--
- label = gtk.Label(' Target Platform OS : ')
- label.set_alignment(1, 0.5)
-- table.attach(label, 0, 1, 1, 2, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 0, 1, 1, 2, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
- self.srvinfo_tos_label = gtk.Label()
- self.srvinfo_tos_label.set_alignment(0, 0.5)
-- table.attach(self.srvinfo_tos_label, 1, 2, 1, 2, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(self.srvinfo_tos_label, 1, 2, 1, 2,
-+ gtk.FILL, gtk.FILL | gtk.EXPAND, 0, 0)
-
- label = gtk.Label(' NetBIOS Name : ')
- label.set_alignment(1, 0.5)
-- table.attach(label, 0, 1, 2, 3, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 0, 1, 2, 3, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
- self.srvinfo_name_label = gtk.Label()
- self.srvinfo_name_label.set_alignment(0, 0.5)
-- table.attach(self.srvinfo_name_label, 1, 2, 2, 3, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(self.srvinfo_name_label, 1, 2, 2, 3,
-+ gtk.FILL, gtk.FILL | gtk.EXPAND, 0, 0)
-
- label = gtk.Label(' Hidden : ')
- label.set_alignment(1, 0.5)
-- table.attach(label, 0, 1, 3, 4, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 0, 1, 3, 4, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
- self.srvinfo_hidden_label = gtk.Label()
- self.srvinfo_hidden_label.set_alignment(0, 0.5)
-- table.attach(self.srvinfo_hidden_label, 1, 2, 3, 4, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(self.srvinfo_hidden_label, 1, 2, 3, 4,
-+ gtk.FILL, gtk.FILL | gtk.EXPAND, 0, 0)
-
- label = gtk.Label(' Comment : ')
- label.set_alignment(1, 0.5)
-- table.attach(label, 0, 1, 4, 5, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 0, 1, 4, 5, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
- self.srvinfo_comment_label = gtk.Label()
- self.srvinfo_comment_label.set_alignment(0, 0.5)
-- table.attach(self.srvinfo_comment_label, 1, 2, 4, 5, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(self.srvinfo_comment_label, 1, 2, 4 ,5,
-+ gtk.FILL, gtk.FILL | gtk.EXPAND, 0, 0)
-
- label = gtk.Label(' Version : ')
- label.set_alignment(1, 0.5)
-- table.attach(label, 0, 1, 5, 6, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 0, 1, 5, 6, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
- self.srvinfo_version_label = gtk.Label()
- self.srvinfo_version_label.set_alignment(0, 0.5)
-- table.attach(self.srvinfo_version_label, 1, 2, 5, 6, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(self.srvinfo_version_label, 1, 2, 5, 6,
-+ gtk.FILL, gtk.FILL | gtk.EXPAND, 0, 0)
-
- label = gtk.Label(' Server Type : ')
- label.set_alignment(1, 0.5)
-- table.attach(label, 0, 1, 6, 7, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 0, 1, 6, 7, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
- self.srvinfo_type_label = gtk.Label()
- self.srvinfo_type_label.set_alignment(0, 0.5)
-- table.attach(self.srvinfo_type_label, 1, 2, 6, 7, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(self.srvinfo_type_label, 1, 2, 6, 7,
-+ gtk.FILL, gtk.FILL | gtk.EXPAND, 0, 0)
-+
-
- label = gtk.Label(' User Path : ')
- label.set_alignment(1, 0.5)
-- table.attach(label, 0, 1, 7, 8, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 0, 1, 7, 8, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
- self.srvinfo_upath_label = gtk.Label()
- self.srvinfo_upath_label.set_alignment(0, 0.5)
-- table.attach(self.srvinfo_upath_label, 1, 2, 7, 8, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(self.srvinfo_upath_label, 1, 2, 7, 8,
-+ gtk.FILL, gtk.FILL | gtk.EXPAND, 0, 0)
-+
-
- label = gtk.Label(' Timeout : ')
- label.set_alignment(1, 0.5)
-- table.attach(label, 0, 1, 8, 9, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 0, 1, 8, 9, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
- self.srvinfo_to_label = gtk.Label()
- self.srvinfo_to_label.set_alignment(0, 0.5)
-- table.attach(self.srvinfo_to_label, 1, 2, 8, 9, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(self.srvinfo_to_label, 1, 2, 8, 9,
-+ gtk.FILL, gtk.FILL | gtk.EXPAND, 0, 0)
-+
-
- label = gtk.Label(' Announce / Anndelta : ')
- label.set_alignment(1, 0.5)
-- table.attach(label, 0, 1, 9, 10, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(label, 0, 1, 9, 10, gtk.FILL,
-+ gtk.FILL | gtk.EXPAND, 0, 0)
-
- self.srvinfo_aa_label = gtk.Label()
- self.srvinfo_aa_label.set_alignment(0, 0.5)
-- table.attach(self.srvinfo_aa_label, 1, 2, 9, 10, gtk.FILL,gtk.FILL | gtk.EXPAND, 0, 0)
-+ table.attach(self.srvinfo_aa_label, 1, 2, 9, 10,
-+ gtk.FILL, gtk.FILL | gtk.EXPAND, 0, 0)
-+
-
- vbox = gtk.VBox()
-- hbox.pack_start(vbox,True,True,0)
-+ hbox.pack_start(vbox, True, True, 0)
-
-- self.sd_frame = gtk.Frame()
-+ self.sd_frame = gtk.Frame()
- self.sd_frame.set_border_width(5)
- label = gtk.Label('<b> Shared Disks </b>')
- label.set_use_markup(True)
- self.sd_frame.set_label_widget(label)
- vbox.pack_start(self.sd_frame, False, False, 0)
--
--
-+
- # status bar
-
- self.statusbar = gtk.Statusbar()
- self.statusbar.set_has_resize_grip(True)
-- vbox.pack_start(self.statusbar, False, False, 0)
--
-+ toplevel_vbox.pack_end(self.statusbar, False, False, 0)
-+
- # signals/events
-
-- self.connect("delete_event", self.on_self_delete)
-- self.connect("key-press-event", self.on_key_press)
--
-- self.connect_item.connect("activate", self.on_connect_item_activate)
-- self.disconnect_item.connect("activate", self.on_disconnect_item_activate)
-- self.quit_item.connect("activate", self.on_quit_item_activate)
-- self.refresh_item.connect("activate", self.on_refresh_item_activate)
-- self.about_item.connect("activate", self.on_about_item_activate)
--
--
-- self.new_item.connect("activate", self.on_new_item_activate)
-- self.delete_item.connect("activate", self.on_delete_item_activate)
-- self.edit_item.connect("activate", self.on_edit_item_activate)
-- self.new_share_wizard_item.connect("activate", self.on_new_item_activate,True)
--
-- self.connect_button.connect("clicked", self.on_connect_item_activate)
-- self.disconnect_button.connect("clicked", self.on_disconnect_item_activate)
--
-- self.new_button.connect("clicked", self.on_new_item_activate)
-- self.delete_button.connect("clicked", self.on_delete_item_activate)
-- self.edit_button.connect("clicked", self.on_edit_item_activate)
-- self.new_share_wizard_button.connect("clicked", self.on_new_item_activate,True)
--
-- self.active_frame_new_button.connect("clicked", self.on_new_item_activate)
-- self.active_frame_delete_button.connect("clicked", self.on_delete_item_activate)
-- self.active_frame_edit_button.connect("clicked", self.on_edit_item_activate)
--
-- self.shares_tree_view.get_selection().connect("changed", self.on_update_sensitivity)
-- self.shares_tree_view.get_selection().connect("changed", self.on_switch_fill_active_pane)
-- self.shares_tree_view.connect("button_press_event", self.on_shares_tree_view_button_press)
--
-- self.share_notebook.connect("switch-page", self.on_notebook_switch_page)
-+ self.connect('delete_event', self.on_self_delete)
-+ self.connect('key-press-event', self.on_key_press)
-+
-+ self.connect_item.connect('activate',
-+ self.on_connect_item_activate)
-+ self.disconnect_item.connect('activate',
-+ self.on_disconnect_item_activate)
-+ self.quit_item.connect('activate', self.on_quit_item_activate)
-+ self.refresh_item.connect('activate',
-+ self.on_refresh_item_activate)
-+ self.about_item.connect('activate', self.on_about_item_activate)
-+
-+ self.new_item.connect('activate', self.on_new_item_activate)
-+ self.delete_item.connect('activate',
-+ self.on_delete_item_activate)
-+ self.edit_item.connect('activate', self.on_edit_item_activate)
-+ self.new_share_wizard_item.connect('activate',
-+ self.on_new_item_activate, True)
-+
-+ self.connect_button.connect('clicked',
-+ self.on_connect_item_activate)
-+ self.disconnect_button.connect('clicked',
-+ self.on_disconnect_item_activate)
-+
-+ self.new_button.connect('clicked', self.on_new_item_activate)
-+ self.delete_button.connect('clicked',
-+ self.on_delete_item_activate)
-+ self.edit_button.connect('clicked', self.on_edit_item_activate)
-+ self.new_share_wizard_button.connect('clicked',
-+ self.on_new_item_activate, True)
-+
-+ self.active_frame_new_button.connect('clicked',
-+ self.on_new_item_activate)
-+ self.active_frame_delete_button.connect('clicked',
-+ self.on_delete_item_activate)
-+ self.active_frame_edit_button.connect('clicked',
-+ self.on_edit_item_activate)
-+
-+ self.shares_tree_view.get_selection().connect('changed',
-+ self.on_update_sensitivity)
-+ self.shares_tree_view.get_selection().connect('changed',
-+ self.on_switch_fill_active_pane)
-+ self.shares_tree_view.connect('button_press_event',
-+ self.on_shares_tree_view_button_press)
-+
-+ self.share_notebook.connect('switch-page',
-+ self.on_notebook_switch_page)
-
- self.add_accel_group(accel_group)
-
- ############################################################################################################
-
-+
- def PrintUsage():
-- print "Usage: %s [OPTIONS]" % (str(os.path.split(__file__)[-1]))
-- print "All options are optional. The user will be queried for additional information if needed.\n"
-- print " -s --server\t\tspecify the server to connect to."
-- print " -u --user\t\tspecify the username."
-- print " -p --password\tThe password for the user."
-- print " -t --transport\tTransport type.\n\t\t\t\t0 for RPC, SMB, TCP/IP\n\t\t\t\t1 for RPC, TCP/IP\n\t\t\t\t2 for localhost."
-- print " -c --connect-now\tSkip the connect dialog."
-+ print 'Usage: %s [OPTIONS]'\
-+ % str(os.path.split(__file__)[-1])
-+ print 'All options are optional. The user will be queried for additional information if needed.\n'
-+ print ' -s --server\t\tspecify the server to connect to.'
-+ print ' -u --user\t\tspecify the username.'
-+ print ' -p --password\tThe password for the user.'
-+ print ''' -t --transport\tTransport type.
-+\t\t\t\t0 for RPC, SMB, TCP/IP
-+\t\t\t\t1 for RPC, TCP/IP
-+\t\t\t\t2 for localhost.'''
-+ print ' -c --connect-now\tSkip the connect dialog.'
-
-
- def ParseArgs(argv):
- arguments = {}
-
-- try: #get arguments into a nicer format
-- opts, args = getopt.getopt(argv, "chu:s:p:t:", ["help", "user=", "server=", "password=", "connect-now", "transport="])
-+ try: # get arguments into a nicer format
-+ (opts, args) = getopt.getopt(argv, 'chu:s:p:t:', [
-+ 'help',
-+ 'user=',
-+ 'server=',
-+ 'password=',
-+ 'connect-now',
-+ 'transport=',
-+ ])
- except getopt.GetoptError:
- PrintUsage()
- sys.exit(2)
-
-- for opt, arg in opts:
-- if opt in ("-h", "--help"):
-+ for (opt, arg) in opts:
-+ if opt in ('-h', '--help'):
- PrintUsage()
- sys.exit(0)
-- elif opt in ("-s", "--server"):
-- arguments.update({"server":arg})
-- elif opt in ("-u", "--user"):
-- arguments.update({"username":arg})
-- elif opt in ("-p", "--password"):
-- arguments.update({"password":arg})
-- elif opt in ("-t", "--transport"):
-- arguments.update({"transport_type":int(arg)})
-- elif opt in ("-c", "--connect-now"):
-- arguments.update({"connect_now":True})
-- return (arguments)
--
--
--if __name__ == "__main__":
-- arguments = ParseArgs(sys.argv[1:]) #the [1:] ignores the first argument, which is the path to our utility
-+ elif opt in ('-s', '--server'):
-+ arguments.update({'server': arg})
-+ elif opt in ('-u', '--user'):
-+ arguments.update({'username': arg})
-+ elif opt in ('-p', '--password'):
-+ arguments.update({'password': arg})
-+ elif opt in ('-t', '--transport'):
-+ arguments.update({'transport_type': int(arg)})
-+ elif opt in ('-c', '--connect-now'):
-+ arguments.update({'connect_now': True})
-+ return arguments
-+
-+
-+if __name__ == '__main__':
-+ arguments = ParseArgs(sys.argv[1:])
-
- main_window = ShareWindow(**arguments)
- main_window.show_all()
-
-commit 7754896966e49572ce08faa97e31b66be15265f6
-Author: Dhananjay Sathe <dhananjaysathe@gmail.com>
-Date: Sun Aug 14 20:32:53 2011 +0000
-
- updates
-
-diff --git a/sambagtk/pysrvsvc.py b/sambagtk/pysrvsvc.py
-index cc552a7..b433d6d 100644
---- a/sambagtk/pysrvsvc.py
-+++ b/sambagtk/pysrvsvc.py
-@@ -71,7 +71,7 @@ class srvsvcConnectDialog(gtk.Dialog):
-
- self.vbox.set_spacing(5)
-
-- # artwork
-+ # artwork TODO remove post decession
-
- self.artwork = gtk.VBox()
-
-@@ -92,6 +92,8 @@ class srvsvcConnectDialog(gtk.Dialog):
- self.artwork.pack_start(box, True, True, 0)
-
- self.vbox.pack_start(self.artwork, False, True, 0)
-+
-+ ########################### end of artwork TODO :
-
- # server frame
-
-@@ -408,26 +410,10 @@ class ShareAddEditDialog(gtk.Dialog):
- hbox.pack_start(label, True, True, 0)
- self.desc_box.pack_start(hbox,True, True, 0)
-
-- # main box
--
-- self.main_box = gtk.HBox()
-- self.vbox.pack_start(self.main_box,True,True,0)
--
-- #vertical logo
-- #vbox = gtk.VBox()
-- #vbox.set_border_width(5)
-- #samba_image_filename = os.path.join(sys.path[0],'images',
-- # 'samba-logo-vertical.png')
-- #samba_image = gtk.Image()
-- #samba_image.set_from_file(samba_image_filename)
-- #vbox.pack_end(samba_image, False, True, 0)
--
-- #self.main_box.pack_start(vbox, False, True, 0)
--
- # the main form
-
- self.form_box = gtk.VBox()
-- self.main_box.pack_start(self.form_box, True, True, 0)
-+ self.vbox.pack_start(self.form_box, True, True, 0)
-
- # Name , password and comment (npc) frame
- frame = gtk.Frame()
-@@ -677,26 +663,10 @@ class DeleteDialog(gtk.Dialog):
- hbox.pack_start(label, True, True, 0)
- self.desc_box.pack_start(hbox,True, True, 0)
-
-- # main box
--
-- self.main_box = gtk.HBox()
-- self.vbox.pack_start(self.main_box,True,True,0)
--
-- #vertical logo
-- #vbox = gtk.VBox()
-- #vbox.set_border_width(5)
-- #samba_image_filename = os.path.join(sys.path[0],'images',
-- # 'samba-logo-vertical.png')
-- #samba_image = gtk.Image()
-- #samba_image.set_from_file(samba_image_filename)
-- #vbox.pack_end(samba_image, False, True, 0)
--
-- #self.main_box.pack_start(vbox, False, True, 0)
--
- # the main form
-
- self.form_box = gtk.VBox()
-- self.main_box.pack_start(self.form_box, True, True, 0)
-+ self.vbox.pack_start(self.form_box, True, True, 0)
-
- frame = gtk.Frame()
- label = gtk.Label('<b> Share Details</b>')
-
-commit fffac28cd2768d87a68572e60236f4e319727303
-Author: Dhananjay Sathe <dhananjaysathe@gmail.com>
-Date: Thu Aug 11 00:04:55 2011 +0530
-
- hide types, code cleanup, remove artwork, sys path appends not default anymore
-
-diff --git a/sambagtk/main.py b/sambagtk/main.py
-index 9f67982..f59901e 100644
---- a/sambagtk/main.py
-+++ b/sambagtk/main.py
-@@ -11,7 +11,9 @@ import gtk.glade
- import os.path
- import getopt
-
--sys.path.append('/usr/local/samba/lib/python2.7/site-packages/')
-+#sys.path.append('/usr/local/samba/lib/python2.7/site-packages/')
-+# for use against the default binaries from default .configure.developer for use on python 2.7
-+# Uncomment the above line if it is yor your config , else edit it as required
-
-
- import pygwsam
-diff --git a/sambagtk/pygwshare.py b/sambagtk/pygwshare.py
-index c1c0551..284c98d 100644
---- a/sambagtk/pygwshare.py
-+++ b/sambagtk/pygwshare.py
-@@ -31,9 +31,9 @@ import getopt
- import gobject
- import gtk
-
--sys.path.append('/usr/local/samba/lib/python2.7/site-packages/')
-+#sys.path.append('/usr/local/samba/lib/python2.7/site-packages/')
- #for use against the default binaries from default .configure.developer for use on python 2.7
--#TODO remove these entries
-+# Unhash the above line if it is yor your config , else edit it as required
-
- from samba import credentials
- from samba.dcerpc import (
-@@ -1772,5 +1772,3 @@ if __name__ == "__main__":
- main_window.show_all()
- gtk.main()
-
--#debug test pipe : TODO (remove later)
--# test = srvsvcPipeManager('127.0.0.1',0,'Administrator','Pass#2011')
-diff --git a/sambagtk/pysrvsvc.py b/sambagtk/pysrvsvc.py
-index e3baa82..cc552a7 100644
---- a/sambagtk/pysrvsvc.py
-+++ b/sambagtk/pysrvsvc.py
-@@ -414,15 +414,15 @@ class ShareAddEditDialog(gtk.Dialog):
- self.vbox.pack_start(self.main_box,True,True,0)
-
- #vertical logo
-- vbox = gtk.VBox()
-- vbox.set_border_width(5)
-- samba_image_filename = os.path.join(sys.path[0],'images',
-- 'samba-logo-vertical.png')
-- samba_image = gtk.Image()
-- samba_image.set_from_file(samba_image_filename)
-- vbox.pack_end(samba_image, False, True, 0)
-+ #vbox = gtk.VBox()
-+ #vbox.set_border_width(5)
-+ #samba_image_filename = os.path.join(sys.path[0],'images',
-+ # 'samba-logo-vertical.png')
-+ #samba_image = gtk.Image()
-+ #samba_image.set_from_file(samba_image_filename)
-+ #vbox.pack_end(samba_image, False, True, 0)
-
-- self.main_box.pack_start(vbox, False, True, 0)
-+ #self.main_box.pack_start(vbox, False, True, 0)
-
- # the main form
-
-@@ -515,12 +515,14 @@ class ShareAddEditDialog(gtk.Dialog):
- self.stype_printq_radio_button = gtk.RadioButton(self.stype_disktree_radio_button,'Print Queue')
- self.stype_printq_radio_button.set_tooltip_text('Shared Print Queue')
- self.stype_printq_radio_button.set_active(self.stype == srvsvc.STYPE_PRINTQ)
-- vbox.pack_start(self.stype_printq_radio_button)
-+ #vbox.pack_start(self.stype_printq_radio_button)
-+ #deactivating this option until samba4 is fixed TODO activate once base is fixed
-
- self.stype_ipc_radio_button = gtk.RadioButton(self.stype_printq_radio_button,'IPC ')
- self.stype_ipc_radio_button.set_tooltip_text('Shared Interprocess Communication Pipe (IPC).')
- self.stype_ipc_radio_button.set_active(self.stype == srvsvc.STYPE_IPC)
-- vbox.pack_start(self.stype_ipc_radio_button)
-+ #vbox.pack_start(self.stype_ipc_radio_button)
-+ #deactivating this option until samba4 is fixed TODO activate once base is fixed
-
- # Special Share Flags
- vbox = gtk.VBox()
-@@ -681,15 +683,15 @@ class DeleteDialog(gtk.Dialog):
- self.vbox.pack_start(self.main_box,True,True,0)
-
- #vertical logo
-- vbox = gtk.VBox()
-- vbox.set_border_width(5)
-- samba_image_filename = os.path.join(sys.path[0],'images',
-- 'samba-logo-vertical.png')
-- samba_image = gtk.Image()
-- samba_image.set_from_file(samba_image_filename)
-- vbox.pack_end(samba_image, False, True, 0)
--
-- self.main_box.pack_start(vbox, False, True, 0)
-+ #vbox = gtk.VBox()
-+ #vbox.set_border_width(5)
-+ #samba_image_filename = os.path.join(sys.path[0],'images',
-+ # 'samba-logo-vertical.png')
-+ #samba_image = gtk.Image()
-+ #samba_image.set_from_file(samba_image_filename)
-+ #vbox.pack_end(samba_image, False, True, 0)
-+
-+ #self.main_box.pack_start(vbox, False, True, 0)
-
- # the main form
-
-
-commit f0fee8f57697c04d5b673a1f03508ffbf4e5bdee
-Author: Dhananjay Sathe <dhananjaysathe@gmail.com>
-Date: Mon Aug 8 16:55:54 2011 +0530
-
- page swaps fixed
-
-diff --git a/sambagtk/main.py b/sambagtk/main.py
-index df75b33..9f67982 100644
---- a/sambagtk/main.py
-+++ b/sambagtk/main.py
-@@ -39,6 +39,7 @@ class SambaUtilities(object):
- self.svcctl_window = None
- self.crontab_window = None
- self.srvsvc_window = None
-+ self.srvsvc_init= False
-
- self.connection_args = connection_args
- self.additional_connection_args = {} #arguments not supported by all utilities, such as domain_index
-@@ -128,7 +129,7 @@ class SambaUtilities(object):
-
- self.set_status("User tab initialized.")
- self.update_sensitivity()
--
-+
- def init_srvsvc_page(self):
-
- args = self.connection_args.copy()
-@@ -140,8 +141,8 @@ class SambaUtilities(object):
- self.srvsvc_viewport.show_all() #unhide all widgets
-
- #We'll be displaying this later. We need to unparent it before attaching it to another container
-- #self.srvsvc_window.menubar.unparent()
-- #self.srvsvc_window.toolbar.unparent()
-+
-+ self.srvsvc_window.toolbar.unparent()
- self.srvsvc_window.statusbar = self.statusbar #we simply tell the utility to use our status bar instead
-
- self.set_status("Share Manager tab initialized.")
-@@ -199,10 +200,10 @@ class SambaUtilities(object):
-
- def regedit_initialized(self):
- return self.regedit_window is not None
--
-+
- def srvsvc_initialized (self):
- return self.srvsvc_window is not None
--
-+
- def svcctl_initialized(self):
- return self.svcctl_window is not None
-
-@@ -379,19 +380,22 @@ class SambaUtilities(object):
- #Menubar
- children = self.menubar_viewport.get_children()
- self.menubar_viewport.remove(children[0])
-- self.srvsvc_window.menubar.reparent(self.menubar_viewport)
-- #self.menubar_viewport.add(self.srvsvc_window.menubar)
-+ if self.srvsvc_init is False:
-+ self.srvsvc_window.menubar.reparent(self.menubar_viewport)
-+ self.srvsvc_init = True
-+ else:
-+ self.menubar_viewport.add(self.srvsvc_window.menubar)
- self.menubar_viewport.show_all()
-
- #Toolbar
-- children = self.toolbar_viewport.get_children()
-+ children = self.toolbar_viewport.get_children()
- self.toolbar_viewport.remove(children[0])
- self.srvsvc_window.toolbar.unparent()
- self.toolbar_viewport.add(self.srvsvc_window.toolbar)
- self.toolbar_viewport.show_all()
--
-+
- self.srvsvc_window.hide()
--
-+
- elif page_num == 3: #Regedit page
- if self.regedit_viewport.child == None:
- self.init_regedit_page()
-@@ -450,7 +454,7 @@ class SambaUtilities(object):
- self.sam_window.on_connect_item_activate(None, **self.connection_args)
- else:
- self.init_sam_page()
--
-+
- if self.srvsvc_initialized():
- if not self.srvsvc_window.connected():
- self.srvsvc_window.on_connect_item_activate(None, **self.connection_args)
-diff --git a/sambagtk/pygwsam.py b/sambagtk/pygwsam.py
-index d57c083..e11be7d 100755
---- a/sambagtk/pygwsam.py
-+++ b/sambagtk/pygwsam.py
-@@ -131,7 +131,7 @@ class SAMPipeManager(object):
-
- def update_user(self, user):
- """Submit any changes to 'user' to the server.
--
-+
- The User's RID must be correct for this to work.
- This function will call update_user_security() to update user security
- options.
-@@ -300,7 +300,7 @@ class SAMPipeManager(object):
-
- def info_to_user(self, query_info, user=None):
- """Converts 'query_info' information into a user type.
--
-+
- Values in 'user' will be overwriten by this function. If called with 'None' then a new User structure will be created
-
- returns 'user
-
-commit a956ca8135492291830ba7ab0eb6e5bbad8288ff
-Author: Dhananjay Sathe <dhananjaysathe@gmail.com>
-Date: Mon Aug 8 16:32:47 2011 +0530
-
- connect missing image fixup
-
-diff --git a/sambagtk/sam.py b/sambagtk/sam.py
-index 0c7fa3d..9fcfd30 100644
---- a/sambagtk/sam.py
-+++ b/sambagtk/sam.py
-@@ -542,7 +542,7 @@ class SAMConnectDialog(gtk.Dialog):
-
- self.artwork = gtk.VBox()
-
-- self.samba_image_filename = os.path.join(sys.path[0],"..", 'images',
-+ self.samba_image_filename = os.path.join(sys.path[0],'images',
- 'samba-logo-small.png')
- self.samba_image = gtk.Image()
- self.samba_image.set_from_file(self.samba_image_filename)
-
-commit d577b6d1ac9af13ba702b312d041c900adda6b15
-Author: Dhananjay Sathe <dhananjaysathe@gmail.com>
-Date: Mon Aug 8 15:50:28 2011 +0530
-
- Multiple changes
- 1) Main now auto executes
- 2) Images relocated to match structure of rest of sambagtk
- 3) Modified sam.py to show newstyle connect dialog to maintain consistancy
-
-diff --git a/images/network-folder-alternate.png b/images/network-folder-alternate.png
-deleted file mode 100644
-index a49a77d..0000000
-Binary files a/images/network-folder-alternate.png and /dev/null differ
-diff --git a/images/network-folder-blue.png b/images/network-folder-blue.png
-deleted file mode 100644
-index 958039f..0000000
-Binary files a/images/network-folder-blue.png and /dev/null differ
-diff --git a/images/network-folder.png b/images/network-folder.png
-deleted file mode 100644
-index 311aa6f..0000000
-Binary files a/images/network-folder.png and /dev/null differ
-diff --git a/images/network-pipe-alt.png b/images/network-pipe-alt.png
-deleted file mode 100644
-index 8d1469f..0000000
-Binary files a/images/network-pipe-alt.png and /dev/null differ
-diff --git a/images/network-pipe.png b/images/network-pipe.png
-deleted file mode 100644
-index d05c01c..0000000
-Binary files a/images/network-pipe.png and /dev/null differ
-diff --git a/images/network-printer.png b/images/network-printer.png
-deleted file mode 100644
-index 5590e52..0000000
-Binary files a/images/network-printer.png and /dev/null differ
-diff --git a/images/network.png b/images/network.png
-deleted file mode 100644
-index 8d1469f..0000000
-Binary files a/images/network.png and /dev/null differ
-diff --git a/images/samba-logo-old.png b/images/samba-logo-old.png
-deleted file mode 100644
-index 475cc26..0000000
-Binary files a/images/samba-logo-old.png and /dev/null differ
-diff --git a/images/samba-logo-small.png b/images/samba-logo-small.png
-deleted file mode 100644
-index 8c2e20b..0000000
-Binary files a/images/samba-logo-small.png and /dev/null differ
-diff --git a/images/samba-logo-vertical.png b/images/samba-logo-vertical.png
-deleted file mode 100644
-index 05a39b6..0000000
-Binary files a/images/samba-logo-vertical.png and /dev/null differ
-diff --git a/sambagtk/images/network-folder-alternate.png b/sambagtk/images/network-folder-alternate.png
-new file mode 100644
-index 0000000..a49a77d
-Binary files /dev/null and b/sambagtk/images/network-folder-alternate.png differ
-diff --git a/sambagtk/images/network-folder-blue.png b/sambagtk/images/network-folder-blue.png
-new file mode 100644
-index 0000000..958039f
-Binary files /dev/null and b/sambagtk/images/network-folder-blue.png differ
-diff --git a/sambagtk/images/network-folder.png b/sambagtk/images/network-folder.png
-new file mode 100644
-index 0000000..311aa6f
-Binary files /dev/null and b/sambagtk/images/network-folder.png differ
-diff --git a/sambagtk/images/network-pipe-alt.png b/sambagtk/images/network-pipe-alt.png
-new file mode 100644
-index 0000000..8d1469f
-Binary files /dev/null and b/sambagtk/images/network-pipe-alt.png differ
-diff --git a/sambagtk/images/network-pipe.png b/sambagtk/images/network-pipe.png
-new file mode 100644
-index 0000000..d05c01c
-Binary files /dev/null and b/sambagtk/images/network-pipe.png differ
-diff --git a/sambagtk/images/network-printer.png b/sambagtk/images/network-printer.png
-new file mode 100644
-index 0000000..5590e52
-Binary files /dev/null and b/sambagtk/images/network-printer.png differ
-diff --git a/sambagtk/images/network.png b/sambagtk/images/network.png
-new file mode 100644
-index 0000000..8d1469f
-Binary files /dev/null and b/sambagtk/images/network.png differ
-diff --git a/sambagtk/images/samba-logo-old.png b/sambagtk/images/samba-logo-old.png
-new file mode 100644
-index 0000000..475cc26
-Binary files /dev/null and b/sambagtk/images/samba-logo-old.png differ
-diff --git a/sambagtk/images/samba-logo-small.png b/sambagtk/images/samba-logo-small.png
-index 475cc26..8c2e20b 100644
-Binary files a/sambagtk/images/samba-logo-small.png and b/sambagtk/images/samba-logo-small.png differ
-diff --git a/sambagtk/images/samba-logo-vertical.png b/sambagtk/images/samba-logo-vertical.png
-new file mode 100644
-index 0000000..05a39b6
-Binary files /dev/null and b/sambagtk/images/samba-logo-vertical.png differ
-diff --git a/sambagtk/main.py b/sambagtk/main.py
-index d96b684..df75b33 100644
---- a/sambagtk/main.py
-+++ b/sambagtk/main.py
-@@ -550,11 +550,11 @@ def ParseArgs(argv):
- arguments.update({"connect_now":True})
- return (arguments)
-
--"""
-+
- if __name__ == "__main__":
- arguments = ParseArgs(sys.argv[1:])
- gtk.gdk.threads_init()
- main_window = SambaUtilities(arguments)
- sys.stdout = main_window #redirect print statements to the write() function of this class
- gtk.main()
--"""
-+
-diff --git a/sambagtk/pygwshare.py b/sambagtk/pygwshare.py
-index 17c780a..c1c0551 100644
---- a/sambagtk/pygwshare.py
-+++ b/sambagtk/pygwshare.py
-@@ -808,7 +808,7 @@ class ShareWindow(gtk.Window):
- 0x04000000:('SV_TYPE_CLUSTER_VS_NT','Virtual Server Cluster')
- }
-
-- label_data = server_typedict.get(self.server_info.server_type,('','Unknown'))[1]
-+ label_data = server_typedict.get(self.server_info.server_type,('','Multiple Capablities'))[1]
- self.srvinfo_type_label.set_text(label_data)
- self.srvinfo_upath_label.set_text(self.server_info.userpath.upper())
- self.srvinfo_to_label.set_text(str(self.server_info.disc))
-@@ -1330,8 +1330,8 @@ class ShareWindow(gtk.Window):
- # main window
- self.set_title("Samba-Gtk Share Management Interface")
- self.set_default_size(800, 600)
-- self.icon_filename = os.path.join(sys.path[0],"..", "images", "network.png")
-- self.share_icon_filename = os.path.join(sys.path[0],"..", "images", "network.png")
-+ self.icon_filename = os.path.join(sys.path[0], "images", "network.png")
-+ self.share_icon_filename = os.path.join(sys.path[0], "images", "network.png")
- self.icon_pixbuf = gtk.gdk.pixbuf_new_from_file(self.icon_filename)
- self.set_icon(self.icon_pixbuf)
-
-diff --git a/sambagtk/pysrvsvc.py b/sambagtk/pysrvsvc.py
-index d159201..e3baa82 100644
---- a/sambagtk/pysrvsvc.py
-+++ b/sambagtk/pysrvsvc.py
-@@ -75,7 +75,7 @@ class srvsvcConnectDialog(gtk.Dialog):
-
- self.artwork = gtk.VBox()
-
-- self.samba_image_filename = os.path.join(sys.path[0],"..", 'images',
-+ self.samba_image_filename = os.path.join(sys.path[0],'images',
- 'samba-logo-small.png')
- self.samba_image = gtk.Image()
- self.samba_image.set_from_file(self.samba_image_filename)
-@@ -378,7 +378,7 @@ class ShareAddEditDialog(gtk.Dialog):
- self.icon_name = ["network-folder","network-printer",
- "network","network-pipe"][self.stype]
- self.icon_filename = \
-- os.path.join(sys.path[0], "..","images",''.join([self.icon_name,'.png']))
-+ os.path.join(sys.path[0],"images",''.join([self.icon_name,'.png']))
- self.set_icon_from_file(self.icon_filename)
- self.vbox.set_spacing(3)
- self.set_border_width(5)
-@@ -416,7 +416,7 @@ class ShareAddEditDialog(gtk.Dialog):
- #vertical logo
- vbox = gtk.VBox()
- vbox.set_border_width(5)
-- samba_image_filename = os.path.join(sys.path[0],"..", 'images',
-+ samba_image_filename = os.path.join(sys.path[0],'images',
- 'samba-logo-vertical.png')
- samba_image = gtk.Image()
- samba_image.set_from_file(samba_image_filename)
-@@ -649,7 +649,7 @@ class DeleteDialog(gtk.Dialog):
- self.icon_name = ["network-folder","network-printer",
- "network","network-pipe"][self.stype]
- self.icon_filename = \
-- os.path.join(sys.path[0],"..", "images",''.join([self.icon_name,'.png']))
-+ os.path.join(sys.path[0],"images",''.join([self.icon_name,'.png']))
- self.set_icon_from_file(self.icon_filename)
- self.vbox.set_spacing(3)
- self.set_border_width(5)
-@@ -683,7 +683,7 @@ class DeleteDialog(gtk.Dialog):
- #vertical logo
- vbox = gtk.VBox()
- vbox.set_border_width(5)
-- samba_image_filename = os.path.join(sys.path[0], "..",'images',
-+ samba_image_filename = os.path.join(sys.path[0],'images',
- 'samba-logo-vertical.png')
- samba_image = gtk.Image()
- samba_image.set_from_file(samba_image_filename)
-@@ -835,7 +835,7 @@ class ShareWizardDialog(ShareAddEditDialog):
-
- vbox = gtk.VBox()
- vbox.set_border_width(5)
-- samba_image_filename = os.path.join(sys.path[0],"..", 'images',
-+ samba_image_filename = os.path.join(sys.path[0],'images',
- 'samba-logo-small.png')
- samba_image = gtk.Image()
- samba_image.set_from_file(samba_image_filename)
-diff --git a/sambagtk/sam.py b/sambagtk/sam.py
-index 1844997..0c7fa3d 100644
---- a/sambagtk/sam.py
-+++ b/sambagtk/sam.py
-@@ -534,11 +534,32 @@ class SAMConnectDialog(gtk.Dialog):
- self.set_border_width(5)
- self.set_icon_name(gtk.STOCK_CONNECT)
- self.set_resizable(False)
-+ self.set_decorated(True)
-
- # server frame
-
- self.vbox.set_spacing(5)
-
-+ self.artwork = gtk.VBox()
-+
-+ self.samba_image_filename = os.path.join(sys.path[0],"..", 'images',
-+ 'samba-logo-small.png')
-+ self.samba_image = gtk.Image()
-+ self.samba_image.set_from_file(self.samba_image_filename)
-+ self.artwork.pack_start(self.samba_image, True, True, 0)
-+
-+ label = gtk.Label('Opening Windows to A Wider World')
-+ box = gtk.HBox()
-+ box.pack_start(label, True, True, 0)
-+ self.artwork.pack_start(box, True, True, 0)
-+
-+ label = gtk.Label('Samba Control Center')
-+ box = gtk.HBox()
-+ box.pack_start(label, True, True, 0)
-+ self.artwork.pack_start(box, True, True, 0)
-+
-+ self.vbox.pack_start(self.artwork, False, True, 0)
-+
- self.server_frame = gtk.Frame("Server")
- self.vbox.pack_start(self.server_frame, False, True, 0)
-
-
-commit 31d64c06bb4a9c23e4ccb0f9df0023d2fe0146da
-Author: Dhananjay Sathe <dhananjaysathe@gmail.com>
-Date: Sat Aug 6 01:03:36 2011 +0530
-
- integration complete
-
-diff --git a/sambagtk/dialogs.py b/sambagtk/dialogs.py
-index 3b6836f..ddb669b 100644
---- a/sambagtk/dialogs.py
-+++ b/sambagtk/dialogs.py
-@@ -2,6 +2,7 @@
- #
- # Copyright (C) 2010 Sergio Martins <sergio97@gmail.com>
- # Copyright (C) 2011 Jelmer Vernooij <jelmer@samba.org>
-+# Copyright (C) 2011 Dhananjay Sathe <dhananjaysathe@gmail.com>
- #
- # This program is free software; you can redistribute it and/or modify
- # it under the terms of the GNU General Public License as published by
-@@ -32,7 +33,7 @@ class AboutDialog(gtk.AboutDialog):
- self.set_name(name)
- self.set_version(samba.version)
- self.set_logo(icon)
-- self.set_copyright("Copyright \xc2\xa9 2010 Sergio Martins <Sergio97@gmail.com>")
-+ self.set_copyright("Copyright \xc2\xa9 2010 Sergio Martins <Sergio97@gmail.com> Copyright \xc2\xa9 2011 Dhananjay Sathe <dhananjaysathe@gmail.com>")
- self.set_authors(["Sergio Martins <Sergio97@gmail.com>", "Calin Crisan <ccrisan@gmail.com>", "Dhananjay Sathe <dhananajaysathe@gmail.com>","Jelmer Vernooij <jelmer@samba.org>"])
- self.set_comments(description)
- self.set_wrap_license(True)
-diff --git a/sambagtk/main.glade b/sambagtk/main.glade
-index 8a11a69..9c88ad0 100644
---- a/sambagtk/main.glade
-+++ b/sambagtk/main.glade
-@@ -1,63 +1,85 @@
--<?xml version="1.0"?>
-+<?xml version="1.0" encoding="UTF-8"?>
- <interface>
- <requires lib="gtk+" version="2.16"/>
-- <!-- interface-naming-policy project-wide -->
-+ <object class="GtkImage" id="image1">
-+ <property name="visible">True</property>
-+ <property name="can_focus">False</property>
-+ <property name="stock">gtk-missing-image</property>
-+ </object>
-+ <object class="GtkImage" id="image2">
-+ <property name="visible">True</property>
-+ <property name="can_focus">False</property>
-+ <property name="stock">gtk-clear</property>
-+ </object>
- <object class="GtkWindow" id="main_window">
-+ <property name="can_focus">False</property>
- <property name="window_position">center</property>
- <property name="default_width">800</property>
- <property name="default_height">600</property>
-- <signal name="destroy" handler="on_main_window_destroy"/>
-- <signal name="key_press_event" handler="on_main_window_key_press_event"/>
-+ <signal name="destroy" handler="on_main_window_destroy" swapped="no"/>
-+ <signal name="key-press-event" handler="on_main_window_key_press_event" swapped="no"/>
- <child>
- <object class="GtkVBox" id="vbox">
- <property name="visible">True</property>
-- <property name="orientation">vertical</property>
-+ <property name="can_focus">False</property>
- <child>
- <object class="GtkViewport" id="menubar_viewport">
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
- <property name="resize_mode">queue</property>
- <property name="shadow_type">none</property>
- <child>
- <object class="GtkMenuBar" id="menubar">
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
- <child>
- <object class="GtkMenuItem" id="menuitem">
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
-+ <property name="use_action_appearance">False</property>
- <property name="label" translatable="yes">_File</property>
- <property name="use_underline">True</property>
- <child type="submenu">
- <object class="GtkMenu" id="menu_file">
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
- <child>
- <object class="GtkImageMenuItem" id="connect_all_item">
- <property name="label">gtk-connect</property>
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
-+ <property name="use_action_appearance">False</property>
- <property name="use_underline">True</property>
- <property name="use_stock">True</property>
-- <signal name="activate" handler="on_connect_all_item_activate"/>
-+ <signal name="activate" handler="on_connect_all_item_activate" swapped="no"/>
- </object>
- </child>
- <child>
- <object class="GtkImageMenuItem" id="disconnect_all_item">
- <property name="label">gtk-disconnect</property>
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
-+ <property name="use_action_appearance">False</property>
- <property name="use_underline">True</property>
- <property name="use_stock">True</property>
-- <signal name="activate" handler="on_disconnect_all_item_activate"/>
-+ <signal name="activate" handler="on_disconnect_all_item_activate" swapped="no"/>
- </object>
- </child>
- <child>
- <object class="GtkSeparatorMenuItem" id="separatormenuitem1">
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
- </object>
- </child>
- <child>
- <object class="GtkImageMenuItem" id="quit_item">
- <property name="label">gtk-quit</property>
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
-+ <property name="use_action_appearance">False</property>
- <property name="use_underline">True</property>
- <property name="use_stock">True</property>
-- <signal name="activate" handler="on_quit_item_activate"/>
-+ <signal name="activate" handler="on_quit_item_activate" swapped="no"/>
- </object>
- </child>
- </object>
-@@ -67,18 +89,23 @@
- <child>
- <object class="GtkMenuItem" id="menuitem2">
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
-+ <property name="use_action_appearance">False</property>
- <property name="label" translatable="yes">_Edit</property>
- <property name="use_underline">True</property>
- <child type="submenu">
- <object class="GtkMenu" id="menu_edit">
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
- <child>
- <object class="GtkImageMenuItem" id="clear_log_item">
- <property name="label">Clear Log</property>
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
-+ <property name="use_action_appearance">False</property>
- <property name="image">image2</property>
- <property name="use_stock">False</property>
-- <signal name="activate" handler="on_clear_log_activate"/>
-+ <signal name="activate" handler="on_clear_log_activate" swapped="no"/>
- </object>
- </child>
- </object>
-@@ -88,18 +115,23 @@
- <child>
- <object class="GtkMenuItem" id="menuitem3">
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
-+ <property name="use_action_appearance">False</property>
- <property name="label" translatable="yes">_View</property>
- <property name="use_underline">True</property>
- <child type="submenu">
- <object class="GtkMenu" id="menu_view">
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
- <child>
- <object class="GtkImageMenuItem" id="connection_info_item">
- <property name="label">Connection Details</property>
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
-+ <property name="use_action_appearance">False</property>
- <property name="image">image1</property>
- <property name="use_stock">False</property>
-- <signal name="activate" handler="on_connection_info_item_activate"/>
-+ <signal name="activate" handler="on_connection_info_item_activate" swapped="no"/>
- </object>
- </child>
- </object>
-@@ -109,18 +141,23 @@
- <child>
- <object class="GtkMenuItem" id="menuitem4">
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
-+ <property name="use_action_appearance">False</property>
- <property name="label" translatable="yes">_Help</property>
- <property name="use_underline">True</property>
- <child type="submenu">
- <object class="GtkMenu" id="menu_help">
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
- <child>
- <object class="GtkImageMenuItem" id="about_item">
- <property name="label">gtk-about</property>
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
-+ <property name="use_action_appearance">False</property>
- <property name="use_underline">True</property>
- <property name="use_stock">True</property>
-- <signal name="activate" handler="on_about_item_activate"/>
-+ <signal name="activate" handler="on_about_item_activate" swapped="no"/>
- </object>
- </child>
- </object>
-@@ -132,25 +169,30 @@
- </object>
- <packing>
- <property name="expand">False</property>
-+ <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkViewport" id="toolbar_viewport">
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
- <property name="resize_mode">queue</property>
- <property name="shadow_type">none</property>
- <child>
- <object class="GtkToolbar" id="toolbar">
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
- <child>
- <object class="GtkToolButton" id="connect_all_button">
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
-+ <property name="use_action_appearance">False</property>
- <property name="is_important">True</property>
- <property name="label" translatable="yes">Connect All</property>
- <property name="use_underline">True</property>
- <property name="stock_id">gtk-connect</property>
-- <signal name="clicked" handler="on_connect_all_button_clicked"/>
-+ <signal name="clicked" handler="on_connect_all_button_clicked" swapped="no"/>
- </object>
- <packing>
- <property name="expand">False</property>
-@@ -160,11 +202,13 @@
- <child>
- <object class="GtkToolButton" id="disconnect_all_button">
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
-+ <property name="use_action_appearance">False</property>
- <property name="is_important">True</property>
- <property name="label" translatable="yes">Disconnect All</property>
- <property name="use_underline">True</property>
- <property name="stock_id">gtk-disconnect</property>
-- <signal name="clicked" handler="on_disconnect_all_button_clicked"/>
-+ <signal name="clicked" handler="on_disconnect_all_button_clicked" swapped="no"/>
- </object>
- <packing>
- <property name="expand">False</property>
-@@ -174,6 +218,7 @@
- <child>
- <object class="GtkSeparatorToolItem" id="toolbutton3">
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
- </object>
- <packing>
- <property name="expand">False</property>
-@@ -183,11 +228,13 @@
- <child>
- <object class="GtkToolButton" id="clear_log_button">
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
-+ <property name="use_action_appearance">False</property>
- <property name="is_important">True</property>
- <property name="label" translatable="yes">Clear Log</property>
- <property name="use_underline">True</property>
- <property name="stock_id">gtk-clear</property>
-- <signal name="clicked" handler="on_clear_log_button_clicked"/>
-+ <signal name="clicked" handler="on_clear_log_button_clicked" swapped="no"/>
- </object>
- <packing>
- <property name="expand">False</property>
-@@ -199,6 +246,7 @@
- </object>
- <packing>
- <property name="expand">False</property>
-+ <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
-@@ -207,28 +255,30 @@
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="tab_pos">left</property>
-- <property name="homogeneous">True</property>
-- <signal name="switch_page" handler="on_utility_notebook_switch_page"/>
-+ <signal name="switch-page" handler="on_utility_notebook_switch_page" swapped="no"/>
- <child>
- <object class="GtkViewport" id="launcher_viewport">
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
- <property name="resize_mode">queue</property>
- <property name="shadow_type">none</property>
- <child>
- <object class="GtkVBox" id="vbox2">
- <property name="visible">True</property>
-- <property name="orientation">vertical</property>
-+ <property name="can_focus">False</property>
- <child>
- <object class="GtkVBox" id="vbox3">
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
- <property name="border_width">3</property>
-- <property name="orientation">vertical</property>
- <child>
- <object class="GtkHBox" id="hbox1">
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
- <child>
- <object class="GtkLabel" id="label1">
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0</property>
- <property name="xpad">5</property>
-@@ -243,25 +293,32 @@
- <child>
- <object class="GtkLabel" id="server_label">
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0</property>
- <property name="label" translatable="yes">Unknown</property>
- </object>
- <packing>
-+ <property name="expand">True</property>
-+ <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
-+ <property name="expand">True</property>
-+ <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkHBox" id="hbox3">
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
- <child>
- <object class="GtkLabel" id="label2">
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0</property>
- <property name="xpad">5</property>
-@@ -276,25 +333,32 @@
- <child>
- <object class="GtkLabel" id="username_label">
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0</property>
- <property name="label" translatable="yes">Unknown</property>
- </object>
- <packing>
-+ <property name="expand">True</property>
-+ <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
-+ <property name="expand">True</property>
-+ <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkHBox" id="hbox2">
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
- <child>
- <object class="GtkLabel" id="label3">
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0</property>
- <property name="xpad">5</property>
-@@ -309,21 +373,27 @@
- <child>
- <object class="GtkLabel" id="status_label">
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Unknown</property>
- </object>
- <packing>
-+ <property name="expand">True</property>
-+ <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
-+ <property name="expand">True</property>
-+ <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
-+ <property name="fill">True</property>
- <property name="padding">5</property>
- <property name="position">0</property>
- </packing>
-@@ -332,8 +402,6 @@
- <object class="GtkScrolledWindow" id="scrolledwindow1">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
-- <property name="hscrollbar_policy">automatic</property>
-- <property name="vscrollbar_policy">automatic</property>
- <property name="shadow_type">in</property>
- <child>
- <object class="GtkTextView" id="messages_textview">
-@@ -348,6 +416,8 @@
- </child>
- </object>
- <packing>
-+ <property name="expand">True</property>
-+ <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
-@@ -358,6 +428,7 @@
- <child type="tab">
- <object class="GtkLabel" id="lblServerOptions">
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
- <property name="label" translatable="yes">Server Options</property>
- </object>
- <packing>
-@@ -367,6 +438,7 @@
- <child>
- <object class="GtkViewport" id="sam_viewport">
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
- <property name="resize_mode">queue</property>
- <property name="shadow_type">none</property>
- <child>
-@@ -380,6 +452,7 @@
- <child type="tab">
- <object class="GtkLabel" id="lblUserManager">
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
- <property name="label" translatable="yes">User Manager</property>
- </object>
- <packing>
-@@ -388,7 +461,7 @@
- </packing>
- </child>
- <child>
-- <object class="GtkViewport" id="regedit_viewport">
-+ <object class="GtkViewport" id="srvsvc_viewport">
- <property name="visible">True</property>
- <property name="resize_mode">queue</property>
- <property name="shadow_type">none</property>
-@@ -401,18 +474,45 @@
- </packing>
- </child>
- <child type="tab">
-+ <object class="GtkLabel" id="lblShareManager">
-+ <property name="visible">True</property>
-+ <property name="can_focus">False</property>
-+ <property name="label" translatable="yes">Share Manager</property>
-+ </object>
-+ <packing>
-+ <property name="position">2</property>
-+ <property name="tab_fill">False</property>
-+ </packing>
-+ </child>
-+ <child>
-+ <object class="GtkViewport" id="regedit_viewport">
-+ <property name="visible">True</property>
-+ <property name="can_focus">False</property>
-+ <property name="resize_mode">queue</property>
-+ <property name="shadow_type">none</property>
-+ <child>
-+ <placeholder/>
-+ </child>
-+ </object>
-+ <packing>
-+ <property name="position">3</property>
-+ </packing>
-+ </child>
-+ <child type="tab">
- <object class="GtkLabel" id="lblRegEdit">
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
- <property name="label" translatable="yes">Registry Editor</property>
- </object>
- <packing>
-- <property name="position">2</property>
-+ <property name="position">3</property>
- <property name="tab_fill">False</property>
- </packing>
- </child>
- <child>
- <object class="GtkViewport" id="svcctl_viewport">
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
- <property name="resize_mode">queue</property>
- <property name="shadow_type">none</property>
- <child>
-@@ -420,22 +520,24 @@
- </child>
- </object>
- <packing>
-- <property name="position">3</property>
-+ <property name="position">4</property>
- </packing>
- </child>
- <child type="tab">
- <object class="GtkLabel" id="lblServicesManager">
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
- <property name="label" translatable="yes">Services Manager</property>
- </object>
- <packing>
-- <property name="position">3</property>
-+ <property name="position">4</property>
- <property name="tab_fill">False</property>
- </packing>
- </child>
- <child>
- <object class="GtkViewport" id="crontab_viewport">
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
- <property name="resize_mode">queue</property>
- <property name="shadow_type">none</property>
- <child>
-@@ -443,16 +545,17 @@
- </child>
- </object>
- <packing>
-- <property name="position">4</property>
-+ <property name="position">5</property>
- </packing>
- </child>
- <child type="tab">
- <object class="GtkLabel" id="lblTaskScheduler">
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
- <property name="label" translatable="yes">Task Scheduler</property>
- </object>
- <packing>
-- <property name="position">4</property>
-+ <property name="position">5</property>
- <property name="tab_fill">False</property>
- </packing>
- </child>
-@@ -464,14 +567,18 @@
- </child>
- </object>
- <packing>
-+ <property name="expand">True</property>
-+ <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkHBox" id="statusbar_hbox">
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
- <child>
- <object class="GtkProgressBar" id="progressbar">
-+ <property name="can_focus">False</property>
- <property name="fraction">0.5</property>
- </object>
- <packing>
-@@ -483,27 +590,23 @@
- <child>
- <object class="GtkStatusbar" id="statusbar">
- <property name="visible">True</property>
-+ <property name="can_focus">False</property>
- <property name="spacing">2</property>
- </object>
- <packing>
-+ <property name="expand">True</property>
-+ <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
-+ <property name="fill">True</property>
- <property name="position">3</property>
- </packing>
- </child>
- </object>
- </child>
- </object>
-- <object class="GtkImage" id="image1">
-- <property name="visible">True</property>
-- <property name="stock">gtk-missing-image</property>
-- </object>
-- <object class="GtkImage" id="image2">
-- <property name="visible">True</property>
-- <property name="stock">gtk-clear</property>
-- </object>
- </interface>
-diff --git a/sambagtk/main.py b/sambagtk/main.py
-index 7cb7155..d96b684 100644
---- a/sambagtk/main.py
-+++ b/sambagtk/main.py
-@@ -11,6 +11,9 @@ import gtk.glade
- import os.path
- import getopt
-
-+sys.path.append('/usr/local/samba/lib/python2.7/site-packages/')
-+
-+
- import pygwsam
- import pygwregedit
- import pygwcrontab
-@@ -100,6 +103,7 @@ class SambaUtilities(object):
- self.svcctl_viewport = builder.get_object("svcctl_viewport")
- self.crontab_viewport = builder.get_object("crontab_viewport")
- self.regedit_viewport = builder.get_object("regedit_viewport")
-+ self.srvsvc_viewport = builder.get_object("srvsvc_viewport")
-
- self.progressbar = builder.get_object("progressbar")
- self.statusbar = builder.get_object("statusbar")
-@@ -124,6 +128,24 @@ class SambaUtilities(object):
-
- self.set_status("User tab initialized.")
- self.update_sensitivity()
-+
-+ def init_srvsvc_page(self):
-+
-+ args = self.connection_args.copy()
-+ if self.additional_connection_args.has_key("info_callback"):
-+ args.update({"info_callback":self.additional_connection_args["info_callback"]})
-+
-+ self.srvsvc_window = pygwshare.ShareWindow(**args) #start up the utility
-+ self.srvsvc_window.share_notebook.reparent(self.srvsvc_viewport) #reparent the main widget into a notebook tab
-+ self.srvsvc_viewport.show_all() #unhide all widgets
-+
-+ #We'll be displaying this later. We need to unparent it before attaching it to another container
-+ #self.srvsvc_window.menubar.unparent()
-+ #self.srvsvc_window.toolbar.unparent()
-+ self.srvsvc_window.statusbar = self.statusbar #we simply tell the utility to use our status bar instead
-+
-+ self.set_status("Share Manager tab initialized.")
-+ self.update_sensitivity()
-
- def init_regedit_page(self):
- args = self.connection_args.copy()
-@@ -177,7 +199,10 @@ class SambaUtilities(object):
-
- def regedit_initialized(self):
- return self.regedit_window is not None
--
-+
-+ def srvsvc_initialized (self):
-+ return self.srvsvc_window is not None
-+
- def svcctl_initialized(self):
- return self.svcctl_window is not None
-
-@@ -186,11 +211,12 @@ class SambaUtilities(object):
-
- def update_sensitivity(self):
- sam_connected = self.sam_initialized() and self.sam_window.connected()
-+ srvsvc_connected = self.srvsvc_initialized() and self.srvsvc_window.connected()
- regedit_connected = self.regedit_initialized() and self.regedit_window.connected()
- svcctl_connected = self.svcctl_initialized() and self.svcctl_window.connected()
- crontab_connected = self.crontab_initialized() and self.crontab_window.connected()
-- all_connected = sam_connected and regedit_connected and svcctl_connected and crontab_connected
-- all_disconnected = (not sam_connected) and (not regedit_connected) and (not svcctl_connected) and (not crontab_connected)
-+ all_connected = sam_connected and regedit_connected and svcctl_connected and crontab_connected and srvsvc_connected
-+ all_disconnected = (not sam_connected) and (not regedit_connected) and (not svcctl_connected) and (not crontab_connected) and (not srvsvc_connected)
-
- self.connect_all_button.set_sensitive(not all_connected)
- self.disconnect_all_button.set_sensitive(not all_disconnected)
-@@ -207,6 +233,8 @@ class SambaUtilities(object):
- connected_utilities = []
- if sam_connected:
- connected_utilities.append("User Manager")
-+ if srvsvc_connected:
-+ connected_utilities.append("Share Manager")
- if regedit_connected:
- connected_utilities.append("Registry Editor")
- if svcctl_connected:
-@@ -303,10 +331,12 @@ class SambaUtilities(object):
- if current_page == 1:
- self.sam_window.on_key_press(widget, event)
- elif current_page == 2:
-- self.regedit_window.on_key_press(widget, event)
-+ self.srvsvc_window.on_key_press(widget, event)
- elif current_page == 3:
-- self.svcctl_window.on_key_press(widget, event)
-+ self.regedit_window.on_key_press(widget, event)
- elif current_page == 4:
-+ self.svcctl_window.on_key_press(widget, event)
-+ elif current_page == 5:
- self.crontab_window.on_key_press(widget, event)
-
- def on_utility_notebook_switch_page(self, widget, page, page_num):
-@@ -341,7 +371,28 @@ class SambaUtilities(object):
- self.toolbar_viewport.add(self.sam_window.toolbar)
- self.toolbar_viewport.show_all()
-
-- elif page_num == 2: #Regedit page
-+
-+ elif page_num == 2: #Share page
-+ if self.srvsvc_viewport.child == None:
-+ self.init_srvsvc_page()
-+
-+ #Menubar
-+ children = self.menubar_viewport.get_children()
-+ self.menubar_viewport.remove(children[0])
-+ self.srvsvc_window.menubar.reparent(self.menubar_viewport)
-+ #self.menubar_viewport.add(self.srvsvc_window.menubar)
-+ self.menubar_viewport.show_all()
-+
-+ #Toolbar
-+ children = self.toolbar_viewport.get_children()
-+ self.toolbar_viewport.remove(children[0])
-+ self.srvsvc_window.toolbar.unparent()
-+ self.toolbar_viewport.add(self.srvsvc_window.toolbar)
-+ self.toolbar_viewport.show_all()
-+
-+ self.srvsvc_window.hide()
-+
-+ elif page_num == 3: #Regedit page
- if self.regedit_viewport.child == None:
- self.init_regedit_page()
-
-@@ -357,7 +408,7 @@ class SambaUtilities(object):
- self.toolbar_viewport.add(self.regedit_window.toolbar)
- self.toolbar_viewport.show_all()
-
-- elif page_num == 3: #Services page
-+ elif page_num == 4: #Services page
- if self.svcctl_viewport.child == None:
- self.init_svcctl_page()
-
-@@ -373,7 +424,7 @@ class SambaUtilities(object):
- self.toolbar_viewport.add(self.svcctl_window.toolbar)
- self.toolbar_viewport.show_all()
-
-- elif page_num == 4: #Crontab page
-+ elif page_num == 5: #Crontab page
- if self.crontab_viewport.child == None:
- self.init_crontab_page()
-
-@@ -399,6 +450,12 @@ class SambaUtilities(object):
- self.sam_window.on_connect_item_activate(None, **self.connection_args)
- else:
- self.init_sam_page()
-+
-+ if self.srvsvc_initialized():
-+ if not self.srvsvc_window.connected():
-+ self.srvsvc_window.on_connect_item_activate(None, **self.connection_args)
-+ else:
-+ self.init_srvsvc_page()
-
- if self.regedit_initialized():
- if not self.regedit_window.connected():
-@@ -425,6 +482,8 @@ class SambaUtilities(object):
- def on_disconnect_all_button_clicked(self, widget):
- if self.sam_initialized():
- self.sam_window.on_disconnect_item_activate(None)
-+ if self.srvsvc_initialized():
-+ self.srvsvc_window.on_disconnect_item_activate(None)
- if self.regedit_initialized():
- self.regedit_window.on_disconnect_item_activate(None)
- if self.svcctl_initialized():
-@@ -491,10 +550,11 @@ def ParseArgs(argv):
- arguments.update({"connect_now":True})
- return (arguments)
-
--
-+"""
- if __name__ == "__main__":
- arguments = ParseArgs(sys.argv[1:])
- gtk.gdk.threads_init()
- main_window = SambaUtilities(arguments)
- sys.stdout = main_window #redirect print statements to the write() function of this class
- gtk.main()
-+"""
-diff --git a/sambagtk/pygwshare.py b/sambagtk/pygwshare.py
-index a72956a..17c780a 100644
---- a/sambagtk/pygwshare.py
-+++ b/sambagtk/pygwshare.py
-@@ -860,7 +860,7 @@ class ShareWindow(gtk.Window):
- "A tool to manage user shares on a SRVS Share server.\n"
- "Based on Jelmer Vernooij's original Samba-GTK",
- self.icon_pixbuf)
-- dialog.set_copyright("Copyright \xc2\xa9 2011 Dhananjay Sathe <dhananjaysathe@gmail.com>")
-+ #dialog.set_copyright("Copyright \xc2\xa9 2011 Dhananjay Sathe <dhananjaysathe@gmail.com>")
- dialog.run()
- dialog.hide()
-
-@@ -1334,15 +1334,14 @@ class ShareWindow(gtk.Window):
- self.share_icon_filename = os.path.join(sys.path[0],"..", "images", "network.png")
- self.icon_pixbuf = gtk.gdk.pixbuf_new_from_file(self.icon_filename)
- self.set_icon(self.icon_pixbuf)
-- self.set_position(gtk.WIN_POS_CENTER)
-
- accel_group = gtk.AccelGroup()
-- self.vbox = gtk.VBox(False, 0)
-- self.add(self.vbox)
-+ vbox = gtk.VBox(False, 0)
-+ self.add(vbox)
-
- # menu
- self.menubar = gtk.MenuBar()
-- self.vbox.pack_start(self.menubar, False, False, 0)
-+ vbox.pack_start(self.menubar, False, False, 0)
-
- self.file_item = gtk.MenuItem("_File")
- self.menubar.add(self.file_item)
-@@ -1412,7 +1411,7 @@ class ShareWindow(gtk.Window):
-
- # toolbar
- self.toolbar = gtk.Toolbar()
-- self.vbox.pack_start(self.toolbar, False, False, 0)
-+ vbox.pack_start(self.toolbar, False, False, 0)
-
- self.connect_button = gtk.ToolButton(gtk.STOCK_CONNECT)
- self.connect_button.set_is_important(True)
-@@ -1454,7 +1453,7 @@ class ShareWindow(gtk.Window):
-
- #share-page
- self.share_notebook = gtk.Notebook()
-- self.vbox.pack_start(self.share_notebook, True, True, 0)
-+ vbox.pack_start(self.share_notebook, True, True, 0)
-
- main_hbox = gtk.HBox()
- self.share_notebook.append_page(main_hbox, gtk.Label("Share Management"))
-@@ -1689,7 +1688,7 @@ class ShareWindow(gtk.Window):
-
- self.statusbar = gtk.Statusbar()
- self.statusbar.set_has_resize_grip(True)
-- self.vbox.pack_start(self.statusbar, False, False, 0)
-+ vbox.pack_start(self.statusbar, False, False, 0)
-
- # signals/events
-
-diff --git a/sambagtk/pysrvsvc.py b/sambagtk/pysrvsvc.py
-index 22fd5ef..d159201 100644
---- a/sambagtk/pysrvsvc.py
-+++ b/sambagtk/pysrvsvc.py
-@@ -961,7 +961,7 @@ class ShareWizardDialog(ShareAddEditDialog):
- self.fields_box.show_all()
-
-
-- if self.page == 1:
-+ elif self.page == 1:
- self.title_label.set_markup('<b>Name and Password</b>')
- self.info_label.set_text('Please enter a valid name and password (optional) for your share.')
- self.prev_button.set_sensitive(True)
-@@ -993,7 +993,7 @@ class ShareWizardDialog(ShareAddEditDialog):
- self.fields_box.show_all()
-
-
-- if self.page == 2:
-+ elif self.page == 2:
- self.title_label.set_markup('<b>Comment and Max Users </b>')
- self.info_label.set_text('Please enter a comment(optional) and select max users')
- self.prev_button.set_sensitive(True)
-@@ -1022,7 +1022,7 @@ class ShareWizardDialog(ShareAddEditDialog):
- self.fields_box.pack_start(table,False,True,0)
- self.fields_box.show_all()
-
-- if self.page == 3:
-+ elif self.page == 3:
- self.title_label.set_markup('<b>Share Type Options</b>')
- self.info_label.set_text('Please select your share type options.')
- self.prev_button.set_sensitive(True)
-@@ -1076,7 +1076,7 @@ class ShareWizardDialog(ShareAddEditDialog):
-
-
-
-- if self.page == 4:
-+ else :
- self.title_label.set_markup('<b>Path</b>')
- if self.islocal:
- self.info_label.set_text('Please select a valid path.')
-
-commit aca6211e2409a908333091951159a8ed284e94d3
-Author: Dhananjay Sathe <dhananjaysathe@gmail.com>
-Date: Wed Aug 3 20:28:07 2011 +0530
-
- fields validate fixed , now handles both wizard and dialog
-
-diff --git a/sambagtk/pygwshare.py b/sambagtk/pygwshare.py
-index 1cc264e..a72956a 100644
---- a/sambagtk/pygwshare.py
-+++ b/sambagtk/pygwshare.py
-@@ -211,12 +211,12 @@ class srvsvcPipeManager(object):
- if os.path.exists(path):
- path = os.path.realpath(path) # gets canonical path
- else:
-- raise OSError
-+ raise OSError("Path does not exist !")
-
-- if path.startswith('/'):
-- path = path.replace('/', '\\')
-- path = ''.join(['C:',path])
-- path = unicode(path)
-+ if path.startswith('/'):
-+ path = path.replace('/', '\\')
-+ path = ''.join(['C:',path])
-+ path = unicode(path)
-
- return path
-
-diff --git a/sambagtk/pysrvsvc.py b/sambagtk/pysrvsvc.py
-index 2c65b52..22fd5ef 100644
---- a/sambagtk/pysrvsvc.py
-+++ b/sambagtk/pysrvsvc.py
-@@ -270,15 +270,20 @@ class ShareAddEditDialog(gtk.Dialog):
-
- def validate_fields(self):
-
-- if len(self.sname) == 0:
-+ if type(self) is ShareAddEditDialog :
-+ name = self.share_name_entry.get_text()
-+ elif type(self) is ShareWizardDialog :
-+ name = self.sname
-+
-+ if len(name) == 0:
- return "Share name may not be empty!"
-
-- if not self.pipe.name_validate(self.sname):
-+ if not self.pipe.name_validate(name):
- return "Invalid Share name"
-
- if (not self.edit_mode):
- for share in self.pipe.share_list:
-- if share.name == self.share_name_entry.get_text():
-+ if share.name == name:
- return ' '.join(["A Share with the name : ", share.name ,"already exists!"])
-
- return None
-
-commit c8b9a88c9ab45a7ce6badc2cc44066176729a759
-Author: Dhananjay Sathe <dhananjaysathe@gmail.com>
-Date: Wed Aug 3 07:34:55 2011 +0530
-
- wizard history fixup , custom collects
-
-diff --git a/sambagtk/pygwshare.py b/sambagtk/pygwshare.py
-index efbc19b..1cc264e 100644
---- a/sambagtk/pygwshare.py
-+++ b/sambagtk/pygwshare.py
-@@ -984,7 +984,8 @@ class ShareWindow(gtk.Window):
- def on_new_item_activate(self, widget,wizard_mode=False):
-
- share = self.run_share_add_edit_dialog(wizard_mode=wizard_mode)
-- #print share.type TODO cleanup post debug
-+ #TODO cleanup Debug
-+ #print share.name,share.comment,share.password,str(share.type),str(share.max_users),share.path
- if share is None:
- self.set_status("Share creation canceled.")
- return
-diff --git a/sambagtk/pysrvsvc.py b/sambagtk/pysrvsvc.py
-index 7a02769..2c65b52 100644
---- a/sambagtk/pysrvsvc.py
-+++ b/sambagtk/pysrvsvc.py
-@@ -270,7 +270,7 @@ class ShareAddEditDialog(gtk.Dialog):
-
- def validate_fields(self):
-
-- if len(self.share_name_entry.get_text()) == 0:
-+ if len(self.sname) == 0:
- return "Share name may not be empty!"
-
- if not self.pipe.name_validate(self.sname):
-@@ -962,8 +962,8 @@ class ShareWizardDialog(ShareAddEditDialog):
- self.prev_button.set_sensitive(True)
- self.next_button.set_sensitive(True)
- self.ok_button.set_sensitive(False)
-- if self.name is not None:
-- self.share_name_entry.set_text(self.name)
-+ if self.sname is not None:
-+ self.share_name_entry.set_text(self.sname)
- if self.password is not None:
- self.share_comment_entry.set_text(self.password)
-
-@@ -1114,3 +1114,40 @@ class ShareWizardDialog(ShareAddEditDialog):
-
- self.fields_box.pack_start(table,False,True,0)
- self.fields_box.show_all()
-+
-+ def collect_fields (self):
-+ """ Custom collect fields from the GUI and saves in class variables which is page specific. """
-+ if self.page == 0:
-+ pass
-+
-+ elif self.page == 1 :
-+ self.sname = self.share_name_entry.get_text()
-+ self.password = self.share_password_entry.get_text()
-+
-+
-+ elif self.page == 2:
-+ self.comment = self.share_comment_entry.get_text()
-+ self.max_users = self.max_users_spinbox.get_value_as_int()
-+
-+ elif self.page ==3 :
-+ # Now to handle the share type resolution
-+ if self.stype_disktree_radio_button.get_active() :
-+ self.stype = srvsvc.STYPE_DISKTREE
-+ elif self.stype_printq_radio_button.get_active() :
-+ self.stype = srvsvc.STYPE_PRINTQ
-+ else:
-+ self.stype = srvsvc.STYPE_IPC
-+ # check flags
-+ self.flags = [False,False]
-+ if self.sflag_temp_check_button.get_active():
-+ self.flags[0] = True
-+ if self.sflag_hidden_check_button.get_active():
-+ self.flags[1] = True
-+
-+ else :
-+ if self.islocal :
-+ self.path = self.file_button.get_filename()
-+ else:
-+ self.path = self.path_entry.get_text()
-+
-+