diff options
author | davemoore@chromium.org <davemoore@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-12-28 18:24:09 +0000 |
---|---|---|
committer | davemoore@chromium.org <davemoore@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-12-28 18:24:09 +0000 |
commit | 7c2213757df4f459e51dfa43e14b2fd0720f2559 (patch) | |
tree | d571fe0a187bdbd1749a35115941205a5d350b56 | |
parent | fe1aceb5d5d27cded352616bf47379fe4afa50b6 (diff) | |
download | chromium_src-7c2213757df4f459e51dfa43e14b2fd0720f2559.zip chromium_src-7c2213757df4f459e51dfa43e14b2fd0720f2559.tar.gz chromium_src-7c2213757df4f459e51dfa43e14b2fd0720f2559.tar.bz2 |
Adjust the menu items available in cros
Bug: 28054
Test: None
Review URL: http://codereview.chromium.org/516016
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35302 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/page_menu_model.cc | 8 | ||||
-rw-r--r-- | chrome/browser/views/browser_dialogs.h | 2 | ||||
-rw-r--r-- | chrome/browser/views/bug_report_view.cc | 63 | ||||
-rw-r--r-- | chrome/browser/views/bug_report_view.h | 2 | ||||
-rw-r--r-- | chrome/browser/views/dialog_stubs_gtk.cc | 4 | ||||
-rw-r--r-- | chrome/browser/views/frame/browser_view.cc | 2 | ||||
-rwxr-xr-x | chrome/chrome_browser.gypi | 2 |
7 files changed, 56 insertions, 27 deletions
diff --git a/chrome/browser/page_menu_model.cc b/chrome/browser/page_menu_model.cc index 6c88d4f..e064d79 100644 --- a/chrome/browser/page_menu_model.cc +++ b/chrome/browser/page_menu_model.cc @@ -20,15 +20,19 @@ PageMenuModel::PageMenuModel(menus::SimpleMenuModel::Delegate* delegate, } void PageMenuModel::Build() { +#if !defined(OS_CHROMEOS) AddItemWithStringId(IDC_CREATE_SHORTCUTS, IDS_CREATE_SHORTCUTS); AddSeparator(); +#endif AddItemWithStringId(IDC_CUT, IDS_CUT); AddItemWithStringId(IDC_COPY, IDS_COPY); AddItemWithStringId(IDC_PASTE, IDS_PASTE); AddSeparator(); AddItemWithStringId(IDC_FIND, IDS_FIND); +#if !defined(OS_CHROMEOS) AddItemWithStringId(IDC_SAVE_PAGE, IDS_SAVE_PAGE); AddItemWithStringId(IDC_PRINT, IDS_PRINT); +#endif AddSeparator(); zoom_menu_model_.reset(new ZoomMenuModel(delegate())); @@ -37,16 +41,12 @@ void PageMenuModel::Build() { encoding_menu_model_.reset(new EncodingMenuModel(browser_)); AddSubMenuWithStringId(IDS_ENCODING_MENU, encoding_menu_model_.get()); -#if !defined(OS_CHROMEOS) AddSeparator(); devtools_menu_model_.reset(new DevToolsMenuModel(delegate())); AddSubMenuWithStringId(IDS_DEVELOPER_MENU, devtools_menu_model_.get()); AddSeparator(); AddItemWithStringId(IDC_REPORT_BUG, IDS_REPORT_BUG); -#else - NOTIMPLEMENTED(); -#endif } //////////////////////////////////////////////////////////////////////////////// diff --git a/chrome/browser/views/browser_dialogs.h b/chrome/browser/views/browser_dialogs.h index 5814da7..feeb2aeb 100644 --- a/chrome/browser/views/browser_dialogs.h +++ b/chrome/browser/views/browser_dialogs.h @@ -35,7 +35,7 @@ class Window; namespace browser { // Shows the "Report a problem with this page" dialog box. See BugReportView. -void ShowBugReportView(views::Widget* parent, +void ShowBugReportView(views::Window* parent, Profile* profile, TabContents* tab); diff --git a/chrome/browser/views/bug_report_view.cc b/chrome/browser/views/bug_report_view.cc index 94b2e0f..a674eae 100644 --- a/chrome/browser/views/bug_report_view.cc +++ b/chrome/browser/views/bug_report_view.cc @@ -6,7 +6,6 @@ #include "app/combobox_model.h" #include "app/l10n_util.h" -#include "app/win_util.h" #include "base/file_version_info.h" #include "base/string_util.h" #include "chrome/browser/bug_report_util.h" @@ -31,6 +30,10 @@ #include "views/window/client_view.h" #include "views/window/window.h" +#if !defined(OS_CHROMEOS) +#include "app/win_util.h" +#endif + using views::ColumnSet; using views::GridLayout; @@ -84,21 +87,25 @@ class BugReportComboBoxModel : public ComboboxModel { namespace browser { // Global "display this dialog" function declared in browser_dialogs.h. -void ShowBugReportView(views::Widget* parent, +void ShowBugReportView(views::Window* parent, Profile* profile, TabContents* tab) { BugReportView* view = new BugReportView(profile, tab); +#if !defined(OS_CHROMEOS) + // TODO(davemoore) implement this for ChromiumOS. derat has code in + // the window manager (snapshot.cc) that we can start with. // Grab an exact snapshot of the window that the user is seeing (i.e. as // rendered--do not re-render, and include windowed plugins). std::vector<unsigned char> *screenshot_png = new std::vector<unsigned char>; - win_util::GrabWindowSnapshot(parent->GetNativeView(), screenshot_png); + win_util::GrabWindowSnapshot(parent->GetNativeWindow(), screenshot_png); // The BugReportView takes ownership of the png data, and will dispose of // it in its destructor. view->set_png_data(screenshot_png); +#endif // Create and show the dialog. - views::Window::CreateChromeWindow(parent->GetNativeView(), gfx::Rect(), + views::Window::CreateChromeWindow(parent->GetNativeWindow(), gfx::Rect(), view)->Show(); } @@ -119,7 +126,7 @@ BugReportView::BugReportView(Profile* profile, TabContents* tab) // We want to use the URL of the current committed entry (the current URL may // actually be the pending one). if (tab->controller().GetActiveEntry()) { - page_url_text_->SetText(UTF8ToWide( + page_url_text_->SetText(UTF8ToUTF16( tab->controller().GetActiveEntry()->url().spec())); } @@ -156,16 +163,24 @@ void BugReportView::SetupControl() { description_label_ = new views::Label( l10n_util::GetString(IDS_BUGREPORT_DESCRIPTION_LABEL)); +#if defined(OS_CHROMEOS) + // TODO(davemoore) Remove this when gtk textfields support multiline. + description_text_ = new views::Textfield; +#else description_text_ = new views::Textfield(views::Textfield::STYLE_MULTILINE); description_text_->SetHeightInLines(kDescriptionLines); +#endif include_page_source_checkbox_ = new views::Checkbox( l10n_util::GetString(IDS_BUGREPORT_INCLUDE_PAGE_SOURCE_CHKBOX)); include_page_source_checkbox_->SetChecked(true); + +#if !defined(OS_CHROMEOS) include_page_image_checkbox_ = new views::Checkbox( l10n_util::GetString(IDS_BUGREPORT_INCLUDE_PAGE_IMAGE_CHKBOX)); include_page_image_checkbox_->SetChecked(true); +#endif // Arranges controls by using GridLayout. const int column_set_id = 0; @@ -211,9 +226,12 @@ void BugReportView::SetupControl() { // layout->SkipColumns(1); // layout->AddView(include_page_source_checkbox_); // layout->AddPaddingRow(0, kRelatedControlVerticalSpacing); - layout->StartRow(0, column_set_id); - layout->SkipColumns(1); - layout->AddView(include_page_image_checkbox_); + if (include_page_image_checkbox_) { + layout->StartRow(0, column_set_id); + layout->SkipColumns(1); + layout->AddView(include_page_image_checkbox_); + } + layout->AddPaddingRow(0, kUnrelatedControlVerticalSpacing); } @@ -235,22 +253,23 @@ void BugReportView::ItemChanged(views::Combobox* combobox, description_text_->SetEnabled(!is_phishing_report); description_text_->SetReadOnly(is_phishing_report); if (is_phishing_report) { - old_report_text_ = description_text_->text(); - description_text_->SetText(std::wstring()); + old_report_text_ = UTF16ToWide(description_text_->text()); + description_text_->SetText(EmptyString16()); } else if (!old_report_text_.empty()) { - description_text_->SetText(old_report_text_); + description_text_->SetText(WideToUTF16Hack(old_report_text_)); old_report_text_.clear(); } include_page_source_checkbox_->SetEnabled(!is_phishing_report); include_page_source_checkbox_->SetChecked(!is_phishing_report); - include_page_image_checkbox_->SetEnabled(!is_phishing_report); - include_page_image_checkbox_->SetChecked(!is_phishing_report); - + if (include_page_image_checkbox_) { + include_page_image_checkbox_->SetEnabled(!is_phishing_report); + include_page_image_checkbox_->SetChecked(!is_phishing_report); + } GetDialogClientView()->UpdateDialogButtons(); } void BugReportView::ContentsChanged(views::Textfield* sender, - const std::wstring& new_contents) { + const string16& new_contents) { } bool BugReportView::HandleKeystroke(views::Textfield* sender, @@ -302,16 +321,22 @@ bool BugReportView::Accept() { if (IsDialogButtonEnabled(MessageBoxFlags::DIALOGBUTTON_OK)) { if (problem_type_ == BugReportUtil::PHISHING_PAGE) BugReportUtil::ReportPhishing(tab_, - WideToUTF8(page_url_text_->text())); + UTF16ToUTF8(page_url_text_->text())); else BugReportUtil::SendReport(profile_, WideToUTF8(page_title_text_->GetText()), problem_type_, - WideToUTF8(page_url_text_->text()), - WideToUTF8(description_text_->text()), + UTF16ToUTF8(page_url_text_->text()), + UTF16ToUTF8(description_text_->text()), +#if defined(OS_CHROMEOS) + NULL, + 0 +#else include_page_image_checkbox_->checked() && png_data_.get() ? reinterpret_cast<const char *>(&((*png_data_.get())[0])) : NULL, - png_data_->size()); + png_data_->size() +#endif + ); } return true; } diff --git a/chrome/browser/views/bug_report_view.h b/chrome/browser/views/bug_report_view.h index aa25bae..b79a823 100644 --- a/chrome/browser/views/bug_report_view.h +++ b/chrome/browser/views/bug_report_view.h @@ -50,7 +50,7 @@ class BugReportView : public views::View, // views::Textfield::Controller implementation: virtual void ContentsChanged(views::Textfield* sender, - const std::wstring& new_contents); + const string16& new_contents); virtual bool HandleKeystroke(views::Textfield* sender, const views::Textfield::Keystroke& key); diff --git a/chrome/browser/views/dialog_stubs_gtk.cc b/chrome/browser/views/dialog_stubs_gtk.cc index 3795689..2c22ae9 100644 --- a/chrome/browser/views/dialog_stubs_gtk.cc +++ b/chrome/browser/views/dialog_stubs_gtk.cc @@ -24,12 +24,14 @@ namespace browser { -void ShowBugReportView(views::Widget* parent, +#if !defined(OS_CHROMEOS) +void ShowBugReportView(views::Window* parent, Profile* profile, TabContents* tab) { // Bug report view hasn't been implemented on gtk yet. NOTIMPLEMENTED(); } +#endif void ShowClearBrowsingDataView(views::Widget* parent, Profile* profile) { diff --git a/chrome/browser/views/frame/browser_view.cc b/chrome/browser/views/frame/browser_view.cc index 8d03e14..73ce4bd8 100644 --- a/chrome/browser/views/frame/browser_view.cc +++ b/chrome/browser/views/frame/browser_view.cc @@ -1106,7 +1106,7 @@ void BrowserView::ShowReportBugDialog() { TabContents* current_tab = browser_->GetSelectedTabContents(); if (!current_tab) return; - browser::ShowBugReportView(GetWidget(), browser_->profile(), current_tab); + browser::ShowBugReportView(GetWindow(), browser_->profile(), current_tab); } void BrowserView::ShowClearBrowsingDataDialog() { diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi index a724c08..9802bdb 100755 --- a/chrome/chrome_browser.gypi +++ b/chrome/chrome_browser.gypi @@ -2351,6 +2351,8 @@ ['exclude', 'browser/gtk/about_chrome_dialog.h'], ['include', 'browser/views/about_chrome_view.cc'], ['include', 'browser/views/about_chrome_view.h'], + ['include', 'browser/views/bug_report_view.cc'], + ['include', 'browser/views/bug_report_view.h'], ['include', 'browser/views/event_utils.cc'], ['include', 'browser/views/event_utils.h'], ['include', 'browser/views/new_browser_window_widget.cc'], |