From f4136f12e8284b5d495e56d3781178fadfa84fba Mon Sep 17 00:00:00 2001 From: Denis Fokin Date: Tue, 15 Oct 2013 14:32:07 +0400 Subject: [PATCH] IDEA-113995 Jump list: can't open recent projects that have spaces in paths --- bin/win/jumplistbridge.dll | Bin 40960 -> 54784 bytes bin/win/jumplistbridge64.dll | Bin 47104 -> 61952 bytes native/jumplistbridge/jumplistbridge.cpp | 275 ++++++++++++++++++ native/jumplistbridge/jumplistbridge.h | 72 +++++ .../src/com/intellij/ui/win/RecentTasks.java | 1 + .../com/intellij/ui/win/WinDockDelegate.java | 2 +- 6 files changed, 349 insertions(+), 1 deletion(-) create mode 100644 native/jumplistbridge/jumplistbridge.cpp create mode 100644 native/jumplistbridge/jumplistbridge.h diff --git a/bin/win/jumplistbridge.dll b/bin/win/jumplistbridge.dll index be1209cba6d883bf6fe1f52c0b3e0f06707fc483..cc614d8d3893e52b70ef0434e813adc7f0f91a36 100644 GIT binary patch delta 27876 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 diff --git a/bin/win/jumplistbridge64.dll b/bin/win/jumplistbridge64.dll index c5f2fdd7a6482ffb87749a739ab381dfc63a5f9f..212c6d4cde9b4dd148efac4b774bd557ea9e71e7 100644 GIT binary patch literal 61952 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 I|7jNZe@GgxZwf0Qz>SJurEBVB!z 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 aw>GxJ?wzoFH*C*#I$-_Oofy31mj43068aDT diff --git a/native/jumplistbridge/jumplistbridge.cpp b/native/jumplistbridge/jumplistbridge.cpp new file mode 100644 index 000000000000..4703ab5d7ee2 --- /dev/null +++ b/native/jumplistbridge/jumplistbridge.cpp @@ -0,0 +1,275 @@ +/* + * Copyright 2000-2012 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * @author Denis Fokin + */ + +#include "stdafx.h" +#include +#include +#include "jumplistbridge64.h" +#include +#include +#include +#include +#pragma comment(lib, "Shlwapi.lib") +#include +#include +#include +#include +#include +#include + +wchar_t * jstowsz(JNIEnv* env, jstring string) +{ + if (string == NULL) { + return NULL; + } + + int chCount = env->GetStringLength(string); + const jchar* javaChars = env->GetStringChars(string, NULL); + + if (javaChars == NULL) { + return NULL; + } + + wchar_t* wideString = new wchar_t[chCount+1]; + memcpy(wideString, javaChars, chCount*2); + wideString[chCount] = 0; + env->ReleaseStringChars(string, javaChars); + return wideString; +} + +PCWSTR jetBrainsAppId; + +/* +* Class: com_intellij_ui_win_RecentTasks +* Method: initialize +* Signature: (Ljava/lang/String;)V +*/ +JNIEXPORT void JNICALL Java_com_intellij_ui_win_RecentTasks_initialize + (JNIEnv * jEnv, jclass clz, jstring jAppId) { + jetBrainsAppId = jstowsz(jEnv, jAppId); + SetCurrentProcessExplicitAppUserModelID(jetBrainsAppId); + ::CoInitialize(NULL); +} + +/* +* Class: com_intellij_ui_win_RecentTasks +* Method: clearNative +* Signature: ()V +*/ +JNIEXPORT void JNICALL Java_com_intellij_ui_win_RecentTasks_clearNative + (JNIEnv *, jclass) { + + ICustomDestinationList * pcdl; + HRESULT hr = CoCreateInstance(CLSID_DestinationList, NULL, CLSCTX_INPROC_SERVER, IID_ICustomDestinationList, (void**)&pcdl); + + if (SUCCEEDED(hr)) { + pcdl->SetAppID(jetBrainsAppId); + + UINT uMaxSlots; + IObjectArray *poaRemoved; + hr = pcdl->BeginList( + &uMaxSlots, + IID_PPV_ARGS(&poaRemoved)); + pcdl->DeleteList(jetBrainsAppId); + hr = pcdl->CommitList(); + } +} + +HRESULT _CreateShellLink(PCWSTR pszPath, + PCWSTR pszArguments, PCWSTR pszTitle, + IShellLink **ppsl) +{ + IShellLink *psl; + HRESULT hr = CoCreateInstance( + CLSID_ShellLink, + NULL, + CLSCTX_INPROC_SERVER, + IID_PPV_ARGS(&psl)); + if (SUCCEEDED(hr)) + { + hr = psl->SetPath(pszPath); + if (SUCCEEDED(hr)) + { + hr = psl->SetArguments(pszArguments); + if (SUCCEEDED(hr)) + { + IPropertyStore *pps; + hr = psl->QueryInterface(IID_PPV_ARGS(&pps)); + if (SUCCEEDED(hr)) + { + PROPVARIANT propvar; + hr = InitPropVariantFromString(pszTitle, &propvar); + if (SUCCEEDED(hr)) + { hr = pps->SetValue(PKEY_Title, propvar); + if (SUCCEEDED(hr)) + { + hr = pps->Commit(); + if (SUCCEEDED(hr)) + { + hr = psl->QueryInterface + (IID_PPV_ARGS(ppsl)); + } + } + PropVariantClear(&propvar); + } + pps->Release(); + } + } + } + else + { + hr = HRESULT_FROM_WIN32(GetLastError()); + } + psl->Release(); + } + return hr; +} + +void checkJNISuccess (JNIEnv * jEnv) { + if (jEnv->ExceptionOccurred()) { + jEnv->ExceptionDescribe(); + } +} + + +LPCWSTR getShortPath (LPCWSTR lpszPath) { + long length = 0; + TCHAR* buffer = NULL; + length = GetShortPathName(lpszPath, NULL, 0); + buffer = new TCHAR[length]; + length = GetShortPathName(lpszPath, buffer, length); + return buffer; + +} + +/* +* Class: com_intellij_ui_win_RecentTasks +* Method: getShortenPath +* Signature: ([Ljava/lang/String;)[Ljava/lang/String; +*/ +JNIEXPORT jstring JNICALL Java_com_intellij_ui_win_RecentTasks_getShortenPath + (JNIEnv * jEnv, jclass c, jstring path) +{ + + if (path == NULL) { + wprintf(L"The object is NULL \n"); + } + + long length = 0; + TCHAR* shortenPath = NULL; + length = GetShortPathName(jstowsz(jEnv, path), NULL, 0); + shortenPath = new TCHAR[length]; + GetShortPathName(jstowsz(jEnv, path), shortenPath, length); + + char *mbDcr = 0; + + int mblen = WideCharToMultiByte(CP_ACP, WC_NO_BEST_FIT_CHARS, shortenPath, length, mbDcr, NULL, NULL, NULL); + mbDcr = new char[mblen + 1]; + WideCharToMultiByte(CP_ACP, WC_NO_BEST_FIT_CHARS, shortenPath, length, mbDcr, length + 1, NULL, NULL); + + jstring jstrBuf = jEnv->NewStringUTF(mbDcr); + + return jstrBuf; +} + +/* +* Class: com_intellij_ui_win_RecentTasks +* Method: addTasksNativeForCategory +* Signature: (Ljava/lang/String;[Lcom/intellij/ui/win/RecentTasks/Task;)V +*/ +JNIEXPORT void JNICALL Java_com_intellij_ui_win_RecentTasks_addTasksNativeForCategory + (JNIEnv * jEnv, jclass c, jstring cn, jobjectArray linksArray) +{ + LPCWSTR categoryName = (wchar_t*) jEnv->GetStringChars(cn, 0); + + ICustomDestinationList * pcdl; + HRESULT hr = CoCreateInstance(CLSID_DestinationList, NULL, CLSCTX_INPROC_SERVER, IID_ICustomDestinationList, (void**)&pcdl); + + if (SUCCEEDED(hr)) { + pcdl->SetAppID(jetBrainsAppId); + + UINT uMaxSlots; + IObjectArray *poaRemoved; + hr = pcdl->BeginList( + &uMaxSlots, + IID_PPV_ARGS(&poaRemoved)); + if (SUCCEEDED(hr)) + { + IObjectCollection *poc; + HRESULT hr = CoCreateInstance(CLSID_EnumerableObjectCollection, NULL, CLSCTX_INPROC, IID_PPV_ARGS(&poc)); + if (SUCCEEDED(hr)) + { + jint i; + jint count = jEnv->GetArrayLength(linksArray); + for (i=0; i < count; i++) { + jobject linkData = jEnv->GetObjectArrayElement(linksArray, i); + checkJNISuccess(jEnv); + + jclass cls = jEnv->GetObjectClass(linkData); + checkJNISuccess(jEnv); + + jfieldID pathFieldId = jEnv->GetFieldID(cls, "path", "Ljava/lang/String;"); + checkJNISuccess(jEnv); + + jfieldID argsFieldId = jEnv->GetFieldID(cls, "args", "Ljava/lang/String;"); + checkJNISuccess(jEnv); + + jfieldID descriptionFieldId = jEnv->GetFieldID(cls, "description", "Ljava/lang/String;"); + checkJNISuccess(jEnv); + + jstring path = (jstring)jEnv->GetObjectField(linkData, pathFieldId); + checkJNISuccess(jEnv); + + jstring args = (jstring)jEnv->GetObjectField(linkData, argsFieldId); + checkJNISuccess(jEnv); + + jstring description = (jstring)jEnv->GetObjectField(linkData, descriptionFieldId); + checkJNISuccess(jEnv); + + IShellLink * psl; + hr = _CreateShellLink(jstowsz(jEnv, path), + jstowsz(jEnv, args), + jstowsz(jEnv, description), &psl); + + if (SUCCEEDED(hr)) + { + hr = poc->AddObject(psl); + psl->Release(); + + } else { + jEnv->ThrowNew(jEnv->FindClass("java/lang/Exception"), "Cannot create a shell link"); + } + + jEnv->DeleteLocalRef(linkData); + } + + pcdl->AppendCategory(categoryName, poc); + } else { + jEnv->ThrowNew(jEnv->FindClass("java/lang/Exception"), "Cannot recieve CLSID_EnumerableObjectCollection interface"); + } + pcdl->CommitList(); + pcdl->Release(); + } else { + jEnv->ThrowNew(jEnv->FindClass("java/lang/Exception"), "Cannot begin DestinationList"); + } + } else { + jEnv->ThrowNew(jEnv->FindClass("java/lang/Exception"), "Cannot recieve CLSID_DestinationList interface"); + } +} \ No newline at end of file diff --git a/native/jumplistbridge/jumplistbridge.h b/native/jumplistbridge/jumplistbridge.h new file mode 100644 index 000000000000..ff4c0e2c52f8 --- /dev/null +++ b/native/jumplistbridge/jumplistbridge.h @@ -0,0 +1,72 @@ +/* + * Copyright 2000-2012 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * @author Denis Fokin + */ + +#ifdef JUMPLISTBRIDGEJNI_EXPORTS +#define JUMPLISTBRIDGEJNI_API __declspec(dllexport) +#else +#define JUMPLISTBRIDGEJNI_API __declspec(dllimport) +#endif + +/* DO NOT EDIT THIS FILE - it is machine generated */ +#include +/* Header for class com_intellij_ui_win_RecentTasks */ + +#ifndef _Included_com_intellij_ui_win_RecentTasks +#define _Included_com_intellij_ui_win_RecentTasks +#ifdef __cplusplus +extern "C" { +#endif +/* + * Class: com_intellij_ui_win_RecentTasks + * Method: initialize + * Signature: (Ljava/lang/String;)V + */ +JNIEXPORT void JNICALL Java_com_intellij_ui_win_RecentTasks_initialize + (JNIEnv *, jclass, jstring); + +/* + * Class: com_intellij_ui_win_RecentTasks + * Method: addTasksNativeForCategory + * Signature: (Ljava/lang/String;[Lcom/intellij/ui/win/RecentTasks/Task;)V + */ +JNIEXPORT void JNICALL Java_com_intellij_ui_win_RecentTasks_addTasksNativeForCategory + (JNIEnv *, jclass, jstring, jobjectArray); + +/* +* Class: com_intellij_ui_win_RecentTasks +* Method: getShortenPath +* Signature: ([Ljava/lang/String;)[Ljava/lang/String; +*/ +JNIEXPORT jstring JNICALL Java_com_intellij_ui_win_RecentTasks_getShortenPath + (JNIEnv * jEnv, jclass c, jstring path); + +/* + * Class: com_intellij_ui_win_RecentTasks + * Method: clearNative + * Signature: ()V + */ +JNIEXPORT void JNICALL Java_com_intellij_ui_win_RecentTasks_clearNative + (JNIEnv *, jclass); + +#ifdef __cplusplus +} +#endif +#endif + diff --git a/platform/platform-impl/src/com/intellij/ui/win/RecentTasks.java b/platform/platform-impl/src/com/intellij/ui/win/RecentTasks.java index ceb834e196c0..6729505df55c 100644 --- a/platform/platform-impl/src/com/intellij/ui/win/RecentTasks.java +++ b/platform/platform-impl/src/com/intellij/ui/win/RecentTasks.java @@ -47,6 +47,7 @@ public class RecentTasks { */ native private static void initialize (String applicationId); native private static void addTasksNativeForCategory (String category, Task [] tasks); + native static String getShortenPath(String paths); native private static void clearNative(); public synchronized static void clear() { diff --git a/platform/platform-impl/src/com/intellij/ui/win/WinDockDelegate.java b/platform/platform-impl/src/com/intellij/ui/win/WinDockDelegate.java index 7f1e02a92c6e..0e6a076c32b7 100644 --- a/platform/platform-impl/src/com/intellij/ui/win/WinDockDelegate.java +++ b/platform/platform-impl/src/com/intellij/ui/win/WinDockDelegate.java @@ -46,7 +46,7 @@ public class WinDockDelegate implements SystemDock.Delegate { Task[] tasks = new Task[recentProjectActions.length]; for (int i = 0; i < recentProjectActions.length; i ++) { ReopenProjectAction rpa = (ReopenProjectAction)recentProjectActions[i]; - tasks[i] = new Task(javaExe, argsToExecute + rpa.getProjectPath(), rpa.getProjectName()); + tasks[i] = new Task(javaExe, argsToExecute + RecentTasks.getShortenPath(rpa.getProjectPath()), rpa.getProjectName()); } RecentTasks.addTasks(tasks); }