diff --git a/src/chatview.cpp b/src/chatview.cpp index 8d126b775b9799b295eb29c867650c9b3b80954c..efdef4d4b73b2ba529c387c8bfce540765f6b01b 100644 --- a/src/chatview.cpp +++ b/src/chatview.cpp @@ -164,7 +164,7 @@ button_add_to_conversations_clicked(ChatView *self) } static gchar* -file_to_manipulate(GtkWindow* top_window, bool send) +file_to_manipulate(GtkWindow* top_window, bool send, const std::string& displayName = "") { GtkWidget* dialog; GtkFileChooserAction action = send? GTK_FILE_CHOOSER_ACTION_OPEN : GTK_FILE_CHOOSER_ACTION_SAVE; @@ -179,6 +179,9 @@ file_to_manipulate(GtkWindow* top_window, bool send) send? _("_Open"): _("_Save"), GTK_RESPONSE_ACCEPT, nullptr); + // Set default save name + if (!send) + gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER(dialog), displayName.c_str()); res = gtk_dialog_run (GTK_DIALOG(dialog)); @@ -216,7 +219,11 @@ webkit_chat_container_script_dialog(G_GNUC_UNUSED GtkWidget* webview, gchar *int if (auto model = priv->accountContainer_->info.conversationModel.get()) { try { auto interactionId = std::stoull(order.substr(std::string("ACCEPT_FILE:").size())); - if (auto filename = file_to_manipulate(GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(self))), false)) + + lrc::api::datatransfer::Info info = {}; + priv->accountContainer_->info.conversationModel->getTransferInfo(interactionId, info); + + if (auto filename = file_to_manipulate(GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(self))), false, info.displayName)) model->acceptTransfer(priv->conversation_->uid, interactionId, filename); else model->cancelTransfer(priv->conversation_->uid, interactionId);