author | mickeyl <mickeyl> | 2004-03-08 17:00:43 (UTC) |
---|---|---|
committer | mickeyl <mickeyl> | 2004-03-08 17:00:43 (UTC) |
commit | 5c0d3f0db722ad2b81bdab1a2a06d45c198ed975 (patch) (side-by-side diff) | |
tree | 327faa51dd84d8d032c83157b841efc34d847f56 | |
parent | bad368ebceecc3dd976e8eb206c773b5df6d11ef (diff) | |
download | opie-5c0d3f0db722ad2b81bdab1a2a06d45c198ed975.zip opie-5c0d3f0db722ad2b81bdab1a2a06d45c198ed975.tar.gz opie-5c0d3f0db722ad2b81bdab1a2a06d45c198ed975.tar.bz2 |
save UI changes to argument list back to .desktop file ;)
-rw-r--r-- | library/lnkproperties.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/library/lnkproperties.cpp b/library/lnkproperties.cpp index 865f590..f0f0bba 100644 --- a/library/lnkproperties.cpp +++ b/library/lnkproperties.cpp @@ -124,226 +124,230 @@ LnkProperties::LnkProperties( AppLnk* l, QWidget* parent ) } else { d->rotateButtons->setEnabled(false); } if ( !l->property( "Arguments" ).isEmpty() ) d->arguments->setText( l->property( "Arguments" ) ); Config cfg("Launcher"); cfg.setGroup("Preload"); QStringList apps = cfg.readListEntry("Apps",','); d->preload->setChecked( apps.contains(l->exec()) ); if ( Global::isBuiltinCommand(lnk->exec()) ) d->preload->hide(); // builtins are always fast currentLocation = 0; // apps not movable (yet) } } LnkProperties::~LnkProperties() { } void LnkProperties::unlinkLnk() { if ( QPEMessageBox::confirmDelete( this, tr("Delete"), lnk->name() ) ) { lnk->removeFiles(); if ( QFile::exists(lnk->file()) ) { QMessageBox::warning( this, tr("Delete"), tr("File deletion failed.") ); } else { reject(); } } } void LnkProperties::setupLocations() { QFileInfo fi( lnk->file() ); fileSize = fi.size(); StorageInfo storage; const QList<FileSystem> &fs = storage.fileSystems(); QListIterator<FileSystem> it ( fs ); QString s; QString homeDir = getenv("HOME"); QString hardDiskHome; QString hardDiskPath; int index = 0; currentLocation = -1; for ( ; it.current(); ++it ) { // we add 10k to the file size so we are sure we can also save the desktop file if ( (ulong)(*it)->availBlocks() * (ulong)(*it)->blockSize() > (ulong)fileSize + 10000 ) { if ( (*it)->isRemovable() || (*it)->disk() == "/dev/mtdblock1" || (*it)->disk() == "/dev/mtdblock/1" || (*it)->disk().left(13) == "/dev/mtdblock" || (*it)->disk() == "/dev/mtdblock6" || (*it )->disk() == "/dev/root" || (*it)->disk() == "tmpfs" ) { d->locationCombo->insertItem( (*it)->name(), index ); locations.append( ( ((*it)->isRemovable() || (*it)->disk() == "/dev/mtdblock6" || (*it)->disk() == "tmpfs" ) ? (*it)->path() : homeDir) ); if ( lnk->file().contains( (*it)->path() ) ) { d->locationCombo->setCurrentItem( index ); currentLocation = index; } index++; } else if ( (*it)->name().contains( tr("Hard Disk") ) && homeDir.contains( (*it)->path() ) && (*it)->path().length() > hardDiskHome.length() ) { hardDiskHome = (*it)->name(); hardDiskPath = (*it)->path(); } } } if ( !hardDiskHome.isEmpty() ) { d->locationCombo->insertItem( hardDiskHome ); locations.append( hardDiskPath ); if ( currentLocation == -1 ) { // assume it's the hard disk d->locationCombo->setCurrentItem( index ); currentLocation = index; } } } void LnkProperties::duplicateLnk() { // The duplicate takes the new properties. DocLnk newdoc( *((DocLnk *)lnk) ); if ( d->docname->text() == lnk->name() ) newdoc.setName(tr("Copy of ")+d->docname->text()); else newdoc.setName(d->docname->text()); if ( !copyFile( newdoc ) ) { QMessageBox::warning( this, tr("Duplicate"), tr("File copy failed.") ); return; } reject(); } bool LnkProperties::moveLnk() { DocLnk newdoc( *((DocLnk *)lnk) ); newdoc.setName(d->docname->text()); if ( !copyFile( newdoc ) ) { QMessageBox::warning( this, tr("Details"), tr("Moving Document failed.") ); return FALSE; } // remove old lnk lnk->removeFiles(); return TRUE; } void LnkProperties::beamLnk() { Ir ir; DocLnk doc( *((DocLnk *)lnk) ); doc.setName(d->docname->text()); reject(); ir.send( doc, doc.comment() ); } bool LnkProperties::copyFile( DocLnk &newdoc ) { const char *linkExtn = ".desktop"; QString fileExtn; int extnPos = lnk->file().findRev( '.' ); if ( extnPos > 0 ) fileExtn = lnk->file().mid( extnPos ); QString safename = newdoc.name(); safename.replace(QRegExp("/"),"_"); QString fn = locations[ d->locationCombo->currentItem() ] + "/Documents/" + newdoc.type() + "/" + safename; if ( QFile::exists(fn + fileExtn) || QFile::exists(fn + linkExtn) ) { int n=1; QString nn = fn + "_" + QString::number(n); while ( QFile::exists(nn+fileExtn) || QFile::exists(nn+linkExtn) ) { n++; nn = fn + "_" + QString::number(n); } fn = nn; } newdoc.setFile( fn + fileExtn ); newdoc.setLinkFile( fn + linkExtn ); // Copy file FileManager fm; if ( !fm.copyFile( *lnk, newdoc ) ) return FALSE; return TRUE; } void LnkProperties::done(int ok) { if ( ok ) { bool changed=FALSE; bool reloadMime=FALSE; if ( lnk->name() != d->docname->text() ) { lnk->setName(d->docname->text()); changed=TRUE; } if ( d->categoryEdit->isVisible() ) { QArray<int> tmp = d->categoryEdit->newCategories(); if ( lnk->categories() != tmp ) { lnk->setCategories( tmp ); changed = TRUE; } } if ( !d->rotate->isHidden()) { QString newrot; if ( d->rotate->isChecked() ) { int rot=0; for(; rot<4; rot++) { if (d->rotateButtons->find(rot)->isOn()) break; } newrot = QString::number((rot*90)%360); } if ( newrot != lnk->rotation() ) { lnk-> setRotation(newrot); changed = TRUE; reloadMime = TRUE; } } + if ( d->arguments->text() != lnk->property( "Arguments" ) ) { + lnk->setProperty( "Arguments", d->arguments->text() ); + changed = TRUE; + } if ( d->preload->isHidden() && d->locationCombo->currentItem() != currentLocation ) { moveLnk(); } else if ( changed ) { lnk->writeLink(); } if ( !d->preload->isHidden() ) { Config cfg("Launcher"); cfg.setGroup("Preload"); QStringList apps = cfg.readListEntry("Apps",','); QString exe = lnk->exec(); if ( apps.contains(exe) != d->preload->isChecked() ) { if ( d->preload->isChecked() ) { apps.append(exe); #ifndef QT_NO_COP QCopEnvelope e("QPE/Application/"+exe.local8Bit(), "enablePreload()"); #endif } else { apps.remove(exe); #ifndef QT_NO_COP QCopEnvelope e("QPE/Application/"+exe.local8Bit(), "quitIfInvisible()"); #endif } cfg.writeEntry("Apps",apps,','); } } if ( reloadMime ) MimeType::updateApplications ( ); } QDialog::done( ok ); } |