You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
153 lines
3.7 KiB
153 lines
3.7 KiB
15 years ago
|
/*
|
||
13 years ago
|
This file is part of tdepim.
|
||
15 years ago
|
|
||
|
Copyright (c) 2004 Cornelius Schumacher <schumacher@kde.org>
|
||
|
|
||
|
This library is free software; you can redistribute it and/or
|
||
|
modify it under the terms of the GNU Library General Public
|
||
|
License as published by the Free Software Foundation; either
|
||
|
version 2 of the License, or (at your option) any later version.
|
||
|
|
||
|
This library is distributed in the hope that it will be useful,
|
||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||
|
Library General Public License for more details.
|
||
|
|
||
|
You should have received a copy of the GNU Library General Public License
|
||
|
along with this library; see the file COPYING.LIB. If not, write to
|
||
|
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||
|
Boston, MA 02110-1301, USA.
|
||
|
*/
|
||
|
|
||
|
#include "kcal_resourcefeatureplan.h"
|
||
|
|
||
|
#include "kcal_resourcefeatureplanconfig.h"
|
||
|
|
||
|
#include "kde-features.h"
|
||
|
#include "kde-features_parser.h"
|
||
|
|
||
15 years ago
|
#include <tqapplication.h>
|
||
|
#include <tqdatetime.h>
|
||
|
#include <tqptrlist.h>
|
||
|
#include <tqstringlist.h>
|
||
|
#include <tqtimer.h>
|
||
15 years ago
|
|
||
|
#include <kabc/locknull.h>
|
||
|
#include <kdebug.h>
|
||
|
#include <klocale.h>
|
||
12 years ago
|
#include <tderesources/configwidget.h>
|
||
15 years ago
|
#include <kstandarddirs.h>
|
||
|
#include <kstringhandler.h>
|
||
|
#include <kurl.h>
|
||
13 years ago
|
#include <libtdepim/kpimprefs.h>
|
||
15 years ago
|
|
||
|
using namespace KCal;
|
||
|
|
||
12 years ago
|
ResourceFeaturePlan::ResourceFeaturePlan( const TDEConfig *config )
|
||
15 years ago
|
: ResourceCached( config ), mLock( true )
|
||
|
{
|
||
|
mPrefs = new Prefs;
|
||
|
|
||
|
if ( config ) readConfig( config );
|
||
|
}
|
||
|
|
||
|
ResourceFeaturePlan::~ResourceFeaturePlan()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
Prefs *ResourceFeaturePlan::prefs()
|
||
|
{
|
||
|
return mPrefs;
|
||
|
}
|
||
|
|
||
12 years ago
|
void ResourceFeaturePlan::readConfig( const TDEConfig * )
|
||
15 years ago
|
{
|
||
|
mPrefs->readConfig();
|
||
|
}
|
||
|
|
||
12 years ago
|
void ResourceFeaturePlan::writeConfig( TDEConfig *config )
|
||
15 years ago
|
{
|
||
|
ResourceCalendar::writeConfig( config );
|
||
|
|
||
|
mPrefs->writeConfig();
|
||
|
}
|
||
|
|
||
|
bool ResourceFeaturePlan::doLoad()
|
||
|
{
|
||
|
kdDebug() << "ResourceFeaturePlan::load()" << endl;
|
||
|
|
||
|
mCalendar.close();
|
||
|
|
||
|
FeaturesParser parser;
|
||
|
|
||
|
Features *features = parser.parseFile( mPrefs->filename() );
|
||
|
|
||
|
if ( !features ) {
|
||
|
return false;
|
||
|
} else {
|
||
|
Category::List categories = features->categoryList();
|
||
|
|
||
|
KCal::Todo *masterTodo = new KCal::Todo;
|
||
|
masterTodo->setSummary( i18n("Feature Plan") );
|
||
|
mCalendar.addTodo( masterTodo );
|
||
|
|
||
|
insertCategories( categories, masterTodo );
|
||
|
}
|
||
|
|
||
|
emit resourceChanged( this );
|
||
|
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
void ResourceFeaturePlan::insertCategories( const Category::List &categories,
|
||
14 years ago
|
Todo *parent )
|
||
15 years ago
|
{
|
||
|
Category::List::ConstIterator it;
|
||
|
for( it = categories.begin(); it != categories.end(); ++it ) {
|
||
|
Category *c = *it;
|
||
|
|
||
|
Todo *categoryTodo = new Todo;
|
||
|
categoryTodo->setSummary( c->name() );
|
||
14 years ago
|
categoryTodo->setRelatedTo( parent );
|
||
15 years ago
|
|
||
|
insertCategories( c->categoryList(), categoryTodo );
|
||
|
|
||
|
Feature::List features = (*it)->featureList();
|
||
|
Feature::List::ConstIterator it2;
|
||
|
for( it2 = features.begin(); it2 != features.end(); ++it2 ) {
|
||
|
Feature *f = *it2;
|
||
|
Todo *todo = new Todo;
|
||
|
|
||
15 years ago
|
TQString summary = f->summary();
|
||
14 years ago
|
int pos = summary.find( '\n' );
|
||
15 years ago
|
if ( pos > 0 ) summary = summary.left( pos ) + "...";
|
||
|
todo->setSummary( summary );
|
||
|
|
||
|
todo->setDescription( f->summary() );
|
||
|
|
||
|
todo->setRelatedTo( categoryTodo );
|
||
|
|
||
|
int completed;
|
||
|
if ( f->status() == "done" ) completed = 100;
|
||
|
else if ( f->status() == "inprogress" ) completed = 50;
|
||
|
else completed = 0;
|
||
|
todo->setPercentComplete( completed );
|
||
|
|
||
|
mCalendar.addTodo( todo );
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
bool ResourceFeaturePlan::doSave()
|
||
|
{
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
KABC::Lock *ResourceFeaturePlan::lock()
|
||
|
{
|
||
|
return &mLock;
|
||
|
}
|
||
|
|
||
|
|
||
|
#include "kcal_resourcefeatureplan.moc"
|