Revision 1210044

Go back to digest for 2nd January 2011

Optimization in Educational

Akarsh Simha committed changes in /trunk/KDE/kdeedu/kstars/kstars:

Backends separated. Working, unclean, hackish version.

+ SkyMap is now a QGraphicsView

+ The widget on which all drawing is done is called SkyMapQDraw for
the Qt version (and will be called SkyMapGLDraw for the GL version).

+ SkyMapQDraw and the future SkyMapGLDraw inherit from an abstract
SkyMapDrawAbstract class which contains common methods that draw
using QPainter, and allows the reimplementation of paintEvent() or
paintGL() as is appropriate in the children.

+ The SkyMapQDraw is set as the child widget of the
QGraphicsView::viewport(). This seems to be the typical workaround
for getting an QGLWidget to work as a non-background widget in a
QGV. I don't know if there is a more elegant way _that works_. This
is one of those hackish things.

+ SkyMap::forceUpdate() calls a repaint() (for the time being, not
update()) on the SkyMapQDraw instead of the SkyMap itself. I don't
know why this is necessary as yet. This is one more of the hackish
things.

TODO:

1. See if there are less hackish ways of doing things. (But this is
not on priority for the 4.6 release. If it works, and is reasonably
neat, I think we should let it in.) If these are actually Qt bugs,
file them and triage them.

2. Implement the GL backend.

Please let me know what you think. If it's okay, I'll transfer this to
4.6 after I'm done with the GL stuff. I solicit everyone's response on
this as soon as possible, since the release is in a very very short
time from now.

File Changes

Added 4 files
  • /trunk/KDE/kdeedu/kstars/kstars
  •   /skymapdrawabstract.cpp
  •   /skymapdrawabstract.h
  •   /skymapqdraw.cpp
  •   /skymapqdraw.h
Deleted 2 files
  • /trunk/KDE/kdeedu/kstars/kstars
  •   /skymapdraw.cpp
  •   /skymapdraw.h
Modified 5 files
  • /trunk/KDE/kdeedu/kstars/kstars
  •   /CMakeLists.txt
  •   /kstarsdata.h
  •   /skymap.cpp
  •   /skymap.h
  •   /skymapevents.cpp
11 files changed in total