OLD | NEW |
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <gtk/gtk.h> | 5 #include <gtk/gtk.h> |
6 #include <map> | 6 #include <map> |
7 #include <set> | 7 #include <set> |
8 | 8 |
| 9 #include "app/l10n_util.h" |
9 #include "base/file_path.h" | 10 #include "base/file_path.h" |
10 #include "base/logging.h" | 11 #include "base/logging.h" |
11 #include "base/string_util.h" | 12 #include "base/string_util.h" |
12 #include "base/sys_string_conversions.h" | 13 #include "base/sys_string_conversions.h" |
13 #include "chrome/browser/shell_dialogs.h" | 14 #include "chrome/browser/shell_dialogs.h" |
14 #include "chrome/common/l10n_util.h" | |
15 #include "grit/generated_resources.h" | 15 #include "grit/generated_resources.h" |
16 | 16 |
17 // Implementation of SelectFileDialog that shows a Gtk common dialog for | 17 // Implementation of SelectFileDialog that shows a Gtk common dialog for |
18 // choosing a file or folder. | 18 // choosing a file or folder. |
19 // This acts as a modal dialog. Ideally we want to only act modally for the | 19 // This acts as a modal dialog. Ideally we want to only act modally for the |
20 // parent window and allow other toplevel chrome windows to still function while | 20 // parent window and allow other toplevel chrome windows to still function while |
21 // the dialog is showing, but we need the GtkWindowGroup or something similar to | 21 // the dialog is showing, but we need the GtkWindowGroup or something similar to |
22 // get that, and that API is only available in more recent versions of GTK. | 22 // get that, and that API is only available in more recent versions of GTK. |
23 // TODO(port): fix modality: crbug.com/8727 | 23 // TODO(port): fix modality: crbug.com/8727 |
24 class SelectFileDialogImpl : public SelectFileDialog { | 24 class SelectFileDialogImpl : public SelectFileDialog { |
(...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
352 GSList* filenames = gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(dialog)); | 352 GSList* filenames = gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(dialog)); |
353 std::vector<FilePath> filenames_fp; | 353 std::vector<FilePath> filenames_fp; |
354 for (GSList* iter = filenames; iter != NULL; iter = g_slist_next(iter)) { | 354 for (GSList* iter = filenames; iter != NULL; iter = g_slist_next(iter)) { |
355 filenames_fp.push_back(FilePath(static_cast<char*>(iter->data))); | 355 filenames_fp.push_back(FilePath(static_cast<char*>(iter->data))); |
356 g_free(iter->data); | 356 g_free(iter->data); |
357 } | 357 } |
358 | 358 |
359 g_slist_free(filenames); | 359 g_slist_free(filenames); |
360 dialog_impl->MultiFilesSelected(dialog, filenames_fp); | 360 dialog_impl->MultiFilesSelected(dialog, filenames_fp); |
361 } | 361 } |
OLD | NEW |