summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/launcher.cpp5
-rw-r--r--core/launcher/launcherview.cpp5
-rw-r--r--core/launcher/launcherview.h1
3 files changed, 10 insertions, 1 deletions
diff --git a/core/launcher/launcher.cpp b/core/launcher/launcher.cpp
index 5a9ee1b..767efb2 100644
--- a/core/launcher/launcher.cpp
+++ b/core/launcher/launcher.cpp
@@ -790,461 +790,464 @@ void Launcher::loadDocs() // ok here comes a hack belonging to Global::
790 }else{ // we checked 790 }else{ // we checked
791 // do something different see what we need to do 791 // do something different see what we need to do
792 // let's see if we should check the device 792 // let's see if we should check the device
793 cfg.setGroup("main" ); 793 cfg.setGroup("main" );
794 bool check = cfg.readBoolEntry("autocheck", true ); 794 bool check = cfg.readBoolEntry("autocheck", true );
795 if( check ){ // find the documents 795 if( check ){ // find the documents
796 tmp = new DocLnkSet( (*it)->path(), configToMime(&cfg ).join(";") ); 796 tmp = new DocLnkSet( (*it)->path(), configToMime(&cfg ).join(";") );
797 docsFolder->appendFrom( *tmp ); 797 docsFolder->appendFrom( *tmp );
798 delete tmp; 798 delete tmp;
799 } 799 }
800 } 800 }
801 } 801 }
802 } 802 }
803 } 803 }
804 m_timeStamp = newStamp; 804 m_timeStamp = newStamp;
805} 805}
806 806
807void Launcher::updateTabs() 807void Launcher::updateTabs()
808{ 808{
809 MimeType::updateApplications(); // ### reads all applnks twice 809 MimeType::updateApplications(); // ### reads all applnks twice
810 810
811 delete rootFolder; 811 delete rootFolder;
812 rootFolder = new AppLnkSet( MimeType::appsFolderName() ); 812 rootFolder = new AppLnkSet( MimeType::appsFolderName() );
813 813
814 loadDocs(); 814 loadDocs();
815 815
816 tabs->initializeCategories(rootFolder, docsFolder, storage->fileSystems()); 816 tabs->initializeCategories(rootFolder, docsFolder, storage->fileSystems());
817} 817}
818 818
819void Launcher::updateDocs() 819void Launcher::updateDocs()
820{ 820{
821 loadDocs(); 821 loadDocs();
822 tabs->updateDocs(docsFolder,storage->fileSystems()); 822 tabs->updateDocs(docsFolder,storage->fileSystems());
823} 823}
824 824
825void Launcher::viewSelected(const QString& s) 825void Launcher::viewSelected(const QString& s)
826{ 826{
827 setCaption( s + tr(" - Launcher") ); 827 setCaption( s + tr(" - Launcher") );
828} 828}
829 829
830void Launcher::nextView() 830void Launcher::nextView()
831{ 831{
832 tabs->nextTab(); 832 tabs->nextTab();
833} 833}
834 834
835 835
836void Launcher::select( const AppLnk *appLnk ) 836void Launcher::select( const AppLnk *appLnk )
837{ 837{
838 if ( appLnk->type() == "Folder" ) { // No tr 838 if ( appLnk->type() == "Folder" ) { // No tr
839 // Not supported: flat is simpler for the user 839 // Not supported: flat is simpler for the user
840 } else { 840 } else {
841 if ( appLnk->exec().isNull() ) { 841 if ( appLnk->exec().isNull() ) {
842 QMessageBox::information(this,tr("No application"), 842 QMessageBox::information(this,tr("No application"),
843 tr("<p>No application is defined for this document." 843 tr("<p>No application is defined for this document."
844 "<p>Type is %1.").arg(appLnk->type())); 844 "<p>Type is %1.").arg(appLnk->type()));
845 return; 845 return;
846 } 846 }
847 tabs->setBusy(TRUE); 847 tabs->setBusy(TRUE);
848 emit executing( appLnk ); 848 emit executing( appLnk );
849 appLnk->execute(); 849 appLnk->execute();
850 } 850 }
851} 851}
852 852
853void Launcher::externalSelected(const AppLnk *appLnk) 853void Launcher::externalSelected(const AppLnk *appLnk)
854{ 854{
855 tabs->setBusy(TRUE); 855 tabs->setBusy(TRUE);
856 emit executing( appLnk ); 856 emit executing( appLnk );
857} 857}
858 858
859void Launcher::properties( AppLnk *appLnk ) 859void Launcher::properties( AppLnk *appLnk )
860{ 860{
861 if ( appLnk->type() == "Folder" ) { // No tr 861 if ( appLnk->type() == "Folder" ) { // No tr
862 // Not supported: flat is simpler for the user 862 // Not supported: flat is simpler for the user
863 } else { 863 } else {
864 in_lnk_props = TRUE; 864 in_lnk_props = TRUE;
865 got_lnk_change = FALSE; 865 got_lnk_change = FALSE;
866 LnkProperties prop(appLnk); 866 LnkProperties prop(appLnk);
867 connect(&prop, SIGNAL(select(const AppLnk *)), this, SLOT(externalSelected(const AppLnk *))); 867 connect(&prop, SIGNAL(select(const AppLnk *)), this, SLOT(externalSelected(const AppLnk *)));
868 prop.showMaximized(); 868 prop.showMaximized();
869 prop.exec(); 869 prop.exec();
870 in_lnk_props = FALSE; 870 in_lnk_props = FALSE;
871 if ( got_lnk_change ) { 871 if ( got_lnk_change ) {
872 updateLink(lnk_change); 872 updateLink(lnk_change);
873 } 873 }
874 } 874 }
875} 875}
876 876
877void Launcher::updateLink(const QString& link) 877void Launcher::updateLink(const QString& link)
878{ 878{
879 if (link.isNull()) 879 if (link.isNull())
880 updateTabs(); 880 updateTabs();
881 else if (link.isEmpty()) 881 else if (link.isEmpty())
882 updateDocs(); 882 updateDocs();
883 else 883 else
884 tabs->updateLink(link); 884 tabs->updateLink(link);
885} 885}
886 886
887void Launcher::systemMessage( const QCString &msg, const QByteArray &data) 887void Launcher::systemMessage( const QCString &msg, const QByteArray &data)
888{ 888{
889 QDataStream stream( data, IO_ReadOnly ); 889 QDataStream stream( data, IO_ReadOnly );
890 if ( msg == "linkChanged(QString)" ) { 890 if ( msg == "linkChanged(QString)" ) {
891 QString link; 891 QString link;
892 stream >> link; 892 stream >> link;
893 if ( in_lnk_props ) { 893 if ( in_lnk_props ) {
894 got_lnk_change = TRUE; 894 got_lnk_change = TRUE;
895 lnk_change = link; 895 lnk_change = link;
896 } else { 896 } else {
897 updateLink(link); 897 updateLink(link);
898 } 898 }
899 } else if ( msg == "busy()" ) { 899 } else if ( msg == "busy()" ) {
900 emit busy(); 900 emit busy();
901 } else if ( msg == "notBusy(QString)" ) { 901 } else if ( msg == "notBusy(QString)" ) {
902 QString app; 902 QString app;
903 stream >> app; 903 stream >> app;
904 tabs->setBusy(FALSE); 904 tabs->setBusy(FALSE);
905 emit notBusy(app); 905 emit notBusy(app);
906 } else if ( msg == "mkdir(QString)" ) { 906 } else if ( msg == "mkdir(QString)" ) {
907 QString dir; 907 QString dir;
908 stream >> dir; 908 stream >> dir;
909 if ( !dir.isEmpty() ) 909 if ( !dir.isEmpty() )
910 mkdir( dir ); 910 mkdir( dir );
911 } else if ( msg == "rdiffGenSig(QString,QString)" ) { 911 } else if ( msg == "rdiffGenSig(QString,QString)" ) {
912 QString baseFile, sigFile; 912 QString baseFile, sigFile;
913 stream >> baseFile >> sigFile; 913 stream >> baseFile >> sigFile;
914 QRsync::generateSignature( baseFile, sigFile ); 914 QRsync::generateSignature( baseFile, sigFile );
915 } else if ( msg == "rdiffGenDiff(QString,QString,QString)" ) { 915 } else if ( msg == "rdiffGenDiff(QString,QString,QString)" ) {
916 QString baseFile, sigFile, deltaFile; 916 QString baseFile, sigFile, deltaFile;
917 stream >> baseFile >> sigFile >> deltaFile; 917 stream >> baseFile >> sigFile >> deltaFile;
918 QRsync::generateDiff( baseFile, sigFile, deltaFile ); 918 QRsync::generateDiff( baseFile, sigFile, deltaFile );
919 } else if ( msg == "rdiffApplyPatch(QString,QString)" ) { 919 } else if ( msg == "rdiffApplyPatch(QString,QString)" ) {
920 QString baseFile, deltaFile; 920 QString baseFile, deltaFile;
921 stream >> baseFile >> deltaFile; 921 stream >> baseFile >> deltaFile;
922 if ( !QFile::exists( baseFile ) ) { 922 if ( !QFile::exists( baseFile ) ) {
923 QFile f( baseFile ); 923 QFile f( baseFile );
924 f.open( IO_WriteOnly ); 924 f.open( IO_WriteOnly );
925 f.close(); 925 f.close();
926 } 926 }
927 QRsync::applyDiff( baseFile, deltaFile ); 927 QRsync::applyDiff( baseFile, deltaFile );
928#ifndef QT_NO_COP 928#ifndef QT_NO_COP
929 QCopEnvelope e( "QPE/Desktop", "patchApplied(QString)" ); 929 QCopEnvelope e( "QPE/Desktop", "patchApplied(QString)" );
930 e << baseFile; 930 e << baseFile;
931#endif 931#endif
932 } else if ( msg == "rdiffCleanup()" ) { 932 } else if ( msg == "rdiffCleanup()" ) {
933 mkdir( "/tmp/rdiff" ); 933 mkdir( "/tmp/rdiff" );
934 QDir dir; 934 QDir dir;
935 dir.setPath( "/tmp/rdiff" ); 935 dir.setPath( "/tmp/rdiff" );
936 QStringList entries = dir.entryList(); 936 QStringList entries = dir.entryList();
937 for ( QStringList::Iterator it = entries.begin(); it != entries.end(); ++it ) 937 for ( QStringList::Iterator it = entries.begin(); it != entries.end(); ++it )
938 dir.remove( *it ); 938 dir.remove( *it );
939 } else if ( msg == "sendHandshakeInfo()" ) { 939 } else if ( msg == "sendHandshakeInfo()" ) {
940 QString home = getenv( "HOME" ); 940 QString home = getenv( "HOME" );
941#ifndef QT_NO_COP 941#ifndef QT_NO_COP
942 QCopEnvelope e( "QPE/Desktop", "handshakeInfo(QString,bool)" ); 942 QCopEnvelope e( "QPE/Desktop", "handshakeInfo(QString,bool)" );
943 e << home; 943 e << home;
944 int locked = (int) Desktop::screenLocked(); 944 int locked = (int) Desktop::screenLocked();
945 e << locked; 945 e << locked;
946#endif 946#endif
947 } else if ( msg == "autoStart(QString)" ) { 947 } else if ( msg == "autoStart(QString)" ) {
948 QString appName; 948 QString appName;
949 stream >> appName; 949 stream >> appName;
950 Config cfg( "autostart" ); 950 Config cfg( "autostart" );
951 cfg.setGroup( "AutoStart" ); 951 cfg.setGroup( "AutoStart" );
952 if ( appName.compare("clear") == 0){ 952 if ( appName.compare("clear") == 0){
953 cfg.writeEntry("Apps", ""); 953 cfg.writeEntry("Apps", "");
954 } 954 }
955 } else if ( msg == "autoStart(QString,QString)" ) { 955 } else if ( msg == "autoStart(QString,QString)" ) {
956 QString modifier, appName; 956 QString modifier, appName;
957 stream >> modifier >> appName; 957 stream >> modifier >> appName;
958 Config cfg( "autostart" ); 958 Config cfg( "autostart" );
959 cfg.setGroup( "AutoStart" ); 959 cfg.setGroup( "AutoStart" );
960 if ( modifier.compare("add") == 0 ){ 960 if ( modifier.compare("add") == 0 ){
961 // only add if appname is entered 961 // only add if appname is entered
962 if (!appName.isEmpty()) { 962 if (!appName.isEmpty()) {
963 cfg.writeEntry("Apps", appName); 963 cfg.writeEntry("Apps", appName);
964 } 964 }
965 } else if (modifier.compare("remove") == 0 ) { 965 } else if (modifier.compare("remove") == 0 ) {
966 // need to change for multiple entries 966 // need to change for multiple entries
967 // actually remove is right now simular to clear, but in future there 967 // actually remove is right now simular to clear, but in future there
968 // should be multiple apps in autostart possible. 968 // should be multiple apps in autostart possible.
969 QString checkName; 969 QString checkName;
970 checkName = cfg.readEntry("Apps", ""); 970 checkName = cfg.readEntry("Apps", "");
971 if (checkName == appName) { 971 if (checkName == appName) {
972 cfg.writeEntry("Apps", ""); 972 cfg.writeEntry("Apps", "");
973 } 973 }
974 } 974 }
975 // case the autostart feature should be delayed 975 // case the autostart feature should be delayed
976 } else if ( msg == "autoStart(QString,QString,QString)") { 976 } else if ( msg == "autoStart(QString,QString,QString)") {
977 QString modifier, appName, delay; 977 QString modifier, appName, delay;
978 stream >> modifier >> appName >> delay; 978 stream >> modifier >> appName >> delay;
979 Config cfg( "autostart" ); 979 Config cfg( "autostart" );
980 cfg.setGroup( "AutoStart" ); 980 cfg.setGroup( "AutoStart" );
981 if ( modifier.compare("add") == 0 ){ 981 if ( modifier.compare("add") == 0 ){
982 // only add it appname is entered 982 // only add it appname is entered
983 if (!appName.isEmpty()) { 983 if (!appName.isEmpty()) {
984 cfg.writeEntry("Apps", appName); 984 cfg.writeEntry("Apps", appName);
985 cfg.writeEntry("Delay", delay); 985 cfg.writeEntry("Delay", delay);
986 } 986 }
987 } else { 987 } else {
988 } 988 }
989 } 989 }
990 /* 990 /*
991 * QtopiaDesktop relies on the major number 991 * QtopiaDesktop relies on the major number
992 * to start with 1. We're at 0.9 992 * to start with 1. We're at 0.9
993 * so wee need to fake at least 1.4 to be able 993 * so wee need to fake at least 1.4 to be able
994 * to sync with QtopiaDesktop1.6 994 * to sync with QtopiaDesktop1.6
995 */ 995 */
996 else if ( msg == "sendVersionInfo()" ) { 996 else if ( msg == "sendVersionInfo()" ) {
997 QCopEnvelope e( "QPE/Desktop", "versionInfo(QString)" ); 997 QCopEnvelope e( "QPE/Desktop", "versionInfo(QString)" );
998 QString v2 = QString::fromLatin1("1.4"); 998 QString v2 = QString::fromLatin1("1.4");
999 e << v2; 999 e << v2;
1000 //qDebug("version %s\n", line.latin1()); 1000 //qDebug("version %s\n", line.latin1());
1001 } else if ( msg == "sendCardInfo()" ) { 1001 } else if ( msg == "sendCardInfo()" ) {
1002#ifndef QT_NO_COP 1002#ifndef QT_NO_COP
1003 QCopEnvelope e( "QPE/Desktop", "cardInfo(QString)" ); 1003 QCopEnvelope e( "QPE/Desktop", "cardInfo(QString)" );
1004#endif 1004#endif
1005 const QList<FileSystem> &fs = storage->fileSystems(); 1005 const QList<FileSystem> &fs = storage->fileSystems();
1006 QListIterator<FileSystem> it ( fs ); 1006 QListIterator<FileSystem> it ( fs );
1007 QString s; 1007 QString s;
1008 QString homeDir = getenv("HOME"); 1008 QString homeDir = getenv("HOME");
1009 QString hardDiskHome, hardDiskHomePath; 1009 QString hardDiskHome, hardDiskHomePath;
1010 for ( ; it.current(); ++it ) { 1010 for ( ; it.current(); ++it ) {
1011 int k4 = (*it)->blockSize()/256; 1011 int k4 = (*it)->blockSize()/256;
1012 if ( (*it)->isRemovable() || (*it)->disk() == "/dev/mtdblock6" || (*it)->disk() == "tmpfs") { 1012 if ( (*it)->isRemovable() || (*it)->disk() == "/dev/mtdblock6" || (*it)->disk() == "tmpfs") {
1013 s += (*it)->name() + "=" + (*it)->path() + "/Documents " 1013 s += (*it)->name() + "=" + (*it)->path() + "/Documents "
1014 + QString::number( (*it)->availBlocks() * k4/4 ) 1014 + QString::number( (*it)->availBlocks() * k4/4 )
1015 + "K " + (*it)->options() + ";"; 1015 + "K " + (*it)->options() + ";";
1016 } else if ( (*it)->disk() == "/dev/mtdblock1" || 1016 } else if ( (*it)->disk() == "/dev/mtdblock1" ||
1017 (*it)->disk() == "/dev/mtdblock/1" ) { 1017 (*it)->disk() == "/dev/mtdblock/1" ) {
1018 s += (*it)->name() + "=" + homeDir + "/Documents " 1018 s += (*it)->name() + "=" + homeDir + "/Documents "
1019 + QString::number( (*it)->availBlocks() * k4/4 ) 1019 + QString::number( (*it)->availBlocks() * k4/4 )
1020 + "K " + (*it)->options() + ";"; 1020 + "K " + (*it)->options() + ";";
1021 } else if ( (*it)->name().contains( "Hard Disk") && 1021 } else if ( (*it)->name().contains( "Hard Disk") &&
1022 homeDir.contains( (*it)->path() ) && 1022 homeDir.contains( (*it)->path() ) &&
1023 (*it)->path().length() > hardDiskHomePath.length() ) { 1023 (*it)->path().length() > hardDiskHomePath.length() ) {
1024 hardDiskHomePath = (*it)->path(); 1024 hardDiskHomePath = (*it)->path();
1025 hardDiskHome = 1025 hardDiskHome =
1026 (*it)->name() + "=" + homeDir + "/Documents " 1026 (*it)->name() + "=" + homeDir + "/Documents "
1027 + QString::number( (*it)->availBlocks() * k4/4 ) 1027 + QString::number( (*it)->availBlocks() * k4/4 )
1028 + "K " + (*it)->options() + ";"; 1028 + "K " + (*it)->options() + ";";
1029 } 1029 }
1030 } 1030 }
1031 if ( !hardDiskHome.isEmpty() ) 1031 if ( !hardDiskHome.isEmpty() )
1032 s += hardDiskHome; 1032 s += hardDiskHome;
1033 1033
1034#ifndef QT_NO_COP 1034#ifndef QT_NO_COP
1035 e << s; 1035 e << s;
1036#endif 1036#endif
1037 } else if ( msg == "sendSyncDate(QString)" ) { 1037 } else if ( msg == "sendSyncDate(QString)" ) {
1038 QString app; 1038 QString app;
1039 stream >> app; 1039 stream >> app;
1040 Config cfg( "qpe" ); 1040 Config cfg( "qpe" );
1041 cfg.setGroup("SyncDate"); 1041 cfg.setGroup("SyncDate");
1042#ifndef QT_NO_COP 1042#ifndef QT_NO_COP
1043 QCopEnvelope e( "QPE/Desktop", "syncDate(QString,QString)" ); 1043 QCopEnvelope e( "QPE/Desktop", "syncDate(QString,QString)" );
1044 e << app << cfg.readEntry( app ); 1044 e << app << cfg.readEntry( app );
1045#endif 1045#endif
1046 //qDebug("QPE/System sendSyncDate for %s: response %s", app.latin1(), 1046 //qDebug("QPE/System sendSyncDate for %s: response %s", app.latin1(),
1047 //cfg.readEntry( app ).latin1() ); 1047 //cfg.readEntry( app ).latin1() );
1048 } else if ( msg == "setSyncDate(QString,QString)" ) { 1048 } else if ( msg == "setSyncDate(QString,QString)" ) {
1049 QString app, date; 1049 QString app, date;
1050 stream >> app >> date; 1050 stream >> app >> date;
1051 Config cfg( "qpe" ); 1051 Config cfg( "qpe" );
1052 cfg.setGroup("SyncDate"); 1052 cfg.setGroup("SyncDate");
1053 cfg.writeEntry( app, date ); 1053 cfg.writeEntry( app, date );
1054 //qDebug("setSyncDate(QString,QString) %s %s", app.latin1(), date.latin1()); 1054 //qDebug("setSyncDate(QString,QString) %s %s", app.latin1(), date.latin1());
1055 } else if ( msg == "startSync(QString)" ) { 1055 } else if ( msg == "startSync(QString)" ) {
1056 QString what; 1056 QString what;
1057 stream >> what; 1057 stream >> what;
1058 delete syncDialog; syncDialog = 0; 1058 delete syncDialog; syncDialog = 0;
1059 syncDialog = new SyncDialog( this, "syncProgress", FALSE, 1059 syncDialog = new SyncDialog( this, "syncProgress", FALSE,
1060 WStyle_Tool | WStyle_Customize | 1060 WStyle_Tool | WStyle_Customize |
1061 Qt::WStyle_StaysOnTop ); 1061 Qt::WStyle_StaysOnTop );
1062 syncDialog->showMaximized(); 1062 syncDialog->showMaximized();
1063 syncDialog->whatLabel->setText( "<b>" + what + "</b>" ); 1063 syncDialog->whatLabel->setText( "<b>" + what + "</b>" );
1064 connect( syncDialog->buttonCancel, SIGNAL( clicked() ), 1064 connect( syncDialog->buttonCancel, SIGNAL( clicked() ),
1065 SLOT( cancelSync() ) ); 1065 SLOT( cancelSync() ) );
1066 } else if ( msg == "stopSync()") { 1066 } else if ( msg == "stopSync()") {
1067 delete syncDialog; syncDialog = 0; 1067 delete syncDialog; syncDialog = 0;
1068 } else if ( msg == "getAllDocLinks()" ) { 1068 } else if ( msg == "getAllDocLinks()" ) {
1069 loadDocs(); 1069 loadDocs();
1070 1070
1071 QString contents; 1071 QString contents;
1072 1072
1073 //Categories cats; 1073 //Categories cats;
1074 for ( QListIterator<DocLnk> it( docsFolder->children() ); it.current(); ++it ) { 1074 for ( QListIterator<DocLnk> it( docsFolder->children() ); it.current(); ++it ) {
1075 DocLnk *doc = it.current(); 1075 DocLnk *doc = it.current();
1076 QFileInfo fi( doc->file() ); 1076 QFileInfo fi( doc->file() );
1077 if ( !fi.exists() ) 1077 if ( !fi.exists() )
1078 continue; 1078 continue;
1079 1079
1080 bool fake = !doc->linkFileKnown(); 1080 bool fake = !doc->linkFileKnown();
1081 if ( !fake ) { 1081 if ( !fake ) {
1082 QFile f( doc->linkFile() ); 1082 QFile f( doc->linkFile() );
1083 if ( f.open( IO_ReadOnly ) ) { 1083 if ( f.open( IO_ReadOnly ) ) {
1084 QTextStream ts( &f ); 1084 QTextStream ts( &f );
1085 ts.setEncoding( QTextStream::UnicodeUTF8 ); 1085 ts.setEncoding( QTextStream::UnicodeUTF8 );
1086 contents += ts.read(); 1086 contents += ts.read();
1087 f.close(); 1087 f.close();
1088 } else 1088 } else
1089 fake = TRUE; 1089 fake = TRUE;
1090 } 1090 }
1091 if (fake) { 1091 if (fake) {
1092 contents += "[Desktop Entry]\n"; 1092 contents += "[Desktop Entry]\n";
1093 contents += "Categories = " + // No tr 1093 contents += "Categories = " + // No tr
1094 // cats.labels("Document View",doc->categories()).join(";") + "\n"; // No tr 1094 // cats.labels("Document View",doc->categories()).join(";") + "\n"; // No tr
1095 Qtopia::Record::idsToString( doc->categories() ) + "\n"; 1095 Qtopia::Record::idsToString( doc->categories() ) + "\n";
1096 contents += "Name = "+doc->name()+"\n"; // No tr 1096 contents += "Name = "+doc->name()+"\n"; // No tr
1097 contents += "Type = "+doc->type()+"\n"; // No tr 1097 contents += "Type = "+doc->type()+"\n"; // No tr
1098 } 1098 }
1099 contents += "File = "+doc->file()+"\n"; // No tr // (resolves path) 1099 contents += "File = "+doc->file()+"\n"; // No tr // (resolves path)
1100 contents += QString("Size = %1\n").arg( fi.size() ); // No tr 1100 contents += QString("Size = %1\n").arg( fi.size() ); // No tr
1101 } 1101 }
1102 1102
1103 //qDebug( "sending length %d", contents.length() ); 1103 //qDebug( "sending length %d", contents.length() );
1104#ifndef QT_NO_COP 1104#ifndef QT_NO_COP
1105 QCopEnvelope e( "QPE/Desktop", "docLinks(QString)" ); 1105 QCopEnvelope e( "QPE/Desktop", "docLinks(QString)" );
1106 e << contents; 1106 e << contents;
1107#endif 1107#endif
1108 1108
1109 //qDebug( "================ \n\n%s\n\n===============", 1109 //qDebug( "================ \n\n%s\n\n===============",
1110 //contents.latin1() ); 1110 //contents.latin1() );
1111 1111
1112 delete docsFolder; 1112 delete docsFolder;
1113 docsFolder = 0; 1113 docsFolder = 0;
1114#ifdef QWS 1114#ifdef QWS
1115 } else if ( msg == "setMouseProto(QString)" ) { 1115 } else if ( msg == "setMouseProto(QString)" ) {
1116 QString mice; 1116 QString mice;
1117 stream >> mice; 1117 stream >> mice;
1118 setenv("QWS_MOUSE_PROTO",mice.latin1(),1); 1118 setenv("QWS_MOUSE_PROTO",mice.latin1(),1);
1119 qwsServer->openMouse(); 1119 qwsServer->openMouse();
1120 } else if ( msg == "setKeyboard(QString)" ) { 1120 } else if ( msg == "setKeyboard(QString)" ) {
1121 QString kb; 1121 QString kb;
1122 stream >> kb; 1122 stream >> kb;
1123 setenv("QWS_KEYBOARD",kb.latin1(),1); 1123 setenv("QWS_KEYBOARD",kb.latin1(),1);
1124 qwsServer->openKeyboard(); 1124 qwsServer->openKeyboard();
1125#endif 1125#endif
1126 } 1126 }
1127} 1127}
1128 1128
1129void Launcher::cancelSync() 1129void Launcher::cancelSync()
1130{ 1130{
1131#ifndef QT_NO_COP 1131#ifndef QT_NO_COP
1132 QCopEnvelope e( "QPE/Desktop", "cancelSync()" ); 1132 QCopEnvelope e( "QPE/Desktop", "cancelSync()" );
1133#endif 1133#endif
1134} 1134}
1135 1135
1136void Launcher::launcherMessage( const QCString &msg, const QByteArray &data) 1136void Launcher::launcherMessage( const QCString &msg, const QByteArray &data)
1137{ 1137{
1138 QDataStream stream( data, IO_ReadOnly ); 1138 QDataStream stream( data, IO_ReadOnly );
1139 if ( msg == "setTabView(QString,int)" ) { 1139 if ( msg == "setTabView(QString,int)" ) {
1140 QString id; 1140 QString id;
1141 stream >> id; 1141 stream >> id;
1142 int mode; 1142 int mode;
1143 stream >> mode; 1143 stream >> mode;
1144 if ( tabs->view(id) ) 1144 if ( tabs->view(id) )
1145 tabs->view(id)->setViewMode( (LauncherView::ViewMode)mode ); 1145 tabs->view(id)->setViewMode( (LauncherView::ViewMode)mode );
1146 } else if ( msg == "setTabBackground(QString,int,QString)" ) { 1146 } else if ( msg == "setTabBackground(QString,int,QString)" ) {
1147 QString id; 1147 QString id;
1148 stream >> id; 1148 stream >> id;
1149 int mode; 1149 int mode;
1150 stream >> mode; 1150 stream >> mode;
1151 QString pixmapOrColor; 1151 QString pixmapOrColor;
1152 stream >> pixmapOrColor; 1152 stream >> pixmapOrColor;
1153 if ( tabs->view(id) ) 1153 if ( tabs->view(id) )
1154 tabs->view(id)->setBackgroundType( (LauncherView::BackgroundType)mode, pixmapOrColor ); 1154 tabs->view(id)->setBackgroundType( (LauncherView::BackgroundType)mode, pixmapOrColor );
1155 } else if ( msg == "setTextColor(QString,QString)" ) { 1155 } else if ( msg == "setTextColor(QString,QString)" ) {
1156 QString id; 1156 QString id;
1157 stream >> id; 1157 stream >> id;
1158 QString color; 1158 QString color;
1159 stream >> color; 1159 stream >> color;
1160 if ( tabs->view(id) ) 1160 if ( tabs->view(id) )
1161 tabs->view(id)->setTextColor( QColor(color) ); 1161 tabs->view(id)->setTextColor( QColor(color) );
1162 } else if ( msg == "setFont(QString,QString,int,int,int)" ) { 1162 } else if ( msg == "setFont(QString,QString,int,int,int)" ) {
1163 QString id; 1163 QString id;
1164 stream >> id; 1164 stream >> id;
1165 QString fam; 1165 QString fam;
1166 stream >> fam; 1166 stream >> fam;
1167 int size; 1167 int size;
1168 stream >> size; 1168 stream >> size;
1169 int weight; 1169 int weight;
1170 stream >> weight; 1170 stream >> weight;
1171 int italic; 1171 int italic;
1172 stream >> italic; 1172 stream >> italic;
1173 if ( tabs->view(id) ) 1173 if ( tabs->view(id) )
1174 tabs->view(id)->setViewFont( QFont(fam, size, weight, italic!=0) ); 1174 if ( !fam. isEmpty ( ))
1175 tabs->view(id)->setViewFont( QFont(fam, size, weight, italic!=0) );
1176 else
1177 tabs->view(id)->unsetViewFont();
1175 qDebug( "setFont: %s, %d, %d, %d", fam.latin1(), size, weight, italic ); 1178 qDebug( "setFont: %s, %d, %d, %d", fam.latin1(), size, weight, italic );
1176 } 1179 }
1177 else if ( msg == "setBusyIndicatorType(QString)" ) { 1180 else if ( msg == "setBusyIndicatorType(QString)" ) {
1178 QString type; 1181 QString type;
1179 stream >> type; 1182 stream >> type;
1180 tabs->setBusyIndicatorType(type); 1183 tabs->setBusyIndicatorType(type);
1181 } 1184 }
1182} 1185}
1183 1186
1184void Launcher::storageChanged() 1187void Launcher::storageChanged()
1185{ 1188{
1186 if ( in_lnk_props ) { 1189 if ( in_lnk_props ) {
1187 got_lnk_change = TRUE; 1190 got_lnk_change = TRUE;
1188 lnk_change = QString::null; 1191 lnk_change = QString::null;
1189 } else { 1192 } else {
1190 updateLink( QString::null ); 1193 updateLink( QString::null );
1191 } 1194 }
1192} 1195}
1193 1196
1194 1197
1195bool Launcher::mkdir(const QString &localPath) 1198bool Launcher::mkdir(const QString &localPath)
1196{ 1199{
1197 QDir fullDir(localPath); 1200 QDir fullDir(localPath);
1198 if (fullDir.exists()) 1201 if (fullDir.exists())
1199 return true; 1202 return true;
1200 1203
1201 // at this point the directory doesn't exist 1204 // at this point the directory doesn't exist
1202 // go through the directory tree and start creating the direcotories 1205 // go through the directory tree and start creating the direcotories
1203 // that don't exist; if we can't create the directories, return false 1206 // that don't exist; if we can't create the directories, return false
1204 1207
1205 QString dirSeps = "/"; 1208 QString dirSeps = "/";
1206 int dirIndex = localPath.find(dirSeps); 1209 int dirIndex = localPath.find(dirSeps);
1207 QString checkedPath; 1210 QString checkedPath;
1208 1211
1209 // didn't find any seps; weird, use the cur dir instead 1212 // didn't find any seps; weird, use the cur dir instead
1210 if (dirIndex == -1) { 1213 if (dirIndex == -1) {
1211 //qDebug("No seperators found in path %s", localPath.latin1()); 1214 //qDebug("No seperators found in path %s", localPath.latin1());
1212 checkedPath = QDir::currentDirPath(); 1215 checkedPath = QDir::currentDirPath();
1213 } 1216 }
1214 1217
1215 while (checkedPath != localPath) { 1218 while (checkedPath != localPath) {
1216 // no more seperators found, use the local path 1219 // no more seperators found, use the local path
1217 if (dirIndex == -1) 1220 if (dirIndex == -1)
1218 checkedPath = localPath; 1221 checkedPath = localPath;
1219 else { 1222 else {
1220 // the next directory to check 1223 // the next directory to check
1221 checkedPath = localPath.left(dirIndex) + "/"; 1224 checkedPath = localPath.left(dirIndex) + "/";
1222 // advance the iterator; the next dir seperator 1225 // advance the iterator; the next dir seperator
1223 dirIndex = localPath.find(dirSeps, dirIndex+1); 1226 dirIndex = localPath.find(dirSeps, dirIndex+1);
1224 } 1227 }
1225 1228
1226 QDir checkDir(checkedPath); 1229 QDir checkDir(checkedPath);
1227 if (!checkDir.exists()) { 1230 if (!checkDir.exists()) {
1228 //qDebug("mkdir making dir %s", checkedPath.latin1()); 1231 //qDebug("mkdir making dir %s", checkedPath.latin1());
1229 1232
1230 if (!checkDir.mkdir(checkedPath)) { 1233 if (!checkDir.mkdir(checkedPath)) {
1231 qDebug("Unable to make directory %s", checkedPath.latin1()); 1234 qDebug("Unable to make directory %s", checkedPath.latin1());
1232 return FALSE; 1235 return FALSE;
1233 } 1236 }
1234 } 1237 }
1235 1238
1236 } 1239 }
1237 return TRUE; 1240 return TRUE;
1238} 1241}
1239 1242
1240void Launcher::preloadApps() 1243void Launcher::preloadApps()
1241{ 1244{
1242 Config cfg("Launcher"); 1245 Config cfg("Launcher");
1243 cfg.setGroup("Preload"); 1246 cfg.setGroup("Preload");
1244 QStringList apps = cfg.readListEntry("Apps",','); 1247 QStringList apps = cfg.readListEntry("Apps",',');
1245 for (QStringList::ConstIterator it=apps.begin(); it!=apps.end(); ++it) { 1248 for (QStringList::ConstIterator it=apps.begin(); it!=apps.end(); ++it) {
1246#ifndef QT_NO_COP 1249#ifndef QT_NO_COP
1247 QCopEnvelope e("QPE/Application/"+(*it).local8Bit(), "enablePreload()"); 1250 QCopEnvelope e("QPE/Application/"+(*it).local8Bit(), "enablePreload()");
1248#endif 1251#endif
1249 } 1252 }
1250} 1253}
diff --git a/core/launcher/launcherview.cpp b/core/launcher/launcherview.cpp
index 9fc4565..2a051a6 100644
--- a/core/launcher/launcherview.cpp
+++ b/core/launcher/launcherview.cpp
@@ -469,508 +469,513 @@ QStringList LauncherIconView::mimeTypes() const
469 return r; 469 return r;
470} 470}
471 471
472void LauncherIconView::addItem(AppLnk* app, bool resort) 472void LauncherIconView::addItem(AppLnk* app, bool resort)
473{ 473{
474 addCatsAndMimes(app); 474 addCatsAndMimes(app);
475 475
476 if ( (tf.isEmpty() || tf.match(app->type()) >= 0) 476 if ( (tf.isEmpty() || tf.match(app->type()) >= 0)
477 && (cf == 0 || app->categories().contains(cf) 477 && (cf == 0 || app->categories().contains(cf)
478 || cf == -1 && app->categories().count() == 0 ) ) 478 || cf == -1 && app->categories().count() == 0 ) )
479 (void) new LauncherItem( this, app, bigIcns ); 479 (void) new LauncherItem( this, app, bigIcns );
480 else 480 else
481 hidden.append(app); 481 hidden.append(app);
482 if ( resort ) 482 if ( resort )
483 sort(); 483 sort();
484} 484}
485 485
486void LauncherIconView::updateCategoriesAndMimeTypes() 486void LauncherIconView::updateCategoriesAndMimeTypes()
487{ 487{
488 mimes.clear(); 488 mimes.clear();
489 cats.clear(); 489 cats.clear();
490 LauncherItem* item = (LauncherItem*)firstItem(); 490 LauncherItem* item = (LauncherItem*)firstItem();
491 while (item) { 491 while (item) {
492 addCatsAndMimes(item->appLnk()); 492 addCatsAndMimes(item->appLnk());
493 item = (LauncherItem*)item->nextItem(); 493 item = (LauncherItem*)item->nextItem();
494 } 494 }
495 QListIterator<AppLnk> it(hidden); 495 QListIterator<AppLnk> it(hidden);
496 AppLnk* l; 496 AppLnk* l;
497 while ((l=it.current())) { 497 while ((l=it.current())) {
498 addCatsAndMimes(l); 498 addCatsAndMimes(l);
499 ++it; 499 ++it;
500 } 500 }
501} 501}
502 502
503void LauncherIconView::hideOrShowItems(bool resort) 503void LauncherIconView::hideOrShowItems(bool resort)
504{ 504{
505 hidden.setAutoDelete(FALSE); 505 hidden.setAutoDelete(FALSE);
506 QList<AppLnk> links=hidden; 506 QList<AppLnk> links=hidden;
507 hidden.clear(); 507 hidden.clear();
508 hidden.setAutoDelete(TRUE); 508 hidden.setAutoDelete(TRUE);
509 LauncherItem* item = (LauncherItem*)firstItem(); 509 LauncherItem* item = (LauncherItem*)firstItem();
510 while (item) { 510 while (item) {
511 links.append(item->takeAppLnk()); 511 links.append(item->takeAppLnk());
512 item = (LauncherItem*)item->nextItem(); 512 item = (LauncherItem*)item->nextItem();
513 } 513 }
514 viewport()->setUpdatesEnabled( FALSE ); 514 viewport()->setUpdatesEnabled( FALSE );
515 clear(); 515 clear();
516 QListIterator<AppLnk> it(links); 516 QListIterator<AppLnk> it(links);
517 AppLnk* l; 517 AppLnk* l;
518 while ((l=it.current())) { 518 while ((l=it.current())) {
519 addItem(l,FALSE); 519 addItem(l,FALSE);
520 ++it; 520 ++it;
521 } 521 }
522 viewport()->setUpdatesEnabled( TRUE ); 522 viewport()->setUpdatesEnabled( TRUE );
523 if ( resort && !autoArrange() ) 523 if ( resort && !autoArrange() )
524 sort(); 524 sort();
525} 525}
526 526
527bool LauncherIconView::removeLink(const QString& linkfile) 527bool LauncherIconView::removeLink(const QString& linkfile)
528{ 528{
529 LauncherItem* item = (LauncherItem*)firstItem(); 529 LauncherItem* item = (LauncherItem*)firstItem();
530 AppLnk* l; 530 AppLnk* l;
531 bool did = FALSE; 531 bool did = FALSE;
532 DocLnk dl(linkfile); 532 DocLnk dl(linkfile);
533 while (item) { 533 while (item) {
534 l = item->appLnk(); 534 l = item->appLnk();
535 if ( ( l->linkFileKnown() && ( l->linkFile() == linkfile )) 535 if ( ( l->linkFileKnown() && ( l->linkFile() == linkfile ))
536 || ( l->fileKnown() && ( l->file() == linkfile )) 536 || ( l->fileKnown() && ( l->file() == linkfile ))
537 || ( dl.fileKnown() && l->fileKnown() && ( dl.file() == l->file() )) ) { 537 || ( dl.fileKnown() && l->fileKnown() && ( dl.file() == l->file() )) ) {
538 delete item; 538 delete item;
539 did = TRUE; 539 did = TRUE;
540 } 540 }
541 item = (LauncherItem*)item->nextItem(); 541 item = (LauncherItem*)item->nextItem();
542 } 542 }
543 QListIterator<AppLnk> it(hidden); 543 QListIterator<AppLnk> it(hidden);
544 while ((l=it.current())) { 544 while ((l=it.current())) {
545 ++it; 545 ++it;
546 if ( ( l->linkFileKnown() && ( l->linkFile() == linkfile )) 546 if ( ( l->linkFileKnown() && ( l->linkFile() == linkfile ))
547 || ( l->file() == linkfile ) 547 || ( l->file() == linkfile )
548 || ( dl.fileKnown() && ( dl.file() == l->file() )) ) { 548 || ( dl.fileKnown() && ( dl.file() == l->file() )) ) {
549 hidden.removeRef(l); 549 hidden.removeRef(l);
550 did = TRUE; 550 did = TRUE;
551 } 551 }
552 } 552 }
553 return did; 553 return did;
554} 554}
555 555
556static QString docLinkInfo(const Categories& cats, DocLnk* doc) 556static QString docLinkInfo(const Categories& cats, DocLnk* doc)
557{ 557{
558 QString contents; 558 QString contents;
559 559
560 QFileInfo fi( doc->file() ); 560 QFileInfo fi( doc->file() );
561 if ( !fi.exists() ) 561 if ( !fi.exists() )
562 return contents; 562 return contents;
563 563
564 if ( doc->linkFileKnown() ) { 564 if ( doc->linkFileKnown() ) {
565 QString lfn = doc->linkFile(); 565 QString lfn = doc->linkFile();
566 QFile f( lfn ); 566 QFile f( lfn );
567 if ( f.open( IO_ReadOnly ) ) { 567 if ( f.open( IO_ReadOnly ) ) {
568 QTextStream ts( &f ); 568 QTextStream ts( &f );
569 ts.setEncoding( QTextStream::UnicodeUTF8 ); 569 ts.setEncoding( QTextStream::UnicodeUTF8 );
570 contents += ts.read(); 570 contents += ts.read();
571 f.close(); 571 f.close();
572 goto calcsize; 572 goto calcsize;
573 } 573 }
574 } 574 }
575 575
576 contents += "[Desktop Entry]\n"; 576 contents += "[Desktop Entry]\n";
577 contents += "Categories = " // No tr 577 contents += "Categories = " // No tr
578 + cats.labels("Document View", doc->categories()).join(";") + "\n"; // No tr 578 + cats.labels("Document View", doc->categories()).join(";") + "\n"; // No tr
579 contents += "File = "+doc->file()+"\n"; // No tr 579 contents += "File = "+doc->file()+"\n"; // No tr
580 contents += "Name = "+doc->name()+"\n"; // No tr 580 contents += "Name = "+doc->name()+"\n"; // No tr
581 contents += "Type = "+doc->type()+"\n"; // No tr 581 contents += "Type = "+doc->type()+"\n"; // No tr
582 582
583calcsize: 583calcsize:
584 contents += QString("Size = %1\n").arg( fi.size() ); // No tr 584 contents += QString("Size = %1\n").arg( fi.size() ); // No tr
585 return contents; 585 return contents;
586} 586}
587 587
588QString LauncherIconView::getAllDocLinkInfo() const 588QString LauncherIconView::getAllDocLinkInfo() const
589{ 589{
590 QString contents; 590 QString contents;
591 LauncherItem* item = (LauncherItem*)firstItem(); 591 LauncherItem* item = (LauncherItem*)firstItem();
592 Categories cats; 592 Categories cats;
593 while (item) { 593 while (item) {
594 DocLnk* doc = (DocLnk*)item->appLnk(); 594 DocLnk* doc = (DocLnk*)item->appLnk();
595 contents += docLinkInfo(cats,doc); 595 contents += docLinkInfo(cats,doc);
596 item = (LauncherItem*)item->nextItem(); 596 item = (LauncherItem*)item->nextItem();
597 } 597 }
598 QListIterator<AppLnk> it(hidden); 598 QListIterator<AppLnk> it(hidden);
599 DocLnk* doc; 599 DocLnk* doc;
600 while ((doc=(DocLnk*)it.current())) { 600 while ((doc=(DocLnk*)it.current())) {
601 contents += docLinkInfo(cats,doc); 601 contents += docLinkInfo(cats,doc);
602 ++it; 602 ++it;
603 } 603 }
604 return contents; 604 return contents;
605} 605}
606 606
607//=========================================================================== 607//===========================================================================
608 608
609LauncherView::LauncherView( QWidget* parent, const char* name, WFlags fl ) 609LauncherView::LauncherView( QWidget* parent, const char* name, WFlags fl )
610 : QVBox( parent, name, fl ) 610 : QVBox( parent, name, fl )
611{ 611{
612 icons = new LauncherIconView( this ); 612 icons = new LauncherIconView( this );
613 setFocusProxy(icons); 613 setFocusProxy(icons);
614 QPEApplication::setStylusOperation( icons->viewport(), QPEApplication::RightOnHold ); 614 QPEApplication::setStylusOperation( icons->viewport(), QPEApplication::RightOnHold );
615 615
616 icons->setItemsMovable( FALSE ); 616 icons->setItemsMovable( FALSE );
617 icons->setAutoArrange( TRUE ); 617 icons->setAutoArrange( TRUE );
618 icons->setSorting( TRUE ); 618 icons->setSorting( TRUE );
619 icons->setFrameStyle( QFrame::NoFrame ); 619 icons->setFrameStyle( QFrame::NoFrame );
620 icons->setMargin( 0 ); 620 icons->setMargin( 0 );
621 icons->setSelectionMode( QIconView::NoSelection ); 621 icons->setSelectionMode( QIconView::NoSelection );
622 icons->setBackgroundMode( PaletteBase ); 622 icons->setBackgroundMode( PaletteBase );
623 icons->setResizeMode( QIconView::Fixed ); 623 icons->setResizeMode( QIconView::Fixed );
624 vmode = (ViewMode)-1; 624 vmode = (ViewMode)-1;
625 setViewMode( Icon ); 625 setViewMode( Icon );
626 626
627 connect( icons, SIGNAL(mouseButtonClicked(int, QIconViewItem *, const QPoint&)), 627 connect( icons, SIGNAL(mouseButtonClicked(int, QIconViewItem *, const QPoint&)),
628 SLOT(itemClicked(int, QIconViewItem *)) ); 628 SLOT(itemClicked(int, QIconViewItem *)) );
629 connect( icons, SIGNAL(selectionChanged()), 629 connect( icons, SIGNAL(selectionChanged()),
630 SLOT(selectionChanged()) ); 630 SLOT(selectionChanged()) );
631 connect( icons, SIGNAL(returnPressed(QIconViewItem *)), 631 connect( icons, SIGNAL(returnPressed(QIconViewItem *)),
632 SLOT(returnPressed(QIconViewItem *)) ); 632 SLOT(returnPressed(QIconViewItem *)) );
633 connect( icons, SIGNAL(mouseButtonPressed(int, QIconViewItem *, const QPoint&)), 633 connect( icons, SIGNAL(mouseButtonPressed(int, QIconViewItem *, const QPoint&)),
634 SLOT(itemPressed(int, QIconViewItem *)) ); 634 SLOT(itemPressed(int, QIconViewItem *)) );
635 635
636 tools = 0; 636 tools = 0;
637 setBackgroundType( Ruled, QString::null ); 637 setBackgroundType( Ruled, QString::null );
638} 638}
639 639
640LauncherView::~LauncherView() 640LauncherView::~LauncherView()
641{ 641{
642} 642}
643 643
644void LauncherView::setToolsEnabled(bool y) 644void LauncherView::setToolsEnabled(bool y)
645{ 645{
646 if ( !y != !tools ) { 646 if ( !y != !tools ) {
647 if ( y ) { 647 if ( y ) {
648 tools = new QHBox(this); 648 tools = new QHBox(this);
649 649
650 // Type filter 650 // Type filter
651 typemb = new QComboBox(tools); 651 typemb = new QComboBox(tools);
652 652
653 // Category filter 653 // Category filter
654 catmb = new CategorySelect(tools); 654 catmb = new CategorySelect(tools);
655 655
656 updateTools(); 656 updateTools();
657 tools->show(); 657 tools->show();
658 } else { 658 } else {
659 delete tools; 659 delete tools;
660 tools = 0; 660 tools = 0;
661 } 661 }
662 } 662 }
663} 663}
664 664
665void LauncherView::updateTools() 665void LauncherView::updateTools()
666{ 666{
667 disconnect( typemb, SIGNAL(activated(int)), 667 disconnect( typemb, SIGNAL(activated(int)),
668 this, SLOT(showType(int)) ); 668 this, SLOT(showType(int)) );
669 disconnect( catmb, SIGNAL(signalSelected(int)), 669 disconnect( catmb, SIGNAL(signalSelected(int)),
670 this, SLOT(showCategory(int)) ); 670 this, SLOT(showCategory(int)) );
671 671
672 icons->updateCategoriesAndMimeTypes(); 672 icons->updateCategoriesAndMimeTypes();
673 673
674 QString prev; 674 QString prev;
675 675
676 // Type filter 676 // Type filter
677 QStringList types; 677 QStringList types;
678 typelist = icons->mimeTypes(); 678 typelist = icons->mimeTypes();
679 for (QStringList::ConstIterator it = typelist.begin(); it!=typelist.end(); ++it) { 679 for (QStringList::ConstIterator it = typelist.begin(); it!=typelist.end(); ++it) {
680 QString t = *it; 680 QString t = *it;
681 if ( t.left(12) == "application/" ) { 681 if ( t.left(12) == "application/" ) {
682 MimeType mt(t); 682 MimeType mt(t);
683 const AppLnk* app = mt.application(); 683 const AppLnk* app = mt.application();
684 if ( app ) 684 if ( app )
685 t = app->name(); 685 t = app->name();
686 else 686 else
687 t = t.mid(12); 687 t = t.mid(12);
688 } else { 688 } else {
689 t[0] = t[0].upper(); 689 t[0] = t[0].upper();
690 } 690 }
691 types += tr("%1 files").arg(t); 691 types += tr("%1 files").arg(t);
692 } 692 }
693 types << tr("All types of file"); 693 types << tr("All types of file");
694 prev = typemb->currentText(); 694 prev = typemb->currentText();
695 typemb->clear(); 695 typemb->clear();
696 typemb->insertStringList(types); 696 typemb->insertStringList(types);
697 for (int i=0; i<typemb->count(); i++) { 697 for (int i=0; i<typemb->count(); i++) {
698 if ( typemb->text(i) == prev ) { 698 if ( typemb->text(i) == prev ) {
699 typemb->setCurrentItem(i); 699 typemb->setCurrentItem(i);
700 break; 700 break;
701 } 701 }
702 } 702 }
703 if ( prev.isNull() ) 703 if ( prev.isNull() )
704 typemb->setCurrentItem(typemb->count()-1); 704 typemb->setCurrentItem(typemb->count()-1);
705 705
706 Categories cats( 0 ); 706 Categories cats( 0 );
707 cats.load( categoryFileName() ); 707 cats.load( categoryFileName() );
708 QArray<int> vl( 0 ); 708 QArray<int> vl( 0 );
709 catmb->setCategories( vl, "Document View", // No tr 709 catmb->setCategories( vl, "Document View", // No tr
710 tr("Document View") ); 710 tr("Document View") );
711 catmb->setRemoveCategoryEdit( TRUE ); 711 catmb->setRemoveCategoryEdit( TRUE );
712 catmb->setAllCategories( TRUE ); 712 catmb->setAllCategories( TRUE );
713 713
714 connect(typemb, SIGNAL(activated(int)), this, SLOT(showType(int))); 714 connect(typemb, SIGNAL(activated(int)), this, SLOT(showType(int)));
715 connect(catmb, SIGNAL(signalSelected(int)), this, SLOT(showCategory(int))); 715 connect(catmb, SIGNAL(signalSelected(int)), this, SLOT(showCategory(int)));
716} 716}
717 717
718void LauncherView::sortBy(int s) 718void LauncherView::sortBy(int s)
719{ 719{
720 icons->setSortMethod((LauncherIconView::SortMethod)s); 720 icons->setSortMethod((LauncherIconView::SortMethod)s);
721} 721}
722 722
723void LauncherView::showType(int t) 723void LauncherView::showType(int t)
724{ 724{
725 if ( t >= (int)typelist.count() ) { 725 if ( t >= (int)typelist.count() ) {
726 icons->setTypeFilter("",TRUE); 726 icons->setTypeFilter("",TRUE);
727 } else { 727 } else {
728 QString ty = typelist[t]; 728 QString ty = typelist[t];
729 if ( !ty.contains('/') ) 729 if ( !ty.contains('/') )
730 ty += "/*"; 730 ty += "/*";
731 icons->setTypeFilter(ty,TRUE); 731 icons->setTypeFilter(ty,TRUE);
732 } 732 }
733} 733}
734 734
735void LauncherView::showCategory( int c ) 735void LauncherView::showCategory( int c )
736{ 736{
737 icons->setCategoryFilter( c, TRUE ); 737 icons->setCategoryFilter( c, TRUE );
738} 738}
739 739
740void LauncherView::setViewMode( ViewMode m ) 740void LauncherView::setViewMode( ViewMode m )
741{ 741{
742 if ( vmode != m ) { 742 if ( vmode != m ) {
743 bool bigIcons = m == Icon; 743 bool bigIcons = m == Icon;
744 icons->viewport()->setUpdatesEnabled( FALSE ); 744 icons->viewport()->setUpdatesEnabled( FALSE );
745 icons->setBigIcons( bigIcons ); 745 icons->setBigIcons( bigIcons );
746 switch ( m ) { 746 switch ( m ) {
747 case List: 747 case List:
748 icons->setItemTextPos( QIconView::Right ); 748 icons->setItemTextPos( QIconView::Right );
749 break; 749 break;
750 case Icon: 750 case Icon:
751 icons->setItemTextPos( QIconView::Bottom ); 751 icons->setItemTextPos( QIconView::Bottom );
752 break; 752 break;
753 } 753 }
754 icons->hideOrShowItems( FALSE ); 754 icons->hideOrShowItems( FALSE );
755 icons->viewport()->setUpdatesEnabled( TRUE ); 755 icons->viewport()->setUpdatesEnabled( TRUE );
756 vmode = m; 756 vmode = m;
757 } 757 }
758} 758}
759 759
760void LauncherView::setBackgroundType( BackgroundType t, const QString &val ) 760void LauncherView::setBackgroundType( BackgroundType t, const QString &val )
761{ 761{
762 if ( !bgCache ) 762 if ( !bgCache )
763 bgCache = new QMap<QString,BgPixmap*>; 763 bgCache = new QMap<QString,BgPixmap*>;
764 if ( bgCache->contains( bgName ) ) 764 if ( bgCache->contains( bgName ) )
765 (*bgCache)[bgName]->ref--; 765 (*bgCache)[bgName]->ref--;
766 766
767 switch ( t ) { 767 switch ( t ) {
768 case Ruled: { 768 case Ruled: {
769 bgName = QString("Ruled_%1").arg(colorGroup().background().name()); // No tr 769 bgName = QString("Ruled_%1").arg(colorGroup().background().name()); // No tr
770 QPixmap bg; 770 QPixmap bg;
771 if ( bgCache->contains( bgName ) ) { 771 if ( bgCache->contains( bgName ) ) {
772 (*bgCache)[bgName]->ref++; 772 (*bgCache)[bgName]->ref++;
773 bg = (*bgCache)[bgName]->pm; 773 bg = (*bgCache)[bgName]->pm;
774 } else { 774 } else {
775 bg.resize( width(), 9 ); 775 bg.resize( width(), 9 );
776 QPainter painter( &bg ); 776 QPainter painter( &bg );
777 for ( int i = 0; i < 3; i++ ) { 777 for ( int i = 0; i < 3; i++ ) {
778 painter.setPen( white ); 778 painter.setPen( white );
779 painter.drawLine( 0, i*3, width()-1, i*3 ); 779 painter.drawLine( 0, i*3, width()-1, i*3 );
780 painter.drawLine( 0, i*3+1, width()-1, i*3+1 ); 780 painter.drawLine( 0, i*3+1, width()-1, i*3+1 );
781 painter.setPen( colorGroup().background().light(105) ); 781 painter.setPen( colorGroup().background().light(105) );
782 painter.drawLine( 0, i*3+2, width()-1, i*3+2 ); 782 painter.drawLine( 0, i*3+2, width()-1, i*3+2 );
783 } 783 }
784 painter.end(); 784 painter.end();
785 bgCache->insert( bgName, new BgPixmap(bg) ); 785 bgCache->insert( bgName, new BgPixmap(bg) );
786 } 786 }
787 icons->setBackgroundPixmap( bg ); 787 icons->setBackgroundPixmap( bg );
788 break; 788 break;
789 } 789 }
790 790
791 case SolidColor: 791 case SolidColor:
792 icons->setBackgroundPixmap( QPixmap() ); 792 icons->setBackgroundPixmap( QPixmap() );
793 if ( val.isEmpty() ) { 793 if ( val.isEmpty() ) {
794 icons->setBackgroundColor( colorGroup().base() ); 794 icons->setBackgroundColor( colorGroup().base() );
795 } else { 795 } else {
796 icons->setBackgroundColor( val ); 796 icons->setBackgroundColor( val );
797 } 797 }
798 bgName = ""; 798 bgName = "";
799 break; 799 break;
800 800
801 case Image: 801 case Image:
802 bgName = val; 802 bgName = val;
803 if ( bgCache->contains( bgName ) ) { 803 if ( bgCache->contains( bgName ) ) {
804 (*bgCache)[bgName]->ref++; 804 (*bgCache)[bgName]->ref++;
805 icons->setBackgroundPixmap( (*bgCache)[bgName]->pm ); 805 icons->setBackgroundPixmap( (*bgCache)[bgName]->pm );
806 } else { 806 } else {
807 qDebug( "Loading image: %s", val.latin1() ); 807 qDebug( "Loading image: %s", val.latin1() );
808 QPixmap bg( Resource::loadPixmap( val ) ); 808 QPixmap bg( Resource::loadPixmap( val ) );
809 if ( bg.isNull() ) { 809 if ( bg.isNull() ) {
810 QImageIO imgio; 810 QImageIO imgio;
811 imgio.setFileName( bgName ); 811 imgio.setFileName( bgName );
812 QSize ds = qApp->desktop()->size(); 812 QSize ds = qApp->desktop()->size();
813 QString param( "Scale( %1, %2, ScaleMin )" ); // No tr 813 QString param( "Scale( %1, %2, ScaleMin )" ); // No tr
814 imgio.setParameters( param.arg(ds.width()).arg(ds.height()).latin1() ); 814 imgio.setParameters( param.arg(ds.width()).arg(ds.height()).latin1() );
815 imgio.read(); 815 imgio.read();
816 bg = imgio.image(); 816 bg = imgio.image();
817 } 817 }
818 bgCache->insert( bgName, new BgPixmap(bg) ); 818 bgCache->insert( bgName, new BgPixmap(bg) );
819 icons->setBackgroundPixmap( bg ); 819 icons->setBackgroundPixmap( bg );
820 } 820 }
821 break; 821 break;
822 } 822 }
823 823
824 // remove unreferenced backgrounds. 824 // remove unreferenced backgrounds.
825 QMap<QString,BgPixmap*>::Iterator it = bgCache->begin(); 825 QMap<QString,BgPixmap*>::Iterator it = bgCache->begin();
826 while ( it != bgCache->end() ) { 826 while ( it != bgCache->end() ) {
827 QMap<QString,BgPixmap*>::Iterator curr = it; 827 QMap<QString,BgPixmap*>::Iterator curr = it;
828 ++it; 828 ++it;
829 if ( (*curr)->ref == 0 ) { 829 if ( (*curr)->ref == 0 ) {
830 delete (*curr); 830 delete (*curr);
831 bgCache->remove( curr ); 831 bgCache->remove( curr );
832 } 832 }
833 } 833 }
834 834
835 bgType = t; 835 bgType = t;
836 icons->viewport()->update(); 836 icons->viewport()->update();
837} 837}
838 838
839void LauncherView::setTextColor( const QColor &tc ) 839void LauncherView::setTextColor( const QColor &tc )
840{ 840{
841 textCol = tc; 841 textCol = tc;
842 QColorGroup cg = icons->colorGroup(); 842 QColorGroup cg = icons->colorGroup();
843 cg.setColor( QColorGroup::Text, tc ); 843 cg.setColor( QColorGroup::Text, tc );
844 icons->setPalette( QPalette(cg,cg,cg) ); 844 icons->setPalette( QPalette(cg,cg,cg) );
845 icons->viewport()->update(); 845 icons->viewport()->update();
846} 846}
847 847
848void LauncherView::setViewFont( const QFont &f ) 848void LauncherView::setViewFont( const QFont &f )
849{ 849{
850 icons->setFont( f ); 850 icons->setFont( f );
851} 851}
852 852
853void LauncherView::unsetViewFont( )
854{
855 icons->unsetFont( );
856}
857
853void LauncherView::resizeEvent(QResizeEvent *e) 858void LauncherView::resizeEvent(QResizeEvent *e)
854{ 859{
855 QVBox::resizeEvent( e ); 860 QVBox::resizeEvent( e );
856 if ( e->size().width() != e->oldSize().width() ) 861 if ( e->size().width() != e->oldSize().width() )
857 sort(); 862 sort();
858} 863}
859 864
860void LauncherView::populate( AppLnkSet *folder, const QString& typefilter ) 865void LauncherView::populate( AppLnkSet *folder, const QString& typefilter )
861{ 866{
862 icons->clear(); 867 icons->clear();
863 internalPopulate( folder, typefilter ); 868 internalPopulate( folder, typefilter );
864} 869}
865 870
866QString LauncherView::getAllDocLinkInfo() const 871QString LauncherView::getAllDocLinkInfo() const
867{ 872{
868 return icons->getAllDocLinkInfo(); 873 return icons->getAllDocLinkInfo();
869} 874}
870 875
871void LauncherView::selectionChanged() 876void LauncherView::selectionChanged()
872{ 877{
873 QIconViewItem* item = icons->currentItem(); 878 QIconViewItem* item = icons->currentItem();
874 if ( item && item->isSelected() ) { 879 if ( item && item->isSelected() ) {
875 AppLnk *appLnk = ((LauncherItem *)item)->appLnk(); 880 AppLnk *appLnk = ((LauncherItem *)item)->appLnk();
876 if ( icons->inKeyEvent() ) // not for mouse press 881 if ( icons->inKeyEvent() ) // not for mouse press
877 emit clicked( appLnk ); 882 emit clicked( appLnk );
878 item->setSelected(FALSE); 883 item->setSelected(FALSE);
879 } 884 }
880} 885}
881 886
882void LauncherView::returnPressed( QIconViewItem *item ) 887void LauncherView::returnPressed( QIconViewItem *item )
883{ 888{
884 if ( item ) { 889 if ( item ) {
885 AppLnk *appLnk = ((LauncherItem *)item)->appLnk(); 890 AppLnk *appLnk = ((LauncherItem *)item)->appLnk();
886 emit clicked( appLnk ); 891 emit clicked( appLnk );
887 } 892 }
888} 893}
889 894
890void LauncherView::itemClicked( int btn, QIconViewItem *item ) 895void LauncherView::itemClicked( int btn, QIconViewItem *item )
891{ 896{
892 if ( item ) { 897 if ( item ) {
893 AppLnk *appLnk = ((LauncherItem *)item)->appLnk(); 898 AppLnk *appLnk = ((LauncherItem *)item)->appLnk();
894 if ( btn == LeftButton ) { 899 if ( btn == LeftButton ) {
895 // Make sure it's the item we execute that gets highlighted 900 // Make sure it's the item we execute that gets highlighted
896 icons->setCurrentItem( item ); 901 icons->setCurrentItem( item );
897 emit clicked( appLnk ); 902 emit clicked( appLnk );
898 } 903 }
899 item->setSelected(FALSE); 904 item->setSelected(FALSE);
900 } 905 }
901} 906}
902 907
903void LauncherView::itemPressed( int btn, QIconViewItem *item ) 908void LauncherView::itemPressed( int btn, QIconViewItem *item )
904{ 909{
905 if ( item ) { 910 if ( item ) {
906 AppLnk *appLnk = ((LauncherItem *)item)->appLnk(); 911 AppLnk *appLnk = ((LauncherItem *)item)->appLnk();
907 if ( btn == RightButton ) 912 if ( btn == RightButton )
908 emit rightPressed( appLnk ); 913 emit rightPressed( appLnk );
909/* 914/*
910 else if ( btn == LeftButton ) 915 else if ( btn == LeftButton )
911 emit clicked( appLnk ); 916 emit clicked( appLnk );
912*/ 917*/
913 item->setSelected(FALSE); 918 item->setSelected(FALSE);
914 } 919 }
915} 920}
916 921
917void LauncherView::internalPopulate( AppLnkSet *folder, const QString& typefilter ) 922void LauncherView::internalPopulate( AppLnkSet *folder, const QString& typefilter )
918{ 923{
919 QListIterator<AppLnk> it( folder->children() ); 924 QListIterator<AppLnk> it( folder->children() );
920 icons->setTypeFilter(typefilter,FALSE); 925 icons->setTypeFilter(typefilter,FALSE);
921 926
922 while ( it.current() ) { 927 while ( it.current() ) {
923 // show only the icons for existing files 928 // show only the icons for existing files
924 if (QFile(it.current()->file()).exists() || ( it.current()->file().left(4) == "http" )) { 929 if (QFile(it.current()->file()).exists() || ( it.current()->file().left(4) == "http" )) {
925 icons->addItem(*it,FALSE); 930 icons->addItem(*it,FALSE);
926 } 931 }
927 else { 932 else {
928 //maybe insert some .desktop file deletion code later 933 //maybe insert some .desktop file deletion code later
929 //maybe dir specific 934 //maybe dir specific
930 } 935 }
931 ++it; 936 ++it;
932 } 937 }
933 938
934 icons->sort(); 939 icons->sort();
935} 940}
936 941
937bool LauncherView::removeLink(const QString& linkfile) 942bool LauncherView::removeLink(const QString& linkfile)
938{ 943{
939 return icons->removeLink(linkfile); 944 return icons->removeLink(linkfile);
940} 945}
941 946
942void LauncherView::sort() 947void LauncherView::sort()
943{ 948{
944 icons->sort(); 949 icons->sort();
945} 950}
946 951
947void LauncherView::addItem(AppLnk* app, bool resort) 952void LauncherView::addItem(AppLnk* app, bool resort)
948{ 953{
949 icons->addItem(app,resort); 954 icons->addItem(app,resort);
950} 955}
951 956
952void LauncherView::setFileSystems(const QList<FileSystem> &) 957void LauncherView::setFileSystems(const QList<FileSystem> &)
953{ 958{
954 // ### does nothing now... 959 // ### does nothing now...
955} 960}
956 961
957void LauncherView::paletteChange( const QPalette &p ) 962void LauncherView::paletteChange( const QPalette &p )
958{ 963{
959 icons->unsetPalette(); 964 icons->unsetPalette();
960 QVBox::paletteChange( p ); 965 QVBox::paletteChange( p );
961 if ( bgType == Ruled ) 966 if ( bgType == Ruled )
962 setBackgroundType( Ruled, QString::null ); 967 setBackgroundType( Ruled, QString::null );
963 QColorGroup cg = icons->colorGroup(); 968 QColorGroup cg = icons->colorGroup();
964 cg.setColor( QColorGroup::Text, textCol ); 969 cg.setColor( QColorGroup::Text, textCol );
965 icons->setPalette( QPalette(cg,cg,cg) ); 970 icons->setPalette( QPalette(cg,cg,cg) );
966} 971}
967 972
968 973
969void LauncherView::setBusyIndicatorType ( const QString &type ) 974void LauncherView::setBusyIndicatorType ( const QString &type )
970{ 975{
971 if ( type. lower ( ) == "blink" ) 976 if ( type. lower ( ) == "blink" )
972 icons-> setBusyIndicatorType ( BIT_Blinking ); 977 icons-> setBusyIndicatorType ( BIT_Blinking );
973 else 978 else
974 icons-> setBusyIndicatorType ( BIT_Normal ); 979 icons-> setBusyIndicatorType ( BIT_Normal );
975} 980}
976 981
diff --git a/core/launcher/launcherview.h b/core/launcher/launcherview.h
index 194e4a2..82a319b 100644
--- a/core/launcher/launcherview.h
+++ b/core/launcher/launcherview.h
@@ -1,105 +1,106 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. 2** Copyright (C) 2000-2002 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of the Qtopia Environment. 4** This file is part of the Qtopia Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20#ifndef LAUNCHERVIEW_H 20#ifndef LAUNCHERVIEW_H
21#define LAUNCHERVIEW_H 21#define LAUNCHERVIEW_H
22 22
23#include <qpe/storage.h> 23#include <qpe/storage.h>
24 24
25#include <qvbox.h> 25#include <qvbox.h>
26 26
27class AppLnk; 27class AppLnk;
28class AppLnkSet; 28class AppLnkSet;
29class CategorySelect; 29class CategorySelect;
30class LauncherIconView; 30class LauncherIconView;
31class QIconView; 31class QIconView;
32class QIconViewItem; 32class QIconViewItem;
33class MenuButton; 33class MenuButton;
34class QComboBox; 34class QComboBox;
35 35
36class LauncherView : public QVBox 36class LauncherView : public QVBox
37{ 37{
38 Q_OBJECT 38 Q_OBJECT
39 39
40public: 40public:
41 LauncherView( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); 41 LauncherView( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
42 ~LauncherView(); 42 ~LauncherView();
43 43
44 bool removeLink(const QString& linkfile); 44 bool removeLink(const QString& linkfile);
45 void addItem(AppLnk* app, bool resort=TRUE); 45 void addItem(AppLnk* app, bool resort=TRUE);
46 void sort(); 46 void sort();
47 47
48 void setFileSystems(const QList<FileSystem> &); 48 void setFileSystems(const QList<FileSystem> &);
49 void setToolsEnabled(bool); 49 void setToolsEnabled(bool);
50 void updateTools(); 50 void updateTools();
51 51
52 void setBusy(bool); 52 void setBusy(bool);
53 53
54 QString getAllDocLinkInfo() const; 54 QString getAllDocLinkInfo() const;
55 enum ViewMode { Icon, List }; 55 enum ViewMode { Icon, List };
56 void setViewMode( ViewMode m ); 56 void setViewMode( ViewMode m );
57 ViewMode viewMode() const { return vmode; } 57 ViewMode viewMode() const { return vmode; }
58 58
59 enum BackgroundType { Ruled, SolidColor, Image }; 59 enum BackgroundType { Ruled, SolidColor, Image };
60 void setBackgroundType( BackgroundType t, const QString & ); 60 void setBackgroundType( BackgroundType t, const QString & );
61 BackgroundType backgroundType() const { return bgType; } 61 BackgroundType backgroundType() const { return bgType; }
62 62
63 void setTextColor( const QColor & ); 63 void setTextColor( const QColor & );
64 QColor textColor() const { return textCol; } 64 QColor textColor() const { return textCol; }
65 65
66 void setViewFont( const QFont & ); 66 void setViewFont( const QFont & );
67 void unsetViewFont ( );
67 68
68 void setBusyIndicatorType ( const QString &type ); 69 void setBusyIndicatorType ( const QString &type );
69 70
70public slots: 71public slots:
71 void populate( AppLnkSet *folder, const QString& categoryfilter ); 72 void populate( AppLnkSet *folder, const QString& categoryfilter );
72 73
73signals: 74signals:
74 void clicked( const AppLnk * ); 75 void clicked( const AppLnk * );
75 void rightPressed( AppLnk * ); 76 void rightPressed( AppLnk * );
76 77
77protected slots: 78protected slots:
78 void selectionChanged(); 79 void selectionChanged();
79 void returnPressed( QIconViewItem *item ); 80 void returnPressed( QIconViewItem *item );
80 void itemClicked( int, QIconViewItem * ); 81 void itemClicked( int, QIconViewItem * );
81 void itemPressed( int, QIconViewItem * ); 82 void itemPressed( int, QIconViewItem * );
82 void sortBy(int); 83 void sortBy(int);
83 void showType(int); 84 void showType(int);
84 void showCategory( int ); 85 void showCategory( int );
85 void resizeEvent(QResizeEvent *); 86 void resizeEvent(QResizeEvent *);
86 87
87protected: 88protected:
88 void internalPopulate( AppLnkSet *, const QString& categoryfilter ); 89 void internalPopulate( AppLnkSet *, const QString& categoryfilter );
89 void paletteChange( const QPalette & ); 90 void paletteChange( const QPalette & );
90 91
91private: 92private:
92 static bool bsy; 93 static bool bsy;
93 QWidget* tools; 94 QWidget* tools;
94 LauncherIconView* icons; 95 LauncherIconView* icons;
95 QComboBox *typemb; 96 QComboBox *typemb;
96 QStringList typelist; 97 QStringList typelist;
97 CategorySelect *catmb; 98 CategorySelect *catmb;
98 ViewMode vmode; 99 ViewMode vmode;
99 BackgroundType bgType; 100 BackgroundType bgType;
100 QString bgName; 101 QString bgName;
101 QColor textCol; 102 QColor textCol;
102 int busyType; 103 int busyType;
103}; 104};
104 105
105#endif // LAUNCHERVIEW_H 106#endif // LAUNCHERVIEW_H