#include <ActionsMenu.h>
Collaboration diagram for ActionsMenu:
Public Types | |
enum | Direction { shrink = 0, expand } |
Public Methods | |
ActionsMenu (MainWindow &mw_) | |
void | shift_a_up () |
void | shift_a_down () |
void | shift_b_up () |
void | shift_b_down () |
Private Methods | |
void | shift (Column s_, Direction d_) |
Private Attributes | |
MainWindow & | m_mw |
|
Definition at line 30 of file ActionsMenu.h. Referenced by shift.
|
|
Definition at line 28 of file ActionsMenu.h. References m_mw.
00028 : m_mw (mw_) { /* no-op */ } |
|
Definition at line 71 of file ActionsMenu.cpp. References Column, Direction, dump_vector, Config::get_A_dir, Config::get_A_prefix, MainWindow::get_A_selection, Config::get_B_dir, Config::get_B_prefix, MainWindow::get_B_selection, MainWindow::get_clist, MainWindow::get_config, Config::get_proj_path, MainWindow::get_row, left_column, log_rename, m_mw, make_next_name, make_prev_name, parse_format, MainWindow::reload_cb, and shrink. Referenced by shift_b_down, and shift_b_up.
00072 { 00073 trace("ActionsMenu::shift"); 00074 string msg; 00075 Config& cfg = m_mw.get_config (); 00076 00077 /* Figure out the file name of the selected file. 00078 00079 /<proj_path>/<dir>/<prefix><number>.wav or in short 00080 /<dirpath>/<prefix><number>.wav 00081 */ 00082 string prefix; 00083 string proj_path; 00084 string dirpath; 00085 string format; 00086 string fname; 00087 string target; 00088 string src; 00089 00090 prefix = col_==left_column ? cfg.get_A_prefix () : cfg.get_B_prefix (); 00091 proj_path = cfg.get_proj_path (); 00092 dirpath = proj_path + "/" 00093 + (col_ == left_column ? cfg.get_A_dir () : cfg.get_B_dir ()); 00094 00095 fname = prefix 00096 + (left_column ? m_mw.get_A_selection () : m_mw.get_B_selection ()) 00097 + ".wav"; 00098 00099 DL((APP,"dirpath = \"%s\"\n", dirpath.c_str ())); 00100 DL((APP,"fname = \"%s\"\n", fname.c_str ())); 00101 00102 vector<string> ls = m_mw.get_clist (col_); 00103 dump_vector ("=== CList sequence ===", ls); 00104 00105 format = parse_format (prefix, ls); 00106 00107 if (format.length () == 0) { 00108 DL((APP,"Failed to parse format!\n")); 00109 Gtk::MessageDialog error ("Error parsing format!", 00110 MESSAGE_ERROR, BUTTONS_CLOSE); 00111 error.run (); 00112 return; 00113 } 00114 00115 int row = m_mw.get_row (); 00116 DL((TRACE,"Selected row %d, \"%s\"\n", row, ls[row].c_str ())); 00117 00118 /*************************************************************************** 00119 Shrink the sequence 00120 ***************************************************************************/ 00121 if (d_ == ActionsMenu::shrink) { 00122 DL((TRACE,"Shrinking sequence...\n")); 00123 dump_vector ("=== Original sequence ===", ls); 00124 00125 src = ls [row]; 00126 00127 if (row != 0) { 00128 ls.erase (ls.begin (), ls.begin () + row); 00129 } 00130 dump_vector ("=== Chopped sequence ===", ls); 00131 00132 if (src != "gap") { 00133 src = dirpath + "/" + prefix + src + ".wav"; 00134 target = src + ".bkp"; 00135 log_rename (src, target); 00136 ::rename (src.c_str (), target.c_str ()); 00137 } 00138 int i = 0; 00139 while (i < ls.size ()) { 00140 DL((TRACE,"Processing ls[%d] = \"%s\"\n", i, ls[i].c_str ())); 00141 if (ls [i] != "gap") { 00142 src = dirpath + "/" + prefix + ls [i] + ".wav"; 00143 target = make_prev_name (src, format, prefix, dirpath); 00144 log_rename (src, target); 00145 ::rename (src.c_str (), target.c_str ()); 00146 } 00147 i++; 00148 } 00149 } 00150 /*************************************************************************** 00151 Expand the sequence 00152 ***************************************************************************/ 00153 else { 00154 DL((TRACE,"Expanding sequence...\n")); 00155 dump_vector ("=== Original sequence ===", ls); 00156 00157 if (row != 0) { 00158 ls.erase (ls.begin (), ls.begin () + row); 00159 } 00160 dump_vector ("=== Chopped sequence ===", ls); 00161 00162 vector<string>::reverse_iterator rk = ls.rbegin (); 00163 00164 while (rk != ls.rend ()) { 00165 DL((TRACE,"--------------------\n")); 00166 DL((TRACE,"Processing \"%s\"\n", (*rk).c_str ())); 00167 if ( *rk != "gap") { 00168 src = dirpath + "/" + prefix + *rk + ".wav"; 00169 DL((TRACE,"src: \"%s\"\n",src.c_str ())); 00170 target = make_next_name (src, format, prefix, dirpath); 00171 DL((TRACE,"target: \"%s\"\n",target.c_str ())); 00172 log_rename (src, target); 00173 ::rename (src.c_str (), target.c_str ()); 00174 } 00175 rk++; 00176 } 00177 } 00178 /* Reload modified list */ 00179 m_mw.reload_cb (); 00180 } |
|
Definition at line 45 of file ActionsMenu.h. Referenced by TopMenuBar::create. |
|
Definition at line 44 of file ActionsMenu.h. Referenced by TopMenuBar::create. |
|
Definition at line 47 of file ActionsMenu.h. References expand, left_column, and shift. Referenced by TopMenuBar::create.
00047 { shift (left_column, expand); } |
|
Definition at line 46 of file ActionsMenu.h. References left_column, shift, and shrink. Referenced by TopMenuBar::create.
00046 { shift (left_column, shrink); } |
|
Definition at line 42 of file ActionsMenu.h. Referenced by ActionsMenu, and shift. |