Skip to content
Snippets Groups Projects
Commit 6b916af8 authored by stefan's avatar stefan
Browse files

New SequenceViewer, export fixes, GetDisplayModes reimplemented

git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@2316 5a81b35b-ba03-0410-adc8-b2c5c5119f08
parent 0ebf9b4a
No related branches found
No related tags found
No related merge requests found
...@@ -46,47 +46,47 @@ void change_display_mode_c(SequenceViewerV2* seq_viewer, const seq::AlignmentHan ...@@ -46,47 +46,47 @@ void change_display_mode_c(SequenceViewerV2* seq_viewer, const seq::AlignmentHan
seq_viewer->ChangeDisplayMode(alignment, mode); seq_viewer->ChangeDisplayMode(alignment, mode);
} }
void get_current_display_mode_a(SequenceViewerV2* seq_viewer) String get_current_display_mode_a(SequenceViewerV2* seq_viewer)
{ {
seq_viewer->GetCurrentDisplayMode(); return seq_viewer->GetCurrentDisplayMode().toStdString();
} }
void get_current_display_mode_b(SequenceViewerV2* seq_viewer, const gfx::EntityP& entity) String get_current_display_mode_b(SequenceViewerV2* seq_viewer, const gfx::EntityP& entity)
{ {
seq_viewer->GetCurrentDisplayMode(entity); return seq_viewer->GetCurrentDisplayMode(entity).toStdString();
} }
void get_current_display_mode_c(SequenceViewerV2* seq_viewer, const seq::AlignmentHandle& alignment) String get_current_display_mode_c(SequenceViewerV2* seq_viewer, const seq::AlignmentHandle& alignment)
{ {
seq_viewer->GetCurrentDisplayMode(alignment); return seq_viewer->GetCurrentDisplayMode(alignment).toStdString();
} }
std::vector<QString> get_display_modes_a(SequenceViewerV2* seq_viewer) std::vector<String> get_display_modes_a(SequenceViewerV2* seq_viewer)
{ {
std::vector<QString> modes; std::vector<String> modes;
const QStringList& list = seq_viewer->GetDisplayModes(); const QStringList& list = seq_viewer->GetDisplayModes();
for (int i=0; i<list.size(); i++){ for (int i=0; i<list.size(); i++){
modes.push_back(list.at(i)); modes.push_back(list.at(i).toStdString());
} }
return modes; return modes;
} }
std::vector<QString> get_display_modes_b(SequenceViewerV2* seq_viewer, const gfx::EntityP& entity) std::vector<String> get_display_modes_b(SequenceViewerV2* seq_viewer, const gfx::EntityP& entity)
{ {
std::vector<QString> modes; std::vector<String> modes;
const QStringList& list = seq_viewer->GetDisplayModes(entity); const QStringList& list = seq_viewer->GetDisplayModes(entity);
for (int i=0; i<list.size(); i++){ for (int i=0; i<list.size(); i++){
modes.push_back(list.at(i)); modes.push_back(list.at(i).toStdString());
} }
return modes; return modes;
} }
std::vector<QString> get_display_modes_c(SequenceViewerV2* seq_viewer, const seq::AlignmentHandle& alignment) std::vector<String> get_display_modes_c(SequenceViewerV2* seq_viewer, const seq::AlignmentHandle& alignment)
{ {
std::vector<QString> modes; std::vector<String> modes;
const QStringList& list = seq_viewer->GetDisplayModes(alignment); const QStringList& list = seq_viewer->GetDisplayModes(alignment);
for (int i=0; i<list.size(); i++){ for (int i=0; i<list.size(); i++){
modes.push_back(list.at(i)); modes.push_back(list.at(i).toStdString());
} }
return modes; return modes;
} }
...@@ -113,9 +113,5 @@ void export_SequenceViewerV2() ...@@ -113,9 +113,5 @@ void export_SequenceViewerV2()
.def("GetQObject",&get_py_qobject<SequenceViewerV2>) .def("GetQObject",&get_py_qobject<SequenceViewerV2>)
.add_property("qobject", &get_py_qobject<SequenceViewerV2>) .add_property("qobject", &get_py_qobject<SequenceViewerV2>)
; ;
class_<std::vector<QString> >("QStringList", init<>())
.def(vector_indexing_suite<std::vector<QString>, true >())
;
} }
...@@ -297,19 +297,29 @@ void SequenceModel::DoubleClicked(const QModelIndex& index) ...@@ -297,19 +297,29 @@ void SequenceModel::DoubleClicked(const QModelIndex& index)
const QStringList& SequenceModel::GetDisplayModes() const QStringList& SequenceModel::GetDisplayModes()
{ {
display_modes_.clear(); display_modes_.clear();
bool removed = false; QMap<QString,int> string_map;
for (int i = 0; i<objects_.size(); i++){ for (int i = 0; i<objects_.size(); i++){
const QStringList& list = objects_[i]->GetDisplayModes(); const QStringList& list = objects_[i]->GetDisplayModes();
for(int j=0; j<list.size(); j++){ for(int j=0; j<list.size(); j++){
if(i = 0){ if(!string_map.contains(list.at(j))){
display_modes_.append(list.at(i)); string_map.insert(list.at(j),1);
} }
else if (!display_modes_.contains(list.at(i))){ else {
display_modes_.removeAll(list.at(i)); string_map[list.at(j)] = string_map[list.at(j)] + 1;
removed = true;
} }
} }
} }
bool removed = false;
QMapIterator<QString, int> i(string_map);
while (i.hasNext()) {
i.next();
if(objects_.size()-1 <= i.value()){
display_modes_.append(i.key());
}
else{
removed = true;
}
}
if(removed){ if(removed){
display_modes_.insert(0," "); display_modes_.insert(0," ");
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment