You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
(1) |
Apr
(1) |
May
|
Jun
(1) |
Jul
|
Aug
(10) |
Sep
|
Oct
|
Nov
|
Dec
(3) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(1) |
Feb
(2) |
Mar
(3) |
Apr
(2) |
May
(10) |
Jun
(2) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
(3) |
Dec
|
2008 |
Jan
(6) |
Feb
(4) |
Mar
(5) |
Apr
(2) |
May
(1) |
Jun
(1) |
Jul
(4) |
Aug
(6) |
Sep
(2) |
Oct
(9) |
Nov
(1) |
Dec
(4) |
2009 |
Jan
(9) |
Feb
(2) |
Mar
(2) |
Apr
(2) |
May
(6) |
Jun
(18) |
Jul
(33) |
Aug
(39) |
Sep
(33) |
Oct
(24) |
Nov
(23) |
Dec
(22) |
2010 |
Jan
(29) |
Feb
(32) |
Mar
(51) |
Apr
(17) |
May
(31) |
Jun
(21) |
Jul
(32) |
Aug
(28) |
Sep
(35) |
Oct
(27) |
Nov
(11) |
Dec
(13) |
2011 |
Jan
(14) |
Feb
(13) |
Mar
(27) |
Apr
(27) |
May
(28) |
Jun
(20) |
Jul
(43) |
Aug
(52) |
Sep
(66) |
Oct
(61) |
Nov
(11) |
Dec
(8) |
2012 |
Jan
(20) |
Feb
(30) |
Mar
(38) |
Apr
(21) |
May
(33) |
Jun
(21) |
Jul
(25) |
Aug
(9) |
Sep
(24) |
Oct
(42) |
Nov
(27) |
Dec
(41) |
2013 |
Jan
(20) |
Feb
(35) |
Mar
(156) |
Apr
(298) |
May
(258) |
Jun
(201) |
Jul
(105) |
Aug
(60) |
Sep
(193) |
Oct
(245) |
Nov
(280) |
Dec
(194) |
2014 |
Jan
(63) |
Feb
(202) |
Mar
(200) |
Apr
(23) |
May
(53) |
Jun
(105) |
Jul
(18) |
Aug
(26) |
Sep
(110) |
Oct
(187) |
Nov
(97) |
Dec
(74) |
2015 |
Jan
(45) |
Feb
(55) |
Mar
(116) |
Apr
(116) |
May
(193) |
Jun
(164) |
Jul
(50) |
Aug
(111) |
Sep
(98) |
Oct
(71) |
Nov
(103) |
Dec
(63) |
2016 |
Jan
(33) |
Feb
(101) |
Mar
(182) |
Apr
(139) |
May
(140) |
Jun
(103) |
Jul
(165) |
Aug
(286) |
Sep
(208) |
Oct
(127) |
Nov
(97) |
Dec
(54) |
2017 |
Jan
(64) |
Feb
(335) |
Mar
(202) |
Apr
(212) |
May
(139) |
Jun
(127) |
Jul
(294) |
Aug
(154) |
Sep
(170) |
Oct
(152) |
Nov
(156) |
Dec
(62) |
2018 |
Jan
(168) |
Feb
(237) |
Mar
(196) |
Apr
(174) |
May
(174) |
Jun
(161) |
Jul
(127) |
Aug
(88) |
Sep
(149) |
Oct
(66) |
Nov
(52) |
Dec
(135) |
2019 |
Jan
(146) |
Feb
(126) |
Mar
(104) |
Apr
(58) |
May
(60) |
Jun
(28) |
Jul
(197) |
Aug
(129) |
Sep
(141) |
Oct
(148) |
Nov
(63) |
Dec
(100) |
2020 |
Jan
(74) |
Feb
(37) |
Mar
(59) |
Apr
(154) |
May
(194) |
Jun
(133) |
Jul
(313) |
Aug
(197) |
Sep
(49) |
Oct
(162) |
Nov
(143) |
Dec
(57) |
2021 |
Jan
(120) |
Feb
(107) |
Mar
(314) |
Apr
(157) |
May
(524) |
Jun
(169) |
Jul
(72) |
Aug
(133) |
Sep
(135) |
Oct
(146) |
Nov
(198) |
Dec
(325) |
2022 |
Jan
(409) |
Feb
(249) |
Mar
(138) |
Apr
(95) |
May
(102) |
Jun
(221) |
Jul
(66) |
Aug
(120) |
Sep
(192) |
Oct
(131) |
Nov
(53) |
Dec
(171) |
2023 |
Jan
(357) |
Feb
(82) |
Mar
(168) |
Apr
(218) |
May
(196) |
Jun
(86) |
Jul
(115) |
Aug
(49) |
Sep
(190) |
Oct
(102) |
Nov
(45) |
Dec
(76) |
2024 |
Jan
(86) |
Feb
(50) |
Mar
(324) |
Apr
(209) |
May
(197) |
Jun
(232) |
Jul
(194) |
Aug
(247) |
Sep
(219) |
Oct
(266) |
Nov
(328) |
Dec
(304) |
2025 |
Jan
(191) |
Feb
(115) |
Mar
(137) |
Apr
(32) |
May
(126) |
Jun
(403) |
Jul
(202) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <sv...@op...> - 2024-11-24 12:42:22
|
Author: sagamusix Date: Sun Nov 24 13:42:15 2024 New Revision: 22280 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22280 Log: [Fix] MED: Do not allow sample swapping with portamento, and don't resume playing a stopped note with portamento. Fixes Homeward_Trek.med by Soundburst (https://www.un4seen.com/forum/?topic=15448.msg144148#msg144148). Modified: trunk/OpenMPT/soundlib/Load_med.cpp Modified: trunk/OpenMPT/soundlib/Load_med.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_med.cpp Sun Nov 24 13:09:38 2024 (r22279) +++ trunk/OpenMPT/soundlib/Load_med.cpp Sun Nov 24 13:42:15 2024 (r22280) @@ -1495,6 +1495,8 @@ m_SongFlags.set(SONG_FASTVOLSLIDES, !(songHeader.flags & MMDSong::FLAG_STSLIDE)); m_SongFlags.set(SONG_FASTPORTAS, !(songHeader.flags& MMDSong::FLAG_STSLIDE)); m_playBehaviour.set(kST3OffsetWithoutInstrument); + m_playBehaviour.set(kST3PortaSampleChange); + m_playBehaviour.set(kFT2PortaNoNote); if(expData.songNameOffset && file.Seek(expData.songNameOffset)) { |
From: <sv...@op...> - 2024-11-24 12:09:45
|
Author: sagamusix Date: Sun Nov 24 13:09:38 2024 New Revision: 22279 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22279 Log: Merged revision(s) 22247 from trunk/OpenMPT: [Fix] Compile fix for libopenmpt. ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/libopenmpt/libopenmpt_ext_impl.cpp Modified: branches/OpenMPT-1.31/libopenmpt/libopenmpt_ext_impl.cpp ============================================================================== --- branches/OpenMPT-1.31/libopenmpt/libopenmpt_ext_impl.cpp Sun Nov 24 01:40:38 2024 (r22278) +++ branches/OpenMPT-1.31/libopenmpt/libopenmpt_ext_impl.cpp Sun Nov 24 13:09:38 2024 (r22279) @@ -169,11 +169,11 @@ if ( volume < 0.0 || volume > 1.0 ) { throw openmpt::exception("invalid global volume"); } - m_sndFile->m_PlayState.m_nGlobalVolume = mpt::saturate_round<uint32_t>( volume * MAX_GLOBAL_VOLUME ); + m_sndFile->m_PlayState.m_nGlobalVolume = mpt::saturate_round<uint32_t>( volume * OpenMPT::MAX_GLOBAL_VOLUME ); } double module_ext_impl::get_global_volume( ) const { - return m_sndFile->m_PlayState.m_nGlobalVolume / static_cast<double>( MAX_GLOBAL_VOLUME ); + return m_sndFile->m_PlayState.m_nGlobalVolume / static_cast<double>( OpenMPT::MAX_GLOBAL_VOLUME ); } void module_ext_impl::set_channel_volume( std::int32_t channel, double volume ) { |
From: <sv...@op...> - 2024-11-24 00:40:45
|
Author: sagamusix Date: Sun Nov 24 01:40:38 2024 New Revision: 22278 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22278 Log: [Fix] Silence warning. Modified: branches/OpenMPT-1.28/soundlib/Sndfile.cpp Modified: branches/OpenMPT-1.28/soundlib/Sndfile.cpp ============================================================================== --- branches/OpenMPT-1.28/soundlib/Sndfile.cpp Sun Nov 24 01:40:22 2024 (r22277) +++ branches/OpenMPT-1.28/soundlib/Sndfile.cpp Sun Nov 24 01:40:38 2024 (r22278) @@ -545,8 +545,8 @@ LimitMax(m_nDefaultRowsPerBeat, MAX_ROWS_PER_BEAT); LimitMax(m_nDefaultRowsPerMeasure, MAX_ROWS_PER_BEAT); LimitMax(m_nDefaultGlobalVolume, MAX_GLOBAL_VOLUME); - LimitMax(m_nSamplePreAmp, 2000); - LimitMax(m_nVSTiVolume, 2000); + LimitMax(m_nSamplePreAmp, 2000u); + LimitMax(m_nVSTiVolume, 2000u); if(!m_tempoSwing.empty()) m_tempoSwing.resize(m_nDefaultRowsPerBeat); |
From: <sv...@op...> - 2024-11-24 00:40:29
|
Author: sagamusix Date: Sun Nov 24 01:40:22 2024 New Revision: 22277 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22277 Log: [Fix] Silence warning. Modified: branches/OpenMPT-1.29/soundlib/Sndfile.cpp Modified: branches/OpenMPT-1.29/soundlib/Sndfile.cpp ============================================================================== --- branches/OpenMPT-1.29/soundlib/Sndfile.cpp Sun Nov 24 01:40:01 2024 (r22276) +++ branches/OpenMPT-1.29/soundlib/Sndfile.cpp Sun Nov 24 01:40:22 2024 (r22277) @@ -561,8 +561,8 @@ LimitMax(m_nDefaultRowsPerBeat, MAX_ROWS_PER_BEAT); LimitMax(m_nDefaultRowsPerMeasure, MAX_ROWS_PER_BEAT); LimitMax(m_nDefaultGlobalVolume, MAX_GLOBAL_VOLUME); - LimitMax(m_nSamplePreAmp, 2000); - LimitMax(m_nVSTiVolume, 2000); + LimitMax(m_nSamplePreAmp, 2000u); + LimitMax(m_nVSTiVolume, 2000u); if(!m_tempoSwing.empty()) m_tempoSwing.resize(m_nDefaultRowsPerBeat); |
From: <sv...@op...> - 2024-11-24 00:40:12
|
Author: sagamusix Date: Sun Nov 24 01:40:01 2024 New Revision: 22276 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22276 Log: [Fix] Silence warning. Modified: branches/OpenMPT-1.30/soundlib/Sndfile.cpp Modified: branches/OpenMPT-1.30/soundlib/Sndfile.cpp ============================================================================== --- branches/OpenMPT-1.30/soundlib/Sndfile.cpp Sun Nov 24 01:38:47 2024 (r22275) +++ branches/OpenMPT-1.30/soundlib/Sndfile.cpp Sun Nov 24 01:40:01 2024 (r22276) @@ -570,8 +570,8 @@ LimitMax(m_nDefaultRowsPerBeat, MAX_ROWS_PER_BEAT); LimitMax(m_nDefaultRowsPerMeasure, MAX_ROWS_PER_BEAT); LimitMax(m_nDefaultGlobalVolume, MAX_GLOBAL_VOLUME); - LimitMax(m_nSamplePreAmp, 2000); - LimitMax(m_nVSTiVolume, 2000); + LimitMax(m_nSamplePreAmp, 2000u); + LimitMax(m_nVSTiVolume, 2000u); if(!m_tempoSwing.empty()) m_tempoSwing.resize(m_nDefaultRowsPerBeat); |
From: <sv...@op...> - 2024-11-24 00:38:53
|
Author: sagamusix Date: Sun Nov 24 01:38:47 2024 New Revision: 22275 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22275 Log: Merged revision(s) 22242-22244 from trunk/OpenMPT: [Ref] Silence warning. ........ [Ref] Use new MAX_PREAMP constant in GUI too. ........ [Fix] Use inline instead of static. ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/mptrack/Ctrl_gen.cpp branches/OpenMPT-1.31/soundlib/Snd_defs.h branches/OpenMPT-1.31/soundlib/Sndfile.cpp Modified: branches/OpenMPT-1.31/mptrack/Ctrl_gen.cpp ============================================================================== --- branches/OpenMPT-1.31/mptrack/Ctrl_gen.cpp Sun Nov 24 01:37:52 2024 (r22274) +++ branches/OpenMPT-1.31/mptrack/Ctrl_gen.cpp Sun Nov 24 01:38:47 2024 (r22275) @@ -554,8 +554,8 @@ m_EditVSTiVol.GetWindowText(s, mpt::saturate_cast<int>(std::size(s))); if (s[0]) { - UINT n = mpt::parse<UINT>(s); - Limit(n, 0u, 2000u); + uint32 n = mpt::parse<uint32>(s); + Limit(n, uint32(0), MAX_PREAMP); if (n != m_sndFile.m_nVSTiVolume) { m_editsLocked = true; @@ -578,8 +578,8 @@ m_EditSamplePA.GetWindowText(s, mpt::saturate_cast<int>(std::size(s))); if (s[0]) { - UINT n = mpt::parse<UINT>(s); - Limit(n, 0u, 2000u); + uint32 n = mpt::parse<uint32>(s); + Limit(n, uint32(0), MAX_PREAMP); if (n != m_sndFile.m_nSamplePreAmp) { m_editsLocked = true; Modified: branches/OpenMPT-1.31/soundlib/Snd_defs.h ============================================================================== --- branches/OpenMPT-1.31/soundlib/Snd_defs.h Sun Nov 24 01:37:52 2024 (r22274) +++ branches/OpenMPT-1.31/soundlib/Snd_defs.h Sun Nov 24 01:38:47 2024 (r22275) @@ -299,7 +299,8 @@ #define SNDMIX_MUTECHNMODE 0x100000 // Notes are not played on muted channels -#define MAX_GLOBAL_VOLUME 256u +inline constexpr uint32 MAX_GLOBAL_VOLUME = 256; +inline constexpr uint32 MAX_PREAMP = 2000; // Resampling modes enum ResamplingMode : uint8 Modified: branches/OpenMPT-1.31/soundlib/Sndfile.cpp ============================================================================== --- branches/OpenMPT-1.31/soundlib/Sndfile.cpp Sun Nov 24 01:37:52 2024 (r22274) +++ branches/OpenMPT-1.31/soundlib/Sndfile.cpp Sun Nov 24 01:38:47 2024 (r22275) @@ -664,8 +664,8 @@ LimitMax(m_nDefaultRowsPerBeat, MAX_ROWS_PER_BEAT); LimitMax(m_nDefaultRowsPerMeasure, MAX_ROWS_PER_BEAT); LimitMax(m_nDefaultGlobalVolume, MAX_GLOBAL_VOLUME); - LimitMax(m_nSamplePreAmp, 2000); - LimitMax(m_nVSTiVolume, 2000); + LimitMax(m_nSamplePreAmp, MAX_PREAMP); + LimitMax(m_nVSTiVolume, MAX_PREAMP); if(!m_tempoSwing.empty()) m_tempoSwing.resize(m_nDefaultRowsPerBeat); |
From: <sv...@op...> - 2024-11-24 00:38:04
|
Author: sagamusix Date: Sun Nov 24 01:37:52 2024 New Revision: 22274 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22274 Log: [Doc] libopenmpt: Update changelog. Modified: branches/OpenMPT-1.28/libopenmpt/dox/changelog.md Modified: branches/OpenMPT-1.28/libopenmpt/dox/changelog.md ============================================================================== --- branches/OpenMPT-1.28/libopenmpt/dox/changelog.md Sun Nov 24 01:37:45 2024 (r22273) +++ branches/OpenMPT-1.28/libopenmpt/dox/changelog.md Sun Nov 24 01:37:52 2024 (r22274) @@ -7,6 +7,8 @@ ### libopenmpt 0.4.47-pre + * [**Bug**] Fixed various undefined behaviour found with ubsan. + * mpg123: Update to v1.32.9 (2024-11-02). ### libopenmpt 0.4.46 (2024-10-26) |
From: <sv...@op...> - 2024-11-24 00:37:57
|
Author: sagamusix Date: Sun Nov 24 01:37:45 2024 New Revision: 22273 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22273 Log: [Doc] libopenmpt: Update changelog. Modified: branches/OpenMPT-1.29/libopenmpt/dox/changelog.md Modified: branches/OpenMPT-1.29/libopenmpt/dox/changelog.md ============================================================================== --- branches/OpenMPT-1.29/libopenmpt/dox/changelog.md Sun Nov 24 01:37:40 2024 (r22272) +++ branches/OpenMPT-1.29/libopenmpt/dox/changelog.md Sun Nov 24 01:37:45 2024 (r22273) @@ -7,6 +7,8 @@ ### libopenmpt 0.5.35-pre + * [**Bug**] Fixed various undefined behaviour found with ubsan. + * mpg123: Update to v1.32.9 (2024-11-02). ### libopenmpt 0.5.34 (2024-10-26) |
From: <sv...@op...> - 2024-11-24 00:37:47
|
Author: sagamusix Date: Sun Nov 24 01:37:40 2024 New Revision: 22272 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22272 Log: [Doc] libopenmpt: Update changelog. Modified: branches/OpenMPT-1.30/libopenmpt/dox/changelog.md Modified: branches/OpenMPT-1.30/libopenmpt/dox/changelog.md ============================================================================== --- branches/OpenMPT-1.30/libopenmpt/dox/changelog.md Sun Nov 24 01:37:31 2024 (r22271) +++ branches/OpenMPT-1.30/libopenmpt/dox/changelog.md Sun Nov 24 01:37:40 2024 (r22272) @@ -7,6 +7,8 @@ ### libopenmpt 0.6.21-pre + * [**Bug**] Fixed various undefined behaviour found with ubsan. + * mpg123: Update to v1.32.9 (2024-11-02). ### libopenmpt 0.6.20 (2024-10-26) |
From: <sv...@op...> - 2024-11-24 00:37:43
|
Author: sagamusix Date: Sun Nov 24 01:37:31 2024 New Revision: 22271 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22271 Log: [Doc] libopenmpt: Update changelog. Modified: branches/OpenMPT-1.31/doc/libopenmpt/changelog.md Modified: branches/OpenMPT-1.31/doc/libopenmpt/changelog.md ============================================================================== --- branches/OpenMPT-1.31/doc/libopenmpt/changelog.md Sun Nov 24 01:35:27 2024 (r22270) +++ branches/OpenMPT-1.31/doc/libopenmpt/changelog.md Sun Nov 24 01:37:31 2024 (r22271) @@ -7,6 +7,8 @@ ### libopenmpt 0.7.12-pre + * [**Bug**] Fixed various undefined behaviour found with ubsan. + * mpg123: Update to v1.32.9 (2024-11-02). ### libopenmpt 0.7.11 (2024-10-26) |
From: <sv...@op...> - 2024-11-24 00:35:39
|
Author: sagamusix Date: Sun Nov 24 01:35:27 2024 New Revision: 22270 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22270 Log: Merged revision(s) 22224, 22230, 22241 from trunk/OpenMPT: [Fix] Avoid extremely loud sample and synth amplification outside of supported GUI parameters. Found with afl++ + ubsan. ........ [Fix] Avoid integer wraparound when period + fractional period exceeds 32-bit integer limits. Found with afl++ + ubsan. ........ [Fix] Also limit sample pre-amp to 2000 for formats where we retrieve it through other means than OpenMPT song extensions (e.g. MO3). Found with afl++ + ubsan. [Fix] Sanitize sample length and loop points for missing external samples as well. Otherwise invalid values might be used during seeking. Found with afl++ + ubsan. ........ Modified: branches/OpenMPT-1.28/ (props changed) branches/OpenMPT-1.28/soundlib/Load_it.cpp branches/OpenMPT-1.28/soundlib/Sndfile.cpp branches/OpenMPT-1.28/soundlib/Sndmix.cpp Modified: branches/OpenMPT-1.28/soundlib/Load_it.cpp ============================================================================== --- branches/OpenMPT-1.28/soundlib/Load_it.cpp Sun Nov 24 01:34:11 2024 (r22269) +++ branches/OpenMPT-1.28/soundlib/Load_it.cpp Sun Nov 24 01:35:27 2024 (r22270) @@ -2458,14 +2458,6 @@ if(m_nMixLevels >= mixLevelsMax) m_nMixLevels = mixLevelsOriginal; //m_dwCreatedWithVersion //m_dwLastSavedWithVersion - //m_nSamplePreAmp - //m_nVSTiVolume - //m_nDefaultGlobalVolume - LimitMax(m_nDefaultGlobalVolume, MAX_GLOBAL_VOLUME); - //m_nRestartPos - //m_ModFlags - LimitMax(m_nDefaultRowsPerBeat, MAX_ROWS_PER_BEAT); - LimitMax(m_nDefaultRowsPerMeasure, MAX_ROWS_PER_BEAT); } Modified: branches/OpenMPT-1.28/soundlib/Sndfile.cpp ============================================================================== --- branches/OpenMPT-1.28/soundlib/Sndfile.cpp Sun Nov 24 01:34:11 2024 (r22269) +++ branches/OpenMPT-1.28/soundlib/Sndfile.cpp Sun Nov 24 01:35:27 2024 (r22270) @@ -478,6 +478,8 @@ // Sanitize sample names mpt::String::SetNullTerminator(m_szNames[nSmp]); ModSample &sample = Samples[nSmp]; + LimitMax(sample.nLength, MAX_SAMPLE_LENGTH); + sample.SanitizeLoops(); #ifdef MPT_EXTERNAL_SAMPLES if(SampleHasPath(nSmp)) @@ -543,6 +545,8 @@ LimitMax(m_nDefaultRowsPerBeat, MAX_ROWS_PER_BEAT); LimitMax(m_nDefaultRowsPerMeasure, MAX_ROWS_PER_BEAT); LimitMax(m_nDefaultGlobalVolume, MAX_GLOBAL_VOLUME); + LimitMax(m_nSamplePreAmp, 2000); + LimitMax(m_nVSTiVolume, 2000); if(!m_tempoSwing.empty()) m_tempoSwing.resize(m_nDefaultRowsPerBeat); Modified: branches/OpenMPT-1.28/soundlib/Sndmix.cpp ============================================================================== --- branches/OpenMPT-1.28/soundlib/Sndmix.cpp Sun Nov 24 01:34:11 2024 (r22269) +++ branches/OpenMPT-1.28/soundlib/Sndmix.cpp Sun Nov 24 01:35:27 2024 (r22270) @@ -1774,8 +1774,15 @@ vdelta += Util::muldiv(period, fineUpTable[l & 0x03], 0x10000) - period; } } - period = (period + vdelta) / 256; - nPeriodFrac = vdelta & 0xFF; + if(Util::MaxValueOfType(period) - period >= vdelta) + { + period = (period + vdelta) / 256; + nPeriodFrac = vdelta & 0xFF; + } else + { + period = Util::MaxValueOfType(period) / 256; + nPeriodFrac = 0; + } } else { // MPT's autovibrato code |
From: <sv...@op...> - 2024-11-24 00:34:18
|
Author: sagamusix Date: Sun Nov 24 01:34:11 2024 New Revision: 22269 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22269 Log: Merged revision(s) 22224, 22226, 22230, 22241 from trunk/OpenMPT: [Fix] Avoid extremely loud sample and synth amplification outside of supported GUI parameters. Found with afl++ + ubsan. ........ [Fix] Tuning: Apply a (hopefully small enough) epsilon to tuning ratio setting to avoid NaN and inf results in tuning frequency calculation. Found with afl++ + ubsan. ........ [Fix] Avoid integer wraparound when period + fractional period exceeds 32-bit integer limits. Found with afl++ + ubsan. ........ [Fix] Also limit sample pre-amp to 2000 for formats where we retrieve it through other means than OpenMPT song extensions (e.g. MO3). Found with afl++ + ubsan. [Fix] Sanitize sample length and loop points for missing external samples as well. Otherwise invalid values might be used during seeking. Found with afl++ + ubsan. ........ Modified: branches/OpenMPT-1.29/ (props changed) branches/OpenMPT-1.29/soundlib/Load_it.cpp branches/OpenMPT-1.29/soundlib/Sndfile.cpp branches/OpenMPT-1.29/soundlib/Sndmix.cpp branches/OpenMPT-1.29/soundlib/tuning.h Modified: branches/OpenMPT-1.29/soundlib/Load_it.cpp ============================================================================== --- branches/OpenMPT-1.29/soundlib/Load_it.cpp Sun Nov 24 01:33:10 2024 (r22268) +++ branches/OpenMPT-1.29/soundlib/Load_it.cpp Sun Nov 24 01:34:11 2024 (r22269) @@ -2476,14 +2476,6 @@ m_nMixLevels = mixLevelsOriginal; //m_dwCreatedWithVersion //m_dwLastSavedWithVersion - //m_nSamplePreAmp - //m_nVSTiVolume - //m_nDefaultGlobalVolume - LimitMax(m_nDefaultGlobalVolume, MAX_GLOBAL_VOLUME); - //m_nRestartPos - //m_ModFlags - LimitMax(m_nDefaultRowsPerBeat, MAX_ROWS_PER_BEAT); - LimitMax(m_nDefaultRowsPerMeasure, MAX_ROWS_PER_BEAT); } Modified: branches/OpenMPT-1.29/soundlib/Sndfile.cpp ============================================================================== --- branches/OpenMPT-1.29/soundlib/Sndfile.cpp Sun Nov 24 01:33:10 2024 (r22268) +++ branches/OpenMPT-1.29/soundlib/Sndfile.cpp Sun Nov 24 01:34:11 2024 (r22269) @@ -493,6 +493,8 @@ for(SAMPLEINDEX nSmp = 1; nSmp <= m_nSamples; nSmp++) { ModSample &sample = Samples[nSmp]; + LimitMax(sample.nLength, MAX_SAMPLE_LENGTH); + sample.SanitizeLoops(); #ifdef MPT_EXTERNAL_SAMPLES if(SampleHasPath(nSmp)) @@ -559,6 +561,8 @@ LimitMax(m_nDefaultRowsPerBeat, MAX_ROWS_PER_BEAT); LimitMax(m_nDefaultRowsPerMeasure, MAX_ROWS_PER_BEAT); LimitMax(m_nDefaultGlobalVolume, MAX_GLOBAL_VOLUME); + LimitMax(m_nSamplePreAmp, 2000); + LimitMax(m_nVSTiVolume, 2000); if(!m_tempoSwing.empty()) m_tempoSwing.resize(m_nDefaultRowsPerBeat); Modified: branches/OpenMPT-1.29/soundlib/Sndmix.cpp ============================================================================== --- branches/OpenMPT-1.29/soundlib/Sndmix.cpp Sun Nov 24 01:33:10 2024 (r22268) +++ branches/OpenMPT-1.29/soundlib/Sndmix.cpp Sun Nov 24 01:34:11 2024 (r22269) @@ -1806,8 +1806,15 @@ vdelta += Util::muldiv(period, fineUpTable[l & 0x03], 0x10000) - period; } } - period = (period + vdelta) / 256; - nPeriodFrac = vdelta & 0xFF; + if(Util::MaxValueOfType(period) - period >= vdelta) + { + period = (period + vdelta) / 256; + nPeriodFrac = vdelta & 0xFF; + } else + { + period = Util::MaxValueOfType(period) / 256; + nPeriodFrac = 0; + } } else { // MPT's autovibrato code Modified: branches/OpenMPT-1.29/soundlib/tuning.h ============================================================================== --- branches/OpenMPT-1.29/soundlib/tuning.h Sun Nov 24 01:33:10 2024 (r22268) +++ branches/OpenMPT-1.29/soundlib/tuning.h Sun Nov 24 01:34:11 2024 (r22269) @@ -216,7 +216,8 @@ static bool IsValidRatio(RATIOTYPE ratio) { - return (ratio > static_cast<RATIOTYPE>(0.0)); + // Arbitrary epsilon > 0 to avoid NaNs and infinite values in ratio calculation + return (ratio > static_cast<RATIOTYPE>(0.02f)); } private: |
From: <sv...@op...> - 2024-11-24 00:33:18
|
Author: sagamusix Date: Sun Nov 24 01:33:10 2024 New Revision: 22268 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22268 Log: Merged revision(s) 22224, 22226, 22230, 22232, 22241 from trunk/OpenMPT: [Fix] Avoid extremely loud sample and synth amplification outside of supported GUI parameters. Found with afl++ + ubsan. ........ [Fix] Tuning: Apply a (hopefully small enough) epsilon to tuning ratio setting to avoid NaN and inf results in tuning frequency calculation. Found with afl++ + ubsan. ........ [Fix] Avoid integer wraparound when period + fractional period exceeds 32-bit integer limits. Found with afl++ + ubsan. ........ [Fix] I3DL2Reverb: Avoid NaNs in room filter calculation. Found with afl++ + ubsan. ........ [Fix] Also limit sample pre-amp to 2000 for formats where we retrieve it through other means than OpenMPT song extensions (e.g. MO3). Found with afl++ + ubsan. [Fix] Sanitize sample length and loop points for missing external samples as well. Otherwise invalid values might be used during seeking. Found with afl++ + ubsan. ........ Modified: branches/OpenMPT-1.30/ (props changed) branches/OpenMPT-1.30/soundlib/Load_it.cpp branches/OpenMPT-1.30/soundlib/Sndfile.cpp branches/OpenMPT-1.30/soundlib/Sndmix.cpp branches/OpenMPT-1.30/soundlib/plugins/dmo/I3DL2Reverb.cpp branches/OpenMPT-1.30/soundlib/tuning.h Modified: branches/OpenMPT-1.30/soundlib/Load_it.cpp ============================================================================== --- branches/OpenMPT-1.30/soundlib/Load_it.cpp Sun Nov 24 01:32:17 2024 (r22267) +++ branches/OpenMPT-1.30/soundlib/Load_it.cpp Sun Nov 24 01:33:10 2024 (r22268) @@ -2537,14 +2537,6 @@ m_nMixLevels = MixLevels::Original; //m_dwCreatedWithVersion //m_dwLastSavedWithVersion - //m_nSamplePreAmp - //m_nVSTiVolume - //m_nDefaultGlobalVolume - LimitMax(m_nDefaultGlobalVolume, MAX_GLOBAL_VOLUME); - //m_nRestartPos - //m_ModFlags - LimitMax(m_nDefaultRowsPerBeat, MAX_ROWS_PER_BEAT); - LimitMax(m_nDefaultRowsPerMeasure, MAX_ROWS_PER_BEAT); } Modified: branches/OpenMPT-1.30/soundlib/Sndfile.cpp ============================================================================== --- branches/OpenMPT-1.30/soundlib/Sndfile.cpp Sun Nov 24 01:32:17 2024 (r22267) +++ branches/OpenMPT-1.30/soundlib/Sndfile.cpp Sun Nov 24 01:33:10 2024 (r22268) @@ -500,6 +500,8 @@ for(SAMPLEINDEX nSmp = 1; nSmp <= m_nSamples; nSmp++) { ModSample &sample = Samples[nSmp]; + LimitMax(sample.nLength, MAX_SAMPLE_LENGTH); + sample.SanitizeLoops(); #ifdef MPT_EXTERNAL_SAMPLES if(SampleHasPath(nSmp)) @@ -568,6 +570,8 @@ LimitMax(m_nDefaultRowsPerBeat, MAX_ROWS_PER_BEAT); LimitMax(m_nDefaultRowsPerMeasure, MAX_ROWS_PER_BEAT); LimitMax(m_nDefaultGlobalVolume, MAX_GLOBAL_VOLUME); + LimitMax(m_nSamplePreAmp, 2000); + LimitMax(m_nVSTiVolume, 2000); if(!m_tempoSwing.empty()) m_tempoSwing.resize(m_nDefaultRowsPerBeat); Modified: branches/OpenMPT-1.30/soundlib/Sndmix.cpp ============================================================================== --- branches/OpenMPT-1.30/soundlib/Sndmix.cpp Sun Nov 24 01:32:17 2024 (r22267) +++ branches/OpenMPT-1.30/soundlib/Sndmix.cpp Sun Nov 24 01:33:10 2024 (r22268) @@ -1823,8 +1823,15 @@ vdelta += Util::muldiv(period, fineUpTable[l & 0x03], 0x10000) - period; } } - period = (period + vdelta) / 256; - nPeriodFrac = vdelta & 0xFF; + if(Util::MaxValueOfType(period) - period >= vdelta) + { + period = (period + vdelta) / 256; + nPeriodFrac = vdelta & 0xFF; + } else + { + period = Util::MaxValueOfType(period) / 256; + nPeriodFrac = 0; + } } else { // MPT's autovibrato code Modified: branches/OpenMPT-1.30/soundlib/plugins/dmo/I3DL2Reverb.cpp ============================================================================== --- branches/OpenMPT-1.30/soundlib/plugins/dmo/I3DL2Reverb.cpp Sun Nov 24 01:32:17 2024 (r22267) +++ branches/OpenMPT-1.30/soundlib/plugins/dmo/I3DL2Reverb.cpp Sun Nov 24 01:33:10 2024 (r22268) @@ -506,7 +506,7 @@ m_roomFilter = 0.0f; } else { - float freq = std::cos(HFReference() * (2.0f * mpt::numbers::pi_v<float>) / m_effectiveSampleRate); + float freq = std::min(std::cos(HFReference() * (2.0f * mpt::numbers::pi_v<float>) / m_effectiveSampleRate), 0.9999f); float roomFilter = (freq * (roomHF + roomHF) - 2.0f + std::sqrt(freq * (roomHF * roomHF * freq * 4.0f) + roomHF * 8.0f - roomHF * roomHF * 4.0f - roomHF * freq * 8.0f)) / (roomHF + roomHF - 2.0f); m_roomFilter = Clamp(roomFilter, 0.0f, 1.0f); } Modified: branches/OpenMPT-1.30/soundlib/tuning.h ============================================================================== --- branches/OpenMPT-1.30/soundlib/tuning.h Sun Nov 24 01:32:17 2024 (r22267) +++ branches/OpenMPT-1.30/soundlib/tuning.h Sun Nov 24 01:33:10 2024 (r22268) @@ -216,7 +216,8 @@ static bool IsValidRatio(RATIOTYPE ratio) { - return (ratio > static_cast<RATIOTYPE>(0.0)); + // Arbitrary epsilon > 0 to avoid NaNs and infinite values in ratio calculation + return (ratio > static_cast<RATIOTYPE>(0.02f)); } private: |
From: <sv...@op...> - 2024-11-24 00:32:25
|
Author: sagamusix Date: Sun Nov 24 01:32:17 2024 New Revision: 22267 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22267 Log: Merged revision(s) 22221, 22224, 22226, 22230, 22232, 22241 from trunk/OpenMPT: [Fix] MED: Avoid undefined behaviour with out-of-range echo depth parameter (found with afl++ + ubsan). ........ [Fix] Avoid extremely loud sample and synth amplification outside of supported GUI parameters. Found with afl++ + ubsan. ........ [Fix] Tuning: Apply a (hopefully small enough) epsilon to tuning ratio setting to avoid NaN and inf results in tuning frequency calculation. Found with afl++ + ubsan. ........ [Fix] Avoid integer wraparound when period + fractional period exceeds 32-bit integer limits. Found with afl++ + ubsan. ........ [Fix] I3DL2Reverb: Avoid NaNs in room filter calculation. Found with afl++ + ubsan. ........ [Fix] Also limit sample pre-amp to 2000 for formats where we retrieve it through other means than OpenMPT song extensions (e.g. MO3). Found with afl++ + ubsan. [Fix] Sanitize sample length and loop points for missing external samples as well. Otherwise invalid values might be used during seeking. Found with afl++ + ubsan. ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/soundlib/Load_it.cpp branches/OpenMPT-1.31/soundlib/Load_med.cpp branches/OpenMPT-1.31/soundlib/Sndfile.cpp branches/OpenMPT-1.31/soundlib/Sndmix.cpp branches/OpenMPT-1.31/soundlib/plugins/dmo/I3DL2Reverb.cpp branches/OpenMPT-1.31/soundlib/tuning.h Modified: branches/OpenMPT-1.31/soundlib/Load_it.cpp ============================================================================== --- branches/OpenMPT-1.31/soundlib/Load_it.cpp Sun Nov 24 01:22:55 2024 (r22266) +++ branches/OpenMPT-1.31/soundlib/Load_it.cpp Sun Nov 24 01:32:17 2024 (r22267) @@ -2668,14 +2668,6 @@ m_nMixLevels = MixLevels::Original; //m_dwCreatedWithVersion //m_dwLastSavedWithVersion - //m_nSamplePreAmp - //m_nVSTiVolume - //m_nDefaultGlobalVolume - LimitMax(m_nDefaultGlobalVolume, MAX_GLOBAL_VOLUME); - //m_nRestartPos - //m_ModFlags - LimitMax(m_nDefaultRowsPerBeat, MAX_ROWS_PER_BEAT); - LimitMax(m_nDefaultRowsPerMeasure, MAX_ROWS_PER_BEAT); return true; } Modified: branches/OpenMPT-1.31/soundlib/Load_med.cpp ============================================================================== --- branches/OpenMPT-1.31/soundlib/Load_med.cpp Sun Nov 24 01:22:55 2024 (r22266) +++ branches/OpenMPT-1.31/soundlib/Load_med.cpp Sun Nov 24 01:32:17 2024 (r22267) @@ -1195,9 +1195,9 @@ if((header.mixEchoType == 1 || header.mixEchoType == 2) && numPlugins < MAX_MIXPLUGINS) { // Emulating MED echo using the DMO echo requires to compensate for the differences in initial feedback in the latter. - const float feedback = 1.0f / (1 << std::max(header.mixEchoDepth, uint8(1))); // The feedback we want - const float initialFeedback = std::sqrt(1.0f - (feedback * feedback)); // Actual strength of first delay's feedback - const float wetFactor = feedback / initialFeedback; // Factor to compensate for this + const float feedback = 1.0f / (1 << std::clamp(header.mixEchoDepth, uint8(1), uint8(9))); // The feedback we want + const float initialFeedback = std::sqrt(1.0f - (feedback * feedback)); // Actual strength of first delay's feedback + const float wetFactor = feedback / initialFeedback; // Factor to compensate for this const float delay = (std::max(header.mixEchoLength.get(), uint16(1)) - 1) / 1999.0f; SNDMIXPLUGIN &mixPlug = m_MixPlugins[numPlugins]; mpt::reconstruct(mixPlug); Modified: branches/OpenMPT-1.31/soundlib/Sndfile.cpp ============================================================================== --- branches/OpenMPT-1.31/soundlib/Sndfile.cpp Sun Nov 24 01:22:55 2024 (r22266) +++ branches/OpenMPT-1.31/soundlib/Sndfile.cpp Sun Nov 24 01:32:17 2024 (r22267) @@ -594,6 +594,8 @@ for(SAMPLEINDEX nSmp = 1; nSmp <= m_nSamples; nSmp++) { ModSample &sample = Samples[nSmp]; + LimitMax(sample.nLength, MAX_SAMPLE_LENGTH); + sample.SanitizeLoops(); #ifdef MPT_EXTERNAL_SAMPLES if(SampleHasPath(nSmp)) @@ -662,6 +664,8 @@ LimitMax(m_nDefaultRowsPerBeat, MAX_ROWS_PER_BEAT); LimitMax(m_nDefaultRowsPerMeasure, MAX_ROWS_PER_BEAT); LimitMax(m_nDefaultGlobalVolume, MAX_GLOBAL_VOLUME); + LimitMax(m_nSamplePreAmp, 2000); + LimitMax(m_nVSTiVolume, 2000); if(!m_tempoSwing.empty()) m_tempoSwing.resize(m_nDefaultRowsPerBeat); Modified: branches/OpenMPT-1.31/soundlib/Sndmix.cpp ============================================================================== --- branches/OpenMPT-1.31/soundlib/Sndmix.cpp Sun Nov 24 01:22:55 2024 (r22266) +++ branches/OpenMPT-1.31/soundlib/Sndmix.cpp Sun Nov 24 01:32:17 2024 (r22267) @@ -1840,8 +1840,15 @@ vdelta += Util::muldiv(period, fineUpTable[l & 0x03], 0x10000) - period; } } - period = (period + vdelta) / 256; - nPeriodFrac = vdelta & 0xFF; + if(Util::MaxValueOfType(period) - period >= vdelta) + { + period = (period + vdelta) / 256; + nPeriodFrac = vdelta & 0xFF; + } else + { + period = Util::MaxValueOfType(period) / 256; + nPeriodFrac = 0; + } } else { // MPT's autovibrato code Modified: branches/OpenMPT-1.31/soundlib/plugins/dmo/I3DL2Reverb.cpp ============================================================================== --- branches/OpenMPT-1.31/soundlib/plugins/dmo/I3DL2Reverb.cpp Sun Nov 24 01:22:55 2024 (r22266) +++ branches/OpenMPT-1.31/soundlib/plugins/dmo/I3DL2Reverb.cpp Sun Nov 24 01:32:17 2024 (r22267) @@ -505,7 +505,7 @@ m_roomFilter = 0.0f; } else { - float freq = std::cos(HFReference() * (2.0f * mpt::numbers::pi_v<float>) / m_effectiveSampleRate); + float freq = std::min(std::cos(HFReference() * (2.0f * mpt::numbers::pi_v<float>) / m_effectiveSampleRate), 0.9999f); float roomFilter = (freq * (roomHF + roomHF) - 2.0f + std::sqrt(freq * (roomHF * roomHF * freq * 4.0f) + roomHF * 8.0f - roomHF * roomHF * 4.0f - roomHF * freq * 8.0f)) / (roomHF + roomHF - 2.0f); m_roomFilter = Clamp(roomFilter, 0.0f, 1.0f); } Modified: branches/OpenMPT-1.31/soundlib/tuning.h ============================================================================== --- branches/OpenMPT-1.31/soundlib/tuning.h Sun Nov 24 01:22:55 2024 (r22266) +++ branches/OpenMPT-1.31/soundlib/tuning.h Sun Nov 24 01:32:17 2024 (r22267) @@ -224,7 +224,8 @@ static bool IsValidRatio(RATIOTYPE ratio) { - return (ratio > static_cast<RATIOTYPE>(0.0)); + // Arbitrary epsilon > 0 to avoid NaNs and infinite values in ratio calculation + return (ratio > static_cast<RATIOTYPE>(0.02f)); } private: |
From: <sv...@op...> - 2024-11-24 00:23:08
|
Author: sagamusix Date: Sun Nov 24 01:22:55 2024 New Revision: 22266 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22266 Log: Merged revision(s) 22170-22172 from trunk/OpenMPT: [Fix] IT: Ignore sample data in slots that don't have the "sample data present" flag set, if the file vaguely looks IT-made. There's a bug in IT that sometimes doesn't reset the sample length after deleting a sample (presumably). For most files this does not make an audible difference, because such sample slots are typically unused, or the sample offset pointer points at the end of the file anyway. However, a small handful of files references these deleted samples in pattern data, so a lot of unwanted noise can be heard. See https://www.un4seen.com/forum/?topic=20542.0 for reference. ........ [Imp] IT: Don't show files claiming to be made with IT 2.08+ as IT-made if they have no edit history. ........ [Mod] IT: Maybe IT 2.14 can actually save files without edit history. I am finding quite a few of them, but they have a valid edit timer... Modify the detection accordingly. ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/soundlib/ITTools.cpp branches/OpenMPT-1.31/soundlib/Load_it.cpp Modified: branches/OpenMPT-1.31/soundlib/ITTools.cpp ============================================================================== --- branches/OpenMPT-1.31/soundlib/ITTools.cpp Sun Nov 24 00:46:14 2024 (r22265) +++ branches/OpenMPT-1.31/soundlib/ITTools.cpp Sun Nov 24 01:22:55 2024 (r22266) @@ -530,10 +530,9 @@ // Convert an ITSample to OpenMPT's internal sample representation. uint32 ITSample::ConvertToMPT(ModSample &mptSmp) const { - if(memcmp(id, "IMPS", 4)) - { - return 0; - } + // IT does not check for the IMPS magic, and some bad XM->IT converter out there doesn't write the magic bytes for empty sample slots. + //if(memcmp(id, "IMPS", 4)) + // return 0; mptSmp.Initialize(MOD_TYPE_IT); mptSmp.SetDefaultCuePoints(); // For old IT/MPTM files Modified: branches/OpenMPT-1.31/soundlib/Load_it.cpp ============================================================================== --- branches/OpenMPT-1.31/soundlib/Load_it.cpp Sun Nov 24 00:46:14 2024 (r22265) +++ branches/OpenMPT-1.31/soundlib/Load_it.cpp Sun Nov 24 01:22:55 2024 (r22266) @@ -798,6 +798,19 @@ bool possibleXMconversion = false; + // There's a bug in IT somewhere that resets the "sample data present" flag in sample headers, but keeps the sample length + // of a previously deleted sample (presumably). + // As old ModPlug versions didn't set this flag under some circumstances (if a sample wasn't referenced by any instruments in instrument mode), + // and because there appear to be some external tools that forget to set this flag at all, we only respect the flag if the file + // vaguely looks like it was saved with IT. Some files that play garbage data if we don't do this: + // astral projection.it by Lord Jon Ray + // classic illusions.it by Blackstar + // deep in dance.it by Simply DJ + // There are many more such files but they don't reference the broken samples in their pattern data, or the sample data pointer + // points right to the end of the file, so in both cases no audible problem can be observed. + const bool muteBuggySamples = !interpretModPlugMade && fileHeader.cwtv >= 0x0100 && fileHeader.cwtv <= 0x0217 + && (fileHeader.cwtv < 0x0207 || fileHeader.reserved != 0); + // Reading Samples m_nSamples = std::min(static_cast<SAMPLEINDEX>(fileHeader.smpnum), static_cast<SAMPLEINDEX>(MAX_SAMPLES - 1)); bool lastSampleCompressed = false, anyADPCM = false; @@ -806,9 +819,10 @@ ITSample sampleHeader; if(smpPos[i] > 0 && file.Seek(smpPos[i]) && file.ReadStruct(sampleHeader)) { - // IT does not check for the IMPS magic, and some bad XM->IT converter out there doesn't write the magic bytes for empty sample slots. ModSample &sample = Samples[i + 1]; size_t sampleOffset = sampleHeader.ConvertToMPT(sample); + if(muteBuggySamples && !(sampleHeader.flags & ITSample::sampleDataPresent)) + sample.nLength = 0; m_szNames[i + 1] = mpt::String::ReadBuf(mpt::String::spacePadded, sampleHeader.name); @@ -1257,6 +1271,10 @@ } else if(fileHeader.cwtv == 0 && madeWithTracker.empty()) { madeWithTracker = U_("Unknown"); + } else if(fileHeader.cwtv >= 0x0208 && fileHeader.cwtv <= 0x0214 && !fileHeader.reserved && m_FileHistory.empty() && madeWithTracker.empty()) + { + // Any file made with IT starting from v2.07 onwards should have an edit history + madeWithTracker = UL_("Unknown"); } else if(fileHeader.cmwt < 0x0300 && madeWithTracker.empty()) { madeWithTracker = GetImpulseTrackerVersion(fileHeader.cwtv, fileHeader.cmwt); |
From: <sv...@op...> - 2024-11-23 23:46:22
|
Author: sagamusix Date: Sun Nov 24 00:46:14 2024 New Revision: 22265 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22265 Log: [Fix] When restoring default keymaps, ignore cross-context conflicts. [Fix] Special key interception was broken, probably since r21616. [Mod] Special key interception is now only done when a shortcut was recognized. This means that e.g. Caps Lock will continue to work as normal outside of the pattern editor in a FT2-like keyboard setup. Modified: trunk/OpenMPT/mptrack/CommandSet.cpp trunk/OpenMPT/mptrack/InputHandler.cpp trunk/OpenMPT/mptrack/InputHandler.h Modified: trunk/OpenMPT/mptrack/CommandSet.cpp ============================================================================== --- trunk/OpenMPT/mptrack/CommandSet.cpp Sat Nov 23 16:45:13 2024 (r22264) +++ trunk/OpenMPT/mptrack/CommandSet.cpp Sun Nov 24 00:46:14 2024 (r22265) @@ -2548,10 +2548,11 @@ case KeyboardPreset::FT2: defaults = DefaultKeybindingsFT2; break; } + const bool onlyNewShortcuts = onlyCommandsAfterVersion != Version{}; CommandID lastAdded = kcNull; for(const auto &kb : defaults) { - if(onlyCommandsAfterVersion != Version{}) + if(onlyNewShortcuts) { if(kb.addedInVersion <= onlyCommandsAfterVersion) continue; @@ -2587,10 +2588,14 @@ if(auto conflictCmd = IsConflicting(kc, kb.cmd, false); conflictCmd.first != kcNull) { + if(!onlyNewShortcuts && conflictCmd.second.Context() == kc.Context()) + continue; // Allow cross-context conflicts in case the newly added shortcut is in a more generic context // - unless the conflicting shortcut is the reserved dummy shortcut (which was used to prevent // default shortcuts from being added back before default key binding versioning was added). - if(conflictCmd.first == kcDummyShortcut || !m_isParentContext[kb.ctx][conflictCmd.second.Context()]) + if(conflictCmd.first == kcDummyShortcut) + continue; + if(onlyNewShortcuts && !m_isParentContext[kb.ctx][conflictCmd.second.Context()]) continue; } Modified: trunk/OpenMPT/mptrack/InputHandler.cpp ============================================================================== --- trunk/OpenMPT/mptrack/InputHandler.cpp Sat Nov 23 16:45:13 2024 (r22264) +++ trunk/OpenMPT/mptrack/InputHandler.cpp Sun Nov 24 00:46:14 2024 (r22265) @@ -94,12 +94,12 @@ CommandID CInputHandler::KeyEvent(const InputTargetContext context, const KeyboardEvent &event, CWnd *pSourceWnd) { - if(InterceptSpecialKeys(event.key, event.flags, false)) - return kcDummyShortcut; if(IsKeyPressHandledByTextBox(event.key, ::GetFocus())) return kcNull; KeyMapRange cmd = m_keyMap.equal_range(KeyCombination(context, GetModifierMask(), event.key, event.keyEventType)); + if(cmd.first != cmd.second && InterceptSpecialKeys(event)) + return kcDummyShortcut; if(pSourceWnd == nullptr) pSourceWnd = m_pMainFrm; // By default, send command message to main frame. @@ -108,17 +108,16 @@ // Feature: use Windows keys as modifier keys, intercept special keys -bool CInputHandler::InterceptSpecialKeys(UINT nChar, UINT nFlags, bool generateMsg) +bool CInputHandler::InterceptSpecialKeys(const KeyboardEvent &event) { - KeyEventType keyEventType = GetKeyEventType(HIWORD(nFlags)); enum { VK_NonExistentKey = VK_F24+1 }; - if(nChar == VK_NonExistentKey) + if(event.key == VK_NonExistentKey) { return true; - } else if(m_bInterceptWindowsKeys && (nChar == VK_LWIN || nChar == VK_RWIN)) + } else if(m_bInterceptWindowsKeys && (event.key == VK_LWIN || event.key == VK_RWIN)) { - if(keyEventType == kKeyEventDown) + if(event.keyEventType == kKeyEventDown) { INPUT inp[2]; inp[0].type = inp[1].type = INPUT_KEYBOARD; @@ -132,22 +131,22 @@ } } - if((nChar == VK_NUMLOCK && m_bInterceptNumLock) - || (nChar == VK_CAPITAL && m_bInterceptCapsLock) - || (nChar == VK_SCROLL && m_bInterceptScrollLock)) + if((event.key == VK_NUMLOCK && m_bInterceptNumLock) + || (event.key == VK_CAPITAL && m_bInterceptCapsLock) + || (event.key == VK_SCROLL && m_bInterceptScrollLock)) { if(GetMessageExtraInfo() == 0xC0FFEE) { SetMessageExtraInfo(0); return true; - } else if(keyEventType == kKeyEventDown && generateMsg) + } else if(event.keyEventType == kKeyEventDown) { // Prevent keys from lighting up by simulating a second press. INPUT inp[2]; inp[0].type = inp[1].type = INPUT_KEYBOARD; inp[0].ki.time = inp[1].ki.time = 0; inp[0].ki.dwExtraInfo = inp[1].ki.dwExtraInfo = 0xC0FFEE; - inp[0].ki.wVk = inp[1].ki.wVk = static_cast<WORD>(nChar); + inp[0].ki.wVk = inp[1].ki.wVk = static_cast<WORD>(event.key); inp[0].ki.wScan = inp[1].ki.wScan = 0; inp[0].ki.dwFlags = KEYEVENTF_KEYUP; inp[1].ki.dwFlags = 0; Modified: trunk/OpenMPT/mptrack/InputHandler.h ============================================================================== --- trunk/OpenMPT/mptrack/InputHandler.h Sat Nov 23 16:45:13 2024 (r22264) +++ trunk/OpenMPT/mptrack/InputHandler.h Sun Nov 24 00:46:14 2024 (r22265) @@ -52,7 +52,7 @@ int GetKeyListSize(CommandID cmd) const; protected: - bool InterceptSpecialKeys(UINT nChar, UINT nFlags, bool generateMsg); + bool InterceptSpecialKeys(const KeyboardEvent &event); void SetupSpecialKeyInterception(); CommandID SendCommands(CWnd *wnd, const KeyMapRange &cmd); |
From: <sv...@op...> - 2024-11-23 15:45:26
|
Author: sagamusix Date: Sat Nov 23 16:45:13 2024 New Revision: 22264 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22264 Log: [Mod] Open various context menus on right mouse button release as it should be done, not on button down. Modified: trunk/OpenMPT/mptrack/Ctrl_ins.cpp trunk/OpenMPT/mptrack/Ctrl_ins.h trunk/OpenMPT/mptrack/Ctrl_pat.h trunk/OpenMPT/mptrack/Ctrl_seq.cpp trunk/OpenMPT/mptrack/Globals.h trunk/OpenMPT/mptrack/Mpdlgs.cpp trunk/OpenMPT/mptrack/View_ins.cpp trunk/OpenMPT/mptrack/View_ins.h trunk/OpenMPT/mptrack/View_pat.cpp trunk/OpenMPT/mptrack/View_pat.h trunk/OpenMPT/mptrack/View_smp.cpp trunk/OpenMPT/mptrack/View_smp.h Modified: trunk/OpenMPT/mptrack/Ctrl_ins.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Ctrl_ins.cpp Sat Nov 23 00:25:11 2024 (r22263) +++ trunk/OpenMPT/mptrack/Ctrl_ins.cpp Sat Nov 23 16:45:13 2024 (r22264) @@ -54,7 +54,7 @@ ON_WM_KILLFOCUS() ON_WM_LBUTTONDOWN() ON_WM_MBUTTONDOWN() - ON_WM_RBUTTONDOWN() + ON_WM_RBUTTONUP() ON_WM_LBUTTONDBLCLK() ON_WM_MOUSEWHEEL() ON_COMMAND(ID_NOTEMAP_TRANS_UP, &CNoteMapWnd::OnMapTransposeUp) @@ -322,7 +322,7 @@ } -void CNoteMapWnd::OnRButtonDown(UINT, CPoint pt) +void CNoteMapWnd::OnRButtonUp(UINT, CPoint pt) { CInputHandler* ih = CMainFrame::GetInputHandler(); @@ -623,7 +623,7 @@ CRect clientRect; GetClientRect(clientRect); clientRect.bottom = clientRect.top + mpt::align_up(clientRect.Height(), m_cyFont); - OnRButtonDown(0, clientRect.CenterPoint()); + OnRButtonUp(0, clientRect.CenterPoint()); } return wParam; case kcInsNoteMapTransposeDown: MapTranspose(-1); return wParam; Modified: trunk/OpenMPT/mptrack/Ctrl_ins.h ============================================================================== --- trunk/OpenMPT/mptrack/Ctrl_ins.h Sat Nov 23 00:25:11 2024 (r22263) +++ trunk/OpenMPT/mptrack/Ctrl_ins.h Sat Nov 23 16:45:13 2024 (r22264) @@ -69,7 +69,7 @@ //{{AFX_MSG(CNoteMapWnd) afx_msg void OnLButtonDown(UINT, CPoint); afx_msg void OnMButtonDown(UINT flags, CPoint pt) { OnLButtonDown(flags, pt); } - afx_msg void OnRButtonDown(UINT, CPoint); + afx_msg void OnRButtonUp(UINT, CPoint); afx_msg void OnLButtonDblClk(UINT, CPoint); afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt); afx_msg void OnSetFocus(CWnd *pOldWnd); Modified: trunk/OpenMPT/mptrack/Ctrl_pat.h ============================================================================== --- trunk/OpenMPT/mptrack/Ctrl_pat.h Sat Nov 23 00:25:11 2024 (r22263) +++ trunk/OpenMPT/mptrack/Ctrl_pat.h Sat Nov 23 16:45:13 2024 (r22264) @@ -148,7 +148,7 @@ afx_msg void OnKillFocus(CWnd *); afx_msg void OnLButtonDown(UINT, CPoint); afx_msg void OnLButtonDblClk(UINT, CPoint); - afx_msg void OnRButtonDown(UINT, CPoint); + afx_msg void OnRButtonUp(UINT, CPoint); afx_msg void OnLButtonUp(UINT, CPoint); afx_msg void OnMButtonDown(UINT, CPoint); afx_msg void OnMouseMove(UINT, CPoint); Modified: trunk/OpenMPT/mptrack/Ctrl_seq.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Ctrl_seq.cpp Sat Nov 23 00:25:11 2024 (r22263) +++ trunk/OpenMPT/mptrack/Ctrl_seq.cpp Sat Nov 23 16:45:13 2024 (r22264) @@ -52,7 +52,7 @@ ON_WM_LBUTTONDOWN() ON_WM_LBUTTONDBLCLK() ON_WM_LBUTTONUP() - ON_WM_RBUTTONDOWN() + ON_WM_RBUTTONUP() ON_WM_MBUTTONDOWN() ON_WM_SETFOCUS() ON_WM_KILLFOCUS() @@ -478,7 +478,7 @@ GetClientRect(clientRect); if(!clientRect.PtInRect(pt)) pt = clientRect.CenterPoint(); - OnRButtonDown(0, pt); + OnRButtonUp(0, pt); } return wParam; @@ -1073,7 +1073,7 @@ } -void COrderList::OnRButtonDown(UINT nFlags, CPoint pt) +void COrderList::OnRButtonUp(UINT nFlags, CPoint pt) { CRect rect; GetClientRect(&rect); Modified: trunk/OpenMPT/mptrack/Globals.h ============================================================================== --- trunk/OpenMPT/mptrack/Globals.h Sat Nov 23 00:25:11 2024 (r22263) +++ trunk/OpenMPT/mptrack/Globals.h Sat Nov 23 16:45:13 2024 (r22264) @@ -43,7 +43,7 @@ CModControlView &m_parent; HWND m_hWndView = nullptr; HWND m_lastFocusItem = nullptr; - LONG m_nLockCount = 0; + int m_nLockCount = 0; bool m_initialized = false; public: Modified: trunk/OpenMPT/mptrack/Mpdlgs.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Mpdlgs.cpp Sat Nov 23 00:25:11 2024 (r22263) +++ trunk/OpenMPT/mptrack/Mpdlgs.cpp Sat Nov 23 16:45:13 2024 (r22264) @@ -1298,7 +1298,7 @@ BOOL CEQSlider::PreTranslateMessage(MSG *pMsg) { - if ((pMsg) && (pMsg->message == WM_RBUTTONDOWN) && (m_pParent)) + if ((pMsg) && (pMsg->message == WM_RBUTTONUP) && (m_pParent)) { m_x = LOWORD(pMsg->lParam); m_y = HIWORD(pMsg->lParam); Modified: trunk/OpenMPT/mptrack/View_ins.cpp ============================================================================== --- trunk/OpenMPT/mptrack/View_ins.cpp Sat Nov 23 00:25:11 2024 (r22263) +++ trunk/OpenMPT/mptrack/View_ins.cpp Sat Nov 23 16:45:13 2024 (r22264) @@ -92,9 +92,10 @@ ON_WM_LBUTTONDOWN() ON_WM_LBUTTONUP() ON_WM_LBUTTONDBLCLK() - ON_WM_RBUTTONDOWN() - ON_WM_MBUTTONDOWN() + ON_WM_RBUTTONUP() + ON_WM_MBUTTONUP() ON_WM_XBUTTONUP() + ON_WM_MOUSEWHEEL() ON_WM_NCLBUTTONDOWN() ON_WM_NCLBUTTONUP() ON_WM_NCLBUTTONDBLCLK() @@ -133,7 +134,6 @@ ON_UPDATE_COMMAND_UI(ID_EDIT_REDO, &CViewInstrument::OnUpdateRedo) //}}AFX_MSG_MAP - ON_WM_MOUSEWHEEL() END_MESSAGE_MAP() @@ -1747,7 +1747,7 @@ } -void CViewInstrument::OnRButtonDown(UINT flags, CPoint pt) +void CViewInstrument::OnRButtonUp(UINT flags, CPoint pt) { const CModDoc *pModDoc = GetDocument(); if(!pModDoc) @@ -1760,7 +1760,7 @@ // Ctrl + Right-Click = Delete point if(flags & MK_CONTROL) { - OnMButtonDown(flags, pt); + OnMButtonUp(flags, pt); return; } @@ -1789,7 +1789,7 @@ } } -void CViewInstrument::OnMButtonDown(UINT, CPoint pt) +void CViewInstrument::OnMButtonUp(UINT, CPoint pt) { // Middle mouse button: Remove envelope point int point = ScreenToPoint(pt.x, pt.y); @@ -2289,7 +2289,7 @@ uint32 point = DragItemToEnvPoint(); pt.SetPoint(PointToScreen(point), ValueToScreen(EnvGetValue(point))); } - OnRButtonDown(0, pt); + OnRButtonUp(0, pt); } return wParam; case kcPrevInstrument: OnPrevInstrument(); return wParam; Modified: trunk/OpenMPT/mptrack/View_ins.h ============================================================================== --- trunk/OpenMPT/mptrack/View_ins.h Sat Nov 23 00:25:11 2024 (r22263) +++ trunk/OpenMPT/mptrack/View_ins.h Sat Nov 23 16:45:13 2024 (r22264) @@ -209,8 +209,8 @@ afx_msg void OnLButtonDown(UINT, CPoint); afx_msg void OnLButtonUp(UINT, CPoint); afx_msg void OnLButtonDblClk(UINT /*nFlags*/, CPoint point) { InsertAtPoint(point); } - afx_msg void OnRButtonDown(UINT, CPoint); - afx_msg void OnMButtonDown(UINT, CPoint); + afx_msg void OnRButtonUp(UINT, CPoint); + afx_msg void OnMButtonUp(UINT, CPoint); afx_msg void OnNcMouseMove(UINT nHitTest, CPoint point); afx_msg void OnNcLButtonDown(UINT, CPoint); afx_msg void OnNcLButtonUp(UINT, CPoint); Modified: trunk/OpenMPT/mptrack/View_pat.cpp ============================================================================== --- trunk/OpenMPT/mptrack/View_pat.cpp Sat Nov 23 00:25:11 2024 (r22263) +++ trunk/OpenMPT/mptrack/View_pat.cpp Sat Nov 23 16:45:13 2024 (r22264) @@ -57,9 +57,9 @@ ON_WM_LBUTTONDBLCLK() ON_WM_LBUTTONUP() ON_WM_RBUTTONDOWN() + ON_WM_RBUTTONUP() ON_WM_SETFOCUS() ON_WM_KILLFOCUS() - ON_WM_SYSKEYDOWN() ON_WM_DESTROY() ON_MESSAGE(WM_MOD_KEYCOMMAND, &CViewPattern::OnCustomKeyMsg) ON_MESSAGE(WM_MOD_MIDIMSG, &CViewPattern::OnMidiMsg) @@ -136,12 +136,7 @@ ON_UPDATE_COMMAND_UI(ID_EDIT_UNDO, &CViewPattern::OnUpdateUndo) ON_UPDATE_COMMAND_UI(ID_EDIT_REDO, &CViewPattern::OnUpdateRedo) ON_COMMAND_RANGE(ID_PLUGSELECT, ID_PLUGSELECT+MAX_MIXPLUGINS, &CViewPattern::OnSelectPlugin) - - //}}AFX_MSG_MAP - ON_WM_INITMENU() - ON_WM_RBUTTONDBLCLK() - ON_WM_RBUTTONUP() END_MESSAGE_MAP() static_assert(ModCommand::maxColumnValue <= 999, "Command range for ID_CHANGE_PCNOTE_PARAM is designed for 999"); @@ -1422,16 +1417,7 @@ void CViewPattern::OnRButtonDown(UINT flags, CPoint pt) { - CModDoc *modDoc = GetDocument(); - HMENU hMenu; - - // Too far left to get a ctx menu: - if(!modDoc || pt.x < m_szHeader.cx) - { - return; - } - - // Handle drag n drop + // Abort drag n drop if(m_Status[psDragnDropEdit]) { if(m_Status[psDragnDropping]) @@ -1450,10 +1436,46 @@ return; } - if((hMenu = ::CreatePopupMenu()) == NULL) + const bool inChannelHeader = (pt.y < m_szHeader.cy); + if(/*(flags & MK_SHIFT) &&*/ inChannelHeader) { + // Drag-select record channels + StartRecordGroupDragging(GetDragItem(pt, m_rcDragItem)); + m_Status.set(psShiftDragging, (flags & MK_SHIFT) != 0); + } +} + + +void CViewPattern::OnRButtonUp(UINT flags, CPoint pt) +{ + CModDoc *modDoc = GetDocument(); + + // Too far left to get a ctx menu: + if(!modDoc || pt.x < m_szHeader.cx) return; + + ResetRecordGroupDragging(); + const CHANNELINDEX sourceChn = static_cast<CHANNELINDEX>(m_nDragItem.Value()); + const CHANNELINDEX targetChn = m_nDropItem.IsValid() ? static_cast<CHANNELINDEX>(m_nDropItem.Value()) : CHANNELINDEX_INVALID; + switch(m_nDragItem.Type()) + { + case DragItem::ChannelHeader: + if(m_Status[psShiftDragging]) + { + if(sourceChn < modDoc->GetNumChannels() && sourceChn == targetChn) + { + modDoc->ToggleChannelRecordGroup(sourceChn, RecordGroup::Group2); + InvalidateChannelsHeaders(sourceChn); + } + } + break; + default: + break; } + + HMENU hMenu = ::CreatePopupMenu(); + if(hMenu == nullptr) + return; CSoundFile &sndFile = modDoc->GetSoundFile(); m_MenuCursor = GetPositionFromPoint(pt); @@ -1477,10 +1499,6 @@ // Ctrl+Right-Click: Open quick channel properties. ClientToScreen(&pt); m_quickChannelProperties.Show(GetDocument(), nChn, pt); - } else if((flags & MK_SHIFT) && inChannelHeader) - { - // Drag-select record channels - StartRecordGroupDragging(GetDragItem(pt, m_rcDragItem)); } else if(nChn < sndFile.GetNumChannels() && sndFile.Patterns.IsValidPat(m_nPattern) && !(flags & (MK_CONTROL | MK_SHIFT))) { CInputHandler *ih = CMainFrame::GetInputHandler(); @@ -1558,34 +1576,6 @@ ::DestroyMenu(hMenu); } -void CViewPattern::OnRButtonUp(UINT nFlags, CPoint point) -{ - CModDoc *pModDoc = GetDocument(); - if(!pModDoc) - return; - - ResetRecordGroupDragging(); - const CHANNELINDEX sourceChn = static_cast<CHANNELINDEX>(m_nDragItem.Value()); - const CHANNELINDEX targetChn = m_nDropItem.IsValid() ? static_cast<CHANNELINDEX>(m_nDropItem.Value()) : CHANNELINDEX_INVALID; - switch(m_nDragItem.Type()) - { - case DragItem::ChannelHeader: - if(nFlags & MK_SHIFT) - { - if(sourceChn < pModDoc->GetNumChannels() && sourceChn == targetChn) - { - pModDoc->ToggleChannelRecordGroup(sourceChn, RecordGroup::Group2); - InvalidateChannelsHeaders(sourceChn); - } - } - break; - default: - break; - } - - CModScrollView::OnRButtonUp(nFlags, point); -} - // cppcheck-suppress duplInheritedMember BOOL CViewPattern::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt) @@ -4373,7 +4363,7 @@ switch(wParam) { - case kcContextMenu: OnRButtonDown(0, GetPointFromPosition(m_Cursor)); return wParam; + case kcContextMenu: OnRButtonUp(0, GetPointFromPosition(m_Cursor)); return wParam; case kcPrevInstrument: OnPrevInstrument(); return wParam; case kcNextInstrument: OnNextInstrument(); return wParam; @@ -4676,7 +4666,7 @@ CPoint pt = GetPointFromPosition(m_Cursor); pt.x += GetChannelWidth() / 2; pt.y += GetRowHeight() / 2; - OnRButtonDown(0, pt); + OnRButtonUp(0, pt); } return wParam; case kcShowChannelCtxMenu: @@ -4684,7 +4674,7 @@ CPoint pt = GetPointFromPosition(m_Cursor); pt.x += GetChannelWidth() / 2; pt.y = (m_szHeader.cy - m_szPluginHeader.cy) / 2; - OnRButtonDown(0, pt); + OnRButtonUp(0, pt); } return wParam; case kcShowChannelPluginCtxMenu: @@ -4692,7 +4682,7 @@ CPoint pt = GetPointFromPosition(m_Cursor); pt.x += GetChannelWidth() / 2; pt.y = m_szHeader.cy - m_szPluginHeader.cy / 2; - OnRButtonDown(0, pt); + OnRButtonUp(0, pt); } return wParam; case kcPatternGoto: OnEditGoto(); return wParam; @@ -6408,12 +6398,6 @@ } - -void CViewPattern::OnInitMenu(CMenu *pMenu) -{ - CModScrollView::OnInitMenu(pMenu); -} - void CViewPattern::TogglePluginEditor(int chan) { CModDoc *modDoc = GetDocument(); @@ -7079,13 +7063,6 @@ } -void CViewPattern::OnRButtonDblClk(UINT nFlags, CPoint point) -{ - OnRButtonDown(nFlags, point); - CModScrollView::OnRButtonDblClk(nFlags, point); -} - - // Toggle pending mute status for channel from context menu. void CViewPattern::OnTogglePendingMuteFromClick() { Modified: trunk/OpenMPT/mptrack/View_pat.h ============================================================================== --- trunk/OpenMPT/mptrack/View_pat.h Sat Nov 23 00:25:11 2024 (r22263) +++ trunk/OpenMPT/mptrack/View_pat.h Sat Nov 23 16:45:13 2024 (r22264) @@ -465,10 +465,6 @@ //}}AFX_MSG DECLARE_MESSAGE_MAP() - -public: - afx_msg void OnInitMenu(CMenu *pMenu); - private: // Copy&Paste bool CopyPattern(PATTERNINDEX nPattern, const PatternRect &selection); @@ -535,9 +531,6 @@ void DragChannel(CHANNELINDEX source, CHANNELINDEX target, CHANNELINDEX numChannels, bool duplicate); -public: - afx_msg void OnRButtonDblClk(UINT nFlags, CPoint point); - private: void TogglePendingMute(CHANNELINDEX nChn); void PendingSoloChn(CHANNELINDEX first, CHANNELINDEX last); Modified: trunk/OpenMPT/mptrack/View_smp.cpp ============================================================================== --- trunk/OpenMPT/mptrack/View_smp.cpp Sat Nov 23 00:25:11 2024 (r22263) +++ trunk/OpenMPT/mptrack/View_smp.cpp Sat Nov 23 16:45:13 2024 (r22264) @@ -104,7 +104,7 @@ ON_WM_NCLBUTTONDOWN() ON_WM_NCLBUTTONUP() ON_WM_NCLBUTTONDBLCLK() - ON_WM_RBUTTONDOWN() + ON_WM_RBUTTONUP() ON_WM_CHAR() ON_WM_DROPFILES() ON_WM_MOUSEWHEEL() @@ -2158,7 +2158,7 @@ } -void CViewSample::OnRButtonDown(UINT, CPoint pt) +void CViewSample::OnRButtonUp(UINT, CPoint pt) { CModDoc *pModDoc = GetDocument(); if(pModDoc) @@ -3676,7 +3676,7 @@ switch(wParam) { - case kcContextMenu: OnRButtonDown(0, CPoint(0, TimelineHeight(m_hWnd))); return wParam; + case kcContextMenu: OnRButtonUp(0, CPoint(0, TimelineHeight(m_hWnd))); return wParam; case kcSampleTrim: TrimSample(false); return wParam; case kcSampleTrimToLoopEnd: TrimSample(true); return wParam; Modified: trunk/OpenMPT/mptrack/View_smp.h ============================================================================== --- trunk/OpenMPT/mptrack/View_smp.h Sat Nov 23 00:25:11 2024 (r22263) +++ trunk/OpenMPT/mptrack/View_smp.h Sat Nov 23 16:45:13 2024 (r22264) @@ -187,7 +187,7 @@ afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point); afx_msg void OnLButtonDown(UINT nFlags, CPoint point); afx_msg void OnLButtonUp(UINT nFlags, CPoint point); - afx_msg void OnRButtonDown(UINT, CPoint); + afx_msg void OnRButtonUp(UINT, CPoint); afx_msg void OnMouseMove(UINT, CPoint); afx_msg BOOL OnSetCursor(CWnd *pWnd, UINT nHitTest, UINT message); afx_msg void OnEditSelectAll(); |
From: <sv...@op...> - 2024-11-22 23:25:18
|
Author: sagamusix Date: Sat Nov 23 00:25:11 2024 New Revision: 22263 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22263 Log: [Fix] Fix keyboard focus being stuck on MDI client area, being unable to return to the quick start dialog after refocussing OpenMPT window. Modified: trunk/OpenMPT/mptrack/MainFrm.cpp trunk/OpenMPT/mptrack/Mainfrm.h Modified: trunk/OpenMPT/mptrack/MainFrm.cpp ============================================================================== --- trunk/OpenMPT/mptrack/MainFrm.cpp Fri Nov 22 23:55:56 2024 (r22262) +++ trunk/OpenMPT/mptrack/MainFrm.cpp Sat Nov 23 00:25:11 2024 (r22263) @@ -89,42 +89,42 @@ ON_WM_DEVICECHANGE() ON_WM_DROPFILES() ON_WM_QUERYENDSESSION() - ON_COMMAND(ID_VIEW_OPTIONS, &CMainFrame::OnViewOptions) + ON_WM_MOUSEWHEEL() + ON_WM_SHOWWINDOW() + ON_WM_ACTIVATEAPP() + ON_WM_ACTIVATE() - ON_COMMAND(ID_PLUGIN_SETUP, &CMainFrame::OnPluginManager) - ON_COMMAND(ID_CLIPBOARD_MANAGER, &CMainFrame::OnClipboardManager) - //ON_COMMAND(ID_HELP, CMDIFrameWnd::OnHelp) - ON_COMMAND(ID_REPORT_BUG, &CMainFrame::OnReportBug) - ON_COMMAND(ID_NEXTOCTAVE, &CMainFrame::OnNextOctave) - ON_COMMAND(ID_PREVOCTAVE, &CMainFrame::OnPrevOctave) - ON_COMMAND_RANGE(ID_FILE_OPENTEMPLATE, ID_FILE_OPENTEMPLATE_LASTINRANGE, &CMainFrame::OnOpenTemplateModule) - ON_COMMAND(ID_ADD_SOUNDBANK, &CMainFrame::OnAddDlsBank) - ON_COMMAND(ID_IMPORT_MIDILIB, &CMainFrame::OnImportMidiLib) - ON_COMMAND(ID_MIDI_RECORD, &CMainFrame::OnMidiRecord) - ON_COMMAND(ID_PANIC, &CMainFrame::OnPanic) - ON_COMMAND(ID_PLAYER_PAUSE, &CMainFrame::OnPlayerPause) - ON_COMMAND_RANGE(ID_EXAMPLE_MODULES, ID_EXAMPLE_MODULES_LASTINRANGE, &CMainFrame::OnExampleSong) - ON_COMMAND_EX(IDD_TREEVIEW, &CMainFrame::OnBarCheck) - ON_COMMAND_EX(ID_NETLINK_MODPLUG, &CMainFrame::OnInternetLink) - ON_COMMAND_EX(ID_NETLINK_TOP_PICKS, &CMainFrame::OnInternetLink) - ON_UPDATE_COMMAND_UI(ID_MIDI_RECORD, &CMainFrame::OnUpdateMidiRecord) - ON_UPDATE_COMMAND_UI(ID_INDICATOR_TIME, &CMainFrame::OnUpdateTime) - ON_UPDATE_COMMAND_UI(ID_INDICATOR_USER, &CMainFrame::OnUpdateUser) - ON_UPDATE_COMMAND_UI(ID_INDICATOR_INFO, &CMainFrame::OnUpdateInfo) - ON_UPDATE_COMMAND_UI(ID_INDICATOR_XINFO,&CMainFrame::OnUpdateXInfo) - ON_UPDATE_COMMAND_UI(IDD_TREEVIEW, &CMainFrame::OnUpdateControlBarMenu) - ON_MESSAGE(WM_MOD_UPDATEPOSITION, &CMainFrame::OnUpdatePosition) - ON_MESSAGE(WM_MOD_INVALIDATEPATTERNS, &CMainFrame::OnInvalidatePatterns) - ON_MESSAGE(WM_MOD_KEYCOMMAND, &CMainFrame::OnCustomKeyMsg) - ON_MESSAGE(WM_MOD_MIDIMAPPING, &CMainFrame::OnViewMIDIMapping) - ON_MESSAGE(WM_MOD_UPDATEVIEWS, &CMainFrame::OnUpdateViews) - ON_MESSAGE(WM_MOD_SETMODIFIED, &CMainFrame::OnSetModified) + ON_MESSAGE(WM_DPICHANGED, &CMainFrame::OnDPIChanged) + + ON_COMMAND(ID_VIEW_OPTIONS, &CMainFrame::OnViewOptions) + ON_COMMAND(ID_PLUGIN_SETUP, &CMainFrame::OnPluginManager) + ON_COMMAND(ID_CLIPBOARD_MANAGER, &CMainFrame::OnClipboardManager) + //ON_COMMAND(ID_HELP, &CMDIFrameWnd::OnHelp) + + ON_COMMAND(ID_REPORT_BUG, &CMainFrame::OnReportBug) + ON_COMMAND(ID_NEXTOCTAVE, &CMainFrame::OnNextOctave) + ON_COMMAND(ID_PREVOCTAVE, &CMainFrame::OnPrevOctave) + ON_COMMAND(ID_ADD_SOUNDBANK, &CMainFrame::OnAddDlsBank) + ON_COMMAND(ID_IMPORT_MIDILIB, &CMainFrame::OnImportMidiLib) + ON_COMMAND(ID_MIDI_RECORD, &CMainFrame::OnMidiRecord) + ON_COMMAND(ID_PANIC, &CMainFrame::OnPanic) + ON_COMMAND(ID_PLAYER_PAUSE, &CMainFrame::OnPlayerPause) + + ON_COMMAND_EX(IDD_TREEVIEW, &CMainFrame::OnBarCheck) + ON_COMMAND_EX(ID_NETLINK_MODPLUG, &CMainFrame::OnInternetLink) + ON_COMMAND_EX(ID_NETLINK_TOP_PICKS, &CMainFrame::OnInternetLink) + + ON_MESSAGE(WM_MOD_UPDATEPOSITION, &CMainFrame::OnUpdatePosition) + ON_MESSAGE(WM_MOD_INVALIDATEPATTERNS, &CMainFrame::OnInvalidatePatterns) + ON_MESSAGE(WM_MOD_KEYCOMMAND, &CMainFrame::OnCustomKeyMsg) + ON_MESSAGE(WM_MOD_MIDIMAPPING, &CMainFrame::OnViewMIDIMapping) + ON_MESSAGE(WM_MOD_UPDATEVIEWS, &CMainFrame::OnUpdateViews) + ON_MESSAGE(WM_MOD_SETMODIFIED, &CMainFrame::OnSetModified) #if defined(MPT_ENABLE_UPDATE) - ON_MESSAGE(WM_MOD_UPDATENOTIFY, &CMainFrame::OnToolbarUpdateIndicatorClick) + ON_MESSAGE(WM_MOD_UPDATENOTIFY, &CMainFrame::OnToolbarUpdateIndicatorClick) #endif // MPT_ENABLE_UPDATE - ON_COMMAND(ID_INTERNETUPDATE, &CMainFrame::OnInternetUpdate) - ON_COMMAND(ID_UPDATE_AVAILABLE, &CMainFrame::OnUpdateAvailable) - ON_COMMAND(ID_HELP_SHOWSETTINGSFOLDER, &CMainFrame::OnShowSettingsFolder) + ON_COMMAND(ID_INTERNETUPDATE, &CMainFrame::OnInternetUpdate) + ON_COMMAND(ID_UPDATE_AVAILABLE, &CMainFrame::OnUpdateAvailable) #if defined(MPT_ENABLE_UPDATE) ON_MESSAGE(MPT_WM_APP_UPDATECHECK_START, &CMainFrame::OnUpdateCheckStart) ON_MESSAGE(MPT_WM_APP_UPDATECHECK_PROGRESS, &CMainFrame::OnUpdateCheckProgress) @@ -132,6 +132,7 @@ ON_MESSAGE(MPT_WM_APP_UPDATECHECK_FAILURE, &CMainFrame::OnUpdateCheckFailure) ON_MESSAGE(MPT_WM_APP_UPDATECHECK_SUCCESS, &CMainFrame::OnUpdateCheckSuccess) #endif // MPT_ENABLE_UPDATE + ON_COMMAND(ID_HELP_SHOWSETTINGSFOLDER, &CMainFrame::OnShowSettingsFolder) ON_COMMAND(ID_HELPSHOW, &CMainFrame::OnHelp) ON_COMMAND(ID_MAINBAR_SHOW_OCTAVE, &CMainFrame::OnToggleMainBarShowOctave) ON_COMMAND(ID_MAINBAR_SHOW_TEMPO, &CMainFrame::OnToggleMainBarShowTempo) @@ -142,18 +143,23 @@ ON_COMMAND(ID_TREEVIEW_ON_LEFT, &CMainFrame::OnToggleTreeViewOnLeft) #ifdef MPT_ENABLE_PLAYBACK_TEST_MENU - ON_COMMAND(ID_CREATE_MIXERDUMP, &CMainFrame::OnCreateMixerDump) - ON_COMMAND(ID_VERIFY_MIXERDUMP, &CMainFrame::OnVerifyMixerDump) + ON_COMMAND(ID_CREATE_MIXERDUMP, &CMainFrame::OnCreateMixerDump) + ON_COMMAND(ID_VERIFY_MIXERDUMP, &CMainFrame::OnVerifyMixerDump) ON_COMMAND(ID_CONVERT_MIXERDUMP, &CMainFrame::OnConvertMixerDumpToText) #endif // ENABLE_PLAYBACK_TEST_MENU + ON_COMMAND_RANGE(ID_FILE_OPENTEMPLATE, ID_FILE_OPENTEMPLATE_LASTINRANGE, &CMainFrame::OnOpenTemplateModule) + ON_COMMAND_RANGE(ID_EXAMPLE_MODULES, ID_EXAMPLE_MODULES_LASTINRANGE, &CMainFrame::OnExampleSong) ON_COMMAND_RANGE(ID_MRU_LIST_FIRST, ID_MRU_LIST_LAST, &CMainFrame::OnOpenMRUItem) - ON_UPDATE_COMMAND_UI(ID_MRU_LIST_FIRST, &CMainFrame::OnUpdateMRUItem) + + ON_UPDATE_COMMAND_UI(ID_MRU_LIST_FIRST, &CMainFrame::OnUpdateMRUItem) + ON_UPDATE_COMMAND_UI(ID_MIDI_RECORD, &CMainFrame::OnUpdateMidiRecord) + ON_UPDATE_COMMAND_UI(ID_INDICATOR_TIME, &CMainFrame::OnUpdateTime) + ON_UPDATE_COMMAND_UI(ID_INDICATOR_USER, &CMainFrame::OnUpdateUser) + ON_UPDATE_COMMAND_UI(ID_INDICATOR_INFO, &CMainFrame::OnUpdateInfo) + ON_UPDATE_COMMAND_UI(ID_INDICATOR_XINFO, &CMainFrame::OnUpdateXInfo) + ON_UPDATE_COMMAND_UI(IDD_TREEVIEW, &CMainFrame::OnUpdateControlBarMenu) //}}AFX_MSG_MAP - ON_WM_MOUSEWHEEL() - ON_WM_SHOWWINDOW() - ON_WM_ACTIVATEAPP() - ON_MESSAGE(WM_DPICHANGED, &CMainFrame::OnDPIChanged) END_MESSAGE_MAP() // Globals @@ -567,6 +573,15 @@ } +void CMainFrame::OnActivate(UINT nState, CWnd *pWndOther, BOOL bMinimized) +{ + CMDIFrameWnd::OnActivate(nState, pWndOther, bMinimized); + // Avoid keyboard focus being trapped on MDI client area + if(m_quickStartDlg && m_quickStartDlg->m_hWnd && nState != WA_INACTIVE && ::GetFocus() == m_hWndMDIClient) + m_quickStartDlg->SetFocus(); +} + + LRESULT CALLBACK CMainFrame::FocusChangeProc(int code, WPARAM wParam, LPARAM lParam) { // Hook to keep track of last focussed GUI item. This solves various focus issues when switching between @@ -3132,7 +3147,7 @@ mpt::PathString fileName; while(scanner.Next(fileName)) { - paths.push_back(fileName); + paths.push_back(std::move(fileName)); } } DWORD stringCompareFlags = NORM_IGNORECASE | NORM_IGNOREWIDTH; Modified: trunk/OpenMPT/mptrack/Mainfrm.h ============================================================================== --- trunk/OpenMPT/mptrack/Mainfrm.h Fri Nov 22 23:55:56 2024 (r22262) +++ trunk/OpenMPT/mptrack/Mainfrm.h Sat Nov 23 00:25:11 2024 (r22263) @@ -451,6 +451,7 @@ afx_msg void OnDropFiles(HDROP hDropInfo); afx_msg BOOL OnQueryEndSession(); afx_msg void OnActivateApp(BOOL active, DWORD threadID); + afx_msg void OnActivate(UINT nState, CWnd *pWndOther, BOOL bMinimized); afx_msg void OnToggleMainBarShowOctave(); afx_msg void OnToggleMainBarShowTempo(); |
From: <sv...@op...> - 2024-11-22 22:56:08
|
Author: sagamusix Date: Fri Nov 22 23:55:56 2024 New Revision: 22262 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22262 Log: [Imp] Quick Start: Add ability to filter listed files. [Imp] Template and example module lists are now sorted with natural sorting, if available. Modified: trunk/OpenMPT/mptrack/MainFrm.cpp trunk/OpenMPT/mptrack/QuickStartDialog.cpp trunk/OpenMPT/mptrack/QuickStartDialog.h trunk/OpenMPT/mptrack/View_tre.cpp trunk/OpenMPT/mptrack/View_tre.h trunk/OpenMPT/mptrack/mptrack.rc Modified: trunk/OpenMPT/mptrack/MainFrm.cpp ============================================================================== --- trunk/OpenMPT/mptrack/MainFrm.cpp Fri Nov 22 08:34:38 2024 (r22261) +++ trunk/OpenMPT/mptrack/MainFrm.cpp Fri Nov 22 23:55:56 2024 (r22262) @@ -618,7 +618,7 @@ } -BOOL CMainFrame::PreTranslateMessage(MSG* pMsg) +BOOL CMainFrame::PreTranslateMessage(MSG *pMsg) { // Right-click menu to disable/enable tree view and main toolbar when right-clicking on either the menu strip or main toolbar if((pMsg->message == WM_RBUTTONUP) || (pMsg->message == WM_NCRBUTTONUP)) @@ -3115,43 +3115,60 @@ HMENU CMainFrame::CreateFileMenu(const size_t maxCount, std::vector<mpt::PathString>& paths, const mpt::PathString &folderName, const uint16 idRangeBegin) { paths.clear(); - HMENU hMenu = ::CreatePopupMenu(); - ASSERT(hMenu != NULL); - if (hMenu != NULL) + + for(size_t i = 0; i < 2; i++) // 0: app items, 1: user items { - UINT_PTR filesAdded = 0; - for(size_t i = 0; i < 2; i++) // 0: app items, 1: user items - { - // To avoid duplicates, check whether app path and config path are the same. - if (i == 1 && mpt::PathCompareNoCase(theApp.GetInstallPath(), theApp.GetConfigPath()) == 0) - break; + // To avoid duplicates, check whether app path and config path are the same. + if(i == 1 && mpt::PathCompareNoCase(theApp.GetInstallPath(), theApp.GetConfigPath()) == 0) + break; - mpt::PathString basePath; - basePath = (i == 0) ? theApp.GetInstallPath() : theApp.GetConfigPath(); - basePath += folderName; - if(!mpt::native_fs{}.is_directory(basePath)) - continue; - - FolderScanner scanner(basePath, FolderScanner::kOnlyFiles); - mpt::PathString fileName; - while(filesAdded < maxCount && scanner.Next(fileName)) - { - paths.push_back(fileName); - CString file = fileName.GetFilename().ToCString(); - file.Replace(_T("&"), _T("&&")); - AppendMenu(hMenu, MF_STRING, idRangeBegin + filesAdded, file); - filesAdded++; - } - } + mpt::PathString basePath; + basePath = (i == 0) ? theApp.GetInstallPath() : theApp.GetConfigPath(); + basePath += folderName; + if(!mpt::native_fs{}.is_directory(basePath)) + continue; + + FolderScanner scanner(basePath, FolderScanner::kOnlyFiles); + mpt::PathString fileName; + while(scanner.Next(fileName)) + { + paths.push_back(fileName); + } + } + DWORD stringCompareFlags = NORM_IGNORECASE | NORM_IGNOREWIDTH; +#if MPT_WINNT_AT_LEAST(MPT_WIN_7) + // Wine does not support natural sorting with SORT_DIGITSASNUMBERS, fall back to normal sorting + if(::CompareString(LOCALE_USER_DEFAULT, stringCompareFlags | SORT_DIGITSASNUMBERS, _T(""), -1, _T(""), -1) == CSTR_EQUAL) + stringCompareFlags |= SORT_DIGITSASNUMBERS; +#endif + std::sort(paths.begin(), paths.end(), [stringCompareFlags](const mpt::PathString &left, const mpt::PathString &right) + { + return ::CompareString(LOCALE_USER_DEFAULT, stringCompareFlags, left.AsNative().c_str(), -1, right.AsNative().c_str(), -1) == CSTR_LESS_THAN; + }); - if(filesAdded == 0) - { - AppendMenu(hMenu, MF_STRING | MF_GRAYED | MF_DISABLED, 0, _T("No items found")); - } else - { - AppendMenu(hMenu, MF_SEPARATOR, 0, 0); - AppendMenu(hMenu, MF_STRING, idRangeBegin + maxCount, _T("&Browse...")); - } + HMENU hMenu = ::CreatePopupMenu(); + MPT_ASSERT(hMenu != nullptr); + if(hMenu == nullptr) + return hMenu; + + UINT_PTR filesAdded = 0; + for(const auto &fileName : paths) + { + CString file = fileName.GetFilename().ToCString(); + file.Replace(_T("&"), _T("&&")); + AppendMenu(hMenu, MF_STRING, idRangeBegin + filesAdded, file); + filesAdded++; + if(filesAdded >= maxCount) + break; + } + + if(filesAdded == 0) + { + AppendMenu(hMenu, MF_STRING | MF_GRAYED | MF_DISABLED, 0, _T("No items found")); + } else + { + AppendMenu(hMenu, MF_SEPARATOR, 0, 0); + AppendMenu(hMenu, MF_STRING, idRangeBegin + maxCount, _T("&Browse...")); } return hMenu; Modified: trunk/OpenMPT/mptrack/QuickStartDialog.cpp ============================================================================== --- trunk/OpenMPT/mptrack/QuickStartDialog.cpp Fri Nov 22 08:34:38 2024 (r22261) +++ trunk/OpenMPT/mptrack/QuickStartDialog.cpp Fri Nov 22 23:55:56 2024 (r22262) @@ -1,7 +1,7 @@ /* * QuickStartDialog.cpp * -------------------- - * Purpose: Dialog to show inside the MDI area when no modules are loaded. + * Purpose: Dialog to show inside the MDI client area when no modules are loaded. * Notes : (currently none) * Authors: OpenMPT Devs * The OpenMPT source code is released under the BSD license. Read LICENSE for more details. @@ -28,6 +28,8 @@ ON_COMMAND(IDC_BUTTON2, &QuickStartDlg::OnOpen) ON_COMMAND(ID_REMOVE, &QuickStartDlg::OnRemoveMRUItem) ON_COMMAND(ID_REMOVE_ALL, &QuickStartDlg::OnRemoveAllMRUItems) + + ON_EN_CHANGE(IDC_EDIT1, &QuickStartDlg::OnUpdateFilter) ON_NOTIFY(NM_DBLCLK, IDC_LIST1, &QuickStartDlg::OnOpenFile) ON_NOTIFY(NM_RCLICK, IDC_LIST1, &QuickStartDlg::OnRightClickFile) @@ -41,6 +43,7 @@ DDX_Control(pDX, IDC_BUTTON2, m_openButton); DDX_Control(pDX, IDCANCEL, m_closeButton); DDX_Control(pDX, IDC_LIST1, m_list); + DDX_Control(pDX, IDC_EDIT1, m_find); } @@ -51,7 +54,7 @@ m_closeButton.SetAccessibleText(_T("Close")); Create(IDD_QUICKSTART, parent); - const bool groupsEnabled = m_list.EnableGroupView(); + m_groupsEnabled = m_list.EnableGroupView(); m_list.SetRedraw(FALSE); m_list.SetExtendedStyle(m_list.GetExtendedStyle() | LVS_EX_FULLROWSELECT); m_list.InsertColumn(0, _T("File"), LVCFMT_LEFT); @@ -64,11 +67,9 @@ {examples, _T("Example Modules")}, }; static_assert(mpt::array_size<decltype(PathGroups)>::size == mpt::array_size<decltype(m_paths)>::size); - int groupId = -1, itemId = -1; - for(const auto &pathGroup : PathGroups) + for(size_t groupId = 0; groupId < std::size(PathGroups); groupId++) { - ++groupId; - if(groupsEnabled) + if(m_groupsEnabled) { LVGROUP group{}; #if MPT_WINNT_AT_LEAST(MPT_WIN_VISTA) @@ -78,15 +79,15 @@ #endif group.mask = LVGF_HEADER | LVGF_GROUPID; #if defined(UNICODE) - group.pszHeader = const_cast<TCHAR *>(pathGroup.second); + group.pszHeader = const_cast<TCHAR *>(PathGroups[groupId].second); #else - std::wstring titlew = mpt::ToWide(mpt::winstring(pathGroup.second)); + std::wstring titlew = mpt::ToWide(mpt::winstring(PathGroups[groupId].second)); group.pszHeader = const_cast<WCHAR *>(titlew.c_str()); #endif group.cchHeader = 0; group.pszFooter = nullptr; group.cchFooter = 0; - group.iGroupId = groupId; + group.iGroupId = static_cast<int>(groupId); group.stateMask = 0; group.state = 0; group.uAlign = LVGA_HEADER_LEFT; @@ -94,29 +95,9 @@ ListView_SetGroupState(m_list.m_hWnd, group.iGroupId, LVGS_COLLAPSIBLE, LVGS_COLLAPSIBLE); } - LVITEM lvi; - lvi.mask = LVIF_TEXT | LVIF_PARAM | LVIF_IMAGE; - if(groupsEnabled) - lvi.mask |= LVIF_GROUPID; - lvi.iSubItem = 0; - lvi.state = 0; - lvi.stateMask = 0; - lvi.cchTextMax = 0; - lvi.iImage = TIMAGE_MODULE_FILE; - lvi.iIndent = 0; - - for(const auto &path : pathGroup.first) - { - const auto filename = path.GetFilename().AsNative(); - lvi.iGroupId = groupId; - lvi.iItem = ++itemId; - lvi.lParam = static_cast<LPARAM>(m_paths[groupId].size() | (groupId << 24)); - lvi.pszText = const_cast<TCHAR *>(filename.c_str()); - m_list.InsertItem(&lvi); - m_list.SetItemText(itemId, 1, path.GetDirectoryWithDrive().AsNative().c_str()); - m_paths[groupId].push_back(path); - } + m_paths[groupId] = PathGroups[groupId].first; } + UpdateFileList(); m_list.SetItemState(0, LVIS_SELECTED, LVIS_SELECTED); m_list.SetColumnWidth(0, LVSCW_AUTOSIZE); m_list.SetColumnWidth(1, LVSCW_AUTOSIZE_USEHEADER); @@ -192,8 +173,25 @@ } +BOOL QuickStartDlg::PreTranslateMessage(MSG *pMsg) +{ + // Use up/down keys to navigate in list, even if search field is focussed. This also skips the group headers during navigation + if(pMsg->message == WM_KEYDOWN && (pMsg->wParam == VK_UP || pMsg->wParam == VK_DOWN) && GetFocus() == &m_find) + { + m_list.ModifyStyle(0, LVS_SHOWSELALWAYS); + int selItem = std::clamp(m_list.GetSelectionMark() + (pMsg->wParam == VK_UP ? -1 : 1), 0, m_list.GetItemCount() - 1); + m_list.SetItemState(selItem, LVIS_SELECTED, LVIS_SELECTED); + m_list.SetSelectionMark(selItem); + return TRUE; + } + + return ResizableDialog::PreTranslateMessage(pMsg); +} + + void QuickStartDlg::UpdateHeight() { + // Try to make the view tall enough to view the entire list contents, but only up to 90% of the MDI client area CRect listRect, viewRect; m_list.GetClientRect(listRect); m_list.GetViewRect(viewRect); @@ -202,7 +200,7 @@ GetClientRect(windowRect); GetParent()->GetClientRect(parentRect); m_list.GetItemRect(0, itemRect, LVIR_BOUNDS); - viewRect.bottom += itemRect.Height() * 2; + viewRect.bottom += itemRect.Height() * 2; // View height calculation seems to be a bit off and would still cause a vertical scrollbar to appear without this adjustment if(viewRect.bottom > listRect.bottom) windowRect.bottom += viewRect.bottom - listRect.bottom; const int maxHeight = Util::muldiv(parentRect.bottom, 9, 10); @@ -234,7 +232,7 @@ void QuickStartDlg::OnOK() { - if(GetFocus() == &m_list) + if(const CWnd *focus = GetFocus(); focus == &m_list || focus == &m_find) OnOpenFile(nullptr, nullptr); } @@ -249,6 +247,7 @@ return; mruFiles.erase(mruFiles.begin() + index); m_list.DeleteItem(index); + m_paths[GetItemGroup(index)][GetItemIndex(index)] = {}; CMainFrame::GetMainFrame()->UpdateMRUList(); } @@ -266,13 +265,61 @@ } +void QuickStartDlg::OnUpdateFilter() +{ + m_list.SetRedraw(FALSE); + m_list.DeleteAllItems(); + CString filter; + m_find.GetWindowText(filter); + UpdateFileList(filter); + m_list.SetRedraw(TRUE); +} + + +void QuickStartDlg::UpdateFileList(CString filter) +{ + const bool applyFilter = !filter.IsEmpty(); + if(applyFilter) + filter = _T("*") + filter + _T("*"); + + LVITEM lvi; + lvi.mask = LVIF_TEXT | LVIF_PARAM | LVIF_IMAGE; + if(m_groupsEnabled) + lvi.mask |= LVIF_GROUPID; + lvi.iSubItem = 0; + lvi.state = 0; + lvi.stateMask = 0; + lvi.cchTextMax = 0; + lvi.iImage = TIMAGE_MODULE_FILE; + lvi.iIndent = 0; + + int itemId = -1; + for(size_t groupId = 0; groupId < m_paths.size(); groupId++) + { + lvi.iGroupId = static_cast<int>(groupId); + for(size_t i = 0; i < m_paths[groupId].size(); i++) + { + if(m_paths[groupId][i].empty() || (applyFilter && !PathMatchSpec(m_paths[groupId][i].AsNative().c_str(), filter))) + continue; + const auto filename = m_paths[groupId][i].GetFilename().AsNative(); + lvi.iItem = ++itemId; + lvi.lParam = static_cast<LPARAM>(i | (groupId << 24)); + lvi.pszText = const_cast<TCHAR *>(filename.c_str()); + m_list.InsertItem(&lvi); + m_list.SetItemText(itemId, 1, m_paths[groupId][i].GetDirectoryWithDrive().AsNative().c_str()); + } + } +} + + void QuickStartDlg::OnOpenFile(NMHDR *, LRESULT *) { const int i = m_list.GetSelectionMark(); if(i < 0) return; + const size_t index = GetItemIndex(i); const int group = GetItemGroup(i); - const auto &path = m_paths[group][GetItemIndex(i)]; + const auto &path = m_paths[group][index]; CDocument *doc = nullptr; if(group != 1) doc = theApp.OpenDocumentFile(path.ToCString()); @@ -280,7 +327,10 @@ doc = theApp.OpenTemplateFile(path); if(!doc) + { m_list.DeleteItem(i); + m_paths[group][i] = {}; + } } Modified: trunk/OpenMPT/mptrack/QuickStartDialog.h ============================================================================== --- trunk/OpenMPT/mptrack/QuickStartDialog.h Fri Nov 22 08:34:38 2024 (r22261) +++ trunk/OpenMPT/mptrack/QuickStartDialog.h Fri Nov 22 23:55:56 2024 (r22262) @@ -1,7 +1,7 @@ /* * QuickStartDialog.h * ------------------ - * Purpose: Dialog to show inside the MDI area when no modules are loaded. + * Purpose: Dialog to show inside the MDI client area when no modules are loaded. * Notes : (currently none) * Authors: OpenMPT Devs * The OpenMPT source code is released under the BSD license. Read LICENSE for more details. @@ -31,9 +31,11 @@ BOOL OnInitDialog() override; void OnDPIChanged() override; INT_PTR OnToolHitTest(CPoint point, TOOLINFO* pTI) const override; + BOOL PreTranslateMessage(MSG *pMsg) override; void OnOK() override; void OnCancel() override { DestroyWindow(); } + void UpdateFileList(CString filter = {}); size_t GetItemIndex(int index) const { return static_cast<size_t>(m_list.GetItemData(index) & 0x00FF'FFFF); } int GetItemGroup(int index) const { return static_cast<int>(m_list.GetItemData(index) >> 24); } @@ -42,18 +44,21 @@ afx_msg void OnOpen(); afx_msg void OnRemoveMRUItem(); afx_msg void OnRemoveAllMRUItems(); + afx_msg void OnUpdateFilter(); afx_msg void OnOpenFile(NMHDR *, LRESULT *); afx_msg void OnRightClickFile(NMHDR *, LRESULT *); DECLARE_MESSAGE_MAP() CListCtrlEx m_list; + CEdit m_find; AccessibleButton m_newButton, m_openButton, m_closeButton; CFont m_buttonFont; CBitmap m_bmpNew, m_bmpOpen; std::array<std::vector<mpt::PathString>, 3> m_paths; CSize m_prevSize; int m_prevDPI = 96; + bool m_groupsEnabled = false; }; OPENMPT_NAMESPACE_END Modified: trunk/OpenMPT/mptrack/View_tre.cpp ============================================================================== --- trunk/OpenMPT/mptrack/View_tre.cpp Fri Nov 22 08:34:38 2024 (r22261) +++ trunk/OpenMPT/mptrack/View_tre.cpp Fri Nov 22 23:55:56 2024 (r22262) @@ -179,8 +179,8 @@ #if MPT_WINNT_AT_LEAST(MPT_WIN_7) // Wine does not support natural sorting with SORT_DIGITSASNUMBERS, fall back to normal sorting - if(!::CompareString(LOCALE_USER_DEFAULT, m_stringCompareFlags, _T(""), -1, _T(""), -1)) - m_stringCompareFlags &= ~SORT_DIGITSASNUMBERS; + if(::CompareString(LOCALE_USER_DEFAULT, m_stringCompareFlags | SORT_DIGITSASNUMBERS, _T(""), -1, _T(""), -1) == CSTR_EQUAL) + m_stringCompareFlags |= SORT_DIGITSASNUMBERS; #endif } Modified: trunk/OpenMPT/mptrack/View_tre.h ============================================================================== --- trunk/OpenMPT/mptrack/View_tre.h Fri Nov 22 08:34:38 2024 (r22261) +++ trunk/OpenMPT/mptrack/View_tre.h Fri Nov 22 23:55:56 2024 (r22262) @@ -182,11 +182,7 @@ std::unique_ptr<CDLSBank> m_cachedBank; mpt::PathString m_cachedBankName; -#if MPT_WINNT_AT_LEAST(MPT_WIN_7) - DWORD m_stringCompareFlags = NORM_IGNORECASE | NORM_IGNOREWIDTH | SORT_DIGITSASNUMBERS; -#else DWORD m_stringCompareFlags = NORM_IGNORECASE | NORM_IGNOREWIDTH; -#endif // Instrument library mpt::PathString m_InstrLibPath; // Current path to be explored Modified: trunk/OpenMPT/mptrack/mptrack.rc ============================================================================== --- trunk/OpenMPT/mptrack/mptrack.rc Fri Nov 22 08:34:38 2024 (r22261) +++ trunk/OpenMPT/mptrack/mptrack.rc Fri Nov 22 23:55:56 2024 (r22262) @@ -2311,7 +2311,9 @@ BEGIN PUSHBUTTON " &New Module",IDC_BUTTON1,6,6,90,30 PUSHBUTTON " &Open Module",IDC_BUTTON2,108,6,90,30 - CONTROL "",IDC_LIST1,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP,6,48,315,126 + LTEXT "&Find:",IDC_STATIC,6,45,30,8 + EDITTEXT IDC_EDIT1,36,42,285,14,ES_AUTOHSCROLL + CONTROL "",IDC_LIST1,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP,6,60,315,114 PUSHBUTTON "r",IDCANCEL,308,6,13,12,BS_VCENTER END @@ -2747,6 +2749,8 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 100, 0, 0, 0, 100, 100, 100, 0, 0, 0 END |
From: <sv...@op...> - 2024-11-22 07:34:50
|
Author: manx Date: Fri Nov 22 08:34:38 2024 New Revision: 22261 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22261 Log: Merged revision(s) 22236 from trunk/OpenMPT: [Imp] build: CI: GitHub: macOS: Add XCode 16.2. ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/.github/workflows/macOS-Autotools.yml branches/OpenMPT-1.31/.github/workflows/macOS-Makefile.yml Modified: branches/OpenMPT-1.31/.github/workflows/macOS-Autotools.yml ============================================================================== --- branches/OpenMPT-1.31/.github/workflows/macOS-Autotools.yml Thu Nov 21 23:52:10 2024 (r22260) +++ branches/OpenMPT-1.31/.github/workflows/macOS-Autotools.yml Fri Nov 22 08:34:38 2024 (r22261) @@ -10,6 +10,7 @@ fail-fast: false matrix: include: + - { host: macos-15, compiler: '16.2' } - { host: macos-15, compiler: '16.1' } - { host: macos-15, compiler: '16.0' } - { host: macos-14, compiler: '15.4' } Modified: branches/OpenMPT-1.31/.github/workflows/macOS-Makefile.yml ============================================================================== --- branches/OpenMPT-1.31/.github/workflows/macOS-Makefile.yml Thu Nov 21 23:52:10 2024 (r22260) +++ branches/OpenMPT-1.31/.github/workflows/macOS-Makefile.yml Fri Nov 22 08:34:38 2024 (r22261) @@ -11,6 +11,28 @@ fail-fast: false matrix: include: + - { host: macos-15, compiler: '16.2', arch: '' , target: '' , deps: sys , check: true , ancient: false } + - { host: macos-15, compiler: '16.2', arch: arm64 , target: '' , deps: local, check: true , ancient: false } + - { host: macos-15, compiler: '16.2', arch: x86_64, target: '' , deps: local, check: true , ancient: false } + - { host: macos-15, compiler: '16.2', arch: arm64 , target: '' , deps: small, check: true , ancient: false } + - { host: macos-15, compiler: '16.2', arch: x86_64, target: '' , deps: small, check: true , ancient: false } + - { host: macos-15, compiler: '16.2', arch: arm64 , target: '15.2' , deps: local, check: true , ancient: false } + - { host: macos-15, compiler: '16.2', arch: x86_64, target: '15.2' , deps: local, check: true , ancient: false } + - { host: macos-15, compiler: '16.2', arch: arm64 , target: '15.1' , deps: local, check: true , ancient: false } + - { host: macos-15, compiler: '16.2', arch: x86_64, target: '15.1' , deps: local, check: true , ancient: false } + - { host: macos-15, compiler: '16.2', arch: arm64 , target: '15' , deps: local, check: true , ancient: false } + - { host: macos-15, compiler: '16.2', arch: x86_64, target: '15' , deps: local, check: true , ancient: false } + - { host: macos-15, compiler: '16.2', arch: arm64 , target: '14' , deps: local, check: true , ancient: false } + - { host: macos-15, compiler: '16.2', arch: x86_64, target: '14' , deps: local, check: true , ancient: false } + - { host: macos-15, compiler: '16.2', arch: arm64 , target: '13' , deps: local, check: true , ancient: false } + - { host: macos-15, compiler: '16.2', arch: x86_64, target: '13' , deps: local, check: true , ancient: false } + - { host: macos-15, compiler: '16.2', arch: arm64 , target: '12' , deps: local, check: true , ancient: false } + - { host: macos-15, compiler: '16.2', arch: x86_64, target: '12' , deps: local, check: true , ancient: false } + - { host: macos-15, compiler: '16.2', arch: arm64 , target: '11' , deps: local, check: true , ancient: false } + - { host: macos-15, compiler: '16.2', arch: x86_64, target: '11' , deps: local, check: true , ancient: false } + - { host: macos-15, compiler: '16.2', arch: x86_64, target: '10.15', deps: local, check: true , ancient: false } + - { host: macos-15, compiler: '16.2', arch: x86_64, target: '10.14', deps: local, check: true , ancient: false } + - { host: macos-15, compiler: '16.2', arch: x86_64, target: '10.13', deps: local, check: true , ancient: false } - { host: macos-15, compiler: '16.1', arch: '' , target: '' , deps: sys , check: true , ancient: false } - { host: macos-15, compiler: '16.1', arch: arm64 , target: '' , deps: local, check: true , ancient: false } - { host: macos-15, compiler: '16.1', arch: x86_64, target: '' , deps: local, check: true , ancient: false } |
From: <sv...@op...> - 2024-11-21 22:52:23
|
Author: sagamusix Date: Thu Nov 21 23:52:10 2024 New Revision: 22260 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22260 Log: [Ref] Don't include WindowMessages.h in headers. Modified: trunk/OpenMPT/mptrack/AbstractVstEditor.cpp trunk/OpenMPT/mptrack/Childfrm.cpp trunk/OpenMPT/mptrack/Childfrm.h trunk/OpenMPT/mptrack/Ctrl_com.cpp trunk/OpenMPT/mptrack/Ctrl_gen.cpp trunk/OpenMPT/mptrack/Ctrl_ins.cpp trunk/OpenMPT/mptrack/Ctrl_pat.cpp trunk/OpenMPT/mptrack/Ctrl_smp.cpp trunk/OpenMPT/mptrack/Globals.cpp trunk/OpenMPT/mptrack/Globals.h trunk/OpenMPT/mptrack/View_gen.cpp trunk/OpenMPT/mptrack/View_gen.h trunk/OpenMPT/mptrack/View_pat.cpp trunk/OpenMPT/mptrack/View_pat.h Modified: trunk/OpenMPT/mptrack/AbstractVstEditor.cpp ============================================================================== --- trunk/OpenMPT/mptrack/AbstractVstEditor.cpp Thu Nov 21 23:38:25 2024 (r22259) +++ trunk/OpenMPT/mptrack/AbstractVstEditor.cpp Thu Nov 21 23:52:10 2024 (r22260) @@ -21,6 +21,7 @@ #include "resource.h" #include "VstPresets.h" #include "Vstplug.h" +#include "WindowMessages.h" #include "../common/FileReader.h" #include "../common/mptStringBuffer.h" #include "../soundlib/Sndfile.h" Modified: trunk/OpenMPT/mptrack/Childfrm.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Childfrm.cpp Thu Nov 21 23:38:25 2024 (r22259) +++ trunk/OpenMPT/mptrack/Childfrm.cpp Thu Nov 21 23:52:10 2024 (r22260) @@ -25,6 +25,7 @@ #include "View_ins.h" #include "View_pat.h" #include "View_smp.h" +#include "WindowMessages.h" #include "../common/FileReader.h" #include "mpt/io/io.hpp" #include "mpt/io/io_stdstream.hpp" @@ -338,6 +339,9 @@ } +LRESULT CChildFrame::ActivateView(UINT nId, LPARAM lParam) { return ::SendMessage(m_hWndCtrl, WM_MOD_ACTIVATEVIEW, nId, lParam); } + + LRESULT CChildFrame::OnInstrumentSelected(WPARAM wParam, LPARAM lParam) { CView *pView = GetActiveView(); Modified: trunk/OpenMPT/mptrack/Childfrm.h ============================================================================== --- trunk/OpenMPT/mptrack/Childfrm.h Thu Nov 21 23:38:25 2024 (r22259) +++ trunk/OpenMPT/mptrack/Childfrm.h Thu Nov 21 23:52:10 2024 (r22260) @@ -13,7 +13,6 @@ #include "openmpt/all/BuildSettings.hpp" #include "PatternCursor.h" -#include "WindowMessages.h" #include "../common/FileReaderFwd.h" #include "../soundlib/plugins/PluginStructs.h" @@ -120,7 +119,7 @@ const char *GetCurrentViewClassName() const; LRESULT SendCtrlMessage(UINT uMsg, LPARAM lParam = 0) const; LRESULT SendViewMessage(UINT uMsg, LPARAM lParam = 0) const; - LRESULT ActivateView(UINT nId, LPARAM lParam) { return ::SendMessage(m_hWndCtrl, WM_MOD_ACTIVATEVIEW, nId, lParam); } + LRESULT ActivateView(UINT nId, LPARAM lParam); HWND GetHwndCtrl() const { return m_hWndCtrl; } HWND GetHwndView() const { return m_hWndView; } GeneralViewState &GetGeneralViewState() { return m_ViewGeneral; } Modified: trunk/OpenMPT/mptrack/Ctrl_com.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Ctrl_com.cpp Thu Nov 21 23:38:25 2024 (r22259) +++ trunk/OpenMPT/mptrack/Ctrl_com.cpp Thu Nov 21 23:52:10 2024 (r22260) @@ -87,7 +87,7 @@ UpdateView(CommentHint().ModType()); m_EditComments.SetFocus(); m_EditComments.FmtLines(FALSE); - m_bInitialized = TRUE; + m_initialized = true; return FALSE; } @@ -333,7 +333,8 @@ { if(m_nLockCount) return; - if ((!m_bInitialized) || (!m_EditComments.m_hWnd) || (!m_EditComments.GetModify())) return; + if(!m_initialized || !m_EditComments.m_hWnd || !m_EditComments.GetModify()) + return; CString text; m_EditComments.GetWindowText(text); m_EditComments.SetModify(FALSE); Modified: trunk/OpenMPT/mptrack/Ctrl_gen.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Ctrl_gen.cpp Thu Nov 21 23:38:25 2024 (r22259) +++ trunk/OpenMPT/mptrack/Ctrl_gen.cpp Thu Nov 21 23:52:10 2024 (r22260) @@ -122,7 +122,7 @@ m_editsLocked = false; UpdateView(GeneralHint().ModType()); OnActivatePage(0); - m_bInitialized = TRUE; + m_initialized = true; return FALSE; } @@ -403,7 +403,7 @@ { CModControlDlg::OnVScroll(code, pos, pscroll); - if (m_bInitialized) + if (m_initialized) { CSliderCtrl* pSlider = (CSliderCtrl*) pscroll; @@ -521,7 +521,7 @@ void CCtrlGeneral::OnTempoChanged() { - if (m_bInitialized && m_EditTempo.GetWindowTextLength() > 0 && !IsLocked()) + if (m_initialized && m_EditTempo.GetWindowTextLength() > 0 && !IsLocked()) { TEMPO tempo = m_EditTempo.GetTempoValue(); Limit(tempo, m_tempoMin, m_tempoMax); @@ -543,7 +543,7 @@ void CCtrlGeneral::OnSpeedChanged() { TCHAR s[16]; - if(m_bInitialized) + if(m_initialized) { m_EditSpeed.GetWindowText(s, mpt::saturate_cast<int>(std::size(s))); if (s[0]) @@ -570,7 +570,7 @@ void CCtrlGeneral::OnVSTiVolChanged() { TCHAR s[16]; - if (m_bInitialized) + if (m_initialized) { m_EditVSTiVol.GetWindowText(s, mpt::saturate_cast<int>(std::size(s))); if (s[0]) @@ -594,7 +594,7 @@ void CCtrlGeneral::OnSamplePAChanged() { TCHAR s[16]; - if(m_bInitialized) + if(m_initialized) { m_EditSamplePA.GetWindowText(s, mpt::saturate_cast<int>(std::size(s))); if (s[0]) @@ -617,7 +617,7 @@ void CCtrlGeneral::OnGlobalVolChanged() { TCHAR s[16]; - if(m_bInitialized) + if(m_initialized) { m_EditGlobalVol.GetWindowText(s, mpt::saturate_cast<int>(std::size(s))); if (s[0]) @@ -642,7 +642,7 @@ void CCtrlGeneral::OnRestartPosChanged() { - if(!m_bInitialized) + if(!m_initialized) return; TCHAR s[32]; m_EditRestartPos.GetWindowText(s, mpt::saturate_cast<int>(std::size(s))); @@ -666,7 +666,7 @@ void CCtrlGeneral::OnRestartPosDone() { - if(m_bInitialized) + if(m_initialized) SetDlgItemInt(IDC_EDIT_RESTARTPOS, m_sndFile.Order().GetRestartPos()); } Modified: trunk/OpenMPT/mptrack/Ctrl_ins.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Ctrl_ins.cpp Thu Nov 21 23:38:25 2024 (r22259) +++ trunk/OpenMPT/mptrack/Ctrl_ins.cpp Thu Nov 21 23:52:10 2024 (r22260) @@ -1031,7 +1031,7 @@ BOOL CCtrlInstruments::OnInitDialog() { CModControlDlg::OnInitDialog(); - m_bInitialized = FALSE; + m_initialized = false; SetRedraw(FALSE); m_ToolBar.SetExtendedStyle(m_ToolBar.GetExtendedStyle() | TBSTYLE_EX_DRAWDDARROWS); @@ -1189,7 +1189,7 @@ if (m_sndFile.m_nInstruments < 1) return FALSE; if ((nIns < 1) || (nIns > m_sndFile.m_nInstruments)) return FALSE; LockControls(); - if ((m_nInstrument != nIns) || (!m_bInitialized)) + if (m_nInstrument != nIns || !m_initialized) { m_nInstrument = static_cast<INSTRUMENTINDEX>(nIns); m_NoteMap.SetCurrentInstrument(m_nInstrument); @@ -1242,7 +1242,8 @@ SetCurrentInstrument(static_cast<INSTRUMENTINDEX>((lParam > 0) ? lParam : m_nInstrument)); // Initial Update - if (!m_bInitialized) UpdateView(InstrumentHint(m_nInstrument).Info().Envelope().ModType(), NULL); + if(!m_initialized) + UpdateView(InstrumentHint(m_nInstrument).Info().Envelope().ModType(), NULL); PostViewMessage(VIEWMSG_LOADSTATE, (LPARAM)&instrumentState); SwitchToView(); @@ -1341,7 +1342,7 @@ const InstrumentHint instrHint = hint.ToType<InstrumentHint>(); FlagSet<HintType> hintType = instrHint.GetType(); - if(!m_bInitialized) + if(!m_initialized) hintType.set(HINT_MODTYPE); if(!hintType[HINT_MODTYPE | HINT_INSTRUMENT | HINT_ENVELOPE | HINT_INSNAMES]) return; @@ -1586,10 +1587,10 @@ m_ComboTuning.Invalidate(FALSE); } - if (!m_bInitialized) + if(!m_initialized) { // First update - m_bInitialized = TRUE; + m_initialized = true; UnlockControls(); } Modified: trunk/OpenMPT/mptrack/Ctrl_pat.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Ctrl_pat.cpp Thu Nov 21 23:38:25 2024 (r22259) +++ trunk/OpenMPT/mptrack/Ctrl_pat.cpp Thu Nov 21 23:52:10 2024 (r22260) @@ -191,7 +191,7 @@ UpdateView(PatternHint().Names().ModType(), NULL); RecalcLayout(); - m_bInitialized = TRUE; + m_initialized = true; UnlockControls(); SetRedraw(TRUE); Modified: trunk/OpenMPT/mptrack/Ctrl_smp.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Ctrl_smp.cpp Thu Nov 21 23:38:25 2024 (r22259) +++ trunk/OpenMPT/mptrack/Ctrl_smp.cpp Thu Nov 21 23:52:10 2024 (r22260) @@ -208,7 +208,7 @@ BOOL CCtrlSamples::OnInitDialog() { CModControlDlg::OnInitDialog(); - m_bInitialized = FALSE; + m_initialized = false; SetRedraw(FALSE); // Zoom Selection @@ -405,8 +405,10 @@ SetCurrentSample((lParam > 0) ? ((SAMPLEINDEX)lParam) : m_nSample); // Initial Update - if (!m_bInitialized) UpdateView(SampleHint(m_nSample).Info().ModType(), NULL); - if (m_hWndView) PostViewMessage(VIEWMSG_LOADSTATE, (LPARAM)&sampleState); + if(!m_initialized) + UpdateView(SampleHint(m_nSample).Info().ModType(), nullptr); + if(m_hWndView) + PostViewMessage(VIEWMSG_LOADSTATE, (LPARAM)&sampleState); SwitchToView(); // Combo boxes randomly disappear without this... why? @@ -683,7 +685,8 @@ const SampleHint sampleHint = hint.ToType<SampleHint>(); FlagSet<HintType> hintType = sampleHint.GetType(); - if (!m_bInitialized) hintType.set(HINT_MODTYPE); + if(!m_initialized) + hintType.set(HINT_MODTYPE); if(!hintType[HINT_SMPNAMES | HINT_SAMPLEINFO | HINT_MODTYPE]) return; const SAMPLEINDEX updateSmp = sampleHint.GetSample(); @@ -914,10 +917,10 @@ GetDlgItem(IDC_CHECK2)->EnableWindow((m_sndFile.SampleHasPath(m_nSample) && m_sndFile.GetType() == MOD_TYPE_MPT) ? TRUE : FALSE); } - if (!m_bInitialized) + if(!m_initialized) { // First update - m_bInitialized = TRUE; + m_initialized = true; UnlockControls(); } Modified: trunk/OpenMPT/mptrack/Globals.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Globals.cpp Thu Nov 21 23:38:25 2024 (r22259) +++ trunk/OpenMPT/mptrack/Globals.cpp Thu Nov 21 23:52:10 2024 (r22260) @@ -25,6 +25,7 @@ #include "Mptrack.h" #include "resource.h" #include "TrackerSettings.h" +#include "WindowMessages.h" #include "../soundlib/mod_specifications.h" #include <afxpriv.h> @@ -152,6 +153,9 @@ return FALSE; } +LRESULT CModControlDlg::SwitchToView() const { return SendViewMessage(VIEWMSG_SETACTIVE); } +void CModControlDlg::UnlockControls() { PostMessage(WM_MOD_UNLOCKCONTROLS); } + BOOL CModControlDlg::OnToolTipText(UINT /*nID*/, NMHDR *pNMHDR, LRESULT *pResult) { Modified: trunk/OpenMPT/mptrack/Globals.h ============================================================================== --- trunk/OpenMPT/mptrack/Globals.h Thu Nov 21 23:38:25 2024 (r22259) +++ trunk/OpenMPT/mptrack/Globals.h Thu Nov 21 23:52:10 2024 (r22260) @@ -14,7 +14,6 @@ #include "DialogBase.h" #include "Settings.h" #include "UpdateHints.h" -#include "WindowMessages.h" OPENMPT_NAMESPACE_BEGIN @@ -45,7 +44,7 @@ HWND m_hWndView = nullptr; HWND m_lastFocusItem = nullptr; LONG m_nLockCount = 0; - BOOL m_bInitialized = FALSE; + bool m_initialized = false; public: CModControlDlg(CModControlView &parent, CModDoc &document); @@ -56,9 +55,9 @@ HWND GetViewWnd() const { return m_hWndView; } LRESULT SendViewMessage(UINT uMsg, LPARAM lParam = 0) const; BOOL PostViewMessage(UINT uMsg, LPARAM lParam = 0) const; - LRESULT SwitchToView() const { return SendViewMessage(VIEWMSG_SETACTIVE); } + LRESULT SwitchToView() const; void LockControls() { m_nLockCount++; } - void UnlockControls() { PostMessage(WM_MOD_UNLOCKCONTROLS); } + void UnlockControls(); bool IsLocked() const { return (m_nLockCount > 0); } virtual Setting<LONG> &GetSplitPosRef() = 0; Modified: trunk/OpenMPT/mptrack/View_gen.cpp ============================================================================== --- trunk/OpenMPT/mptrack/View_gen.cpp Thu Nov 21 23:38:25 2024 (r22259) +++ trunk/OpenMPT/mptrack/View_gen.cpp Thu Nov 21 23:52:10 2024 (r22260) @@ -23,6 +23,7 @@ #include "Reporting.h" #include "resource.h" #include "SelectPluginDialog.h" +#include "WindowMessages.h" #include "../common/mptStringBuffer.h" #include "../soundlib/mod_specifications.h" #include "../soundlib/plugins/PlugInterface.h" @@ -297,6 +298,9 @@ } +void CViewGlobals::UnlockControls() { PostMessage(WM_MOD_UNLOCKCONTROLS); } + + int CViewGlobals::GetDlgItemIntEx(UINT nID) { CString s; Modified: trunk/OpenMPT/mptrack/View_gen.h ============================================================================== --- trunk/OpenMPT/mptrack/View_gen.h Thu Nov 21 23:38:25 2024 (r22259) +++ trunk/OpenMPT/mptrack/View_gen.h Thu Nov 21 23:52:10 2024 (r22260) @@ -16,7 +16,6 @@ #include "ColorPickerButton.h" #include "PluginComboBox.h" #include "UpdateHints.h" -#include "WindowMessages.h" #include "../soundlib/plugins/PluginStructs.h" OPENMPT_NAMESPACE_BEGIN @@ -64,7 +63,7 @@ CModDoc* GetDocument() const; void RecalcLayout(); void LockControls() { m_nLockCount++; } - void UnlockControls() { PostMessage(WM_MOD_UNLOCKCONTROLS); } + void UnlockControls(); bool IsLocked() const noexcept { return (m_nLockCount > 0); } int GetDlgItemIntEx(UINT nID); void PopulateChannelPlugins(UpdateHint hint, const CObject *pObj = nullptr); Modified: trunk/OpenMPT/mptrack/View_pat.cpp ============================================================================== --- trunk/OpenMPT/mptrack/View_pat.cpp Thu Nov 21 23:38:25 2024 (r22259) +++ trunk/OpenMPT/mptrack/View_pat.cpp Thu Nov 21 23:52:10 2024 (r22260) @@ -28,7 +28,6 @@ #include "resource.h" #include "SampleEditorDialogs.h" // For amplification dialog (which is re-used from sample editor) #include "WindowMessages.h" -#include "WindowMessages.h" #include "../common/misc_util.h" #include "../soundlib/MIDIEvents.h" #include "../soundlib/mod_specifications.h" @@ -3305,6 +3304,24 @@ } +void CViewPattern::OnPrevInstrument() +{ + PostCtrlMessage(CTRLMSG_PAT_PREVINSTRUMENT); +} + + +void CViewPattern::OnNextInstrument() +{ + PostCtrlMessage(CTRLMSG_PAT_NEXTINSTRUMENT); +} + + +void CViewPattern::OnPatternRecord() +{ + PostCtrlMessage(CTRLMSG_SETRECORD, -1); +} + + void CViewPattern::GotoPreviousOrder(std::optional<OrderTransitionMode> transitionMode) { if(CSoundFile *sndFile = GetSoundFile(); sndFile && transitionMode && IsLiveRecord()) Modified: trunk/OpenMPT/mptrack/View_pat.h ============================================================================== --- trunk/OpenMPT/mptrack/View_pat.h Thu Nov 21 23:38:25 2024 (r22259) +++ trunk/OpenMPT/mptrack/View_pat.h Thu Nov 21 23:52:10 2024 (r22260) @@ -420,9 +420,9 @@ afx_msg void OnSplitPattern(); afx_msg void OnPatternStep(); afx_msg void OnSwitchToOrderList(); - afx_msg void OnPrevInstrument() { PostCtrlMessage(CTRLMSG_PAT_PREVINSTRUMENT); } - afx_msg void OnNextInstrument() { PostCtrlMessage(CTRLMSG_PAT_NEXTINSTRUMENT); } - afx_msg void OnPatternRecord() { PostCtrlMessage(CTRLMSG_SETRECORD, -1); } + afx_msg void OnPrevInstrument(); + afx_msg void OnNextInstrument(); + afx_msg void OnPatternRecord(); afx_msg void OnInterpolateVolume() { Interpolate(PatternCursor::volumeColumn); } afx_msg void OnInterpolateEffect() { Interpolate(PatternCursor::effectColumn); } afx_msg void OnInterpolateNote() { Interpolate(PatternCursor::noteColumn); } |
Author: sagamusix Date: Thu Nov 21 23:38:25 2024 New Revision: 22259 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22259 Log: [New] Add a quick start "project assistant" view that is shown on the MDI child area whenever there is no module loaded (https://bugs.openmpt.org/view.php?id=863). [Imp] Add alternative accessible captions to some buttons with unpronouncable texts such as "<<" or "...". Added: trunk/OpenMPT/mptrack/AccessibleButton.h (contents, props changed) trunk/OpenMPT/mptrack/QuickStartDialog.cpp (contents, props changed) trunk/OpenMPT/mptrack/QuickStartDialog.h (contents, props changed) trunk/OpenMPT/mptrack/res/New32.png (contents, props changed) trunk/OpenMPT/mptrack/res/Open32.png (contents, props changed) Modified: trunk/OpenMPT/build/vs2017winxp/OpenMPT-ANSI.vcxproj trunk/OpenMPT/build/vs2017winxp/OpenMPT-ANSI.vcxproj.filters trunk/OpenMPT/build/vs2017winxp/OpenMPT-UTF8.vcxproj trunk/OpenMPT/build/vs2017winxp/OpenMPT-UTF8.vcxproj.filters trunk/OpenMPT/build/vs2017winxp/OpenMPT.vcxproj trunk/OpenMPT/build/vs2017winxp/OpenMPT.vcxproj.filters trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-ANSI.vcxproj trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-ANSI.vcxproj.filters trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-UTF8.vcxproj trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-UTF8.vcxproj.filters trunk/OpenMPT/build/vs2017winxpansi/OpenMPT.vcxproj trunk/OpenMPT/build/vs2017winxpansi/OpenMPT.vcxproj.filters trunk/OpenMPT/build/vs2019win7/OpenMPT-ANSI.vcxproj trunk/OpenMPT/build/vs2019win7/OpenMPT-ANSI.vcxproj.filters trunk/OpenMPT/build/vs2019win7/OpenMPT-UTF8.vcxproj trunk/OpenMPT/build/vs2019win7/OpenMPT-UTF8.vcxproj.filters trunk/OpenMPT/build/vs2019win7/OpenMPT.vcxproj trunk/OpenMPT/build/vs2019win7/OpenMPT.vcxproj.filters trunk/OpenMPT/build/vs2022win10/OpenMPT-ANSI.vcxproj trunk/OpenMPT/build/vs2022win10/OpenMPT-ANSI.vcxproj.filters trunk/OpenMPT/build/vs2022win10/OpenMPT-UTF8.vcxproj trunk/OpenMPT/build/vs2022win10/OpenMPT-UTF8.vcxproj.filters trunk/OpenMPT/build/vs2022win10/OpenMPT.vcxproj trunk/OpenMPT/build/vs2022win10/OpenMPT.vcxproj.filters trunk/OpenMPT/build/vs2022win10clang/OpenMPT-ANSI.vcxproj trunk/OpenMPT/build/vs2022win10clang/OpenMPT-ANSI.vcxproj.filters trunk/OpenMPT/build/vs2022win10clang/OpenMPT-UTF8.vcxproj trunk/OpenMPT/build/vs2022win10clang/OpenMPT-UTF8.vcxproj.filters trunk/OpenMPT/build/vs2022win10clang/OpenMPT.vcxproj trunk/OpenMPT/build/vs2022win10clang/OpenMPT.vcxproj.filters trunk/OpenMPT/build/vs2022win7/OpenMPT-ANSI.vcxproj trunk/OpenMPT/build/vs2022win7/OpenMPT-ANSI.vcxproj.filters trunk/OpenMPT/build/vs2022win7/OpenMPT-UTF8.vcxproj trunk/OpenMPT/build/vs2022win7/OpenMPT-UTF8.vcxproj.filters trunk/OpenMPT/build/vs2022win7/OpenMPT.vcxproj trunk/OpenMPT/build/vs2022win7/OpenMPT.vcxproj.filters trunk/OpenMPT/build/vs2022win8/OpenMPT-ANSI.vcxproj trunk/OpenMPT/build/vs2022win8/OpenMPT-ANSI.vcxproj.filters trunk/OpenMPT/build/vs2022win8/OpenMPT-UTF8.vcxproj trunk/OpenMPT/build/vs2022win8/OpenMPT-UTF8.vcxproj.filters trunk/OpenMPT/build/vs2022win8/OpenMPT.vcxproj trunk/OpenMPT/build/vs2022win8/OpenMPT.vcxproj.filters trunk/OpenMPT/build/vs2022win81/OpenMPT-ANSI.vcxproj trunk/OpenMPT/build/vs2022win81/OpenMPT-ANSI.vcxproj.filters trunk/OpenMPT/build/vs2022win81/OpenMPT-UTF8.vcxproj trunk/OpenMPT/build/vs2022win81/OpenMPT-UTF8.vcxproj.filters trunk/OpenMPT/build/vs2022win81/OpenMPT.vcxproj trunk/OpenMPT/build/vs2022win81/OpenMPT.vcxproj.filters trunk/OpenMPT/mptrack/Ctrl_pat.cpp trunk/OpenMPT/mptrack/Ctrl_pat.h trunk/OpenMPT/mptrack/DialogBase.h trunk/OpenMPT/mptrack/GeneralConfigDlg.cpp trunk/OpenMPT/mptrack/GeneralConfigDlg.h trunk/OpenMPT/mptrack/ImageLists.h trunk/OpenMPT/mptrack/MainFrm.cpp trunk/OpenMPT/mptrack/Mainfrm.h trunk/OpenMPT/mptrack/ModDocTemplate.cpp trunk/OpenMPT/mptrack/Moddoc.h trunk/OpenMPT/mptrack/Mptrack.cpp trunk/OpenMPT/mptrack/Mptrack.h trunk/OpenMPT/mptrack/PathConfigDlg.cpp trunk/OpenMPT/mptrack/PathConfigDlg.h trunk/OpenMPT/mptrack/View_gen.cpp trunk/OpenMPT/mptrack/View_gen.h trunk/OpenMPT/mptrack/mptrack.rc trunk/OpenMPT/mptrack/res/originals/pattern_toolbar.pfi trunk/OpenMPT/mptrack/res/pattern_toolbar.png trunk/OpenMPT/mptrack/resource.h Modified: trunk/OpenMPT/build/vs2017winxp/OpenMPT-ANSI.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2017winxp/OpenMPT-ANSI.vcxproj Thu Nov 21 20:57:20 2024 (r22258) +++ trunk/OpenMPT/build/vs2017winxp/OpenMPT-ANSI.vcxproj Thu Nov 21 23:38:25 2024 (r22259) @@ -794,6 +794,7 @@ <ClInclude Include="..\..\misc\mptWine.h" /> <ClInclude Include="..\..\mptrack\AboutDialog.h" /> <ClInclude Include="..\..\mptrack\AbstractVstEditor.h" /> + <ClInclude Include="..\..\mptrack\AccessibleButton.h" /> <ClInclude Include="..\..\mptrack\AdvancedConfigDlg.h" /> <ClInclude Include="..\..\mptrack\AutoSaver.h" /> <ClInclude Include="..\..\mptrack\Autotune.h" /> @@ -861,6 +862,7 @@ <ClInclude Include="..\..\mptrack\PlugNotFoundDlg.h" /> <ClInclude Include="..\..\mptrack\PluginComboBox.h" /> <ClInclude Include="..\..\mptrack\ProgressDialog.h" /> + <ClInclude Include="..\..\mptrack\QuickStartDialog.h" /> <ClInclude Include="..\..\mptrack\Reporting.h" /> <ClInclude Include="..\..\mptrack\ResizableDialog.h" /> <ClInclude Include="..\..\mptrack\SampleConfigDlg.h" /> @@ -1307,6 +1309,7 @@ <ClCompile Include="..\..\mptrack\PlugNotFoundDlg.cpp" /> <ClCompile Include="..\..\mptrack\PluginComboBox.cpp" /> <ClCompile Include="..\..\mptrack\ProgressDialog.cpp" /> + <ClCompile Include="..\..\mptrack\QuickStartDialog.cpp" /> <ClCompile Include="..\..\mptrack\Reporting.cpp" /> <ClCompile Include="..\..\mptrack\ResizableDialog.cpp" /> <ClCompile Include="..\..\mptrack\SampleConfigDlg.cpp" /> @@ -1536,6 +1539,8 @@ <ItemGroup> <Image Include="..\..\mptrack\res\About.png" /> <Image Include="..\..\mptrack\res\COLORS.BMP" /> + <Image Include="..\..\mptrack\res\New32.png" /> + <Image Include="..\..\mptrack\res\Open32.png" /> <Image Include="..\..\mptrack\res\Splash.png" /> <Image Include="..\..\mptrack\res\envelope_toolbar.png" /> <Image Include="..\..\mptrack\res\icons.png" /> Modified: trunk/OpenMPT/build/vs2017winxp/OpenMPT-ANSI.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2017winxp/OpenMPT-ANSI.vcxproj.filters Thu Nov 21 20:57:20 2024 (r22258) +++ trunk/OpenMPT/build/vs2017winxp/OpenMPT-ANSI.vcxproj.filters Thu Nov 21 23:38:25 2024 (r22259) @@ -345,6 +345,9 @@ <ClInclude Include="..\..\mptrack\AbstractVstEditor.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\AccessibleButton.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\AdvancedConfigDlg.h"> <Filter>mptrack</Filter> </ClInclude> @@ -546,6 +549,9 @@ <ClInclude Include="..\..\mptrack\ProgressDialog.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\QuickStartDialog.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\Reporting.h"> <Filter>mptrack</Filter> </ClInclude> @@ -1880,6 +1886,9 @@ <ClCompile Include="..\..\mptrack\ProgressDialog.cpp"> <Filter>mptrack</Filter> </ClCompile> + <ClCompile Include="..\..\mptrack\QuickStartDialog.cpp"> + <Filter>mptrack</Filter> + </ClCompile> <ClCompile Include="..\..\mptrack\Reporting.cpp"> <Filter>mptrack</Filter> </ClCompile> @@ -2549,6 +2558,12 @@ <Image Include="..\..\mptrack\res\COLORS.BMP"> <Filter>mptrack\res</Filter> </Image> + <Image Include="..\..\mptrack\res\New32.png"> + <Filter>mptrack\res</Filter> + </Image> + <Image Include="..\..\mptrack\res\Open32.png"> + <Filter>mptrack\res</Filter> + </Image> <Image Include="..\..\mptrack\res\Splash.png"> <Filter>mptrack\res</Filter> </Image> Modified: trunk/OpenMPT/build/vs2017winxp/OpenMPT-UTF8.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2017winxp/OpenMPT-UTF8.vcxproj Thu Nov 21 20:57:20 2024 (r22258) +++ trunk/OpenMPT/build/vs2017winxp/OpenMPT-UTF8.vcxproj Thu Nov 21 23:38:25 2024 (r22259) @@ -794,6 +794,7 @@ <ClInclude Include="..\..\misc\mptWine.h" /> <ClInclude Include="..\..\mptrack\AboutDialog.h" /> <ClInclude Include="..\..\mptrack\AbstractVstEditor.h" /> + <ClInclude Include="..\..\mptrack\AccessibleButton.h" /> <ClInclude Include="..\..\mptrack\AdvancedConfigDlg.h" /> <ClInclude Include="..\..\mptrack\AutoSaver.h" /> <ClInclude Include="..\..\mptrack\Autotune.h" /> @@ -861,6 +862,7 @@ <ClInclude Include="..\..\mptrack\PlugNotFoundDlg.h" /> <ClInclude Include="..\..\mptrack\PluginComboBox.h" /> <ClInclude Include="..\..\mptrack\ProgressDialog.h" /> + <ClInclude Include="..\..\mptrack\QuickStartDialog.h" /> <ClInclude Include="..\..\mptrack\Reporting.h" /> <ClInclude Include="..\..\mptrack\ResizableDialog.h" /> <ClInclude Include="..\..\mptrack\SampleConfigDlg.h" /> @@ -1307,6 +1309,7 @@ <ClCompile Include="..\..\mptrack\PlugNotFoundDlg.cpp" /> <ClCompile Include="..\..\mptrack\PluginComboBox.cpp" /> <ClCompile Include="..\..\mptrack\ProgressDialog.cpp" /> + <ClCompile Include="..\..\mptrack\QuickStartDialog.cpp" /> <ClCompile Include="..\..\mptrack\Reporting.cpp" /> <ClCompile Include="..\..\mptrack\ResizableDialog.cpp" /> <ClCompile Include="..\..\mptrack\SampleConfigDlg.cpp" /> @@ -1536,6 +1539,8 @@ <ItemGroup> <Image Include="..\..\mptrack\res\About.png" /> <Image Include="..\..\mptrack\res\COLORS.BMP" /> + <Image Include="..\..\mptrack\res\New32.png" /> + <Image Include="..\..\mptrack\res\Open32.png" /> <Image Include="..\..\mptrack\res\Splash.png" /> <Image Include="..\..\mptrack\res\envelope_toolbar.png" /> <Image Include="..\..\mptrack\res\icons.png" /> Modified: trunk/OpenMPT/build/vs2017winxp/OpenMPT-UTF8.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2017winxp/OpenMPT-UTF8.vcxproj.filters Thu Nov 21 20:57:20 2024 (r22258) +++ trunk/OpenMPT/build/vs2017winxp/OpenMPT-UTF8.vcxproj.filters Thu Nov 21 23:38:25 2024 (r22259) @@ -345,6 +345,9 @@ <ClInclude Include="..\..\mptrack\AbstractVstEditor.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\AccessibleButton.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\AdvancedConfigDlg.h"> <Filter>mptrack</Filter> </ClInclude> @@ -546,6 +549,9 @@ <ClInclude Include="..\..\mptrack\ProgressDialog.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\QuickStartDialog.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\Reporting.h"> <Filter>mptrack</Filter> </ClInclude> @@ -1880,6 +1886,9 @@ <ClCompile Include="..\..\mptrack\ProgressDialog.cpp"> <Filter>mptrack</Filter> </ClCompile> + <ClCompile Include="..\..\mptrack\QuickStartDialog.cpp"> + <Filter>mptrack</Filter> + </ClCompile> <ClCompile Include="..\..\mptrack\Reporting.cpp"> <Filter>mptrack</Filter> </ClCompile> @@ -2549,6 +2558,12 @@ <Image Include="..\..\mptrack\res\COLORS.BMP"> <Filter>mptrack\res</Filter> </Image> + <Image Include="..\..\mptrack\res\New32.png"> + <Filter>mptrack\res</Filter> + </Image> + <Image Include="..\..\mptrack\res\Open32.png"> + <Filter>mptrack\res</Filter> + </Image> <Image Include="..\..\mptrack\res\Splash.png"> <Filter>mptrack\res</Filter> </Image> Modified: trunk/OpenMPT/build/vs2017winxp/OpenMPT.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2017winxp/OpenMPT.vcxproj Thu Nov 21 20:57:20 2024 (r22258) +++ trunk/OpenMPT/build/vs2017winxp/OpenMPT.vcxproj Thu Nov 21 23:38:25 2024 (r22259) @@ -794,6 +794,7 @@ <ClInclude Include="..\..\misc\mptWine.h" /> <ClInclude Include="..\..\mptrack\AboutDialog.h" /> <ClInclude Include="..\..\mptrack\AbstractVstEditor.h" /> + <ClInclude Include="..\..\mptrack\AccessibleButton.h" /> <ClInclude Include="..\..\mptrack\AdvancedConfigDlg.h" /> <ClInclude Include="..\..\mptrack\AutoSaver.h" /> <ClInclude Include="..\..\mptrack\Autotune.h" /> @@ -861,6 +862,7 @@ <ClInclude Include="..\..\mptrack\PlugNotFoundDlg.h" /> <ClInclude Include="..\..\mptrack\PluginComboBox.h" /> <ClInclude Include="..\..\mptrack\ProgressDialog.h" /> + <ClInclude Include="..\..\mptrack\QuickStartDialog.h" /> <ClInclude Include="..\..\mptrack\Reporting.h" /> <ClInclude Include="..\..\mptrack\ResizableDialog.h" /> <ClInclude Include="..\..\mptrack\SampleConfigDlg.h" /> @@ -1307,6 +1309,7 @@ <ClCompile Include="..\..\mptrack\PlugNotFoundDlg.cpp" /> <ClCompile Include="..\..\mptrack\PluginComboBox.cpp" /> <ClCompile Include="..\..\mptrack\ProgressDialog.cpp" /> + <ClCompile Include="..\..\mptrack\QuickStartDialog.cpp" /> <ClCompile Include="..\..\mptrack\Reporting.cpp" /> <ClCompile Include="..\..\mptrack\ResizableDialog.cpp" /> <ClCompile Include="..\..\mptrack\SampleConfigDlg.cpp" /> @@ -1536,6 +1539,8 @@ <ItemGroup> <Image Include="..\..\mptrack\res\About.png" /> <Image Include="..\..\mptrack\res\COLORS.BMP" /> + <Image Include="..\..\mptrack\res\New32.png" /> + <Image Include="..\..\mptrack\res\Open32.png" /> <Image Include="..\..\mptrack\res\Splash.png" /> <Image Include="..\..\mptrack\res\envelope_toolbar.png" /> <Image Include="..\..\mptrack\res\icons.png" /> Modified: trunk/OpenMPT/build/vs2017winxp/OpenMPT.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2017winxp/OpenMPT.vcxproj.filters Thu Nov 21 20:57:20 2024 (r22258) +++ trunk/OpenMPT/build/vs2017winxp/OpenMPT.vcxproj.filters Thu Nov 21 23:38:25 2024 (r22259) @@ -345,6 +345,9 @@ <ClInclude Include="..\..\mptrack\AbstractVstEditor.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\AccessibleButton.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\AdvancedConfigDlg.h"> <Filter>mptrack</Filter> </ClInclude> @@ -546,6 +549,9 @@ <ClInclude Include="..\..\mptrack\ProgressDialog.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\QuickStartDialog.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\Reporting.h"> <Filter>mptrack</Filter> </ClInclude> @@ -1880,6 +1886,9 @@ <ClCompile Include="..\..\mptrack\ProgressDialog.cpp"> <Filter>mptrack</Filter> </ClCompile> + <ClCompile Include="..\..\mptrack\QuickStartDialog.cpp"> + <Filter>mptrack</Filter> + </ClCompile> <ClCompile Include="..\..\mptrack\Reporting.cpp"> <Filter>mptrack</Filter> </ClCompile> @@ -2549,6 +2558,12 @@ <Image Include="..\..\mptrack\res\COLORS.BMP"> <Filter>mptrack\res</Filter> </Image> + <Image Include="..\..\mptrack\res\New32.png"> + <Filter>mptrack\res</Filter> + </Image> + <Image Include="..\..\mptrack\res\Open32.png"> + <Filter>mptrack\res</Filter> + </Image> <Image Include="..\..\mptrack\res\Splash.png"> <Filter>mptrack\res</Filter> </Image> Modified: trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-ANSI.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-ANSI.vcxproj Thu Nov 21 20:57:20 2024 (r22258) +++ trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-ANSI.vcxproj Thu Nov 21 23:38:25 2024 (r22259) @@ -794,6 +794,7 @@ <ClInclude Include="..\..\misc\mptWine.h" /> <ClInclude Include="..\..\mptrack\AboutDialog.h" /> <ClInclude Include="..\..\mptrack\AbstractVstEditor.h" /> + <ClInclude Include="..\..\mptrack\AccessibleButton.h" /> <ClInclude Include="..\..\mptrack\AdvancedConfigDlg.h" /> <ClInclude Include="..\..\mptrack\AutoSaver.h" /> <ClInclude Include="..\..\mptrack\Autotune.h" /> @@ -861,6 +862,7 @@ <ClInclude Include="..\..\mptrack\PlugNotFoundDlg.h" /> <ClInclude Include="..\..\mptrack\PluginComboBox.h" /> <ClInclude Include="..\..\mptrack\ProgressDialog.h" /> + <ClInclude Include="..\..\mptrack\QuickStartDialog.h" /> <ClInclude Include="..\..\mptrack\Reporting.h" /> <ClInclude Include="..\..\mptrack\ResizableDialog.h" /> <ClInclude Include="..\..\mptrack\SampleConfigDlg.h" /> @@ -1307,6 +1309,7 @@ <ClCompile Include="..\..\mptrack\PlugNotFoundDlg.cpp" /> <ClCompile Include="..\..\mptrack\PluginComboBox.cpp" /> <ClCompile Include="..\..\mptrack\ProgressDialog.cpp" /> + <ClCompile Include="..\..\mptrack\QuickStartDialog.cpp" /> <ClCompile Include="..\..\mptrack\Reporting.cpp" /> <ClCompile Include="..\..\mptrack\ResizableDialog.cpp" /> <ClCompile Include="..\..\mptrack\SampleConfigDlg.cpp" /> @@ -1536,6 +1539,8 @@ <ItemGroup> <Image Include="..\..\mptrack\res\About.png" /> <Image Include="..\..\mptrack\res\COLORS.BMP" /> + <Image Include="..\..\mptrack\res\New32.png" /> + <Image Include="..\..\mptrack\res\Open32.png" /> <Image Include="..\..\mptrack\res\Splash.png" /> <Image Include="..\..\mptrack\res\envelope_toolbar.png" /> <Image Include="..\..\mptrack\res\icons.png" /> Modified: trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-ANSI.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-ANSI.vcxproj.filters Thu Nov 21 20:57:20 2024 (r22258) +++ trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-ANSI.vcxproj.filters Thu Nov 21 23:38:25 2024 (r22259) @@ -345,6 +345,9 @@ <ClInclude Include="..\..\mptrack\AbstractVstEditor.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\AccessibleButton.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\AdvancedConfigDlg.h"> <Filter>mptrack</Filter> </ClInclude> @@ -546,6 +549,9 @@ <ClInclude Include="..\..\mptrack\ProgressDialog.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\QuickStartDialog.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\Reporting.h"> <Filter>mptrack</Filter> </ClInclude> @@ -1880,6 +1886,9 @@ <ClCompile Include="..\..\mptrack\ProgressDialog.cpp"> <Filter>mptrack</Filter> </ClCompile> + <ClCompile Include="..\..\mptrack\QuickStartDialog.cpp"> + <Filter>mptrack</Filter> + </ClCompile> <ClCompile Include="..\..\mptrack\Reporting.cpp"> <Filter>mptrack</Filter> </ClCompile> @@ -2549,6 +2558,12 @@ <Image Include="..\..\mptrack\res\COLORS.BMP"> <Filter>mptrack\res</Filter> </Image> + <Image Include="..\..\mptrack\res\New32.png"> + <Filter>mptrack\res</Filter> + </Image> + <Image Include="..\..\mptrack\res\Open32.png"> + <Filter>mptrack\res</Filter> + </Image> <Image Include="..\..\mptrack\res\Splash.png"> <Filter>mptrack\res</Filter> </Image> Modified: trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-UTF8.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-UTF8.vcxproj Thu Nov 21 20:57:20 2024 (r22258) +++ trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-UTF8.vcxproj Thu Nov 21 23:38:25 2024 (r22259) @@ -794,6 +794,7 @@ <ClInclude Include="..\..\misc\mptWine.h" /> <ClInclude Include="..\..\mptrack\AboutDialog.h" /> <ClInclude Include="..\..\mptrack\AbstractVstEditor.h" /> + <ClInclude Include="..\..\mptrack\AccessibleButton.h" /> <ClInclude Include="..\..\mptrack\AdvancedConfigDlg.h" /> <ClInclude Include="..\..\mptrack\AutoSaver.h" /> <ClInclude Include="..\..\mptrack\Autotune.h" /> @@ -861,6 +862,7 @@ <ClInclude Include="..\..\mptrack\PlugNotFoundDlg.h" /> <ClInclude Include="..\..\mptrack\PluginComboBox.h" /> <ClInclude Include="..\..\mptrack\ProgressDialog.h" /> + <ClInclude Include="..\..\mptrack\QuickStartDialog.h" /> <ClInclude Include="..\..\mptrack\Reporting.h" /> <ClInclude Include="..\..\mptrack\ResizableDialog.h" /> <ClInclude Include="..\..\mptrack\SampleConfigDlg.h" /> @@ -1307,6 +1309,7 @@ <ClCompile Include="..\..\mptrack\PlugNotFoundDlg.cpp" /> <ClCompile Include="..\..\mptrack\PluginComboBox.cpp" /> <ClCompile Include="..\..\mptrack\ProgressDialog.cpp" /> + <ClCompile Include="..\..\mptrack\QuickStartDialog.cpp" /> <ClCompile Include="..\..\mptrack\Reporting.cpp" /> <ClCompile Include="..\..\mptrack\ResizableDialog.cpp" /> <ClCompile Include="..\..\mptrack\SampleConfigDlg.cpp" /> @@ -1536,6 +1539,8 @@ <ItemGroup> <Image Include="..\..\mptrack\res\About.png" /> <Image Include="..\..\mptrack\res\COLORS.BMP" /> + <Image Include="..\..\mptrack\res\New32.png" /> + <Image Include="..\..\mptrack\res\Open32.png" /> <Image Include="..\..\mptrack\res\Splash.png" /> <Image Include="..\..\mptrack\res\envelope_toolbar.png" /> <Image Include="..\..\mptrack\res\icons.png" /> Modified: trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-UTF8.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-UTF8.vcxproj.filters Thu Nov 21 20:57:20 2024 (r22258) +++ trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-UTF8.vcxproj.filters Thu Nov 21 23:38:25 2024 (r22259) @@ -345,6 +345,9 @@ <ClInclude Include="..\..\mptrack\AbstractVstEditor.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\AccessibleButton.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\AdvancedConfigDlg.h"> <Filter>mptrack</Filter> </ClInclude> @@ -546,6 +549,9 @@ <ClInclude Include="..\..\mptrack\ProgressDialog.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\QuickStartDialog.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\Reporting.h"> <Filter>mptrack</Filter> </ClInclude> @@ -1880,6 +1886,9 @@ <ClCompile Include="..\..\mptrack\ProgressDialog.cpp"> <Filter>mptrack</Filter> </ClCompile> + <ClCompile Include="..\..\mptrack\QuickStartDialog.cpp"> + <Filter>mptrack</Filter> + </ClCompile> <ClCompile Include="..\..\mptrack\Reporting.cpp"> <Filter>mptrack</Filter> </ClCompile> @@ -2549,6 +2558,12 @@ <Image Include="..\..\mptrack\res\COLORS.BMP"> <Filter>mptrack\res</Filter> </Image> + <Image Include="..\..\mptrack\res\New32.png"> + <Filter>mptrack\res</Filter> + </Image> + <Image Include="..\..\mptrack\res\Open32.png"> + <Filter>mptrack\res</Filter> + </Image> <Image Include="..\..\mptrack\res\Splash.png"> <Filter>mptrack\res</Filter> </Image> Modified: trunk/OpenMPT/build/vs2017winxpansi/OpenMPT.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2017winxpansi/OpenMPT.vcxproj Thu Nov 21 20:57:20 2024 (r22258) +++ trunk/OpenMPT/build/vs2017winxpansi/OpenMPT.vcxproj Thu Nov 21 23:38:25 2024 (r22259) @@ -794,6 +794,7 @@ <ClInclude Include="..\..\misc\mptWine.h" /> <ClInclude Include="..\..\mptrack\AboutDialog.h" /> <ClInclude Include="..\..\mptrack\AbstractVstEditor.h" /> + <ClInclude Include="..\..\mptrack\AccessibleButton.h" /> <ClInclude Include="..\..\mptrack\AdvancedConfigDlg.h" /> <ClInclude Include="..\..\mptrack\AutoSaver.h" /> <ClInclude Include="..\..\mptrack\Autotune.h" /> @@ -861,6 +862,7 @@ <ClInclude Include="..\..\mptrack\PlugNotFoundDlg.h" /> <ClInclude Include="..\..\mptrack\PluginComboBox.h" /> <ClInclude Include="..\..\mptrack\ProgressDialog.h" /> + <ClInclude Include="..\..\mptrack\QuickStartDialog.h" /> <ClInclude Include="..\..\mptrack\Reporting.h" /> <ClInclude Include="..\..\mptrack\ResizableDialog.h" /> <ClInclude Include="..\..\mptrack\SampleConfigDlg.h" /> @@ -1307,6 +1309,7 @@ <ClCompile Include="..\..\mptrack\PlugNotFoundDlg.cpp" /> <ClCompile Include="..\..\mptrack\PluginComboBox.cpp" /> <ClCompile Include="..\..\mptrack\ProgressDialog.cpp" /> + <ClCompile Include="..\..\mptrack\QuickStartDialog.cpp" /> <ClCompile Include="..\..\mptrack\Reporting.cpp" /> <ClCompile Include="..\..\mptrack\ResizableDialog.cpp" /> <ClCompile Include="..\..\mptrack\SampleConfigDlg.cpp" /> @@ -1536,6 +1539,8 @@ <ItemGroup> <Image Include="..\..\mptrack\res\About.png" /> <Image Include="..\..\mptrack\res\COLORS.BMP" /> + <Image Include="..\..\mptrack\res\New32.png" /> + <Image Include="..\..\mptrack\res\Open32.png" /> <Image Include="..\..\mptrack\res\Splash.png" /> <Image Include="..\..\mptrack\res\envelope_toolbar.png" /> <Image Include="..\..\mptrack\res\icons.png" /> Modified: trunk/OpenMPT/build/vs2017winxpansi/OpenMPT.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2017winxpansi/OpenMPT.vcxproj.filters Thu Nov 21 20:57:20 2024 (r22258) +++ trunk/OpenMPT/build/vs2017winxpansi/OpenMPT.vcxproj.filters Thu Nov 21 23:38:25 2024 (r22259) @@ -345,6 +345,9 @@ <ClInclude Include="..\..\mptrack\AbstractVstEditor.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\AccessibleButton.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\AdvancedConfigDlg.h"> <Filter>mptrack</Filter> </ClInclude> @@ -546,6 +549,9 @@ <ClInclude Include="..\..\mptrack\ProgressDialog.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\QuickStartDialog.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\Reporting.h"> <Filter>mptrack</Filter> </ClInclude> @@ -1880,6 +1886,9 @@ <ClCompile Include="..\..\mptrack\ProgressDialog.cpp"> <Filter>mptrack</Filter> </ClCompile> + <ClCompile Include="..\..\mptrack\QuickStartDialog.cpp"> + <Filter>mptrack</Filter> + </ClCompile> <ClCompile Include="..\..\mptrack\Reporting.cpp"> <Filter>mptrack</Filter> </ClCompile> @@ -2549,6 +2558,12 @@ <Image Include="..\..\mptrack\res\COLORS.BMP"> <Filter>mptrack\res</Filter> </Image> + <Image Include="..\..\mptrack\res\New32.png"> + <Filter>mptrack\res</Filter> + </Image> + <Image Include="..\..\mptrack\res\Open32.png"> + <Filter>mptrack\res</Filter> + </Image> <Image Include="..\..\mptrack\res\Splash.png"> <Filter>mptrack\res</Filter> </Image> Modified: trunk/OpenMPT/build/vs2019win7/OpenMPT-ANSI.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2019win7/OpenMPT-ANSI.vcxproj Thu Nov 21 20:57:20 2024 (r22258) +++ trunk/OpenMPT/build/vs2019win7/OpenMPT-ANSI.vcxproj Thu Nov 21 23:38:25 2024 (r22259) @@ -813,6 +813,7 @@ <ClInclude Include="..\..\misc\mptWine.h" /> <ClInclude Include="..\..\mptrack\AboutDialog.h" /> <ClInclude Include="..\..\mptrack\AbstractVstEditor.h" /> + <ClInclude Include="..\..\mptrack\AccessibleButton.h" /> <ClInclude Include="..\..\mptrack\AdvancedConfigDlg.h" /> <ClInclude Include="..\..\mptrack\AutoSaver.h" /> <ClInclude Include="..\..\mptrack\Autotune.h" /> @@ -880,6 +881,7 @@ <ClInclude Include="..\..\mptrack\PlugNotFoundDlg.h" /> <ClInclude Include="..\..\mptrack\PluginComboBox.h" /> <ClInclude Include="..\..\mptrack\ProgressDialog.h" /> + <ClInclude Include="..\..\mptrack\QuickStartDialog.h" /> <ClInclude Include="..\..\mptrack\Reporting.h" /> <ClInclude Include="..\..\mptrack\ResizableDialog.h" /> <ClInclude Include="..\..\mptrack\SampleConfigDlg.h" /> @@ -1326,6 +1328,7 @@ <ClCompile Include="..\..\mptrack\PlugNotFoundDlg.cpp" /> <ClCompile Include="..\..\mptrack\PluginComboBox.cpp" /> <ClCompile Include="..\..\mptrack\ProgressDialog.cpp" /> + <ClCompile Include="..\..\mptrack\QuickStartDialog.cpp" /> <ClCompile Include="..\..\mptrack\Reporting.cpp" /> <ClCompile Include="..\..\mptrack\ResizableDialog.cpp" /> <ClCompile Include="..\..\mptrack\SampleConfigDlg.cpp" /> @@ -1556,6 +1559,8 @@ <ItemGroup> <Image Include="..\..\mptrack\res\About.png" /> <Image Include="..\..\mptrack\res\COLORS.BMP" /> + <Image Include="..\..\mptrack\res\New32.png" /> + <Image Include="..\..\mptrack\res\Open32.png" /> <Image Include="..\..\mptrack\res\Splash.png" /> <Image Include="..\..\mptrack\res\envelope_toolbar.png" /> <Image Include="..\..\mptrack\res\icons.png" /> Modified: trunk/OpenMPT/build/vs2019win7/OpenMPT-ANSI.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2019win7/OpenMPT-ANSI.vcxproj.filters Thu Nov 21 20:57:20 2024 (r22258) +++ trunk/OpenMPT/build/vs2019win7/OpenMPT-ANSI.vcxproj.filters Thu Nov 21 23:38:25 2024 (r22259) @@ -387,6 +387,9 @@ <ClInclude Include="..\..\mptrack\AbstractVstEditor.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\AccessibleButton.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\AdvancedConfigDlg.h"> <Filter>mptrack</Filter> </ClInclude> @@ -588,6 +591,9 @@ <ClInclude Include="..\..\mptrack\ProgressDialog.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\QuickStartDialog.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\Reporting.h"> <Filter>mptrack</Filter> </ClInclude> @@ -1922,6 +1928,9 @@ <ClCompile Include="..\..\mptrack\ProgressDialog.cpp"> <Filter>mptrack</Filter> </ClCompile> + <ClCompile Include="..\..\mptrack\QuickStartDialog.cpp"> + <Filter>mptrack</Filter> + </ClCompile> <ClCompile Include="..\..\mptrack\Reporting.cpp"> <Filter>mptrack</Filter> </ClCompile> @@ -2594,6 +2603,12 @@ <Image Include="..\..\mptrack\res\COLORS.BMP"> <Filter>mptrack\res</Filter> </Image> + <Image Include="..\..\mptrack\res\New32.png"> + <Filter>mptrack\res</Filter> + </Image> + <Image Include="..\..\mptrack\res\Open32.png"> + <Filter>mptrack\res</Filter> + </Image> <Image Include="..\..\mptrack\res\Splash.png"> <Filter>mptrack\res</Filter> </Image> Modified: trunk/OpenMPT/build/vs2019win7/OpenMPT-UTF8.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2019win7/OpenMPT-UTF8.vcxproj Thu Nov 21 20:57:20 2024 (r22258) +++ trunk/OpenMPT/build/vs2019win7/OpenMPT-UTF8.vcxproj Thu Nov 21 23:38:25 2024 (r22259) @@ -813,6 +813,7 @@ <ClInclude Include="..\..\misc\mptWine.h" /> <ClInclude Include="..\..\mptrack\AboutDialog.h" /> <ClInclude Include="..\..\mptrack\AbstractVstEditor.h" /> + <ClInclude Include="..\..\mptrack\AccessibleButton.h" /> <ClInclude Include="..\..\mptrack\AdvancedConfigDlg.h" /> <ClInclude Include="..\..\mptrack\AutoSaver.h" /> <ClInclude Include="..\..\mptrack\Autotune.h" /> @@ -880,6 +881,7 @@ <ClInclude Include="..\..\mptrack\PlugNotFoundDlg.h" /> <ClInclude Include="..\..\mptrack\PluginComboBox.h" /> <ClInclude Include="..\..\mptrack\ProgressDialog.h" /> + <ClInclude Include="..\..\mptrack\QuickStartDialog.h" /> <ClInclude Include="..\..\mptrack\Reporting.h" /> <ClInclude Include="..\..\mptrack\ResizableDialog.h" /> <ClInclude Include="..\..\mptrack\SampleConfigDlg.h" /> @@ -1326,6 +1328,7 @@ <ClCompile Include="..\..\mptrack\PlugNotFoundDlg.cpp" /> <ClCompile Include="..\..\mptrack\PluginComboBox.cpp" /> <ClCompile Include="..\..\mptrack\ProgressDialog.cpp" /> + <ClCompile Include="..\..\mptrack\QuickStartDialog.cpp" /> <ClCompile Include="..\..\mptrack\Reporting.cpp" /> <ClCompile Include="..\..\mptrack\ResizableDialog.cpp" /> <ClCompile Include="..\..\mptrack\SampleConfigDlg.cpp" /> @@ -1556,6 +1559,8 @@ <ItemGroup> <Image Include="..\..\mptrack\res\About.png" /> <Image Include="..\..\mptrack\res\COLORS.BMP" /> + <Image Include="..\..\mptrack\res\New32.png" /> + <Image Include="..\..\mptrack\res\Open32.png" /> <Image Include="..\..\mptrack\res\Splash.png" /> <Image Include="..\..\mptrack\res\envelope_toolbar.png" /> <Image Include="..\..\mptrack\res\icons.png" /> Modified: trunk/OpenMPT/build/vs2019win7/OpenMPT-UTF8.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2019win7/OpenMPT-UTF8.vcxproj.filters Thu Nov 21 20:57:20 2024 (r22258) +++ trunk/OpenMPT/build/vs2019win7/OpenMPT-UTF8.vcxproj.filters Thu Nov 21 23:38:25 2024 (r22259) @@ -387,6 +387,9 @@ <ClInclude Include="..\..\mptrack\AbstractVstEditor.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\AccessibleButton.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\AdvancedConfigDlg.h"> <Filter>mptrack</Filter> </ClInclude> @@ -588,6 +591,9 @@ <ClInclude Include="..\..\mptrack\ProgressDialog.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\QuickStartDialog.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\Reporting.h"> <Filter>mptrack</Filter> </ClInclude> @@ -1922,6 +1928,9 @@ <ClCompile Include="..\..\mptrack\ProgressDialog.cpp"> <Filter>mptrack</Filter> </ClCompile> + <ClCompile Include="..\..\mptrack\QuickStartDialog.cpp"> + <Filter>mptrack</Filter> + </ClCompile> <ClCompile Include="..\..\mptrack\Reporting.cpp"> <Filter>mptrack</Filter> </ClCompile> @@ -2594,6 +2603,12 @@ <Image Include="..\..\mptrack\res\COLORS.BMP"> <Filter>mptrack\res</Filter> </Image> + <Image Include="..\..\mptrack\res\New32.png"> + <Filter>mptrack\res</Filter> + </Image> + <Image Include="..\..\mptrack\res\Open32.png"> + <Filter>mptrack\res</Filter> + </Image> <Image Include="..\..\mptrack\res\Splash.png"> <Filter>mptrack\res</Filter> </Image> Modified: trunk/OpenMPT/build/vs2019win7/OpenMPT.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2019win7/OpenMPT.vcxproj Thu Nov 21 20:57:20 2024 (r22258) +++ trunk/OpenMPT/build/vs2019win7/OpenMPT.vcxproj Thu Nov 21 23:38:25 2024 (r22259) @@ -813,6 +813,7 @@ <ClInclude Include="..\..\misc\mptWine.h" /> <ClInclude Include="..\..\mptrack\AboutDialog.h" /> <ClInclude Include="..\..\mptrack\AbstractVstEditor.h" /> + <ClInclude Include="..\..\mptrack\AccessibleButton.h" /> <ClInclude Include="..\..\mptrack\AdvancedConfigDlg.h" /> <ClInclude Include="..\..\mptrack\AutoSaver.h" /> <ClInclude Include="..\..\mptrack\Autotune.h" /> @@ -880,6 +881,7 @@ <ClInclude Include="..\..\mptrack\PlugNotFoundDlg.h" /> <ClInclude Include="..\..\mptrack\PluginComboBox.h" /> <ClInclude Include="..\..\mptrack\ProgressDialog.h" /> + <ClInclude Include="..\..\mptrack\QuickStartDialog.h" /> <ClInclude Include="..\..\mptrack\Reporting.h" /> <ClInclude Include="..\..\mptrack\ResizableDialog.h" /> <ClInclude Include="..\..\mptrack\SampleConfigDlg.h" /> @@ -1326,6 +1328,7 @@ <ClCompile Include="..\..\mptrack\PlugNotFoundDlg.cpp" /> <ClCompile Include="..\..\mptrack\PluginComboBox.cpp" /> <ClCompile Include="..\..\mptrack\ProgressDialog.cpp" /> + <ClCompile Include="..\..\mptrack\QuickStartDialog.cpp" /> <ClCompile Include="..\..\mptrack\Reporting.cpp" /> <ClCompile Include="..\..\mptrack\ResizableDialog.cpp" /> <ClCompile Include="..\..\mptrack\SampleConfigDlg.cpp" /> @@ -1556,6 +1559,8 @@ <ItemGroup> <Image Include="..\..\mptrack\res\About.png" /> <Image Include="..\..\mptrack\res\COLORS.BMP" /> + <Image Include="..\..\mptrack\res\New32.png" /> + <Image Include="..\..\mptrack\res\Open32.png" /> <Image Include="..\..\mptrack\res\Splash.png" /> <Image Include="..\..\mptrack\res\envelope_toolbar.png" /> <Image Include="..\..\mptrack\res\icons.png" /> Modified: trunk/OpenMPT/build/vs2019win7/OpenMPT.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2019win7/OpenMPT.vcxproj.filters Thu Nov 21 20:57:20 2024 (r22258) +++ trunk/OpenMPT/build/vs2019win7/OpenMPT.vcxproj.filters Thu Nov 21 23:38:25 2024 (r22259) @@ -387,6 +387,9 @@ <ClInclude Include="..\..\mptrack\AbstractVstEditor.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\AccessibleButton.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\AdvancedConfigDlg.h"> <Filter>mptrack</Filter> </ClInclude> @@ -588,6 +591,9 @@ <ClInclude Include="..\..\mptrack\ProgressDialog.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\QuickStartDialog.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\Reporting.h"> <Filter>mptrack</Filter> </ClInclude> @@ -1922,6 +1928,9 @@ <ClCompile Include="..\..\mptrack\ProgressDialog.cpp"> <Filter>mptrack</Filter> </ClCompile> + <ClCompile Include="..\..\mptrack\QuickStartDialog.cpp"> + <Filter>mptrack</Filter> + </ClCompile> <ClCompile Include="..\..\mptrack\Reporting.cpp"> <Filter>mptrack</Filter> </ClCompile> @@ -2594,6 +2603,12 @@ <Image Include="..\..\mptrack\res\COLORS.BMP"> <Filter>mptrack\res</Filter> </Image> + <Image Include="..\..\mptrack\res\New32.png"> + <Filter>mptrack\res</Filter> + </Image> + <Image Include="..\..\mptrack\res\Open32.png"> + <Filter>mptrack\res</Filter> + </Image> <Image Include="..\..\mptrack\res\Splash.png"> <Filter>mptrack\res</Filter> </Image> Modified: trunk/OpenMPT/build/vs2022win10/OpenMPT-ANSI.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2022win10/OpenMPT-ANSI.vcxproj Thu Nov 21 20:57:20 2024 (r22258) +++ trunk/OpenMPT/build/vs2022win10/OpenMPT-ANSI.vcxproj Thu Nov 21 23:38:25 2024 (r22259) @@ -2015,6 +2015,7 @@ <ClInclude Include="..\..\misc\mptWine.h" /> <ClInclude Include="..\..\mptrack\AboutDialog.h" /> <ClInclude Include="..\..\mptrack\AbstractVstEditor.h" /> + <ClInclude Include="..\..\mptrack\AccessibleButton.h" /> <ClInclude Include="..\..\mptrack\AdvancedConfigDlg.h" /> <ClInclude Include="..\..\mptrack\AutoSaver.h" /> <ClInclude Include="..\..\mptrack\Autotune.h" /> @@ -2082,6 +2083,7 @@ <ClInclude Include="..\..\mptrack\PlugNotFoundDlg.h" /> <ClInclude Include="..\..\mptrack\PluginComboBox.h" /> <ClInclude Include="..\..\mptrack\ProgressDialog.h" /> + <ClInclude Include="..\..\mptrack\QuickStartDialog.h" /> <ClInclude Include="..\..\mptrack\Reporting.h" /> <ClInclude Include="..\..\mptrack\ResizableDialog.h" /> <ClInclude Include="..\..\mptrack\SampleConfigDlg.h" /> @@ -2528,6 +2530,7 @@ <ClCompile Include="..\..\mptrack\PlugNotFoundDlg.cpp" /> <ClCompile Include="..\..\mptrack\PluginComboBox.cpp" /> <ClCompile Include="..\..\mptrack\ProgressDialog.cpp" /> + <ClCompile Include="..\..\mptrack\QuickStartDialog.cpp" /> <ClCompile Include="..\..\mptrack\Reporting.cpp" /> <ClCompile Include="..\..\mptrack\ResizableDialog.cpp" /> <ClCompile Include="..\..\mptrack\SampleConfigDlg.cpp" /> @@ -2758,6 +2761,8 @@ <ItemGroup> <Image Include="..\..\mptrack\res\About.png" /> <Image Include="..\..\mptrack\res\COLORS.BMP" /> + <Image Include="..\..\mptrack\res\New32.png" /> + <Image Include="..\..\mptrack\res\Open32.png" /> <Image Include="..\..\mptrack\res\Splash.png" /> <Image Include="..\..\mptrack\res\envelope_toolbar.png" /> <Image Include="..\..\mptrack\res\icons.png" /> Modified: trunk/OpenMPT/build/vs2022win10/OpenMPT-ANSI.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2022win10/OpenMPT-ANSI.vcxproj.filters Thu Nov 21 20:57:20 2024 (r22258) +++ trunk/OpenMPT/build/vs2022win10/OpenMPT-ANSI.vcxproj.filters Thu Nov 21 23:38:25 2024 (r22259) @@ -387,6 +387,9 @@ <ClInclude Include="..\..\mptrack\AbstractVstEditor.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\AccessibleButton.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\AdvancedConfigDlg.h"> <Filter>mptrack</Filter> </ClInclude> @@ -588,6 +591,9 @@ <ClInclude Include="..\..\mptrack\ProgressDialog.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\QuickStartDialog.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\Reporting.h"> <Filter>mptrack</Filter> </ClInclude> @@ -1922,6 +1928,9 @@ <ClCompile Include="..\..\mptrack\ProgressDialog.cpp"> <Filter>mptrack</Filter> </ClCompile> + <ClCompile Include="..\..\mptrack\QuickStartDialog.cpp"> + <Filter>mptrack</Filter> + </ClCompile> <ClCompile Include="..\..\mptrack\Reporting.cpp"> <Filter>mptrack</Filter> </ClCompile> @@ -2594,6 +2603,12 @@ <Image Include="..\..\mptrack\res\COLORS.BMP"> <Filter>mptrack\res</Filter> </Image> + <Image Include="..\..\mptrack\res\New32.png"> + <Filter>mptrack\res</Filter> + </Image> + <Image Include="..\..\mptrack\res\Open32.png"> + <Filter>mptrack\res</Filter> + </Image> <Image Include="..\..\mptrack\res\Splash.png"> <Filter>mptrack\res</Filter> </Image> Modified: trunk/OpenMPT/build/vs2022win10/OpenMPT-UTF8.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2022win10/OpenMPT-UTF8.vcxproj Thu Nov 21 20:57:20 2024 (r22258) +++ trunk/OpenMPT/build/vs2022win10/OpenMPT-UTF8.vcxproj Thu Nov 21 23:38:25 2024 (r22259) @@ -2015,6 +2015,7 @@ <ClInclude Include="..\..\misc\mptWine.h" /> <ClInclude Include="..\..\mptrack\AboutDialog.h" /> <ClInclude Include="..\..\mptrack\AbstractVstEditor.h" /> + <ClInclude Include="..\..\mptrack\AccessibleButton.h" /> <ClInclude Include="..\..\mptrack\AdvancedConfigDlg.h" /> <ClInclude Include="..\..\mptrack\AutoSaver.h" /> <ClInclude Include="..\..\mptrack\Autotune.h" /> @@ -2082,6 +2083,7 @@ <ClInclude Include="..\..\mptrack\PlugNotFoundDlg.h" /> <ClInclude Include="..\..\mptrack\PluginComboBox.h" /> <ClInclude Include="..\..\mptrack\ProgressDialog.h" /> + <ClInclude Include="..\..\mptrack\QuickStartDialog.h" /> <ClInclude Include="..\..\mptrack\Reporting.h" /> <ClInclude Include="..\..\mptrack\ResizableDialog.h" /> <ClInclude Include="..\..\mptrack\SampleConfigDlg.h" /> @@ -2528,6 +2530,7 @@ <ClCompile Include="..\..\mptrack\PlugNotFoundDlg.cpp" /> <ClCompile Include="..\..\mptrack\PluginComboBox.cpp" /> <ClCompile Include="..\..\mptrack\ProgressDialog.cpp" /> + <ClCompile Include="..\..\mptrack\QuickStartDialog.cpp" /> <ClCompile Include="..\..\mptrack\Reporting.cpp" /> <ClCompile Include="..\..\mptrack\ResizableDialog.cpp" /> <ClCompile Include="..\..\mptrack\SampleConfigDlg.cpp" /> @@ -2758,6 +2761,8 @@ <ItemGroup> <Image Include="..\..\mptrack\res\About.png" /> <Image Include="..\..\mptrack\res\COLORS.BMP" /> + <Image Include="..\..\mptrack\res\New32.png" /> + <Image Include="..\..\mptrack\res\Open32.png" /> <Image Include="..\..\mptrack\res\Splash.png" /> <Image Include="..\..\mptrack\res\envelope_toolbar.png" /> <Image Include="..\..\mptrack\res\icons.png" /> Modified: trunk/OpenMPT/build/vs2022win10/OpenMPT-UTF8.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2022win10/OpenMPT-UTF8.vcxproj.filters Thu Nov 21 20:57:20 2024 (r22258) +++ trunk/OpenMPT/build/vs2022win10/OpenMPT-UTF8.vcxproj.filters Thu Nov 21 23:38:25 2024 (r22259) @@ -387,6 +387,9 @@ <ClInclude Include="..\..\mptrack\AbstractVstEditor.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\AccessibleButton.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\AdvancedConfigDlg.h"> <Filter>mptrack</Filter> </ClInclude> @@ -588,6 +591,9 @@ <ClInclude Include="..\..\mptrack\ProgressDialog.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\QuickStartDialog.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\Reporting.h"> <Filter>mptrack</Filter> </ClInclude> @@ -1922,6 +1928,9 @@ <ClCompile Include="..\..\mptrack\ProgressDialog.cpp"> <Filter>mptrack</Filter> </ClCompile> + <ClCompile Include="..\..\mptrack\QuickStartDialog.cpp"> + <Filter>mptrack</Filter> + </ClCompile> <ClCompile Include="..\..\mptrack\Reporting.cpp"> <Filter>mptrack</Filter> </ClCompile> @@ -2594,6 +2603,12 @@ <Image Include="..\..\mptrack\res\COLORS.BMP"> <Filter>mptrack\res</Filter> </Image> + <Image Include="..\..\mptrack\res\New32.png"> + <Filter>mptrack\res</Filter> + </Image> + <Image Include="..\..\mptrack\res\Open32.png"> + <Filter>mptrack\res</Filter> + </Image> <Image Include="..\..\mptrack\res\Splash.png"> <Filter>mptrack\res</Filter> </Image> Modified: trunk/OpenMPT/build/vs2022win10/OpenMPT.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2022win10/OpenMPT.vcxproj Thu Nov 21 20:57:20 2024 (r22258) +++ trunk/OpenMPT/build/vs2022win10/OpenMPT.vcxproj Thu Nov 21 23:38:25 2024 (r22259) @@ -2015,6 +2015,7 @@ <ClInclude Include="..\..\misc\mptWine.h" /> <ClInclude Include="..\..\mptrack\AboutDialog.h" /> <ClInclude Include="..\..\mptrack\AbstractVstEditor.h" /> + <ClInclude Include="..\..\mptrack\AccessibleButton.h" /> <ClInclude Include="..\..\mptrack\AdvancedConfigDlg.h" /> <ClInclude Include="..\..\mptrack\AutoSaver.h" /> <ClInclude Include="..\..\mptrack\Autotune.h" /> @@ -2082,6 +2083,7 @@ <ClInclude Include="..\..\mptrack\PlugNotFoundDlg.h" /> <ClInclude Include="..\..\mptrack\PluginComboBox.h" /> <ClInclude Include="..\..\mptrack\ProgressDialog.h" /> + <ClInclude Include="..\..\mptrack\QuickStartDialog.h" /> <ClInclude Include="..\..\mptrack\Reporting.h" /> <ClInclude Include="..\..\mptrack\ResizableDialog.h" /> <ClInclude Include="..\..\mptrack\SampleConfigDlg.h" /> @@ -2528,6 +2530,7 @@ <ClCompile Include="..\..\mptrack\PlugNotFoundDlg.cpp" /> <ClCompile Include="..\..\mptrack\PluginComboBox.cpp" /> <ClCompile Include="..\..\mptrack\ProgressDialog.cpp" /> + <ClCompile Include="..\..\mptrack\QuickStartDialog.cpp" /> <ClCompile Include="..\..\mptrack\Reporting.cpp" /> <ClCompile Include="..\..\mptrack\ResizableDialog.cpp" /> <ClCompile Include="..\..\mptrack\SampleConfigDlg.cpp" /> @@ -2758,6 +2761,8 @@ <ItemGroup> <Image Include="..\..\mptrack\res\About.png" /> <Image Include="..\..\mptrack\res\COLORS.BMP" /> + <Image Include="..\..\mptrack\res\New32.png" /> + <Image Include="..\..\mptrack\res\Open32.png" /> <Image Include="..\..\mptrack\res\Splash.png" /> <Image Include="..\..\mptrack\res\envelope_toolbar.png" /> <Image Include="..\..\mptrack\res\icons.png" /> Modified: trunk/OpenMPT/build/vs2022win10/OpenMPT.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2022win10/OpenMPT.vcxproj.filters Thu Nov 21 20:57:20 2024 (r22258) +++ trunk/OpenMPT/build/vs2022win10/OpenMPT.vcxproj.filters Thu Nov 21 23:38:25 2024 (r22259) @@ -387,6 +387,9 @@ <ClInclude Include="..\..\mptrack\AbstractVstEditor.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\AccessibleButton.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\AdvancedConfigDlg.h"> <Filter>mptrack</Filter> </ClInclude> @@ -588,6 +591,9 @@ <ClInclude Include="..\..\mptrack\ProgressDialog.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\QuickStartDialog.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\Reporting.h"> <Filter>mptrack</Filter> </ClInclude> @@ -1922,6 +1928,9 @@ <ClCompile Include="..\..\mptrack\ProgressDialog.cpp"> <Filter>mptrack</Filter> </ClCompile> + <ClCompile Include="..\..\mptrack\QuickStartDialog.cpp"> + <Filter>mptrack</Filter> + </ClCompile> <ClCompile Include="..\..\mptrack\Reporting.cpp"> <Filter>mptrack</Filter> </ClCompile> @@ -2594,6 +2603,12 @@ <Image Include="..\..\mptrack\res\COLORS.BMP"> <Filter>mptrack\res</Filter> </Image> + <Image Include="..\..\mptrack\res\New32.png"> + <Filter>mptrack\res</Filter> + </Image> + <Image Include="..\..\mptrack\res\Open32.png"> + <Filter>mptrack\res</Filter> + </Image> <Image Include="..\..\mptrack\res\Splash.png"> <Filter>mptrack\res</Filter> </Image> Modified: trunk/OpenMPT/build/vs2022win10clang/OpenMPT-ANSI.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2022win10clang/OpenMPT-ANSI.vcxproj Thu Nov 21 20:57:20 2024 (r22258) +++ trunk/OpenMPT/build/vs2022win10clang/OpenMPT-ANSI.vcxproj Thu Nov 21 23:38:25 2024 (r22259) @@ -1583,6 +1583,7 @@ <ClInclude Include="..\..\misc\mptWine.h" /> <ClInclude Include="..\..\mptrack\AboutDialog.h" /> <ClInclude Include="..\..\mptrack\AbstractVstEditor.h" /> + <ClInclude Include="..\..\mptrack\AccessibleButton.h" /> <ClInclude Include="..\..\mptrack\AdvancedConfigDlg.h" /> <ClInclude Include="..\..\mptrack\AutoSaver.h" /> <ClInclude Include="..\..\mptrack\Autotune.h" /> @@ -1650,6 +1651,7 @@ <ClInclude Include="..\..\mptrack\PlugNotFoundDlg.h" /> <ClInclude Include="..\..\mptrack\PluginComboBox.h" /> <ClInclude Include="..\..\mptrack\ProgressDialog.h" /> + <ClInclude Include="..\..\mptrack\QuickStartDialog.h" /> <ClInclude Include="..\..\mptrack\Reporting.h" /> <ClInclude Include="..\..\mptrack\ResizableDialog.h" /> <ClInclude Include="..\..\mptrack\SampleConfigDlg.h" /> @@ -2096,6 +2098,7 @@ <ClCompile Include="..\..\mptrack\PlugNotFoundDlg.cpp" /> <ClCompile Include="..\..\mptrack\PluginComboBox.cpp" /> <ClCompile Include="..\..\mptrack\ProgressDialog.cpp" /> + <ClCompile Include="..\..\mptrack\QuickStartDialog.cpp" /> <ClCompile Include="..\..\mptrack\Reporting.cpp" /> <ClCompile Include="..\..\mptrack\ResizableDialog.cpp" /> <ClCompile Include="..\..\mptrack\SampleConfigDlg.cpp" /> @@ -2326,6 +2329,8 @@ <ItemGroup> <Image Include="..\..\mptrack\res\About.png" /> <Image Include="..\..\mptrack\res\COLORS.BMP" /> + <Image Include="..\..\mptrack\res\New32.png" /> + <Image Include="..\..\mptrack\res\Open32.png" /> <Image Include="..\..\mptrack\res\Splash.png" /> <Image Include="..\..\mptrack\res\envelope_toolbar.png" /> <Image Include="..\..\mptrack\res\icons.png" /> Modified: trunk/OpenMPT/build/vs2022win10clang/OpenMPT-ANSI.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2022win10clang/OpenMPT-ANSI.vcxproj.filters Thu Nov 21 20:57:20 2024 (r22258) +++ trunk/OpenMPT/build/vs2022win10clang/OpenMPT-ANSI.vcxproj.filters Thu Nov 21 23:38:25 2024 (r22259) @@ -345,6 +345,9 @@ <ClInclude Include="..\..\mptrack\AbstractVstEditor.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\AccessibleButton.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\AdvancedConfigDlg.h"> <Filter>mptrack</Filter> </ClInclude> @@ -546,6 +549,9 @@ <ClInclude Include="..\..\mptrack\ProgressDialog.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\QuickStartDialog.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\Reporting.h"> <Filter>mptrack</Filter> </ClInclude> @@ -1880,6 +1886,9 @@ <ClCompile Include="..\..\mptrack\ProgressDialog.cpp"> <Filter>mptrack</Filter> </ClCompile> + <ClCompile Include="..\..\mptrack\QuickStartDialog.cpp"> + <Filter>mptrack</Filter> + </ClCompile> <ClCompile Include="..\..\mptrack\Reporting.cpp"> <Filter>mptrack</Filter> </ClCompile> @@ -2552,6 +2561,12 @@ <Image Include="..\..\mptrack\res\COLORS.BMP"> <Filter>mptrack\res</Filter> </Image> + <Image Include="..\..\mptrack\res\New32.png"> + <Filter>mptrack\res</Filter> + </Image> + <Image Include="..\..\mptrack\res\Open32.png"> + <Filter>mptrack\res</Filter> + </Image> <Image Include="..\..\mptrack\res\Splash.png"> <Filter>mptrack\res</Filter> </Image> Modified: trunk/OpenMPT/build/vs2022win10clang/OpenMPT-UTF8.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2022win10clang/OpenMPT-UTF8.vcxproj Thu Nov 21 20:57:20 2024 (r22258) +++ trunk/OpenMPT/build/vs2022win10clang/OpenMPT-UTF8.vcxproj Thu Nov 21 23:38:25 2024 (r22259) @@ -1583,6 +1583,7 @@ <ClInclude Include="..\..\misc\mptWine.h" /> <ClInclude Include="..\..\mptrack\AboutDialog.h" /> <ClInclude Include="..\..\mptrack\AbstractVstEditor.h" /> + <ClInclude Include="..\..\mptrack\AccessibleButton.h" /> <ClInclude Include="..\..\mptrack\AdvancedConfigDlg.h" /> <ClInclude Include="..\..\mptrack\AutoSaver.h" /> <ClInclude Include="..\..\mptrack\Autotune.h" /> @@ -1650,6 +1651,7 @@ <ClInclude Include="..\..\mptrack\PlugNotFoundDlg.h" /> <ClInclude Include="..\..\mptrack\PluginComboBox.h" /> <ClInclude Include="..\..\mptrack\ProgressDialog.h" /> + <ClInclude Include="..\..\mptrack\QuickStartDialog.h" /> <ClInclude Include="..\..\mptrack\Reporting.h" /> <ClInclude Include="..\..\mptrack\ResizableDialog.h" /> <ClInclude Include="..\..\mptrack\SampleConfigDlg.h" /> @@ -2096,6 +2098,7 @@ <ClCompile Include="..\..\mptrack\PlugNotFoundDlg.cpp" /> <ClCompile Include="..\..\mptrack\PluginComboBox.cpp" /> <ClCompile Include="..\..\mptrack\ProgressDialog.cpp" /> + <ClCompile Include="..\..\mptrack\QuickStartDialog.cpp" /> <ClCompile Include="..\..\mptrack\Reporting.cpp" /> <ClCompile Include="..\..\mptrack\ResizableDialog.cpp" /> <ClCompile Include="..\..\mptrack\SampleConfigDlg.cpp" /> @@ -2326,6 +2329,8 @@ <ItemGroup> <Image Include="..\..\mptrack\res\About.png" /> <Image Include="..\..\mptrack\res\COLORS.BMP" /> + <Image Include="..\..\mptrack\res\New32.png" /> + <Image Include="..\..\mptrack\res\Open32.png" /> <Image Include="..\..\mptrack\res\Splash.png" /> <Image Include="..\..\mptrack\res\envelope_toolbar.png" /> <Image Include="..\..\mptrack\res\icons.png" /> Modified: trunk/OpenMPT/build/vs2022win10clang/OpenMPT-UTF8.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2022win10clang/OpenMPT-UTF8.vcxproj.filters Thu Nov 21 20:57:20 2024 (r22258) +++ trunk/OpenMPT/build/vs2022win10clang/OpenMPT-UTF8.vcxproj.filters Thu Nov 21 23:38:25 2024 (r22259) @@ -345,6 +345,9 @@ <ClInclude Include="..\..\mptrack\AbstractVstEditor.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\AccessibleButton.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\AdvancedConfigDlg.h"> <Filter>mptrack</Filter> </ClInclude> @@ -546,6 +549,9 @@ <ClInclude Include="..\..\mptrack\ProgressDialog.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\QuickStartDialog.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\Reporting.h"> <Filter>mptrack</Filter> </ClInclude> @@ -1880,6 +1886,9 @@ <ClCompile Include="..\..\mptrack\ProgressDialog.cpp"> <Filter>mptrack</Filter> </ClCompile> + <ClCompile Include="..\..\mptrack\QuickStartDialog.cpp"> + <Filter>mptrack</Filter> + </ClCompile> <ClCompile Include="..\..\mptrack\Reporting.cpp"> <Filter>mptrack</Filter> </ClCompile> @@ -2552,6 +2561,12 @@ <Image Include="..\..\mptrack\res\COLORS.BMP"> <Filter>mptrack\res</Filter> </Image> + <Image Include="..\..\mptrack\res\New32.png"> + <Filter>mptrack\res</Filter> + </Image> + <Image Include="..\..\mptrack\res\Open32.png"> + <Filter>mptrack\res</Filter> + </Image> <Image Include="..\..\mptrack\res\Splash.png"> <Filter>mptrack\res</Filter> </Image> Modified: trunk/OpenMPT/build/vs2022win10clang/OpenMPT.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2022win10clang/OpenMPT.vcxproj Thu Nov 21 20:57:20 2024 (r22258) +++ trunk/OpenMPT/build/vs2022win10clang/OpenMPT.vcxproj Thu Nov 21 23:38:25 2024 (r22259) @@ -1583,6 +1583,7 @@ <ClInclude Include="..\..\misc\mptWine.h" /> <ClInclude Include="..\..\mptrack\AboutDialog.h" /> <ClInclude Include="..\..\mptrack\AbstractVstEditor.h" /> + <ClInclude Include="..\..\mptrack\AccessibleButton.h" /> <ClInclude Include="..\..\mptrack\AdvancedConfigDlg.h" /> <ClInclude Include="..\..\mptrack\AutoSaver.h" /> <ClInclude Include="..\..\mptrack\Autotune.h" /> @@ -1650,6 +1651,7 @@ <ClInclude Include="..\..\mptrack\PlugNotFoundDlg.h" /> <ClInclude Include="..\..\mptrack\PluginComboBox.h" /> <ClInclude Include="..\..\mptrack\ProgressDialog.h" /> + <ClInclude Include="..\..\mptrack\QuickStartDialog.h" /> <ClInclude Include="..\..\mptrack\Reporting.h" /> <ClInclude Include="..\..\mptrack\ResizableDialog.h" /> <ClInclude Include="..\..\mptrack\SampleConfigDlg.h" /> @@ -2096,6 +2098,7 @@ <ClCompile Include="..\..\mptrack\PlugNotFoundDlg.cpp" /> <ClCompile Include="..\..\mptrack\PluginComboBox.cpp" /> <ClCompile Include="..\..\mptrack\ProgressDialog.cpp" /> + <ClCompile Include="..\..\mptrack\QuickStartDialog.cpp" /> <ClCompile Include="..\..\mptrack\Reporting.cpp" /> <ClCompile Include="..\..\mptrack\ResizableDialog.cpp" /> <ClCompile Include="..\..\mptrack\SampleConfigDlg.cpp" /> @@ -2326,6 +2329,8 @@ <ItemGroup> <Image Include="..\..\mptrack\res\About.png" /> <Image Include="..\..\mptrack\res\COLORS.BMP" /> + <Image Include="..\..\mptrack\res\New32.png" /> + ... [truncated message content] |
From: <sv...@op...> - 2024-11-21 19:57:27
|
Author: sagamusix Date: Thu Nov 21 20:57:20 2024 New Revision: 22258 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22258 Log: Merged revision(s) 22257 from trunk/OpenMPT: [Fix] Key Config: When changing a shortcut via a search that had results in multiple contexts, a wrong context could be assigned to the shortcut. ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/mptrack/KeyConfigDlg.cpp Modified: branches/OpenMPT-1.31/mptrack/KeyConfigDlg.cpp ============================================================================== --- branches/OpenMPT-1.31/mptrack/KeyConfigDlg.cpp Thu Nov 21 20:56:35 2024 (r22257) +++ branches/OpenMPT-1.31/mptrack/KeyConfigDlg.cpp Thu Nov 21 20:57:20 2024 (r22258) @@ -726,7 +726,7 @@ if(m_bKeyUp.GetCheck() != BST_UNCHECKED) event |= kKeyEventUp; - KeyCombination kc((commandCategories[m_curCategory]).id, m_eCustHotKey.mod, m_eCustHotKey.code, event); + KeyCombination kc((commandCategories[GetCategoryFromCommandID(cmd)]).id, m_eCustHotKey.mod, m_eCustHotKey.code, event); //detect invalid input if(!kc.KeyCode()) { |
From: <sv...@op...> - 2024-11-21 19:56:48
|
Author: sagamusix Date: Thu Nov 21 20:56:35 2024 New Revision: 22257 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22257 Log: [Fix] Key Config: When changing a shortcut via a search that had results in multiple contexts, a wrong context could be assigned to the shortcut. Modified: trunk/OpenMPT/mptrack/KeyConfigDlg.cpp Modified: trunk/OpenMPT/mptrack/KeyConfigDlg.cpp ============================================================================== --- trunk/OpenMPT/mptrack/KeyConfigDlg.cpp Thu Nov 21 14:34:01 2024 (r22256) +++ trunk/OpenMPT/mptrack/KeyConfigDlg.cpp Thu Nov 21 20:56:35 2024 (r22257) @@ -451,7 +451,7 @@ const bool hasKey = m_eFindHotKey.HasKey(); if(!hasKey) UpdateCategory(); - UpdateShortcutList(hasKey ? - 1: m_curCategory); + UpdateShortcutList(hasKey ? -1 : m_curCategory); m_lbnCommandKeys.SetFocus(); } @@ -896,7 +896,7 @@ if(m_bKeyUp.GetCheck() != BST_UNCHECKED) event |= kKeyEventUp; - KeyCombination kc((commandCategories[m_curCategory]).id, m_eCustHotKey.mod, m_eCustHotKey.code, event); + KeyCombination kc((commandCategories[GetCategoryFromCommandID(cmd)]).id, m_eCustHotKey.mod, m_eCustHotKey.code, event); //detect invalid input if(!kc.KeyCode()) { @@ -909,7 +909,7 @@ kc.EventType(kKeyEventDown); } - bool add = true; + bool add = true, updateAll = false; std::pair<CommandID, KeyCombination> conflictCmd; if(CCommandSet::MustBeModifierKey(cmd) && !kc.IsModifierCombination()) { @@ -923,6 +923,7 @@ if(delOld == cnfYes) { m_localCmdSet->Remove(conflictCmd.second, conflictCmd.first); + updateAll = true; } else if(delOld == cnfCancel) { // Cancel altogther; restore original choice @@ -943,7 +944,7 @@ //process valid input m_localCmdSet->Remove(m_curKeyChoice, cmd); UpdateWarning(m_localCmdSet->Add(kc, cmd, true, m_curKeyChoice), true); - ForceUpdateGUI(); + ForceUpdateGUI(updateAll); } } |
From: <sv...@op...> - 2024-11-21 13:34:13
|
Author: sagamusix Date: Thu Nov 21 14:34:01 2024 New Revision: 22256 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22256 Log: Merged revision(s) 22255 from trunk/OpenMPT: [Mod] Tree view: Gray out "Open with Explorer" item for modules that have not been saved yet. ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/mptrack/View_tre.cpp Modified: branches/OpenMPT-1.31/mptrack/View_tre.cpp ============================================================================== --- branches/OpenMPT-1.31/mptrack/View_tre.cpp Thu Nov 21 14:33:33 2024 (r22255) +++ branches/OpenMPT-1.31/mptrack/View_tre.cpp Thu Nov 21 14:34:01 2024 (r22256) @@ -3006,7 +3006,7 @@ AppendMenu(hMenu, MF_STRING, defaultID, ih->GetKeyTextFromCommand(kcTreeViewOpen, _T("&View"))); AppendMenu(hMenu, MF_STRING, ID_MODTREE_CLOSE, _T("&Close")); AppendMenu(hMenu, MF_STRING, ID_MODTREE_RENAME, ih->GetKeyTextFromCommand(kcTreeViewRename, _T("Re&name"))); - AppendMenu(hMenu, MF_STRING, ID_MODTREE_OPENITEM, _T("&Open in Explorer")); + AppendMenu(hMenu, MF_STRING | ((!modDoc || modDoc->GetPathNameMpt().empty()) ? MF_GRAYED : 0), ID_MODTREE_OPENITEM, _T("&Open in Explorer")); break; case MODITEM_COMMENTS: |