diff options
16 files changed, 1126 insertions, 77 deletions
diff --git a/port-files/FreeBSD/pkg-plist b/port-files/FreeBSD/pkg-plist index eccad727..89368d97 100644 --- a/port-files/FreeBSD/pkg-plist +++ b/port-files/FreeBSD/pkg-plist @@ -38,6 +38,7 @@ share/lumina-desktop/desktop-background.jpg share/lumina-desktop/luminaDesktop.conf share/lumina-desktop/fluxbox-init-rc share/lumina-desktop/fluxbox-keys +share/lumina-desktop/globs2 share/lumina-desktop/Login.ogg share/lumina-desktop/Logout.ogg share/lumina-desktop/colors/Black.qss.colors diff --git a/src-qt5/core-utils/lumina-search/Worker.cpp b/src-qt5/core-utils/lumina-search/Worker.cpp index 025bcc1e..0d50d4b8 100644 --- a/src-qt5/core-utils/lumina-search/Worker.cpp +++ b/src-qt5/core-utils/lumina-search/Worker.cpp @@ -6,13 +6,13 @@ Worker::Worker(QObject *parent) : QObject(parent){ //Get the list of all applications and save them in an easily-searchable form - QList<XDGDesktop*> apps = LXDG::systemDesktopFiles(); + XDGDesktopList APPS; + APPS.updateList(); + QList<XDGDesktop*> apps = APPS.apps(false,false); for(int i=0; i<apps.length(); i++){ applist << ":::1:::"+apps[i]->name+":::2:::"+apps[i]->genericName+":::3:::"+apps[i]->comment+":::4:::"+apps[i]->filePath; } stopsearch = false; - //Clean up all the apps structures - for(int i=0; i<apps.length(); i++){ apps[i]->deleteLater(); } } Worker::~Worker(){ diff --git a/src-qt5/core-utils/lumina-search/Worker.h b/src-qt5/core-utils/lumina-search/Worker.h index 87cf1e3b..646fc416 100644 --- a/src-qt5/core-utils/lumina-search/Worker.h +++ b/src-qt5/core-utils/lumina-search/Worker.h @@ -30,7 +30,6 @@ private: bool stopsearch; QString sterm; bool sapp; - bool searchDir(QString); private slots: @@ -42,4 +41,4 @@ signals: void SearchDone(); }; -#endif
\ No newline at end of file +#endif diff --git a/src-qt5/core/libLumina/LuminaXDG.cpp b/src-qt5/core/libLumina/LuminaXDG.cpp index 0e33f254..96f77ff9 100644 --- a/src-qt5/core/libLumina/LuminaXDG.cpp +++ b/src-qt5/core/libLumina/LuminaXDG.cpp @@ -906,13 +906,13 @@ QStringList LXDG::systemApplicationDirs(){ return sysapps; }*/ -QList<XDGDesktop*> LXDG::systemDesktopFiles(bool showAll, bool showHidden){ +/*QList<XDGDesktop*> LXDG::systemDesktopFiles(bool showAll, bool showHidden){ //If this is going to be used regularly, it is better to use a custom instance of an XDGDesktopList() which self-updates instead. // Since this function will need to re-read the entire system app registry every time. XDGDesktopList sysapps; sysapps.updateList(); return sysapps.apps(showAll, showHidden); -} +}*/ QHash<QString,QList<XDGDesktop*> > LXDG::sortDesktopCats(QList<XDGDesktop*> apps){ //Sort the list of applications into their different categories (main categories only) @@ -1499,7 +1499,11 @@ QStringList LXDG::loadMimeFileGlobs2(){ } file.close(); } - } + if(i==dirs.length()-1 && mimeglobs.isEmpty()){ + //Could not find the mimetype database on the system - use the fallback file distributed with Lumina + dirs << LOS::LuminaShare(); + } + }//end loop over dirs } return mimeglobs; } diff --git a/src-qt5/core/libLumina/LuminaXDG.h b/src-qt5/core/libLumina/LuminaXDG.h index f2b1e3e2..dd9d1c67 100644 --- a/src-qt5/core/libLumina/LuminaXDG.h +++ b/src-qt5/core/libLumina/LuminaXDG.h @@ -166,7 +166,7 @@ public: static QStringList systemApplicationDirs(); //Get a list of all the *.desktop files available on the system //static XDGDesktopList* systemAppsList(); //return a pointer to the entire class - static QList<XDGDesktop*> systemDesktopFiles(bool showAll = false, bool showHidden = false); //simplification for getting just the files + //static QList<XDGDesktop*> systemDesktopFiles(bool showAll = false, bool showHidden = false); //simplification for getting just the files //Sort a list of Desktop files into the proper categories static QHash< QString, QList<XDGDesktop*> > sortDesktopCats(QList<XDGDesktop*> apps); //Return the icon to use for the given category diff --git a/src-qt5/core/libLumina/libLumina.pro b/src-qt5/core/libLumina/libLumina.pro index 7f9e4203..2786b875 100644 --- a/src-qt5/core/libLumina/libLumina.pro +++ b/src-qt5/core/libLumina/libLumina.pro @@ -62,4 +62,7 @@ themes.files=themes/*.qss.template #quickplugins.path=$${L_SHAREDIR}/lumina-desktop/quickplugins/ #quickplugins.files=quickplugins/* -INSTALLS += target include colors themes +globs.path=$${L_SHAREDIR}/lumina-desktop +globs.files=xtrafiles/globs2 + +INSTALLS += target include colors themes globs diff --git a/src-qt5/core/libLumina/xtrafiles/globs2 b/src-qt5/core/libLumina/xtrafiles/globs2 new file mode 100644 index 00000000..0a783316 --- /dev/null +++ b/src-qt5/core/libLumina/xtrafiles/globs2 @@ -0,0 +1,991 @@ +# Fallback "globs2" file from the FreeDesktop mimetype database (9/23/16) +# This is only used if the official database cannot be found on the system +80:application/x-cd-image:*.iso +80:application/x-doom-wad:*.wad +50:text/x-vala:*.vala +50:application/x-nes-rom:*.nez +50:audio/ac3:*.ac3 +50:application/x-mswrite:*.wri +50:application/smil+xml:*.smil +50:text/x-verilog:*.v +50:application/x-qpress:*.qp +50:image/x-exr:*.exr +50:application/x-compress:*.z +50:image/x-jng:*.jng +50:application/oda:*.oda +50:application/vnd.oasis.opendocument.database:*.odb +50:application/vnd.sun.xml.base:*.odb +50:application/vnd.oasis.opendocument.chart:*.odc +50:text/vtt:*.vtt +50:application/x-xz-compressed-tar:*.txz +50:application/vnd.oasis.opendocument.formula:*.odf +50:application/vnd.oasis.opendocument.formula:*.odf +50:application/vnd.oasis.opendocument.graphics:*.odg +50:application/vnd.oasis.opendocument.graphics:*.odg +50:text/x-ldif:*.ldif +50:application/vnd.oasis.opendocument.image:*.odi +50:image/jp2:*.jp2 +50:application/x-oleo:*.oleo +50:application/oxps:*.xps +50:application/vnd.oasis.opendocument.text-master:*.odm +50:application/vnd.oasis.opendocument.text-master:*.odm +50:application/x-ruby:*.rb +50:audio/vnd.rn-realaudio:*.ra +50:application/x-mimearchive:*.mht +50:application/vnd.oasis.opendocument.presentation:*.odp +50:application/vnd.oasis.opendocument.presentation:*.odp +50:application/x-raw-disk-image-xz-compressed:*.raw-disk-image.xz +50:application/vnd.oasis.opendocument.spreadsheet:*.ods +50:application/vnd.oasis.opendocument.spreadsheet:*.ods +50:application/vnd.oasis.opendocument.text:*.odt +50:application/vnd.oasis.opendocument.text:*.odt +50:image/x-portable-bitmap:*.pbm +50:application/x-egon:*.egon +50:application/x-font-pcf:*.pcf.z +50:application/x-xliff:*.xliff +50:application/vnd.rn-realmedia:*.rm +50:application/x-abiword:*.abw +50:image/vnd.rn-realpix:*.rp +50:image/x-sigma-x3f:*.x3f +50:video/webm:*.webm +50:text/rust:*.rs +50:text/vnd.rn-realtext:*.rt +50:image/webp:*.webp +50:application/x-cpio:*.cpio +50:audio/midi:*.mid +50:application/x-mif:*.mif +50:video/vnd.rn-realvideo:*.rv +50:application/vnd.google-earth.kml+xml:*.kml +50:image/x-3ds:*.3ds +50:image/x-photo-cd:*.pcd +50:application/x-pc-engine-rom:*.pce +50:application/x-font-pcf:*.pcf +50:application/x-cisco-vpn-settings:*.pcf +50:model/vrml:*.wrl +50:text/x-fortran:*.f95 +50:text/plain:*.txt +50:image/x-xpixmap:*.xpm +50:application/vnd.hp-pcl:*.pcl +50:application/x-trash:*.bak +50:application/vnd.openxmlformats-officedocument.presentationml.template:*.potx +50:application/vnd.openxmlformats-officedocument.presentationml.template:*.potx +50:application/x-sms-rom:*.sg +50:application/x-shellscript:*.sh +50:model/vrml:*.vrml +50:text/vcard:*.vcard +50:image/x-skencil:*.sk +50:image/x-pict:*.pct +50:video/3gpp2:*.3g2 +50:text/x-vala:*.vapi +50:application/x-sharedlib:*.so +50:application/x-tzo:*.tzo +50:video/x-javafx:*.fxm +50:image/jpeg:*.jpe +50:audio/x-aifc:*.aifc +50:application/x-lzma-compressed-tar:*.tar.lzma +50:x-epoc/x-sisx-app:*.sisx +50:audio/x-aiff:*.aiff +50:audio/x-aifc:*.aiffc +50:image/jp2:*.jpf +50:application/x-hdf:*.hdf4 +50:application/x-hdf:*.hdf5 +50:application/x-aportisdoc:*.pdb +50:application/vnd.palm:*.pdb +50:application/x-aportisdoc:*.pdc +50:application/x-profile:gmon.out +50:application/x-jbuilder-project:*.jpr +50:application/pdf:*.pdf +50:application/x-bzpdf:*.pdf.bz2 +50:application/x-theme:*.theme +50:image/jpeg:*.jpg +50:application/x-raw-disk-image-xz-compressed:*.img.xz +50:application/x-jbuilder-project:*.jpx +50:image/jp2:*.jpx +50:text/x-svsrc:*.sv +50:image/x-quicktime:*.qtif +50:image/x-kodak-k25:*.k25 +50:text/x-scheme:*.ss +50:application/vnd.openxmlformats-officedocument.presentationml.presentation:*.pptx +50:application/vnd.openxmlformats-officedocument.presentationml.presentation:*.pptx +50:application/x-ace:*.ace +50:image/vnd.zbrush.pcx:*.pcx +50:text/x-adasrc:*.ads +50:text/x-tcl:*.tk +50:text/x-changelog:changelog +50:audio/flac:*.flac +50:text/x-adasrc:*.adb +50:text/html:*.htm +50:text/x-google-video-pointer:*.gvp +50:text/troff:*.tr +50:audio/x-matroska:*.mka +50:text/vnd.trolltech.linguist:*.ts +50:video/mp2t:*.ts +50:application/x-cb7:*.cb7 +50:text/x-vhdl:*.vhdl +50:audio/ogg:*.oga +50:audio/x-vorbis+ogg:*.oga +50:audio/x-flac+ogg:*.oga +50:audio/x-speex+ogg:*.oga +50:application/xslt+xml:*.xsl +50:application/x-saturn-rom:*.iso +50:application/x-wii-rom:*.iso +50:application/x-gamecube-rom:*.iso +50:application/atom+xml:*.atom +50:video/3gpp:*.3ga +50:application/x-kontour:*.kon +50:audio/ogg:*.ogg +50:video/ogg:*.ogg +50:audio/x-vorbis+ogg:*.ogg +50:audio/x-flac+ogg:*.ogg +50:audio/x-speex+ogg:*.ogg +50:video/x-theora+ogg:*.ogg +50:image/x-pentax-pef:*.pef +50:application/vnd.ms-cab-compressed:*.cab +50:text/markdown:*.mkd +50:application/rdf+xml:*.rdfs +50:application/x-zoo:*.zoo +50:video/x-ogm+ogg:*.ogm +50:text/x-rpm-spec:*.spec +50:application/x-x509-ca-cert:*.pem +50:video/3gpp2:*.3gp2 +50:application/x-xpinstall:*.xpi +50:video/x-matroska:*.mkv +50:application/ram:*.ram +50:application/x-designer:*.ui +50:application/x-gtk-builder:*.ui +50:audio/x-wavpack-correction:*.wvc +50:video/ogg:*.ogv +50:application/vnd.tcpdump.pcap:*.cap +50:application/ogg:*.ogx +50:application/x-rar:*.rar +50:application/x-xbel:*.xbel +50:application/jrd+json:*.jrd +50:application/vnd.ms-tnef:*.tnef +50:image/x-panasonic-raw:*.raw +50:video/3gpp:*.3gp +50:audio/vnd.rn-realaudio:*.rax +50:text/x-python:*.wsgi +50:application/x-7z-compressed:*.7z +50:audio/x-wavpack:*.wvp +50:image/x-cmu-raster:*.ras +50:application/x-font-type1:*.pfa +50:application/x-font-type1:*.pfb +50:application/x-kpovmodeler:*.kpm +50:text/x-ocaml:*.mli +50:image/x-fuji-raf:*.raf +50:application/ld+json:*.jsonld +50:audio/x-ms-asx:*.wvx +50:application/x-kpresenter:*.kpr +50:application/x-font-bdf:*.bdf +50:application/x-cd-image:*.iso9660 +50:application/x-kpresenter:*.kpt +50:text/x-eiffel:*.e +50:application/x-font-afm:*.afm +50:text/x-nfo:*.nfo +50:image/x-compressed-xcf:*.xcf.bz2 +50:text/x-cobol:*.cbl +50:video/mp2t:*.bdm +50:video/quicktime:*.moov +50:text/x-texinfo:*.texi +50:application/x-wwf:*.wwf +50:application/x-cbr:*.cbr +50:application/pkcs12:*.pfx +50:application/metalink+xml:*.metalink +50:application/x-cbt:*.cbt +50:video/mpeg:[0-9][0-9][0-9].vdr +50:application/x-perl:*.perl +50:application/vnd.mozilla.xul+xml:*.xul +50:application/x-cbz:*.cbz +50:text/x-log:*.log +50:application/x-smaf:*.mmf +50:application/javascript:*.jsm +50:text/x-meson:meson_options.txt +50:application/x-gba-rom:*.agb +50:application/x-hwt:*.hwt +50:text/x-iptables:*.iptables +50:application/mathml+xml:*.mml +50:application/oxps:*.oxps +50:video/mp2t:*.bdmv +50:video/3gpp:*.3gpp +50:application/x-docbook+xml:*.docbook +50:audio/x-mod:*.m15 +50:application/x-chess-pgn:*.pgn +50:audio/x-mo3:*.mo3 +50:application/x-bcpio:*.bcpio +50:application/pgp-encrypted:*.pgp +50:application/pgp-keys:*.pgp +50:application/pgp-signature:*.pgp +50:application/x-bzip-compressed-tar:*.tar.bz +50:application/x-amipro:*.sam +50:application/vnd.google-earth.kmz:*.kmz +50:video/quicktime:*.qt +50:image/x-portable-graymap:*.pgm +50:application/x-krita:*.kra +50:application/x-dar:*.dar +50:application/vnd.wordperfect:*.wp +50:image/vnd.wap.wbmp:*.wbmp +50:application/x-spss-sav:*.sav +50:text/x-scons:sconstruct +50:video/x-msvideo:*.divx +50:audio/x-wavpack:*.wv +50:application/xhtml+xml:*.xhtml +50:video/x-mng:*.mng +50:text/x-uuencode:*.uue +50:image/x-pict:*.pict1 +50:image/x-pict:*.pict2 +50:image/x-bzeps:*.eps.bz2 +50:application/x-n64-rom:*.z64 +50:audio/x-musepack:*.mp+ +50:text/x-c++hdr:*.hxx +50:application/rdf+xml:*.rdf +50:application/x-netcdf:*.cdf +50:application/vnd.rn-realmedia:*.rmvb +50:application/x-dbf:*.dbf +50:audio/mp2:*.mp2 +50:video/mpeg:*.mp2 +50:application/vnd.lotus-1-2-3:*.123 +50:application/x-php:*.php +50:application/x-font-pcf:*.pcf.gz +50:audio/mpeg:*.mp3 +50:video/mp4:*.mp4 +50:text/x-python:*.py +50:audio/x-minipsf:*.minipsf +50:audio/x-xm:*.xm +50:application/vnd.corel-draw:*.cdr +50:audio/x-xi:*.xi +50:image/x-xwindowdump:*.xwd +50:application/x-desktop:*.desktop +50:application/x-bzip-compressed-tar:*.tb2 +50:text/x-tex:*.latex +50:text/x-moc:*.moc +50:audio/x-mod:*.mod +50:application/vnd.openxmlformats-officedocument.presentationml.slideshow:*.ppsx +50:application/x-docbook+xml:*.dbk +50:text/x-mof:*.mof +50:application/x-xz:*.xz +50:application/vnd.ms-excel.sheet.binary.macroEnabled.12:*.xlsb +50:application/vnd.ms-excel.sheet.binary.macroenabled.12:*.xlsb +50:application/x-kspread:*.ksp +50:audio/x-aiff:*.aif +50:text/markdown:*.markdown +50:text/vcard:*.gcrd +50:application/x-php:*.php3 +50:application/x-php:*.php4 +50:application/x-php:*.php5 +50:text/x-reject:*.rej +50:application/vnd.ms-excel.sheet.macroEnabled.12:*.xlsm +50:application/vnd.ms-excel.sheet.macroenabled.12:*.xlsm +50:video/mp2t:*.m2ts +50:text/x-ms-regedit:*.reg +50:application/vnd.openxmlformats-officedocument.wordprocessingml.document:*.docx +50:application/vnd.openxmlformats-officedocument.wordprocessingml.document:*.docx +50:text/x-dcl:*.dcl +50:application/dicom:*.dcm +50:video/vnd.mpegurl:*.m1u +50:text/x-scheme:*.scm +50:application/x-qtiplot:*.qti.gz +50:application/pkix-cert:*.cer +50:image/x-kodak-dcr:*.dcr +50:application/x-tar:*.tar +50:text/x-patch:*.patch +50:text/x-scala:*.scala +50:image/vnd.djvu:*.djvu +50:audio/x-musepack:*.mpc +50:video/quicktime:*.mov +50:video/mpeg:*.mpe +50:application/x-tarz:*.taz +50:application/x-trash:*.old +50:video/mpeg:*.mpg +50:video/mp2t:*.mpl +50:application/vnd.stardivision.draw:*.sda +50:application/vnd.stardivision.calc:*.sdc +50:text/x-mrml:*.mrml +50:application/vnd.stardivision.impress:*.sdd +50:audio/x-musepack:*.mpp +50:application/vnd.ms-excel.template.macroEnabled.12:*.xltm +50:application/vnd.ms-excel.template.macroenabled.12:*.xltm +50:video/mp4:*.lrv +50:video/mp2t:*.m2t +50:image/x-gzeps:*.epsf.gz +50:application/x-lrzip:*.lrz +50:video/3gpp2:*.3gpp2 +50:image/jpeg:*.jpeg +50:application/mbox:*.mbox +50:application/vnd.stardivision.impress:*.sdp +50:application/sdp:*.sdp +50:audio/x-mpegurl:*.m3u8 +50:application/vnd.apple.mpegurl:*.m3u8 +50:application/vnd.stardivision.chart:*.sds +50:image/x-dds:*.dds +50:application/x-kugar:*.kud +50:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet:*.xlsx +50:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet:*.xlsx +50:application/vnd.stardivision.writer:*.sdw +50:application/x-fictionbook+xml:*.fb2 +50:application/x-xzpdf:*.pdf.xz +50:text/x-copying:copying +50:application/x-bzip-compressed-tar:*.tbz +50:application/zlib:*.zz +50:application/x-lrzip-compressed-tar:*.tar.lrz +50:text/x-bibtex:*.bib +50:image/x-rgb:*.rgb +50:application/x-gzpostscript:*.ps.gz +50:application/x-gameboy-rom:*.cgb +50:application/x-php:*.phps +50:application/vnd.debian.binary-package:*.deb +50:application/x-qw:*.qif +50:image/x-quicktime:*.qif +50:audio/x-mpegurl:*.m3u +50:application/vnd.apple.mpegurl:*.m3u +50:application/vnd.openxmlformats-officedocument.spreadsheetml.template:*.xltx +50:application/vnd.openxmlformats-officedocument.spreadsheetml.template:*.xltx +50:text/x-c++src:*.c++ +50:application/x-ccmx:*.ccmx +50:application/vnd.coffeescript:*.coffee +50:application/octet-stream:*.bin +50:application/x-saturn-rom:*.bin +50:application/smil+xml:*.kino +50:application/pgp-keys:*.pkr +50:application/vnd.ms-visio.stencil.macroEnabled.main+xml:*.vssm +50:image/cgm:*.cgm +50:text/x-mup:*.not +50:text/x-tcl:*.tcl +50:audio/mp4:*.m4a +50:application/x-x509-ca-cert:*.der +50:audio/x-m4b:*.m4b +50:application/x-pagemaker:*.pm6 +50:text/x-meson:meson.build +50:application/x-sami:*.sami +50:application/vnd.ms-visio.stencil.main+xml:*.vssx +50:audio/x-iriver-pla:*.pla +50:text/x-mrml:*.mrl +50:application/vnd.nintendo.snes.rom:*.sfc +50:application/xml:*.xsd +50:video/mp4:*.m4v +50:video/mp2t:*.mpls +50:application/x-planperfect:*.pln +50:text/x-tex:*.ltx +50:image/x-minolta-mrw:*.mrw +50:application/metalink4+xml:*.meta4 +50:application/vnd.ms-powerpoint.addin.macroEnabled.12:*.ppam +50:application/vnd.ms-visio.template.macroEnabled.main+xml:*.vstm +50:application/x-compressed-tar:*.tar.gz +50:audio/x-scpls:*.pls +50:application/vnd.ms-htmlhelp:*.chm +50:application/x-hwp:*.hwp +50:application/x-abiword:*.abw.gz +50:application/x-alz:*.alz +50:application/x-kword:*.kwd +50:text/x-lua:*.lua +50:application/vnd.ms-visio.template.main+xml:*.vstx +50:video/vnd.mpegurl:*.m4u +50:text/x-ooc:*.ooc +50:application/x-msi:*.msi +50:application/x-kexiproject-sqlite2:*.kexi +50:application/x-kexiproject-sqlite3:*.kexi +50:video/x-anim:*.anim[1-9j] +50:application/x-pagemaker:*.pmd +50:application/x-abiword:*.zabw +50:application/x-gameboy-rom:*.sgb +50:application/x-kword:*.kwt +50:application/x-go-sgf:*.sgf +50:application/pkcs10:*.p10 +50:image/x-sgi:*.sgi +50:application/pkcs12:*.p12 +50:application/x-blender:*.blender +50:application/vnd.stardivision.writer:*.sgl +50:application/x-msx-rom:*.msx +50:application/x-dia-shape:*.shape +50:application/x-blender:*.blend +50:application/x-blender:*.blend +50:application/x-mimearchive:*.mhtml +50:audio/midi:*.midi +50:application/x-java-jnlp-file:*.jnlp +50:text/x-cmake:cmakelists.txt +50:audio/x-amzxml:*.amz +50:image/x-tga:*.tpic +50:audio/AMR:*.amr +50:text/x-makefile:makefile +50:text/x-scons:sconscript.* +50:text/x-tex:*.tex +50:application/vnd.oasis.opendocument.graphics-flat-xml:*.fodg +50:application/vnd.oasis.opendocument.graphics-flat-xml:*.fodg +50:text/sgml:*.sgm +50:application/x-amiga-disk-format:*.adf +50:image/x-msod:*.msod +50:audio/x-mod:*.mtm +50:image/png:*.png +50:application/vnd.oasis.opendocument.presentation-flat-xml:*.fodp +50:application/vnd.oasis.opendocument.presentation-flat-xml:*.fodp +50:application/x-navi-animation:*.ani +50:application/vnd.oasis.opendocument.spreadsheet-flat-xml:*.fods +50:application/vnd.oasis.opendocument.spreadsheet-flat-xml:*.fods +50:application/vnd.oasis.opendocument.text-flat-xml:*.fodt +50:application/vnd.oasis.opendocument.text-flat-xml:*.fodt +50:application/x-n64-rom:*.n64 +50:application/x-ustar:*.ustar +50:application/x-gameboy-rom:*.gbc +50:application/x-gba-rom:*.gba +50:application/x-java-pack200:*.pack +50:application/dicom:dicomdir +50:application/x-shar:*.shar +50:application/x-shorten:*.shn +50:application/x-genesis-rom:*.32x +50:image/x-portable-anymap:*.pnm +50:application/x-gzdvi:*.dvi.gz +50:application/annodex:*.anx +50:text/html:*.html +50:video/mp2t:*.mts +50:text/x-authors:authors +50:text/x-install:install +50:application/x-quattropro:*.wb1 +50:application/x-quattropro:*.wb2 +50:application/x-quattropro:*.wb3 +50:application/x-gnucash:*.gnucash +50:application/x-perl:*.pod +50:application/x-source-rpm:*.src.rpm +50:image/x-lwo:*.lwo +50:application/x-dia-diagram:*.dia +50:application/vnd.lotus-wordpro:*.lwp +50:application/x-lrzip-compressed-tar:*.tlrz +50:application/x-partial-download:*.wkdownload +50:application/x-glade:*.glade +50:application/pgp-signature:*.sig +50:text/x-qml:*.qml +50:image/x-tga:*.tga +50:audio/prs.sid:*.sid +50:application/x-trash:*.sik +50:application/x-spss-por:*.por +50:application/x-wii-wad:*.wad +50:application/vnd.ms-powerpoint:*.pot +50:text/x-gettext-translation-template:*.pot +50:image/x-lws:*.lws +50:application/x-zip-compressed-fb2:*.fb2.zip +50:text/vcard:*.vcf +50:application/vnd.symbian.install:*.sis +50:application/x-stuffit:*.sit +50:application/x-e-theme:*.etheme +50:application/sieve:*.siv +50:image/bmp:*.bmp +50:application/x-nes-rom:*.unif +50:image/x-skencil:*.sk1 +50:image/openraster:*.ora +50:text/vcard:*.vct +50:application/x-compressed-tar:*.tgz +50:application/x-netshow-channel:*.nsc +50:audio/x-wav:*.wav +50:image/x-olympus-orf:*.orf +50:audio/x-ms-asx:*.wax +50:audio/x-ape:*.ape +50:image/x-lwo:*.lwob +50:text/calendar:*.vcs +50:image/rle:*.rle +50:application/x-siag:*.siag +50:application/vnd.android.package-archive:*.apk +50:image/x-portable-pixmap:*.ppm +50:application/x-lz4:*.lz4 +50:image/x-applix-graphics:*.ag +50:application/illustrator:*.ai +50:application/vnd.ms-powerpoint:*.pps +50:application/vnd.ms-powerpoint:*.ppt +50:application/vnd.ms-powerpoint:*.ppt +50:video/x-nsv:*.nsv +50:application/x-perl:*.al +50:image/x-tga:*.vda +50:text/x-tex:*.cls +50:application/x-archive:*.ar +50:application/vnd.ms-powerpoint:*.ppz +50:application/x-applix-spreadsheet:*.as +50:application/vnd.tcpdump.pcap:*.pcap +50:audio/basic:*.au +50:application/x-applix-word:*.aw +50:image/vnd.djvu:*.djv +50:application/vnd.palm:*.pqa +50:application/xslt+xml:*.xslt +50:application/x-bittorrent:*.torrent +50:image/x-bzeps:*.epsi.bz2 +50:video/quicktime:*.qtvr +50:text/x-mup:*.mup +50:application/x-t602:*.602 +50:application/vnd.rn-realmedia:*.rmj +50:image/tiff:*.tif +50:application/x-lyx:*.lyx +50:application/x-gedcom:*.ged +50:application/vnd.rn-realmedia:*.rmm +50:application/x-gnucash:*.xac +50:text/x-eiffel:*.eif +50:application/x-sv4cpio:*.sv4cpio +50:application/vnd.rn-realmedia:*.rms +50:application/pgp-keys:*.skr +50:application/x-tar:*.gem +50:application/x-genesis-rom:*.gen +50:application/vnd.ms-works:*.wcm +50:application/x-yaml:*.yaml +50:application/vnd.ms-word.template.macroEnabled.12:*.dotm +50:application/vnd.ms-word.template.macroenabled.12:*.dotm +50:application/x-lha:*.lzh +50:application/mxf:*.mxf +50:application/vnd.oasis.opendocument.chart-template:*.otc +50:application/x-mobipocket-ebook:*.prc +50:application/vnd.palm:*.prc +50:application/vnd.oasis.opendocument.formula-template:*.otf +50:application/x-font-otf:*.otf +50:application/vnd.oasis.opendocument.graphics-template:*.otg +50:application/vnd.oasis.opendocument.graphics-template:*.otg +50:application/vnd.oasis.opendocument.text-web:*.oth +50:application/vnd.oasis.opendocument.text-web:*.oth +50:application/relax-ng-compact-syntax:*.rnc +50:application/x-lzop:*.lzo +50:text/x-makefile:gnumakefile +50:application/x-bzip:*.bz +50:application/x-arj:*.arj +50:application/x-spss-sav:*.zsav +50:text/x-c++src:*.cc +50:application/vnd.oasis.opendocument.presentation-template:*.otp +50:application/vnd.oasis.opendocument.presentation-template:*.otp +50:image/fits:*.fits +50:application/vnd.ms-works:*.wdb +50:application/vnd.oasis.opendocument.spreadsheet-template:*.ots +50:application/vnd.oasis.opendocument.spreadsheet-template:*.ots +50:application/vnd.oasis.opendocument.text-template:*.ott +50:application/vnd.oasis.opendocument.text-template:*.ott +50:application/x-partial-download:*.crdownload +50:application/x-tzo:*.tar.lzo +50:application/x-hdf:*.hdf +50:application/x-tarz:*.tar.z +50:application/vnd.rn-realmedia:*.rmx +50:image/x-sony-arw:*.arw +50:image/svg+xml-compressed:*.svgz +50:text/x-csharp:*.cs +50:text/spreadsheet:*.slk +50:image/x-icns:*.icns +50:image/x-xbitmap:*.xbm +50:video/vnd.mpegurl:*.mxu +50:application/xml:*.xbl +50:application/xml:*.rng +50:application/x-pagemaker:*.p65 +50:text/x-opml+xml:*.opml +50:text/plain:*.asc +50:image/vnd.adobe.photoshop:*.psd +50:application/x-font-linux-psf:*.psf +50:audio/x-psf:*.psf +50:text/x-cobol:*.cob +50:application/vnd.ms-asf:*.asf +50:application/vnd.nintendo.snes.rom:*.smc +50:application/vnd.stardivision.mail:*.smd +50:application/x-genesis-rom:*.smd +50:application/x-dc-rom:*.dc +50:application/vnd.stardivision.math:*.smf +50:application/x-apple-diskimage:*.dmg +50:application/smil+xml:*.smi +50:application/x-sami:*.smi +50:text/x-dsrc:*.di +50:application/x-asp:*.asp +50:application/x-gedcom:*.gedcom +50:application/smil+xml:*.sml +50:text/x-ssa:*.ass +50:image/x-xfig:*.fig +50:image/x-tga:*.icb +50:application/vnd.tcpdump.pcap:*.dmp +50:application/x-pocket-word:*.psw +50:application/x-sms-rom:*.sms +50:audio/x-ms-asx:*.asx +50:image/x-xcf:*.xcf +50:text/vnd.sun.j2me.app-descriptor:*.jad +50:video/dv:*.dv +50:application/vnd.openxmlformats-officedocument.wordprocessingml.template:*.dotx +50:application/vnd.openxmlformats-officedocument.wordprocessingml.template:*.dotx +50:image/vnd.microsoft.icon:*.ico +50:application/x-ica:*.ica +50:application/vnd.iccprofile:*.icc +50:text/calendar:*.ics +50:application/x-java-archive:*.jar +50:application/x-gnumeric:*.gnumeric +50:application/vnd.iccprofile:*.icm +50:application/x-sv4crc:*.sv4crc +50:audio/basic:*.snd +50:application/x-lzma:*.lzma +50:application/x-x509-ca-cert:*.cert +50:image/x-adobe-dng:*.dng +50:video/mp2t:*.cpi +50:text/x-vhdl:*.vhd +50:application/x-rpm:*.rpm +50:application/x-bzpostscript:*.ps.bz2 +50:text/x-emacs-lisp:*.el +50:application/xspf+xml:*.xspf +50:text/x-c++src:*.cpp +50:application/vnd.oasis.opendocument.text-master-template:*.otm +50:image/x-canon-cr2:*.cr2 +50:application/x-gnuplot:*.gnuplot +50:application/ecmascript:*.es +50:image/fax-g3:*.g3 +50:text/x-idl:*.idl +50:application/x-pkcs7-certificates:*.p7b +50:application/pkcs7-mime:*.p7c +50:application/andrew-inset:*.ez +50:application/x-desktop:*.kdelnk +50:application/x-lzma-compressed-tar:*.tlz +50:application/vnd.ms-publisher:*.pub +50:text/x-xslfo:*.xslfo +50:application/x-core:core:cs +50:application/x-core:core +50:application/x-trig:*.trig +50:application/pkcs7-mime:*.p7m +50:application/msword:*.doc +50:application/msword:*.doc +50:application/vnd.ms-word:*.doc +50:application/rdf+xml:*.owl +50:text/cache-manifest:*.manifest +50:application/pkcs7-signature:*.p7s +50:image/x-emf:*.emf +50:application/x-fluid:*.fl +50:image/gif:*.gif +50:message/rfc822:*.eml +50:application/owl+xml:*.owx +50:image/ief:*.ief +50:text/x-c++hdr:*.h++ +50:text/x-xslfo:*.fo +50:application/vnd.emusic-emusic_package:*.emp +50:application/msword-template:*.dot +50:text/vnd.graphviz:*.dot +50:application/x-hdf:*.h4 +50:application/x-hdf:*.h5 +50:application/x-nzb:*.nzb +50:text/x-uil:*.uil +50:video/vnd.vivo:*.viv +50:application/vnd.debian.binary-package:*.udeb +50:audio/midi:*.kar +50:video/x-msvideo:*.avf +50:text/csv-schema:*.csvs +50:application/x-pkcs7-certificates:*.spc +50:application/x-font-speedo:*.spd +50:application/x-qtiplot:*.qti +50:application/vnd.ms-excel.addin.macroEnabled.12:*.xlam +50:application/x-tex-gf:*.gf +50:application/vnd.ms-tnef:*.tnf +50:application/x-quicktime-media-link:*.qtl +50:text/x-patch:*.diff +50:application/pkix-crl:*.crl +50:application/vnd.openofficeorg.extension:*.oxt +50:application/vnd.openofficeorg.extension:*.oxt +50:application/x-source-rpm:*.spm +50:application/x-sms-rom:*.gg +50:application/vnd.adobe.flash.movie:*.spl +50:application/x-bzdvi:*.dvi.bz2 +50:application/x-gnuplot:*.gp +50:application/x-gameboy-rom:*.gb +50:application/x-x509-ca-cert:*.crt +50:image/x-sony-sr2:*.sr2 +50:application/x-gz-font-linux-psf:*.psf.gz +50:image/x-canon-crw:*.crw +50:image/x-ilbm:*.iff +50:audio/x-speex:*.spx +50:audio/x-mod:*.ult +50:audio/x-mod:*.669 +50:video/x-flv:*.flv +50:application/x-kivio:*.flw +50:text/vnd.graphviz:*.gv +50:application/gzip:*.gz +50:application/pkix-pkipath:*.pkipath +50:application/vnd.palm:*.oprc +50:audio/AMR-WB:*.awb +50:text/x-genie:*.gs:cs +50:text/x-genie:*.gs +50:video/x-flic:*.flc +50:text/x-go:*.go +50:application/x-cdrdao-toc:*.toc +50:application/x-awk:*.awk +50:application/x-csh:*.csh +50:audio/x-s3m:*.s3m +50:text/x-c++hdr:*.hh +50:application/xml-external-parsed-entity:*.ent +50:application/sql:*.sql +50:image/x-gzeps:*.eps.gz +50:text/x-texinfo:*.texinfo +50:video/x-msvideo:*.avi +50:application/rss+xml:*.rss +50:application/x-ufraw:*.ufraw +50:text/css:*.css +50:text/x-c++hdr:*.hp +50:application/x-ms-wim:*.wim +50:text/csv:*.csv +50:text/x-haskell:*.hs +50:application/x-mobipocket-ebook:*.mobi +50:application/vnd.lotus-1-2-3:*.wk1 +50:audio/annodex:*.axa +50:application/vnd.lotus-1-2-3:*.wk3 +50:application/vnd.lotus-1-2-3:*.wk4 +50:application/x-wais-source:*.src +50:application/rtf:*.rtf +50:image/x-sony-srf:*.srf +50:image/x-ilbm:*.ilbm +50:audio/x-mpegurl:*.vlc +50:application/x-nes-rom:*.unf +50:application/x-smaf:*.smaf +50:audio/x-mod:*.uni +50:video/x-flic:*.fli +50:text/sgml:*.sgml +50:video/annodex:*.axv +50:image/x-kodak-kdc:*.kdc +50:text/x-txt2tags:*.t2t +50:application/x-subrip:*.srt +50:audio/x-it:*.it +50:image/x-eps:*.eps +50:application/x-gzpdf:*.pdf.gz +50:image/x-eps:*.epsf +50:text/richtext:*.rtx +50:image/x-eps:*.epsi +50:application/x-java-jce-keystore:*.jceks +50:application/x-python-bytecode:*.pyc +50:image/x-ilbm:*.lbm +50:video/vnd.vivo:*.vivo +50:text/x-ssa:*.ssa +50:application/x-cue:*.cue +50:audio/vnd.dts.hd:*.dtshd +50:application/x-python-bytecode:*.pyo +50:application/x-windows-themepack:*.themepack +50:video/x-sgi-movie:*.movie +50:text/x-cmake:*.cmake +50:text/x-dsl:*.dsl +50:application/x-trash:*% +50:application/vnd.ms-powerpoint.slide.macroEnabled.12:*.sldm +50:image/x-panasonic-raw2:*.rw2 +50:application/gml+xml:*.gml +50:application/javascript:*.js +50:application/x-markaby:*.mab +50:application/x-gettext-translation:*.gmo +50:image/x-win-bitmap:*.cur +50:text/x-fortran:*.for +50:application/vnd.lotus-1-2-3:*.wks +50:application/vnd.ms-works:*.wks +50:text/x-python:*.pyx +50:application/vnd.openxmlformats-officedocument.presentationml.slide:*.sldx +50:text/x-makefile:*.mak +50:application/x-troff-man:*.man +50:message/x-gnu-rmail:rmail +50:application/vnd.sun.xml.calc.template:*.stc +50:application/vnd.sun.xml.calc.template:*.stc +50:application/vnd.sun.xml.draw.template:*.std +50:application/vnd.sun.xml.draw.template:*.std +50:application/xml-dtd:*.dtd +50:application/x-iwork-keynote-sffkey:*.key +50:application/vnd.sun.xml.impress.template:*.sti +50:application/vnd.sun.xml.impress.template:*.sti +50:application/x-gnucash:*.gnc +50:application/x-abiword:*.abw.crashed +50:application/x-kchart:*.chrt +50:audio/prs.sid:*.psid +50:application/gnunet-directory:*.gnd +50:audio/ogg:*.opus +50:audio/x-opus+ogg:*.opus +50:audio/x-stm:*.stm +50:application/x-bzip:*.bz2 +50:text/x-erlang:*.erl +50:application/epub+zip:*.epub +50:application/x-java-keystore:*.ks +50:video/vnd.rn-realvideo:*.rvx +50:application/x-m4:*.m4 +50:application/vnd.sun.xml.writer.template:*.stw +50:application/vnd.sun.xml.writer.template:*.stw +50:text/x-tex:*.sty +50:audio/vnd.dts:*.dts +50:application/json:*.json +50:text/x-tex:*.dtx +50:application/x-kformula:*.kfo +50:application/json-patch+json:*.json-patch +50:application/x-bzip-compressed-tar:*.tar.bz2 +50:application/x-java:*.class +50:application/x-shared-library-la:*.la +50:text/x-microdvd:*.sub +50:text/x-mpsub:*.sub +50:text/x-subviewer:*.sub +50:application/font-woff:*.woff +50:image/x-macpaint:*.pntg +50:application/winhlp:*.hlp +50:image/tiff:*.tiff +50:audio/x-ms-wma:*.wma +50:text/x-qml:*.qmlproject +50:video/mpeg:*.vob +50:application/vnd.ms-visio.drawing.macroEnabled.main+xml:*.vsdm +50:text/troff:*.roff +50:image/x-sun-raster:*.sun +50:audio/x-voc:*.voc +50:image/x-wmf:*.wmf +50:text/x-scons:sconscript +50:application/x-tar:*.gtar +50:text/vnd.wap.wml:*.wml +50:application/x-par2:*.par2 +50:application/x-par2:*.par2 +50:application/x-cpio-compressed:*.cpio.gz +50:application/vnd.ms-visio.drawing.main+xml:*.vsdx +50:application/vnd.stardivision.writer:*.vor +50:image/x-compressed-xcf:*.xcf.gz +50:text/x-lilypond:*.ly +50:application/x-lzip:*.lz +50:audio/x-psflib:*.psflib +50:video/x-ms-wmv:*.wmv +50:audio/x-ms-asx:*.wmx +50:application/x-it87:*.it87 +50:text/tab-separated-values:*.tsv +50:audio/mp4:*.f4a +50:audio/x-m4b:*.f4b +50:audio/x-tta:*.tta +50:application/x-trash:*~ +50:application/x-font-ttf:*.ttc +50:image/svg+xml:*.svg +50:application/x-kexi-connectiondata:*.kexic +50:application/x-font-ttf:*.ttf +50:application/x-dvi:*.dvi +50:application/vnd.ms-excel:*.xla +50:text/x-java:*.java +50:application/vnd.ms-excel:*.xlc +50:application/vnd.ms-excel:*.xld +50:application/pgp-encrypted:*.gpg +50:application/pgp-keys:*.gpg +50:application/pgp-signature:*.gpg +50:application/x-xliff:*.xlf +50:application/x-gettext-translation:*.mo +50:text/x-modelica:*.mo +50:text/x-svhdr:*.svh +50:application/x-mswinurl:*.url +50:image/x-gzeps:*.epsi.gz +50:application/vnd.ms-access:*.mdb +50:application/vnd.ms-excel:*.xll +50:application/vnd.ms-excel:*.xlm +50:application/vnd.ms-tnef:winmail.dat +50:application/x-kexiproject-shortcut:*.kexis +50:application/x-font-ttx:*.ttx +50:application/x-raw-disk-image:*.raw-disk-image +50:application/vnd.ms-works:*.xlr +50:application/vnd.ms-excel:*.xls +50:application/vnd.ms-excel:*.xls +50:application/vnd.wordperfect:*.wp4 +50:application/vnd.wordperfect:*.wp5 +50:application/vnd.wordperfect:*.wp6 +50:application/vnd.ms-excel:*.xlt +50:application/vnd.ms-excel:*.xlw +50:text/turtle:*.ttl +50:application/mathematica:*.nb +50:application/x-netcdf:*.nc +50:video/mp4:*.f4v +50:application/vnd.adobe.flash.movie:*.swf +50:text/x-makefile:*.mk +50:image/vnd.dwg:*.dwg +50:text/x-setext:*.etx +50:application/x-genesis-rom:*.mdx +50:application/vnd.ms-powerpoint.template.macroEnabled.12:*.potm +50:application/vnd.ms-powerpoint.template.macroenabled.12:*.potm +50:application/x-xz-compressed-tar:*.tar.xz +50:application/x-ms-wim:*.swm +50:video/mpeg:*.mpeg +50:text/x-credits:credits +50:text/x-iMelody:*.ime +50:audio/x-xmf:*.xmf +50:application/x-raw-disk-image:*.img +50:text/x-xmi:*.xmi +50:text/spreadsheet:*.sylk +50:application/x-partial-download:*.part +50:application/xml:*.xml +50:audio/x-mod:*.med +50:text/vnd.wap.wmlscript:*.wmls +50:image/x-bzeps:*.epsf.bz2 +50:application/x-killustrator:*.kil +50:application/pkcs8:*.p8 +50:application/zip:*.zip +50:image/vnd.ms-modi:*.mdi +50:application/x-java-keystore:*.jks +50:text/x-c++src:*.cxx +50:text/x-iMelody:*.imy +50:application/vnd.sun.xml.calc:*.sxc +50:application/vnd.sun.xml.calc:*.sxc +50:application/vnd.sun.xml.draw:*.sxd +50:application/vnd.sun.xml.draw:*.sxd +50:application/x-java-keystore:cacerts +50:application/vnd.sun.xml.writer.global:*.sxg +50:application/vnd.sun.xml.writer.global:*.sxg +50:application/x-graphite:*.gra +50:application/vnd.sun.xml.impress:*.sxi +50:application/vnd.sun.xml.impress:*.sxi +50:video/x-matroska-3d:*.mk3d +50:application/vnd.wordperfect:*.wpd +50:application/vnd.sun.xml.math:*.sxm +50:application/vnd.sun.xml.math:*.sxm +50:application/vnd.ms-powerpoint.slideshow.macroEnabled.12:*.ppsm +50:application/x-wpg:*.wpg +50:application/x-gnuplot:*.gplt +50:image/vnd.dxf:*.dxf +50:application/x-lha:*.lha +50:model/vrml:*.vrm +50:application/vnd.ms-wpl:*.wpl +50:audio/mpeg:*.mpga +50:application/vnd.sun.xml.writer:*.sxw +50:application/vnd.sun.xml.writer:*.sxw +50:application/vnd.wordperfect:*.wpp +50:application/x-n64-rom:*.v64 +50:text/x-c++hdr:*.hpp +50:application/vnd.ms-works:*.wps +50:text/plain:*,v +50:text/markdown:*.md +50:text/x-tex:*.ins +50:text/x-troff-ms:*.ms +50:application/x-tgif:*.obj +50:text/x-c++src:*.C:cs +50:text/x-c++src:*.C +50:text/x-literate-haskell:*.lhs +50:image/x-pict:*.pict +50:text/x-ocaml:*.ml +50:text/x-troff-mm:*.mm +50:application/x-nintendo-ds-rom:*.nds +50:application/x-bzip-compressed-tar:*.tbz2 +50:text/x-qml:*.qmltypes +50:application/x-lhz:*.lhz +50:application/vnd.visio:*.vsd +50:application/x-tex-pk:*.pk +50:application/x-font-type1:*.gsf +50:application/x-perl:*.pl +50:application/x-perl:*.pl +50:application/x-perl:*.pm +50:application/x-pagemaker:*.pm +50:application/vnd.ms-powerpoint.presentation.macroEnabled.12:*.pptm +50:application/vnd.ms-powerpoint.presentation.macroenabled.12:*.pptm +50:text/x-gettext-translation:*.po +50:application/vnd.hp-hpgl:*.hpgl +50:audio/x-gsm:*.gsm +50:application/postscript:*.ps +50:text/x-fortran:*.f90 +50:application/vnd.ms-word.document.macroEnabled.12:*.docm +50:application/vnd.ms-word.document.macroenabled.12:*.docm +50:application/x-yaml:*.yml +50:application/vnd.visio:*.vss +50:application/vnd.visio:*.vst +50:image/x-tga:*.vst +50:application/x-karbon:*.karbon +50:image/x-nikon-nef:*.nef +50:application/vnd.visio:*.vsw +50:application/x-archive:*.a +50:audio/aac:*.aac +50:text/x-csrc:*.c:cs +50:text/x-csrc:*.c +50:application/x-pw:*.pw +50:application/x-magicpoint:*.mgp +50:text/x-ocl:*.ocl +50:application/x-pak:*.pak +50:text/x-chdr:*.h +50:text/x-dsrc:*.d +50:application/x-nes-rom:*.nes +50:application/x-ms-dos-executable:*.exe +50:text/x-objcsrc:*.m +50:text/x-matlab:*.m +50:text/x-troff-me:*.me +50:application/x-object:*.o +50:text/x-fortran:*.f +50:text/x-pascal:*.p +50:text/x-pascal:*.pas +50:video/mp2t:*.clpi +10:application/x-perl:*.t +10:text/troff:*.t +10:text/x-readme:readme* +10:application/pgp-encrypted:*.asc +10:application/pgp-keys:*.asc +10:application/pgp-signature:*.asc +10:text/x-makefile:makefile.* diff --git a/src-qt5/core/lumina-desktop/desktop-plugins/applauncher/AppLauncherPlugin.cpp b/src-qt5/core/lumina-desktop/desktop-plugins/applauncher/AppLauncherPlugin.cpp index bd8e79db..b74bbcb3 100644 --- a/src-qt5/core/lumina-desktop/desktop-plugins/applauncher/AppLauncherPlugin.cpp +++ b/src-qt5/core/lumina-desktop/desktop-plugins/applauncher/AppLauncherPlugin.cpp @@ -58,7 +58,9 @@ void AppLauncherPlugin::loadButton(){ if(info.isDir()){ button->setIcon( LXDG::findIcon("folder","") ); }else if(LUtils::imageExtensions().contains(info.suffix().toLower()) ){ - button->setIcon( QIcon(QPixmap(path).scaled(256,256)) ); //max size for thumbnails in memory + QPixmap pix; + if(pix.load(path)){ button->setIcon( QIcon(pix.scaled(256,256)) ); } //max size for thumbnails in memory + else{ button->setIcon( LXDG::findIcon("dialog-cancel","") ); } }else{ button->setIcon( QIcon(LXDG::findMimeIcon(path).pixmap(QSize(icosize,icosize)).scaledToHeight(icosize, Qt::SmoothTransformation) ) ); } @@ -68,7 +70,7 @@ void AppLauncherPlugin::loadButton(){ }else{ //InValid File button->setWhatsThis(""); - button->setIcon( QIcon(LXDG::findIcon("quickopen","").pixmap(QSize(icosize,icosize)).scaledToHeight(icosize, Qt::SmoothTransformation) ) ); + button->setIcon( QIcon(LXDG::findIcon("quickopen","dialog-cancel").pixmap(QSize(icosize,icosize)).scaledToHeight(icosize, Qt::SmoothTransformation) ) ); button->setText( tr("Click to Set") ); if(!watcher->files().isEmpty()){ watcher->removePaths(watcher->files()); } } @@ -126,7 +128,7 @@ void AppLauncherPlugin::buttonClicked(){ QString path = button->whatsThis(); if(path.isEmpty() || !QFile::exists(path) ){ //prompt for the user to select an application - QList<XDGDesktop*> apps = LXDG::sortDesktopNames( LXDG::systemDesktopFiles() ); + QList<XDGDesktop*> apps = LSession::handle()->applicationMenu()->currentAppHash()->value("All"); //LXDG::sortDesktopNames( LXDG::systemDesktopFiles() ); QStringList names; for(int i=0; i<apps.length(); i++){ names << apps[i]->name; } bool ok = false; diff --git a/src-qt5/core/lumina-desktop/panel-plugins/systemstart/ItemWidget.cpp b/src-qt5/core/lumina-desktop/panel-plugins/systemstart/ItemWidget.cpp index 48d9623a..15b9c72c 100644 --- a/src-qt5/core/lumina-desktop/panel-plugins/systemstart/ItemWidget.cpp +++ b/src-qt5/core/lumina-desktop/panel-plugins/systemstart/ItemWidget.cpp @@ -90,8 +90,8 @@ ItemWidget::ItemWidget(QWidget *parent, QString itemPath, QString type, bool gob // - Application constructor ItemWidget::ItemWidget(QWidget *parent, XDGDesktop *item) : QFrame(parent){ - if(item==0){ return; } createWidget(); + if(item==0){ gooditem = false; return; } isDirectory = false; if(LUtils::isFavorite(item->filePath)){ linkPath = item->filePath; @@ -118,7 +118,22 @@ ItemWidget::ItemWidget(QWidget *parent, XDGDesktop *item) : QFrame(parent){ setupActions(item); } -ItemWidget::~ItemWidget(){ +ItemWidget::~ItemWidget(){ + icon->setPixmap(QPixmap()); //make sure the pixmap is cleared from memory too + actButton->deleteLater(); + contextMenu->clear(); + contextMenu->deleteLater(); + if(actButton->menu()!=0){ + for(int i=0; i<actButton->menu()->actions().length(); i++){ + actButton->menu()->actions().at(i)->deleteLater(); + } + actButton->menu()->deleteLater(); + } + actButton->deleteLater(); + icon->deleteLater(); + name->deleteLater(); + menureset->deleteLater(); + linkPath.clear(); iconPath.clear(); text.clear(); } void ItemWidget::triggerItem(){ @@ -133,7 +148,7 @@ void ItemWidget::createWidget(){ menureset->setSingleShot(true); menureset->setInterval(1000); //1 second this->setContentsMargins(0,0,0,0); - contextMenu = new QMenu(); + contextMenu = new QMenu(this); connect(contextMenu, SIGNAL(aboutToShow()), this, SLOT(actionMenuOpen()) ); connect(contextMenu, SIGNAL(aboutToHide()), this, SLOT(actionMenuClosed()) ); actButton = new QToolButton(this); @@ -145,7 +160,7 @@ void ItemWidget::createWidget(){ name->setTextFormat(Qt::RichText); name->setTextInteractionFlags(Qt::NoTextInteraction); //Add them to the layout - this->setLayout(new QHBoxLayout()); + this->setLayout(new QHBoxLayout(this)); this->layout()->setContentsMargins(1,1,1,1); this->layout()->addWidget(icon); this->layout()->addWidget(actButton); @@ -202,19 +217,21 @@ void ItemWidget::updateItems(){ for(int i=0; i<newname.length(); i++){ newname[i] = name->fontMetrics().elidedText(newname[i], Qt::ElideRight, name->width()); } name->setText( newname.join("<br>") ); //Now reload the icon if necessary - if(icon->pixmap()->size().height() < (H-4) ){ - if(iconPath.isEmpty()){ - //Use item path (thumbnail or mimetype) - if(LUtils::imageExtensions().contains(icon->whatsThis().section("/",-1).section(".",-1).toLower()) ){ - icon->setPixmap( QIcon(icon->whatsThis()).pixmap(H-4,H-4).scaledToHeight(H-4,Qt::SmoothTransformation) ); + if(icon->pixmap()!=0){ + if(icon->pixmap()->size().height() < (H-4) ){ + if(iconPath.isEmpty()){ + //Use item path (thumbnail or mimetype) + if(LUtils::imageExtensions().contains(icon->whatsThis().section("/",-1).section(".",-1).toLower()) ){ + icon->setPixmap( QIcon(icon->whatsThis()).pixmap(H-4,H-4).scaledToHeight(H-4,Qt::SmoothTransformation) ); + }else{ + icon->setPixmap( LXDG::findMimeIcon(icon->whatsThis().section("/",-1)).pixmap(H-4,H-4).scaledToHeight(H-4,Qt::SmoothTransformation) ); + } }else{ - icon->setPixmap( LXDG::findMimeIcon(icon->whatsThis().section("/",-1)).pixmap(H-4,H-4).scaledToHeight(H-4,Qt::SmoothTransformation) ); + icon->setPixmap( LXDG::findIcon(iconPath,"preferences-system-windows-actions").pixmap(H-4,H-4).scaledToHeight(H-4,Qt::SmoothTransformation) ); } - }else{ - icon->setPixmap( LXDG::findIcon(iconPath,"preferences-system-windows-actions").pixmap(H-4,H-4).scaledToHeight(H-4,Qt::SmoothTransformation) ); + }else if(icon->pixmap()->size().height() > (H-4) ){ + icon->setPixmap( icon->pixmap()->scaled(H-4, H-4, Qt::IgnoreAspectRatio, Qt::SmoothTransformation) ); } - }else if(icon->pixmap()->size().height() > (H-4) ){ - icon->setPixmap( icon->pixmap()->scaled(H-4, H-4, Qt::IgnoreAspectRatio, Qt::SmoothTransformation) ); } } diff --git a/src-qt5/core/lumina-desktop/panel-plugins/systemstart/ItemWidget.h b/src-qt5/core/lumina-desktop/panel-plugins/systemstart/ItemWidget.h index 365b434f..11394dd6 100644 --- a/src-qt5/core/lumina-desktop/panel-plugins/systemstart/ItemWidget.h +++ b/src-qt5/core/lumina-desktop/panel-plugins/systemstart/ItemWidget.h @@ -33,8 +33,6 @@ public: ItemWidget(QWidget *parent=0, QString itemPath="", QString type="unknown", bool goback=false); // - Generic Apps ItemWidget(QWidget *parent=0, XDGDesktop *item= 0); - // - Categories - //ItemWidget(QWidget *parent=0, QString cat=""); ~ItemWidget(); @@ -51,7 +49,7 @@ private: QTimer *menureset; void createWidget(); - //void setupButton(bool disable = false); + void setupContextMenu(); void setupActions(XDGDesktop*); diff --git a/src-qt5/core/lumina-desktop/panel-plugins/systemstart/LStartButton.cpp b/src-qt5/core/lumina-desktop/panel-plugins/systemstart/LStartButton.cpp index f817e0c0..92b3c6ea 100644 --- a/src-qt5/core/lumina-desktop/panel-plugins/systemstart/LStartButton.cpp +++ b/src-qt5/core/lumina-desktop/panel-plugins/systemstart/LStartButton.cpp @@ -51,7 +51,7 @@ void LStartButtonPlugin::updateButtonVisuals(){ void LStartButtonPlugin::updateQuickLaunch(QStringList apps){ //First clear any obsolete apps QStringList old; - qDebug() << "Update QuickLaunch Buttons"; + //qDebug() << "Update QuickLaunch Buttons"; for(int i=0; i<QUICKL.length(); i++){ if( !apps.contains(QUICKL[i]->whatsThis()) ){ //App was removed @@ -82,13 +82,13 @@ void LStartButtonPlugin::updateQuickLaunch(QStringList apps){ connect(tmp, SIGNAL(Remove(QString)), this, SLOT(RemoveQuick(QString)) ); } } - qDebug() << " - Done updateing QuickLaunch Buttons"; + //qDebug() << " - Done updateing QuickLaunch Buttons"; QTimer::singleShot(0,this, SLOT(OrientationChange())); //Update icons/sizes } void LStartButtonPlugin::LaunchQuick(QString file){ //Need to get which button was clicked - qDebug() << "Quick Launch triggered:" << file; + //qDebug() << "Quick Launch triggered:" << file; if(!file.isEmpty()){ LSession::LaunchApplication("lumina-open \""+file+"\""); emit MenuClosed(); @@ -96,7 +96,7 @@ void LStartButtonPlugin::LaunchQuick(QString file){ } void LStartButtonPlugin::RemoveQuick(QString file){ - qDebug() << "Remove Quicklaunch Button:" << file; + //qDebug() << "Remove Quicklaunch Button:" << file; if(!file.isEmpty()){ startmenu->UpdateQuickLaunch(file, false); //always a removal emit MenuClosed(); @@ -113,6 +113,14 @@ void LStartButtonPlugin::SaveMenuSize(QSize sz){ // ======================== void LStartButtonPlugin::openMenu(){ if(menu->isVisible()){ return; } //don't re-show it - already open + //TESTING CODE TO SEE IF THIS MAKES IT RECOVER MEMORY + /*StartMenu *old = startmenu; + startmenu = new StartMenu(this); + connect(startmenu, SIGNAL(CloseMenu()), this, SLOT(closeMenu()) ); + connect(startmenu, SIGNAL(UpdateQuickLaunch(QStringList)), this, SLOT(updateQuickLaunch(QStringList))); + menu->setContents(startmenu); + if(old!=0){ old->deleteLater(); }*/ +//-------- startmenu->UpdateMenu(); button->showMenu(); } diff --git a/src-qt5/core/lumina-desktop/panel-plugins/systemstart/LStartButton.h b/src-qt5/core/lumina-desktop/panel-plugins/systemstart/LStartButton.h index a7d98353..1a17b75b 100644 --- a/src-qt5/core/lumina-desktop/panel-plugins/systemstart/LStartButton.h +++ b/src-qt5/core/lumina-desktop/panel-plugins/systemstart/LStartButton.h @@ -100,12 +100,12 @@ public slots: void LocaleChange(){ updateButtonVisuals(); - startmenu->UpdateAll(); + if(startmenu!=0){ startmenu->UpdateAll(); } } void ThemeChange(){ updateButtonVisuals(); - startmenu->UpdateAll(); + if(startmenu!=0){ startmenu->UpdateAll(); } } }; diff --git a/src-qt5/core/lumina-desktop/panel-plugins/systemstart/StartMenu.cpp b/src-qt5/core/lumina-desktop/panel-plugins/systemstart/StartMenu.cpp index ae61760b..bfac46c0 100644 --- a/src-qt5/core/lumina-desktop/panel-plugins/systemstart/StartMenu.cpp +++ b/src-qt5/core/lumina-desktop/panel-plugins/systemstart/StartMenu.cpp @@ -155,22 +155,45 @@ void StartMenu::UpdateQuickLaunch(QString path, bool keep){ // ========================== // PRIVATE FUNCTIONS // ========================== -void StartMenu::deleteChildren(QObject *obj){ -for(int i=0; i<obj->children().count(); i++){ obj->children().at(i)->deleteLater(); } -} +/*void StartMenu::deleteChildren(QWidget *obj){ + if(obj->layout()==0){ + for(int i=0; i<obj->children().count(); i++){ + obj->children().at(i)->deleteLater(); + } + }else{ + + } +}*/ void StartMenu::ClearScrollArea(QScrollArea *area){ - QWidget *old = area->takeWidget(); - deleteChildren(old); //make sure we *fully* delete these items to save memory - old->deleteLater(); - area->setWidget( new QWidget() ); //create a new widget in the scroll area - area->widget()->setContentsMargins(0,0,0,0); - QVBoxLayout *layout = new QVBoxLayout; + //QWidget *old = area->takeWidget(); + //qDebug() << "Clear Scroll Area:"; + //if(old->layout()!=0){ qDebug() << " - Number of items in layout:" << old->layout()->count(); } + //qDebug() << " - Number of Children:" << old->children().count(); + //deleteChildren(old); //make sure we *fully* delete these items to save memory + //old->deleteLater(); + if(area == ui->scroll_favs){ + area->takeWidget()->deleteLater(); + } + if(area->widget()==0){ + area->setWidget( new QWidget(area) ); //create a new widget in the scroll area + } + if(area->widget()->layout()==0){ + QVBoxLayout *layout = new QVBoxLayout(area->widget()); layout->setSpacing(2); layout->setContentsMargins(3,1,3,1); layout->setDirection(QBoxLayout::TopToBottom); layout->setAlignment(Qt::AlignTop); + area->widget()->setContentsMargins(0,0,0,0); area->widget()->setLayout(layout); + } + //Now clear the items in the layout + while( area->widget()->layout()->count() >0 ){ + QLayoutItem *it = area->widget()->layout()->takeAt(0); + //Need to delete both the widget and the layout item + if(it->widget()!=0){ it->widget()->deleteLater(); } + delete it; + } } void StartMenu::SortScrollArea(QScrollArea *area){ @@ -303,8 +326,8 @@ void StartMenu::ChangeCategory(QString cat){ //Listing Update routines void StartMenu::UpdateApps(){ ClearScrollArea(ui->scroll_apps); - //Now assemble the apps list (note: this normally happens in the background - not when it is visible/open) - //qDebug() << "Update Apps:" << CCat << ui->check_apps_showcats->checkState(); + //Now assemble the apps list + //qDebug() << "Update Apps:";// << CCat << ui->check_apps_showcats->checkState(); if(ui->check_apps_showcats->checkState() == Qt::PartiallyChecked){ //qDebug() << " - Partially Checked"; //Show a single page of apps, but still divided up by categories @@ -322,7 +345,7 @@ void StartMenu::UpdateApps(){ //Now add all the apps for this category for(int i=0; i<apps.length(); i++){ ItemWidget *it = new ItemWidget(ui->scroll_apps->widget(), apps[i] ); - if(!it->gooditem){ continue; } //invalid for some reason + if(!it->gooditem){ qDebug() << "Invalid Item:"; it->deleteLater(); continue; } //invalid for some reason ui->scroll_apps->widget()->layout()->addWidget(it); connect(it, SIGNAL(NewShortcut()), this, SLOT(UpdateFavs()) ); connect(it, SIGNAL(RemovedShortcut()), this, SLOT(UpdateFavs()) ); @@ -341,7 +364,7 @@ void StartMenu::UpdateApps(){ cats.removeAll("All"); //This is not a "real" category for(int c=0; c<cats.length(); c++){ ItemWidget *it = new ItemWidget(ui->scroll_apps->widget(), cats[c], "chcat::::"+cats[c] ); - if(!it->gooditem){ continue; } //invalid for some reason + if(!it->gooditem){ qDebug() << "Invalid Item:";it->deleteLater(); continue; } //invalid for some reason ui->scroll_apps->widget()->layout()->addWidget(it); connect(it, SIGNAL(RunItem(QString)), this, SLOT(LaunchItem(QString)) ); } @@ -357,7 +380,7 @@ void StartMenu::UpdateApps(){ for(int i=0; i<apps.length(); i++){ //qDebug() << " - App:" << apps[i].name; ItemWidget *it = new ItemWidget(ui->scroll_apps->widget(), apps[i] ); - if(!it->gooditem){ continue; } //invalid for some reason + if(!it->gooditem){ qDebug() << "Invalid Item:"; it->deleteLater(); continue; } //invalid for some reason ui->scroll_apps->widget()->layout()->addWidget(it); connect(it, SIGNAL(NewShortcut()), this, SLOT(UpdateFavs()) ); connect(it, SIGNAL(RemovedShortcut()), this, SLOT(UpdateFavs()) ); @@ -372,9 +395,9 @@ void StartMenu::UpdateApps(){ QList<XDGDesktop*> apps = LSession::handle()->applicationMenu()->currentAppHash()->value("All"); CCat.clear(); //Now add all the apps for this category - for(int i=0; i<apps.length(); i++){ + for(int i=0; i<apps.length(); i++){ ItemWidget *it = new ItemWidget(ui->scroll_apps->widget(), apps[i] ); - if(!it->gooditem){ continue; } //invalid for some reason + if(!it->gooditem){ it->deleteLater(); continue; } //invalid for some reason ui->scroll_apps->widget()->layout()->addWidget(it); connect(it, SIGNAL(NewShortcut()), this, SLOT(UpdateFavs()) ); connect(it, SIGNAL(RemovedShortcut()), this, SLOT(UpdateFavs()) ); @@ -401,10 +424,11 @@ void StartMenu::UpdateFavs(){ else if(type==1){ tmp = favs.filter("::::dir::::"); } //dirs next else{ tmp = rest; } //everything left over if(type==1){ + SortScrollArea(ui->scroll_favs); //Need to run a special routine for sorting the apps (already in the widget) //qDebug() << "Sort App Widgets..."; // Since each app actually might have a different name listed within the file - QLayout *lay = ui->scroll_favs->widget()->layout(); + /*QLayout *lay = ui->scroll_favs->widget()->layout(); QStringList items; for(int i=0; i<lay->count(); i++){ items << lay->itemAt(i)->widget()->whatsThis().toLower(); @@ -424,7 +448,8 @@ void StartMenu::UpdateFavs(){ break; } } - } + }*/ + }//end of special app sorting routine tmp.sort(); //Sort alphabetically by name (dirs/files) for(int i=0; i<tmp.length(); i++){ @@ -447,6 +472,7 @@ void StartMenu::UpdateFavs(){ } //QApplication::processEvents(); } //end loop over types + ui->scroll_favs->update(); //qDebug() << "End updateFavs"; } diff --git a/src-qt5/core/lumina-desktop/panel-plugins/systemstart/StartMenu.h b/src-qt5/core/lumina-desktop/panel-plugins/systemstart/StartMenu.h index af7bd136..8ab04d94 100644 --- a/src-qt5/core/lumina-desktop/panel-plugins/systemstart/StartMenu.h +++ b/src-qt5/core/lumina-desktop/panel-plugins/systemstart/StartMenu.h @@ -37,7 +37,7 @@ private: QTimer *searchTimer; //Simple utility functions - void deleteChildren(QObject *obj); //recursive function + //void deleteChildren(QWidget *obj); //recursive function void ClearScrollArea(QScrollArea *area); void SortScrollArea(QScrollArea *area); void do_search(QString search, bool force); diff --git a/src-qt5/core/lumina-wm-INCOMPLETE/i18n/lumina-wm_el.ts b/src-qt5/core/lumina-wm-INCOMPLETE/i18n/lumina-wm_el.ts index 7862c31e..29a9eaf0 100644 --- a/src-qt5/core/lumina-wm-INCOMPLETE/i18n/lumina-wm_el.ts +++ b/src-qt5/core/lumina-wm-INCOMPLETE/i18n/lumina-wm_el.ts @@ -1,42 +1,42 @@ -<?xml version="1.0" encoding="utf-8"?> +<?xml version='1.0' encoding='utf-8'?> <!DOCTYPE TS> <TS version="2.1" language="el_GR"> <context> <name>LLockScreen</name> <message> - <location filename="../LLockScreen.ui" line="14"/> + <location filename="../LLockScreen.ui" line="14"></location> <source>Form</source> - <translation type="unfinished"></translation> + <translation>Μορφή</translation> </message> <message> - <location filename="../LLockScreen.ui" line="114"/> + <location filename="../LLockScreen.ui" line="114"></location> <source>Password</source> - <translation type="unfinished"></translation> + <translation>Κωδικός</translation> </message> <message> - <location filename="../LLockScreen.ui" line="126"/> + <location filename="../LLockScreen.ui" line="126"></location> <source>Unlock Session</source> - <translation type="unfinished"></translation> + <translation>Ξεκλείδωμα Συνεδρίας</translation> </message> <message> - <location filename="../LLockScreen.cpp" line="39"/> + <location filename="../LLockScreen.cpp" line="39"></location> <source>Locked by: %1</source> - <translation type="unfinished"></translation> + <translation>Κλειδώθηκε απο: %1</translation> </message> <message> - <location filename="../LLockScreen.cpp" line="76"/> + <location filename="../LLockScreen.cpp" line="76"></location> <source>Too Many Failures</source> - <translation type="unfinished"></translation> + <translation>Πάρα Πολλές Αποτυχίες</translation> </message> <message> - <location filename="../LLockScreen.cpp" line="76"/> + <location filename="../LLockScreen.cpp" line="76"></location> <source>Wait %1 Minutes</source> - <translation type="unfinished"></translation> + <translation>Περιμένετε %1 Λεπτά</translation> </message> <message> - <location filename="../LLockScreen.cpp" line="77"/> + <location filename="../LLockScreen.cpp" line="77"></location> <source>Failed Attempts: %1</source> - <translation type="unfinished"></translation> + <translation>Αποτυχημένες προσπάθειες: %1</translation> </message> </context> </TS> diff --git a/src-qt5/desktop-utils/lumina-terminal/i18n/l-terminal_el.ts b/src-qt5/desktop-utils/lumina-terminal/i18n/l-terminal_el.ts index fe7211a7..bb98a8ac 100644 --- a/src-qt5/desktop-utils/lumina-terminal/i18n/l-terminal_el.ts +++ b/src-qt5/desktop-utils/lumina-terminal/i18n/l-terminal_el.ts @@ -6,12 +6,12 @@ <message> <location filename="../TerminalWidget.cpp" line="50"/> <source>Copy Selection</source> - <translation type="unfinished"></translation> + <translation>Αντιγραφή Επιλογής</translation> </message> <message> <location filename="../TerminalWidget.cpp" line="51"/> <source>Paste</source> - <translation type="unfinished"></translation> + <translation>Επικόλληση</translation> </message> </context> <context> @@ -19,27 +19,27 @@ <message> <location filename="../TrayIcon.cpp" line="123"/> <source>Trigger Terminal</source> - <translation type="unfinished"></translation> + <translation>Εμφάνιση/Απόκρυψη Γραμμής Εντολών</translation> </message> <message> <location filename="../TrayIcon.cpp" line="125"/> <source>Top of Screen</source> - <translation type="unfinished"></translation> + <translation>Επάνω Μέρος της Οθόνης</translation> </message> <message> <location filename="../TrayIcon.cpp" line="130"/> <source>Close Terminal</source> - <translation type="unfinished"></translation> + <translation>Κλείσιμο Γραμμής Εντολών</translation> </message> <message> <location filename="../TrayIcon.cpp" line="139"/> <source>Move To Monitor</source> - <translation type="unfinished"></translation> + <translation>Μετακίνηση στην Οθόνη</translation> </message> <message> <location filename="../TrayIcon.cpp" line="142"/> <source>Monitor %1</source> - <translation type="unfinished"></translation> + <translation>Οθόνη %1</translation> </message> </context> </TS> |