From da63ee80d96f960753ad648bfef0804019d3a296 Mon Sep 17 00:00:00 2001 From: Miguel de Icaza Date: Fri, 12 Feb 1999 02:42:42 +0000 Subject: [PATCH] Fixes. Lots. Headache. Pink Elephants on the roof. Miguel --- configure.in | 2 +- gnome/gaction.c | 31 ++++++++ gnome/gconf.h | 4 +- gnome/gmain.h | 1 + gnome/gpopup.c | 10 ++- gnome/gscreen.c | 4 - po/mc.pot | 189 ++++++++++++++++++++++++++++-------------------- src/find.c | 18 ++++- 8 files changed, 168 insertions(+), 91 deletions(-) diff --git a/configure.in b/configure.in index 2e63480bb..2691e0a99 100644 --- a/configure.in +++ b/configure.in @@ -5,7 +5,7 @@ AC_INIT(create_vcs) AC_CONFIG_HEADER(config.h) PACKAGE=mc -VERSION=4.5.13 +VERSION=4.5.14 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE") AC_DEFINE_UNQUOTED(VERSION, "$VERSION") AC_SUBST(VERSION) diff --git a/gnome/gaction.c b/gnome/gaction.c index 58f554e07..032ffcced 100644 --- a/gnome/gaction.c +++ b/gnome/gaction.c @@ -74,6 +74,37 @@ gmc_open_filename (char *fname, GList *args) return 0; } +int +gmc_edit_filename (char *fname) +{ + const char *mime_type; + const char *cmd; + char *buf; + int size; + + if (gnome_metadata_get (fname, "edit", &size, &buf) == 0){ + gmc_execute (fname, buf); + g_free (buf); + return 1; + } + + mime_type = gnome_mime_type_or_default (fname, NULL); + if (!mime_type) + return 0; + + + cmd = gnome_mime_get_value (mime_type, "edit"); + + if (cmd){ + gmc_execute (fname, cmd); + return 1; + } + + do_edit (fname); + return 0; +} + + int gmc_open (file_entry *fe) { diff --git a/gnome/gconf.h b/gnome/gconf.h index bc52904e6..c25f86057 100644 --- a/gnome/gconf.h +++ b/gnome/gconf.h @@ -37,7 +37,9 @@ #define PORT_LIST_MODE_NAME "gnome_list_mode" #define PORT_LIST_MODE_DEFAULT "icons" -#define ICONS_PER_ROW(x) (gnome_icon_list_get_items_per_line (GNOME_ICON_LIST(x->icons))) +#define CLIST_FROM_SW(panel_list) GTK_CLIST (GTK_BIN (panel_list)->child) +#define ILIST_FROM_SW(panel_list) GNOME_ICON_LIST (GTK_BIN (panel_list)->child) +#define ICONS_PER_ROW(x) (gnome_icon_list_get_items_per_line (GNOME_ICON_LIST(ILIST_FROM_SW(x->icons)))) #define mi_getch() fprintf (stderr, "mi_getch is not implemented in this port\n") #define frontend_run_dlg(x) gtkrundlg_event (x) diff --git a/gnome/gmain.h b/gnome/gmain.h index d905283e7..9bf004408 100644 --- a/gnome/gmain.h +++ b/gnome/gmain.h @@ -38,6 +38,7 @@ void layout_panel_gone (WPanel *panel); void gtkrundlg_event (Dlg_head *h); int gmc_open (file_entry *fe); int gmc_open_filename (char *fname, GList *args); +int gmc_edit_filename (char *fname); int gmc_view (char *filename, int start_line); void x_show_info (WInfo *info, struct my_statfs *s, struct stat *b); void x_create_info (Dlg_head *h, widget_data parent, WInfo *info); diff --git a/gnome/gpopup.c b/gnome/gpopup.c index 4a4de8bc9..ed4c1b081 100644 --- a/gnome/gpopup.c +++ b/gnome/gpopup.c @@ -77,7 +77,10 @@ panel_action_view_unfiltered (GtkWidget *widget, WPanel *panel) static void panel_action_edit (GtkWidget *widget, WPanel *panel) { - edit_cmd (panel); + char *full = g_concat_dir_and_file (panel->cwd, selection (panel)->fname); + + gmc_edit_filename (full); + g_free (full); } /* Pops up the icon properties pages */ @@ -395,7 +398,8 @@ mime_command_from_desktop_icon (GtkMenuItem *item, char *filename) { char *action; int movedir; - char *key, *mime_type, *val; + char *key; + const char *mime_type, *val;; action = get_label_text (item); key = gtk_object_get_user_data (GTK_OBJECT (item)); @@ -419,7 +423,7 @@ create_regexp_actions (GtkWidget *menu, WPanel *panel, GnomeUIInfo *a_uiinfo; int i; GtkSignalFunc regex_callback; - char *mime_type; + const char *mime_type; GList *keys, *l; GnomeUIInfo uiinfo[] = { { 0 }, diff --git a/gnome/gscreen.c b/gnome/gscreen.c index 54a842d5a..5816e7c93 100644 --- a/gnome/gscreen.c +++ b/gnome/gscreen.c @@ -78,10 +78,6 @@ GtkWidget *drag_multiple = NULL; GtkWidget *drag_multiple_ok = NULL; -#define CLIST_FROM_SW(panel_list) GTK_CLIST (GTK_BIN (panel_list)->child) -#define ILIST_FROM_SW(panel_list) GNOME_ICON_LIST (GTK_BIN (panel_list)->child) - - void repaint_file (WPanel *panel, int file_index, int move, int attr, int isstatus) { diff --git a/po/mc.pot b/po/mc.pot index a79596296..a4719b629 100644 --- a/po/mc.pot +++ b/po/mc.pot @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 1999-02-10 18:27-0600\n" +"POT-Creation-Date: 1999-02-11 20:35-0600\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -153,7 +153,7 @@ msgid "Set Filter" msgstr "" #: gnome/gcmd.c:578 gnome/gcmd.c:619 gnome/gcmd.c:624 gnome/gcmd.c:628 -#: gnome/gscreen.c:2570 +#: gnome/gscreen.c:2512 msgid "Show all files" msgstr "" @@ -181,7 +181,7 @@ msgstr "" msgid "Enter extra arguments:" msgstr "" -#: gnome/gdesktop.c:350 gnome/gdesktop.c:1566 +#: gnome/gdesktop.c:350 gnome/gdesktop.c:1534 msgid "Warning" msgstr "" @@ -190,16 +190,16 @@ msgstr "" msgid "Could not open %s; will not have desktop icons" msgstr "" -#: gnome/gdesktop.c:1532 +#: gnome/gdesktop.c:1500 msgid "Trashcan" msgstr "" #. Create the link to the user's home directory so that he will have an icon -#: gnome/gdesktop.c:1562 +#: gnome/gdesktop.c:1530 msgid "Home directory" msgstr "" -#: gnome/gdesktop.c:1567 +#: gnome/gdesktop.c:1535 #, c-format msgid "Could not symlink %s to %s; will not have initial desktop icons." msgstr "" @@ -545,51 +545,51 @@ msgstr "" msgid "File/New/Directory..." msgstr "" -#: gnome/gpopup.c:222 gnome/gpopup.c:223 +#: gnome/gpopup.c:226 gnome/gpopup.c:227 msgid "Properties" msgstr "" -#: gnome/gpopup.c:225 gnome/gpopup.c:226 +#: gnome/gpopup.c:229 gnome/gpopup.c:230 msgid "Open" msgstr "" -#: gnome/gpopup.c:227 +#: gnome/gpopup.c:231 msgid "Open with" msgstr "" -#: gnome/gpopup.c:228 src/screen.c:2287 src/screen.c:2317 +#: gnome/gpopup.c:232 src/screen.c:2287 src/screen.c:2317 msgid "View" msgstr "" -#: gnome/gpopup.c:229 +#: gnome/gpopup.c:233 msgid "View unfiltered" msgstr "" -#: gnome/gpopup.c:230 src/screen.c:2288 src/screen.c:2318 src/view.c:1996 +#: gnome/gpopup.c:234 src/screen.c:2288 src/screen.c:2318 src/view.c:1996 msgid "Edit" msgstr "" -#: gnome/gpopup.c:232 +#: gnome/gpopup.c:236 msgid "Link..." msgstr "" -#: gnome/gpopup.c:233 +#: gnome/gpopup.c:237 msgid "Symlink..." msgstr "" -#: gnome/gpopup.c:234 +#: gnome/gpopup.c:238 msgid "Edit symlink..." msgstr "" -#: gnome/gpopup.c:241 gnome/gpopup.c:252 +#: gnome/gpopup.c:245 gnome/gpopup.c:256 msgid "Move/rename..." msgstr "" -#: gnome/gpopup.c:242 gnome/gpopup.c:253 +#: gnome/gpopup.c:246 gnome/gpopup.c:257 msgid "Copy..." msgstr "" -#: gnome/gpopup.c:243 gnome/gpopup.c:255 gtkedit/editwidget.c:1067 +#: gnome/gpopup.c:247 gnome/gpopup.c:259 gtkedit/editwidget.c:1067 #: src/screen.c:2292 src/screen.c:2322 msgid "Delete" msgstr "" @@ -763,7 +763,7 @@ msgstr "" msgid "Title" msgstr "" -#: gnome/gprop.c:521 gnome/gscreen.c:2340 +#: gnome/gprop.c:521 gnome/gscreen.c:2305 msgid "Icon" msgstr "" @@ -771,164 +771,164 @@ msgstr "" msgid "Select icon" msgstr "" -#: gnome/gscreen.c:1612 +#: gnome/gscreen.c:1577 msgid "All files" msgstr "" -#: gnome/gscreen.c:1614 +#: gnome/gscreen.c:1579 msgid "Archives and compressed files" msgstr "" -#: gnome/gscreen.c:1616 +#: gnome/gscreen.c:1581 msgid "RPM/DEB files" msgstr "" -#: gnome/gscreen.c:1618 +#: gnome/gscreen.c:1583 msgid "Text/Document files" msgstr "" -#: gnome/gscreen.c:1620 +#: gnome/gscreen.c:1585 msgid "HTML and SGML files" msgstr "" -#: gnome/gscreen.c:1622 +#: gnome/gscreen.c:1587 msgid "Postscript and PDF files" msgstr "" -#: gnome/gscreen.c:1624 +#: gnome/gscreen.c:1589 msgid "Spreadsheet files" msgstr "" -#: gnome/gscreen.c:1626 +#: gnome/gscreen.c:1591 msgid "Image files" msgstr "" -#: gnome/gscreen.c:1629 +#: gnome/gscreen.c:1594 msgid "Video/animation files" msgstr "" -#: gnome/gscreen.c:1631 +#: gnome/gscreen.c:1596 msgid "Audio files" msgstr "" -#: gnome/gscreen.c:1633 +#: gnome/gscreen.c:1598 msgid "C program files" msgstr "" -#: gnome/gscreen.c:1635 +#: gnome/gscreen.c:1600 msgid "C++ program files" msgstr "" -#: gnome/gscreen.c:1637 +#: gnome/gscreen.c:1602 msgid "Objective-C program files" msgstr "" -#: gnome/gscreen.c:1639 +#: gnome/gscreen.c:1604 msgid "Scheme program files" msgstr "" -#: gnome/gscreen.c:1641 +#: gnome/gscreen.c:1606 msgid "Assembler program files" msgstr "" -#: gnome/gscreen.c:1643 +#: gnome/gscreen.c:1608 msgid "Misc. program files" msgstr "" -#: gnome/gscreen.c:1645 +#: gnome/gscreen.c:1610 msgid "Font files" msgstr "" -#: gnome/gscreen.c:1772 +#: gnome/gscreen.c:1737 #, c-format msgid "Search: %s" msgstr "" -#: gnome/gscreen.c:1782 +#: gnome/gscreen.c:1747 #, c-format msgid "%s bytes in %d file" msgstr "" -#: gnome/gscreen.c:1782 +#: gnome/gscreen.c:1747 #, c-format msgid "%s bytes in %d files" msgstr "" -#: gnome/gscreen.c:1808 src/screen.c:677 +#: gnome/gscreen.c:1773 src/screen.c:677 msgid "" msgstr "" -#: gnome/gscreen.c:1862 +#: gnome/gscreen.c:1827 msgid "Filter" msgstr "" -#: gnome/gscreen.c:2340 +#: gnome/gscreen.c:2305 msgid "Switch view to an Icon view" msgstr "" -#: gnome/gscreen.c:2342 +#: gnome/gscreen.c:2307 msgid "Brief" msgstr "" -#: gnome/gscreen.c:2342 +#: gnome/gscreen.c:2307 msgid "Switch view to show just file name and type" msgstr "" -#: gnome/gscreen.c:2344 +#: gnome/gscreen.c:2309 msgid "Detailed" msgstr "" -#: gnome/gscreen.c:2344 +#: gnome/gscreen.c:2309 msgid "Switch view to show detailed file statistics" msgstr "" -#: gnome/gscreen.c:2346 +#: gnome/gscreen.c:2311 msgid "Custom" msgstr "" -#: gnome/gscreen.c:2346 +#: gnome/gscreen.c:2311 msgid "Switch view to show custom determined statistics." msgstr "" -#: gnome/gscreen.c:2351 +#: gnome/gscreen.c:2316 msgid "Back" msgstr "" -#: gnome/gscreen.c:2351 +#: gnome/gscreen.c:2316 msgid "Go to the previously visited directory" msgstr "" -#: gnome/gscreen.c:2353 +#: gnome/gscreen.c:2318 msgid "Up" msgstr "" -#: gnome/gscreen.c:2353 +#: gnome/gscreen.c:2318 msgid "Go up a level in the directory heirarchy" msgstr "" -#: gnome/gscreen.c:2355 +#: gnome/gscreen.c:2320 msgid "Forward" msgstr "" -#: gnome/gscreen.c:2355 +#: gnome/gscreen.c:2320 msgid "Go to the next directory" msgstr "" -#: gnome/gscreen.c:2358 +#: gnome/gscreen.c:2323 msgid "Home" msgstr "" -#: gnome/gscreen.c:2358 +#: gnome/gscreen.c:2323 msgid "Go to your home directory" msgstr "" -#: gnome/gscreen.c:2515 +#: gnome/gscreen.c:2457 msgid "Location:" msgstr "" #: gnome/gtools.c:104 src/boxes.c:138 src/boxes.c:278 src/boxes.c:378 #: src/boxes.c:466 src/boxes.c:646 src/boxes.c:728 src/boxes.c:783 -#: src/boxes.c:894 src/filegui.c:807 src/find.c:151 src/layout.c:369 +#: src/boxes.c:894 src/filegui.c:807 src/find.c:171 src/layout.c:369 #: src/option.c:144 src/wtools.c:289 src/wtools.c:561 msgid "&Ok" msgstr "" @@ -1538,7 +1538,7 @@ msgstr "" #: src/achown.c:71 src/boxes.c:139 src/boxes.c:279 src/boxes.c:376 #: src/boxes.c:464 src/boxes.c:644 src/boxes.c:727 src/boxes.c:781 #: src/chmod.c:114 src/chown.c:79 src/cmd.c:856 src/filegui.c:790 -#: src/find.c:151 src/hotlist.c:138 src/hotlist.c:814 src/hotlist.c:911 +#: src/find.c:171 src/hotlist.c:138 src/hotlist.c:814 src/hotlist.c:911 #: src/layout.c:370 src/learn.c:59 src/option.c:145 src/panelize.c:86 #: src/view.c:404 src/wtools.c:111 src/wtools.c:386 src/wtools.c:559 #: src/wtools.c:640 @@ -1778,7 +1778,7 @@ msgstr "" msgid "Running " msgstr "" -#: src/boxes.c:833 src/find.c:671 +#: src/boxes.c:833 src/find.c:716 src/find.c:957 msgid "Stopped" msgstr "" @@ -2855,88 +2855,117 @@ msgid "" " %s " msgstr "" -#: src/find.c:115 +#: src/find.c:130 msgid "&Suspend" msgstr "" -#: src/find.c:116 +#: src/find.c:131 msgid "Con&tinue" msgstr "" -#: src/find.c:117 +#: src/find.c:132 msgid "&Chdir" msgstr "" -#: src/find.c:118 +#: src/find.c:133 msgid "&Again" msgstr "" -#: src/find.c:119 +#: src/find.c:134 msgid "&Quit" msgstr "" -#: src/find.c:120 src/panelize.c:89 +#: src/find.c:135 src/panelize.c:89 msgid "Pane&lize" msgstr "" -#: src/find.c:121 +#: src/find.c:136 msgid "&View - F3" msgstr "" -#: src/find.c:122 +#: src/find.c:137 msgid "&Edit - F4" msgstr "" -#: src/find.c:150 +#: src/find.c:170 msgid "Start at:" msgstr "" -#: src/find.c:150 +#: src/find.c:170 msgid "Filename:" msgstr "" -#: src/find.c:150 +#: src/find.c:170 msgid "Content: " msgstr "" -#: src/find.c:151 src/main.c:1199 src/main.c:1220 +#: src/find.c:171 src/main.c:1199 src/main.c:1220 msgid "&Tree" msgstr "" -#: src/find.c:203 +#: src/find.c:223 msgid "Find File" msgstr "" -#: src/find.c:430 +#: src/find.c:452 #, c-format msgid "Grepping in %s" msgstr "" -#: src/find.c:468 +#: src/find.c:490 msgid " Find/read " msgstr "" -#: src/find.c:468 +#: src/find.c:490 msgid " Problem reading from child " msgstr "" -#: src/find.c:515 +#: src/find.c:537 msgid "Finished" msgstr "" -#: src/find.c:539 src/view.c:1465 +#: src/find.c:561 src/view.c:1465 #, c-format msgid "Searching %s" msgstr "" -#: src/find.c:671 src/find.c:788 +#: src/find.c:714 src/find.c:754 +msgid "Suspend" +msgstr "" + +#: src/find.c:714 +msgid "Restart" +msgstr "" + +#: src/find.c:716 src/find.c:818 src/find.c:957 src/find.c:1053 msgid "Searching" msgstr "" -#: src/find.c:763 +#: src/find.c:747 src/find.c:1028 msgid "Find file" msgstr "" +#. The buttons +#: src/find.c:752 +msgid "Change to this directory" +msgstr "" + +#: src/find.c:753 +msgid "Search again" +msgstr "" + +#: src/find.c:758 +msgid "View this file" +msgstr "" + +#: src/find.c:759 +msgid "Edit this file" +msgstr "" + +#: src/find.c:760 +msgid "Send the results to a Panel" +msgstr "" + #: src/fixhlp.c:171 msgid "Usage: fixhlp \n" msgstr "" diff --git a/src/find.c b/src/find.c index a556b1777..1c0d73459 100644 --- a/src/find.c +++ b/src/find.c @@ -101,6 +101,7 @@ static GtkWidget *g_clist; static GtkWidget *g_start_stop; static GtkWidget *g_start_stop_label; static GtkWidget *g_view, *g_edit; +static GtkWidget *g_panelize; static int current_row; static int idle_tag; static int stop; @@ -689,6 +690,15 @@ find_do_again (void) gtk_main_quit (); } +static void +find_do_panelize (void) +{ + gtk_idle_remove (idle_tag); + idle_tag = 0; + stop = B_PANELIZE; + gtk_main_quit ();} + + static void find_start_stop (void) { @@ -747,7 +757,8 @@ setup_gui (void) g_view = gtk_button_new_with_label (_("View this file")); g_edit = gtk_button_new_with_label (_("Edit this file")); - + g_panelize = gtk_button_new_with_label (_("Send the results to a Panel")); + box = gtk_hbox_new (TRUE, GNOME_PAD); gtk_box_pack_start (GTK_BOX (box), b1, 0, 1, 0); gtk_box_pack_start (GTK_BOX (box), b2, 0, 1, 0); @@ -782,6 +793,8 @@ setup_gui (void) GTK_OBJECT (b2), "clicked", GTK_SIGNAL_FUNC (find_do_again), NULL); gtk_signal_connect ( GTK_OBJECT (g_start_stop), "clicked", GTK_SIGNAL_FUNC (find_start_stop), NULL); + gtk_signal_connect ( + GTK_OBJECT (g_panelize), "clicked", GTK_SIGNAL_FUNC (find_do_panelize), NULL); /* * View/edit buttons @@ -808,7 +821,8 @@ setup_gui (void) g_status_label, TRUE, TRUE, GNOME_PAD_SMALL); gtk_widget_show_all (g_find_dlg); - gtk_widget_hide (box2); + gtk_widget_hide (find_do_view); + gtk_widget_hide (find_do_edit); } static int