Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Default filename parameter for save file dialog #140

Draft
wants to merge 1 commit into
base: debug
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Photino.Native/Exports.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -280,8 +280,8 @@ extern "C"
EXPORTED AutoString* Photino_ShowOpenFolder(Photino* inst, AutoString title, AutoString defaultPath, bool multiSelect, int* resultCount) {
return inst->GetDialog()->ShowOpenFolder(title, defaultPath, multiSelect, resultCount);
}
EXPORTED AutoString Photino_ShowSaveFile(Photino* inst, AutoString title, AutoString defaultPath, AutoString* filters, int filterCount) {
return inst->GetDialog()->ShowSaveFile(title, defaultPath, filters, filterCount);
EXPORTED AutoString Photino_ShowSaveFile(Photino* inst, AutoString title, AutoString defaultPath, AutoString defaultFileName, AutoString* filters, int filterCount) {
return inst->GetDialog()->ShowSaveFile(title, defaultPath, defaultFileName, filters, filterCount);
}
EXPORTED DialogResult Photino_ShowMessage(Photino* inst, AutoString title, AutoString text, DialogButtons buttons, DialogIcon icon) {
return inst->GetDialog()->ShowMessage(title, text, buttons, icon);
Expand Down
2 changes: 1 addition & 1 deletion Photino.Native/Photino.Dialog.h
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ class PhotinoDialog

AutoString *ShowOpenFile(AutoString title, AutoString defaultPath, bool multiSelect, AutoString *filters, int filterCount, int *resultCount);
AutoString *ShowOpenFolder(AutoString title, AutoString defaultPath, bool multiSelect, int *resultCount);
AutoString ShowSaveFile(AutoString title, AutoString defaultPath, AutoString *filters, int filterCount);
AutoString ShowSaveFile(AutoString title, AutoString defaultPath, AutoString defaultFileName, AutoString *filters, int filterCount);
DialogResult ShowMessage(AutoString title, AutoString text, DialogButtons buttons, DialogIcon icon);

protected:
Expand Down
3 changes: 2 additions & 1 deletion Photino.Native/Photino.Linux.Dialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ void AddFilters(GtkWidget* dialog, AutoString* filters, int filterCount)
}
}

AutoString* ShowDialog(DialogType type, AutoString title, AutoString defaultPath, bool multiSelect, AutoString* filters, int filterCount, int* resultCount) {
AutoString* ShowDialog(DialogType type, AutoString title, AutoString defaultPath, AutoString defaultFileName, bool multiSelect, AutoString* filters, int filterCount, int* resultCount) {
GtkFileChooserAction action;
const char* buttonText;
switch (type) {
Expand Down Expand Up @@ -54,6 +54,7 @@ AutoString* ShowDialog(DialogType type, AutoString title, AutoString defaultPath
}
if (type == SaveFile) {
gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER(dialog), TRUE);
gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(dialog), defaultFileName);
}
if (type == OpenFile || type == SaveFile) {
AddFilters(dialog, filters, filterCount);
Expand Down
3 changes: 2 additions & 1 deletion Photino.Native/Photino.Mac.Dialog.mm
Original file line number Diff line number Diff line change
Expand Up @@ -88,12 +88,13 @@
return nullptr;
}

AutoString PhotinoDialog::ShowSaveFile(AutoString title, AutoString defaultPath, AutoString* filters, int filterCount) {
AutoString PhotinoDialog::ShowSaveFile(AutoString title, AutoString defaultPath, AutoString defaultFileName, AutoString* filters, int filterCount) {
NSSavePanel* saveDlg = [NSSavePanel savePanel];

[saveDlg setTitle:[NSString stringWithUTF8String:title]];
[saveDlg setPrompt:[NSString stringWithUTF8String:"Save"]];
[saveDlg setDirectoryURL:[NSURL fileURLWithPath:[NSString stringWithUTF8String:defaultPath]]];
[saveDlg setNameFieldStringValue:[NSString stringWithUTF8String:defaultFileName]];
[saveDlg setAllowsOtherFileTypes:NO];
[saveDlg setCanSelectHiddenExtension:YES];

Expand Down
7 changes: 6 additions & 1 deletion Photino.Native/Photino.Windows.Dialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -233,13 +233,18 @@ AutoString* PhotinoDialog::ShowOpenFolder(AutoString title, AutoString defaultPa
return nullptr;
}

AutoString PhotinoDialog::ShowSaveFile(AutoString title, AutoString defaultPath, AutoString* filters, int filterCount)
AutoString PhotinoDialog::ShowSaveFile(AutoString title, AutoString defaultPath, AutoString defaultFileName, AutoString* filters, int filterCount)
{
HRESULT hr;
title = _window->ToUTF16String(title);
defaultPath = _window->ToUTF16String(defaultPath);
defaultFileName = _window->ToUTF16String(defaultFileName);
auto* pfd = Create<IFileSaveDialog>(&hr, title, defaultPath);
if (SUCCEEDED(hr)) {
if (defaultFileName) {
pfd->SetFileName(defaultFileName);
}

AddFilters(pfd, filters, filterCount, _window);

DWORD dwOptions;
Expand Down