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) {
|
||||
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()) {
|
||||
p.setOpacity(a_opacity.current());
|
||||
}
|
||||
|
|
|
@ -2471,6 +2471,8 @@ DragState HistoryWidget::getDragState(const QMimeData *d) {
|
|||
if (!i->isLocalFile()) return DragStateNone;
|
||||
|
||||
QString file(i->toLocalFile());
|
||||
if (file.startsWith(qsl("/.file/id="))) file = psConvertFileUrl(file);
|
||||
|
||||
quint64 s = QFileInfo(file).size();
|
||||
if (s >= MaxUploadDocumentSize) {
|
||||
return DragStateNone;
|
||||
|
@ -3283,6 +3285,8 @@ QStringList HistoryWidget::getMediasFromMime(const QMimeData *d) {
|
|||
if (!i->isLocalFile()) return QStringList();
|
||||
|
||||
QString file(i->toLocalFile());
|
||||
if (file.startsWith(qsl("/.file/id="))) file = psConvertFileUrl(file);
|
||||
|
||||
QFileInfo info(file);
|
||||
uint64 s = info.size();
|
||||
if (s >= MaxUploadDocumentSize) {
|
||||
|
|
|
@ -184,3 +184,6 @@ void psStart();
|
|||
void psFinish();
|
||||
|
||||
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) {
|
||||
}
|
||||
|
||||
QString psConvertFileUrl(const QString &url) {
|
||||
return objc_convertFileUrl(url);
|
||||
}
|
||||
|
|
|
@ -200,3 +200,4 @@ void psStart();
|
|||
void psFinish();
|
||||
|
||||
void psUpdateOverlayed(QWidget *widget);
|
||||
QString psConvertFileUrl(const QString &url);
|
||||
|
|
|
@ -68,3 +68,4 @@ void objc_deleteDir(const QString &dir);
|
|||
QString objc_appDataPath();
|
||||
QString objc_currentCountry();
|
||||
QString objc_currentLang();
|
||||
QString objc_convertFileUrl(const QString &url);
|
||||
|
|
|
@ -692,3 +692,12 @@ QString objc_currentLang() {
|
|||
NSString *currentLang = [currentLocale objectForKey:NSLocaleLanguageCode];
|
||||
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 psUpdateOverlayed(TWidget *widget);
|
||||
inline QString psConvertFileUrl(const QString &url) {
|
||||
return url;
|
||||
}
|
||||
|
|
|
@ -787,7 +787,7 @@ void Window::setupTrayIcon() {
|
|||
}
|
||||
|
||||
void Window::updateTrayMenu(bool force) {
|
||||
if (!trayIconMenu || cPlatform() == dbipWindows && !force) return;
|
||||
if (!trayIconMenu || (cPlatform() == dbipWindows && !force)) return;
|
||||
|
||||
bool active = psIsActive();
|
||||
QAction *first = trayIconMenu->actions().at(0);
|
||||
|
@ -869,7 +869,7 @@ void Window::showFromTray(QSystemTrayIcon::ActivationReason reason) {
|
|||
}
|
||||
|
||||
void Window::toggleTray(QSystemTrayIcon::ActivationReason reason) {
|
||||
if (trayIconMenu && cPlatform() == dbipMac) return;
|
||||
if (cPlatform() == dbipMac && psIsActive()) return;
|
||||
if (reason == QSystemTrayIcon::Context) {
|
||||
updateTrayMenu(true);
|
||||
QTimer::singleShot(1, this, SLOT(psShowTrayMenu()));
|
||||
|
|
Loading…
Reference in New Issue