diff options
| author | raveit65 <[email protected]> | 2018-09-17 09:25:41 +0200 | 
|---|---|---|
| committer | raveit65 <[email protected]> | 2018-09-17 09:25:41 +0200 | 
| commit | fb9a3cfdd0eeac12044ed2f317f51193bf44b6e0 (patch) | |
| tree | 693f79455c95beab1880a58e5c5827b56f5b2515 | |
| parent | 0d7a79dc7d4e1cef1a69005f58d0c29872c3d55c (diff) | |
| download | caja-fb9a3cfdd0eeac12044ed2f317f51193bf44b6e0.tar.bz2 caja-fb9a3cfdd0eeac12044ed2f317f51193bf44b6e0.tar.xz  | |
Revert "add option to open multiple uri in tabs at startup"
This reverts commit fd1f45f308e418d1c1b44b968ce83f77e4f8a689.
| -rw-r--r-- | src/caja-application.c | 157 | ||||
| -rw-r--r-- | src/caja-application.h | 3 | ||||
| -rw-r--r-- | src/caja-freedesktop-dbus.c | 6 | ||||
| -rw-r--r-- | src/caja-window.c | 10 | ||||
| -rw-r--r-- | src/caja-window.h | 2 | 
5 files changed, 55 insertions, 123 deletions
diff --git a/src/caja-application.c b/src/caja-application.c index c2ce7b2a..5f460d3d 100644 --- a/src/caja-application.c +++ b/src/caja-application.c @@ -268,89 +268,25 @@ open_window (CajaApplication *application,  }  static void -open_tabs (CajaApplication *application, -         GFile **locations, guint n_files, GdkScreen *screen, const char *geometry, gboolean browser_window) -{ -    CajaApplication *self = CAJA_APPLICATION (application); -    CajaWindow *window; -    gchar *uri = NULL; - -    /*monitor the preference to use browser or spatial windows */ -    /*connect before trying to read or this preference won't be read by root or after change*/ -     g_signal_connect_swapped(caja_preferences, "changed::"CAJA_PREFERENCES_ALWAYS_USE_BROWSER, -                      G_CALLBACK (caja_empty_callback_to_ensure_read), -                      self); - -    if (browser_window ||g_settings_get_boolean (caja_preferences, CAJA_PREFERENCES_ALWAYS_USE_BROWSER)) { -        window = caja_application_create_navigation_window (application, -                 screen); -    } else { -        window = caja_application_get_spatial_window (application, -                 NULL, -                 NULL, -                 locations[0], -                 screen, -                 NULL); -    } - -    /* open all locations */ -    uri = g_file_get_uri (locations[0]); -    g_debug("Opening new tab at uri %s\n", uri); -    caja_window_go_to (window, locations[0]); -    for (int i = 1; i< n_files;i++){ -        /* open tabs in reverse order because each  -         * tab is opened before the previous one */ -        guint tab = n_files-i; -        uri = g_file_get_uri (locations[tab]); -        g_debug("Opening new tab at uri %s\n", uri); -        if(i==0){ -            caja_window_go_to (window, locations[tab]); -        }else{ -            caja_window_go_to_tab (window, locations[tab]); -        }  -    } - -    if (geometry != NULL && !gtk_widget_get_visible (GTK_WIDGET (window))) { -        /* never maximize windows opened from shell if a -         * custom geometry has been requested. -         */ -        gtk_window_unmaximize (GTK_WINDOW (window)); -        eel_gtk_window_set_initial_geometry_from_string (GTK_WINDOW (window), -                                 geometry, -                                 APPLICATION_WINDOW_MIN_WIDTH, -                                 APPLICATION_WINDOW_MIN_HEIGHT, -                                 FALSE); -    } - -    g_free (uri); -} - -static void  open_windows (CajaApplication *application,            GFile **files,            GdkScreen *screen,            const char *geometry, -          guint n_files, -          gboolean browser_window, -          gboolean open_in_tabs) +          guint len, +          gboolean browser_window)  {      guint i;      if (files == NULL || files[0] == NULL) {          /* Open a window pointing at the default location. */ -        open_window (application, NULL, screen, geometry, browser_window); +        open_window (application, NULL, screen, geometry, browser_window );      } else { -        if(open_in_tabs){ -            /* Open one window with one tab at each requested location */ -            open_tabs (application, files, n_files, screen, geometry, browser_window); -        }else{ -            /* Open windows at each requested location. */  -            i = 0; -            while (i < n_files ){  -                open_window (application, files[i], screen, geometry, browser_window); -                i++ ; -            } -        } +        /* Open windows at each requested location. */  +        i = 0; +        while (i < len ){  +              open_window (application, files[i], screen, geometry, browser_window); +               i++ ; +         }      }  } @@ -362,41 +298,40 @@ caja_application_open (GApplication *app,  {      CajaApplication *self = CAJA_APPLICATION (app);      gboolean browser_window = FALSE; -    gboolean open_in_tabs = FALSE;      const gchar *geometry = NULL;      const char splitter = '=';      g_debug ("Open called on the GApplication instance; %d files", n_files); -    /*Check if local command line passed --browser, --geometry or --tabs*/ -    if (strlen(options) > 0){ -        gchar** splitedOptions = g_strsplit (options, &splitter, 3); -        sscanf(splitedOptions[0], "%d", &browser_window); -        if(strcmp(splitedOptions[1], "NULL")!=0){ -            geometry = splitedOptions[1]; +    /*Check if local command line passed --browser or --geometry */ +    if (strcmp(options,"") != 0 ){ +        if (g_str_match_string ("browser", +                    options, +                    FALSE) == TRUE){ +            browser_window = TRUE; +            geometry = strchr(options, splitter); +        } +        else { +        geometry = options;          } -        sscanf(splitedOptions[2], "%d", &open_in_tabs); -          /*Reset this or 3ed and later invocations will use same  	     *geometry even if the user has resized open window           */          self->priv->geometry = NULL;      } -   open_windows (self, files, +    open_windows (self, files,                gdk_screen_get_default (),                geometry,                n_files, -              browser_window, -              open_in_tabs); +              browser_window);  }  void  caja_application_open_location (CajaApplication *application,                                  GFile *location,                                  GFile *selection, -                                const char *startup_id, -                                const gboolean open_in_tabs) +                                const char *startup_id)  {      CajaWindow *window;      GList *sel_list = NULL; @@ -408,8 +343,7 @@ caja_application_open_location (CajaApplication *application,      }      caja_window_slot_open_location_full (caja_window_get_active_slot (window), location, -                                         open_in_tabs, CAJA_WINDOW_OPEN_FLAG_NEW_WINDOW,  -                                         sel_list, NULL, NULL); +                                         0, CAJA_WINDOW_OPEN_FLAG_NEW_WINDOW, sel_list, NULL, NULL);      if (sel_list != NULL) {          caja_file_list_free (sel_list); @@ -2063,7 +1997,6 @@ caja_application_local_command_line (GApplication *application,      gboolean perform_self_check = FALSE;      gboolean version = FALSE;      gboolean browser_window = FALSE; -    gboolean open_in_tabs = FALSE;      gboolean kill_shell = FALSE;      const gchar *autostart_id;      gboolean no_default_window = FALSE; @@ -2089,8 +2022,6 @@ caja_application_local_command_line (GApplication *application,            N_("Do not manage the desktop (ignore the preference set in the preferences dialog)."), NULL },          { "force-desktop", '\0', 0, G_OPTION_ARG_NONE, &self->priv->force_desktop,            N_("Manage the desktop regardless of set preferences or environment (on new startup only)"), NULL }, -        { "tabs", 't', 0, G_OPTION_ARG_NONE, &open_in_tabs,  -          N_("Open URI in tabs."), NULL },          { "browser", '\0', 0, G_OPTION_ARG_NONE, &browser_window,             N_("Open a browser window."), NULL },          { "quit", 'q', 0, G_OPTION_ARG_NONE, &kill_shell,  @@ -2120,7 +2051,7 @@ caja_application_local_command_line (GApplication *application,      if (autostart_id != NULL && *autostart_id != '\0') {          no_default_window = TRUE;          self->priv->autostart = TRUE; -    } +        }      argv = *arguments; @@ -2178,6 +2109,7 @@ caja_application_local_command_line (GApplication *application,          caja_application_load_session (self);      } +      GFile **files;      gint idx, len; @@ -2211,19 +2143,30 @@ caja_application_local_command_line (GApplication *application,          files[1] = NULL;      } -    /*Set up --geometry, --browser and --tabs options  */ +    /*Set up geometry and --browser options  */      /*Invoke "Open" to create new windows */ -    if (len > 0)  { -        gchar* concatOptions = g_malloc0(64); -        if(self->priv->geometry==NULL){ -            g_snprintf(concatOptions, 64, "%d=NULL=%d", browser_window, open_in_tabs); -        }else{ -            g_snprintf(concatOptions, 64, "%d=%s=%d", browser_window,  self->priv->geometry, open_in_tabs); + +    if (browser_window == TRUE && self->priv->geometry == NULL){ + +        if (len > 0)  { +        g_application_open (application, files, len, "browser");          } -        g_application_open (application, files, len, concatOptions); -        g_free(concatOptions); -    } else { -        g_print("non\n"); +    } + +    else if (browser_window == FALSE && self->priv->geometry != NULL){ +        if (len > 0)  { +            g_application_open (application, files, len, self->priv->geometry); +        } +    } + +    else if (browser_window == TRUE && self->priv->geometry != NULL){ +        if (len > 0)  { +            g_application_open (application, files, len, (g_strconcat("browser","=", +                                self->priv->geometry, NULL))); +        } +    } + +    else {          if (len > 0)  {              g_application_open (application, files, len, "");          } @@ -2477,11 +2420,11 @@ caja_application_quit_mainloop (GApplication *app)  static void  caja_application_class_init (CajaApplicationClass *class)  { -    GObjectClass *object_class; +        GObjectClass *object_class;      GApplicationClass *application_class; -    object_class = G_OBJECT_CLASS (class); -    object_class->finalize = caja_application_finalize; +        object_class = G_OBJECT_CLASS (class); +        object_class->finalize = caja_application_finalize;      application_class = G_APPLICATION_CLASS (class);      application_class->startup = caja_application_startup; diff --git a/src/caja-application.h b/src/caja-application.h index 7a191e90..e48b4ba1 100644 --- a/src/caja-application.h +++ b/src/caja-application.h @@ -100,7 +100,6 @@ void caja_application_close_all_spatial_windows  (void);  void caja_application_open_location (CajaApplication *application,          GFile *location,          GFile *selection, -        const char *startup_id, -        const gboolean open_in_tabs); +        const char *startup_id);  #endif /* CAJA_APPLICATION_H */ diff --git a/src/caja-freedesktop-dbus.c b/src/caja-freedesktop-dbus.c index 28544f63..5047a58c 100644 --- a/src/caja-freedesktop-dbus.c +++ b/src/caja-freedesktop-dbus.c @@ -75,10 +75,10 @@ skeleton_handle_show_items_cb (CajaFreedesktopFileManager1 *object,          parent = g_file_get_parent (file);          if (parent != NULL) { -            caja_application_open_location (application, parent, file, startup_id, 0); +            caja_application_open_location (application, parent, file, startup_id);              g_object_unref (parent);          } else { -            caja_application_open_location (application, file, NULL, startup_id, 0); +            caja_application_open_location (application, file, NULL, startup_id);          }          g_object_unref (file); @@ -105,7 +105,7 @@ skeleton_handle_show_folders_cb (CajaFreedesktopFileManager1 *object,          file = g_file_new_for_uri (uris[i]); -        caja_application_open_location (application, file, NULL, startup_id, 0); +        caja_application_open_location (application, file, NULL, startup_id);          g_object_unref (file);      } diff --git a/src/caja-window.c b/src/caja-window.c index 52676dd5..098160ce 100644 --- a/src/caja-window.c +++ b/src/caja-window.c @@ -235,14 +235,6 @@ caja_window_go_to (CajaWindow *window, GFile *location)  }  void -caja_window_go_to_tab (CajaWindow *window, GFile *location) -{ -    g_return_if_fail (CAJA_IS_WINDOW (window)); - -    caja_window_slot_go_to (window->details->active_pane->active_slot, location, TRUE); -} - -void  caja_window_go_to_full (CajaWindow *window,                          GFile                 *location,                          CajaWindowGoToCallback callback, @@ -274,7 +266,7 @@ caja_window_new_tab (CajaWindow *window)      CajaWindowSlot *current_slot;      CajaWindowSlot *new_slot;      CajaWindowOpenFlags flags; -    GFile *location = NULL; +    GFile *location;      int new_slot_position;      char *scheme; diff --git a/src/caja-window.h b/src/caja-window.h index 4ee50835..b5ea219c 100644 --- a/src/caja-window.h +++ b/src/caja-window.h @@ -136,8 +136,6 @@ void             caja_window_disconnect_content_view (CajaWindow    *window,  void             caja_window_go_to                (CajaWindow    *window,          GFile             *location); -void             caja_window_go_to_tab                (CajaWindow    *window, -        GFile             *location);  void             caja_window_go_to_full           (CajaWindow    *window,          GFile             *location,          CajaWindowGoToCallback callback,  | 
