Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6427)

Unified Diff: chrome/browser/ui/app_list/extension_app_item.cc

Issue 29613004: Sync app order for extension items (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/app_list/extension_app_item.cc
diff --git a/chrome/browser/ui/app_list/extension_app_item.cc b/chrome/browser/ui/app_list/extension_app_item.cc
index 07b0c607080eba0a9e3c7bdbb8c019cab611619e..6d1f9aa9e67cda8815dc473cc34145f0e810f99b 100644
--- a/chrome/browser/ui/app_list/extension_app_item.cc
+++ b/chrome/browser/ui/app_list/extension_app_item.cc
@@ -144,6 +144,35 @@ void ExtensionAppItem::UpdateIcon() {
SetIcon(icon, !HasOverlay());
}
+void ExtensionAppItem::Move(const ExtensionAppItem* prev,
+ const ExtensionAppItem* next) {
+ if (!prev && !next)
+ return; // No reordering necessary
+
+ ExtensionService* service =
+ extensions::ExtensionSystem::Get(profile_)->extension_service();
+ ExtensionSorting* sorting = service->extension_prefs()->extension_sorting();
+
+ syncer::StringOrdinal page;
+ std::string prev_id, next_id;
+ if (!prev) {
+ next_id = next->extension_id();
+ page = sorting->GetPageOrdinal(next_id);
+ } else if (!next) {
+ prev_id = prev->extension_id();
+ page = sorting->GetPageOrdinal(prev_id);
+ } else {
+ prev_id = prev->extension_id();
+ page = sorting->GetPageOrdinal(prev_id);
+ // Only set |next_id| if on the same page, otherwise just insert after prev.
+ if (page.Equals(sorting->GetPageOrdinal(next->extension_id())))
+ next_id = next->extension_id();
+ }
+ service->extension_prefs()->SetAppDraggedByUser(extension_id_);
+ sorting->SetPageOrdinal(extension_id_, page);
+ service->OnExtensionMoved(extension_id_, prev_id, next_id);
+}
+
const Extension* ExtensionAppItem::GetExtension() const {
const ExtensionService* service =
extensions::ExtensionSystem::Get(profile_)->extension_service();
« no previous file with comments | « chrome/browser/ui/app_list/extension_app_item.h ('k') | chrome/browser/ui/app_list/extension_app_model_builder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698