27 #include <opensync/opensync.h>
29 #include "conversion.h"
32 using namespace QSync;
40 GroupConfig::GroupConfig()
45 TQStringList GroupConfig::activeObjectTypes()
const
49 const TQString fileName = TQString(
"%1/filter.conf" ).arg( osync_group_get_configdir( mGroup ) );
51 TQFile file( fileName );
52 if ( !file.open( IO_ReadOnly ) )
53 return TQStringList();
55 TQDomDocument document;
58 if ( !document.setContent( &file, &message ) ) {
59 tqDebug(
"Error on loading %s: %s", fileName.latin1(), message.latin1() );
60 return TQStringList();
64 TQStringList objectTypes;
66 TQDomElement element = document.documentElement();
67 TQDomNode node = element.firstChild();
68 while ( !node.isNull() ) {
69 TQDomElement childElement = node.toElement();
70 if ( !childElement.isNull() )
71 objectTypes.append( childElement.tagName() );
73 node = node.nextSibling();
79 void GroupConfig::setActiveObjectTypes(
const TQStringList &objectTypes )
83 TQDomDocument document(
"Filter" );
84 document.appendChild( document.createProcessingInstruction(
85 "xml",
"version=\"1.0\" encoding=\"UTF-8\"" ) );
87 TQDomElement element = document.createElement(
"filter" );
88 document.appendChild( element );
90 for ( uint i = 0; i < objectTypes.count(); ++i ) {
91 TQDomElement entry = document.createElement( objectTypes[ i ] );
92 element.appendChild( entry );
95 const TQString fileName = TQString(
"%1/filter.conf" ).arg( osync_group_get_configdir( mGroup ) );
97 TQFile file( fileName );
98 if ( !file.open( IO_WriteOnly ) )
101 TQTextStream s( &file );
102 s.setEncoding( TQTextStream::UnicodeUTF8 );
103 s << document.toString();
117 bool Group::isValid()
const
119 return ( mGroup != 0 );
122 Group::Iterator Group::begin()
130 Group::Iterator Group::end()
133 it.mPos = memberCount();
138 void Group::setName(
const TQString &name )
142 osync_group_set_name( mGroup, name.latin1() );
145 TQString Group::name()
const
149 return TQString::fromLatin1( osync_group_get_name( mGroup ) );
152 void Group::setLastSynchronization(
const TQDateTime &dateTime )
156 if ( dateTime.isValid() )
157 osync_group_set_last_synchronization( mGroup, dateTime.toTime_t() );
160 TQDateTime Group::lastSynchronization()
const
165 time_t time = osync_group_get_last_synchronization( mGroup );
167 dateTime.setTime_t( time );
172 Group::LockType Group::lock()
176 OSyncLockState state = osync_group_lock( mGroup );
185 case OSYNC_LOCK_STALE:
191 void Group::unlock(
bool removeFile )
195 osync_group_unlock( mGroup, removeFile );
198 Member Group::addMember()
202 OSyncMember *omember = osync_member_new( mGroup );
205 member.mMember = omember;
212 void Group::removeMember(
const Member &member )
216 osync_group_remove_member( mGroup, member.mMember );
219 int Group::memberCount()
const
223 return osync_group_num_members( mGroup );
226 Member Group::memberAt(
int pos )
const
232 if ( pos < 0 || pos >= memberCount() )
235 member.mMember = osync_group_nth_member( mGroup, pos );
240 int Group::filterCount()
const
244 return osync_group_num_filters( mGroup );
247 Filter Group::filterAt(
int pos )
253 if ( pos < 0 || pos >= filterCount() )
256 filter.mFilter = osync_group_nth_filter( mGroup, pos );
265 OSyncError *error = 0;
266 if ( !osync_group_save( mGroup, &error ) )
267 return Result( &error );
272 void Group::setObjectTypeEnabled(
const TQString &objectType,
bool enabled )
276 osync_group_set_objtype_enabled( mGroup, objectType.utf8(), enabled );
279 bool Group::isObjectTypeEnabled(
const TQString &objectType )
const
281 return osync_group_objtype_enabled( mGroup, objectType.utf8() );
284 GroupConfig Group::config()
const
289 config.mGroup = mGroup;