kitchensync
desktop.cpp00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include "desktop.h"
00024
00025 #include <qregexp.h>
00026
00027
00028 using namespace OpieHelper;
00029
00030 Desktop::Desktop( CategoryEdit* edit )
00031 : Base( edit )
00032 {}
00033
00034 Desktop::~Desktop()
00035 {}
00036
00037
00038 KSync::OpieDesktopSyncee* Desktop::toSyncee( const QString& str)
00039 {
00040 KSync::OpieDesktopSyncee* syncee;
00041 syncee = new KSync::OpieDesktopSyncee();
00042
00043
00044 QString string ( str );
00045 string.remove(0, 35 );
00046 string.replace(QRegExp("&"), "&" );
00047 string.replace(QRegExp("&0x20;"), " ");
00048 string.replace(QRegExp("&0x0d;"), "\n");
00049 string.replace(QRegExp("&0x0a;"), "\r");
00050 string.replace(QRegExp("\r\n"), "\n" );
00051
00052 if ( !str.contains("[Desktop Entry]") ) {
00053 delete syncee;
00054 return 0l;
00055 }
00056 QStringList list = QStringList::split('\n', string );
00057 QStringList::Iterator it;
00058 it = list.begin();
00059 list.remove( it );
00060
00061 KSync::OpieDesktopSyncEntry *entry;
00062 QString name, type, fileName, size;
00063 QStringList category;
00064
00065 for ( it = list.begin(); it != list.end(); ++it ) {
00066 QString con( (*it).stripWhiteSpace() );
00067
00068 if (con.startsWith("Categories = ") ) {
00069 con = con.remove(0, 13 );
00070
00071 QStringList catList = QStringList::split(';',con );
00072 category = edit()->categoriesByIds( catList, QString::null );
00073
00074 }else if ( con.startsWith("Name = ") ) {
00075 con = con.remove(0, 7 );
00076 name = con.stripWhiteSpace();
00077 }else if ( con.startsWith("Type = ") ) {
00078 con = con.remove( 0, 7 );
00079 type = con.stripWhiteSpace() ;
00080 }else if ( con.startsWith("File = ") ) {
00081 con = con.remove( 0, 7 );
00082 fileName = con.stripWhiteSpace();
00083 }else if ( con.startsWith("Size = ") ) {
00084 con = con.remove(0, 7 );
00085 size = con.stripWhiteSpace();
00086 }else if ( (*it).stripWhiteSpace() == "[Desktop Entry]" ) {
00087 entry= new KSync::OpieDesktopSyncEntry( category,
00088 fileName,
00089 name,
00090 type,
00091 size, syncee );
00092 syncee->addEntry( entry );
00093 }
00094
00095 }
00096
00097 entry = new KSync::OpieDesktopSyncEntry( category,
00098 fileName,
00099 name,
00100 type,
00101 size, syncee );
00102 syncee->addEntry( entry );
00103 return syncee;
00104 }
00105
|