• Skip to content
  • Skip to link menu
Trinity API Reference
  • Trinity API Reference
  • tdeabc
 

tdeabc

  • tdeabc
tdeab2tdeabc.cpp
1 /*
2  This file is part of libtdeabc.
3  Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
4 
5  This library is free software; you can redistribute it and/or
6  modify it under the terms of the GNU Library General Public
7  License as published by the Free Software Foundation; either
8  version 2 of the License, or (at your option) any later version.
9 
10  This library is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  Library General Public License for more details.
14 
15  You should have received a copy of the GNU Library General Public License
16  along with this library; see the file COPYING.LIB. If not, write to
17  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18  Boston, MA 02110-1301, USA.
19 */
20 
21 #include <tqfile.h>
22 #include <tqtextstream.h>
23 
24 #include <kabapi.h>
25 #include <tdeaboutdata.h>
26 #include <tdeapplication.h>
27 #include <tdecmdlineargs.h>
28 #include <tdeconfig.h>
29 #include <kdebug.h>
30 #include <tdeglobal.h>
31 #include <tdelocale.h>
32 #include <tdemessagebox.h>
33 #include <kstandarddirs.h>
34 
35 #include "addressbook.h"
36 #include "stdaddressbook.h"
37 
38 using namespace TDEABC;
39 
40 static const TDECmdLineOptions options[] =
41 {
42  { "disable-autostart", I18N_NOOP( "Disable automatic startup on login" ), 0 },
43  { "quiet", "", 0 },
44  { "o", 0, 0 },
45  { "override", I18N_NOOP( "Override existing entries" ), "1" },
46  TDECmdLineLastOption
47 };
48 
49 void readKMailEntry( const TQString &kmailEntry, TDEABC::AddressBook *ab )
50 {
51  kdDebug() << "KMAILENTRY: " << kmailEntry << endl;
52 
53  TQString entry = kmailEntry.simplifyWhiteSpace();
54  if ( entry.isEmpty() ) return;
55 
56  TQString email;
57  TQString name;
58  TQString comment;
59 
60  if ( entry.at( entry.length() -1 ) == ')' ) {
61  int br = entry.findRev( '(' );
62  if ( br >= 0 ) {
63  comment = entry.mid( br + 1, entry.length() - br - 2 );
64  entry.truncate( br );
65  if ( entry.at( entry.length() - 1 ).isSpace() ) {
66  entry.truncate( br - 1 );
67  }
68  }
69  }
70 
71  int posSpace = entry.findRev( ' ' );
72  if ( posSpace < 0 ) {
73  email = entry;
74  if ( !comment.isEmpty() ) {
75  name = comment;
76  comment = "";
77  }
78  } else {
79  email = entry.mid( posSpace + 1 );
80  name = entry.left( posSpace );
81  }
82 
83  if ( email.at( 0 ) == '<' && email.at( email.length() - 1) == '>' ) {
84  email = email.mid( 1, email.length() - 2 );
85  }
86  if ( name.at( 0 ) == '"' && name.at( name.length() - 1) == '"' ) {
87  name = name.mid( 1, name.length() - 2 );
88  }
89  if ( name.at( 0 ) == '\'' && name.at( name.length() - 1) == '\'' ) {
90  name = name.mid( 1, name.length() - 2 );
91  }
92 
93  if ( name.at( name.length() -1 ) == ')' ) {
94  int br = name.findRev( '(' );
95  if ( br >= 0 ) {
96  comment = name.mid( br + 1, name.length() - br - 2 ) + " " + comment;
97  name.truncate( br );
98  if ( name.at( name.length() - 1 ).isSpace() ) {
99  name.truncate( br - 1 );
100  }
101  }
102  }
103 
104  kdDebug() << " EMAIL : " << email << endl;
105  kdDebug() << " NAME : " << name << endl;
106  kdDebug() << " COMMENT : " << comment << endl;
107 
108  TDEABC::Addressee::List al = ab->findByEmail( email );
109  if ( al.isEmpty() ) {
110  TDEABC::Addressee a;
111  a.setNameFromString( name );
112  a.insertEmail( email );
113  a.setNote( comment );
114 
115  ab->insertAddressee( a );
116 
117  kdDebug() << "--INSERTED: " << a.realName() << endl;
118  }
119 }
120 
121 void importKMailAddressBook( TDEABC::AddressBook *ab )
122 {
123  TQString fileName = locateLocal( "data", "kmail/addressbook" );
124  TQString kmailConfigName = locate( "config", "kmailrc" );
125  if ( !kmailConfigName.isEmpty() ) {
126  TDEConfig cfg( kmailConfigName );
127  cfg.setGroup( "Addressbook" );
128  fileName = cfg.readPathEntry( "default", fileName );
129  }
130  if ( !TDEStandardDirs::exists( fileName ) ) {
131  kdDebug(5700) << "Couldn't find KMail addressbook." << endl;
132  return;
133  }
134 
135  TQFile f( fileName );
136  if ( !f.open(IO_ReadOnly) ) {
137  kdDebug(5700) << "Couldn't open file '" << fileName << "'" << endl;
138  return;
139  }
140 
141  TQStringList kmailEntries;
142 
143  TQTextStream t( &f );
144  while ( !t.eof() ) {
145  kmailEntries.append( t.readLine() );
146  }
147  f.close();
148 
149  TQStringList::ConstIterator it;
150  for ( it = kmailEntries.begin(); it != kmailEntries.end(); ++it ) {
151  if ( (*it).at( 0 ) == '#' ) continue;
152  bool insideQuote = false;
153  int end = (*it).length() - 1;
154  for ( int i = end; i; i-- ) {
155  if ( (*it).at( i ) == '"' ) {
156  if ( insideQuote )
157  insideQuote = false;
158  else
159  insideQuote = true;
160  } else if ( (*it).at( i ) == ',' && !insideQuote ) {
161  readKMailEntry( (*it).mid( i + 1, end - i ), ab );
162  end = i - 1;
163  }
164  }
165 
166  readKMailEntry( (*it).mid( 0, end + 1 ), ab );
167  }
168 }
169 
170 void readKAddressBookEntries( const TQString &dataString, Addressee &a )
171 {
172  // Strip "KMail:1.0" prefix and "[EOS]" suffix.
173  TQString str = dataString.mid( 11, dataString.length() - 24 );
174 
175  TQStringList entries = TQStringList::split( "\n[EOR]\n ", str );
176 
177  Address homeAddress( Address::Home );
178  Address businessAddress( Address::Work );
179  Address otherAddress;
180 
181  TQStringList::ConstIterator it;
182  for ( it = entries.begin(); it != entries.end(); ++it ) {
183  int pos = (*it).find( "\n" );
184  TQString fieldName = (*it).left( pos );
185  TQString fieldValue = (*it).mid( pos + 2 );
186 
187  if ( fieldName == "X-HomeFax" ) {
188  a.insertPhoneNumber( PhoneNumber( fieldValue, PhoneNumber::Home |
189  PhoneNumber::Fax ) );
190  } else if ( fieldName == "X-OtherPhone" ) {
191  a.insertPhoneNumber( PhoneNumber( fieldValue, 0 ) );
192  } else if ( fieldName == "X-PrimaryPhone" ) {
193  a.insertPhoneNumber( PhoneNumber( fieldValue, PhoneNumber::Pref ) );
194  } else if ( fieldName == "X-BusinessFax" ) {
195  a.insertPhoneNumber( PhoneNumber( fieldValue, PhoneNumber::Work |
196  PhoneNumber::Fax ) );
197  } else if ( fieldName == "X-CarPhone" ) {
198  a.insertPhoneNumber( PhoneNumber( fieldValue, PhoneNumber::Car ) );
199  } else if ( fieldName == "X-MobilePhone" ) {
200  a.insertPhoneNumber( PhoneNumber( fieldValue, PhoneNumber::Cell ) );
201  } else if ( fieldName == "X-ISDN" ) {
202  a.insertPhoneNumber( PhoneNumber( fieldValue, PhoneNumber::Isdn ) );
203  } else if ( fieldName == "X-OtherFax" ) {
204  a.insertPhoneNumber( PhoneNumber( fieldValue, PhoneNumber::Fax ) );
205  } else if ( fieldName == "X-Pager" ) {
206  a.insertPhoneNumber( PhoneNumber( fieldValue, PhoneNumber::Pager ) );
207  } else if ( fieldName == "X-BusinessPhone" ) {
208  a.insertPhoneNumber( PhoneNumber( fieldValue, PhoneNumber::Work ) );
209  } else if ( fieldName == "X-HomePhone" ) {
210  a.insertPhoneNumber( PhoneNumber( fieldValue, PhoneNumber::Home ) );
211  } else if ( fieldName == "X-HomeAddress" ) {
212  homeAddress.setLabel( fieldValue );
213  } else if ( fieldName == "X-HomeAddressStreet" ) {
214  homeAddress.setStreet( fieldValue );
215  } else if ( fieldName == "X-HomeAddressCity" ) {
216  homeAddress.setLocality( fieldValue );
217  } else if ( fieldName == "X-HomeAddressPostalCode" ) {
218  homeAddress.setPostalCode( fieldValue );
219  } else if ( fieldName == "X-HomeAddressState" ) {
220  homeAddress.setRegion( fieldValue );
221  } else if ( fieldName == "X-HomeAddressCountry" ) {
222  homeAddress.setCountry( fieldValue );
223  } else if ( fieldName == "X-BusinessAddress" ) {
224  businessAddress.setLabel( fieldValue );
225  } else if ( fieldName == "X-BusinessAddressStreet" ) {
226  businessAddress.setStreet( fieldValue );
227  } else if ( fieldName == "X-BusinessAddressCity" ) {
228  businessAddress.setLocality( fieldValue );
229  } else if ( fieldName == "X-BusinessAddressPostalCode" ) {
230  businessAddress.setPostalCode( fieldValue );
231  } else if ( fieldName == "X-BusinessAddressState" ) {
232  businessAddress.setRegion( fieldValue );
233  } else if ( fieldName == "X-BusinessAddressCountry" ) {
234  businessAddress.setCountry( fieldValue );
235  } else if ( fieldName == "X-OtherAddress" ) {
236  otherAddress.setLabel( fieldValue );
237  } else if ( fieldName == "X-OtherAddressStreet" ) {
238  otherAddress.setStreet( fieldValue );
239  } else if ( fieldName == "X-OtherAddressCity" ) {
240  otherAddress.setLocality( fieldValue );
241  } else if ( fieldName == "X-OtherAddressPostalCode" ) {
242  otherAddress.setPostalCode( fieldValue );
243  } else if ( fieldName == "X-OtherAddressState" ) {
244  otherAddress.setRegion( fieldValue );
245  } else if ( fieldName == "X-OtherAddressCountry" ) {
246  otherAddress.setCountry( fieldValue );
247  } else if ( fieldName == "NICKNAME" ) {
248  a.setNickName( fieldValue );
249  } else if ( fieldName == "ORG" ) {
250  a.setOrganization( fieldValue );
251  } else if ( fieldName == "ROLE" ) {
252  a.setRole( fieldValue );
253  } else if ( fieldName == "BDAY" ) {
254  a.setBirthday( TDEGlobal::locale()->readDate( fieldValue ) );
255  } else if ( fieldName == "WEBPAGE" ) {
256  a.setUrl( KURL( fieldValue ) );
257  } else if ( fieldName == "N" ) {
258  } else if ( fieldName == "X-FirstName" ) {
259  } else if ( fieldName == "X-MiddleName" ) {
260  } else if ( fieldName == "X-LastName" ) {
261  } else if ( fieldName == "X-Title" ) {
262  } else if ( fieldName == "X-Suffix" ) {
263  } else if ( fieldName == "X-FileAs" ) {
264  } else if ( fieldName == "EMAIL" ) {
265  a.insertEmail( fieldValue, true );
266  } else if ( fieldName == "X-E-mail2" ) {
267  a.insertEmail( fieldValue );
268  } else if ( fieldName == "X-E-mail3" ) {
269  a.insertEmail( fieldValue );
270  } else if ( fieldName == "X-Notes" ) {
271  } else {
272  a.insertCustom( "KADDRESSBOOK", fieldName, fieldValue );
273  }
274  }
275 
276  if ( !homeAddress.isEmpty() ) a.insertAddress( homeAddress );
277  if ( !businessAddress.isEmpty() ) a.insertAddress( businessAddress );
278  if ( !otherAddress.isEmpty() ) a.insertAddress( otherAddress );
279 }
280 
281 void importKab( TDEABC::AddressBook *ab, bool override, bool quiet )
282 {
283  TQString fileName = TDEGlobal::dirs()->saveLocation( "data", "kab/" );
284  fileName += "addressbook.kab";
285  if ( !TQFile::exists( fileName ) ) {
286  if ( !quiet ) {
287  KMessageBox::error( 0, "<qt>" + i18n( "Address book file <b>%1</b> not found! Make sure the old address book is located there and you have read permission for this file." )
288  .arg( fileName ) + "</qt>" );
289  }
290  kdDebug(5700) << "No KDE 2 addressbook found." << endl;
291  return;
292  }
293 
294  kdDebug(5700) << "Converting old-style kab addressbook to "
295  "new-style tdeabc addressbook." << endl;
296 
297  KabAPI kab( 0 );
298  if ( kab.init() != ::AddressBook::NoError ) {
299  kdDebug(5700) << "Error initing kab" << endl;
300  exit( 1 );
301  }
302 
303  KabKey key;
304  ::AddressBook::Entry entry;
305 
306  int num = kab.addressbook()->noOfEntries();
307 
308  kdDebug(5700) << "kab Addressbook has " << num << " entries." << endl;
309 
310  for ( int i = 0; i < num; ++i ) {
311  if ( ::AddressBook::NoError != kab.addressbook()->getKey( i, key ) ) {
312  kdDebug(5700) << "Error getting key for index " << i << " from kab." << endl;
313  continue;
314  }
315  if ( ::AddressBook::NoError != kab.addressbook()->getEntry( key, entry ) ) {
316  kdDebug(5700) << "Error getting entry for index " << i << " from kab." << endl;
317  continue;
318  }
319 
320  Addressee a;
321 
322  // Convert custom entries
323  int count = 0;
324  bool idFound = false;
325  TQStringList::ConstIterator customIt;
326  for ( customIt = entry.custom.begin(); customIt != entry.custom.end(); ++customIt ) {
327  if ( (*customIt).startsWith( "X-KABC-UID:" ) ) {
328  a.setUid( (*customIt).mid( (*customIt).find( ":" ) + 1 ) );
329  idFound = true;
330  } else if ( (*customIt).startsWith( "KMail:1.0\n" ) ) {
331  readKAddressBookEntries( *customIt, a );
332  } else {
333  a.insertCustom( "tdeab2tdeabc", TQString::number( count++ ), *customIt );
334  }
335  }
336  if ( idFound ) {
337  if ( !override ) continue;
338  } else {
339  entry.custom << "X-KABC-UID:" + a.uid();
340  ::AddressBook::ErrorCode error = kab.addressbook()->change( key, entry );
341  if ( error != ::AddressBook::NoError ) {
342  kdDebug(5700) << "kab.change returned with error " << error << endl;
343  } else {
344  kdDebug(5700) << "Wrote back to kab uid " << a.uid() << endl;
345  }
346  }
347 
348  a.setTitle( entry.title );
349  a.setFormattedName( entry.fn );
350  a.setPrefix( entry.nameprefix );
351  a.setGivenName( entry.firstname );
352  a.setAdditionalName( entry.middlename );
353  a.setFamilyName( entry.lastname );
354  a.setBirthday( entry.birthday );
355 
356  TQStringList::ConstIterator emailIt;
357  for ( emailIt = entry.emails.begin(); emailIt != entry.emails.end(); ++emailIt )
358  a.insertEmail( *emailIt );
359 
360  TQStringList::ConstIterator phoneIt;
361  for ( phoneIt = entry.telephone.begin(); phoneIt != entry.telephone.end(); ++phoneIt ) {
362  int kabType = (*phoneIt++).toInt();
363  if ( phoneIt == entry.telephone.end() ) break;
364  TQString number = *phoneIt;
365  int type = 0;
366  if ( kabType == ::AddressBook::Fixed ) type = PhoneNumber::Voice;
367  else if ( kabType == ::AddressBook::Mobile ) type = PhoneNumber::Cell | PhoneNumber::Voice;
368  else if ( kabType == ::AddressBook::Fax ) type = PhoneNumber::Fax;
369  else if ( kabType == ::AddressBook::Modem ) type = PhoneNumber::Modem;
370  a.insertPhoneNumber( PhoneNumber( number, type ) );
371  }
372 
373  if ( entry.URLs.count() > 0 ) {
374  a.setUrl( KURL( entry.URLs.first() ) );
375  if ( entry.URLs.count() > 1 ) {
376  kdWarning() << "More than one URL. Ignoring all but the first." << endl;
377  }
378  }
379 
380  int noAdr = entry.noOfAddresses();
381  for ( int j = 0; j < noAdr; ++j ) {
382  ::AddressBook::Entry::Address kabAddress;
383  entry.getAddress( j, kabAddress );
384 
385  Address adr;
386 
387  adr.setStreet( kabAddress.address );
388  adr.setPostalCode( kabAddress.zip );
389  adr.setLocality( kabAddress.town );
390  adr.setCountry( kabAddress.country );
391  adr.setRegion( kabAddress.state );
392 
393  TQString label;
394  if ( !kabAddress.headline.isEmpty() ) label += kabAddress.headline + "\n";
395  if ( !kabAddress.position.isEmpty() ) label += kabAddress.position + "\n";
396  if ( !kabAddress.org.isEmpty() ) label += kabAddress.org + "\n";
397  if ( !kabAddress.orgUnit.isEmpty() ) label += kabAddress.orgUnit + "\n";
398  if ( !kabAddress.orgSubUnit.isEmpty() ) label += kabAddress.orgSubUnit + "\n";
399  if ( !kabAddress.deliveryLabel.isEmpty() ) label += kabAddress.deliveryLabel + "\n";
400  adr.setLabel( label );
401 
402  a.insertAddress( adr );
403  }
404 
405  TQString note = entry.comment;
406 
407  if ( !entry.user1.isEmpty() ) note += "\nUser1: " + entry.user1;
408  if ( !entry.user2.isEmpty() ) note += "\nUser2: " + entry.user2;
409  if ( !entry.user3.isEmpty() ) note += "\nUser3: " + entry.user3;
410  if ( !entry.user4.isEmpty() ) note += "\nUser4: " + entry.user4;
411 
412  if ( !entry.keywords.count() == 0 ) note += "\nKeywords: " + entry.keywords.join( ", " );
413 
414  TQStringList::ConstIterator talkIt;
415  for ( talkIt = entry.talk.begin(); talkIt != entry.talk.end(); ++talkIt ) {
416  note += "\nTalk: " + (*talkIt);
417  }
418 
419  a.setNote( note );
420 
421  a.setPrefix( entry.rank + a.prefix() ); // Add rank to prefix
422 
423  a.setCategories( entry.categories );
424 
425  kdDebug(5700) << "Addressee: " << a.familyName() << endl;
426 
427  ab->insertAddressee( a );
428  }
429 
430  kab.save( true );
431 }
432 
433 int main( int argc, char **argv )
434 {
435  TDEAboutData aboutData( "tdeab2tdeabc", I18N_NOOP( "Kab to Kabc Converter" ), "0.1" );
436  aboutData.addAuthor( "Cornelius Schumacher", 0, "schumacher@kde.org" );
437 
438  TDECmdLineArgs::init( argc, argv, &aboutData );
439  TDECmdLineArgs::addCmdLineOptions( options );
440 
441  TDEApplication app;
442 
443  TDECmdLineArgs *args = TDECmdLineArgs::parsedArgs();
444 
445  bool override = false;
446 
447  if ( args->isSet( "override" ) ) {
448  kdDebug() << "Override existing entries." << endl;
449 
450  override = true;
451  }
452 
453  bool quiet = false;
454 
455  if ( args->isSet( "quiet" ) )
456  quiet = true;
457 
458  if ( args->isSet( "disable-autostart" ) ) {
459  kdDebug() << "Disable autostart." << endl;
460 
461  TDEConfig *config = app.config();
462  config->setGroup( "Startup" );
463  config->writeEntry( "EnableAutostart", false );
464  }
465 
466  TDEABC::AddressBook *tdeabcBook = StdAddressBook::self();
467 
468  importKMailAddressBook( tdeabcBook );
469 
470  importKab( tdeabcBook, override, quiet );
471 
472  StdAddressBook::save();
473 
474  kdDebug(5700) << "Saved tdeabc addressbook to '" << tdeabcBook->identifier() << "'" << endl;
475 }
476 
KMessageBox::error
static void error(TQWidget *parent, const TQString &text, const TQString &caption=TQString::null, int options=Notify)
KURL
TDEABC::AddressBook
Address Book.
Definition: addressbook.h:44
TDEABC::AddressBook::insertAddressee
void insertAddressee(const Addressee &addr)
Insert an addressee into the address book.
Definition: addressbook.cpp:518
TDEABC::AddressBook::findByEmail
Addressee::List findByEmail(const TQString &email)
Searches all addressees which match the specified email address.
Definition: addressbook.cpp:603
TDEABC::AddressBook::identifier
virtual TQString identifier()
Returns a string identifying this addressbook.
Definition: addressbook.cpp:637
TDEABC::Address
Postal address information.
Definition: address.h:56
TDEABC::Address::setPostalCode
void setPostalCode(const TQString &)
Sets the postal code.
Definition: address.cpp:221
TDEABC::Address::isEmpty
bool isEmpty() const
Returns true, if the address is empty.
Definition: address.cpp:68
TDEABC::Address::setLocality
void setLocality(const TQString &)
Sets the locality, e.g.
Definition: address.cpp:185
TDEABC::Address::setRegion
void setRegion(const TQString &)
Sets the region, e.g.
Definition: address.cpp:203
TDEABC::Address::setLabel
void setLabel(const TQString &)
Sets the delivery label.
Definition: address.cpp:257
TDEABC::Address::setStreet
void setStreet(const TQString &)
Sets the street (including number).
Definition: address.cpp:167
TDEABC::Address::setCountry
void setCountry(const TQString &)
Sets the country.
Definition: address.cpp:239
TDEABC::Addressee
address book entry
Definition: addressee.src.h:75
TDEABC::Addressee::setUid
void setUid(const TQString &uid)
Set unique identifier.
Definition: addressee.src.cpp:166
TDEABC::Addressee::setCategories
void setCategories(const TQStringList &)
Set categories to given value.
Definition: addressee.src.cpp:778
TDEABC::Addressee::insertPhoneNumber
void insertPhoneNumber(const PhoneNumber &phoneNumber)
Insert a phone number.
Definition: addressee.src.cpp:460
TDEABC::Addressee::insertCustom
void insertCustom(const TQString &app, const TQString &name, const TQString &value)
Insert custom entry.
Definition: addressee.src.cpp:791
TDEABC::Addressee::realName
TQString realName() const
Return the name of the addressee.
Definition: addressee.src.cpp:361
TDEABC::Addressee::insertEmail
void insertEmail(const TQString &email, bool preferred=false)
Insert an email address.
Definition: addressee.src.cpp:412
TDEABC::Addressee::insertAddress
void insertAddress(const Address &address)
Insert an address.
Definition: addressee.src.cpp:675
TDEABC::Addressee::setNameFromString
DECLARATIONS void setNameFromString(const TQString &)
Set name fields by parsing the given string and trying to associate the parts of the string with acco...
Definition: addressee.src.cpp:204
TDEABC::Addressee::uid
TQString uid() const
Return unique identifier.
Definition: addressee.src.cpp:174
TDEABC::PhoneNumber
Phonenumber information.
Definition: phonenumber.h:39
TDEABC::StdAddressBook::save
static bool save() TDE_DEPRECATED
Saves the standard address book to disk.
Definition: stdaddressbook.cpp:163
TDEABC::StdAddressBook::self
static StdAddressBook * self()
Returns the standard addressbook object.
Definition: stdaddressbook.cpp:57
TDEAboutData
TDEApplication
TDECmdLineArgs
TDECmdLineArgs::isSet
bool isSet(const char *option) const
TDECmdLineArgs::parsedArgs
static TDECmdLineArgs * parsedArgs(const char *id=0)
TDECmdLineArgs::addCmdLineOptions
static void addCmdLineOptions(const TDECmdLineOptions *options, const char *name=0, const char *id=0, const char *afterId=0)
TDECmdLineArgs::init
static void init(int _argc, char **_argv, const char *_appname, const char *programName, const char *_description, const char *_version, bool noKApp=false)
TDEConfigBase::writeEntry
void writeEntry(const TQString &pKey, const TQString &pValue, bool bPersistent=true, bool bGlobal=false, bool bNLS=false)
TDEConfigBase::setGroup
void setGroup(const TQString &group)
TDEConfig
TDEGlobal::dirs
static TDEStandardDirs * dirs()
TDEGlobal::locale
static TDELocale * locale()
TDEInstance::config
TDEConfig * config() const
I18N_NOOP
#define I18N_NOOP(x)
TDEStandardDirs::saveLocation
TQString saveLocation(const char *type, const TQString &suffix=TQString::null, bool create=true) const
TDEStandardDirs::exists
static bool exists(const TQString &fullPath)
endl
kndbgstream & endl(kndbgstream &s)
kdWarning
kdbgstream kdWarning(int area=0)
kdDebug
kdbgstream kdDebug(int area=0)
locate
TQString locate(const char *type, const TQString &filename, const TDEInstance *instance=TDEGlobal::instance())
locateLocal
TQString locateLocal(const char *type, const TQString &filename, const TDEInstance *instance=TDEGlobal::instance())
TDEABC
static data, shared by ALL addressee objects
Definition: address.h:48
TDEStdAccel::key
int key(StdAccel id)
TDEStdAccel::name
TQString name(StdAccel id)
TDEStdAccel::end
const TDEShortcut & end()
TDEStdAccel::label
TQString label(StdAccel id)
TDECmdLineOptions
tdelocale.h

tdeabc

Skip menu "tdeabc"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

tdeabc

Skip menu "tdeabc"
  • arts
  • dcop
  • dnssd
  • interfaces
  •   kspeech
  •     interface
  •     library
  •   tdetexteditor
  • kate
  • kded
  • kdoctools
  • kimgio
  • kjs
  • libtdemid
  • libtdescreensaver
  • tdeabc
  • tdecmshell
  • tdecore
  • tdefx
  • tdehtml
  • tdeinit
  • tdeio
  •   bookmarks
  •   httpfilter
  •   kpasswdserver
  •   kssl
  •   tdefile
  •   tdeio
  •   tdeioexec
  • tdeioslave
  •   http
  • tdemdi
  •   tdemdi
  • tdenewstuff
  • tdeparts
  • tdeprint
  • tderandr
  • tderesources
  • tdespell2
  • tdesu
  • tdeui
  • tdeunittest
  • tdeutils
  • tdewallet
Generated for tdeabc by doxygen 1.9.1
This website is maintained by Timothy Pearson.