mirror of https://github.com/procxx/kepka.git
fixed custom context menu for os x, fixed file drag-n-drop in os x 10.10
This commit is contained in:
parent
0d85f91453
commit
1fd25e8778
|
@ -127,6 +127,11 @@ void ContextMenu::resizeEvent(QResizeEvent *e) {
|
||||||
void ContextMenu::paintEvent(QPaintEvent *e) {
|
void ContextMenu::paintEvent(QPaintEvent *e) {
|
||||||
QPainter p(this);
|
QPainter p(this);
|
||||||
|
|
||||||
|
QPainter::CompositionMode m = p.compositionMode();
|
||||||
|
p.setCompositionMode(QPainter::CompositionMode_Source);
|
||||||
|
p.fillRect(e->rect(), st::transparent->b);
|
||||||
|
p.setCompositionMode(m);
|
||||||
|
|
||||||
if (animating()) {
|
if (animating()) {
|
||||||
p.setOpacity(a_opacity.current());
|
p.setOpacity(a_opacity.current());
|
||||||
}
|
}
|
||||||
|
|
|
@ -2471,6 +2471,8 @@ DragState HistoryWidget::getDragState(const QMimeData *d) {
|
||||||
if (!i->isLocalFile()) return DragStateNone;
|
if (!i->isLocalFile()) return DragStateNone;
|
||||||
|
|
||||||
QString file(i->toLocalFile());
|
QString file(i->toLocalFile());
|
||||||
|
if (file.startsWith(qsl("/.file/id="))) file = psConvertFileUrl(file);
|
||||||
|
|
||||||
quint64 s = QFileInfo(file).size();
|
quint64 s = QFileInfo(file).size();
|
||||||
if (s >= MaxUploadDocumentSize) {
|
if (s >= MaxUploadDocumentSize) {
|
||||||
return DragStateNone;
|
return DragStateNone;
|
||||||
|
@ -3283,6 +3285,8 @@ QStringList HistoryWidget::getMediasFromMime(const QMimeData *d) {
|
||||||
if (!i->isLocalFile()) return QStringList();
|
if (!i->isLocalFile()) return QStringList();
|
||||||
|
|
||||||
QString file(i->toLocalFile());
|
QString file(i->toLocalFile());
|
||||||
|
if (file.startsWith(qsl("/.file/id="))) file = psConvertFileUrl(file);
|
||||||
|
|
||||||
QFileInfo info(file);
|
QFileInfo info(file);
|
||||||
uint64 s = info.size();
|
uint64 s = info.size();
|
||||||
if (s >= MaxUploadDocumentSize) {
|
if (s >= MaxUploadDocumentSize) {
|
||||||
|
|
|
@ -184,3 +184,6 @@ void psStart();
|
||||||
void psFinish();
|
void psFinish();
|
||||||
|
|
||||||
void psUpdateOverlayed(QWidget *widget);
|
void psUpdateOverlayed(QWidget *widget);
|
||||||
|
inline QString psConvertFileUrl(const QString &url) {
|
||||||
|
return url;
|
||||||
|
}
|
||||||
|
|
|
@ -979,3 +979,7 @@ void psSendToMenu(bool send, bool silent) {
|
||||||
|
|
||||||
void psUpdateOverlayed(QWidget *widget) {
|
void psUpdateOverlayed(QWidget *widget) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString psConvertFileUrl(const QString &url) {
|
||||||
|
return objc_convertFileUrl(url);
|
||||||
|
}
|
||||||
|
|
|
@ -200,3 +200,4 @@ void psStart();
|
||||||
void psFinish();
|
void psFinish();
|
||||||
|
|
||||||
void psUpdateOverlayed(QWidget *widget);
|
void psUpdateOverlayed(QWidget *widget);
|
||||||
|
QString psConvertFileUrl(const QString &url);
|
||||||
|
|
|
@ -68,3 +68,4 @@ void objc_deleteDir(const QString &dir);
|
||||||
QString objc_appDataPath();
|
QString objc_appDataPath();
|
||||||
QString objc_currentCountry();
|
QString objc_currentCountry();
|
||||||
QString objc_currentLang();
|
QString objc_currentLang();
|
||||||
|
QString objc_convertFileUrl(const QString &url);
|
||||||
|
|
|
@ -692,3 +692,12 @@ QString objc_currentLang() {
|
||||||
NSString *currentLang = [currentLocale objectForKey:NSLocaleLanguageCode];
|
NSString *currentLang = [currentLocale objectForKey:NSLocaleLanguageCode];
|
||||||
return currentLang ? QString::fromUtf8([currentLang cStringUsingEncoding:NSUTF8StringEncoding]) : QString();
|
return currentLang ? QString::fromUtf8([currentLang cStringUsingEncoding:NSUTF8StringEncoding]) : QString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString objc_convertFileUrl(const QString &url) {
|
||||||
|
NSString *nsurl = [[[NSURL URLWithString: [NSString stringWithUTF8String: (qsl("file://") + url).toUtf8().constData()]] filePathURL] absoluteString];
|
||||||
|
if (!nsurl) return QString();
|
||||||
|
|
||||||
|
QString result = QString::fromUtf8([nsurl cStringUsingEncoding:NSUTF8StringEncoding]);
|
||||||
|
return result.startsWith(qsl("file://")) ? result.mid(7) : result;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -194,3 +194,6 @@ void psStart();
|
||||||
void psFinish();
|
void psFinish();
|
||||||
|
|
||||||
void psUpdateOverlayed(TWidget *widget);
|
void psUpdateOverlayed(TWidget *widget);
|
||||||
|
inline QString psConvertFileUrl(const QString &url) {
|
||||||
|
return url;
|
||||||
|
}
|
||||||
|
|
|
@ -787,7 +787,7 @@ void Window::setupTrayIcon() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Window::updateTrayMenu(bool force) {
|
void Window::updateTrayMenu(bool force) {
|
||||||
if (!trayIconMenu || cPlatform() == dbipWindows && !force) return;
|
if (!trayIconMenu || (cPlatform() == dbipWindows && !force)) return;
|
||||||
|
|
||||||
bool active = psIsActive();
|
bool active = psIsActive();
|
||||||
QAction *first = trayIconMenu->actions().at(0);
|
QAction *first = trayIconMenu->actions().at(0);
|
||||||
|
@ -869,7 +869,7 @@ void Window::showFromTray(QSystemTrayIcon::ActivationReason reason) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Window::toggleTray(QSystemTrayIcon::ActivationReason reason) {
|
void Window::toggleTray(QSystemTrayIcon::ActivationReason reason) {
|
||||||
if (trayIconMenu && cPlatform() == dbipMac) return;
|
if (cPlatform() == dbipMac && psIsActive()) return;
|
||||||
if (reason == QSystemTrayIcon::Context) {
|
if (reason == QSystemTrayIcon::Context) {
|
||||||
updateTrayMenu(true);
|
updateTrayMenu(true);
|
||||||
QTimer::singleShot(1, this, SLOT(psShowTrayMenu()));
|
QTimer::singleShot(1, this, SLOT(psShowTrayMenu()));
|
||||||
|
|
Loading…
Reference in New Issue