Stellarium  0.17.0
Data Structures | Public Slots | Signals | Public Member Functions | Static Public Member Functions | Protected Member Functions | Properties | Friends
StelMainView Class Reference

Reimplement a QGraphicsView for Stellarium. More...

#include <StelMainView.hpp>

Data Structures

struct  GLInfo
 Contains some basic info about the OpenGL context used. More...

Public Slots

void setFullScreen (bool)
 Set whether fullscreen is activated or not.
void focusSky ()
 Return focus to the sky item. To be used when we close a dialog.
void saveScreenShot (const QString &filePrefix="stellarium-", const QString &saveDir="", const bool overwrite=false)
 Save a screen shot. More...
bool getFlagInvertScreenShotColors () const
 Get whether colors are inverted when saving screenshot.
void setFlagInvertScreenShotColors (bool b)
 Set whether colors should be inverted when saving screenshot.
bool getFlagOverwriteScreenShots () const
 Get whether existing files are overwritten when saving screenshot.
void setFlagOverwriteScreenShots (bool b)
 Set whether existing files are overwritten when saving screenshot.
bool getFlagCursorTimeout ()
 Get the state of the mouse cursor timeout flag.
void setFlagCursorTimeout (bool b)
 Get the state of the mouse cursor timeout flag.
double getCursorTimeout () const
 Get the mouse cursor timeout in seconds.
void setCursorTimeout (double t)
 Set the mouse cursor timeout in seconds.
void setMinFps (float m)
 Set the minimum frames per second. More...
float getMinFps ()
 Get the current minimum frames per second.
void setMaxFps (float m)
 Set the maximum frames per second. More...
float getMaxFps ()
 Get the current maximum frames per second.
void thereWasAnEvent ()
 Notify that an event was handled by the program and therefore the FPS should be maximized for a couple of seconds. More...
bool needsMaxFPS () const
 Determines if we should render as fast as possible, or limit the FPS. More...
void setFlagUseButtonsBackground (bool b)
 Set the state of the flag of usage background for GUI buttons.
bool getFlagUseButtonsBackground ()
 Get the state of the flag of usage background for GUI buttons.


void screenshotRequested (void)
 emitted when saveScreenShot is requested with saveScreenShot(). More...
void fullScreenChanged (bool b)
void reloadShadersRequested ()
 Emitted when the "Reload shaders" action is perfomed Interested objects should subscribe to this signal and reload their shaders when this is emitted.
void updateIconsRequested ()
void flagInvertScreenShotColorsChanged (bool b)
void flagOverwriteScreenshotsChanged (bool b)
void flagUseButtonsBackgroundChanged (bool b)
void flagCursorTimeoutChanged (bool b)
void cursorTimeoutChanged (double t)

Public Member Functions

 StelMainView (QSettings *settings)
void init ()
 Start the main initialization of Stellarium.
void deinit ()
void initTitleI18n ()
 Set the application title for the current language. More...
void deinitGL ()
 Delete openGL textures (to call before the GLContext disappears)
QGraphicsWidget * getGuiWidget () const
 Return the parent gui widget, this should be used as parent to all the StelDialog instances. More...
QPoint getMousePos ()
 Return mouse position coordinates.
QOpenGLContext * glContext () const
 Returns the main application OpenGL context, which should be used for all drawing Stellarium does. More...
void glContextMakeCurrent ()
 Make the main GL context (the one returned from glContext()) current on the main view surface.
void glContextDoneCurrent ()
 Releases the main GL context.
GLInfo getGLInformation () const
 Returns the information about the GL context, this does not require the context to be active.

Static Public Member Functions

static StelMainViewgetInstance ()
 Get the StelMainView singleton instance.

Protected Member Functions

virtual void moveEvent (QMoveEvent *event) Q_DECL_OVERRIDE
 Hack to determine current monitor pixel ratio. More...
virtual void closeEvent (QCloseEvent *event) Q_DECL_OVERRIDE
 Handle window closed event, calling StelApp::quit()
virtual void resizeEvent (QResizeEvent *event) Q_DECL_OVERRIDE
 Handle window resized events, and change the size of the underlying QGraphicsScene to be the same.
virtual void mouseMoveEvent (QMouseEvent *event) Q_DECL_OVERRIDE
 Wake up mouse cursor (if it was hidden)


bool fullScreen
bool flagInvertScreenShotColors
bool flagOverwriteScreenshots
bool flagUseButtonsBackground
bool flagCursorTimeout
double cursorTimeout


class StelGuiItem
class StelRootItem
class StelGraphicsScene
class NightModeGraphicsEffect

Detailed Description

It is the class creating the singleton GL Widget, the main StelApp instance as well as the main GUI.

Data Structure Documentation

struct StelMainView::GLInfo
Data Fields
QOpenGLFunctions * functions
QOpenGLContext * mainContext
QString renderer
QString vendor

Member Function Documentation

QGraphicsWidget* StelMainView::getGuiWidget ( ) const
QOpenGLContext* StelMainView::glContext ( ) const
void StelMainView::initTitleI18n ( )

This is useful for e.g. chinese.

virtual void StelMainView::moveEvent ( QMoveEvent *  event)
bool StelMainView::needsMaxFPS ( ) const

This depends on the time the last user event happened.

void StelMainView::saveScreenShot ( const QString &  filePrefix = "stellarium-",
const QString &  saveDir = "",
const bool  overwrite = false 

The format of the file, and hence the filename extension depends on the architecture and build type.

  • filePrefix changes the beginning of the file name
  • saveDir changes the directory where the screenshot is saved If saveDir is "" then StelFileMgr::getScreenshotDir() will be used
  • overwrite if true,
  • filePrefix is used as filename, and existing file will be overwritten.
void StelMainView::screenshotRequested ( void  )

doScreenshot() does the actual work (it has to do it in the main thread, where as saveScreenShot() might get called from another one.

FS: is threaded access here even a possibility anymore, or a remnant of older code?
void StelMainView::setMaxFps ( float  m)
mthe new maximum fps setting.
void StelMainView::setMinFps ( float  m)

Usually this minimum will be switched to after there are no user events for some seconds to save power. However, if can be useful to set this to a high value to improve playing smoothness in scripts.

mthe new minimum fps setting.
void StelMainView::thereWasAnEvent ( )