Пример #1
0
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();
    if (!createMimedir(locations[ d->locationCombo->currentItem() ],newdoc.type())) {
        return FALSE;
    }
    fn+="/"+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;
}
Пример #2
0
void DocumentList::sendAllDocLinks()
{
    if ( d->tid != 0 ) {
    // We are in the middle of scanning, set a flag so
    // we do this when we finish our scanning
    d->needToSendAllDocLinks = true;
    return;
    }

    QString contents;
    Categories cats;
    for ( QListIterator<DocLnk> it( d->dls.children() ); it.current(); ++it ) {
    DocLnk *doc = it.current();
    QFileInfo fi( doc->file() );
    if ( !fi.exists() )
        continue;

    bool fake = !doc->linkFileKnown();
    if ( !fake ) {
        QFile f( doc->linkFile() );
        if ( f.open( IO_ReadOnly ) ) {
        QTextStream ts( &f );
        ts.setEncoding( QTextStream::UnicodeUTF8 );
        QString docLnk = ts.read();
        // Strip out the (stale) LinkFile entry
        int start = docLnk.find( "\nLinkFile = " ) + 1;
        if ( start > 0 ) {
            int end = docLnk.find( "\n", start + 1 ) + 1;
            contents += docLnk.left(start);
            contents += docLnk.mid(end);
        } else {
            contents += docLnk;
        }
        contents += "LinkFile = " + doc->linkFile() + "\n";

        f.close();
        } else
        fake = TRUE;
    }
    if (fake) {
        contents += "[Desktop Entry]\n"; // No tr
        contents += "Categories = " + // No tr
        cats.labels("Document View",doc->categories()).join(";") + "\n"; // No tr
        contents += "Name = "+doc->name()+"\n"; // No tr
        contents += "Type = "+doc->type()+"\n"; // No tr
    }
    contents += "File = "+doc->file()+"\n"; // No tr // (resolves path)
    contents += QString("Size = %1\n").arg( fi.size() ); // No tr
    }

    //odebug << "sending length " << contents.length() << "" << oendl;
#ifndef QT_NO_COP
    QCopEnvelope e( "QPE/Desktop", "docLinks(QString)" );
    e << contents;
#endif
    //odebug << "================ \n\n" << contents << "\n\n===============" << oendl;

    d->needToSendAllDocLinks = false;
}
Пример #3
0
void OFileSelector::slotDocLnkBridge( const DocLnk& lnk) {
    m_lneEdit->setText( lnk.name() );
    emit fileSelected( lnk );
    emit fileSelected( lnk.name() );
}