From a8859fac97c0b3255a261221d2b31ebedb56075c Mon Sep 17 00:00:00 2001 From: zecke Date: Fri, 22 Aug 2003 18:47:14 +0000 Subject: Add Feature Plan + little desktop add to change the .xml if you're too lazy to edit it yourself --- (limited to 'development/feature_plan') 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 @@ + + + + Opie Development Features, Issues and Release schedules + + + +

Opie Development Features, Issues and Release schedules and hide out

+ + + +
+
hOlgAr
+ + +Last modified: Fri Aug 22 20:19:03 CEST 2003 + + + 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 @@ + + Copyright (c) 2003 Mario Andres Yepes C + + 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
  • %s\t
  • \n", $temp); + } else { + $out .= $temp; + } + } + if (strlen($out)) { + return sprintf("

    %s

    \n\t\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 = ''; + 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 .= '<'.$this->resp_email[$i].'>'; + } + } + $out .= ''; + return $out; + } + function setSummary($summary) + { + $this->summary .= $summary.' '; + } + function getHtml($target, $status){ + if ($this->target == $target && $this->status == $status) { + return sprintf("\t\t
  • %s%s
  • \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 .= ''; + } + 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 @@ +

    +Opie needs YOUR help. 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. +

    + + + + + + + + + + + +
    TODO
    + + + +
    In Progress
    + + + + +
    Finished
    + + + + +
    + + +
    +
    zecke/hOlgAr
    + + +Last modified: Fri Aug 22 20:29:56 CEST 2003 + 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 @@ + +

    +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. +

    + + + + + + + + + + +
    TODO
    + + + + +
    In Progress
    + + + + +
    Finished
    + + + + +
    + + +
    +
    zecke/hOlgAr
    + + +Last modified: Fri Aug 22 20:14:40 CEST 2003 + 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 @@ +

    +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. +

    + + + + + + + + + + +
    TODO
    + + + +
    In Progress
    + + + +
    Finished
    + + + +
    + + +
    +
    zecke/hOlgAr
    + + +Last modified: Fri Aug 22 20:22:29 CEST 2003 + 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 @@ +

    +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. +

    + + + + + + + + + + +
    TODO
    + + + +
    In Progress
    + + + +
    Finished
    + + + +
    + + +
    +
    zecke/hOlgAr
    + + +Last modified: Fri Aug 22 20:34:13 CEST 2003 + 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 @@ + +

    +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. +

    + + + + + + + + + + + +
    TODO
    + + + +
    In Progress
    + + + +
    Finished
    + + + +
    + + +
    +
    zecke/hOlgAr
    + + +Last modified: Fri Aug 22 20:27:16 CEST 2003 + 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 @@ + + + + + + merge with Qtopia 1.7 library if possible + + + + Add show which performs window manager tasks. Places the window right and +and with the right size for big screens. + + + + Icon Themes + + + + + + Background picture displayed in different modes + + + + + + + Make all applications use more from libopie and see what is commonly used and create a common implementation if necessary. + + + + 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 + + + + 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? + + + + + + 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 + + + + 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 + + + + 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 + + + + + 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 + + + + + Database switch. +Rewrite Categories, AppLnk, DocLnk to use a database backend. + + + + Create import and export application for PIM data + +Allow easy exporting of all contacts to mobile phone using obex/obexftp + + + + 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 ) + + + + X-Ref and selection widgets for Database + +Connection between address book & calendar, so you can set a calendar +event location as an address book entry. + + + + Datebook2 based on the ODatebookAccess + + + + Evaluate the Qtopia PIM like painting and attributes in Records. better have the +attribute inside the access frontend + + access()->property( uid, OTodo::Summary ) + + + + + + Faster drawing and loading. Common XML mmaped loading +Custom drawing and only if necessary + + + + 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 + + + + Opie Outliner based on the OTodoAccess backend + + + + Notes API + + + + better sync applications + + + + more addressbook attributes + +Latitude & longitude fields in addressbook entries. (Which could then be +displayed by GPS/Map programs). + +Photos or Icons for address book entries (And calendar entries?). + + + + + - reworking personal settings: eg. mail, proxies and other personal settings +should go to the settings tab and access methods for them to libopie(2) + + + + + + Move to tslib? + + + + Implement Linux Input API devices for Linux2.6 + + + + + + + Finish the port of Opie/X11 together with big screen extensions and evaluate the usage of d-bus + + + + + + Create a Knoppix development CD + + + + + + Create a Office Suite with PocketPCs native format for opie-sheet and the new opie-write. +Opie presentation maybe a svg capable viewer? + + + + + + New lightweight minikde with only defines so that no increase of the binary size occurs + + + + port more apps + + + + + + Ideas? + + + + + + improving/consolidating the mail clients + + + + + + consolidate Bluetooth apps allow more gui operations + + + + + + + Fix problems with events prior to 1. January 1970 aka negative unix time. Don't interpret it as -1 + + + + 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 @@ + + + + + + + + + + + + + + + + + + + + + + -- cgit v0.9.0.2