Editing ModRana Roadmap
Warning: You are not logged in.
Your IP address will be recorded in this page's edit history.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 39: | Line 39: | ||
== What needs to be done to get the Qt GUI in a usable state == | == What needs to be done to get the Qt GUI in a usable state == | ||
- | === Separating the GUI logic to a GUI module | + | === Separating the GUI logic to a GUI module === |
Most of the core GUI logic currently resides in the modRana "kernel" the ''modrana.py'' file. This logic needs to be transfered to a separate GUI module tat can be loaded by modRana at startup, either by providing a CLI parameter or automatically (once implemented). | Most of the core GUI logic currently resides in the modRana "kernel" the ''modrana.py'' file. This logic needs to be transfered to a separate GUI module tat can be loaded by modRana at startup, either by providing a CLI parameter or automatically (once implemented). | ||
Line 47: | Line 47: | ||
'''What needs to be done ?''' | '''What needs to be done ?''' | ||
- | * add pluggable GUI module support | + | * add pluggable GUI module support |
- | * move the current GTK logic to a GTK GUI module | + | * move the current GTK logic to a GTK GUI module |
- | + | * add proper CLI argument handling | |
- | * add proper CLI argument handling | + | ** -d, --device - set device module |
- | ** -d, --device - set device module | + | ** -u, --ui - set which GUI to use |
- | ** -u, --ui - set which GUI to use | + | |
- | + | ||
** --lat, --lon, --zoom, --layer - set a given map screen parameters at startup | ** --lat, --lon, --zoom, --layer - set a given map screen parameters at startup | ||
** --no_gps - don't start GPS on startup | ** --no_gps - don't start GPS on startup | ||
Line 60: | Line 58: | ||
** something else ? | ** something else ? | ||
- | === Writing a Qt GUI module | + | === Writing a Qt GUI module === |
The Qt GUI module needs to start the interface on startup - create the application window, fullscreen it and start displaying the modRana interface. | The Qt GUI module needs to start the interface on startup - create the application window, fullscreen it and start displaying the modRana interface. | ||
'''What needs to be done ?''' | '''What needs to be done ?''' | ||
* Qt GUI module | * Qt GUI module | ||
- | ** create application window and fullscreen it | + | ** create application window and fullscreen it |
- | ** fullscreen toggle | + | ** fullscreen toggle |
- | ** automatic rotation | + | ** automatic rotation & rotation lock |
- | + | ||
- | + | ||
- | + | ||
** set window title (if applicable) | ** set window title (if applicable) | ||
- | + | ** shutdown support | |
- | + | ||
- | + | ||
- | * | + | |
- | * | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
=== Getting data from modules to the Qt GUI === | === Getting data from modules to the Qt GUI === | ||
Line 124: | Line 109: | ||
** tracklogs | ** tracklogs | ||
- | + | * implement the ''simple data API'' | |
- | + | ** add the mGet method to the options module and export it to modules | |
- | + | ** add the getData method to the base_module API | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
=== Writing the various GUI views === | === Writing the various GUI views === | ||
Line 239: | Line 216: | ||
The modRana project Trac has [http://modrana.org/trac/report/1 quite a large list] a feature requests and bugs already. | The modRana project Trac has [http://modrana.org/trac/report/1 quite a large list] a feature requests and bugs already. | ||
- | + | == Idle loop & timers == | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | == Idle loop & timers | + | |
MoDrana uses the idle loop to execute some workloads that are not time critical and uses timers to schedule actions that need to happen in the future. ModRana uses the cron module (it dosn't use the cron demon in any way) to provide an abstract API for this. The cron module currently uses GTK for the idle loop and timers. | MoDrana uses the idle loop to execute some workloads that are not time critical and uses timers to schedule actions that need to happen in the future. ModRana uses the cron module (it dosn't use the cron demon in any way) to provide an abstract API for this. The cron module currently uses GTK for the idle loop and timers. | ||
=== Connecting to the Qt Idle loop === | === Connecting to the Qt Idle loop === | ||
When the Qt GUI is used, the cron module needs to use Qt for the idle loop. | When the Qt GUI is used, the cron module needs to use Qt for the idle loop. | ||
- | |||
'''Tasks:''' | '''Tasks:''' | ||
* use the Qt idle loop | * use the Qt idle loop | ||
- | === Using Qt timers | + | === Using Qt timers === |
When the Qt GUI is used, the cron module needs to use Qt for timers. | When the Qt GUI is used, the cron module needs to use Qt for timers. | ||
- | |||
'''Tasks:''' | '''Tasks:''' | ||
- | * use Qt timers | + | * use Qt timers |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + |
Learn more about Contributing to the wiki.