[gnome-shell] search: remove SearchProvider base class



commit d0902fa28b59caa2245f189f79fa647715c7ca84
Author: Cosimo Cecchi <cosimoc gnome org>
Date:   Thu Dec 6 14:10:44 2012 -0500

    search: remove SearchProvider base class
    
    This is causing more confusion than anything else these days; the DBus
    API is properly documented now and that's what people are expected to
    use, the rest are implementation details we're not interested in
    exposing.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=681797

 js/ui/appDisplay.js   |    6 +--
 js/ui/remoteSearch.js |    6 ++-
 js/ui/search.js       |  117 -------------------------------------------------
 js/ui/wanda.js        |    3 -
 4 files changed, 5 insertions(+), 127 deletions(-)
---
diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js
index 9520832..90168c4 100644
--- a/js/ui/appDisplay.js
+++ b/js/ui/appDisplay.js
@@ -19,7 +19,6 @@ const IconGrid = imports.ui.iconGrid;
 const Main = imports.ui.main;
 const Overview = imports.ui.overview;
 const PopupMenu = imports.ui.popupMenu;
-const Search = imports.ui.search;
 const Tweener = imports.ui.tweener;
 const Workspace = imports.ui.workspace;
 const Params = imports.misc.params;
@@ -312,10 +311,8 @@ const AllAppDisplay = new Lang.Class({
 
 const AppSearchProvider = new Lang.Class({
     Name: 'AppSearchProvider',
-    Extends: Search.SearchProvider,
 
     _init: function() {
-        this.parent();
         this._appSys = Shell.AppSystem.get_default();
         this.id = 'applications';
     },
@@ -370,10 +367,9 @@ const AppSearchProvider = new Lang.Class({
 
 const SettingsSearchProvider = new Lang.Class({
     Name: 'SettingsSearchProvider',
-    Extends: Search.SearchProvider,
 
     _init: function() {
-        this.parent(Gio.DesktopAppInfo.new('gnome-control-center.desktop'));
+        this.appInfo = Gio.DesktopAppInfo.new('gnome-control-center.desktop');
         this._appSys = Shell.AppSystem.get_default();
     },
 
diff --git a/js/ui/remoteSearch.js b/js/ui/remoteSearch.js
index 2c954d3..9ac6972 100644
--- a/js/ui/remoteSearch.js
+++ b/js/ui/remoteSearch.js
@@ -167,7 +167,6 @@ function remoteProvidersLoaded(loadState) {
 
 const RemoteSearchProvider = new Lang.Class({
     Name: 'RemoteSearchProvider',
-    Extends: Search.SearchProvider,
 
     _init: function(appInfo, dbusName, dbusPath, proxyType) {
         if (!proxyType)
@@ -176,7 +175,10 @@ const RemoteSearchProvider = new Lang.Class({
         this.proxy = new proxyType(Gio.DBus.session,
                 dbusName, dbusPath, Lang.bind(this, this._onProxyConstructed));
 
-        this.parent(appInfo, true);
+        this.appInfo = appInfo;
+        this.id = appInfo.get_id();
+        this.isRemoteProvider = true;
+
         this._cancellable = new Gio.Cancellable();
     },
 
diff --git a/js/ui/search.js b/js/ui/search.js
index b64de7e..4b94ba5 100644
--- a/js/ui/search.js
+++ b/js/ui/search.js
@@ -21,123 +21,6 @@ const MatchType = {
     PREFIX: 2
 };
 
-/**
- * SearchProvider:
- *
- * Subclass this object to add a new result type
- * to the search system, then call registerProvider()
- * in SearchSystem with an instance.
- * Search is asynchronous and uses the
- * getInitialResultSet()/getSubsearchResultSet() methods.
- */
-const SearchProvider = new Lang.Class({
-    Name: 'SearchProvider',
-
-    _init: function(appInfo, isRemoteProvider) {
-        this.appInfo = appInfo;
-        this.searchSystem = null;
-        this.isRemoteProvider = !!isRemoteProvider;
-        this.canLaunchSearch = false;
-
-        if (this.appInfo)
-            this.id = this.appInfo.get_id();
-    },
-
-    /**
-     * getInitialResultSet:
-     * @terms: Array of search terms, treated as logical AND
-     *
-     * Called when the user first begins a search (most likely
-     * therefore a single term of length one or two), or when
-     * a new term is added.
-     *
-     * Should "return" an array of result identifier strings representing
-     * items which match the given search terms.  This
-     * is expected to be a substring match on the metadata for a given
-     * item.  Ordering of returned results is up to the discretion of the provider,
-     * but you should follow these heruistics:
-     *
-     *  * Put items where the term matches multiple criteria (e.g. name and
-     *    description) before single matches
-     *  * Put items which match on a prefix before non-prefix substring matches
-     *
-     * We say "return" above, but in order to make the query asynchronous, use
-     * this.searchSystem.pushResults();. The return value should be ignored.
-     *
-     * This function should be fast; do not perform unindexed full-text searches
-     * or network queries.
-     */
-    getInitialResultSet: function(terms) {
-        throw new Error('Not implemented');
-    },
-
-    /**
-     * getSubsearchResultSet:
-     * @previousResults: Array of item identifiers
-     * @newTerms: Updated search terms
-     *
-     * Called when a search is performed which is a "subsearch" of
-     * the previous search; i.e. when every search term has exactly
-     * one corresponding term in the previous search which is a prefix
-     * of the new term.
-     *
-     * This allows search providers to only search through the previous
-     * result set, rather than possibly performing a full re-query.
-     *
-     * Similar to getInitialResultSet, the return value for this will
-     * be ignored; use this.searchSystem.pushResults();.
-     */
-    getSubsearchResultSet: function(previousResults, newTerms) {
-        throw new Error('Not implemented');
-    },
-
-    /**
-     * getResultMetas:
-     * @ids: Result identifier strings
-     *
-     * Call callback with array of objects with 'id', 'name', (both strings) and
-     * 'createIcon' (function(size) returning a Clutter.Texture) properties
-     * with the same number of members as @ids
-     */
-    getResultMetas: function(ids, callback) {
-        throw new Error('Not implemented');
-    },
-
-    /**
-     * createResultActor:
-     * @resultMeta: Object with result metadata
-     * @terms: Array of search terms, should be used for highlighting
-     *
-     * Search providers may optionally override this to render a
-     * particular serch result in a custom fashion.  The default
-     * implementation will show the icon next to the name.
-     */
-    createResultActor: function(resultMeta, terms) {
-        return null;
-    },
-
-    /**
-     * activateResult:
-     * @id: Result identifier string
-     *
-     * Called when the user chooses a given result.
-     */
-    activateResult: function(id) {
-        throw new Error('Not implemented');
-    },
-
-    /**
-     * launchSearch:
-     * @terms: Current search terms
-     *
-     * Called when the user clicks the provider icon.
-     */
-    launchSearch: function(terms) {
-        throw new Error('Not implemented');
-    }
-});
-Signals.addSignalMethods(SearchProvider.prototype);
-
 const SearchSystem = new Lang.Class({
     Name: 'SearchSystem',
 
diff --git a/js/ui/wanda.js b/js/ui/wanda.js
index 692efd4..98b964c 100644
--- a/js/ui/wanda.js
+++ b/js/ui/wanda.js
@@ -10,7 +10,6 @@ const IconGrid = imports.ui.iconGrid;
 const Layout = imports.ui.layout;
 const Main = imports.ui.main;
 const Panel = imports.ui.panel;
-const Search = imports.ui.search;
 
 // we could make these gsettings
 const FISH_NAME = 'wanda';
@@ -132,10 +131,8 @@ function capitalize(str) {
 
 const WandaSearchProvider = new Lang.Class({
     Name: 'WandaSearchProvider',
-    Extends: Search.SearchProvider,
 
     _init: function() {
-        this.parent();
         this.id = 'wanda';
     },
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]