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 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
|
#include "precompiled.h"
#include "platform_mac.h"
PlatformMac::PlatformMac(int& argc, char** argv) :
PlatformBase(argc,argv)
{
icons = new QFileIconProvider();
}
PlatformMac::~PlatformMac()
{
}
bool PlatformMac::setHotkey(const QKeySequence & key, QObject* receiver, const char* slot)
{
GlobalShortcutManager::disconnect(oldKey, receiver, slot);
GlobalShortcutManager::connect(key, receiver, slot);
oldKey = key;
qDebug() << key << GlobalShortcutManager::isConnected(key);
return GlobalShortcutManager::isConnected(key);
}
void PlatformMac::alterItem(CatItem* item) {
if (!item->fullPath.endsWith(".app", Qt::CaseInsensitive))
return;
// item->shortName.chop(4);
// item->lowName.chop(4);
}
QHash<QString, QList<QString> > PlatformMac::getDirectories()
{
QHash<QString, QList<QString> > out;
QDir d;
QString home = QDir::homePath() + "/Library/Launchy";
d.mkdir(home);
out["skins"] += qApp->applicationDirPath() + "/../Resources/skins";
out["skins"] += home + "/skins";
//out["skins"] += SKINS_PATH;
out["plugins"] += qApp->applicationDirPath() + "/plugins";
out["plugins"] += home + "/plugins";
//out["plugins"] += PLUGINS_PATH;
out["config"] += home;
out["portableConfig"] += qApp->applicationDirPath();
if (QFile::exists(out["skins"].last() + "/Default"))
out["defSkin"] += out["skins"].last() + "/Default";
else
out["defSkin"] += out["skins"].first() + "/Default";
out["platforms"] += qApp->applicationDirPath();
//out["platforms"] += PLATFORMS_PATH;
return out;
}
QList<Directory> PlatformMac::getDefaultCatalogDirectories()
{
QList<Directory> list;
QStringList types;
types << "*.app";
list.append(Directory("/Applications", types, false, false, 5));
list.append(Directory("~/Applications", types, false, false, 5));
list.append(Directory("/System/Library/CoreServices", types, false, false, 5));
list.append(Directory("~", QStringList(), true, false, 0));
return list;
}
QString PlatformMac::expandEnvironmentVars(QString txt)
{
QStringList list = QProcess::systemEnvironment();
txt.replace('~', "$HOME$");
QString delim("$");
QString out = "";
int curPos = txt.indexOf(delim, 0);
if (curPos == -1) return txt;
while(curPos != -1)
{
int nextPos = txt.indexOf("$", curPos+1);
if (nextPos == -1)
{
out += txt.mid(curPos+1);
break;
}
QString var = txt.mid(curPos+1, nextPos-curPos-1);
bool found = false;
foreach(QString s, list)
{
if (s.startsWith(var, Qt::CaseInsensitive))
{
found = true;
out += s.mid(var.length()+1);
break;
}
}
if (!found)
out += "$" + var;
curPos = nextPos;
}
return out;
}
bool PlatformMac::isAlreadyRunning() const
{
return false;
}
// Create the application object
QApplication* createApplication(int& argc, char** argv)
{
return new PlatformMac(argc, argv);
}
|