[SCM] Development for GoFind! branch, master, updated. 7a26870d3c44f18c9563186e50027f8a51412c97

Miriam Ruiz miriam at debian.org
Tue May 5 23:24:13 UTC 2009


The following commit has been merged in the master branch:
commit 7a26870d3c44f18c9563186e50027f8a51412c97
Author: Miriam Ruiz <miriam at debian.org>
Date:   Wed May 6 01:28:55 2009 +0200

    Move application template selection out of main program

diff --git a/gofind.cpp b/gofind.cpp
index 089de8e..6670303 100644
--- a/gofind.cpp
+++ b/gofind.cpp
@@ -108,49 +108,19 @@ int main(int argc, const char* argv[])
 		PackageData pkgdata;
 
 		if (wibble::str::endsWith(argv[0], "learn") || opts.gowhere->stringValue() == "learn")
-		{
-			pkgdata.mainFacet = "field";
-			pkgdata.secondaryFacet = "interface";
-			pkgdata.globalFilter = Xapian::Query(Xapian::Query::OP_AND,
-									Xapian::Query(Xapian::Query::OP_OR,
-										Xapian::Query("XTrole::documentation"),
-										Xapian::Query("XTrole::program")),
-									Xapian::Query("XTuse::learning"));
-		} else if (wibble::str::endsWith(argv[0], "admin") || opts.gowhere->stringValue() == "admin") {
-			pkgdata.mainFacet = "admin";
-			pkgdata.secondaryFacet = "interface";
-			pkgdata.globalFilter = Xapian::Query(Xapian::Query::OP_OR,
-										Xapian::Query("XTrole::documentation"),
-										Xapian::Query("XTrole::program"));
-		} else if (wibble::str::endsWith(argv[0], "net") || opts.gowhere->stringValue() == "net") {
-			pkgdata.mainFacet = "network";
-			pkgdata.secondaryFacet = "interface";
-			pkgdata.globalFilter = Xapian::Query(Xapian::Query::OP_OR,
-										Xapian::Query("XTrole::documentation"),
-										Xapian::Query("XTrole::program"));
-		} else if (wibble::str::endsWith(argv[0], "office") || opts.gowhere->stringValue() == "office") {
-			pkgdata.mainFacet = "office";
-			pkgdata.secondaryFacet = "interface";
-			pkgdata.globalFilter = Xapian::Query(Xapian::Query::OP_OR,
-										Xapian::Query("XTrole::documentation"),
-										Xapian::Query("XTrole::program"));
-		} else if (wibble::str::endsWith(argv[0], "safe") || opts.gowhere->stringValue() == "safe") {
-			pkgdata.mainFacet = "security";
-			pkgdata.secondaryFacet = "interface";
-			pkgdata.globalFilter = Xapian::Query(Xapian::Query::OP_OR,
-										Xapian::Query("XTrole::documentation"),
-										Xapian::Query("XTrole::program"));
-		} else if (wibble::str::endsWith(argv[0], "web") || opts.gowhere->stringValue() == "web") {
-			pkgdata.mainFacet = "web";
-			pkgdata.secondaryFacet = "interface";
-			pkgdata.globalFilter = Xapian::Query(Xapian::Query::OP_OR,
-										Xapian::Query("XTrole::documentation"),
-										Xapian::Query("XTrole::program"));
-		} else {
-			pkgdata.mainFacet = "game";
-			pkgdata.secondaryFacet = "interface";
-			pkgdata.globalFilter = Xapian::Query("XTrole::program");
-		}
+			pkgdata.AppTemplate("learn");
+		else if (wibble::str::endsWith(argv[0], "admin") || opts.gowhere->stringValue() == "admin")
+			pkgdata.AppTemplate("admin");
+		else if (wibble::str::endsWith(argv[0], "net") || opts.gowhere->stringValue() == "net")
+			pkgdata.AppTemplate("net");
+		else if (wibble::str::endsWith(argv[0], "office") || opts.gowhere->stringValue() == "office")
+			pkgdata.AppTemplate("office");
+		else if (wibble::str::endsWith(argv[0], "safe") || opts.gowhere->stringValue() == "safe")
+			pkgdata.AppTemplate("safe");
+		else if (wibble::str::endsWith(argv[0], "web") || opts.gowhere->stringValue() == "web")
+			pkgdata.AppTemplate("web");
+		else
+			pkgdata.AppTemplate("play");
 
 		if (opts.mainFacet->isSet())
 			pkgdata.mainFacet = opts.mainFacet->stringValue();
diff --git a/pkgdata.cpp b/pkgdata.cpp
index 037b024..65943a7 100644
--- a/pkgdata.cpp
+++ b/pkgdata.cpp
@@ -46,6 +46,57 @@ PackageData::~PackageData()
 {
 }
 
+bool PackageData::AppTemplate(const char *id)
+{
+	if (strcmp(id, "learn") == 0) {
+		mainFacet = "field";
+		secondaryFacet = "interface";
+		globalFilter = Xapian::Query(Xapian::Query::OP_AND,
+			Xapian::Query(Xapian::Query::OP_OR,
+				Xapian::Query("XTrole::documentation"),
+				Xapian::Query("XTrole::program")),
+			Xapian::Query("XTuse::learning"));
+	} else if (strcmp(id, "admin") == 0) {
+		mainFacet = "admin";
+		secondaryFacet = "interface";
+		globalFilter = Xapian::Query(Xapian::Query::OP_OR,
+				Xapian::Query("XTrole::documentation"),
+				Xapian::Query("XTrole::program"));
+	} else if (strcmp(id, "net") == 0) {
+		mainFacet = "network";
+		secondaryFacet = "interface";
+		globalFilter = Xapian::Query(Xapian::Query::OP_OR,
+				Xapian::Query("XTrole::documentation"),
+				Xapian::Query("XTrole::program"));
+	} else if (strcmp(id, "office") == 0) {
+		mainFacet = "office";
+		secondaryFacet = "interface";
+		globalFilter = Xapian::Query(Xapian::Query::OP_OR,
+				Xapian::Query("XTrole::documentation"),
+				Xapian::Query("XTrole::program"));
+	} else if (strcmp(id, "safe") == 0) {
+		mainFacet = "security";
+		secondaryFacet = "interface";
+		globalFilter = Xapian::Query(Xapian::Query::OP_OR,
+				Xapian::Query("XTrole::documentation"),
+				Xapian::Query("XTrole::program"));
+	} else if (strcmp(id, "web") == 0) {
+		mainFacet = "web";
+		secondaryFacet = "interface";
+		globalFilter = Xapian::Query(Xapian::Query::OP_OR,
+				Xapian::Query("XTrole::documentation"),
+				Xapian::Query("XTrole::program"));
+	} else if (strcmp(id, "play") == 0) {
+		mainFacet = "game";
+		secondaryFacet = "interface";
+		globalFilter = Xapian::Query("XTrole::program");
+	} else {
+		return false;
+	}
+
+	return true;
+}
+
 char *PackageData::TagString(const Tag& tag)
 {
 	static std::map<std::string, char*> table;
diff --git a/pkgdata.h b/pkgdata.h
index 68e469b..b2ec76b 100644
--- a/pkgdata.h
+++ b/pkgdata.h
@@ -39,6 +39,8 @@ class PackageData : public Engine
 	typedef ept::debtags::Tag Tag;
 	typedef std::set<Tag> TagSet;
 
+	bool AppTemplate(const char *id);
+
 	char *TagString(const Tag& tag);
 	char *PackageString(const std::string& name);
 	void PrintResults();

-- 
Development for GoFind!



More information about the Pkg-games-commits mailing list