pick_align_menu(tr("Choose Alignment")),
view_align_menu(tr("View Alignment"))
{
+ setupActions();
browser.setSequences(analysis.sequences(), analysis.colorMapper());
setSelectedPaths(m, sel_paths);
setAlignment(0);
zoom.setValue(zoom_level);
computeMatchLines();
setupMenus();
+ setupAlignmentMenus();
setCentralWidget(&browser);
connect(&zoom, SIGNAL(valueChanged(double)),
&browser, SLOT(setZoom(double)));
+ ostringstream message;
+ message << "Selected " << selected_paths.size() << " paths";
+ statusBar()->showMessage(message.str().c_str(), 5000);
+ browser.updatePosition();
+}
+
+void MussaAlignedWindow::setupActions()
+{
+ // create our copy action
+ copySelectedSequenceAsFastaAction = new QAction(tr("&Copy As Fasta"), this);
+ connect(copySelectedSequenceAsFastaAction, SIGNAL(triggered()),
+ &browser, SLOT(copySelectedSequenceAsFasta()));
//Save pixel map action
saveBrowserPixmapAction = new QAction(tr("Save to image..."), this);
connect(saveBrowserPixmapAction, (SIGNAL(triggered())),
&browser, SLOT(promptSaveBrowserPixmap()));
saveBrowserPixmapAction->setIcon(QIcon(":/icons/image2.png"));
- QMenu *newMenu = menuBar()->addMenu(tr("&File"));
- newMenu->addAction(saveBrowserPixmapAction);
- menuBar()->addMenu(&pick_align_menu);
- menuBar()->addMenu(&view_align_menu);
-
- ostringstream message;
- message << "Selected " << selected_paths.size() << " paths";
- statusBar()->showMessage(message.str().c_str(), 5000);
- browser.updatePosition();
}
-
-void MussaAlignedWindow::setSelectedPaths(Mussa &m, const set<int>& sel_paths)
+void MussaAlignedWindow::setupMenus()
{
- // sets are sorted
- set<int>::iterator sel_i = sel_paths.begin();
- list<ConservedPath>::const_iterator path_i = m.paths().refined_pathz.begin();
- list<ConservedPath>::const_iterator path_end = m.paths().refined_pathz.end();
- size_t path_size = m.paths().refined_pathz.size();
- size_t pathid=0;
+ QMenu *newMenu = menuBar()->addMenu(tr("&File"));
+ newMenu->addAction(saveBrowserPixmapAction);
+
+ newMenu = menuBar()->addMenu(tr("&Edit"));
+ newMenu->addAction(copySelectedSequenceAsFastaAction);
- selected_paths.reserve(sel_paths.size());
- view_paths.reserve(sel_paths.size());
- while (pathid != path_size and sel_i != sel_paths.end())
- {
- assert (*sel_i >= 0);
- size_t sel_pathid = (size_t)(*sel_i);
- if (pathid == sel_pathid) {
- selected_paths.push_back(*path_i);
- view_paths.push_back(true);
- ++pathid;
- ++path_i;
- ++sel_i;
- } else if (pathid < sel_pathid) {
- ++pathid;
- ++path_i;
- } else if (pathid > sel_pathid) {
- ++sel_i;
- }
- }
}
-void MussaAlignedWindow::setupMenus()
+void MussaAlignedWindow::setupAlignmentMenus()
{
pick_align_menu.clear();
view_align_menu.clear();
view_actions.push_back(view);
view_align_menu.addAction(view);
}
+
+ menuBar()->addMenu(&pick_align_menu);
+ menuBar()->addMenu(&view_align_menu);
+}
+
+
+void MussaAlignedWindow::setSelectedPaths(Mussa &m, const set<int>& sel_paths)
+{
+ // sets are sorted
+ set<int>::iterator sel_i = sel_paths.begin();
+ list<ConservedPath>::const_iterator path_i = m.paths().refined_pathz.begin();
+ list<ConservedPath>::const_iterator path_end = m.paths().refined_pathz.end();
+ size_t path_size = m.paths().refined_pathz.size();
+ size_t pathid=0;
+
+ selected_paths.reserve(sel_paths.size());
+ view_paths.reserve(sel_paths.size());
+ while (pathid != path_size and sel_i != sel_paths.end())
+ {
+ assert (*sel_i >= 0);
+ size_t sel_pathid = (size_t)(*sel_i);
+ if (pathid == sel_pathid) {
+ selected_paths.push_back(*path_i);
+ view_paths.push_back(true);
+ ++pathid;
+ ++path_i;
+ ++sel_i;
+ } else if (pathid < sel_pathid) {
+ ++pathid;
+ ++path_i;
+ } else if (pathid > sel_pathid) {
+ ++sel_i;
+ }
+ }
}
void MussaAlignedWindow::setAlignment(int alignment_index)