Skip to content

Suggest a file name with the settings suffix when saving the mixer setup on iOS - #3997

Open
ann0see wants to merge 1 commit into
mainfrom
ios/default-mixer-setup-name
Open

ann0see wants to merge 1 commit into
mainfrom
ios/default-mixer-setup-name

Conversation

@ann0see

@ann0see ann0see commented Nov 15, 2026

Copy link
Copy Markdown
Member

Short description of changes

Suggest a file name carrying the .jch suffix when saving the mixer channel setup on iOS, so that the saved file can be loaded again.

QFileDialog::getSaveFileName() on iOS derives the suggested name from the path it is given, and falls back to Untitled — without an extension. The load dialog filters for *.jch, so a setup saved on iOS was written as Untitled and could not be selected again in the load dialog without renaming it. On iOS the save sheet still shows MixerSetup, because the suffix of a known type is hidden from the text field, but the file is written as MixerSetup.jch.

The default name is only passed on iOS, so the initial directory behaviour on the other platforms is unchanged.

CHANGELOG: iOS: Fixed mixer channel setups being saved without the file suffix, which made them impossible to load again

Context: Fixes an issue?

Fixes #3994 (part of the mixer channel setup item).

While investigating this I found that my original claim in #3994 was partly wrong: the document picker does accept .jch files, and loading works. The earlier test file was named mix1.jchjch, which is not a .jch file, so the picker correctly greyed it out. The only real problem was the name used when saving.

Measured on the iPad Pro 11-inch simulator (iOS 27.2), Qt 6.11.1:

before after
name suggested in the save sheet Untitled MixerSetup
file written Untitled (no suffix) MixerSetup.jch
shown in the load dialog greyed out, not selectable selectable
loading it impossible loads, no error, no crash

Does this change need documentation? What needs to be documented and how?

No.

Status of this Pull Request

Working implementation.

What is missing until this pull request can be merged?

  • Tested on the iPad Pro 11-inch simulator with Qt 6.11.1, on top of Only compile the iOS app delegate for Qt 5 #3988, because main does not launch on iOS with Qt 6 without it.
  • The verified round trip was: save via the new default name, then load the resulting MixerSetup.jch from the same dialog.
  • Not tested on a physical device. Android uses the same Qt file dialog code path but is deliberately unchanged here.
  • Note that Get rid of iOS save mixer channel #3598 proposes removing this feature on iOS altogether; this change makes it usable in the meantime and can be dropped if that goes ahead.

🤖 Used AI: DeepSeek V4.1 Flash, OpenCode

@ann0see ann0see added the AI AI generated or potentially AI generated label Nov 15, 2026
@ann0see ann0see mentioned this pull request Nov 15, 2026
6 of 16 tasks
@coderabbitai

coderabbitai Bot commented Nov 15, 2026 •

Copy link
Copy Markdown

Explain Change →

No actionable comments were generated in the recent review.

Walkthrough

The mixer channel setup save dialog now uses MixerSetup.<suffix> as its suggested filename on iOS. Other platforms retain an empty default filename. The file-type filter and save behavior are unchanged.

Changes: Mixer Setup Save

Layer / File(s) Summary
Set the save-dialog default filename
src/clientdlg.cpp
On iOS, OnSaveChannelSetup supplies MixerSetup.<suffix> as the suggested filename. Other platforms continue to use an empty default name. The file-type filter is unchanged.

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix · Severity of issue fixed: Medium

Suggested reviewers: softins, pljones

Merge Risk: Minimal · up to 3143d

On iOS, saving a mixer setup now suggests a name with the .jch suffix, so the saved file shows up in the load dialog. The change is small and limited to iOS. No concrete merge-blocking risk was found. How the native iOS picker treats a renamed file on a physical device was not independently confirmed.

Pre-merge checks: Passed 4

Check name Status Explanation
Title check Passed The title names the main change: the mixer setup save dialog on iOS now suggests a file name with the settings suffix. The raw summary confirms that OnSaveChannelSetup passes MixerSetup. as th…
Description check Passed The description follows the template. It has a short description of changes, a CHANGELOG entry in past tense, and a context section that links to #3994. It answers the documentation question and gives…
Linked Issues check Passed Scope: directly linked issue #3994 lists many items. This PR claims only the mixer channel setup item ("Mixer channel setup saved on iOS cannot be loaded again"). Other #3994 items are not assessed he…
Out of Scope Changes check Passed The change is limited to src/clientdlg.cpp (+10/-1, per the summary). It alters only the default save filename in the mixer channel setup save path, and only on iOS. The file-type filter, save behavio…
Full details: Title check

Explanation

The title names the main change: the mixer setup save dialog on iOS now suggests a file name with the settings suffix. The raw summary confirms that OnSaveChannelSetup passes MixerSetup.<suffix> as the default filename on iOS. The title is specific and matches the changeset. It is long (15 words), but it is still one clear sentence.

Full details: Description check

Explanation

The description follows the template. It has a short description of changes, a CHANGELOG entry in past tense, and a context section that links to #3994. It answers the documentation question and gives a status and remaining work. It also states the test setup and the verified round trip. The checklist items are not ticked, and the AUTOBUILD note is not addressed. These are minor gaps and do not change the assessment.

Full details: Linked Issues check

Explanation

Scope: directly linked issue #3994 lists many items. This PR claims only the mixer channel setup item ("Mixer channel setup saved on iOS cannot be loaded again"). Other #3994 items are not assessed here.

Requirement [#3994]: a mixer setup saved on iOS must be selectable and loadable in the load dialog, which filters for *.jch.

Evidence: the change in src/clientdlg.cpp (per the summary, +10/-1) makes CClientDlg::OnSaveChannelSetup pass MixerSetup.<suffix> as the default save filename on iOS. This gives the saved file the .jch suffix. The PR description reports a simulator round trip: save as MixerSetup.jch, then load it from the same dialog. No coding requirement for this item is unmet.

Limitation: the whole-PR text diff could not be read (changed blobs missing from the checkout). The head file was readable but too large to locate the function within the byte limit. The code evidence therefore rests on the summary and the author's reported test. No automated test is required by the linked item, which is a manual test scenario.

Full details: Out of Scope Changes check

Explanation

The change is limited to src/clientdlg.cpp (+10/-1, per the summary). It alters only the default save filename in the mixer channel setup save path, and only on iOS. The file-type filter, save behaviour, and other platforms are unchanged, as stated in the summary and PR description. The change connects directly to the linked mixer setup requirement from #3994. No unrelated changes were identified.

Limitation: the text diff could not be read, so this verdict relies on the summary and the PR description.

Finishing Touches

Generate unit tests (beta)

  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

Recent review info

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Repository UI
  • Review profile: QUIET
  • Plan: Advanced
  • Run ID: 0f7ac3b2-396f-4566-9533-64ad40ad3bce
Commits

Reviewing files that changed from the base of the PR and between 1470602 and 3143d2d.

Files selected for processing: 1

  • src/clientdlg.cpp

Included review availability: This review used your included allowance. Your plan provides up to 4 included reviews per hour; 2 remain after this review.

@ann0see
ann0see marked this pull request as draft November 15, 2026 17:45
@ann0see ann0see added Mobile UI Issues with the UI on mobile platforms iOS iOS runtime issue labels Nov 15, 2026
@ann0see ann0see self-assigned this Nov 15, 2026
@ann0see

ann0see commented Nov 15, 2026

Copy link
Copy Markdown
Member Author

More important...

@ann0see ann0see added this to Tracking Nov 15, 2026
@github-project-automation github-project-automation Bot moved this to Triage in Tracking Nov 15, 2026
@ann0see ann0see moved this from Triage to In Progress in Tracking Nov 15, 2026
@ann0see ann0see moved this from In Progress to Backlog in Tracking Nov 15, 2026
@ann0see ann0see added this to the Release 4.0.0 milestone Nov 15, 2026
@ann0see ann0see added the backport_required A change to main that needs fix on an existing release. label Nov 15, 2026
@ann0see
ann0see marked this pull request as ready for review November 15, 2026 20:52
…er setup

The iOS file dialog takes the suggested file name from the path passed to
QFileDialog::getSaveFileName() and falls back to "Untitled" without an
extension. The load dialog filters for *.jch, so a setup saved on iOS could not
be loaded again without renaming the file first.

Pass a default name that carries the suffix. The save dialog hides the known
suffix from the text field, so the user still sees "MixerSetup", but the file is
written as MixerSetup.jch.
@ann0see
ann0see force-pushed the ios/default-mixer-setup-name branch from 1470602 to 3143d2d Compare November 15, 2026 21:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

AI AI generated or potentially AI generated backport_required A change to main that needs fix on an existing release. iOS iOS runtime issue Mobile UI Issues with the UI on mobile platforms

Projects

Status: Backlog

Development

Successfully merging this pull request may close these issues.

AI bug findings for iOS

1 participant