jamulussoftware / jamulussoftware/jamulus

Adding global messagebox and commandline parameter parsing classes.

Open
#2,538 8 comments 0 reactions 0 assignees View on GitHub
refactoring
Dominant language
C
Stars
1.1k
Forks
248
Avg merge
2d 3h
Merged PRs (30d)
9

Description

**What is the current behaviour and why should it be changed?**

Currently messageboxes for errors, warnings and info are created all over the code. Disadvantage is that they don't have a parent dialog and are inconsistent in message title.

Also commandline parameters are now parsed by several functions in main and passed via-via through several constructor parameters. A class accessible anywhere in the code would be more efficient and more versatile.

**Describe possible approaches**

All this is in preparation of the "sound-redesign"

A static messagebox class will provide messageboxes that can be opened anywhere in the code, but are always child of CClientdlg and will have a consistant title (including any clientname).

The commandline parsing functions in main will be moved to a (static) class that is accessible anywhere in the code so commandline parameters can be retrieved anywhere in the code, no need to pass then via-via through constructors.
Also we will be able to use "special" commandline parameters (normally rejected) for debugging and testing purposes.

**Has this feature been discussed and generally agreed?**

The commandline parsing class was already suggested in the comments in the code.

Contributor guide

Open the contributing guide

Research direction

Start by reading the command-line parsing functions in main and the existing messagebox uses around CClientdlg, including the comments that suggested a parsing class. Done means messageboxes consistently use CClientdlg as their parent and title, while command-line parameters can be retrieved throughout the code, including special parameters for debugging and testing.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
cli, desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.