Commit Graph

1392 Commits

Author SHA1 Message Date
Martchus 86ce9b0538 Configure breve boundary 2024-02-04 21:57:37 +01:00
Martchus dfc69f143f Show note length of all dotted notes 2024-01-24 01:17:30 +01:00
Martchus 514f6c1593 Update my copyright date 2024-01-23 00:37:08 +01:00
Martchus 4dc5d6c887 Show three-quater notes correctly when showing note lengths is enabled
Not sure how these kinds of notes are officially called; this change is
actually just using a dotted half-note. Note that without this change such
notes would actually be displayed as whole note which would be wrong.
2024-01-21 23:04:02 +01:00
Martchus 568ee40c1b Make experimental feature to show note length configurable in settings
This makes testing easier and the feature doesn't look too bad at this
point.
2024-01-21 23:04:02 +01:00
Martchus 0183938e48 Log unknown MIDI events 2024-01-20 18:42:57 +01:00
Martchus e248eeea24 Simplify code in `CNotation::findNoteSlots()` 2024-01-20 18:32:36 +01:00
Martchus b9db475500 Mark getter functions in `CMidiEvent` const 2024-01-20 18:30:47 +01:00
Martchus 2ddf663237 Improve contrast of current note when stopped when using light theme
The contrast of the bright orange on the white background was not optimal.
The blue has a much better contrast and is in accordance with the playing
zone highlighting.
2024-01-20 15:58:25 +01:00
Martchus b31b3e78ea Fix typo in name of function for reading delta-time 2023-12-26 22:46:01 +01:00
Martchus a8daa1bbff Improve error handling in `CMidiTrack::readVarLen()`
* Always check `failed()` aber `readByte()` consistently
* Simplify coding style
2023-12-26 22:41:45 +01:00
Martchus b3737c04c2 Improve logging when opening a MIDI file
* Flush debugging logs immediately after each message
* Print "Opening song" before the related log messages
2023-12-26 22:09:40 +01:00
Martchus 8b720e66e0 Allow configuring log level via environment variable 2023-12-26 22:02:37 +01:00
Martchus d714ead991 Utilize pkg-config for finding FTGL also under Windows
The mingw-w64 FTGL package provided by MSYS2 is using the autotools build
script and therefore only contains the pkg-config file. This change allows
to build PianoBooster using MSYS2 packaging.
2023-12-26 21:35:32 +01:00
Martchus 2e860f6370 Fix warning in code for showing MIDI duration 2023-11-18 22:50:28 +01:00
Martchus 8c86ca05c0 Make side panel resizable and allow moving it to the other side 2023-10-27 18:25:40 +02:00
Martchus d3e01264b9 Ensure key highlighting color is bright enough to not blend too much with black keys 2023-10-23 20:09:57 +02:00
Martchus 73c7b0502d Use a bit more subtle colors for beat/bar markers 2023-10-14 22:27:34 +02:00
Martchus 6d917902da Show timing markers simply when enabled and regardless of other settings
Not sure why these other constraints were added but they are rather
confusing leaving one wondering why timing markers are not shown despite
being enabled.
2023-10-14 22:01:17 +02:00
Martchus f5674a4d1d Fix alpha channel when clearing background 2023-10-14 21:45:26 +02:00
Martchus cd5b89e4a0 Avoid crash on startup when MIDI input/output cannot be created
* Use RtMidi's error callback
* Keep printing warnings/errors to stderr for now (showing the error
  somewhere in the UI would make much more sense)
2023-10-14 21:32:52 +02:00
Martchus 9287b9b7b5 Simplify code for dealing with RtMidi 2023-10-14 21:11:37 +02:00
Martchus 81069a98b2 Prevent app from being stuck when start bar selected 2023-09-10 14:47:03 +02:00
Martchus 71f64b391e Avoid using `goto` and other cumbersome code in `CSong::task()` 2023-09-10 13:29:43 +02:00
Martchus bd787d5ae5 Don't give up on loading files with weird time signatures
Displaying/handling those files might still need improvement but
the application should not frame those files as corrupted.
2023-09-10 13:23:45 +02:00
Martchus 35c86c5edf Show logo in about dialog 2023-09-08 21:41:23 +02:00
Martchus 0a951c4554 Use the icon from logo folder for application itself
* Use the icon from the logo folder as application icon
* Add script to convert an SVG logo to icons in different sizes
  suitable for various platforms
2023-09-08 21:26:35 +02:00
Martchus 4bb4d5e5a9 Add "About Qt" dialog
This is useful to see which version of Qt is currently used.
2023-08-20 14:16:26 +02:00
Martchus bc56719e3f Update the bundled RtMidi library to 6.0.0 2023-08-19 15:53:18 +02:00
Martchus ea6e649a85 Don't treat warnings for RtMidi as fatal, even if we'd generally would
So one can build PianoBooster treating warnings as errors without having to
touch this 3rdparty code.
2023-08-19 15:51:52 +02:00
Martchus 2ed72c1439 Make color of timing markers themable 2023-07-03 23:04:43 +02:00
Martchus 4af7d8b55e Improve code for initializing draw
* Use a simpel std::array instead of QStringList
* Use range-based for-loop
* Exit with a non-zero return code in case of an error
2023-07-03 22:58:09 +02:00
Martchus 927465954e Apply scale factor when rendering note names using FTGL 2023-07-03 22:48:53 +02:00
Martchus 24b389a5ef Improve code for rendering note names
* Use more compact coding style
* Use std::array
* Avoid temporary QString instances
2023-07-03 22:47:32 +02:00
Martchus 7a0990c433 Retranslate "Follow stop point" combo box 2023-07-03 01:08:39 +02:00
Martchus 7c9ea14a9e Load translations of qtutilities 2023-07-02 01:16:02 +02:00
Martchus 300adc5001 Integrate preferences dialog into UI settings
These preferences are all about the UI so it makes sense to
integrate them into the UI settings.

This also reduces the amount of code a little bit as now certain
aspects are handled by `QtUtilities::SettingsDialog`.
2023-07-02 01:15:38 +02:00
Martchus 897b2486e1 Remove UI settings that don't make sense for PianoBooster 2023-07-02 00:18:27 +02:00
Martchus 3b703a6d48 Load translations via qtutilities
This reduces the amount of code in Piano Booster and ensures
that all kinds of translations can be built-in.
2023-07-02 00:10:22 +02:00
Martchus 464b49d086 Fix various compiler warnings 2023-07-02 00:06:13 +02:00
Martchus ff76de974b Improve string-literals
* Use `QStringLiteral()` for QString-literals
* Use `QString()` for constructing an empty QString
2023-06-27 20:46:13 +02:00
Martchus cff96605ea Avoid warning about unused variable by actually using the variable 2023-06-27 20:43:23 +02:00
Martchus b61c600c76 Add icons from system icon theme 2023-06-27 20:36:28 +02:00
Martchus 17dad7dd20 Modernize icons
Replace icons with more modern-looking icons from the KDE/Breeze project
2023-06-27 20:10:57 +02:00
Martchus 54402c2483 Allow built-in translations via qtutilities
Allow bundling translations as resources by setting `BUILTIN_TRANSLATIONS`.
This is useful to create self-contained executables.

The code for this is already in qtutilities so we basically just need to
look within the resource root `:/` for translations as well and tweak the
build script a little.

With this change it is still possible to load translations separately from
the usual locations as it is only effective if `BUILTIN_TRANSLATIONS` is
set to a truthy value.
2023-06-27 19:58:10 +02:00
Martchus 0d8ebc6743 Add other authors as well to project meta-data 2023-06-26 20:53:50 +02:00
Martchus bf288d0385 Update copyright notice date 2023-06-26 20:53:23 +02:00
Martchus 1801feadfd Add license meta-data explicitly
Avoid warning from c++utilities' CMake module and have it
ready for an AppStream meta-data file.
2023-06-24 21:10:04 +02:00
Martchus 054179c2bc Configure meta-data for Windows executable via c++utilities
This way the executable not only gets an icon but also an application name,
a description, an author and the version as meta-data - without any
additional CMake code in pianobooster itself.
2023-06-22 21:44:37 +02:00
Martchus eedc6e50b8 Fix install directory of translations
Using `CMAKE_INSTALL_DATAROOTDIR` was not the best idea because it might be
empty. Let's just use hard-code `share/games` for now in accordance with
existing code.
2023-06-22 21:27:53 +02:00