| [View Updates][View Threads][View Files][SVN Log][SVN Submitters]Title: | Default application data manager | | Synopsis: Design and implement a default data manager system for applications.
| Status: | Closed | Priority: | Medium As prioritized by the OS4 development team | Category: | system/general | Description: | The manager shall act as a helper tool for application builders for storing and retrieving default data such as the last used directories, window sizes and such.
Note: The manager is not intended to act as a storage device for general application settings and data, but only to store GUI related default data such as last used path, file, url, window size etc.
Many applications and tools for AmigaOS 4 does not store data such as the last used directory or window position, which can frustrate users who has to reselect directories over and over again.
For example: You may store files downloaded from os4depot in a specific directory and you always unarc them to ram:. But every time you start unarc you have to reselect both the source and destination directory. You can see this missing functionality in most amiga applications and there's neither a common way to do this nor a recommendation/guideline for how to design amigaOS applications in relation to this.
Work for this project does not only center around creating the data manager system but it also includes writing a new chapter for the "AMIGA User Interface Style Guide" that can act as a guideline for what type of default GUI related data an amigaOS 4 application should store and how to use the managers' api.
The work on the manager itself could include three parts:
The following is just a suggestion to illustrate the functionality of the manager. The developer can design the system differently as long as it retains the basic outlined functionality.
|
1. A virtual device for storing and retrieving the data
It could be built using a single large file in env/envarc but
the virtual device exposes the data as individual entries.
Each entry should contain:
- Application string (such as "unARC")
- Application specific id string (such as "source")
- Datatype (such as integer, float, string ect)
- The stored data
- A flag that says if the data is permanent or temporary
The application string "global" shall be a reserved word for global data.
2. A reaction tool for managing/browsing the stored data
Displaying all data for a specific application.
Ability to delete both individual entities and all data for a specific application
Editing of individual entries
3. A library with standard functions for storing and retrieving commonly used data.
Example functions:
Again the final api does not have to look exactly like this
Entry* getEntry(char *Application, char *ID) - retrieve a specific entry
void setEntry(Entry *entry) - store an entry
void setPath(char *Application, char *ID, char *Path, Boolean IsPermanent) - store a default path
char * getPath(char *Application, char *ID, char *Path) - retrieve a default path
void setWidth(char *Application, char *ID, int Width, Boolean IsPermanent) - set a width
void setHeight(char *Application, char *ID, int Height, Boolean IsPermanent) - set a height
int getWidth(char *Application, char *ID) - retrieve a width
int getHeight(char *Application, char *ID) - retrieve a height
Where Entry is:
char *Application
char *ID
int Datatype
Boolean IsPermanent
void *Data
|
Step 2 functionality could include a standard way for storing data history, such as maintaining a list of the last used paths in an application. With api functions for adding, deleting and retrieving data from such a history list. | Created by: | orgin | Created at: | 20080730 17:17 | Deadline: | Not set | Finished at: | Not finished | Last update: | 20140403 12:05 | Assigned to: | Not assigned |
Task list for this project |
ID | Title | Assigned | Progress | Updated | Created by |
|
|
|