| 102 | } |
| 103 | |
| 104 | bool SelectTimeCommand::Apply(const CommandContext & context){ |
| 105 | // Many commands need focus on track panel. |
| 106 | // No harm in setting it with a scripted select. |
| 107 | TrackPanel::Get( context.project ).SetFocus(); |
| 108 | if( !bHasT0 && !bHasT1 ) |
| 109 | return true; |
| 110 | |
| 111 | // Defaults if no value... |
| 112 | if( !bHasT0 ) |
| 113 | mT0 = 0.0; |
| 114 | if( !bHasT1 ) |
| 115 | mT1 = 0.0; |
| 116 | if( !bHasRelativeSpec ) |
| 117 | mRelativeTo = 0; |
| 118 | |
| 119 | AudacityProject * p = &context.project; |
| 120 | double end = TrackList::Get(*p).GetEndTime(); |
| 121 | double t0; |
| 122 | double t1; |
| 123 | |
| 124 | auto &selectedRegion = ViewInfo::Get( *p ).selectedRegion; |
| 125 | switch( bHasRelativeSpec ? mRelativeTo : 0 ){ |
| 126 | default: |
| 127 | case 0: //project start |
| 128 | t0 = mT0; |
| 129 | t1 = mT1; |
| 130 | break; |
| 131 | case 1: //project |
| 132 | t0 = mT0; |
| 133 | t1 = end + mT1; |
| 134 | break; |
| 135 | case 2: //project end; |
| 136 | t0 = end - mT0; |
| 137 | t1 = end - mT1; |
| 138 | break; |
| 139 | case 3: //selection start |
| 140 | t0 = mT0 + selectedRegion.t0(); |
| 141 | t1 = mT1 + selectedRegion.t0(); |
| 142 | break; |
| 143 | case 4: //selection |
| 144 | t0 = mT0 + selectedRegion.t0(); |
| 145 | t1 = mT1 + selectedRegion.t1(); |
| 146 | break; |
| 147 | case 5: //selection end |
| 148 | t0 = selectedRegion.t1() - mT0; |
| 149 | t1 = selectedRegion.t1() - mT1; |
| 150 | break; |
| 151 | } |
| 152 | |
| 153 | selectedRegion.setTimes( t0, t1 ); |
| 154 | return true; |
| 155 | } |
| 156 | |
| 157 | const ComponentInterfaceSymbol SelectFrequenciesCommand::Symbol |
| 158 | { XO("Select Frequencies") }; |
nothing calls this directly
no test coverage detected