From: <sv...@op...> - 2024-03-02 23:13:09
|
Author: sagamusix Date: Sun Mar 3 00:12:57 2024 New Revision: 20192 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20192 Log: Merged revision(s) 20158 from trunk/OpenMPT: [New] Pattern tab: Using the new hidden setting "Pattern Editor.IgnoreSongTimeSignature", it is now possible to ignore the time signature provided by the module and use the pre-configured defaults from the Display tab instead (https://bugs.openmpt.org/view.php?id=1746). ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/mptrack/Draw_pat.cpp branches/OpenMPT-1.31/mptrack/TrackerSettings.cpp branches/OpenMPT-1.31/mptrack/TrackerSettings.h Modified: branches/OpenMPT-1.31/mptrack/Draw_pat.cpp ============================================================================== --- branches/OpenMPT-1.31/mptrack/Draw_pat.cpp Sun Mar 3 00:09:26 2024 (r20191) +++ branches/OpenMPT-1.31/mptrack/Draw_pat.cpp Sun Mar 3 00:12:57 2024 (r20192) @@ -819,6 +819,7 @@ return; } const CPattern &pattern = sndFile.Patterns[nPattern]; + const auto patternSetupFlags = TrackerSettings::Instance().m_dwPatternSetup.Get(); const PATTERNFONT *pfnt = PatternFont::currentFont; CRect rect; @@ -849,8 +850,20 @@ m_Dib.TextBlt(ibmp-4, 0, 4, m_szCell.cy, pfnt->nClrX+pfnt->nWidth-4, pfnt->nClrY, pfnt->dib); } while (ibmp + nColumnWidth <= maxndx); } - - const bool hexNumbers = (TrackerSettings::Instance().m_dwPatternSetup & PATTERN_HEXDISPLAY); + + // Time signature highlighting + ROWINDEX nBeat = sndFile.m_nDefaultRowsPerBeat, nMeasure = sndFile.m_nDefaultRowsPerMeasure; + if(TrackerSettings::Instance().patternIgnoreSongTimeSignature) + { + nBeat = TrackerSettings::Instance().m_nRowHighlightBeats; + nMeasure = TrackerSettings::Instance().m_nRowHighlightMeasures; + } else if(sndFile.Patterns[nPattern].GetOverrideSignature()) + { + nBeat = sndFile.Patterns[nPattern].GetRowsPerBeat(); + nMeasure = sndFile.Patterns[nPattern].GetRowsPerMeasure(); + } + + const bool hexNumbers = (patternSetupFlags & PATTERN_HEXDISPLAY); bool bRowSel = false; int row_col = -1, row_bkcol = -1; for(ROWINDEX row = startRow; row < numRows; row++) @@ -888,18 +901,11 @@ row_col = MODCOLOR_TEXTNORMAL; row_bkcol = MODCOLOR_BACKNORMAL; - // time signature highlighting - ROWINDEX nBeat = sndFile.m_nDefaultRowsPerBeat, nMeasure = sndFile.m_nDefaultRowsPerMeasure; - if(sndFile.Patterns[nPattern].GetOverrideSignature()) - { - nBeat = sndFile.Patterns[nPattern].GetRowsPerBeat(); - nMeasure = sndFile.Patterns[nPattern].GetRowsPerMeasure(); - } // secondary highlight (beats) ROWINDEX highlightRow = compRow; if(nMeasure > 0) highlightRow %= nMeasure; - if ((TrackerSettings::Instance().m_dwPatternSetup & PATTERN_2NDHIGHLIGHT) + if ((patternSetupFlags & PATTERN_2NDHIGHLIGHT) && nBeat > 0) { if((highlightRow % nBeat) == 0) @@ -908,7 +914,7 @@ } } // primary highlight (measures) - if((TrackerSettings::Instance().m_dwPatternSetup & PATTERN_STDHIGHLIGHT) + if((patternSetupFlags & PATTERN_STDHIGHLIGHT) && nMeasure > 0) { if(highlightRow == 0) @@ -1007,7 +1013,7 @@ { tx_col = row_col; bk_col = row_bkcol; - if((TrackerSettings::Instance().m_dwPatternSetup & PATTERN_EFFECTHILIGHT) && m->IsNote()) + if((patternSetupFlags & PATTERN_EFFECTHILIGHT) && m->IsNote()) { tx_col = MODCOLOR_NOTE; @@ -1047,7 +1053,7 @@ { tx_col = row_col; bk_col = row_bkcol; - if ((TrackerSettings::Instance().m_dwPatternSetup & PATTERN_EFFECTHILIGHT) && (m->instr)) + if ((patternSetupFlags & PATTERN_EFFECTHILIGHT) && (m->instr)) { tx_col = MODCOLOR_INSTRUMENT; } @@ -1073,7 +1079,7 @@ { tx_col = MODCOLOR_TEXTSELECTED; bk_col = MODCOLOR_BACKSELECTED; - } else if (!m->IsPcNote() && (TrackerSettings::Instance().m_dwPatternSetup & PATTERN_EFFECTHILIGHT)) + } else if (!m->IsPcNote() && (patternSetupFlags & PATTERN_EFFECTHILIGHT)) { auto fxColor = effectColors[static_cast<size_t>(m->GetVolumeEffectType())]; if(m->volcmd != VOLCMD_NONE && m->volcmd < MAX_VOLCMDS && fxColor != 0) @@ -1097,7 +1103,7 @@ uint16 val = m->GetValueEffectCol(); if(val > ModCommand::maxColumnValue) val = ModCommand::maxColumnValue; fx_col = row_col; - if (!isPCnote && m->command != CMD_NONE && m->command < MAX_EFFECTS && (TrackerSettings::Instance().m_dwPatternSetup & PATTERN_EFFECTHILIGHT)) + if (!isPCnote && m->command != CMD_NONE && m->command < MAX_EFFECTS && (patternSetupFlags & PATTERN_EFFECTHILIGHT)) { if(auto fxColor = effectColors[static_cast<size_t>(m->GetEffectType())]; fxColor != 0) fx_col = fxColor; Modified: branches/OpenMPT-1.31/mptrack/TrackerSettings.cpp ============================================================================== --- branches/OpenMPT-1.31/mptrack/TrackerSettings.cpp Sun Mar 3 00:09:26 2024 (r20191) +++ branches/OpenMPT-1.31/mptrack/TrackerSettings.cpp Sun Mar 3 00:12:57 2024 (r20192) @@ -264,6 +264,7 @@ , m_dwPatternSetup(conf, U_("Pattern Editor"), U_("PatternSetup"), GetDefaultPatternSetup()) , m_nRowHighlightMeasures(conf, U_("Pattern Editor"), U_("RowSpacing"), 16) , m_nRowHighlightBeats(conf, U_("Pattern Editor"), U_("RowSpacing2"), 4) + , patternIgnoreSongTimeSignature(conf, U_("Pattern Editor"), U_("IgnoreSongTimeSignature"), false) , recordQuantizeRows(conf, U_("Pattern Editor"), U_("RecordQuantize"), 0) , gnAutoChordWaitTime(conf, U_("Pattern Editor"), U_("AutoChordWaitTime"), 60) , orderlistMargins(conf, U_("Pattern Editor"), U_("DefaultSequenceMargins"), 0) Modified: branches/OpenMPT-1.31/mptrack/TrackerSettings.h ============================================================================== --- branches/OpenMPT-1.31/mptrack/TrackerSettings.h Sun Mar 3 00:09:26 2024 (r20191) +++ branches/OpenMPT-1.31/mptrack/TrackerSettings.h Sun Mar 3 00:12:57 2024 (r20192) @@ -783,6 +783,7 @@ CachedSetting<uint32> m_dwPatternSetup; CachedSetting<uint32> m_nRowHighlightMeasures; // primary (measures) and secondary (beats) highlight CachedSetting<uint32> m_nRowHighlightBeats; // primary (measures) and secondary (beats) highlight + CachedSetting<bool> patternIgnoreSongTimeSignature; CachedSetting<ROWINDEX> recordQuantizeRows; CachedSetting<UINT> gnAutoChordWaitTime; CachedSetting<int32> orderlistMargins; |