[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [marble/esasocis-2012-eclipse] src/plugins/render/eclipses: EclipsesPlugin: Fix eclipse menu updates
From:       Rene Kuettner <rene () bitkanal ! net>
Date:       2013-01-16 16:11:18
Message-ID: 20130116161118.9E709A6091 () git ! kde ! org
[Download RAW message or body]

Git commit 68f4f39b3bc789de579b473d164230c381096c25 by Rene Kuettner.
Committed on 16/01/2013 at 17:10.
Pushed by renek into branch 'esasocis-2012-eclipse'.

EclipsesPlugin: Fix eclipse menu updates

M  +6    -0    src/plugins/render/eclipses/EclipsesItem.cpp
M  +1    -0    src/plugins/render/eclipses/EclipsesItem.h
M  +10   -6    src/plugins/render/eclipses/EclipsesPlugin.cpp
M  +1    -0    src/plugins/render/eclipses/EclipsesPlugin.h

http://commits.kde.org/marble/68f4f39b3bc789de579b473d164230c381096c25

diff --git a/src/plugins/render/eclipses/EclipsesItem.cpp \
b/src/plugins/render/eclipses/EclipsesItem.cpp index e7e50e3..707ff0c 100644
--- a/src/plugins/render/eclipses/EclipsesItem.cpp
+++ b/src/plugins/render/eclipses/EclipsesItem.cpp
@@ -82,6 +82,12 @@ const QDateTime& EclipsesItem::endDatePartial() const
     return m_endDatePartial;
 }
 
+int EclipsesItem::partialDurationHours() const
+{
+    return (m_endDatePartial.toTime_t() - 
+            m_startDatePartial.toTime_t()) / 3600;
+}
+
 const QDateTime& EclipsesItem::startDateTotal() const
 {
     return m_startDateTotal;
diff --git a/src/plugins/render/eclipses/EclipsesItem.h \
b/src/plugins/render/eclipses/EclipsesItem.h index 44fada2..d3fe86b 100644
--- a/src/plugins/render/eclipses/EclipsesItem.h
+++ b/src/plugins/render/eclipses/EclipsesItem.h
@@ -52,6 +52,7 @@ public:
     const QDateTime& dateMaximum() const;
     const QDateTime& startDatePartial() const;
     const QDateTime& endDatePartial() const;
+    int partialDurationHours() const;
     const QDateTime& startDateTotal() const;
     const QDateTime& endDateTotal() const;
 
diff --git a/src/plugins/render/eclipses/EclipsesPlugin.cpp \
b/src/plugins/render/eclipses/EclipsesPlugin.cpp index 966faf5..c639c2b 100644
--- a/src/plugins/render/eclipses/EclipsesPlugin.cpp
+++ b/src/plugins/render/eclipses/EclipsesPlugin.cpp
@@ -39,6 +39,7 @@ EclipsesPlugin::EclipsesPlugin()
       m_eclipsesActionGroup( 0 ),
       m_eclipsesMenuAction( 0 ),
       m_eclipsesListMenu( 0 ),
+      m_menuYear( 0 ),
       m_configDialog( 0 ),
       m_configWidget( 0 ),
       m_listDialog( 0 ),
@@ -56,6 +57,7 @@ EclipsesPlugin::EclipsesPlugin( const MarbleModel *marbleModel )
      m_eclipsesActionGroup( 0 ),
      m_eclipsesMenuAction( 0 ),
      m_eclipsesListMenu( 0 ),
+     m_menuYear( 0 ),
      m_configDialog( 0 ),
      m_configWidget( 0 ),
      m_listDialog( 0 ),
@@ -187,10 +189,6 @@ void EclipsesPlugin::initialize()
     connect( m_eclipsesMenuAction, SIGNAL(triggered()),
              m_listDialog, SLOT(show()) );
 
-    // initialize clock
-    const MarbleClock *clock = marbleModel()->clock();
-    connect( clock, SIGNAL( timeChanged() ), SLOT( updateEclipses() ) );
-
     // initialize eclipses model
     m_model = new EclipsesModel( marbleModel() );
 
@@ -215,6 +213,8 @@ bool EclipsesPlugin::eventFilter( QObject *object, QEvent *e )
                  this, SLOT(updateMenuItems()) );
         m_marbleWidget = widget;
         m_clock = m_marbleWidget->model()->clock();
+        connect( m_clock, SIGNAL(timeChanged()),
+                 this, SLOT(updateEclipses()) );
     }
 
     return RenderPlugin::eventFilter(object, e);
@@ -345,7 +345,8 @@ void EclipsesPlugin::updateEclipses()
     mDebug() << "Updating eclipses....";
     const int year = marbleModel()->clock()->dateTime().date().year();
 
-    if( m_model->year() != year ) {
+    if( m_menuYear != year ) {
+
         // remove old menus
         foreach( QAction *action, m_eclipsesListMenu->actions() ) {
             m_eclipsesListMenu->removeAction( action );
@@ -353,7 +354,10 @@ void EclipsesPlugin::updateEclipses()
         }
 
         // update year and create menus for this year's eclipse events
-        m_model->setYear( year );
+        if( m_model->year() != year ) {
+            m_model->setYear( year );
+        }
+        m_menuYear = year;
 
         m_eclipsesListMenu->setTitle( tr("Eclipses in %1").arg( year ) );
 
diff --git a/src/plugins/render/eclipses/EclipsesPlugin.h \
b/src/plugins/render/eclipses/EclipsesPlugin.h index cd3f224..f5e4a4a 100644
--- a/src/plugins/render/eclipses/EclipsesPlugin.h
+++ b/src/plugins/render/eclipses/EclipsesPlugin.h
@@ -101,6 +101,7 @@ private:
     QHash<QString, QVariant> m_settings;
     QAction *m_eclipsesMenuAction;
     QMenu *m_eclipsesListMenu;
+    int m_menuYear;
 
     QDialog *m_configDialog;
     Ui::EclipsesConfigDialog *m_configWidget;


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic