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

New SequenceViewer, added zoom (<Ctrl>+<MouseWheel>)

git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@2182 5a81b35b-ba03-0410-adc8-b2c5c5119f08
parent 3c8778e7
No related branches found
No related tags found
No related merge requests found
...@@ -130,4 +130,24 @@ Qt::ItemFlags BaseRow::Flags(int column) const ...@@ -130,4 +130,24 @@ Qt::ItemFlags BaseRow::Flags(int column) const
void BaseRow::DoubleClicked(int column) void BaseRow::DoubleClicked(int column)
{ } { }
void BaseRow::ZoomIn()
{
QFont font = this->GetFont();
int pointsize = font.pointSize();
if(pointsize < 30){
font.setPointSize(++pointsize);
}
this->SetFont(font);
}
void BaseRow::ZoomOut()
{
QFont font = this->GetFont();
int pointsize = font.pointSize();
if(pointsize > 5){
font.setPointSize(--pointsize);
}
this->SetFont(font);
}
}} }}
...@@ -60,6 +60,9 @@ public: ...@@ -60,6 +60,9 @@ public:
virtual Qt::ItemFlags Flags(int column) const; virtual Qt::ItemFlags Flags(int column) const;
virtual void DoubleClicked(int column); virtual void DoubleClicked(int column);
virtual void ZoomIn();
virtual void ZoomOut();
private: private:
bool IsPainterPosValid(int pos); bool IsPainterPosValid(int pos);
PainterList painter_; PainterList painter_;
......
...@@ -250,4 +250,18 @@ Qt::ItemFlags SequenceModel::flags(const QModelIndex& index) const ...@@ -250,4 +250,18 @@ Qt::ItemFlags SequenceModel::flags(const QModelIndex& index) const
return QAbstractItemModel::flags(index); return QAbstractItemModel::flags(index);
} }
void SequenceModel::ZoomIn()
{
for (int i = 0; i<objects_.size(); i++){
objects_[i]->ZoomIn();
}
}
void SequenceModel::ZoomOut()
{
for (int i = 0; i<objects_.size(); i++){
objects_[i]->ZoomOut();
}
}
}} }}
...@@ -68,6 +68,8 @@ public: ...@@ -68,6 +68,8 @@ public:
virtual Qt::ItemFlags flags(const QModelIndex& index=QModelIndex()) const; virtual Qt::ItemFlags flags(const QModelIndex& index=QModelIndex()) const;
public slots: public slots:
void ZoomIn();
void ZoomOut();
void DoubleClicked(const QModelIndex& index); void DoubleClicked(const QModelIndex& index);
void SelectionChanged(const QItemSelection& sel, const QItemSelection& desel); void SelectionChanged(const QItemSelection& sel, const QItemSelection& desel);
......
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
namespace ost { namespace gui { namespace ost { namespace gui {
SequenceRow::SequenceRow(const QString& name, seq::SequenceHandle& sequence, ViewObject* parent) : BaseRow(QFont("Courier",11),parent), name_(name), sequence_(sequence) SequenceRow::SequenceRow(const QString& name, seq::SequenceHandle& sequence, ViewObject* parent) : BaseRow(QFont("Courier",11),parent), name_(name), name_font_(QFont("Courier",11)), sequence_(sequence)
{ } { }
SequenceRow::SequenceRow(const QString& name, ViewObject* parent) : BaseRow(QFont("Courier",11),parent), name_(name) SequenceRow::SequenceRow(const QString& name, ViewObject* parent) : BaseRow(QFont("Courier",11),parent), name_(name)
...@@ -74,7 +74,7 @@ QVariant SequenceRow::GetData(int column, int role) const ...@@ -74,7 +74,7 @@ QVariant SequenceRow::GetData(int column, int role) const
return QVariant(this->name_); return QVariant(this->name_);
} }
if (role == Qt::FontRole){ if (role == Qt::FontRole){
return QVariant(this->GetFont()); return QVariant(name_font_);
} }
} }
else if(column > 0) { else if(column > 0) {
......
...@@ -57,6 +57,7 @@ public: ...@@ -57,6 +57,7 @@ public:
private: private:
QString name_; QString name_;
QFont name_font_;
seq::SequenceHandle sequence_; seq::SequenceHandle sequence_;
}; };
......
...@@ -342,6 +342,16 @@ void SequenceTableView::mouseReleaseEvent(QMouseEvent* event) ...@@ -342,6 +342,16 @@ void SequenceTableView::mouseReleaseEvent(QMouseEvent* event)
QAbstractItemView::mouseReleaseEvent(event); QAbstractItemView::mouseReleaseEvent(event);
} }
void SequenceTableView::wheelEvent(QWheelEvent* event)
{
if(event->modifiers() & Qt::ControlModifier){
emit MouseWheelEvent(event);
}
else{
QTableView::wheelEvent(event);
}
}
SequenceTableView::~SequenceTableView(){} SequenceTableView::~SequenceTableView(){}
}} }}
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
*/ */
#include <QTableView> #include <QTableView>
#include <QWheelEvent>
#include <ost/gui/module_config.hh> #include <ost/gui/module_config.hh>
...@@ -41,6 +42,9 @@ public: ...@@ -41,6 +42,9 @@ public:
QTableView* GetStaticField(); QTableView* GetStaticField();
~SequenceTableView(); ~SequenceTableView();
signals:
void MouseWheelEvent(QWheelEvent* event);
public slots: public slots:
void columnCountChanged(const QModelIndex& index, int old_count, int new_count); void columnCountChanged(const QModelIndex& index, int old_count, int new_count);
void rowCountChanged(const QModelIndex& index, int old_count, int new_count); void rowCountChanged(const QModelIndex& index, int old_count, int new_count);
...@@ -50,7 +54,8 @@ public slots: ...@@ -50,7 +54,8 @@ public slots:
protected: protected:
virtual void mouseDoubleClickEvent(QMouseEvent* event); virtual void mouseDoubleClickEvent(QMouseEvent* event);
virtual void mouseReleaseEvent(QMouseEvent* event); virtual void mouseReleaseEvent(QMouseEvent* event);
virtual void resizeEvent(QResizeEvent *event); virtual void resizeEvent(QResizeEvent* event);
virtual void wheelEvent (QWheelEvent* event);
virtual QModelIndex moveCursor(CursorAction cursorAction, Qt::KeyboardModifiers modifiers); virtual QModelIndex moveCursor(CursorAction cursorAction, Qt::KeyboardModifiers modifiers);
void scrollTo (const QModelIndex & index, ScrollHint hint = EnsureVisible); void scrollTo (const QModelIndex & index, ScrollHint hint = EnsureVisible);
......
...@@ -73,6 +73,7 @@ SequenceViewerV2::SequenceViewerV2(QWidget* parent): Widget(NULL,parent) ...@@ -73,6 +73,7 @@ SequenceViewerV2::SequenceViewerV2(QWidget* parent): Widget(NULL,parent)
connect(seq_table_view_,SIGNAL(doubleClicked(const QModelIndex&)),model_,SLOT(DoubleClicked(const QModelIndex&))); connect(seq_table_view_,SIGNAL(doubleClicked(const QModelIndex&)),model_,SLOT(DoubleClicked(const QModelIndex&)));
connect(seq_table_view_->GetStaticColumn(),SIGNAL(doubleClicked(const QModelIndex&)),this,SLOT(DoubleClicked(const QModelIndex&))); connect(seq_table_view_->GetStaticColumn(),SIGNAL(doubleClicked(const QModelIndex&)),this,SLOT(DoubleClicked(const QModelIndex&)));
connect(seq_table_view_->GetStaticRow(),SIGNAL(doubleClicked(const QModelIndex&)),this,SLOT(DoubleClicked(const QModelIndex&))); connect(seq_table_view_->GetStaticRow(),SIGNAL(doubleClicked(const QModelIndex&)),this,SLOT(DoubleClicked(const QModelIndex&)));
connect(seq_table_view_,SIGNAL(MouseWheelEvent(QWheelEvent*)),this,SLOT(MouseWheelEvent(QWheelEvent*)));
gfx::GfxNodeP root_node = gfx::Scene::Instance().GetRootNode(); gfx::GfxNodeP root_node = gfx::Scene::Instance().GetRootNode();
GetNodesVisitor gnv; GetNodesVisitor gnv;
...@@ -136,6 +137,26 @@ void SequenceViewerV2::DoubleClicked(const QModelIndex& index) ...@@ -136,6 +137,26 @@ void SequenceViewerV2::DoubleClicked(const QModelIndex& index)
connect(seq_table_view_->selectionModel(), SIGNAL(selectionChanged(const QItemSelection&, const QItemSelection&)), this, SLOT(SelectionModelChanged(const QItemSelection&, const QItemSelection&))); connect(seq_table_view_->selectionModel(), SIGNAL(selectionChanged(const QItemSelection&, const QItemSelection&)), this, SLOT(SelectionModelChanged(const QItemSelection&, const QItemSelection&)));
} }
void SequenceViewerV2::MouseWheelEvent(QWheelEvent* event)
{
int delta = event->delta();
if (event->orientation() == Qt::Vertical) {
if(delta>0){
model_->ZoomIn();
seq_table_view_->viewport()->update();
seq_table_view_->resizeColumnsToContents();
seq_table_view_->resizeRowsToContents();
}
else if(delta<0){
model_->ZoomOut();
seq_table_view_->viewport()->update();
seq_table_view_->resizeColumnsToContents();
seq_table_view_->resizeRowsToContents();
}
}
event->accept();
}
SequenceViewerV2::~SequenceViewerV2(){ SequenceViewerV2::~SequenceViewerV2(){
gfx::Scene::Instance().DetachObserver(this); gfx::Scene::Instance().DetachObserver(this);
} }
......
...@@ -58,6 +58,7 @@ private: ...@@ -58,6 +58,7 @@ private:
private slots: private slots:
void SelectionModelChanged(const QItemSelection&, const QItemSelection&); void SelectionModelChanged(const QItemSelection&, const QItemSelection&);
void DoubleClicked(const QModelIndex& index); void DoubleClicked(const QModelIndex& index);
void MouseWheelEvent(QWheelEvent* event);
}; };
......
...@@ -180,6 +180,20 @@ void ViewObject::DoubleClicked(int row, int column) ...@@ -180,6 +180,20 @@ void ViewObject::DoubleClicked(int row, int column)
} }
} }
void ViewObject::ZoomIn()
{
for(int i=0; i< rows_.size(); i++){
rows_[i]->ZoomIn();
}
}
void ViewObject::ZoomOut()
{
for(int i=0; i< rows_.size(); i++){
rows_[i]->ZoomOut();
}
}
QMap<int, QList<int> > ViewObject::GetIndexesForView(const mol::EntityView& view) QMap<int, QList<int> > ViewObject::GetIndexesForView(const mol::EntityView& view)
{ {
if(view.GetChainCount()==0){ if(view.GetChainCount()==0){
......
...@@ -74,6 +74,8 @@ public: ...@@ -74,6 +74,8 @@ public:
Qt::ItemFlags Flags(int row, int column) const; Qt::ItemFlags Flags(int row, int column) const;
void DoubleClicked(int row, int column); void DoubleClicked(int row, int column);
void ZoomIn();
void ZoomOut();
QMap<int, QList<int> > GetIndexesForView(const mol::EntityView& view); QMap<int, QList<int> > GetIndexesForView(const mol::EntityView& view);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment