integration complete
authorDhananjay Sathe <dhananjaysathe@gmail.com>
Fri, 5 Aug 2011 19:33:36 +0000 (01:03 +0530)
committerDhananjay Sathe <dhananjaysathe@gmail.com>
Fri, 5 Aug 2011 19:33:36 +0000 (01:03 +0530)
sambagtk/dialogs.py
sambagtk/main.glade
sambagtk/main.py
sambagtk/pygwshare.py
sambagtk/pysrvsvc.py

index 3b6836fc3a3ad8b45c05e7b6dcba22521f116acd..ddb669b2e69e8c986f10498a1f71c9708a7feb51 100644 (file)
@@ -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)
index 8a11a69f32efca2a3624f97f4548fa2e4c80cdd1..9c88ad0d60955125a473aafb99e770e30d15edda 100644 (file)
@@ -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>
                 <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>
                 <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>
                 <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>
           </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>
                 <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>
                 <child>
                   <object class="GtkSeparatorToolItem" id="toolbutton3">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                   </object>
                   <packing>
                     <property name="expand">False</property>
                 <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>
           </object>
           <packing>
             <property name="expand">False</property>
+            <property name="fill">True</property>
             <property name="position">1</property>
           </packing>
         </child>
             <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>
                             <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>
                             <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>
                             <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>
                       <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">
                         </child>
                       </object>
                       <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
                         <property name="position">1</property>
                       </packing>
                     </child>
             <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>
             <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>
             <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>
               </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>
                 <property name="position">2</property>
               </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>
                 </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>
                 </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>
             </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>
             <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>
index 7cb7155787a7e21dc497f5abf3da3e292ab8084d..d96b6842018495aed049e1f62cf34dc6457f8a22 100644 (file)
@@ -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()
+"""
index a72956a18c10f60c0765a4f770f9dcf9ca07c86b..17c780a63a5325b5e3ee40ebb4871a2104c99bd8 100644 (file)
@@ -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
 
index 22fd5efa77973abe1ef69e5fb382333b4ee7228e..d159201d48d2a383dd22318f4f62d719a779a42f 100644 (file)
@@ -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.')