summaryrefslogtreecommitdiff
path: root/library/applnk.cpp
Unidiff
Diffstat (limited to 'library/applnk.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--library/applnk.cpp24
1 files changed, 22 insertions, 2 deletions
diff --git a/library/applnk.cpp b/library/applnk.cpp
index 44f3f58..a56da5d 100644
--- a/library/applnk.cpp
+++ b/library/applnk.cpp
@@ -369,13 +369,16 @@ AppLnk::AppLnk( const QString &file )
369 mMimeTypes = config.readListEntry( "MimeType", ';' ); 369 mMimeTypes = config.readListEntry( "MimeType", ';' );
370 for (QStringList::Iterator it=mMimeTypes.begin(); it!=mMimeTypes.end(); ++it) 370 for (QStringList::Iterator it=mMimeTypes.begin(); it!=mMimeTypes.end(); ++it)
371 *it = (*it).lower(); 371 *it = (*it).lower();
372 mMimeTypeIcons = config.readListEntry( "MimeTypeIcons", ';' ); 372 mMimeTypeIcons = config.readListEntry( "MimeTypeIcons", ';' );
373 mLinkFile = file; 373 mLinkFile = file;
374 mFile = config.readEntry("File", QString::null); 374 mFile = config.readEntry("File", QString::null);
375 if ( mFile[0] != '/' ) { 375 if ( !mExec. isEmpty ( )) {
376 mFile = QString::null;
377 }
378 else if ( mFile[0] != '/' ) {
376 int slash = file.findRev('/'); 379 int slash = file.findRev('/');
377 if ( slash >= 0 ) { 380 if ( slash >= 0 ) {
378 mFile = file.left(slash) + '/' + mFile; 381 mFile = file.left(slash) + '/' + mFile;
379 } 382 }
380 } 383 }
381 d->mCatList = config.readListEntry("Categories", ';'); 384 d->mCatList = config.readListEntry("Categories", ';');
@@ -517,21 +520,22 @@ QString AppLnk::type() const
517 Returns the file associated with the AppLnk. 520 Returns the file associated with the AppLnk.
518 521
519 \sa exec() name() 522 \sa exec() name()
520*/ 523*/
521QString AppLnk::file() const 524QString AppLnk::file() const
522{ 525{
523 if ( mFile.isNull() ) { 526 if ( mExec.isEmpty ( ) && mFile.isNull() ) {
524 AppLnk* that = (AppLnk*)this; 527 AppLnk* that = (AppLnk*)this;
525 QString ext = MimeType(mType).extension(); 528 QString ext = MimeType(mType).extension();
526 if ( !ext.isEmpty() ) 529 if ( !ext.isEmpty() )
527 ext = "." + ext; 530 ext = "." + ext;
528 if ( !mLinkFile.isEmpty() ) { 531 if ( !mLinkFile.isEmpty() ) {
529 that->mFile = 532 that->mFile =
530 mLinkFile.right(8)==".desktop" // 8 = strlen(".desktop") 533 mLinkFile.right(8)==".desktop" // 8 = strlen(".desktop")
531 ? mLinkFile.left(mLinkFile.length()-8) : mLinkFile; 534 ? mLinkFile.left(mLinkFile.length()-8) : mLinkFile;
535 qDebug("mFile now == %s", mFile.latin1());
532 } else if ( mType.contains('/') ) { 536 } else if ( mType.contains('/') ) {
533 that->mFile = 537 that->mFile =
534 QString(getenv("HOME"))+"/Documents/"+mType+"/"+safeFileName(that->mName); 538 QString(getenv("HOME"))+"/Documents/"+mType+"/"+safeFileName(that->mName);
535 /* 539 /*
536 * A file with the same name or a .desktop file already exists 540 * A file with the same name or a .desktop file already exists
537 */ 541 */
@@ -694,12 +698,24 @@ void AppLnk::invoke(const QStringList& args) const
694*/ 698*/
695void AppLnk::setExec( const QString& exec ) 699void AppLnk::setExec( const QString& exec )
696{ 700{
697 mExec = exec; 701 mExec = exec;
698} 702}
699 703
704#if 0 // this was inlined for better BC
705/*!
706 Sets the Rotation property to \a rot.
707
708 \sa rotation()
709*/
710void AppLnk::setRotation ( const QString &rot )
711{
712 mRotation = rot;
713}
714#endif
715
700/*! 716/*!
701 Sets the Name property to \a docname. 717 Sets the Name property to \a docname.
702 718
703 \sa name() 719 \sa name()
704*/ 720*/
705void AppLnk::setName( const QString& docname ) 721void AppLnk::setName( const QString& docname )
@@ -832,12 +848,16 @@ void AppLnk::storeLink() const
832{ 848{
833 Config config( mLinkFile, Config::File ); 849 Config config( mLinkFile, Config::File );
834 config.setGroup("Desktop Entry"); 850 config.setGroup("Desktop Entry");
835 config.writeEntry("Name",mName); 851 config.writeEntry("Name",mName);
836 if ( !mIconFile.isNull() ) config.writeEntry("Icon",mIconFile); 852 if ( !mIconFile.isNull() ) config.writeEntry("Icon",mIconFile);
837 config.writeEntry("Type",type()); 853 config.writeEntry("Type",type());
854 if(!rotation().isEmpty())
855 config.writeEntry("Rotation",rotation());
856 else
857 config.removeEntry("Rotation");
838 if ( !mComment.isNull() ) config.writeEntry("Comment",mComment); 858 if ( !mComment.isNull() ) config.writeEntry("Comment",mComment);
839 QString f = file(); 859 QString f = file();
840 int i = 0; 860 int i = 0;
841 while ( i < (int)f.length() && i < (int)mLinkFile.length() && f[i] == mLinkFile[i] ) 861 while ( i < (int)f.length() && i < (int)mLinkFile.length() && f[i] == mLinkFile[i] )
842 i++; 862 i++;
843 while ( i && f[i] != '/' ) 863 while ( i && f[i] != '/' )