summaryrefslogtreecommitdiff
path: root/development/feature_plan
authorzecke <zecke>2003-08-22 18:47:14 (UTC)
committer zecke <zecke>2003-08-22 18:47:14 (UTC)
commita8859fac97c0b3255a261221d2b31ebedb56075c (patch) (side-by-side diff)
treeb878e6387d06399839cd5f9b7e1113349364878f /development/feature_plan
parentf4ad258aff432a4b6aff84190d053bbd6e87c490 (diff)
downloadopie-a8859fac97c0b3255a261221d2b31ebedb56075c.zip
opie-a8859fac97c0b3255a261221d2b31ebedb56075c.tar.gz
opie-a8859fac97c0b3255a261221d2b31ebedb56075c.tar.bz2
Add Feature Plan + little desktop add to change the .xml
if you're too lazy to edit it yourself
Diffstat (limited to 'development/feature_plan') (more/less context) (ignore whitespace changes)
-rw-r--r--development/feature_plan/README5
-rw-r--r--development/feature_plan/index.html25
-rw-r--r--development/feature_plan/kde-features.inc283
-rw-r--r--development/feature_plan/new-and-maintained.html47
-rw-r--r--development/feature_plan/opie-1.0-issues.html52
-rw-r--r--development/feature_plan/opie-1.2-features.html47
-rw-r--r--development/feature_plan/opie-1.3-features.html48
-rw-r--r--development/feature_plan/opie-big-screen.html47
-rw-r--r--development/feature_plan/opie-featurelist.xml261
-rw-r--r--development/feature_plan/opie-features.dtd24
10 files changed, 839 insertions, 0 deletions
diff --git a/development/feature_plan/README b/development/feature_plan/README
new file mode 100644
index 0000000..5241aff
--- a/dev/null
+++ b/development/feature_plan/README
@@ -0,0 +1,5 @@
+the xml file contains the featurelist. It's based on the
+KDE version from Cornelius Schumacher
+
+
+I wrote a small gui for easily editing and adding features \ No newline at end of file
diff --git a/development/feature_plan/index.html b/development/feature_plan/index.html
new file mode 100644
index 0000000..4f25087
--- a/dev/null
+++ b/development/feature_plan/index.html
@@ -0,0 +1,25 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+ <head>
+ <title>Opie Development Features, Issues and Release schedules</title>
+ </head>
+
+ <body>
+ <h1>Opie Development Features, Issues and Release schedules and hide out</h1>
+
+ <ul>
+ <li><a href="opie-1.0-issues.html">Opie 1.0.x Issues and Todos</a></li>
+ <li><a href="opie-1.2-features.html">Opie 1.2. The next minor release</a></li>
+ <li><a href="opie-big-screen.html">Opie Big Screen changes for 1.2</a></li>
+ <li><a href="new-and-maintained.html">App Ideas and Maintaining apps. Interested?</a></li>
+ <li><a href="opie-1.3-features.html">Ideas and Issues for the next major release</a></li>
+ </ul>
+
+ <hr>
+ <address><a href="mailto:zecke@handhelds.org">hOlgAr</a></address>
+<!-- Created: Fri Aug 22 20:10:43 CEST 2003 -->
+<!-- hhmts start -->
+Last modified: Fri Aug 22 20:19:03 CEST 2003
+<!-- hhmts end -->
+ </body>
+</html>
diff --git a/development/feature_plan/kde-features.inc b/development/feature_plan/kde-features.inc
new file mode 100644
index 0000000..a1d9b51
--- a/dev/null
+++ b/development/feature_plan/kde-features.inc
@@ -0,0 +1,283 @@
+<?php
+
+/*
+ This file contains the code to generate the KDE feature list.
+
+ Copyright (c) 2003 Cornelius Schumacher <schumacher@kde.org>
+ Copyright (c) 2003 Mario Andres Yepes C <marioy@upb.edu.co>
+
+ 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.
+*/
+
+class KFeatures
+{
+ var $type = 'kdefeatures';
+ var $parentID = null;
+ var $children = array();
+
+ function setParentID($id)
+ {
+ $this->parentID = $id;
+ }
+ function getParentID()
+ {
+ return $this->parentID;
+ }
+ function addChild(&$child)
+ {
+ $this->children[] = &$child;
+ }
+ function getHtml($target, $status)
+ {
+ $out = '';
+ foreach ($this->children as $child) {
+ $out .= $child->getHtml($target, $status);
+ }
+ return $out;
+ }
+
+}
+
+class KCategory extends KFeatures
+{
+
+ var $type = 'category';
+ var $name = '';
+ var $children = array();
+
+ function KCategory($name)
+ {
+ $this->name = $name;
+ }
+ function getHtml($target, $status)
+ {
+ $out = '';
+ foreach ($this->children as $child) {
+ $temp = $child->getHtml( $target, $status);
+ # don't display empty categories
+ if ($child->type == "category" && strlen($temp))
+ {
+ $out .= sprintf("\t<li>%s\t</li>\n", $temp);
+ } else {
+ $out .= $temp;
+ }
+ }
+ if (strlen($out)) {
+ return sprintf("<h2>%s</h2>\n\t<ul>\n%s\t</ul>\n\n",$this->name,$out);
+ }
+ return '';
+ }
+}
+
+class KFeature extends KFeatures
+{
+
+ var $resp_name = array();
+ var $resp_email = array();
+ var $summary = '';
+ var $status = '';
+ var $target = '';
+ var $type = 'feature';
+
+ function KFeature($status, $target)
+ {
+ $this->status = $status;
+ $this->target = $target;
+ }
+ function getStatus()
+ {
+ return $this->status;
+ }
+ function getTarget()
+ {
+ return $this->target;
+ }
+ function setResponsible($name = null, $email = null)
+ {
+ $this->resp_name[] = $name;
+ $this->resp_email[] = $email;
+ }
+ function getResponsible()
+ {
+ # Nobody responsible?
+ if (count($this->resp_name) == 0) return '';
+
+ $out = '<em>';
+ for ($i = 0; $i < count($this->resp_name); $i++) {
+ if ($i > 0) $out .= ', ';
+ if ($this->resp_name[$i]) {
+ $out .= $this->resp_name[$i];
+ }
+ if ($this->resp_name[$i] && $this->resp_email[$i]) $out .= " ";
+ if ($this->resp_email[$i]) {
+ $out .= '&lt;'.$this->resp_email[$i].'&gt;';
+ }
+ }
+ $out .= '</em>';
+ return $out;
+ }
+ function setSummary($summary)
+ {
+ $this->summary .= $summary.' ';
+ }
+ function getHtml($target, $status){
+ if ($this->target == $target && $this->status == $status) {
+ return sprintf("\t\t<li>%s%s</li>\n",$this->summary,$this->getResponsible());
+ }
+ return '';
+ }
+
+}
+
+function startElement($parser, $name, $attrs) {
+ global $tags;
+ global $parentID;
+
+ global $insummary;
+ global $pcdata;
+ global $curtag;
+
+ switch ($name) {
+ case 'FEATURES':
+ $parentID = 0;
+ $obj = new KFeatures();
+ $tags = array($obj);
+
+ $insummary = false;
+ $pcdata = '';
+ $curtag = '';
+ break;
+ case 'CATEGORY':
+ $obj = new KCategory($attrs['NAME']);
+ $obj->setParentID($parentID);
+ $tags[] = $obj;
+ $currentID = count($tags) - 1;
+ $tags[$parentID]->addChild($tags[$currentID]);
+ $parentID = $currentID;
+
+ break;
+ case 'FEATURE':
+ $obj = new KFeature($attrs['STATUS'], $attrs['TARGET']);
+ $obj->setParentID($parentID);
+ $tags[] = $obj;
+ $currentID = count($tags) - 1;
+ $tags[$parentID]->addChild($tags[$currentID]);
+ $parentID = $currentID;
+ break;
+ case 'RESPONSIBLE':
+ $n = count($tags) - 1;
+ $tags[$n]->setResponsible(@$attrs['NAME'], @$attrs['EMAIL']);
+ break;
+ case 'SUMMARY':
+ $insummary = true;
+ $pcdata = '';
+ break;
+ default:
+ if (!$insummary) {
+ break;
+ }
+ $curtag = strtolower($name);
+ $att = '';
+ foreach ($attrs as $k => $v) {
+ $att .= ' '.strtolower($k).'="'.$v.'"';
+ }
+
+ $pcdata .= '<'.$curtag.$att.'>';
+ break;
+ }
+}
+
+function endElement($parser, $name) {
+ global $parentID;
+ global $tags;
+
+ global $curtag;
+ global $pcdata;
+ global $insummary;
+
+ switch ($name) {
+ case "FEATURE":
+ $n = count($tags) - 1;
+ $parentID = $tags[$n]->getParentID();
+ break;
+ case "CATEGORY":
+ $parentID = $tags[$parentID]->getParentID();
+ break;
+ case "SUMMARY":
+ $n = count($tags) - 1;
+ $tags[$n]->setSummary($pcdata);
+
+ $insummary = false;
+ $pcdata = '';
+ break;
+ default:
+ if ($insummary) {
+ $pcdata .= '</'.$curtag.'>';
+ }
+ break;
+ }
+}
+
+function characterData($parser, $data) {
+ global $htmltag;
+ global $tags;
+
+ global $pcdata;
+ global $curtag;
+ global $insummary;
+
+ if (!$insummary) {
+ return;
+ }
+ $pcdata .= htmlspecialchars($data);
+}
+
+function parse( $file ) {
+
+ $xml_parser = xml_parser_create();
+
+ xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, true);
+ xml_set_element_handler($xml_parser, "startElement", "endElement");
+ xml_set_character_data_handler($xml_parser, "characterData");
+
+ if (!($fp = fopen($file, "r"))) {
+ die("could not open XML input");
+ }
+
+
+ while ($data = fread($fp, 4096)) {
+ if (!xml_parse($xml_parser, $data, feof($fp))) {
+ die(sprintf("XML error: %s at line %d",
+ xml_error_string(xml_get_error_code($xml_parser)),
+ xml_get_current_line_number($xml_parser)));
+ }
+ }
+
+ xml_parser_free($xml_parser);
+}
+
+
+
+function printHtml($target, $status)
+{
+ global $tags;
+ if (!is_array($tags)) {
+ die('You must parse the xml file first with parse("filename.xml");');
+ }
+ print($tags[0]->getHtml($target,$status));
+}
+
+
+?>
diff --git a/development/feature_plan/new-and-maintained.html b/development/feature_plan/new-and-maintained.html
new file mode 100644
index 0000000..045f5da
--- a/dev/null
+++ b/development/feature_plan/new-and-maintained.html
@@ -0,0 +1,47 @@
+<p>
+Opie needs <b>YOUR help</b>. Below is a list of application ideas, existing
+unmaintained software and a list of application we would like to port.
+So if you've interest feel free to help us. We would really appreciate it.
+</p>
+
+
+<?php
+
+$version = "NewApps";
+$version2 = "Unmaintained";
+
+require_once "kde-features.inc";
+
+parse("opie-featurelist.xml");
+?>
+
+
+<table width="100%" border="0">
+ <tr><td bgcolor="red"><div align="center">TODO</div></td><td bgcolor="#ffeeee">
+
+<?php echo printHtml($version,'todo') ?>
+<?php echo printHtml($version2,'todo') ?>
+ </td></tr>
+
+ <tr><td bgcolor="yellow"><div align="center">In Progress</div></td><td bgcolor="#ffffee">
+
+<?php echo printHtml($version,'inprogress') ?>
+<?php echo printHtml($version2,'inprogress') ?>
+
+ </td></tr>
+
+<tr><td bgcolor="green"><div align="center">Finished</div></td><td bgcolor="#eeffee">
+
+<?php echo printHtml($version,'done') ?>
+<?php echo printHtml($version2,'done') ?>
+
+</td></tr>
+</table>
+
+
+ <hr>
+ <address><a href="mailto:zecke@handhelds.org">zecke/hOlgAr</a></address>
+<!-- Created: Fri Aug 22 20:00:19 CEST 2003 -->
+<!-- hhmts start -->
+Last modified: Fri Aug 22 20:29:56 CEST 2003
+<!-- hhmts end -->
diff --git a/development/feature_plan/opie-1.0-issues.html b/development/feature_plan/opie-1.0-issues.html
new file mode 100644
index 0000000..dc241f2
--- a/dev/null
+++ b/development/feature_plan/opie-1.0-issues.html
@@ -0,0 +1,52 @@
+
+<p>
+This page contains Issues to be fixed and 'features' we want to implement
+for the Opie 1.0.x release. If you've an issue which needs attention please
+send me the Bug Nr or description and I'll be happy to add it.
+Open tasks are ready to be taken by you. Mail me or opie-devel what you
+want to do and I'll update the site.
+This site also contains completely new apps we would like to implemented or
+ported.
+</p>
+
+<?php
+
+$version = "1.0.2";
+$version2 = "NewApps";
+
+require_once "kde-features.inc";
+
+parse("opie-featurelist.xml");
+?>
+
+
+<table width="100%" border="0">
+ <tr><td bgcolor="red"><div align="center">TODO</div></td><td bgcolor="#ffeeee">
+
+<?php echo printHtml($version,'todo') ?>
+<?php echo printHtml($version2,'todo') ?>
+
+ </td></tr>
+
+ <tr><td bgcolor="yellow"><div align="center">In Progress</div></td><td bgcolor="#ffffee">
+
+<?php echo printHtml($version,'inprogress') ?>
+<?php echo printHtml($version2,'inprogress') ?>
+
+ </td></tr>
+
+<tr><td bgcolor="green"><div align="center">Finished</div></td><td bgcolor="#eeffee">
+
+<?php echo printHtml($version,'done') ?>
+<?php echo printHtml($version2,'done') ?>
+
+</td></tr>
+</table>
+
+
+ <hr>
+ <address><a href="mailto:zecke@handhelds.org">zecke/hOlgAr</a></address>
+<!-- Created: Fri Aug 22 20:00:19 CEST 2003 -->
+<!-- hhmts start -->
+Last modified: Fri Aug 22 20:14:40 CEST 2003
+<!-- hhmts end -->
diff --git a/development/feature_plan/opie-1.2-features.html b/development/feature_plan/opie-1.2-features.html
new file mode 100644
index 0000000..4478bf6
--- a/dev/null
+++ b/development/feature_plan/opie-1.2-features.html
@@ -0,0 +1,47 @@
+<p>
+Opie 1.2 will be the next minor release based on the Opie 1.0 libraries and will
+be compatible to 1.0.x before we will create a new major release. On the way to
+ODP1.0 we will keep on improving Opie, identifying bottlenecks and keep on
+writing new features. This pages contains ideas we've in mind we want to develop
+for Opie 1.2 which is scheduled to be released roughly in January/February 2004.
+If you've your own ideas mail me and if you want to take a feature and
+implement mail me as well. So pick features implement it pick the next one.
+</p>
+
+<?php
+
+$version = "1.2";
+
+require_once "kde-features.inc";
+
+parse("opie-featurelist.xml");
+?>
+
+
+<table width="100%" border="0">
+ <tr><td bgcolor="red"><div align="center">TODO</div></td><td bgcolor="#ffeeee">
+
+<?php echo printHtml($version,'todo') ?>
+
+ </td></tr>
+
+ <tr><td bgcolor="yellow"><div align="center">In Progress</div></td><td bgcolor="#ffffee">
+
+<?php echo printHtml($version,'inprogress') ?>
+
+ </td></tr>
+
+<tr><td bgcolor="green"><div align="center">Finished</div></td><td bgcolor="#eeffee">
+
+<?php echo printHtml($version,'done') ?>
+
+</td></tr>
+</table>
+
+
+ <hr>
+ <address><a href="mailto:zecke@handhelds.org">zecke/hOlgAr</a></address>
+<!-- Created: Fri Aug 22 20:00:19 CEST 2003 -->
+<!-- hhmts start -->
+Last modified: Fri Aug 22 20:22:29 CEST 2003
+<!-- hhmts end -->
diff --git a/development/feature_plan/opie-1.3-features.html b/development/feature_plan/opie-1.3-features.html
new file mode 100644
index 0000000..99dff80
--- a/dev/null
+++ b/development/feature_plan/opie-1.3-features.html
@@ -0,0 +1,48 @@
+<p>
+ODP Opie Development Platform 1.0
+Currently only ideas exist, a wiki page and our experience with the existing
+APIs. The goal is to create for users and developers full featured, extendable,
+fast, effective and runtime efficent Platform. Currently we're collecting issues
+and bottleneck with the existing platform before we start the great overhaul.
+The PIM API, BigScreen Extension, Parts of libopie2 will surely be found inside
+this new API.
+Again if you're developer mail me your problems with the existing framework.
+</p>
+
+<?php
+
+$version = "1.3";
+
+require_once "kde-features.inc";
+
+parse("opie-featurelist.xml");
+?>
+
+
+<table width="100%" border="0">
+ <tr><td bgcolor="red"><div align="center">TODO</div></td><td bgcolor="#ffeeee">
+
+<?php echo printHtml($version,'todo') ?>
+
+ </td></tr>
+
+ <tr><td bgcolor="yellow"><div align="center">In Progress</div></td><td bgcolor="#ffffee">
+
+<?php echo printHtml($version,'inprogress') ?>
+
+ </td></tr>
+
+<tr><td bgcolor="green"><div align="center">Finished</div></td><td bgcolor="#eeffee">
+
+<?php echo printHtml($version,'done') ?>
+
+</td></tr>
+</table>
+
+
+ <hr>
+ <address><a href="mailto:zecke@handhelds.org">zecke/hOlgAr</a></address>
+<!-- Created: Fri Aug 22 20:00:19 CEST 2003 -->
+<!-- hhmts start -->
+Last modified: Fri Aug 22 20:34:13 CEST 2003
+<!-- hhmts end -->
diff --git a/development/feature_plan/opie-big-screen.html b/development/feature_plan/opie-big-screen.html
new file mode 100644
index 0000000..fce258c
--- a/dev/null
+++ b/development/feature_plan/opie-big-screen.html
@@ -0,0 +1,47 @@
+
+<p>
+People started to use Opie on bigger screens. Some design decisions made don't apply
+to bigger screen resolutions. The Opie big screen extension classes are aimed to fill
+this gap. With little modification of the application Opie will get a consitent look
+and feel on small devices to desktop computers.
+Again. Add tasks/features. pick tasks and features mail me.
+</p>
+
+
+<?php
+
+$version = "BigScreen";
+
+require_once "kde-features.inc";
+
+parse("opie-featurelist.xml");
+?>
+
+
+<table width="100%" border="0">
+ <tr><td bgcolor="red"><div align="center">TODO</div></td><td bgcolor="#ffeeee">
+
+<?php echo printHtml($version,'todo') ?>
+
+ </td></tr>
+
+ <tr><td bgcolor="yellow"><div align="center">In Progress</div></td><td bgcolor="#ffffee">
+
+<?php echo printHtml($version,'inprogress') ?>
+
+ </td></tr>
+
+<tr><td bgcolor="green"><div align="center">Finished</div></td><td bgcolor="#eeffee">
+
+<?php echo printHtml($version,'done') ?>
+
+</td></tr>
+</table>
+
+
+ <hr>
+ <address><a href="mailto:zecke@handhelds.org">zecke/hOlgAr</a></address>
+<!-- Created: Fri Aug 22 20:00:19 CEST 2003 -->
+<!-- hhmts start -->
+Last modified: Fri Aug 22 20:27:16 CEST 2003
+<!-- hhmts end -->
diff --git a/development/feature_plan/opie-featurelist.xml b/development/feature_plan/opie-featurelist.xml
new file mode 100644
index 0000000..43f2c77
--- a/dev/null
+++ b/development/feature_plan/opie-featurelist.xml
@@ -0,0 +1,261 @@
+<?xml version = '1.0' encoding = 'iso-8859-1'?>
+<!DOCTYPE features SYSTEM "opie-features.dtd">
+<!--
+
+Copied from KDE and (C) by Cornelius Schumacher
+
+This file serves as central repository of planned KDE features. It's parsed by
+the PHP scripts in "opie-features.inc" which are used by "kde-3.2-features.html" to
+generate HTML versions for the web.
+
+If you plan to add a feature to KDE please add it to this file. A feature can
+have one of three status types: "todo", "inprogress", "done". Please update
+the status from time to time. For a release there shouldn't be any features
+with other states than "done". If you can't complete a feature for a release
+please move the feature to the next release. The "target" attribute specifies
+for which release the feature should be finished. At the moment only the value
+"3.2" is evaluated, but we will add pages showing the features for later
+versions as needed.
+
+Each feature consists of a summary giving a short description what the feature is
+about and one or more responsible persons.
+
+A draft for a DTD of the features file can be found in "kde-features.dtd". Use
+"xmllint -valid -noout kde-features.xml" to validate the xml file against the
+DTD. If there are errors in the XML document they will be shown, if not the
+command will not output anything.
+
+if you have questions or comments please post them to the mailing list or contact
+Cornelius Schumacher <schumacher@kde.org>.
+
+--><features>
+ <category name="Library" >
+ <feature status="todo" target="1.2" >
+ <summary>merge with Qtopia 1.7 library if possible</summary>
+ <responsible email="opie-devel@handhelds.org" name="Open" />
+ </feature>
+ <feature status="todo" target="BigScreen" >
+ <summary>Add show which performs window manager tasks. Places the window right and
+and with the right size for big screens.</summary>
+ <responsible email="opie-devel@handhelds.org" name="Open" />
+ </feature>
+ <feature status="todo" target="1.2" >
+ <summary>Icon Themes</summary>
+ <responsible email="opie-devel@handhelds.org" name="Open" />
+ </feature>
+ </category>
+ <category name="Launcher" >
+ <feature status="todo" target="BigScreen" >
+ <summary>Background picture displayed in different modes</summary>
+ <responsible email="opie-devel@handhelds.org" name="Open" />
+ </feature>
+ </category>
+ <category name="Addressbook" />
+ <category name="All" >
+ <feature status="todo" target="1.2" >
+ <summary>Make all applications use more from libopie and see what is commonly used and create a common implementation if necessary.</summary>
+ <responsible email="opie-devel@handhelds.org" name="Open" />
+ </feature>
+ <feature status="todo" target="BigScreen" >
+ <summary>Kill showMaximized and use QPEApplication function to show the widget. This allows
+both X11 and BigScreen Qt/E to look and behave better on bigger screens</summary>
+ <responsible email="opie-devel@handhelds.org" name="Open" />
+ </feature>
+ <feature status="todo" target="1.2" >
+ <summary>security considerations and flaw search
+
+-Search for memcopies, printf, snprinft, strcat, and replace with their n functions
+-Search for misuse and unguarded usage of system
+-Kiosk mode?</summary>
+ <responsible email="opie-devel@handhelds.org" name="Open" />
+ </feature>
+ </category>
+ <category name="libopie" >
+ <feature status="todo" target="BigScreen" >
+ <summary>Write OSplitter.
+OSplitter is a widget that adjusts itself to the screen size. On small handheld displays it's a OTabWidget and on bigger screen and on resize it will be a real QSplitter if available
+or QHBoxLayout. Currently only horizontal mode is planed.
+
+Primary use: AdvancedFm</summary>
+ <responsible email="opie-devel@handhelds.org" name="Open" />
+ </feature>
+ <feature status="todo" target="BigScreen" >
+ <summary>class OWidgetStack.
+depending on a setting in ODevice it will either be a normal QWidgetStack
+and only one window will be shown.
+Or in big screen mode instead of an embedded window a toplevel window will
+be shown.
+
+Primary use: Todolist View, Addressbook view, Datebook</summary>
+ <responsible email="opie-devel@handhelds.org" name="Open" />
+ </feature>
+ <feature status="todo" target="BigScreen" >
+ <summary>classes OAction/OMenuBar/OToolBar if necessary
+
+
+OAction is a normal QAction but has a priority of the item. Items often accessed
+will have OAction::Always and the least used will have OAction::Seldom. Depending
+on the size of QApplication::Desktop OMenuBar/ToolBar and Popup Menus will
+be adjusted.
+The goal is to have an automatically adjusting menubar. On a desktop Opie apps will
+look like any other desktop app and on a pda we will take care of the space.
+
+On big apps we can make a submenu a new top level menu and provide more toolbars
+and on a small display we can if necessary group all menus into one.
+Still need to figure out how to the Child relation best
+</summary>
+ <responsible email="opie-devel@handhelds.org" name="Open" />
+ </feature>
+ <feature status="todo" target="1.2" >
+ <summary>Rewrite ODevice
+
+Add a level inbetween ODevice public interface and implementation. ODevice is the only who will access ODevicePrivate and we will call into it. This way we can
+add new 'virtual' functions without sacrifing BC and not using the ugly virtual hack</summary>
+ <responsible email="opie-devel@handhelds.org" name="Open" />
+ </feature>
+ <category name="PIM" >
+ <feature status="todo" target="1.2" >
+ <summary>Database switch.
+Rewrite Categories, AppLnk, DocLnk to use a database backend. </summary>
+ <responsible email="opie-devel@handhelds.org" name="Open" />
+ </feature>
+ <feature status="todo" target="1.2" >
+ <summary>Create import and export application for PIM data
+
+Allow easy exporting of all contacts to mobile phone using obex/obexftp</summary>
+ <responsible email="opie-devel@handhelds.org" name="Open" />
+ </feature>
+ <feature status="todo" target="1.2" >
+ <summary>Implement a peer to peer backend locking and communication
+and export a QSignal* to the user of the api to inform for update.
+
+Communicate internal about QCOP on XML send record additionaly
+QPE/PIM/xyz added(backend-name, uid, optional data )
+QPE/PIM/xyz removed(backend-name, uid )
+QPE/PIM/xyz modified(backend-name, uid, optional data )</summary>
+ <responsible email="opie-devel@handhelds.org" name="Open" />
+ </feature>
+ <feature status="todo" target="1.2" >
+ <summary>X-Ref and selection widgets for Database
+
+Connection between address book &amp; calendar, so you can set a calendar
+event location as an address book entry.</summary>
+ <responsible email="opie-devel@handhelds.org" name="Open" />
+ </feature>
+ <feature status="todo" target="1.2" >
+ <summary>Datebook2 based on the ODatebookAccess</summary>
+ <responsible email="opie-devel@handhelds.org" name="Open" />
+ </feature>
+ <feature status="todo" target="1.2" >
+ <summary>Evaluate the Qtopia PIM like painting and attributes in Records. better have the
+attribute inside the access frontend
+
+ access()->property( uid, OTodo::Summary )
+
+</summary>
+ <responsible email="opie-devel@handhelds.org" name="Open" />
+ </feature>
+ <feature status="todo" target="1.2" >
+ <summary>Faster drawing and loading. Common XML mmaped loading
+Custom drawing and only if necessary</summary>
+ <responsible email="opie-devel@handhelds.org" name="Open" />
+ </feature>
+ <feature status="todo" target="1.2" >
+ <summary>Allow multiple backends and split private/public into the backends. Have app for configuring it. WHat is private and what public. Allow moving records between the
+backends</summary>
+ <responsible email="opie-devel@handhelds.org" name="Open" />
+ </feature>
+ <feature status="todo" target="NewApps" >
+ <summary>Opie Outliner based on the OTodoAccess backend</summary>
+ <responsible email="opie-devel@handhelds.org" name="Open" />
+ </feature>
+ <feature status="todo" target="1.2" >
+ <summary>Notes API</summary>
+ <responsible email="opie-devel@handhelds.org" name="Open" />
+ </feature>
+ <feature status="todo" target="1.2" >
+ <summary>better sync applications</summary>
+ <responsible email="opie-devel@handhelds.org" name="Open" />
+ </feature>
+ <feature status="todo" target="1.2" >
+ <summary>more addressbook attributes
+
+Latitude &amp; longitude fields in addressbook entries. (Which could then be
+displayed by GPS/Map programs).
+
+Photos or Icons for address book entries (And calendar entries?).</summary>
+ <responsible email="opie-devel@handhelds.org" name="Open" />
+ </feature>
+ </category>
+ <feature status="todo" target="1.2" >
+ <summary>- reworking personal settings: eg. mail, proxies and other personal settings
+should go to the settings tab and access methods for them to libopie(2)</summary>
+ <responsible email="opie-devel@handhelds.org" name="Open" />
+ </feature>
+ </category>
+ <category name="Qt" >
+ <feature status="todo" target="1.2" >
+ <summary>Move to tslib?</summary>
+ <responsible email="opie-devel@handhelds.org" name="Open" />
+ </feature>
+ <feature status="todo" target="1.2" >
+ <summary>Implement Linux Input API devices for Linux2.6</summary>
+ <responsible email="opie-devel@handhelds.org" name="Open" />
+ </feature>
+ <category name="X11" />
+ </category>
+ <category name="X11" >
+ <feature status="todo" target="1.2" >
+ <summary>Finish the port of Opie/X11 together with big screen extensions and evaluate the usage of d-bus</summary>
+ <responsible email="opie-devel@handhelds.org" name="Open" />
+ </feature>
+ </category>
+ <category name="Development" >
+ <feature status="todo" target="1.0.2" >
+ <summary>Create a Knoppix development CD</summary>
+ <responsible email="opie-devel@handhelds.org" name="Open" />
+ </feature>
+ </category>
+ <category name="OpieOffice" >
+ <feature status="todo" target="NewApps" >
+ <summary>Create a Office Suite with PocketPCs native format for opie-sheet and the new opie-write.
+Opie presentation maybe a svg capable viewer?</summary>
+ <responsible email="opie-devel@handhelds.org" name="Open" />
+ </feature>
+ </category>
+ <category name="Porting" >
+ <feature status="todo" target="NewApps" >
+ <summary>New lightweight minikde with only defines so that no increase of the binary size occurs</summary>
+ <responsible email="opie-devel@handhelds.org" name="Open" />
+ </feature>
+ <feature status="todo" target="NewApps" >
+ <summary>port more apps</summary>
+ <responsible email="opie-devel@handhelds.org" name="Open" />
+ </feature>
+ </category>
+ <category name="Website" >
+ <feature status="todo" target="1.0.2" >
+ <summary>Ideas?</summary>
+ <responsible email="opie-devel@handhelds.org" name="Open" />
+ </feature>
+ </category>
+ <category name="Mail" >
+ <feature status="todo" target="1.2" >
+ <summary>improving/consolidating the mail clients</summary>
+ <responsible email="opie-devel@handhelds.org" name="Open" />
+ </feature>
+ </category>
+ <category name="Bluetooth" >
+ <feature status="todo" target="1.2" >
+ <summary>consolidate Bluetooth apps allow more gui operations</summary>
+ <responsible email="opie-devel@handhelds.org" name="Open" />
+ </feature>
+ </category>
+ <category name="Todolist" />
+ <category name="Datebook" >
+ <feature status="todo" target="1.0.2" >
+ <summary>Fix problems with events prior to 1. January 1970 aka negative unix time. Don't interpret it as -1</summary>
+ <responsible email="opie-devel@handhelds.org" name="Open" />
+ </feature>
+ </category>
+</features>
diff --git a/development/feature_plan/opie-features.dtd b/development/feature_plan/opie-features.dtd
new file mode 100644
index 0000000..3ed436b
--- a/dev/null
+++ b/development/feature_plan/opie-features.dtd
@@ -0,0 +1,24 @@
+
+<!ELEMENT features (category+)>
+
+<!ELEMENT category (feature|category)*>
+<!ATTLIST category name CDATA #REQUIRED >
+
+<!ELEMENT feature (summary?,responsible*)>
+<!ATTLIST feature status (inprogress|todo|done) "todo"
+ target CDATA #REQUIRED>
+
+<!ELEMENT responsible EMPTY>
+<!ATTLIST responsible name CDATA #IMPLIED
+ email CDATA #IMPLIED>
+
+<!ELEMENT summary (#PCDATA|i|a|b|em|strong)*>
+
+<!ELEMENT i (#PCDATA)>
+<!ELEMENT b (#PCDATA)>
+<!ELEMENT em (#PCDATA)>
+<!ELEMENT strong (#PCDATA)>
+
+<!ELEMENT a (#PCDATA)>
+<!ATTLIST a href CDATA #IMPLIED>
+<!ATTLIST a title CDATA #IMPLIED>