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

List:       kde-commits
Subject:    koffice/kplato
From:       Dag Andersen <danders () get2net ! dk>
Date:       2010-11-02 7:57:58
Message-ID: 20101102075758.CDDAAAC89B () svn ! kde ! org
[Download RAW message or body]

SVN commit 1192139 by danders:

Make material resources always available by default.
Create material resource if group is material.
Remove sec/ms from project constraint times.


 M  +1 -1      kptpart.cpp  
 M  +17 -3     libs/kernel/kptresource.cpp  
 M  +4 -1      libs/kernel/kptresource.h  
 M  +7 -7      libs/models/kptresourcemodel.cpp  
 M  +3 -0      libs/ui/kptresourceeditor.cpp  


--- trunk/koffice/kplato/kptpart.cpp #1192138:1192139
@@ -761,7 +761,7 @@
     if ( m_loadingTemplate ) {
         //kDebug()<<"Loading template, generate unique ids";
         m_project->generateUniqueIds();
-        m_project->setConstraintStartTime( KDateTime::currentLocalDateTime() );
+        m_project->setConstraintStartTime( KDateTime( \
                KDateTime::currentLocalDateTime().date(), QTime( 0, 0, 0 ) ) );
         m_project->setConstraintEndTime( m_project->constraintStartTime().addYears( \
2 ) );  } else if ( isImporting() ) {
         // NOTE: I don't think this is a good idea.
--- trunk/koffice/kplato/libs/kernel/kptresource.cpp #1192138:1192139
@@ -322,7 +322,14 @@
     m_calendar = 0;
     m_currentSchedule = 0;
     //kDebug()<<"("<<this<<")";
+    
+    // material: by default material is always available
+    for ( int i = 1; i <= 7; ++i ) {
+        CalendarDay *wd = m_materialCalendar.weekday( i );
+        wd->setState( CalendarDay::Working );
+        wd->addInterval( TimeInterval( QTime( 0, 0, 0 ), 24*60*60*1000 ) );
 }
+}
 
 Resource::Resource(Resource *resource)
     : QObject( 0 ), // atm QObject is only for casting
@@ -451,11 +458,18 @@
 }
 
 Calendar *Resource::calendar( bool local ) const {
-    if ( m_type == Type_Work && !local && project() != 0 && m_calendar == 0 ) {
-        return project()->defaultCalendar();
-    }
+    if ( local || m_calendar ) {
     return m_calendar;
 }
+    // No calendar is set, try default calendar
+    Calendar *c = 0;
+    if ( m_type == Type_Work && project() ) {
+        c =  project()->defaultCalendar();
+    } else if ( m_type == Type_Material ) {
+        c = const_cast<Calendar*>( &m_materialCalendar );
+    }
+    return c;
+}
 
 void Resource::setCalendar( Calendar *calendar )
 {
--- trunk/koffice/kplato/libs/kernel/kptresource.h #1192138:1192139
@@ -27,6 +27,7 @@
 #include "kptduration.h"
 #include "kptdatetime.h"
 #include "kptappointment.h"
+#include "kptcalendar.h"
 
 #include <qdom.h>
 #include <QHash>
@@ -54,7 +55,6 @@
 class Resource;
 class ResourceRequest;
 class ResourceGroupRequest;
-class Calendar;
 class ResourceRequestCollection;
 class Schedule;
 class NodeSchedule;
@@ -539,6 +539,9 @@
 
     mutable WorkInfoCache m_workinfocache;
 
+    // return this if resource has no calendar and is a material resource
+    Calendar m_materialCalendar;
+
 #ifndef NDEBUG
 public:
     void printDebug( const QString& ident );
--- trunk/koffice/kplato/libs/models/kptresourcemodel.cpp #1192138:1192139
@@ -188,14 +188,14 @@
             }
             QString s = i18n( "None" );
             Calendar *cal = res->calendar( true ); // don't check for default \
                calendar
-            if ( cal == 0 ) {
+            if ( cal ) {
+                s = cal->name();
+            } else if ( res->type() == Resource::Type_Work ) {
                 // Do we get a default calendar
                 cal = res->calendar();
                 if ( cal ) {
                     s = i18nc( "Default (calendar name)", "Default (%1)", \
cal->name() );  }
-            } else {
-                s = cal->name();
             }
             return s;
         }
@@ -205,21 +205,21 @@
             }
             QString s = i18nc( "@info:tooltip", "No calendar" );
             Calendar *cal = res->calendar( true ); // don't check for default \
                calendar
-            if ( cal == 0 ) {
+            if ( cal ) {
+                s = cal->name();
+            } else if ( res->type() == Resource::Type_Work ) {
                 // Do we get a default calendar
                 cal = res->calendar();
                 if ( cal ) {
                     s = i18nc( "@info:tooltip 1=calendar name", "Using default \
calendar: %1", cal->name() );  }
-            } else {
-                s = cal->name();
             }
             return s;
         }
         case Role::EnumList: {
             Calendar *cal = m_project->defaultCalendar();
             QString s = i18n( "None" );
-            if ( cal ) {
+            if ( cal &&  res->type() == Resource::Type_Work ) {
                 s = i18nc( "Default (calendar name)", "Default (%1)", cal->name() );
             }
             return QStringList() << s << m_project->calendarNames();
--- trunk/koffice/kplato/libs/ui/kptresourceeditor.cpp #1192138:1192139
@@ -327,6 +327,9 @@
         return;
     }
     Resource *r = new Resource();
+    if ( g->type() == ResourceGroup::Type_Material ) {
+        r->setType( Resource::Type_Material );
+    }
     QModelIndex i = m_view->model()->insertResource( g, r );
     if ( i.isValid() ) {
         m_view->selectionModel()->select( i, QItemSelectionModel::Rows | \
QItemSelectionModel::ClearAndSelect );


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

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