summaryrefslogtreecommitdiff
authorleseb <leseb>2002-08-30 18:10:11 (UTC)
committer leseb <leseb>2002-08-30 18:10:11 (UTC)
commitb5ec106e5f612042987397a5a5b6683fdabaf793 (patch) (unidiff)
tree58da0aac60a7a39cca162fe222107c9e3d676dac
parentf6125710c0ca99fc62ffce69973a168b6604f29d (diff)
downloadopie-b5ec106e5f612042987397a5a5b6683fdabaf793.zip
opie-b5ec106e5f612042987397a5a5b6683fdabaf793.tar.gz
opie-b5ec106e5f612042987397a5a5b6683fdabaf793.tar.bz2
Try to handle RAM storage for documents
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--library/applnk.cpp2
-rw-r--r--library/global.cpp4
-rw-r--r--library/lnkproperties.cpp7
-rw-r--r--library/storage.cpp14
4 files changed, 16 insertions, 11 deletions
diff --git a/library/applnk.cpp b/library/applnk.cpp
index 5185b5f..778ccab 100644
--- a/library/applnk.cpp
+++ b/library/applnk.cpp
@@ -331,25 +331,25 @@ QString AppLnk::file() const
331/*! 331/*!
332 Returns the desktop file coresponding to this AppLnk. 332 Returns the desktop file coresponding to this AppLnk.
333 333
334 \sa file(), exec() 334 \sa file(), exec()
335*/ 335*/
336QString AppLnk::linkFile() const 336QString AppLnk::linkFile() const
337{ 337{
338 if ( mLinkFile.isNull() ) { 338 if ( mLinkFile.isNull() ) {
339 AppLnk* that = (AppLnk*)this; 339 AppLnk* that = (AppLnk*)this;
340 if ( type().contains('/') ) { 340 if ( type().contains('/') ) {
341 StorageInfo storage; 341 StorageInfo storage;
342 const FileSystem *fs = storage.fileSystemOf( that->mFile ); 342 const FileSystem *fs = storage.fileSystemOf( that->mFile );
343 if ( fs && fs->isRemovable() ) { 343 if ( fs && ( fs->isRemovable() || fs->disk() == "/dev/mtdblock6" || fs->disk() == "tmpfs" ) ) {
344 that->mLinkFile = fs->path(); 344 that->mLinkFile = fs->path();
345 } else 345 } else
346 that->mLinkFile = getenv( "HOME" ); 346 that->mLinkFile = getenv( "HOME" );
347 that->mLinkFile += "/Documents/"+type()+"/"+safeFileName(that->mName); 347 that->mLinkFile += "/Documents/"+type()+"/"+safeFileName(that->mName);
348 if ( QFile::exists(that->mLinkFile+".desktop") ) { // ok the file exists lets check if we point to the same file 348 if ( QFile::exists(that->mLinkFile+".desktop") ) { // ok the file exists lets check if we point to the same file
349 int n=1; 349 int n=1;
350 QString nn; 350 QString nn;
351 AppLnk lnk( that->mLinkFile+".desktop" ); 351 AppLnk lnk( that->mLinkFile+".desktop" );
352 if(that->file() != lnk.file() ){ 352 if(that->file() != lnk.file() ){
353 qWarning("AppLnk::linkFile exists %s", that->mLinkFile.latin1() ); 353 qWarning("AppLnk::linkFile exists %s", that->mLinkFile.latin1() );
354 while (QFile::exists((nn=that->mLinkFile+"_"+QString::number(n))+".desktop")){ 354 while (QFile::exists((nn=that->mLinkFile+"_"+QString::number(n))+".desktop")){
355 n++; 355 n++;
diff --git a/library/global.cpp b/library/global.cpp
index edb7b85..ab27b3f 100644
--- a/library/global.cpp
+++ b/library/global.cpp
@@ -672,24 +672,28 @@ void Global::findDocuments(DocLnkSet* folder, const QString &mimefilter)
672 */ 672 */
673 StorageInfo storage; 673 StorageInfo storage;
674 const QList<FileSystem> &fs = storage.fileSystems(); 674 const QList<FileSystem> &fs = storage.fileSystems();
675 QListIterator<FileSystem> it ( fs ); 675 QListIterator<FileSystem> it ( fs );
676 for ( ; it.current(); ++it ) { 676 for ( ; it.current(); ++it ) {
677 if ( (*it)->isRemovable() ) { // let's find out if we should search on it 677 if ( (*it)->isRemovable() ) { // let's find out if we should search on it
678 // this is a candidate look at the cf and see if we should search on it 678 // this is a candidate look at the cf and see if we should search on it
679 QString path = (*it)->path(); 679 QString path = (*it)->path();
680 if( !checkStorage((*it)->path() + "/.opiestorage.cf" ) ) 680 if( !checkStorage((*it)->path() + "/.opiestorage.cf" ) )
681 continue; 681 continue;
682 DocLnkSet ide( path, mimefilter ); 682 DocLnkSet ide( path, mimefilter );
683 folder->appendFrom(ide); 683 folder->appendFrom(ide);
684 } else if ( (*it)->disk() == "/dev/mtdblock6" || (*it)->disk() == "tmpfs" ) {
685 QString path = (*it)->path() + "/Documents";
686 DocLnkSet ide( path, mimefilter );
687 folder->appendFrom(ide);
684 } 688 }
685 } 689 }
686} 690}
687 691
688QStringList Global::languageList() 692QStringList Global::languageList()
689{ 693{
690 QString lang = getenv("LANG"); 694 QString lang = getenv("LANG");
691 QStringList langs; 695 QStringList langs;
692 langs.append(lang); 696 langs.append(lang);
693 int i = lang.find("."); 697 int i = lang.find(".");
694 if ( i > 0 ) 698 if ( i > 0 )
695 lang = lang.left( i ); 699 lang = lang.left( i );
diff --git a/library/lnkproperties.cpp b/library/lnkproperties.cpp
index e8baca6..c020328 100644
--- a/library/lnkproperties.cpp
+++ b/library/lnkproperties.cpp
@@ -164,33 +164,34 @@ void LnkProperties::setupLocations()
164 QListIterator<FileSystem> it ( fs ); 164 QListIterator<FileSystem> it ( fs );
165 QString s; 165 QString s;
166 QString homeDir = getenv("HOME"); 166 QString homeDir = getenv("HOME");
167 QString hardDiskHome; 167 QString hardDiskHome;
168 QString hardDiskPath; 168 QString hardDiskPath;
169 int index = 0; 169 int index = 0;
170 currentLocation = -1; 170 currentLocation = -1;
171 for ( ; it.current(); ++it ) { 171 for ( ; it.current(); ++it ) {
172 // we add 10k to the file size so we are sure we can also save the desktop file 172 // we add 10k to the file size so we are sure we can also save the desktop file
173 if ( (*it)->availBlocks() * (*it)->blockSize() > fileSize + 10000 ) { 173 if ( (*it)->availBlocks() * (*it)->blockSize() > fileSize + 10000 ) {
174 if ( (*it)->isRemovable() || 174 if ( (*it)->isRemovable() ||
175 (*it)->disk() == "/dev/mtdblock1" || 175 (*it)->disk() == "/dev/mtdblock1" ||
176 (*it)->disk() == "/dev/mtdblock/1" || (*it)->disk().left(13) == "/dev/mtdblock" ) { 176 (*it)->disk() == "/dev/mtdblock/1" || (*it)->disk().left(13) == "/dev/mtdblock" ||
177 (*it)->disk() == "/dev/mtdblock6" || (*it)->disk() == "tmpfs" ) {
177 d->locationCombo->insertItem( (*it)->name(), index ); 178 d->locationCombo->insertItem( (*it)->name(), index );
178 locations.append( ((*it)->isRemovable() ? (*it)->path() : homeDir) ); 179 locations.append( ((*it)->isRemovable() || (*it)->disk() == "/dev/mtdblock6" || (*it)->disk() == "tmpfs" ? (*it)->path() : homeDir) );
179 if ( lnk->file().contains( (*it)->path() ) ) { 180 if ( lnk->file().contains( (*it)->path() ) ) {
180 d->locationCombo->setCurrentItem( index ); 181 d->locationCombo->setCurrentItem( index );
181 currentLocation = index; 182 currentLocation = index;
182 } 183 }
183 index++; 184 index++;
184 } else if ( (*it)->name().contains( "Hard Disk") && 185 } else if ( (*it)->name().contains( tr("Hard Disk") ) &&
185 homeDir.contains( (*it)->path() ) && 186 homeDir.contains( (*it)->path() ) &&
186 (*it)->path().length() > hardDiskHome.length() ) { 187 (*it)->path().length() > hardDiskHome.length() ) {
187 hardDiskHome = (*it)->name(); 188 hardDiskHome = (*it)->name();
188 hardDiskPath = (*it)->path(); 189 hardDiskPath = (*it)->path();
189 } 190 }
190 } 191 }
191 } 192 }
192 if ( !hardDiskHome.isEmpty() ) { 193 if ( !hardDiskHome.isEmpty() ) {
193 d->locationCombo->insertItem( hardDiskHome ); 194 d->locationCombo->insertItem( hardDiskHome );
194 locations.append( hardDiskPath ); 195 locations.append( hardDiskPath );
195 if ( currentLocation == -1 ) { // assume it's the hard disk 196 if ( currentLocation == -1 ) { // assume it's the hard disk
196 d->locationCombo->setCurrentItem( index ); 197 d->locationCombo->setCurrentItem( index );
diff --git a/library/storage.cpp b/library/storage.cpp
index 2d996fa..13639fe 100644
--- a/library/storage.cpp
+++ b/library/storage.cpp
@@ -96,25 +96,25 @@ void StorageInfo::update()
96 FILE *mntfp = setmntent( "/etc/mtab", "r" ); 96 FILE *mntfp = setmntent( "/etc/mtab", "r" );
97 97
98 QStringList curdisks; 98 QStringList curdisks;
99 QStringList curopts; 99 QStringList curopts;
100 QStringList curfs; 100 QStringList curfs;
101 bool rebuild = FALSE; 101 bool rebuild = FALSE;
102 int n=0; 102 int n=0;
103 if ( mntfp ) { 103 if ( mntfp ) {
104 while ( (me = getmntent( mntfp )) != 0 ) { 104 while ( (me = getmntent( mntfp )) != 0 ) {
105 QString fs = me->mnt_fsname; 105 QString fs = me->mnt_fsname;
106 if ( fs.left(7)=="/dev/hd" || fs.left(7)=="/dev/sd" 106 if ( fs.left(7)=="/dev/hd" || fs.left(7)=="/dev/sd"
107 || fs.left(8)=="/dev/mtd" || fs.left(9) == "/dev/mmcd" 107 || fs.left(8)=="/dev/mtd" || fs.left(9) == "/dev/mmcd"
108 || fs.left(8)=="/dev/ram" || fs.left(5)=="tmpfs" ) 108 || fs.left(5)=="tmpfs" )
109 { 109 {
110 n++; 110 n++;
111 curdisks.append(fs); 111 curdisks.append(fs);
112 curopts.append( me->mnt_opts ); 112 curopts.append( me->mnt_opts );
113 //qDebug("-->fs %s opts %s", fs.latin1(), me->mnt_opts ); 113 //qDebug("-->fs %s opts %s", fs.latin1(), me->mnt_opts );
114 curfs.append( me->mnt_dir ); 114 curfs.append( me->mnt_dir );
115 bool found = FALSE; 115 bool found = FALSE;
116 for (QListIterator<FileSystem> i(mFileSystems); i.current(); ++i) { 116 for (QListIterator<FileSystem> i(mFileSystems); i.current(); ++i) {
117 if ( (*i)->disk() == fs ) { 117 if ( (*i)->disk() == fs ) {
118 found = TRUE; 118 found = TRUE;
119 break; 119 break;
120 } 120 }
@@ -136,37 +136,37 @@ void StorageInfo::update()
136 QString disk = *it; 136 QString disk = *it;
137 QString humanname; 137 QString humanname;
138 bool removable = FALSE; 138 bool removable = FALSE;
139 if ( isCF(disk) ) { 139 if ( isCF(disk) ) {
140 humanname = tr("CF Card"); 140 humanname = tr("CF Card");
141 removable = TRUE; 141 removable = TRUE;
142 } else if ( disk == "/dev/hda1" ) { 142 } else if ( disk == "/dev/hda1" ) {
143 humanname = tr("Hard Disk"); 143 humanname = tr("Hard Disk");
144 } else if ( disk.left(9) == "/dev/mmcd" ) { 144 } else if ( disk.left(9) == "/dev/mmcd" ) {
145 humanname = tr("SD Card"); 145 humanname = tr("SD Card");
146 removable = TRUE; 146 removable = TRUE;
147 } else if ( disk.left(7) == "/dev/hd" ) 147 } else if ( disk.left(7) == "/dev/hd" )
148 humanname = tr("Hard Disk") + " " + humanname.mid(7); 148 humanname = tr("Hard Disk") + " " + disk.mid(7);
149 else if ( disk.left(7) == "/dev/sd" ) 149 else if ( disk.left(7) == "/dev/sd" )
150 humanname = tr("SCSI Hard Disk") + " " + humanname.mid(7); 150 humanname = tr("SCSI Hard Disk") + " " + disk.mid(7);
151 else if ( disk.left(14) == "/dev/mtdblock6" ) //openzaurus ramfs 151 else if ( disk.left(14) == "/dev/mtdblock6" ) //openzaurus ramfs
152 humanname = tr("Ram FS") + " " + humanname.mid(14); 152 humanname = tr("Internal Memory");
153 else if ( disk == "/dev/mtdblock1" || humanname == "/dev/mtdblock/1" ) 153 else if ( disk == "/dev/mtdblock1" || humanname == "/dev/mtdblock/1" )
154 humanname = tr("Internal Storage"); 154 humanname = tr("Internal Storage");
155 else if ( disk.left(14) == "/dev/mtdblock/" ) 155 else if ( disk.left(14) == "/dev/mtdblock/" )
156 humanname = tr("Internal Storage") + " " + humanname.mid(14); 156 humanname = tr("Internal Storage") + " " + disk.mid(14);
157 else if ( disk.left(13) == "/dev/mtdblock" ) 157 else if ( disk.left(13) == "/dev/mtdblock" )
158 humanname = tr("Internal Storage") + " " + humanname.mid(13); 158 humanname = tr("Internal Storage") + " " + disk.mid(13);
159 else if ( disk.left(5) == "tmpfs" ) //ipaqs /mnt/ramfs 159 else if ( disk.left(5) == "tmpfs" ) //ipaqs /mnt/ramfs
160 humanname = tr("Ram FS") + " " + humanname.mid(5); 160 humanname = tr("Internal Memory");
161 FileSystem *fs = new FileSystem( disk, *fsit, humanname, removable, opts ); 161 FileSystem *fs = new FileSystem( disk, *fsit, humanname, removable, opts );
162 mFileSystems.append( fs ); 162 mFileSystems.append( fs );
163 } 163 }
164 emit disksChanged(); 164 emit disksChanged();
165 } else { 165 } else {
166 // just update them 166 // just update them
167 for (QListIterator<FileSystem> i(mFileSystems); i.current(); ++i) 167 for (QListIterator<FileSystem> i(mFileSystems); i.current(); ++i)
168 i.current()->update(); 168 i.current()->update();
169 } 169 }
170#endif 170#endif
171} 171}
172 172