summaryrefslogtreecommitdiff
path: root/core/launcher/launcher.cpp
Unidiff
Diffstat (limited to 'core/launcher/launcher.cpp') (more/less context) (show whitespace changes)
-rw-r--r--core/launcher/launcher.cpp158
1 files changed, 61 insertions, 97 deletions
diff --git a/core/launcher/launcher.cpp b/core/launcher/launcher.cpp
index 0205622..8b2907a 100644
--- a/core/launcher/launcher.cpp
+++ b/core/launcher/launcher.cpp
@@ -19,14 +19,12 @@
19**********************************************************************/ 19**********************************************************************/
20 20
21// WARNING: Do *NOT* define this yourself. The SL5xxx from SHARP does NOT 21// WARNING: Do *NOT* define this yourself. The SL5xxx from SHARP does NOT
22// have this class. 22// have this class.
23#define QTOPIA_INTERNAL_FSLP 23#define QTOPIA_INTERNAL_FSLP
24 24
25//#include <opie/ofiledialog.h>
26#include <opie/ofileselector.h>
27#include <qpe/qcopenvelope_qws.h> 25#include <qpe/qcopenvelope_qws.h>
28#include <qpe/resource.h> 26#include <qpe/resource.h>
29#include <qpe/applnk.h> 27#include <qpe/applnk.h>
30#include <qpe/config.h> 28#include <qpe/config.h>
31#include <qpe/global.h> 29#include <qpe/global.h>
32#include <qpe/qpeapplication.h> 30#include <qpe/qpeapplication.h>
@@ -162,47 +160,47 @@ void CategoryTabWidget::showTab(const QString& id)
162 categoryBar->setCurrentTab( idx ); 160 categoryBar->setCurrentTab( idx );
163 } 161 }
164} 162}
165 163
166void CategoryTabWidget::addItem( const QString& linkfile ) 164void CategoryTabWidget::addItem( const QString& linkfile )
167{ 165{
168// int i=0; 166 int i=0;
169// AppLnk *app = new AppLnk(linkfile); 167 AppLnk *app = new AppLnk(linkfile);
170// if ( !app->isValid() ) { 168 if ( !app->isValid() ) {
171// delete app; 169 delete app;
172// app=0; 170 app=0;
173// } 171 }
174// if ( !app || !app->file().isEmpty() ) { 172 if ( !app || !app->file().isEmpty() ) {
175 // A document 173 // A document
176// delete app; 174 delete app;
177// app = new DocLnk(linkfile); 175 app = new DocLnk(linkfile);
178// if ( app->fileKnown() ) { 176 if ( app->fileKnown() ) {
179// ((LauncherView*)(stack->widget(ids.count()-1)))->addItem(app); 177 ((LauncherView*)(stack->widget(ids.count()-1)))->addItem(app);
180// } else { 178 } else {
181// ((LauncherView*)(stack->widget(ids.count()-1)))->sort(); 179 ((LauncherView*)(stack->widget(ids.count()-1)))->sort();
182// delete app; 180 delete app;
183// } 181 }
184// return; 182 return;
185// } 183 }
186 // An application 184 // An application
187// for ( QStringList::Iterator it=ids.begin(); it!=ids.end(); ++it) { 185 for ( QStringList::Iterator it=ids.begin(); it!=ids.end(); ++it) {
188// if ( !(*it).isEmpty() ) { 186 if ( !(*it).isEmpty() ) {
189// QRegExp tf(*it,FALSE,TRUE); 187 QRegExp tf(*it,FALSE,TRUE);
190// if ( tf.match(app->type()) >= 0 ) { 188 if ( tf.match(app->type()) >= 0 ) {
191// ((LauncherView*)stack->widget(i))->addItem(app); 189 ((LauncherView*)stack->widget(i))->addItem(app);
192// return; 190 return;
193// } 191 }
194// i++; 192 i++;
195 // } 193 }
196 // } 194 }
197 195
198 QCopEnvelope e("QPE/TaskBar","reloadApps()"); 196 QCopEnvelope e("QPE/TaskBar","reloadApps()");
199} 197}
200 198
201void CategoryTabWidget::initializeCategories(AppLnkSet* rootFolder, 199void CategoryTabWidget::initializeCategories(AppLnkSet* rootFolder,
202 AppLnkSet* /*docFolder*/, const QList<FileSystem> & /*fs*/) 200 AppLnkSet* docFolder, const QList<FileSystem> &fs)
203{ 201{
204 QString current; 202 QString current;
205 if ( categoryBar ) { 203 if ( categoryBar ) {
206 int c = categoryBar->currentTab(); 204 int c = categoryBar->currentTab();
207 if ( c >= 0 ) current = ids[c]; 205 if ( c >= 0 ) current = ids[c];
208 } 206 }
@@ -250,29 +248,19 @@ void CategoryTabWidget::initializeCategories(AppLnkSet* rootFolder,
250 ((LauncherView*)stack->widget(i))->sort(); 248 ((LauncherView*)stack->widget(i))->sort();
251 249
252 // all documents 250 // all documents
253 QImage img( Resource::loadImage( "DocsIcon" ) ); 251 QImage img( Resource::loadImage( "DocsIcon" ) );
254 QPixmap pm; 252 QPixmap pm;
255 pm = img.smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ); 253 pm = img.smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() );
256 254 docview = newView( "Documents", // No tr
257 //ljpotter 255 pm, tr("Documents"));
258 CategoryTab *catTab ; 256 docview->populate( docFolder, QString::null );
259 catTab = new CategoryTab( pm, "Documents" ); 257 docFolder->detachChildren();
260 258 docview->setFileSystems(fs);
261 categoryBar->addTab( catTab ); 259 docview->setToolsEnabled(TRUE);
262 260 setTabAppearance( "Documents", cfg ); // No tr
263 fileSel = new DocumentTab( stack, 4, 0, "/","");
264 stack->addWidget( fileSel, tabs++ );
265
266 // fileSel->hide();
267
268 connect( fileSel, SIGNAL( fileSelected( const DocLnk & )),
269 this, SLOT(clickie(const DocLnk&)) );
270
271// connect( fileSel, SIGNAL( fileSelected( const QString & )),
272// this, SLOT(clickie(const QString&)) );
273 261
274 connect( categoryBar, SIGNAL(selected(int)), stack, SLOT(raiseWidget(int)) ); 262 connect( categoryBar, SIGNAL(selected(int)), stack, SLOT(raiseWidget(int)) );
275 263
276 ((LauncherView*)stack->widget(0))->setFocus(); 264 ((LauncherView*)stack->widget(0))->setFocus();
277 265
278 cfg. setGroup ( "GUI" ); 266 cfg. setGroup ( "GUI" );
@@ -282,26 +270,15 @@ void CategoryTabWidget::initializeCategories(AppLnkSet* rootFolder,
282 showTab(current); 270 showTab(current);
283 } 271 }
284 272
285 categoryBar->show(); 273 categoryBar->show();
286 stack->show(); 274 stack->show();
287 275
288
289 QCopEnvelope e("QPE/TaskBar","reloadApps()"); 276 QCopEnvelope e("QPE/TaskBar","reloadApps()");
290} 277}
291 278
292void CategoryTabWidget::clickie(const DocLnk &lnk) {
293 lnk.execute();
294 // fileSel->reparse();
295}
296
297void CategoryTabWidget::clickie(const QString &appStr) {
298// DocLnk lnk(appStr);
299// lnk.execute();
300}
301
302void CategoryTabWidget::setTabAppearance( const QString &id, Config &cfg ) 279void CategoryTabWidget::setTabAppearance( const QString &id, Config &cfg )
303{ 280{
304 QString grp( "Tab %1" ); // No tr 281 QString grp( "Tab %1" ); // No tr
305 cfg.setGroup( grp.arg(id) ); 282 cfg.setGroup( grp.arg(id) );
306 LauncherView *v = view( id ); 283 LauncherView *v = view( id );
307 int idx = ids.findIndex( id ); 284 int idx = ids.findIndex( id );
@@ -338,16 +315,19 @@ void CategoryTabWidget::setTabAppearance( const QString &id, Config &cfg )
338 if ( tabTextCol.isEmpty() ) 315 if ( tabTextCol.isEmpty() )
339 tab->fgColor = QColor(); 316 tab->fgColor = QColor();
340 else 317 else
341 tab->fgColor = QColor(tabTextCol); 318 tab->fgColor = QColor(tabTextCol);
342} 319}
343 320
344//void CategoryTabWidget::updateDocs(AppLnkSet* docFolder, const QList<FileSystem> & /*fs*/) 321void CategoryTabWidget::updateDocs(AppLnkSet* docFolder, const QList<FileSystem> &fs)
345//{ 322{
346 // docFolder->detachChildren(); 323 docview->populate( docFolder, QString::null );
347//} 324 docFolder->detachChildren();
325 docview->setFileSystems(fs);
326 docview->updateTools();
327}
348 328
349void CategoryTabWidget::tabProperties() 329void CategoryTabWidget::tabProperties()
350{ 330{
351 LauncherView *view = (LauncherView*)stack->widget( categoryBar->currentTab() ); 331 LauncherView *view = (LauncherView*)stack->widget( categoryBar->currentTab() );
352 QPopupMenu *m = new QPopupMenu( this ); 332 QPopupMenu *m = new QPopupMenu( this );
353 m->insertItem( tr("Icon View"), LauncherView::Icon ); 333 m->insertItem( tr("Icon View"), LauncherView::Icon );
@@ -360,13 +340,13 @@ void CategoryTabWidget::tabProperties()
360 340
361 delete m; 341 delete m;
362} 342}
363 343
364QString CategoryTabWidget::getAllDocLinkInfo() const 344QString CategoryTabWidget::getAllDocLinkInfo() const
365{ 345{
366 return ""; 346 return docview->getAllDocLinkInfo();
367} 347}
368 348
369LauncherView* CategoryTabWidget::newView( const QString& id, const QPixmap& pm, const QString& label ) 349LauncherView* CategoryTabWidget::newView( const QString& id, const QPixmap& pm, const QString& label )
370{ 350{
371 LauncherView* view = new LauncherView( stack ); 351 LauncherView* view = new LauncherView( stack );
372 connect( view, SIGNAL(clicked(const AppLnk*)), 352 connect( view, SIGNAL(clicked(const AppLnk*)),
@@ -378,20 +358,21 @@ LauncherView* CategoryTabWidget::newView( const QString& id, const QPixmap& pm,
378 stack->addWidget( view, tabs++ ); 358 stack->addWidget( view, tabs++ );
379 return view; 359 return view;
380} 360}
381 361
382void CategoryTabWidget::updateLink(const QString& linkfile) 362void CategoryTabWidget::updateLink(const QString& linkfile)
383{ 363{
384 // LauncherView* view; 364 int i=0;
385 qApp->processEvents(); 365 LauncherView* view;
386// while ((view = (LauncherView*)stack->widget(i++))) { 366 //qApp->processEvents();
387// if ( view->removeLink(linkfile) ) 367 while ((view = (LauncherView*)stack->widget(i++))) {
388// break; 368 if ( view->removeLink(linkfile) )
389// } 369 break;
390 // addItem(linkfile); 370 }
391 fileSel->reparse(); 371 addItem(linkfile);
372 docview->updateTools();
392} 373}
393 374
394void CategoryTabWidget::paletteChange( const QPalette &p ) 375void CategoryTabWidget::paletteChange( const QPalette &p )
395{ 376{
396 QVBox::paletteChange( p ); 377 QVBox::paletteChange( p );
397 QPalette pal = palette(); 378 QPalette pal = palette();
@@ -403,13 +384,13 @@ void CategoryTabWidget::paletteChange( const QPalette &p )
403 384
404void CategoryTabWidget::setBusy(bool on) 385void CategoryTabWidget::setBusy(bool on)
405{ 386{
406 if ( on ) 387 if ( on )
407 ((LauncherView*)stack->visibleWidget())->setBusy(TRUE); 388 ((LauncherView*)stack->visibleWidget())->setBusy(TRUE);
408 else 389 else
409 for (int i=0; i<tabs-1; i++) 390 for (int i=0; i<tabs; i++)
410 ((LauncherView*)stack->widget(i))->setBusy(FALSE); 391 ((LauncherView*)stack->widget(i))->setBusy(FALSE);
411} 392}
412 393
413LauncherView *CategoryTabWidget::view( const QString &id ) 394LauncherView *CategoryTabWidget::view( const QString &id )
414{ 395{
415 int idx = ids.findIndex( id ); 396 int idx = ids.findIndex( id );
@@ -664,13 +645,12 @@ Launcher::Launcher( QWidget* parent, const char* name, WFlags fl )
664 this, SLOT(viewSelected(const QString&)) ); 645 this, SLOT(viewSelected(const QString&)) );
665 connect( tabs, SIGNAL(clicked(const AppLnk*)), 646 connect( tabs, SIGNAL(clicked(const AppLnk*)),
666 this, SLOT(select(const AppLnk*))); 647 this, SLOT(select(const AppLnk*)));
667 connect( tabs, SIGNAL(rightPressed(AppLnk*)), 648 connect( tabs, SIGNAL(rightPressed(AppLnk*)),
668 this, SLOT(properties(AppLnk*))); 649 this, SLOT(properties(AppLnk*)));
669 650
670
671#if !defined(QT_NO_COP) 651#if !defined(QT_NO_COP)
672 QCopChannel* sysChannel = new QCopChannel( "QPE/System", this ); 652 QCopChannel* sysChannel = new QCopChannel( "QPE/System", this );
673 connect( sysChannel, SIGNAL(received(const QCString &, const QByteArray &)), 653 connect( sysChannel, SIGNAL(received(const QCString &, const QByteArray &)),
674 this, SLOT(systemMessage( const QCString &, const QByteArray &)) ); 654 this, SLOT(systemMessage( const QCString &, const QByteArray &)) );
675 QCopChannel *channel = new QCopChannel( "QPE/Launcher", this ); 655 QCopChannel *channel = new QCopChannel( "QPE/Launcher", this );
676 connect( channel, SIGNAL(received(const QCString&, const QByteArray&)), 656 connect( channel, SIGNAL(received(const QCString&, const QByteArray&)),
@@ -749,19 +729,22 @@ void Launcher::updateMimeTypes(AppLnkSet* folder)
749 * c) the user enabled medium checking on a per medium bases 729 * c) the user enabled medium checking on a per medium bases
750 * c1) we already checked and its not ask again turns 730 * c1) we already checked and its not ask again turns
751 * c2) we need to ask and then apply the mimefilter 731 * c2) we need to ask and then apply the mimefilter
752 */ 732 */
753void Launcher::loadDocs() // ok here comes a hack belonging to Global:: 733void Launcher::loadDocs() // ok here comes a hack belonging to Global::
754{ 734{
735
755 OWait *owait = new OWait(); 736 OWait *owait = new OWait();
756 Global::statusMessage( tr( "Finding documents" ) ); 737 Global::statusMessage( tr( "Finding documents" ) );
757 738
758 owait->show(); 739 owait->show();
759 qApp->processEvents(); 740 qApp->processEvents();
760 if(docsFolder) delete docsFolder; 741
742 delete docsFolder;
761 docsFolder = new DocLnkSet; 743 docsFolder = new DocLnkSet;
744
762 DocLnkSet *tmp = 0; 745 DocLnkSet *tmp = 0;
763 QString home = QString(getenv("HOME")) + "/Documents"; 746 QString home = QString(getenv("HOME")) + "/Documents";
764 tmp = new DocLnkSet( home , QString::null); 747 tmp = new DocLnkSet( home , QString::null);
765 docsFolder->appendFrom( *tmp ); 748 docsFolder->appendFrom( *tmp );
766 delete tmp; 749 delete tmp;
767 750
@@ -778,17 +761,15 @@ void Launcher::loadDocs() // ok here comes a hack belonging to Global::
778 } 761 }
779 } 762 }
780 763
781 Config mediumCfg( "medium"); 764 Config mediumCfg( "medium");
782 mediumCfg.setGroup("main"); 765 mediumCfg.setGroup("main");
783 // a) -zecke we don't want to check 766 // a) -zecke we don't want to check
784 if(!mediumCfg.readBoolEntry("use", true ) ) { 767 if(!mediumCfg.readBoolEntry("use", true ) )
785 owait->hide();
786 delete owait;
787 return; 768 return;
788 } 769
789 // find out wich filesystems are new in this round 770 // find out wich filesystems are new in this round
790 // We will do this by having a timestamp inside each mountpoint 771 // We will do this by having a timestamp inside each mountpoint
791 // if the current timestamp doesn't match this is a new file system and 772 // if the current timestamp doesn't match this is a new file system and
792 // come up with our MediumMountGui :) let the hacking begin 773 // come up with our MediumMountGui :) let the hacking begin
793 int stamp = uidgen.generate(); 774 int stamp = uidgen.generate();
794 775
@@ -801,14 +782,12 @@ void Launcher::loadDocs() // ok here comes a hack belonging to Global::
801 if( (*it)->isRemovable() ){ 782 if( (*it)->isRemovable() ){
802 tmp = new DocLnkSet( (*it)->path(), mime ); 783 tmp = new DocLnkSet( (*it)->path(), mime );
803 docsFolder->appendFrom( *tmp ); 784 docsFolder->appendFrom( *tmp );
804 delete tmp; 785 delete tmp;
805 } 786 }
806 } // done 787 } // done
807 owait->hide();
808 delete owait;
809 return; // save the else 788 return; // save the else
810 } 789 }
811 // c) zecke 790 // c) zecke
812 for ( it.toFirst(); it.current(); ++it ) { 791 for ( it.toFirst(); it.current(); ++it ) {
813 if ( (*it)->isRemovable() ) { // let's find out if we should search on it 792 if ( (*it)->isRemovable() ) { // let's find out if we should search on it
814 Config cfg( (*it)->path() + "/.opiestorage.cf", Config::File); 793 Config cfg( (*it)->path() + "/.opiestorage.cf", Config::File);
@@ -866,24 +845,25 @@ void Launcher::loadDocs() // ok here comes a hack belonging to Global::
866 delete owait; 845 delete owait;
867} 846}
868 847
869void Launcher::updateTabs() 848void Launcher::updateTabs()
870{ 849{
871 MimeType::updateApplications(); // ### reads all applnks twice 850 MimeType::updateApplications(); // ### reads all applnks twice
851
872 delete rootFolder; 852 delete rootFolder;
873 rootFolder = new AppLnkSet( MimeType::appsFolderName() ); 853 rootFolder = new AppLnkSet( MimeType::appsFolderName() );
874 854
875 loadDocs(); 855 loadDocs();
876 856
877 tabs->initializeCategories(rootFolder, docsFolder, storage->fileSystems()); 857 tabs->initializeCategories(rootFolder, docsFolder, storage->fileSystems());
878} 858}
879 859
880void Launcher::updateDocs() 860void Launcher::updateDocs()
881{ 861{
882 loadDocs(); 862 loadDocs();
883 // tabs->updateDocs(docsFolder,storage->fileSystems()); 863 tabs->updateDocs(docsFolder,storage->fileSystems());
884} 864}
885 865
886void Launcher::viewSelected(const QString& s) 866void Launcher::viewSelected(const QString& s)
887{ 867{
888 setCaption( s + tr(" - Launcher") ); 868 setCaption( s + tr(" - Launcher") );
889} 869}
@@ -1334,22 +1314,6 @@ void Launcher::preloadApps()
1334 for (QStringList::ConstIterator it=apps.begin(); it!=apps.end(); ++it) { 1314 for (QStringList::ConstIterator it=apps.begin(); it!=apps.end(); ++it) {
1335#ifndef QT_NO_COP 1315#ifndef QT_NO_COP
1336 QCopEnvelope e("QPE/Application/"+(*it).local8Bit(), "enablePreload()"); 1316 QCopEnvelope e("QPE/Application/"+(*it).local8Bit(), "enablePreload()");
1337#endif 1317#endif
1338 } 1318 }
1339} 1319}
1340
1341DocumentTab::DocumentTab( QWidget *parent, int mode, int selector, const QString &dirName, const QString &fileName)
1342 : OFileSelector(parent,mode,selector,dirName,fileName)
1343{
1344 setYesCancelVisible(false);
1345 setToolbarVisible(false);
1346 setPermissionBarVisible(false);
1347 setLineEditVisible(false) ;
1348 //setChooserVisible( bool chooser );
1349
1350}
1351
1352DocumentTab::~DocumentTab() {
1353
1354}
1355