22 #include "syncprocessmanager.h"
24 #include "syncprocess.h"
26 #include <libqopensync/environment.h>
28 #include <kstaticdeleter.h>
29 #include <tdemessagebox.h>
30 #include <tdelocale.h>
32 static KStaticDeleter<SyncProcessManager> selfDeleter;
34 SyncProcessManager *SyncProcessManager::mSelf = 0;
36 SyncProcessManager *SyncProcessManager::self()
39 selfDeleter.setObject( mSelf,
new SyncProcessManager() );
44 SyncProcessManager::SyncProcessManager()
46 mEnvironment =
new QSync::Environment;
47 QSync::Result result = mEnvironment->initialize();
48 if ( result.isError() ) {
49 KMessageBox::error( 0, i18n(
"Error initializing OpenSync.\n%1")
50 .arg( result.message() ) );
56 SyncProcessManager::~SyncProcessManager()
58 TQValueList<SyncProcess*>::Iterator it;
59 for ( it = mProcesses.begin(); it != mProcesses.end(); ++it )
64 mEnvironment->finalize();
68 int SyncProcessManager::count()
const
70 return mProcesses.count();
73 SyncProcess* SyncProcessManager::at(
int pos )
const
75 if ( pos < 0 || pos >= (
int)mProcesses.count() )
78 return mProcesses[ pos ];
81 SyncProcess* SyncProcessManager::byGroup(
const QSync::Group &group )
83 TQValueList<SyncProcess*>::Iterator it;
84 for ( it = mProcesses.begin(); it != mProcesses.end(); ++it )
85 if ( (*it)->group() == group )
91 SyncProcess* SyncProcessManager::byGroupName(
const TQString &name )
93 TQValueList<SyncProcess*>::Iterator it;
94 for ( it = mProcesses.begin(); it != mProcesses.end(); ++it )
95 if ( (*it)->group().name() == name )
101 void SyncProcessManager::addGroup(
const TQString &name )
103 SyncProcess* process = byGroupName( name );
105 QSync::Group group = mEnvironment->addGroup();
106 group.setName( name );
109 mProcesses.append(
new SyncProcess( group ) );
113 tqDebug(
"Try to add duplicate" );
116 void SyncProcessManager::remove( SyncProcess *syncProcess )
119 mProcesses.remove( syncProcess );
120 const QSync::Group group = syncProcess->group();
123 mEnvironment->removeGroup( group );
129 void SyncProcessManager::init( QSync::Environment *environment )
131 QSync::Environment::GroupIterator it( environment->groupBegin() );
132 for ( ; it != environment->groupEnd(); ++it ) {
138 const QSync::Group group = *it;
139 int count = group.memberCount();
142 for (
int i = 0; i < count; ++i ) {
143 const QSync::Member member = group.memberAt( i );
145 if ( !member.isValid() ) {
152 mProcesses.append(
new SyncProcess( *it ) );
158 QSync::Result SyncProcessManager::addMember( SyncProcess *process,
159 const QSync::Plugin &plugin )
163 QSync::Result result = process->addMember( plugin );
164 if ( !result.isError() ) {
165 process->group().save();
166 emit syncProcessChanged( process );
172 #include "syncprocessmanager.moc"