summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/documentlist.cpp610
-rw-r--r--core/launcher/documentlist.h3
-rw-r--r--core/launcher/launcher.cpp107
-rw-r--r--core/launcher/launcher.h1
-rw-r--r--core/launcher/launcherview.cpp4
-rw-r--r--core/launcher/server.cpp210
6 files changed, 483 insertions, 452 deletions
diff --git a/core/launcher/documentlist.cpp b/core/launcher/documentlist.cpp
index d8e7a83..9781a32 100644
--- a/core/launcher/documentlist.cpp
+++ b/core/launcher/documentlist.cpp
@@ -91,25 +91,25 @@ public:
bool needToSendAllDocLinks;
bool sendAppLnks;
bool sendDocLnks;
bool scanDocs;
};
/*
* scandocs will be read from Config
*/
DocumentList::DocumentList( ServerInterface *serverGui, bool /*scanDocs*/,
- QObject *parent, const char *name )
+ QObject *parent, const char *name )
: QObject( parent, name )
{
appLnkSet = new AppLnkSet( MimeType::appsFolderName() );
d = new DocumentListPrivate( serverGui );
d->needToSendAllDocLinks = false;
Config cfg( "Launcher" );
cfg.setGroup( "DocTab" );
d->scanDocs = cfg.readBoolEntry( "Enable", true );
odebug << "DocumentList::DocumentList() : scanDocs = " << d->scanDocs << "" << oendl;
QTimer::singleShot( 10, this, SLOT( startInitialScan() ) );
@@ -122,301 +122,309 @@ void DocumentList::startInitialScan()
}
DocumentList::~DocumentList()
{
delete appLnkSet;
delete d;
}
void DocumentList::add( const DocLnk& doc )
{
if ( d->serverGui && QFile::exists( doc.file() ) )
- d->serverGui->documentAdded( doc );
+ d->serverGui->documentAdded( doc );
}
void DocumentList::start()
{
resume();
}
void DocumentList::pause()
{
//odebug << "pause " << d->tid << "" << oendl;
killTimer( d->tid );
d->tid = 0;
}
void DocumentList::resume()
{
if ( d->tid == 0 ) {
- d->tid = startTimer( 20 );
+ d->tid = startTimer( 20 );
//odebug << "resumed " << d->tid << "" << oendl;
}
}
/*
void DocumentList::resend()
{
// Re-emits all the added items to the list (firstly letting everyone know to
// clear what they have as it is being sent again)
pause();
emit allRemoved();
QTimer::singleShot( 5, this, SLOT( resendWorker() ) );
}
void DocumentList::resendWorker()
{
const QList<DocLnk> &list = d->dls.children();
for ( QListIterator<DocLnk> it( list ); it.current(); ++it )
- add( *(*it) );
+ add( *(*it) );
resume();
}
*/
void DocumentList::rescan()
{
//odebug << "rescan" << oendl;
pause();
d->initialize();
resume();
}
void DocumentList::timerEvent( QTimerEvent *te )
{
if ( te->timerId() == d->tid ) {
- // Do 3 at a time
+ // Do 3 at a time
if ( d->serverGui )
d->serverGui->aboutToAddBegin();
- for (int i = 0; i < 3; i++ ) {
- const DocLnk *lnk = d->iterate();
- if ( lnk ) {
- add( *lnk );
- } else {
- // stop when done
- pause();
- if ( d->serverGui )
- d->serverGui->documentScanningProgress( 100 );
- if ( d->needToSendAllDocLinks )
- sendAllDocLinks();
- break;
- }
+ for (int i = 0; i < 3; i++ ) {
+ const DocLnk *lnk = d->iterate();
+ if ( lnk ) {
+ add( *lnk );
+ } else {
+ // stop when done
+ pause();
+ if ( d->serverGui )
+ d->serverGui->documentScanningProgress( 100 );
+ if ( d->needToSendAllDocLinks )
+ sendAllDocLinks();
+ break;
+ }
}
if ( d->serverGui )
d->serverGui->aboutToAddEnd();
}
}
void DocumentList::reloadAppLnks()
{
if ( d->sendAppLnks && d->serverGui ) {
- d->serverGui->applicationScanningProgress( 0 );
- d->serverGui->allApplicationsRemoved();
+ d->serverGui->applicationScanningProgress( 0 );
+ d->serverGui->allApplicationsRemoved();
}
delete appLnkSet;
appLnkSet = new AppLnkSet( MimeType::appsFolderName() );
if ( d->sendAppLnks && d->serverGui ) {
- static QStringList prevTypeList;
- QStringList types = appLnkSet->types();
- for ( QStringList::Iterator ittypes=types.begin(); ittypes!=types.end(); ++ittypes) {
- if ( !(*ittypes).isEmpty() ) {
- if ( !prevTypeList.contains(*ittypes) ) {
- QString name = appLnkSet->typeName(*ittypes);
- QPixmap pm = appLnkSet->typePixmap(*ittypes);
- QPixmap bgPm = appLnkSet->typeBigPixmap(*ittypes);
-
- if (pm.isNull()) {
- QImage img( Resource::loadImage( "UnknownDocument" ) );
- pm = img.smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() );
- bgPm = img.smoothScale( AppLnk::bigIconSize(), AppLnk::bigIconSize() );
- }
+ static QStringList prevTypeList;
+ QStringList types = appLnkSet->types();
+ for ( QStringList::Iterator ittypes=types.begin(); ittypes!=types.end(); ++ittypes) {
+ if ( !(*ittypes).isEmpty() ) {
+ if ( !prevTypeList.contains(*ittypes) ) {
+ QString name = appLnkSet->typeName(*ittypes);
+ QPixmap pm = appLnkSet->typePixmap(*ittypes);
+ QPixmap bgPm = appLnkSet->typeBigPixmap(*ittypes);
+
+ if (pm.isNull()) {
+ QImage img( Resource::loadImage( "UnknownDocument" ) );
+ pm = img.smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() );
+ bgPm = img.smoothScale( AppLnk::bigIconSize(), AppLnk::bigIconSize() );
+ }
//odebug << "adding type " << (*ittypes) << "" << oendl;
- // ### our current launcher expects docs tab to be last
- d->serverGui->typeAdded( *ittypes, name.isNull() ? (*ittypes) : name, pm, bgPm );
- }
- prevTypeList.remove(*ittypes);
- }
- }
- for ( QStringList::Iterator ittypes=prevTypeList.begin(); ittypes!=prevTypeList.end(); ++ittypes) {
+ // ### our current launcher expects docs tab to be last
+ d->serverGui->typeAdded( *ittypes, name.isNull() ? (*ittypes) : name, pm, bgPm );
+ }
+ prevTypeList.remove(*ittypes);
+ }
+ }
+ for ( QStringList::Iterator ittypes=prevTypeList.begin(); ittypes!=prevTypeList.end(); ++ittypes) {
//odebug << "removing type " << (*ittypes) << "" << oendl;
- d->serverGui->typeRemoved(*ittypes);
- }
- prevTypeList = types;
+ d->serverGui->typeRemoved(*ittypes);
+ }
+ prevTypeList = types;
}
QListIterator<AppLnk> itapp( appLnkSet->children() );
AppLnk* l;
while ( (l=itapp.current()) ) {
- ++itapp;
- if ( d->sendAppLnks && d->serverGui )
- d->serverGui->applicationAdded( l->type(), *l );
+ ++itapp;
+ if ( d->sendAppLnks && d->serverGui )
+ d->serverGui->applicationAdded( l->type(), *l );
}
if ( d->sendAppLnks && d->serverGui )
- d->serverGui->applicationScanningProgress( 100 );
+ d->serverGui->applicationScanningProgress( 100 );
}
void DocumentList::reloadDocLnks()
{
if ( !d->scanDocs )
- return;
+ return;
if ( d->sendDocLnks && d->serverGui ) {
- d->serverGui->documentScanningProgress( 0 );
- d->serverGui->allDocumentsRemoved();
+ d->serverGui->documentScanningProgress( 0 );
+ d->serverGui->allDocumentsRemoved();
}
rescan();
}
+void DocumentList::reforceDocuments()
+{
+ Config cfg( "Launcher" );
+ cfg.setGroup( "DocTab" );
+ d->scanDocs = cfg.readBoolEntry( "Enable", true );
+ reloadDocLnks();
+}
+
void DocumentList::linkChanged( QString arg )
{
- //odebug << "linkchanged( " << arg << " )" << oendl;
+ odebug << "linkchanged( " << arg << " )" << oendl;
if ( arg.isNull() || OGlobal::isAppLnkFileName( arg ) ) {
- reloadAppLnks();
+ reloadAppLnks();
} else {
- const QList<DocLnk> &list = d->dls.children();
- QListIterator<DocLnk> it( list );
- while ( it.current() ) {
- DocLnk *doc = it.current();
- ++it;
- if ( ( doc->linkFileKnown() && doc->linkFile() == arg )
- || ( doc->fileKnown() && doc->file() == arg ) ) {
+ const QList<DocLnk> &list = d->dls.children();
+ QListIterator<DocLnk> it( list );
+ while ( it.current() ) {
+ DocLnk *doc = it.current();
+ ++it;
+ if ( ( doc->linkFileKnown() && doc->linkFile() == arg )
+ || ( doc->fileKnown() && doc->file() == arg ) ) {
//odebug << "found old link" << oendl;
- DocLnk* dl = new DocLnk( arg );
- // add new one if it exists and matches the mimetype
- if ( d->store( dl ) ) {
- // Existing link has been changed, send old link ref and a ref
- // to the new link
+ DocLnk* dl = new DocLnk( arg );
+ // add new one if it exists and matches the mimetype
+ if ( d->store( dl ) ) {
+ // Existing link has been changed, send old link ref and a ref
+ // to the new link
//odebug << "change case" << oendl;
- if ( d->serverGui )
- d->serverGui->documentChanged( *doc, *dl );
+ if ( d->serverGui )
+ d->serverGui->documentChanged( *doc, *dl );
- } else {
- // Link has been removed or doesn't match the mimetypes any more
- // so we aren't interested in it, so take it away from the list
+ } else {
+ // Link has been removed or doesn't match the mimetypes any more
+ // so we aren't interested in it, so take it away from the list
//odebug << "removal case" << oendl;
- if ( d->serverGui )
- d->serverGui->documentRemoved( *doc );
-
- }
- d->dls.remove( doc ); // remove old link from docLnkSet
- delete doc;
- return;
- }
- }
- // Didn't find existing link, must be new
- DocLnk* dl = new DocLnk( arg );
- if ( d->store( dl ) ) {
- // Add if it's a link we are interested in
+ if ( d->serverGui )
+ d->serverGui->documentRemoved( *doc );
+
+ }
+ d->dls.remove( doc ); // remove old link from docLnkSet
+ delete doc;
+ return;
+ }
+ }
+ // Didn't find existing link, must be new
+ DocLnk* dl = new DocLnk( arg );
+ if ( d->store( dl ) ) {
+ // Add if it's a link we are interested in
//odebug << "add case" << oendl;
- add( *dl );
- }
+ add( *dl );
+ }
}
}
void DocumentList::restoreDone()
{
reloadAppLnks();
reloadDocLnks();
}
void DocumentList::DiffAppLnks()
{
static AppLnkSet *appLnkSet2;
appLnkSet2 = new AppLnkSet( MimeType::appsFolderName() );
if ( d->sendAppLnks && d->serverGui ) {
- static QStringList prevTypeList = appLnkSet->types();
- QStringList types = appLnkSet2->types();
- for ( QStringList::Iterator ittypes=types.begin(); ittypes!=types.end(); ++ittypes) {
- if ( !(*ittypes).isEmpty() ) {
- if ( !prevTypeList.contains(*ittypes) ) {
- QString name = appLnkSet2->typeName(*ittypes);
- QPixmap pm = appLnkSet2->typePixmap(*ittypes);
- QPixmap bgPm = appLnkSet2->typeBigPixmap(*ittypes);
-
- if (pm.isNull()) {
- QImage img( Resource::loadImage( "UnknownDocument" ) );
- pm = img.smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() );
- bgPm = img.smoothScale( AppLnk::bigIconSize(), AppLnk::bigIconSize() );
- }
+ static QStringList prevTypeList = appLnkSet->types();
+ QStringList types = appLnkSet2->types();
+ for ( QStringList::Iterator ittypes=types.begin(); ittypes!=types.end(); ++ittypes) {
+ if ( !(*ittypes).isEmpty() ) {
+ if ( !prevTypeList.contains(*ittypes) ) {
+ QString name = appLnkSet2->typeName(*ittypes);
+ QPixmap pm = appLnkSet2->typePixmap(*ittypes);
+ QPixmap bgPm = appLnkSet2->typeBigPixmap(*ittypes);
+
+ if (pm.isNull()) {
+ QImage img( Resource::loadImage( "UnknownDocument" ) );
+ pm = img.smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() );
+ bgPm = img.smoothScale( AppLnk::bigIconSize(), AppLnk::bigIconSize() );
+ }
odebug << "adding type " << (*ittypes) << "" << oendl;
- // ### our current launcher expects docs tab to be last
- d->serverGui->typeAdded( *ittypes, name.isNull() ? (*ittypes) : name, pm, bgPm );
- }
- prevTypeList.remove(*ittypes);
- }
- }
- for ( QStringList::Iterator ittypes=prevTypeList.begin(); ittypes!=prevTypeList.end(); ++ittypes) {
+ // ### our current launcher expects docs tab to be last
+ d->serverGui->typeAdded( *ittypes, name.isNull() ? (*ittypes) : name, pm, bgPm );
+ }
+ prevTypeList.remove(*ittypes);
+ }
+ }
+ for ( QStringList::Iterator ittypes=prevTypeList.begin(); ittypes!=prevTypeList.end(); ++ittypes) {
odebug << "removing type " << (*ittypes) << "" << oendl;
- d->serverGui->typeRemoved(*ittypes);
- }
- prevTypeList = types;
+ d->serverGui->typeRemoved(*ittypes);
+ }
+ prevTypeList = types;
}
QListIterator<AppLnk> it1( appLnkSet->children() );
QListIterator<AppLnk> it2( appLnkSet2->children() );
AppLnk *i;
AppLnk *j;
bool found;
while ( (j=it2.current()) ) {
- it1 = appLnkSet->children();
- found = false;
- while ( (i=it1.current()) ){
- if (strcmp(i->name().ascii(),j->name().ascii()) == 0)
- found = true;
- ++it1;
- }
- if (!found) {
- odebug << "Item " << j->name().ascii() << " needs to be added" << oendl;
- d->serverGui->applicationAdded( j->type(), *j );
- }
- ++it2;
+ it1 = appLnkSet->children();
+ found = false;
+ while ( (i=it1.current()) ){
+ if (strcmp(i->name().ascii(),j->name().ascii()) == 0)
+ found = true;
+ ++it1;
+ }
+ if (!found) {
+ odebug << "Item " << j->name().ascii() << " needs to be added" << oendl;
+ d->serverGui->applicationAdded( j->type(), *j );
+ }
+ ++it2;
}
it1 = appLnkSet->children();
while ( (i=it1.current()) ) {
- it2 = appLnkSet2->children();
- found = false;
- while ( (j=it2.current()) ){
- if (strcmp(i->name().ascii(),j->name().ascii()) == 0)
- found = true;
- ++it2;
- }
- if (!found) {
- odebug << "Item " << i->name().ascii() << " needs to be removed" << oendl;
- d->serverGui->applicationRemoved( i->type(), *i );
- }
+ it2 = appLnkSet2->children();
+ found = false;
+ while ( (j=it2.current()) ){
+ if (strcmp(i->name().ascii(),j->name().ascii()) == 0)
+ found = true;
+ ++it2;
+ }
+ if (!found) {
+ odebug << "Item " << i->name().ascii() << " needs to be removed" << oendl;
+ d->serverGui->applicationRemoved( i->type(), *i );
+ }
- ++it1;
+ ++it1;
}
delete appLnkSet;
appLnkSet = appLnkSet2;
}
void DocumentList::storageChanged()
{
QTime t;
// ### can implement better
t.start();
@@ -427,69 +435,69 @@ void DocumentList::storageChanged()
// odebug << "Reload links took " << t.elapsed() << " ms " << oendl;
odebug << "Reload All links took " << t.elapsed() << " ms" << oendl;
// ### Optimization opportunity
// Could be a bit more intelligent and somehow work out which
// mtab entry has changed and then only scan that and add and remove
// links appropriately.
// rescan();
}
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;
+ // 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
+ 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;
}
@@ -512,34 +520,34 @@ void DocumentList::sendAllDocLinks()
DocumentListPrivate::DocumentListPrivate( ServerInterface *gui )
{
storage = new StorageInfo( this );
serverGui = gui;
if ( serverGui ) {
- sendAppLnks = serverGui->requiresApplications();
- sendDocLnks = serverGui->requiresDocuments();
+ sendAppLnks = serverGui->requiresApplications();
+ sendDocLnks = serverGui->requiresDocuments();
} else {
- sendAppLnks = false;
- sendDocLnks = false;
+ sendAppLnks = false;
+ sendDocLnks = false;
}
for ( int i = 0; i < MAX_SEARCH_DEPTH; i++ ) {
- listDirs[i] = 0;
- lists[i] = 0;
- listPositions[i] = 0;
+ listDirs[i] = 0;
+ lists[i] = 0;
+ listPositions[i] = 0;
}
initialize();
tid = 0;
}
void DocumentListPrivate::appendDocpath(FileSystem*fs)
{
QDir defPath(fs->path()+"/Documents");
QFileInfo f(fs->path()+"/.opiestorage.cf");
if (!f.exists()) {
Mediadlg dlg(fs);
if (QDialog::Accepted != QPEApplication::execDialog( &dlg )) {
@@ -572,232 +580,232 @@ void DocumentListPrivate::appendDocpath(FileSystem*fs)
}
}
void DocumentListPrivate::initialize()
{
// Reset
dls.clear();
docPaths.clear();
reference.clear();
QDir docDir( QPEApplication::documentDir() );
if ( docDir.exists() )
- docPaths += QPEApplication::documentDir();
+ docPaths += QPEApplication::documentDir();
int i = 1;
const QList<FileSystem> &fs = storage->fileSystems();
QListIterator<FileSystem> it( fs );
for ( ; it.current(); ++it ) {
if ( (*it)->isRemovable() ) {
appendDocpath((*it));
++i;
}
}
for ( int i = 0; i < MAX_SEARCH_DEPTH; ++i ) {
- if ( listDirs[i] ) {
- delete listDirs[i];
- listDirs[i] = 0;
- }
- lists[i] = 0;
- listPositions[i] = 0;
+ if ( listDirs[i] ) {
+ delete listDirs[i];
+ listDirs[i] = 0;
+ }
+ lists[i] = 0;
+ listPositions[i] = 0;
}
docPathsSearched = 0;
searchDepth = -1;
state = Find;
dit = 0;
}
DocumentListPrivate::~DocumentListPrivate()
{
for ( int i = 0; i < MAX_SEARCH_DEPTH; i++ )
- if ( listDirs[i] )
- delete listDirs[i];
+ if ( listDirs[i] )
+ delete listDirs[i];
delete dit;
}
void DocumentListPrivate::estimatedPercentScanned()
{
double overallProgress = 0.0;
double levelWeight = 75.0;
int topCount = docPaths.count();
if ( topCount > 1 ) {
- levelWeight = levelWeight / topCount;
- overallProgress += (docPathsSearched - 1) * levelWeight;
+ levelWeight = levelWeight / topCount;
+ overallProgress += (docPathsSearched - 1) * levelWeight;
}
for ( int d = 0; d <= searchDepth; d++ ) {
- if ( listDirs[d] ) {
- int items = lists[d]->count();
- if ( items > 1 ) {
- levelWeight = levelWeight / items;
- // Take in to account "." and ".."
- overallProgress += (listPositions[d] - 3) * levelWeight;
- }
- } else {
- break;
- }
+ if ( listDirs[d] ) {
+ int items = lists[d]->count();
+ if ( items > 1 ) {
+ levelWeight = levelWeight / items;
+ // Take in to account "." and ".."
+ overallProgress += (listPositions[d] - 3) * levelWeight;
+ }
+ } else {
+ break;
+ }
}
// odebug << "overallProgress: " << overallProgress << "" << oendl;
if ( serverGui )
- serverGui->documentScanningProgress( (int)overallProgress );
+ serverGui->documentScanningProgress( (int)overallProgress );
}
const QString DocumentListPrivate::nextFile()
{
while ( TRUE ) {
- while ( searchDepth < 0 ) {
- // go to next base path
- if ( docPathsSearched >= docPaths.count() ) {
- // end of base paths
- return QString::null;
- } else {
- QDir dir( docPaths[docPathsSearched] );
+ while ( searchDepth < 0 ) {
+ // go to next base path
+ if ( docPathsSearched >= docPaths.count() ) {
+ // end of base paths
+ return QString::null;
+ } else {
+ QDir dir( docPaths[docPathsSearched] );
// odebug << "now using base path: " << docPaths[docPathsSearched] << "" << oendl;
- docPathsSearched++;
- if ( !dir.exists( ".Qtopia-ignore" ) ) {
- listDirs[0] = new QDir( dir );
- lists[0] = listDirs[0]->entryInfoList();
- listPositions[0] = 0;
- searchDepth = 0;
- }
- }
- }
-
- const QFileInfoList *fil = lists[searchDepth];
+ docPathsSearched++;
+ if ( !dir.exists( ".Qtopia-ignore" ) ) {
+ listDirs[0] = new QDir( dir );
+ lists[0] = listDirs[0]->entryInfoList();
+ listPositions[0] = 0;
+ searchDepth = 0;
+ }
+ }
+ }
+
+ const QFileInfoList *fil = lists[searchDepth];
if (!fil) {
return QString::null;
}
- QFileInfoList *fl = (QFileInfoList *)fil;
- unsigned int pos = listPositions[searchDepth];
-
- if ( pos >= fl->count() ) {
- // go up a depth
- delete listDirs[searchDepth];
- listDirs[searchDepth] = 0;
- lists[searchDepth] = 0;
- listPositions[searchDepth] = 0;
- searchDepth--;
- } else {
- const QFileInfo *fi = fl->at(pos);
- listPositions[searchDepth]++;
- QString bn = fi->fileName();
- if ( bn[0] != '.' ) {
- if ( fi->isDir() ) {
- if ( bn != "CVS" && bn != "Qtopia" && bn != "QtPalmtop" ) {
- // go down a depth
- QDir dir( fi->filePath() );
+ QFileInfoList *fl = (QFileInfoList *)fil;
+ unsigned int pos = listPositions[searchDepth];
+
+ if ( pos >= fl->count() ) {
+ // go up a depth
+ delete listDirs[searchDepth];
+ listDirs[searchDepth] = 0;
+ lists[searchDepth] = 0;
+ listPositions[searchDepth] = 0;
+ searchDepth--;
+ } else {
+ const QFileInfo *fi = fl->at(pos);
+ listPositions[searchDepth]++;
+ QString bn = fi->fileName();
+ if ( bn[0] != '.' ) {
+ if ( fi->isDir() ) {
+ if ( bn != "CVS" && bn != "Qtopia" && bn != "QtPalmtop" ) {
+ // go down a depth
+ QDir dir( fi->filePath() );
// odebug << "now going in to path: " << bn << "" << oendl;
- if ( !dir.exists( ".Qtopia-ignore" ) ) {
- if ( searchDepth < MAX_SEARCH_DEPTH - 1) {
- searchDepth++;
- listDirs[searchDepth] = new QDir( dir );
- lists[searchDepth] = listDirs[searchDepth]->entryInfoList();
- listPositions[searchDepth] = 0;
- }
- }
- }
- } else {
- estimatedPercentScanned();
- return fl->at(pos)->filePath();
- }
- }
- }
+ if ( !dir.exists( ".Qtopia-ignore" ) ) {
+ if ( searchDepth < MAX_SEARCH_DEPTH - 1) {
+ searchDepth++;
+ listDirs[searchDepth] = new QDir( dir );
+ lists[searchDepth] = listDirs[searchDepth]->entryInfoList();
+ listPositions[searchDepth] = 0;
+ }
+ }
+ }
+ } else {
+ estimatedPercentScanned();
+ return fl->at(pos)->filePath();
+ }
+ }
+ }
}
return QString::null;
}
bool DocumentListPrivate::store( DocLnk* dl )
{
// if ( dl->fileKnown() && !dl->file().isEmpty() ) {
if ( dl && dl->fileKnown() ) {
- dls.add( dl ); // store
- return TRUE;
+ dls.add( dl ); // store
+ return TRUE;
}
// don't store - delete
delete dl;
return FALSE;
}
-#define MAGIC_NUMBER ((void*)2)
+#define MAGIC_NUMBER ((void*)2)
const DocLnk *DocumentListPrivate::iterate()
{
if ( state == Find ) {
//odebug << "state Find" << oendl;
- QString file = nextFile();
- while ( !file.isNull() ) {
- if ( file.right(8) == ".desktop" ) { // No tr
- DocLnk* dl = new DocLnk( file );
- if ( store(dl) )
- return dl;
- } else {
- reference.insert( file, MAGIC_NUMBER );
- }
- file = nextFile();
- }
- state = RemoveKnownFiles;
-
- if ( serverGui )
- serverGui->documentScanningProgress( 75 );
+ QString file = nextFile();
+ while ( !file.isNull() ) {
+ if ( file.right(8) == ".desktop" ) { // No tr
+ DocLnk* dl = new DocLnk( file );
+ if ( store(dl) )
+ return dl;
+ } else {
+ reference.insert( file, MAGIC_NUMBER );
+ }
+ file = nextFile();
+ }
+ state = RemoveKnownFiles;
+
+ if ( serverGui )
+ serverGui->documentScanningProgress( 75 );
}
static int iterationI;
static int iterationCount;
if ( state == RemoveKnownFiles ) {
//odebug << "state RemoveKnownFiles" << oendl;
- const QList<DocLnk> &list = dls.children();
- for ( QListIterator<DocLnk> it( list ); it.current(); ++it ) {
- reference.remove( (*it)->file() );
- // ### does this need to be deleted?
- }
- dit = new QDictIterator<void>(reference);
- state = MakeUnknownFiles;
+ const QList<DocLnk> &list = dls.children();
+ for ( QListIterator<DocLnk> it( list ); it.current(); ++it ) {
+ reference.remove( (*it)->file() );
+ // ### does this need to be deleted?
+ }
+ dit = new QDictIterator<void>(reference);
+ state = MakeUnknownFiles;
- iterationI = 0;
- iterationCount = dit->count();
+ iterationI = 0;
+ iterationCount = dit->count();
}
if ( state == MakeUnknownFiles ) {
//odebug << "state MakeUnknownFiles" << oendl;
- for (void* c; (c=dit->current()); ++(*dit) ) {
- if ( c == MAGIC_NUMBER ) {
- DocLnk* dl = new DocLnk;
- QFileInfo fi( dit->currentKey() );
- dl->setFile( fi.filePath() );
- dl->setName( fi.baseName() );
- if ( store(dl) ) {
- ++*dit;
- iterationI++;
- if ( serverGui )
- serverGui->documentScanningProgress( 75 + (25*iterationI)/iterationCount );
- return dl;
- }
- }
- iterationI++;
- }
-
- delete dit;
- dit = 0;
- state = Done;
+ for (void* c; (c=dit->current()); ++(*dit) ) {
+ if ( c == MAGIC_NUMBER ) {
+ DocLnk* dl = new DocLnk;
+ QFileInfo fi( dit->currentKey() );
+ dl->setFile( fi.filePath() );
+ dl->setName( fi.baseName() );
+ if ( store(dl) ) {
+ ++*dit;
+ iterationI++;
+ if ( serverGui )
+ serverGui->documentScanningProgress( 75 + (25*iterationI)/iterationCount );
+ return dl;
+ }
+ }
+ iterationI++;
+ }
+
+ delete dit;
+ dit = 0;
+ state = Done;
}
//odebug << "state Done" << oendl;
return NULL;
}
#include "documentlist.moc"
diff --git a/core/launcher/documentlist.h b/core/launcher/documentlist.h
index 232bb6a..8b69e95 100644
--- a/core/launcher/documentlist.h
+++ b/core/launcher/documentlist.h
@@ -23,34 +23,35 @@
#include <qobject.h>
#include <qtopia/applnk.h>
class DocumentListPrivate;
class ServerInterface;
class DocumentList : public QObject {
Q_OBJECT
public:
DocumentList( ServerInterface *serverGui, bool scanDocs = TRUE,
- QObject *parent = 0, const char *name = 0 );
+ QObject *parent = 0, const char *name = 0 );
~DocumentList();
void linkChanged( QString link );
void restoreDone();
void storageChanged();
void sendAllDocLinks();
void reloadAppLnks();
void reloadDocLnks();
+ void reforceDocuments();
void DiffAppLnks();
// Orig DocList stuff
void start();
void pause();
void resume();
void rescan();
static AppLnkSet *appLnkSet;
/*
void resend();
diff --git a/core/launcher/launcher.cpp b/core/launcher/launcher.cpp
index ccc2114..970b8cb 100644
--- a/core/launcher/launcher.cpp
+++ b/core/launcher/launcher.cpp
@@ -379,83 +379,104 @@ void LauncherTabWidget::setBusyIndicatorType( const QString& str ) {
LauncherView *LauncherTabWidget::currentView(void)
{
return (LauncherView*)stack->visibleWidget();
}
void LauncherTabWidget::launcherMessage( const QCString &msg, const QByteArray &data)
{
QDataStream stream( data, IO_ReadOnly );
if ( msg == "setTabView(QString,int)" ) {
- QString id;
- stream >> id;
- int mode;
- stream >> mode;
- if ( view(id) )
- view(id)->setViewMode( (LauncherView::ViewMode)mode );
+ QString id;
+ stream >> id;
+ int mode;
+ stream >> mode;
+ if ( view(id) )
+ view(id)->setViewMode( (LauncherView::ViewMode)mode );
} else if ( msg == "setTabBackground(QString,int,QString)" ) {
- QString id;
- stream >> id;
- int mode;
- stream >> mode;
- QString pixmapOrColor;
- stream >> pixmapOrColor;
- if ( view(id) )
- view(id)->setBackgroundType( (LauncherView::BackgroundType)mode, pixmapOrColor );
- if ( id == "Documents" )
- docLoadingWidget->setBackgroundType( (LauncherView::BackgroundType)mode, pixmapOrColor );
+ QString id;
+ stream >> id;
+ int mode;
+ stream >> mode;
+ QString pixmapOrColor;
+ stream >> pixmapOrColor;
+ if ( view(id) )
+ view(id)->setBackgroundType( (LauncherView::BackgroundType)mode, pixmapOrColor );
+ if ( id == "Documents" )
+ docLoadingWidget->setBackgroundType( (LauncherView::BackgroundType)mode, pixmapOrColor );
} else if ( msg == "setTextColor(QString,QString)" ) {
- QString id;
- stream >> id;
- QString color;
- stream >> color;
- if ( view(id) )
- view(id)->setTextColor( QColor(color) );
- if ( id == "Documents" )
- docLoadingWidget->setTextColor( QColor(color) );
+ QString id;
+ stream >> id;
+ QString color;
+ stream >> color;
+ if ( view(id) )
+ view(id)->setTextColor( QColor(color) );
+ if ( id == "Documents" )
+ docLoadingWidget->setTextColor( QColor(color) );
} else if ( msg == "setFont(QString,QString,int,int,int)" ) {
- QString id;
- stream >> id;
- QString fam;
- stream >> fam;
- int size;
- stream >> size;
- int weight;
- stream >> weight;
- int italic;
- stream >> italic;
- if ( view(id) ) {
- if ( !fam.isEmpty() ) {
- view(id)->setViewFont( QFont(fam, size, weight, italic!=0) );
- odebug << "setFont: " << fam << ", " << size << ", " << weight << ", " << italic << "" << oendl;
- } else {
- view(id)->clearViewFont();
+ QString id;
+ stream >> id;
+ QString fam;
+ stream >> fam;
+ int size;
+ stream >> size;
+ int weight;
+ stream >> weight;
+ int italic;
+ stream >> italic;
+ if ( view(id) ) {
+ if ( !fam.isEmpty() ) {
+ view(id)->setViewFont( QFont(fam, size, weight, italic!=0) );
+ odebug << "setFont: " << fam << ", " << size << ", " << weight << ", " << italic << "" << oendl;
+ } else {
+ view(id)->clearViewFont();
+ }
}
- }
}else if ( msg == "setBusyIndicatorType(QString)" ) {
QString type;
stream >> type;
setBusyIndicatorType( type );
}else if ( msg == "home()" ) {
if ( isVisibleWindow( static_cast<QWidget*>(parent())->winId() ) ) {
if (categoryBar)
categoryBar->nextTab();
- }else
+ }else {
static_cast<QWidget*>(parent())->raise();
+ }
+ } else if (msg=="doctabEnabled(int)") {
+ int id; stream >> id;
+ odebug << "Doctab enabled " << id << oendl;
+ reCheckDoctab(id);
}
}
-
+void LauncherTabWidget::reCheckDoctab(int how)
+{
+ if ((bool)how == docTabEnabled) {
+ /* nothing to do */
+ return;
+ }
+ if (docLoadingWidget) {
+ stack->removeWidget(docLoadingWidget);
+ delete docLoadingWidget;
+ docLoadingWidget = 0;
+ }
+ createDocLoadingWidget();
+ {
+ QCopEnvelope( "QPE/System", "reforceDocuments()" );
+ odebug << "Sending doc rescan" << oendl;
+ }
+}
//---------------------------------------------------------------------------
Launcher::Launcher()
: QMainWindow( 0, "PDA User Interface", QWidget::WStyle_Customize | QWidget::WGroupLeader )
{
tabs = 0;
tb = 0;
Config cfg( "Launcher" );
cfg.setGroup( "DocTab" );
docTabEnabled = cfg.readBoolEntry( "Enable", true );
}
diff --git a/core/launcher/launcher.h b/core/launcher/launcher.h
index db6ac54..b741064 100644
--- a/core/launcher/launcher.h
+++ b/core/launcher/launcher.h
@@ -72,24 +72,25 @@ protected slots:
void raiseTabWidget();
void tabProperties();
void initLayout();
private slots:
void launcherMessage( const QCString &, const QByteArray &);
void appMessage( const QCString &, const QByteArray &);
void setProgressStyle();
protected:
void paletteChange( const QPalette &p );
void styleChange( QStyle & );
+ void reCheckDoctab(int how);
private:
Launcher *launcher;
LauncherView *docview;
QWidgetStack *stack;
LauncherView *docLoadingWidget;
QProgressBar *docLoadingWidgetProgress;
bool docLoadingWidgetEnabled;
bool docTabEnabled;
int m_DocumentTabId;
};
diff --git a/core/launcher/launcherview.cpp b/core/launcher/launcherview.cpp
index c9efacb..2783423 100644
--- a/core/launcher/launcherview.cpp
+++ b/core/launcher/launcherview.cpp
@@ -323,27 +323,24 @@ int LauncherIconView::compare(const AppLnk* a, const AppLnk* b)
}
void LauncherIconView::setSortMethod( SortMethod m )
{
if ( sortmeth != m ) {
sortmeth = m;
sort();
}
}
void LauncherIconView::setCategoryFilter( int catfilter, bool resort )
{
- Categories cat;
- cat.load( categoryFileName() );
- QString str;
if ( catfilter == -2 )
cf = 0;
else
cf = catfilter;
hideOrShowItems(resort);
}
void LauncherIconView::setTypeFilter(const QString& typefilter, bool resort)
{
tf = QRegExp(typefilter,FALSE,TRUE);
hideOrShowItems(resort);
}
@@ -1074,24 +1071,25 @@ void LauncherView::itemPressed( int btn, QIconViewItem *item )
AppLnk *appLnk = ((LauncherItem *)item)->appLnk();
if ( btn == RightButton )
emit rightPressed( appLnk );
else if ( btn == ShiftButton )
emit rightPressed( appLnk );
item->setSelected(FALSE);
}
}
void LauncherView::removeAllItems()
{
odebug << "LauncherView::removeAllItems()" << oendl;
+ if (LauncherIconView::sm_EyeCache) LauncherIconView::sm_EyeCache->clear();
icons->clear();
}
bool LauncherView::removeLink(const QString& linkfile)
{
return icons->removeLink(linkfile);
}
void LauncherView::addItem(AppLnk* app, bool resort)
{
icons->addItem(app,resort);
}
diff --git a/core/launcher/server.cpp b/core/launcher/server.cpp
index 42186d3..15cd686 100644
--- a/core/launcher/server.cpp
+++ b/core/launcher/server.cpp
@@ -155,25 +155,25 @@ Server::Server() :
appLauncher = new AppLauncher(this);
connect(appLauncher, SIGNAL(launched(int,const QString&)), this, SLOT(applicationLaunched(int,const QString&)) );
connect(appLauncher, SIGNAL(terminated(int,const QString&)), this, SLOT(applicationTerminated(int,const QString&)) );
connect(appLauncher, SIGNAL(connected(const QString&)), this, SLOT(applicationConnected(const QString&)) );
storage = new StorageInfo( this );
connect( storage, SIGNAL(disksChanged()), this, SLOT(storageChanged()) );
#ifdef QPE_HAVE_DIRECT_ACCESS
QCopChannel *desktopChannel = new QCopChannel( "QPE/Desktop", this );
connect( desktopChannel, SIGNAL(received( const QCString &, const QByteArray & )),
- this, SLOT(desktopMessage( const QCString &, const QByteArray & )) );
+ this, SLOT(desktopMessage( const QCString &, const QByteArray & )) );
#endif
// start services
startTransferServer();
(void) new IrServer( this );
packageHandler = new PackageHandler( this );
connect(qApp, SIGNAL(activate(const Opie::Core::ODeviceButton*,bool)),
this,SLOT(activate(const Opie::Core::ODeviceButton*,bool)));
setGeometry( -10, -10, 9, 9 );
@@ -207,38 +207,38 @@ Server::~Server()
#if 0
delete tsmMonitor;
#endif
}
static bool hasVisibleWindow(const QString& clientname, bool partial)
{
#ifdef QWS
const QList<QWSWindow> &list = qwsServer->clientWindows();
QWSWindow* w;
for (QListIterator<QWSWindow> it(list); (w=it.current()); ++it) {
- if ( w->client()->identity() == clientname ) {
- if ( partial && !w->isFullyObscured() )
- return TRUE;
- if ( !partial && !w->isFullyObscured() && !w->isPartiallyObscured() ) {
+ if ( w->client()->identity() == clientname ) {
+ if ( partial && !w->isFullyObscured() )
+ return TRUE;
+ if ( !partial && !w->isFullyObscured() && !w->isPartiallyObscured() ) {
# if QT_VERSION < 0x030000
- QRect mwr = qt_screen->mapToDevice(qt_maxWindowRect,
- QSize(qt_screen->width(),qt_screen->height()) );
+ QRect mwr = qt_screen->mapToDevice(qt_maxWindowRect,
+ QSize(qt_screen->width(),qt_screen->height()) );
# else
- QRect mwr = qt_maxWindowRect;
+ QRect mwr = qt_maxWindowRect;
# endif
- if ( mwr.contains(w->requested().boundingRect()) )
- return TRUE;
- }
- }
+ if ( mwr.contains(w->requested().boundingRect()) )
+ return TRUE;
+ }
+ }
}
#endif
return FALSE;
}
void Server::activate(const ODeviceButton* button, bool held)
{
Global::terminateBuiltin("calibrate"); // No tr
OQCopMessage om;
if ( held ) {
om = button->heldAction();
} else {
@@ -333,24 +333,26 @@ void Server::systemMsg(const QCString &msg, const QByteArray &data)
#warning FIXME support TempScreenSaverMode
#if 0
} else if ( msg == "setTempScreenSaverMode(int,int)" ) {
int mode, pid;
stream >> mode >> pid;
tsmMonitor->setTempMode(mode, pid);
#endif
} else if ( msg == "linkChanged(QString)" ) {
QString link;
stream >> link;
odebug << "desktop.cpp systemMsg -> linkchanged( " << link << " )" << oendl;
docList->linkChanged(link);
+ } else if (msg =="reforceDocuments()") {
+ docList->reforceDocuments();
} else if ( msg == "serviceChanged(QString)" ) {
MimeType::updateApplications();
} else if ( msg == "mkdir(QString)" ) {
QString dir;
stream >> dir;
if ( !dir.isEmpty() )
mkdir( dir );
} else if ( msg == "rdiffGenSig(QString,QString)" ) {
QString baseFile, sigFile;
stream >> baseFile >> sigFile;
QRsync::generateSignature( baseFile, sigFile );
} else if ( msg == "rdiffGenDiff(QString,QString,QString)" ) {
@@ -423,26 +425,26 @@ void Server::systemMsg(const QCString &msg, const QByteArray &data)
(*it)->name() + "=" + homeDir + "/Documents " // No tr
+ QString::number( (*it)->availBlocks() * k4/4 )
+ "K " + (*it)->options() + ";";
}
}
if ( !homeFs.isEmpty() )
s += homeFs;
#ifndef QT_NO_COP
e << s;
#endif
} else if ( msg == "sendInstallLocations()" ) {
#ifndef QT_NO_COP
- QCopEnvelope e( "QPE/Desktop", "installLocations(QString)" );
- e << installLocationsString();
+ QCopEnvelope e( "QPE/Desktop", "installLocations(QString)" );
+ e << installLocationsString();
#endif
} else if ( msg == "sendSyncDate(QString)" ) {
QString app;
stream >> app;
Config cfg( "qpe" );
cfg.setGroup("SyncDate");
#ifndef QT_NO_COP
QCopEnvelope e( "QPE/Desktop", "syncDate(QString,QString)" );
e << app << cfg.readEntry( app );
#endif
//odebug << "QPE/System sendSyncDate for " << app.latin1() << ": response "
// << cfg.readEntry( app ).latin1() << oendl;
@@ -461,27 +463,27 @@ void Server::systemMsg(const QCString &msg, const QByteArray &data)
syncDialog->show();
connect( syncDialog, SIGNAL(cancel()), SLOT(cancelSync()) );
} else if ( msg == "stopSync()") {
delete syncDialog;
syncDialog = 0;
} else if (msg == "restoreDone(QString)") {
docList->restoreDone();
} else if ( msg == "getAllDocLinks()" ) {
docList->sendAllDocLinks();
}
#ifdef QPE_HAVE_DIRECT_ACCESS
else if ( msg == "prepareDirectAccess()" ) {
- prepareDirectAccess();
+ prepareDirectAccess();
} else if ( msg == "postDirectAccess()" ) {
- postDirectAccess();
+ postDirectAccess();
}
#endif
#ifdef Q_WS_QWS
else if ( msg == "setMouseProto(QString)" ) {
QString mice;
stream >> mice;
setenv("QWS_MOUSE_PROTO",mice.latin1(),1);
qwsServer->openMouse();
} else if ( msg == "setKeyboard(QString)" ) {
QString kb;
stream >> kb;
@@ -548,68 +550,68 @@ void Server::systemMsg(const QCString &msg, const QByteArray &data)
#endif
}
QString Server::cardInfoString()
{
storage->update();
const QList<FileSystem> &fs = storage->fileSystems();
QListIterator<FileSystem> it ( fs );
QString s;
QString homeDir = getenv("HOME");
QString homeFs, homeFsPath;
for ( ; it.current(); ++it ) {
- int k4 = (*it)->blockSize()/256;
- if ( (*it)->isRemovable() ) {
- s += (*it)->name() + "=" + (*it)->path() + "/Documents " // No tr
- + QString::number( (*it)->availBlocks() * k4/4 )
- + "K " + (*it)->options() + ";";
- } else if ( homeDir.contains( (*it)->path() ) &&
- (*it)->path().length() > homeFsPath.length() ) {
- homeFsPath = (*it)->path();
- homeFs =
- (*it)->name() + "=" + homeDir + "/Documents " // No tr
- + QString::number( (*it)->availBlocks() * k4/4 )
- + "K " + (*it)->options() + ";";
- }
+ int k4 = (*it)->blockSize()/256;
+ if ( (*it)->isRemovable() ) {
+ s += (*it)->name() + "=" + (*it)->path() + "/Documents " // No tr
+ + QString::number( (*it)->availBlocks() * k4/4 )
+ + "K " + (*it)->options() + ";";
+ } else if ( homeDir.contains( (*it)->path() ) &&
+ (*it)->path().length() > homeFsPath.length() ) {
+ homeFsPath = (*it)->path();
+ homeFs =
+ (*it)->name() + "=" + homeDir + "/Documents " // No tr
+ + QString::number( (*it)->availBlocks() * k4/4 )
+ + "K " + (*it)->options() + ";";
+ }
}
if ( !homeFs.isEmpty() )
- s += homeFs;
+ s += homeFs;
return s;
}
QString Server::installLocationsString()
{
storage->update();
const QList<FileSystem> &fs = storage->fileSystems();
QListIterator<FileSystem> it ( fs );
QString s;
QString homeDir = getenv("HOME");
QString homeFs, homeFsPath;
for ( ; it.current(); ++it ) {
- int k4 = (*it)->blockSize()/256;
- if ( (*it)->isRemovable() ) {
- s += (*it)->name() + "=" + (*it)->path() + " " // No tr
- + QString::number( (*it)->availBlocks() * k4/4 )
- + "K " + (*it)->options() + ";";
- } else if ( homeDir.contains( (*it)->path() ) &&
- (*it)->path().length() > homeFsPath.length() ) {
- homeFsPath = (*it)->path();
- homeFs =
- (*it)->name() + "=" + homeDir + " " // No tr
- + QString::number( (*it)->availBlocks() * k4/4 )
- + "K " + (*it)->options() + ";";
- }
+ int k4 = (*it)->blockSize()/256;
+ if ( (*it)->isRemovable() ) {
+ s += (*it)->name() + "=" + (*it)->path() + " " // No tr
+ + QString::number( (*it)->availBlocks() * k4/4 )
+ + "K " + (*it)->options() + ";";
+ } else if ( homeDir.contains( (*it)->path() ) &&
+ (*it)->path().length() > homeFsPath.length() ) {
+ homeFsPath = (*it)->path();
+ homeFs =
+ (*it)->name() + "=" + homeDir + " " // No tr
+ + QString::number( (*it)->availBlocks() * k4/4 )
+ + "K " + (*it)->options() + ";";
+ }
}
if ( !homeFs.isEmpty() )
- s = homeFs + s;
+ s = homeFs + s;
return s;
}
void Server::receiveTaskBar(const QCString &msg, const QByteArray &data)
{
QDataStream stream( data, IO_ReadOnly );
if ( msg == "reloadApps()" ) {
docList->reloadAppLnks();
} else if ( msg == "soundAlarm()" ) {
ServerApplication::soundAlarm();
} else if ( msg == "setLed(int,bool)" ) {
@@ -815,170 +817,170 @@ void Server::prepareDirectAccess()
{
qDebug( "Server::prepareDirectAccess()" );
// Put up a pretty dialog
syncDialog = new SyncDialog( this, tr("USB Lock") );
syncDialog->show();
// Prevent the PDA from acting as a PDA
terminateServers();
// suspend the mtab monitor
#ifndef QT_NO_COP
{
- QCopEnvelope e( "QPE/Stabmon", "suspendMonitor()" );
+ QCopEnvelope e( "QPE/Stabmon", "suspendMonitor()" );
}
#endif
// send out a flush message
// once flushes are done call runDirectAccess()
// We just count the number of apps and set a timer.
// Either the timer expires or the correct number of apps responds.
// Note: quicklauncher isn't in the runningApps list but it responds
// to the flush so we start the counter at 1
pendingFlushes = 1;
directAccessRun = FALSE;
for ( QMap<int,QString>::ConstIterator it =
- appLauncher->runningApplications().begin();
- it != appLauncher->runningApplications().end();
- ++it ) {
- pendingFlushes++;
+ appLauncher->runningApplications().begin();
+ it != appLauncher->runningApplications().end();
+ ++it ) {
+ pendingFlushes++;
}
#ifndef QT_NO_COP
QCopEnvelope e1( "QPE/System", "flush()" );
#endif
QTimer::singleShot( 10000, this, SLOT(runDirectAccess()) );
#warning FIXME support TempScreenSaverMode
#if 0
QPEApplication::setTempScreenSaverMode(QPEApplication::DisableSuspend);
#endif
}
// This is only connected if QPE_HAVE_DIRECT_ACCESS is defined
// It fakes the presence of Qtopia Desktop
void Server::desktopMessage( const QCString &message, const QByteArray &data )
{
QDataStream stream( data, IO_ReadOnly );
if ( message == "flushDone(QString)" ) {
- QString app;
- stream >> app;
- qDebug( "flushDone from %s", app.latin1() );
- if ( --pendingFlushes == 0 ) {
- qDebug( "pendingFlushes == 0, all the apps responded" );
- runDirectAccess();
- }
+ QString app;
+ stream >> app;
+ qDebug( "flushDone from %s", app.latin1() );
+ if ( --pendingFlushes == 0 ) {
+ qDebug( "pendingFlushes == 0, all the apps responded" );
+ runDirectAccess();
+ }
} else if ( message == "installStarted(QString)" ) {
- QString package;
- stream >> package;
- qDebug( "\tInstall Started for package %s", package.latin1() );
+ QString package;
+ stream >> package;
+ qDebug( "\tInstall Started for package %s", package.latin1() );
} else if ( message == "installStep(QString)" ) {
- QString step;
- stream >> step;
- qDebug( "\tInstall Step %s", step.latin1() );
+ QString step;
+ stream >> step;
+ qDebug( "\tInstall Step %s", step.latin1() );
} else if ( message == "installDone(QString)" ) {
- QString package;
- stream >> package;
- qDebug( "\tInstall Finished for package %s", package.latin1() );
+ QString package;
+ stream >> package;
+ qDebug( "\tInstall Finished for package %s", package.latin1() );
} else if ( message == "installFailed(QString,int,QString)" ) {
- QString package, error;
- int status;
- stream >> package >> status >> error;
- qDebug( "\tInstall Failed for package %s with error code %d and error message %s",
- package.latin1(), status, error.latin1() );
+ QString package, error;
+ int status;
+ stream >> package >> status >> error;
+ qDebug( "\tInstall Failed for package %s with error code %d and error message %s",
+ package.latin1(), status, error.latin1() );
} else if ( message == "removeStarted(QString)" ) {
- QString package;
- stream >> package;
- qDebug( "\tRemove Started for package %s", package.latin1() );
+ QString package;
+ stream >> package;
+ qDebug( "\tRemove Started for package %s", package.latin1() );
} else if ( message == "removeDone(QString)" ) {
- QString package;
- stream >> package;
- qDebug( "\tRemove Finished for package %s", package.latin1() );
+ QString package;
+ stream >> package;
+ qDebug( "\tRemove Finished for package %s", package.latin1() );
} else if ( message == "removeFailed(QString)" ) {
- QString package;
- stream >> package;
- qDebug( "\tRemove Failed for package %s", package.latin1() );
+ QString package;
+ stream >> package;
+ qDebug( "\tRemove Failed for package %s", package.latin1() );
}
if ( qrr && qrr->waitingForMessages )
- qrr->desktopMessage( message, data );
+ qrr->desktopMessage( message, data );
}
// This is only connected if QPE_HAVE_DIRECT_ACCESS is defined
void Server::runDirectAccess()
{
#ifdef QPE_HAVE_DIRECT_ACCESS
// The timer must have fired after all the apps responded
// with flushDone(). Just ignore it.
if ( directAccessRun )
- return;
+ return;
directAccessRun = TRUE;
::readyDirectAccess(cardInfoString(), installLocationsString());
#endif
}
// This is only called if QPE_HAVE_DIRECT_ACCESS is defined
void Server::postDirectAccess()
{
#ifdef QPE_HAVE_DIRECT_ACCESS
qDebug( "Server::postDirectAccess()" );
// Categories may have changed
QCopEnvelope e1( "QPE/System", "categoriesChanged()" );
// Apps need to reload their data
QCopEnvelope e2( "QPE/System", "reload()" );
// Reload DocLinks
docList->storageChanged();
// Restart the PDA server stuff
startTransferServer();
// restart the mtab monitor
#ifndef QT_NO_COP
{
- QCopEnvelope e( "QPE/Stabmon", "restartMonitor()" );
+ QCopEnvelope e( "QPE/Stabmon", "restartMonitor()" );
}
#endif
// Process queued requests
const char *queueFile = ::directAccessQueueFile();
QFile *file = new QFile( queueFile );
if ( !file->exists() ) {
- delete file;
- // Get rid of the dialog
- if ( syncDialog ) {
- delete syncDialog;
- syncDialog = 0;
- }
+ delete file;
+ // Get rid of the dialog
+ if ( syncDialog ) {
+ delete syncDialog;
+ syncDialog = 0;
+ }
#warning FIXME support TempScreenSaverMode
#if 0
- QPEApplication::setTempScreenSaverMode(QPEApplication::Enable);
+ QPEApplication::setTempScreenSaverMode(QPEApplication::Enable);
#endif
} else {
- qrr = new QueuedRequestRunner( file, syncDialog );
- connect( qrr, SIGNAL(finished()),
- this, SLOT(finishedQueuedRequests()) );
- QTimer::singleShot( 100, qrr, SLOT(process()) );
- // qrr will remove the sync dialog later
+ qrr = new QueuedRequestRunner( file, syncDialog );
+ connect( qrr, SIGNAL(finished()),
+ this, SLOT(finishedQueuedRequests()) );
+ QTimer::singleShot( 100, qrr, SLOT(process()) );
+ // qrr will remove the sync dialog later
}
#endif
}
void Server::finishedQueuedRequests()
{
if ( qrr->readyToDelete ) {
- delete qrr;
- qrr = 0;
- // Get rid of the dialog
- if ( syncDialog ) {
- delete syncDialog;
- syncDialog = 0;
- }
+ delete qrr;
+ qrr = 0;
+ // Get rid of the dialog
+ if ( syncDialog ) {
+ delete syncDialog;
+ syncDialog = 0;
+ }
#warning FIXME support TempScreenSaverMode
#if 0
- QPEApplication::setTempScreenSaverMode(QPEApplication::Enable);
+ QPEApplication::setTempScreenSaverMode(QPEApplication::Enable);
#endif
} else {
- qrr->readyToDelete = TRUE;
- QTimer::singleShot( 0, this, SLOT(finishedQueuedRequests()) );
+ qrr->readyToDelete = TRUE;
+ QTimer::singleShot( 0, this, SLOT(finishedQueuedRequests()) );
}
}