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