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

New SequenceViewer, improved copy behavior

git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@2244 5a81b35b-ba03-0410-adc8-b2c5c5119f08
parent 3d4c5b86
Branches
Tags
No related merge requests found
...@@ -186,18 +186,35 @@ void SequenceViewerV2::MouseWheelEvent(QWheelEvent* event) ...@@ -186,18 +186,35 @@ void SequenceViewerV2::MouseWheelEvent(QWheelEvent* event)
void SequenceViewerV2::CopyEvent(QKeyEvent* event) void SequenceViewerV2::CopyEvent(QKeyEvent* event)
{ {
const QModelIndexList& list = seq_table_view_->selectionModel()->selectedIndexes(); QItemSelectionModel* model = seq_table_view_->selectionModel();
const QModelIndexList& list = model->selectedIndexes();
if(list.size()>0){ if(list.size()>0){
QString clipboard_string; QString clipboard_string;
QSet<int> rows;
QVarLengthArray<QString> clipboard_array(model_->rowCount()); int min_col=0;
int max_col=0;
for(int i = 0; i < list.size(); i++){ for(int i = 0; i < list.size(); i++){
const QModelIndex& index = list[i]; if(list[i].column()>max_col){
clipboard_array[index.row()].append(model_->data(index,Qt::DisplayRole).toString()); max_col = list[i].column();
}
if(list[i].column()<min_col){
min_col = list[i].column();
}
rows.insert(list[i].row());
} }
for(int i = 0; i < clipboard_array.size(); i++){
if(clipboard_array[i].size()>0){ for(int i = 0; i < model_->rowCount(); i++){
clipboard_string.append(clipboard_array[i]+"\n"); if(rows.contains(i)){
for(int j=min_col; j<=max_col; j++){
const QModelIndex& index = model_->index(i,j);
if(model->isSelected(index)){
clipboard_string.append(model_->data(index,Qt::DisplayRole).toString());
}
else{
clipboard_string.append('-');
}
}
clipboard_string.append("\n");
} }
} }
QApplication::clipboard()->setText(clipboard_string); QApplication::clipboard()->setText(clipboard_string);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment