r3254 - software/ui/src

Miriam Ruiz baby-guest at alioth.debian.org
Fri Jul 6 15:28:01 UTC 2007


Author: baby-guest
Date: 2007-07-06 15:28:00 +0000 (Fri, 06 Jul 2007)
New Revision: 3254

Added:
   software/ui/src/filter.cpp
   software/ui/src/filter.h
Modified:
   software/ui/src/Makefile.am
   software/ui/src/games.cpp
   software/ui/src/pkgbrowser.cpp
Log:
Added support of visual filtering of packages



Modified: software/ui/src/Makefile.am
===================================================================
--- software/ui/src/Makefile.am	2007-07-06 05:27:26 UTC (rev 3253)
+++ software/ui/src/Makefile.am	2007-07-06 15:28:00 UTC (rev 3254)
@@ -8,6 +8,7 @@
 	Engine.cpp \
 	ui.cpp \
 	pkgbrowser.cpp \
+	filter.cpp \
 	windows.cpp \
 	games.cpp
 games_LDFLAGS = $(LIBEPT_LIBS) `fltk-config --ldflags --use-images`

Added: software/ui/src/filter.cpp
===================================================================
--- software/ui/src/filter.cpp	                        (rev 0)
+++ software/ui/src/filter.cpp	2007-07-06 15:28:00 UTC (rev 3254)
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2007  Miriam Ruiz <little_miry at yahoo.es>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+#include "filter.h"
+
+int PackageFilter::TagValue(const Tag &tag)
+{
+	//const char *facet_name = tag.facet().name().c_str();
+	//const char *tag_name = tag.name().c_str();
+	if (BlackTag(tag)) return PackageFilter::Black;
+	if (RedTag(tag)) return PackageFilter::Red;
+	if (YellowTag(tag)) return PackageFilter::Yellow;
+	if (GreenTag(tag)) return PackageFilter::Green;
+	return PackageFilter::Unknown;
+}
+
+int PackageFilter::TagsValue(const TagSet &tags)
+{
+	for (TagSet::const_iterator i = tags.begin(); i != tags.end(); ++i)
+	{
+		//const char *facet_name = i->facet().name().c_str();
+		//const char *tag_name = i->name().c_str();
+	}
+
+	return PackageFilter::Unknown;
+}

Added: software/ui/src/filter.h
===================================================================
--- software/ui/src/filter.h	                        (rev 0)
+++ software/ui/src/filter.h	2007-07-06 15:28:00 UTC (rev 3254)
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2007  Miriam Ruiz <little_miry at yahoo.es>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+#ifndef _games_filter_h
+#define _games_filter_h
+
+#include <set>
+#include <ept/debtags/tag.h>
+
+class PackageFilter
+{
+public:
+	enum {
+		Green = 1, // Green light, the tag/package is safe
+		Unknown,   // The calification for the tag/package is unknown
+		Yellow,    // Yellow light, handle with care
+		Red,       // Green light, the tag/package is definitely unsafe
+		Black,     // Mayday, mayday, the tag/package might be really dangerous!
+	};
+
+	typedef ept::debtags::Tag Tag;
+	typedef std::set<Tag> TagSet;
+
+	bool GreenTag(const Tag &tag) { return false; } 
+	bool YellowTag(const Tag &tag) { return false; } 
+	bool RedTag(const Tag &tag) { return false; } 
+	bool BlackTag(const Tag &tag) { return false; } 
+	int TagValue(const Tag &tag);
+	int TagsValue(const TagSet &tags);
+};
+
+#endif

Modified: software/ui/src/games.cpp
===================================================================
--- software/ui/src/games.cpp	2007-07-06 05:27:26 UTC (rev 3253)
+++ software/ui/src/games.cpp	2007-07-06 15:28:00 UTC (rev 3254)
@@ -30,6 +30,7 @@
 
 #include "common.h"
 #include "ui.h"
+#include "filter.h"
 
 #include "Environment.h"
 #include "GamesOptions.h"
@@ -196,16 +197,44 @@
 	}
 	ui.InterfaceSelection->value(newIdx);
 
+	PackageFilter filter;
+
 	const std::vector<Result> res = engine.results();
 	for (vector<Result>::const_iterator i = res.begin();
 			i != res.end(); ++i)
 	{
 		PackageRecord rec(engine.apt().rawRecord(i->name));
 		char* userData = pkgString(rec.package());
-		string desc = rec.package() + "\t" + rec.shortDescription();
+
+		// Available Colors: FL_BLACK, FL_BLUE, FL_CYAN, FL_DARK_BLUE,
+		// FL_DARK_CYAN, FL_DARK_GREEN FL_DARK_MAGENTA, FL_DARK_RED,
+		// FL_DARK_YELLOW, FL_GREEN, FL_MAGENTA, FL_RED, FL_WHITE, FL_YELLOW
+
+		Fl_Color bk(FL_WHITE);
+		Fl_Color fr(FL_BLACK);
+		set<Tag> tags = ui.engine->debtags().getTagsOfItem((const char *)rec.package().c_str());
+		switch (filter.TagsValue(tags))
+		{
+			case PackageFilter::Green:
+				fr = FL_BLACK; bk = FL_GREEN; break;
+			case PackageFilter::Yellow:
+				fr = FL_BLACK; bk = FL_YELLOW; break;
+			case PackageFilter::Red:
+				fr = FL_WHITE; bk = FL_RED; break;
+			case PackageFilter::Black:
+				fr = FL_WHITE; bk = FL_BLACK; break;
+			default:
+				fr = FL_BLACK; bk = FL_WHITE; break;
+		}
+
+		char fmtstr[16];
+		snprintf(fmtstr, sizeof(fmtstr), "@B%d at C%d at .", bk, fr);
+
+		string desc = string(fmtstr) + rec.package() + "\t" + 
+			string(fmtstr) + rec.shortDescription();
 		if (engine.popcon().hasData())
 		{
-			desc += "\t";
+			desc += "\t" + string(fmtstr);
 			char stars[16];
 			snprintf(stars, sizeof(stars), "%%%d/8/1;",
 				(int)rintf(log(i->popcon) * 100 / log(engine.popconLocalMax())));

Modified: software/ui/src/pkgbrowser.cpp
===================================================================
--- software/ui/src/pkgbrowser.cpp	2007-07-06 05:27:26 UTC (rev 3253)
+++ software/ui/src/pkgbrowser.cpp	2007-07-06 15:28:00 UTC (rev 3254)
@@ -31,6 +31,7 @@
 #include "pkgbrowser.h"
 #include "ui.h"
 #include "common.h"
+#include "filter.h"
 
 #include "Environment.h"
 #include "GamesOptions.h"
@@ -162,11 +163,33 @@
 			ui->DebTagsBrowser->add(_("@B12 at C7@b at .FACET\t at B12@C7 at b@.TAG"));
 
 			set<Tag> tags = ui->engine->debtags().getTagsOfItem((const char *)data);
+			PackageFilter filter;
 			char *tag_txt = new char[512];
 			for (set<Tag>::const_iterator i = tags.begin(); i != tags.end(); ++i)
 			{
-				snprintf(tag_txt, 512, "%s\t%s",
+				// Available Colors: FL_BLACK, FL_BLUE, FL_CYAN, FL_DARK_BLUE,
+				// FL_DARK_CYAN, FL_DARK_GREEN FL_DARK_MAGENTA, FL_DARK_RED,
+				// FL_DARK_YELLOW, FL_GREEN, FL_MAGENTA, FL_RED, FL_WHITE, FL_YELLOW
+
+				Fl_Color bk(FL_WHITE);
+				Fl_Color fr(FL_BLACK);
+				switch (filter.TagValue(*i))
+				{
+					case PackageFilter::Green:
+						fr = FL_BLACK; bk = FL_GREEN; break;
+					case PackageFilter::Yellow:
+						fr = FL_BLACK; bk = FL_YELLOW; break;
+					case PackageFilter::Red:
+						fr = FL_WHITE; bk = FL_RED; break;
+					case PackageFilter::Black:
+						fr = FL_WHITE; bk = FL_BLACK; break;
+					default:
+						fr = FL_BLACK; bk = FL_WHITE; break;
+				}
+				snprintf(tag_txt, 512, "@B%d at C%d at .%s\t at B%d at C%d at .%s",
+					bk, fr,
 					gettext(i->facet().shortDescription().c_str()),
+					bk, fr,
 					gettext(i->shortDescription().c_str())
 				);
 				ui->DebTagsBrowser->add(tag_txt);




More information about the Pkg-games-commits mailing list