equal
deleted
inserted
replaced
1 # HG changeset patch |
1 # HG changeset patch |
2 # Parent 5f1979729aa3c6bc50f7097202991e73be677e5e |
2 # Parent aff14a54f25dc3146ba7a64408ceb9f486a832db |
3 Description: Add KDE integration to Firefox (toolkit parts) |
3 Description: Add KDE integration to Firefox (toolkit parts) |
4 Author: Wolfgang Rosenauer <wolfgang@rosenauer.org> |
4 Author: Wolfgang Rosenauer <wolfgang@rosenauer.org> |
5 Author: Lubos Lunak <lunak@suse.com> |
5 Author: Lubos Lunak <lunak@suse.com> |
6 Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=140751 |
6 Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=140751 |
7 https://bugzilla.novell.com/show_bug.cgi?id=170055 |
7 https://bugzilla.novell.com/show_bug.cgi?id=170055 |
3345 CopyUTF16toUTF8(aFilter, filter); |
3345 CopyUTF16toUTF8(aFilter, filter); |
3346 CopyUTF16toUTF8(aTitle, name); |
3346 CopyUTF16toUTF8(aTitle, name); |
3347 |
3347 |
3348 mFilters.AppendElement(filter); |
3348 mFilters.AppendElement(filter); |
3349 mFilterNames.AppendElement(name); |
3349 mFilterNames.AppendElement(name); |
3350 @@ -371,16 +375,32 @@ nsFilePicker::Show(int16_t *aReturn) |
3350 @@ -371,16 +375,34 @@ nsFilePicker::Show(int16_t *aReturn) |
3351 |
3351 |
3352 NS_IMETHODIMP |
3352 NS_IMETHODIMP |
3353 nsFilePicker::Open(nsIFilePickerShownCallback *aCallback) |
3353 nsFilePicker::Open(nsIFilePickerShownCallback *aCallback) |
3354 { |
3354 { |
3355 // Can't show two dialogs concurrently with the same filepicker |
3355 // Can't show two dialogs concurrently with the same filepicker |
3359 + // KDE file picker is not handled via callback |
3359 + // KDE file picker is not handled via callback |
3360 + if( nsKDEUtils::kdeSupport()) { |
3360 + if( nsKDEUtils::kdeSupport()) { |
3361 + int16_t result; |
3361 + int16_t result; |
3362 + mCallback = aCallback; |
3362 + mCallback = aCallback; |
3363 + mRunning = true; |
3363 + mRunning = true; |
|
3364 + NS_ADDREF_THIS(); |
3364 + kdeFileDialog(&result); |
3365 + kdeFileDialog(&result); |
3365 + if (mCallback) { |
3366 + if (mCallback) { |
3366 + mCallback->Done(result); |
3367 + mCallback->Done(result); |
3367 + mCallback = nullptr; |
3368 + mCallback = nullptr; |
3368 + } else { |
3369 + } else { |
3369 + mResult = result; |
3370 + mResult = result; |
3370 + } |
3371 + } |
3371 + mRunning = false; |
3372 + mRunning = false; |
|
3373 + NS_RELEASE_THIS(); |
3372 + return NS_OK; |
3374 + return NS_OK; |
3373 + } |
3375 + } |
3374 + |
3376 + |
3375 nsXPIDLCString title; |
3377 nsXPIDLCString title; |
3376 title.Adopt(ToNewUTF8String(mTitle)); |
3378 title.Adopt(ToNewUTF8String(mTitle)); |
3378 GtkWindow *parent_widget = |
3380 GtkWindow *parent_widget = |
3379 GTK_WINDOW(mParentWidget->GetNativeData(NS_NATIVE_SHELLWIDGET)); |
3381 GTK_WINDOW(mParentWidget->GetNativeData(NS_NATIVE_SHELLWIDGET)); |
3380 |
3382 |
3381 GtkFileChooserAction action = GetGtkFileChooserAction(mMode); |
3383 GtkFileChooserAction action = GetGtkFileChooserAction(mMode); |
3382 |
3384 |
3383 @@ -603,8 +623,235 @@ nsFilePicker::Done(GtkWidget* file_choos |
3385 @@ -603,8 +625,235 @@ nsFilePicker::Done(GtkWidget* file_choos |
3384 if (mCallback) { |
3386 if (mCallback) { |
3385 mCallback->Done(result); |
3387 mCallback->Done(result); |
3386 mCallback = nullptr; |
3388 mCallback = nullptr; |
3387 } else { |
3389 } else { |
3388 mResult = result; |
3390 mResult = result; |