SceneOverview.cpp
Go to the documentation of this file.
1 /*
2  * This file is part of ArmarX.
3  *
4  * Copyright (C) 2011-2016, High Performance Humanoid Technologies (H2T), Karlsruhe Institute of Technology (KIT), all rights reserved.
5  *
6  * ArmarX is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9  *
10  * ArmarX is distributed in the hope that it will be useful, but
11  * WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program. If not, see <http://www.gnu.org/licenses/>.
17  *
18  * @package
19  * @author
20  * @date
21  * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
22  * GNU General Public License
23  */
24 #include "SceneOverview.h"
25 
27 
28 namespace armarx
29 {
30 
31  SceneOverview::SceneOverview(QWidget* parent) : QGraphicsView(parent), graphicsViewZoomer(NULL)
32 
33  {
34  }
35 
36  void
38  {
39  disconnect(this);
40  graphicsViewZoomer = zoomer;
41  connect(graphicsViewZoomer, SIGNAL(moved()), this, SLOT(retrieveUpdate()));
42  connect(graphicsViewZoomer, SIGNAL(zoomed()), this, SLOT(retrieveUpdate()));
43  }
44 
45  void
47  {
48  if (!graphicsViewZoomer || !graphicsViewZoomer->getView())
49  {
50  return;
51  }
52 
53  selectionRect = graphicsViewZoomer->getView()
54  ->mapToScene(graphicsViewZoomer->getView()->rect())
55  .boundingRect();
56 
57  if (scene())
58  {
59  fitInView(scene()->itemsBoundingRect().adjusted(-30, -30, 30, 30), Qt::KeepAspectRatio);
60  }
61 
62  // ARMARX_INFO_S << "overview update: " << selectionRect;
63  update();
64  }
65 
66 } // namespace armarx
67 
68 void
69 armarx::SceneOverview::drawForeground(QPainter* painter, const QRectF& rect)
70 {
71  QPen pen(QBrush(Qt::red), 5);
72  painter->setPen(pen);
73  painter->drawRect(selectionRect);
74  QGraphicsView::drawForeground(painter, rect);
75  // ARMARX_INFO_S << "drawing foreground";
76 }
77 
78 void
80 {
81  retrieveUpdate();
82 }
armarx::SceneOverview::SceneOverview
SceneOverview(QWidget *parent=0)
Definition: SceneOverview.cpp:31
armarx::SceneOverview::resizeEvent
void resizeEvent(QResizeEvent *) override
Definition: SceneOverview.cpp:79
armarx::SceneOverview::drawForeground
void drawForeground(QPainter *painter, const QRectF &rect) override
Definition: SceneOverview.cpp:69
armarx::armem::server::ltm::util::mongodb::detail::update
bool update(mongocxx::collection &coll, const nlohmann::json &query, const nlohmann::json &update)
Definition: mongodb.cpp:68
armarx::red
QColor red()
Definition: StyleSheets.h:78
armarx::Graphics_view_zoom
Definition: GraphicsViewZoom.h:65
SceneOverview.h
armarx::Graphics_view_zoom::getView
QGraphicsView * getView() const
Definition: GraphicsViewZoom.cpp:76
ArmarXWidgetController.h
armarx::SceneOverview::setZoomer
void setZoomer(Graphics_view_zoom *zoomer)
Definition: SceneOverview.cpp:37
armarx::SceneOverview::retrieveUpdate
void retrieveUpdate()
Definition: SceneOverview.cpp:46
armarx
This file offers overloads of toIce() and fromIce() functions for STL container types.
Definition: ArmarXTimeserver.cpp:27