diff options
author | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-20 19:42:19 +0000 |
---|---|---|
committer | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-20 19:42:19 +0000 |
commit | 88f9822ec3e513a19be297e43bcd34cbe233a658 (patch) | |
tree | f03ba75ca1900b1d59d322cc27c9c9b6fa7b7e54 /chrome/browser/tabs | |
parent | 7992883b810d2e6b1570ebc04a9049edab02e733 (diff) | |
download | chromium_src-88f9822ec3e513a19be297e43bcd34cbe233a658.zip chromium_src-88f9822ec3e513a19be297e43bcd34cbe233a658.tar.gz chromium_src-88f9822ec3e513a19be297e43bcd34cbe233a658.tar.bz2 |
Re-landing this. Originally landed as http://codereview.chromium.org/1001003 but reverted due to reliability crashes.
Re-landing so I can see what those crashes are. Please do not revert without informing me.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/1655010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45065 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/tabs')
-rw-r--r-- | chrome/browser/tabs/tab_strip_model.cc | 26 | ||||
-rw-r--r-- | chrome/browser/tabs/tab_strip_model.h | 11 | ||||
-rw-r--r-- | chrome/browser/tabs/tab_strip_model_unittest.cc | 2 |
3 files changed, 37 insertions, 2 deletions
diff --git a/chrome/browser/tabs/tab_strip_model.cc b/chrome/browser/tabs/tab_strip_model.cc index b5095a2..b8c52b2 100644 --- a/chrome/browser/tabs/tab_strip_model.cc +++ b/chrome/browser/tabs/tab_strip_model.cc @@ -574,11 +574,25 @@ bool TabStripModel::IsContextMenuCommandEnabled( return delegate_->CanRestoreTab(); case CommandTogglePinned: return true; - case CommandBookmarkAllTabs: { + case CommandBookmarkAllTabs: return delegate_->CanBookmarkAllTabs(); - } + case CommandUseVerticalTabs: + return true; + default: + NOTREACHED(); + } + return false; +} + +bool TabStripModel::IsContextMenuCommandChecked( + int context_index, + ContextMenuCommand command_id) const { + switch (command_id) { + case CommandUseVerticalTabs: + return delegate()->UseVerticalTabs(); default: NOTREACHED(); + break; } return false; } @@ -655,6 +669,14 @@ void TabStripModel::ExecuteContextMenuCommand( delegate_->BookmarkAllTabs(); break; } + case CommandUseVerticalTabs: { + UserMetrics::RecordAction( + UserMetricsAction("TabContextMenu_UseVerticalTabs"), + profile_); + + delegate()->ToggleUseVerticalTabs(); + break; + } default: NOTREACHED(); } diff --git a/chrome/browser/tabs/tab_strip_model.h b/chrome/browser/tabs/tab_strip_model.h index 427fb6e..90b4419 100644 --- a/chrome/browser/tabs/tab_strip_model.h +++ b/chrome/browser/tabs/tab_strip_model.h @@ -223,6 +223,12 @@ class TabStripModelDelegate { // Creates a bookmark folder containing a bookmark for all open tabs. virtual void BookmarkAllTabs() = 0; + + // Returns true if the vertical tabstrip presentation should be used. + virtual bool UseVerticalTabs() const = 0; + + // Toggles the use of the vertical tabstrip. + virtual void ToggleUseVerticalTabs() = 0; }; //////////////////////////////////////////////////////////////////////////////// @@ -547,6 +553,7 @@ class TabStripModel : public NotificationObserver { CommandRestoreTab, CommandTogglePinned, CommandBookmarkAllTabs, + CommandUseVerticalTabs, CommandLast }; @@ -554,6 +561,10 @@ class TabStripModel : public NotificationObserver { bool IsContextMenuCommandEnabled(int context_index, ContextMenuCommand command_id) const; + // Returns true if the specified command is checked. + bool IsContextMenuCommandChecked(int context_index, + ContextMenuCommand command_id) const; + // Performs the action associated with the specified command for the given // TabStripModel index |context_index|. void ExecuteContextMenuCommand(int context_index, diff --git a/chrome/browser/tabs/tab_strip_model_unittest.cc b/chrome/browser/tabs/tab_strip_model_unittest.cc index 451cc81..44c56e6 100644 --- a/chrome/browser/tabs/tab_strip_model_unittest.cc +++ b/chrome/browser/tabs/tab_strip_model_unittest.cc @@ -71,6 +71,8 @@ class TabStripDummyDelegate : public TabStripModelDelegate { virtual bool CanCloseContentsAt(int index) { return can_close_ ; } virtual bool CanBookmarkAllTabs() const { return false; } virtual void BookmarkAllTabs() {} + virtual bool UseVerticalTabs() const { return false; } + virtual void ToggleUseVerticalTabs() {} private: // A dummy TabContents we give to callers that expect us to actually build a |