kitchensync

device.cpp

00001 /*
00002     This file is part of KitchenSync.
00003 
00004     Copyright (c) 2002,2003 Holger Freyther <freyther@kde.org>
00005 
00006     This library is free software; you can redistribute it and/or
00007     modify it under the terms of the GNU Library General Public
00008     License as published by the Free Software Foundation; either
00009     version 2 of the License, or (at your option) any later version.
00010 
00011     This library is distributed in the hope that it will be useful,
00012     but WITHOUT ANY WARRANTY; without even the implied warranty of
00013     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014     Library General Public License for more details.
00015 
00016     You should have received a copy of the GNU Library General Public License
00017     along with this library; see the file COPYING.LIB.  If not, write to
00018     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00019     Boston, MA 02110-1301, USA.
00020 */
00021 
00022 #include <addressbooksyncee.h>
00023 #include <calendarsyncee.h>
00024 #include <calendarmerger.h>
00025 #include <addressbookmerger.h>
00026 
00027 #include "device.h"
00028 
00029 using KSync::AddressBookSyncee;
00030 using KSync::CalendarSyncee;
00031 
00032 using namespace OpieHelper;
00033 
00034 Device::Device()
00035   : mABookMerger( 0l ), mCalendarMerger( 0l )
00036 {
00037     m_model = Opie;
00038 }
00039 
00040 Device::~Device() {
00041 }
00042 
00043 int Device::distribution()const {
00044     return m_model;
00045 }
00046 
00047 void Device::setDistribution( int dist ) {
00048     m_model = dist;
00049 }
00050 
00051 KSync::Merger* Device::merger( enum PIM pim )
00052 {
00053   KSync::Merger* merger;
00054 
00055   switch( pim ) {
00056     case Calendar:
00057       merger = opieCalendarMerger();
00058       break;
00059     case Addressbook:
00060       merger = opieAddressBookMerger();
00061       break;
00062     default:
00063       merger = 0;
00064   }
00065 
00066   return merger;
00067 }
00068 
00069 KSync::Merger* Device::opieCalendarMerger(){
00070   if ( mCalendarMerger )
00071     return mCalendarMerger;
00072 
00073   QBitArray cal( KSync::CalendarMerger::DtEnd+1 );
00074   cal[KSync::CalendarMerger::Organizer] = false;
00075   cal[KSync::CalendarMerger::ReadOnly ] = false; // we do not support the read only attribute
00076   cal[KSync::CalendarMerger::DtStart  ] = true;
00077   cal[KSync::CalendarMerger::Duration ] = true;
00078   cal[KSync::CalendarMerger::Float    ] = true;
00079   cal[KSync::CalendarMerger::Attendee ] = false;
00080   cal[KSync::CalendarMerger::CreatedDate ] = false;
00081   cal[KSync::CalendarMerger::Revision ] = false;
00082   cal[KSync::CalendarMerger::Description ] = true;
00083   cal[KSync::CalendarMerger::Summary] = true; // ( m_model == Opie );  if we're in opie mode we do support the summcaly!
00084   cal[KSync::CalendarMerger::Category ] = true;
00085   cal[KSync::CalendarMerger::Relations ] = false;
00086   cal[KSync::CalendarMerger::ExDates ] = false; // currently we do not support the Exception to Recurrence
00087   cal[KSync::CalendarMerger::Attachments ] = false;
00088   cal[KSync::CalendarMerger::Secrecy ] = false;
00089   cal[KSync::CalendarMerger::Resources ] = false; // we do not support resources
00090   cal[KSync::CalendarMerger::Priority ] = false; // no priority for calendcal
00091   cal[KSync::CalendarMerger::Alarms ] = false; // Opie/Qtopia alarms are so different in nature
00092   cal[KSync::CalendarMerger::Recurrence ] = true; // we do not support everything though...
00093   cal[KSync::CalendarMerger::Location] = true;
00094   cal[KSync::CalendarMerger::DtEnd ] = true;
00095 
00096   // todo stuff
00097   QBitArray todo(KSync::CalendarMerger::DueDateTime+1);
00098   todo[KSync::CalendarMerger::Organizer] = false;
00099   todo[KSync::CalendarMerger::ReadOnly] = false;
00100   todo[KSync::CalendarMerger::DtStart] = ( m_model == Opie );
00101   todo[KSync::CalendarMerger::Duration] = false;
00102   todo[KSync::CalendarMerger::Float] = false; // check if DueDate less components...
00103   todo[KSync::CalendarMerger::Attendee] = false;
00104   todo[KSync::CalendarMerger::CreatedDate] = false;
00105   todo[KSync::CalendarMerger::Revision] = false;
00106   todo[KSync::CalendarMerger::Description] = true;
00107   todo[KSync::CalendarMerger::Summary] = ( m_model == Opie );
00108   todo[KSync::CalendarMerger::Category] = true;
00109   todo[KSync::CalendarMerger::Relations] = false;
00110   todo[KSync::CalendarMerger::ExDates] = false;
00111   todo[KSync::CalendarMerger::Attachments] = false;
00112   todo[KSync::CalendarMerger::Secrecy] = false;
00113   todo[KSync::CalendarMerger::Priority] = true;
00114   todo[KSync::CalendarMerger::Alarms] = false;
00115   todo[KSync::CalendarMerger::Recurrence] = false;
00116   todo[KSync::CalendarMerger::Location] = false;
00117   todo[KSync::CalendarMerger::StartDate] = ( m_model == Opie );
00118   todo[KSync::CalendarMerger::Completed] = true;
00119   todo[KSync::CalendarMerger::Percent] = true;
00120   todo[KSync::CalendarMerger::StartDateTime] = false;
00121   todo[KSync::CalendarMerger::DueDateTime] = false;
00122 
00123   mCalendarMerger = new KSync::CalendarMerger(todo, cal );
00124 
00125   return mCalendarMerger;
00126 }
00127 
00128 KSync::Merger* Device::opieAddressBookMerger(){
00129   if ( mABookMerger )
00130     return mABookMerger;
00131 
00132   QBitArray ar(KSync::AddressBookMerger::Emails +1 );
00133 
00134   ar[KSync::AddressBookMerger::FamilyName] = true;
00135   ar[KSync::AddressBookMerger::GivenName] = true;
00136   ar[KSync::AddressBookMerger::AdditionalName] = true;
00137   ar[KSync::AddressBookMerger::Prefix ] = false;
00138   ar[KSync::AddressBookMerger::Suffix] = true;
00139   ar[KSync::AddressBookMerger::NickName] = true;
00140   ar[KSync::AddressBookMerger::Birthday] = true;
00141   ar[KSync::AddressBookMerger::HomeAddress ] = true;
00142   ar[KSync::AddressBookMerger::BusinessAddress]= true;
00143   ar[KSync::AddressBookMerger::TimeZone] = false;
00144   ar[KSync::AddressBookMerger::Geo ] = false;
00145   ar[KSync::AddressBookMerger::Title ] = false;
00146   ar[KSync::AddressBookMerger::Role ] = true;
00147   ar[KSync::AddressBookMerger::Organization ] = true;
00148   ar[KSync::AddressBookMerger::Note ] = true;
00149   ar[KSync::AddressBookMerger::Url ] = false;
00150   ar[KSync::AddressBookMerger::Secrecy ] = false;
00151   ar[KSync::AddressBookMerger::Picture ] = false;
00152   ar[KSync::AddressBookMerger::Sound ] = false;
00153   ar[KSync::AddressBookMerger::Agent ] = false;
00154   ar[KSync::AddressBookMerger::HomeNumbers] = true;
00155   ar[KSync::AddressBookMerger::OfficeNumbers] = true;
00156   ar[KSync::AddressBookMerger::Messenger ] = false;
00157   ar[KSync::AddressBookMerger::PreferredNumber ] = false;
00158   ar[KSync::AddressBookMerger::Voice ] = false;
00159   ar[KSync::AddressBookMerger::Fax ] = false;
00160   ar[KSync::AddressBookMerger::Cell ] = false;
00161   ar[KSync::AddressBookMerger::Video ] = false;
00162   ar[KSync::AddressBookMerger::Mailbox ] = false;
00163   ar[KSync::AddressBookMerger::Modem ] = false;
00164   ar[KSync::AddressBookMerger::CarPhone ] = false;
00165   ar[KSync::AddressBookMerger::ISDN ] = false;
00166   ar[KSync::AddressBookMerger::PCS ] = false;
00167   ar[KSync::AddressBookMerger::Pager ] = false;
00168   ar[KSync::AddressBookMerger::HomeFax] = true;
00169   ar[KSync::AddressBookMerger::WorkFax] = true;
00170   ar[KSync::AddressBookMerger::OtherTel] = false;
00171   ar[KSync::AddressBookMerger::Category] = true;
00172   ar[KSync::AddressBookMerger::Custom] = true;
00173   ar[KSync::AddressBookMerger::Keys] = false;
00174   ar[KSync::AddressBookMerger::Logo] = false;
00175   ar[KSync::AddressBookMerger::Email] = true;
00176   ar[KSync::AddressBookMerger::Emails] = true;
00177 
00178   mABookMerger = new KSync::AddressBookMerger( ar );
00179 
00180   return mABookMerger;
00181 }
00182 
00183 QString Device::user()const {
00184     if(m_model == Opie )
00185     return m_user;
00186     else
00187     return QString::fromLatin1("root");
00188 }
00189 
00190 void Device::setUser( const QString& str ){
00191     m_user = str;
00192 }
00193 
00194 QString Device::password()const {
00195     if(m_model == Opie )
00196     return m_pass;
00197     else
00198     return QString::fromLatin1("Qtopia");
00199 }
00200 
00201 void Device::setPassword(const QString& pass ){
00202     m_pass = pass;
00203 }
00204 
00205 void Device::setMeta( const QString& str ){
00206     m_meta = str;
00207 }
00208 
00209 QString Device::meta()const{
00210     return m_meta;
00211 }
KDE Home | KDE Accessibility Home | Description of Access Keys