summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordavemoore@chromium.org <davemoore@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-28 18:24:09 +0000
committerdavemoore@chromium.org <davemoore@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-28 18:24:09 +0000
commit7c2213757df4f459e51dfa43e14b2fd0720f2559 (patch)
treed571fe0a187bdbd1749a35115941205a5d350b56
parentfe1aceb5d5d27cded352616bf47379fe4afa50b6 (diff)
downloadchromium_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.cc8
-rw-r--r--chrome/browser/views/browser_dialogs.h2
-rw-r--r--chrome/browser/views/bug_report_view.cc63
-rw-r--r--chrome/browser/views/bug_report_view.h2
-rw-r--r--chrome/browser/views/dialog_stubs_gtk.cc4
-rw-r--r--chrome/browser/views/frame/browser_view.cc2
-rwxr-xr-xchrome/chrome_browser.gypi2
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'],