| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/gtk_signal.h" | 9 #include "app/gtk_signal.h" |
| 10 #include "app/l10n_util.h" | 10 #include "app/l10n_util.h" |
| (...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 259 } | 259 } |
| 260 | 260 |
| 261 void SelectFileDialogImpl::AddFilters(GtkFileChooser* chooser) { | 261 void SelectFileDialogImpl::AddFilters(GtkFileChooser* chooser) { |
| 262 for (size_t i = 0; i < file_types_.extensions.size(); ++i) { | 262 for (size_t i = 0; i < file_types_.extensions.size(); ++i) { |
| 263 GtkFileFilter* filter = NULL; | 263 GtkFileFilter* filter = NULL; |
| 264 for (size_t j = 0; j < file_types_.extensions[i].size(); ++j) { | 264 for (size_t j = 0; j < file_types_.extensions[i].size(); ++j) { |
| 265 if (!file_types_.extensions[i][j].empty()) { | 265 if (!file_types_.extensions[i][j].empty()) { |
| 266 if (!filter) | 266 if (!filter) |
| 267 filter = gtk_file_filter_new(); | 267 filter = gtk_file_filter_new(); |
| 268 std::string mime_type = mime_util::GetFileMimeType( | 268 std::string mime_type = mime_util::GetFileMimeType( |
| 269 FilePath("name.").Append(file_types_.extensions[i][j])); | 269 FilePath("name").ReplaceExtension(file_types_.extensions[i][j])); |
| 270 gtk_file_filter_add_mime_type(filter, mime_type.c_str()); | 270 gtk_file_filter_add_mime_type(filter, mime_type.c_str()); |
| 271 } | 271 } |
| 272 } | 272 } |
| 273 // We didn't find any non-empty extensions to filter on. | 273 // We didn't find any non-empty extensions to filter on. |
| 274 if (!filter) | 274 if (!filter) |
| 275 continue; | 275 continue; |
| 276 | 276 |
| 277 // The description vector may be blank, in which case we are supposed to | 277 // The description vector may be blank, in which case we are supposed to |
| 278 // use some sort of default description based on the filter. | 278 // use some sort of default description based on the filter. |
| 279 if (i < file_types_.extension_description_overrides.size()) { | 279 if (i < file_types_.extension_description_overrides.size()) { |
| 280 gtk_file_filter_set_name(filter, UTF16ToUTF8( | 280 gtk_file_filter_set_name(filter, UTF16ToUTF8( |
| 281 file_types_.extension_description_overrides[i]).c_str()); | 281 file_types_.extension_description_overrides[i]).c_str()); |
| 282 } else { | 282 } else { |
| 283 // There is no system default filter description so we use | 283 // There is no system default filter description so we use |
| 284 // the MIME type itself if the description is blank. | 284 // the MIME type itself if the description is blank. |
| 285 std::string mime_type = mime_util::GetFileMimeType( | 285 std::string mime_type = mime_util::GetFileMimeType( |
| 286 FilePath("name.").Append(file_types_.extensions[i][0])); | 286 FilePath("name").ReplaceExtension(file_types_.extensions[i][0])); |
| 287 gtk_file_filter_set_name(filter, mime_type.c_str()); | 287 gtk_file_filter_set_name(filter, mime_type.c_str()); |
| 288 } | 288 } |
| 289 | 289 |
| 290 gtk_file_chooser_add_filter(chooser, filter); | 290 gtk_file_chooser_add_filter(chooser, filter); |
| 291 if (i == file_type_index_ - 1) | 291 if (i == file_type_index_ - 1) |
| 292 gtk_file_chooser_set_filter(chooser, filter); | 292 gtk_file_chooser_set_filter(chooser, filter); |
| 293 } | 293 } |
| 294 | 294 |
| 295 // Add the *.* filter, but only if we have added other filters (otherwise it | 295 // Add the *.* filter, but only if we have added other filters (otherwise it |
| 296 // is implied). | 296 // is implied). |
| (...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 578 GdkPixbuf* pixbuf = gdk_pixbuf_new_from_file_at_size(filename, kPreviewWidth, | 578 GdkPixbuf* pixbuf = gdk_pixbuf_new_from_file_at_size(filename, kPreviewWidth, |
| 579 kPreviewHeight, NULL); | 579 kPreviewHeight, NULL); |
| 580 g_free(filename); | 580 g_free(filename); |
| 581 if (pixbuf) { | 581 if (pixbuf) { |
| 582 gtk_image_set_from_pixbuf(GTK_IMAGE(preview_), pixbuf); | 582 gtk_image_set_from_pixbuf(GTK_IMAGE(preview_), pixbuf); |
| 583 g_object_unref(pixbuf); | 583 g_object_unref(pixbuf); |
| 584 } | 584 } |
| 585 gtk_file_chooser_set_preview_widget_active(GTK_FILE_CHOOSER(chooser), | 585 gtk_file_chooser_set_preview_widget_active(GTK_FILE_CHOOSER(chooser), |
| 586 pixbuf ? TRUE : FALSE); | 586 pixbuf ? TRUE : FALSE); |
| 587 } | 587 } |
| OLD | NEW |