summaryrefslogtreecommitdiffstats
path: root/TODO
blob: f5ee5500b5c5955dbd3da80b55042d4b24f342e6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
app executable
man pages
known/found config files (eg kde rc files, /etc/, /usr/local/etc)
folders in home dir?

later:
if app is running, known network connections?
files referenced in man pages

use desktop files where possible
create and cache desktop files?

for kde apps:

apps - Applications menu (.desktop files). 
config - Configuration files. 
data - Where applications store data. 
exe - Executables in $prefix/bin. findExe() for a function that takes $PATH into account. 
mime - Mime types. 
tmp - Temporary files (specific for both current host and current user) 
socket - UNIX Sockets (specific for both current host and current user)

use

#include <kservice.h>
#include <kservicegroup.h>

		KService::Ptr service = KService::serviceByDesktopName( url.fileName() );
		if (service && service->isValid()) {
//			KURL newUrl;
//			newUrl.setPath(locate("apps", service->desktopEntryPath()));
//			createFileEntry(entry, service->name(), newUrl, "application/x-desktop", service->icon());

			createFileEntry(entry, service->name(), url.url(1)+service->desktopEntryName(),
                            "application/x-desktop", service->icon(), locate("apps", service->desktopEntryPath()) );



overlay:

    // Not using KIconEffect::overlay as that requires the same size
    // for the icon and the overlay, also the overlay definately doesn't
    // have a more that one-bit alpha channel here
    QPixmap overlay( locate ( "icon", KMimeType::favIconForURL( m_filterData->uri() ) + ".png" ) );
    if ( !overlay.isNull() )
    {
      int x = icon.width() - overlay.width();
      int y = icon.height() - overlay.height();
      if ( icon.mask() )
      {
        QBitmap mask = *icon.mask();
        bitBlt( &mask, x, y,
                overlay.mask() ? const_cast<QBitmap *>(overlay.mask()) : &overlay,
                0, 0, overlay.width(), overlay.height(),
                overlay.mask() ? OrROP : SetROP );
        icon.setMask(mask);
      }
      bitBlt( &icon, x, y, &overlay );
    }