Commit 091ae3db authored by Jake Petroules's avatar Jake Petroules

Remove the last usage of deprecated Carbon APIs from Qt Creator

Change-Id: I05c8345e5f1618e7ecbb8a9c27feb5b9a321dc11
Reviewed-by: Gabriel de Dietrich's avatarGabriel de Dietrich <gabriel.dedietrich@qt.io>
Reviewed-by: Eike Ziller's avatarEike Ziller <eike.ziller@qt.io>
Reviewed-by: Vikas Pachdha's avatarVikas Pachdha <vikas.pachdha@qt.io>
Reviewed-by: default avatarhjk <hjk@qt.io>
parent e1de989e
......@@ -68,4 +68,11 @@ bool ProcessHandle::equals(const ProcessHandle &rhs) const
return m_pid == rhs.m_pid;
}
#ifndef Q_OS_MACOS
bool ProcessHandle::activate()
{
return false;
}
#endif
} // Utils
......@@ -43,6 +43,8 @@ public:
bool equals(const ProcessHandle &) const;
bool activate();
private:
qint64 m_pid;
};
......
/****************************************************************************
**
** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qt Creator.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3 as published by the Free Software
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
****************************************************************************/
#include "processhandle.h"
#import <AppKit/AppKit.h>
namespace Utils {
bool ProcessHandle::activate()
{
NSRunningApplication *app = [NSRunningApplication
runningApplicationWithProcessIdentifier:pid()];
return app && [app activateWithOptions:static_cast<NSApplicationActivationOptions>(
NSApplicationActivateIgnoringOtherApps)];
}
} // Utils
......@@ -252,8 +252,9 @@ osx {
HEADERS += \
$$PWD/fileutils_mac.h
OBJECTIVE_SOURCES += \
$$PWD/fileutils_mac.mm
LIBS += -framework Foundation
$$PWD/fileutils_mac.mm \
$$PWD/processhandle_mac.mm
LIBS += -framework Foundation -framework AppKit
}
include(mimetypes/mimetypes.pri)
......@@ -30,7 +30,7 @@ Project {
Properties {
condition: qbs.targetOS.contains("macos")
cpp.frameworks: ["Foundation"]
cpp.frameworks: ["Foundation", "AppKit"]
}
Depends { name: "Qt"; submodules: ["concurrent", "network", "qml", "widgets"] }
......@@ -297,6 +297,14 @@ Project {
]
}
Group {
name: "ProcessHandle_macos"
condition: qbs.targetOS.contains("macos")
files: [
"processhandle_mac.mm",
]
}
Group {
name: "MimeTypes"
prefix: "mimetypes/"
......
......@@ -330,8 +330,6 @@ journald {
LIBS += -lsystemd
}
macx:LIBS += -framework Carbon
RESOURCES += projectexplorer.qrc
# Some way to override the architecture used in Abi:
......
......@@ -15,10 +15,6 @@ Project {
Depends { name: "TextEditor" }
cpp.defines: base.concat("QTC_CPU=X86Architecture")
Properties {
condition: qbs.targetOS.contains("macos")
cpp.frameworks: base.concat(["Carbon"])
}
Group {
name: "General"
......
......@@ -704,11 +704,6 @@ public:
RunControlState state = RunControlState::Initialized;
QList<QPointer<RunWorker>> m_workers;
#ifdef Q_OS_OSX
// This is used to bring apps in the foreground on Mac
int foregroundCount;
#endif
};
} // Internal
......@@ -1242,25 +1237,7 @@ void RunControlPrivate::debugMessage(const QString &msg)
*/
void RunControl::bringApplicationToForeground()
{
#ifdef Q_OS_OSX
d->foregroundCount = 0;
bringApplicationToForegroundInternal();
#endif
}
void RunControl::bringApplicationToForegroundInternal()
{
#ifdef Q_OS_OSX
ProcessSerialNumber psn;
GetProcessForPID(d->applicationProcessHandle.pid(), &psn);
if (SetFrontProcess(&psn) == procNotFound && d->foregroundCount < 15) {
// somehow the mac/carbon api says
// "-600 no eligible process with specified process id"
// if we call SetFrontProcess too early
++d->foregroundCount;
QTimer::singleShot(200, this, &RunControl::bringApplicationToForegroundInternal);
}
#endif
d->applicationProcessHandle.activate();
}
void RunControl::appendMessage(const QString &msg, Utils::OutputFormat format)
......
......@@ -488,7 +488,6 @@ private:
friend class Internal::RunWorkerPrivate;
static void addWorkerFactory(const WorkerFactory &workerFactory);
void bringApplicationToForegroundInternal();
Internal::RunControlPrivate *d;
};
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment