gnome-mud r758 - in trunk: . src ui



Author: lharris
Date: Wed Feb 25 00:06:10 2009
New Revision: 758
URL: http://svn.gnome.org/viewvc/gnome-mud?rev=758&view=rev

Log:
Quickconnect, Char Deletion Fixes.


Modified:
   trunk/ChangeLog
   trunk/src/mud-connections.c
   trunk/src/mud-telnet-msp.c
   trunk/src/mud-telnet.h
   trunk/ui/muds.glade

Modified: trunk/src/mud-connections.c
==============================================================================
--- trunk/src/mud-connections.c	(original)
+++ trunk/src/mud-connections.c	Wed Feb 25 00:06:10 2009
@@ -49,6 +49,10 @@
     GtkTreeModel *icon_model;
     GtkTreeModel *profile_model;
 
+    GtkWidget *qconnect_host_entry;
+    GtkWidget *qconnect_port_entry;
+    GtkWidget *qconnect_connect_button;
+
     // Properties Dialog
     GtkWidget *properties_window;
     GtkWidget *name_entry;
@@ -110,6 +114,8 @@
 					     MudConnections *conn);
 static void mud_connections_property_icon_cb(GtkWidget *widget,
 					     MudConnections *conn);
+static void mud_connections_qconnect_cb(GtkWidget *widget,
+                                        MudConnections *conn);
 static gboolean mud_connections_property_changed_cb(GtkWidget *widget,
 						    GdkEventKey *event,
 						    MudConnections *conn);
@@ -187,6 +193,13 @@
     conn->priv->window = glade_xml_get_widget(glade, "mudviewwindow");
     conn->priv->iconview = glade_xml_get_widget(glade, "iconview");
 
+    conn->priv->qconnect_host_entry =
+        glade_xml_get_widget(glade, "qconnect_host_entry");
+    conn->priv->qconnect_port_entry =
+        glade_xml_get_widget(glade, "qconnect_port_entry");
+    conn->priv->qconnect_connect_button =
+        glade_xml_get_widget(glade, "qconnect_connect_button");
+
     conn->priv->icon_model =
         GTK_TREE_MODEL(gtk_list_store_new(MODEL_COLUMN_N,
                     G_TYPE_STRING,
@@ -231,11 +244,14 @@
     g_signal_connect(glade_xml_get_widget(glade, "properties_button"),
             "clicked", G_CALLBACK(mud_connections_properties_cb),
             conn);
+    g_signal_connect(conn->priv->qconnect_connect_button, "clicked",
+            G_CALLBACK(mud_connections_qconnect_cb), conn);
 
     mud_connections_populate_iconview(conn);
 
     gtk_widget_show_all(conn->priv->window);
     g_object_unref(glade);
+    g_object_unref(client);
 }
 
 static void
@@ -262,6 +278,8 @@
 
     parent_class = g_type_class_peek_parent(G_OBJECT_GET_CLASS(object));
     parent_class->finalize(object);
+
+    g_object_unref(client);
 }
 
 // MudConnections Private Methods
@@ -366,6 +384,29 @@
 }
 
 static void
+mud_connections_qconnect_cb(GtkWidget *widget, MudConnections *conn)
+{
+    MudConnectionView *view;
+    const gchar *host;
+    gint port =
+        gtk_spin_button_get_value_as_int(
+                GTK_SPIN_BUTTON(conn->priv->qconnect_port_entry));
+
+    host = gtk_entry_get_text(GTK_ENTRY(conn->priv->qconnect_host_entry));
+
+    if(strlen(host) != 0)
+    {
+        mud_tray_update_icon(conn->priv->tray, offline);
+        view = mud_connection_view_new("Default", host, port,
+                                       conn->priv->winwidget,
+                                       (GtkWidget *)conn->priv->tray, (gchar *)host);
+        mud_window_add_connection_view(conn->priv->parent, view, (gchar *)host);
+
+        gtk_widget_destroy(conn->priv->window);
+    }
+}
+
+static void
 mud_connections_add_cb(GtkWidget *widget, MudConnections *conn)
 {
     mud_connections_show_properties(conn, NULL);
@@ -378,7 +419,8 @@
 	gtk_icon_view_get_selected_items(
 	    GTK_ICON_VIEW(conn->priv->iconview));
     GtkTreeIter iter;
-    gchar *buf, *mud_name, *key, *strip_name;
+    gchar *buf, *mud_name, *key, *strip_name,
+          *strip_char_name,  *char_name;
     gchar **mud_tuple;
     gint len;
     GConfClient *client = gconf_client_get_default();
@@ -386,41 +428,77 @@
     if(g_list_length(selected) == 0)
 	return;
 
+    char_name = NULL;
+
     gtk_tree_model_get_iter(conn->priv->icon_model, &iter,
 			    (GtkTreePath *)selected->data);
     gtk_tree_model_get(conn->priv->icon_model, &iter, 0, &buf, -1);
 	
     mud_tuple = g_strsplit(buf, "\n", -1);
+    g_free(buf);
 
     len = g_strv_length(mud_tuple);
 
     switch(len)
     {
-    case 1:
-	mud_name = g_strdup(mud_tuple[0]);
-	break;
+        /* Delete Mud */
+        case 1:
+            mud_name = g_strdup(mud_tuple[0]);
+            break;
+
+        /* Delete Character */
+        case 2:
+            char_name = g_strdup(mud_tuple[0]);
+            mud_name = g_strdup(mud_tuple[1]);
+            break;
+
+        default:
+            g_warning("Malformed mud name passed to delete.");
+            return;
+    }
 
-    case 2:
-	mud_name = g_strdup(mud_tuple[1]);
-	break;
+    if(!mud_connections_delete_confirm(mud_tuple[0]))
+    {
+        g_free(mud_name);
+
+        if(char_name)
+            g_free(char_name);
+
+        g_strfreev(mud_tuple);
+        g_object_unref(client);
 
-    default:
-	g_warning("Malformed mud name passed to delete.");
 	return;
     }
 
     g_strfreev(mud_tuple);
 
-    if(!mud_connections_delete_confirm(buf))
-	return;
+    if(len == 1)
+    {
+        strip_name = remove_whitespace(mud_name);
+        
+        key = g_strdup_printf("/apps/gnome-mud/muds/%s", strip_name);
+        gconf_client_recursive_unset(client, key, 0, NULL);
+        
+        g_free(key);
+        
+        gconf_client_suggest_sync(client, NULL);
+    }
+    else if(len == 2)
+    {
+        strip_name = remove_whitespace(mud_name);
+        strip_char_name = remove_whitespace(char_name);
 
-    g_free(buf);
+        key = g_strdup_printf("/apps/gnome-mud/muds/%s/characters/%s",
+                strip_name, strip_char_name);
 
-    strip_name = remove_whitespace(mud_name);
-    key = g_strdup_printf("/apps/gnome-mud/muds/%s", strip_name);
-    gconf_client_recursive_unset(client, key, 0, NULL);
-    g_free(key);
-    gconf_client_suggest_sync(client, NULL);
+        gconf_client_recursive_unset(client, key, 0, NULL);
+
+        g_free(key);
+        g_free(strip_char_name);
+        g_free(char_name);
+
+        gconf_client_suggest_sync(client, NULL);
+    }
 
     g_free(mud_name);
     g_free(strip_name);
@@ -446,9 +524,7 @@
 			    (GtkTreePath *)selected->data);
     gtk_tree_model_get(conn->priv->icon_model, &iter, 0, &buf, -1);
 
-    mud_connections_show_properties(conn, g_strdup(buf));
-
-    g_free(buf);
+    mud_connections_show_properties(conn, buf);
 }
 
 static void

Modified: trunk/src/mud-telnet-msp.c
==============================================================================
--- trunk/src/mud-telnet-msp.c	(original)
+++ trunk/src/mud-telnet-msp.c	Wed Feb 25 00:06:10 2009
@@ -147,15 +147,15 @@
 
                 if(telnet->msp_parser.arg_buffer == NULL)
                     telnet->msp_parser.arg_buffer = g_string_new(NULL);
-                else
-                {
-                    /* This stops some craziness where g_string_append_c
-                       doesn't actually update the gstring. Glib bug? */
-                    temp = g_strdup(telnet->msp_parser.arg_buffer->str);
-                    g_string_free(telnet->msp_parser.arg_buffer, TRUE);
-                    telnet->msp_parser.arg_buffer = g_string_new(temp);
-                    g_free(temp);
-                }
+              //  else
+              //  {
+              //      /* This stops some craziness where g_string_append_c
+              //         doesn't actually update the gstring. Glib bug? */
+              //      temp = g_strdup(telnet->msp_parser.arg_buffer->str);
+              //      g_string_free(telnet->msp_parser.arg_buffer, TRUE);
+              //      telnet->msp_parser.arg_buffer = g_string_new(temp);
+              //      g_free(temp);
+              //  }
 
                 while(telnet->msp_parser.lex_pos_end < *len &&
                         buf->str[telnet->msp_parser.lex_pos_end] != ')')
@@ -535,7 +535,7 @@
 static void
 mud_telnet_msp_process_command(MudTelnet *telnet, MudMSPCommand *command)
 {
-    /*g_message("MSP Command Parse Results");
+      /*g_message("MSP Command Parse Results");
       g_print("Type: %s\n", (command->type == MSP_TYPE_SOUND) ? "Sound" :
       "Music" );
       g_print("Filename: %s\n", (command->fName != NULL) ? command->fName :
@@ -770,12 +770,12 @@
 	    if(subdir->len != 0)
 		url_output = g_string_append(url_output, subdir->str);
 
-	    if(telnet->sound[type].current_command->T)
+/*	    if(telnet->sound[type].current_command->T)
 	    {
 		url_output = g_string_append(url_output, telnet->sound[type].current_command->T);
 		url_output = g_string_append_c(url_output, '/');
 	    }
-
+*/
 	    url_output = g_string_append(url_output, file_name->str);
 
 	    file_output = g_string_append(file_output, full_dir->str);

Modified: trunk/src/mud-telnet.h
==============================================================================
--- trunk/src/mud-telnet.h	(original)
+++ trunk/src/mud-telnet.h	Wed Feb 25 00:06:10 2009
@@ -68,7 +68,7 @@
 #define TELOPT_ZMP			 93	// ZMP - http://www.awemud.net/zmp/draft.php
 
 // FIXME: What size should we use?
-#define TEL_SUBREQ_BUFFER_SIZE 256
+#define TEL_SUBREQ_BUFFER_SIZE 2048 
 #define TEL_HANDLERS_SIZE 256
 #define TELOPT_STATE_QUEUE_EMPTY	FALSE
 #define TELOPT_STATE_QUEUE_OPPOSITE	TRUE

Modified: trunk/ui/muds.glade
==============================================================================
--- trunk/ui/muds.glade	(original)
+++ trunk/ui/muds.glade	Wed Feb 25 00:06:10 2009
@@ -85,7 +85,7 @@
           <widget class="GtkScrolledWindow" id="scrolledwindow">
             <property name="visible">True</property>
             <property name="can_focus">True</property>
-            <property name="hscrollbar_policy">never</property>
+            <property name="hscrollbar_policy">automatic</property>
             <property name="vscrollbar_policy">automatic</property>
             <child>
               <widget class="GtkIconView" id="iconview">
@@ -99,97 +99,84 @@
           </packing>
         </child>
         <child>
-          <widget class="GtkExpander" id="expander">
+          <widget class="GtkHBox" id="hbox2">
             <property name="visible">True</property>
-            <property name="can_focus">True</property>
-            <property name="use_markup">True</property>
             <child>
-              <widget class="GtkVBox" id="vbox4">
+              <widget class="GtkLabel" id="label12">
                 <property name="visible">True</property>
-                <property name="orientation">vertical</property>
-                <child>
-                  <widget class="GtkLabel" id="label7">
-                    <property name="visible">True</property>
-                    <property name="xalign">0.10000000149011612</property>
-                    <property name="label" translatable="yes">&lt;b&gt;Host:&lt;/b&gt;</property>
-                    <property name="use_markup">True</property>
-                  </widget>
-                  <packing>
-                    <property name="position">0</property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkEntry" id="entry3">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="invisible_char">&#x25CF;</property>
-                  </widget>
-                  <packing>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkLabel" id="label8">
-                    <property name="visible">True</property>
-                    <property name="xalign">0.10000000149011612</property>
-                    <property name="label" translatable="yes">&lt;b&gt;Port:&lt;/b&gt;</property>
-                    <property name="use_markup">True</property>
-                  </widget>
-                  <packing>
-                    <property name="position">2</property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkEntry" id="entry4">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="invisible_char">&#x25CF;</property>
-                  </widget>
-                  <packing>
-                    <property name="position">3</property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkHBox" id="hbox3">
-                    <property name="visible">True</property>
-                    <child>
-                      <widget class="GtkLabel" id="label9">
-                        <property name="visible">True</property>
-                        <property name="label" translatable="yes">
-</property>
-                        <property name="width_chars">32</property>
-                      </widget>
-                      <packing>
-                        <property name="position">0</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <widget class="GtkButton" id="button3">
-                        <property name="label" translatable="yes">gtk-connect</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="receives_default">True</property>
-                        <property name="use_stock">True</property>
-                      </widget>
-                      <packing>
-                        <property name="position">1</property>
-                      </packing>
-                    </child>
-                  </widget>
-                  <packing>
-                    <property name="position">4</property>
-                  </packing>
-                </child>
               </widget>
+              <packing>
+                <property name="position">0</property>
+              </packing>
             </child>
             <child>
-              <widget class="GtkLabel" id="label1">
+              <widget class="GtkLabel" id="label13">
                 <property name="visible">True</property>
-                <property name="label" translatable="yes">&lt;b&gt;Quick Connect&lt;/b&gt;</property>
-                <property name="use_markup">True</property>
+                <property name="label" translatable="yes">_Host: </property>
+                <property name="use_underline">True</property>
+                <property name="mnemonic_widget">qconnect_host_entry</property>
               </widget>
               <packing>
-                <property name="type">label_item</property>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkEntry" id="qconnect_host_entry">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="invisible_char">&#x25CF;</property>
+              </widget>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">2</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkLabel" id="label14">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes"> _Port: </property>
+                <property name="use_underline">True</property>
+                <property name="mnemonic_widget">qconnect_port_entry</property>
+              </widget>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">3</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkSpinButton" id="qconnect_port_entry">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="invisible_char">&#x25CF;</property>
+                <property name="activates_default">True</property>
+                <property name="adjustment">23 1 50000 1 10 10</property>
+                <property name="numeric">True</property>
+              </widget>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">4</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkButton" id="qconnect_connect_button">
+                <property name="label" translatable="yes">gtk-connect</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="has_default">True</property>
+                <property name="receives_default">True</property>
+                <property name="relief">half</property>
+                <property name="use_stock">True</property>
+              </widget>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">5</property>
               </packing>
             </child>
           </widget>



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]