#include <QApplication>
#include <QFontMetrics>
-#include <QMenu>
#include <QMouseEvent>
#include "ruler.hpp"
this, SLOT(hover_point_changed()));
}
-void Ruler::clear_selection()
-{
- const vector< shared_ptr<TimeItem> > items(view_.time_items());
- for (auto &i : items)
- i->select(false);
- update();
-}
-
QSize Ruler::sizeHint() const
{
const int text_height = calculate_text_height();
ViewItem::HighlightRadius);
}
+vector< shared_ptr<ViewItem> > Ruler::items()
+{
+ const vector< shared_ptr<TimeItem> > time_items(view_.time_items());
+ return vector< shared_ptr<ViewItem> >(
+ time_items.begin(), time_items.end());
+}
+
shared_ptr<ViewItem> Ruler::get_mouse_over_item(const QPoint &pt)
{
const vector< shared_ptr<TimeItem> > items(view_.time_items());
i->drag_by(delta);
}
-void Ruler::mousePressEvent(QMouseEvent *e)
-{
- if (e->buttons() & Qt::LeftButton) {
- mouse_down_point_ = e->pos();
- mouse_down_item_ = get_mouse_over_item(e->pos());
-
- clear_selection();
-
- if (mouse_down_item_) {
- mouse_down_item_->select();
- mouse_down_item_->drag();
- }
-
- selection_changed();
- }
-}
-
void Ruler::mouseReleaseEvent(QMouseEvent *)
{
using pv::widgets::Popup;
view_.add_flag(view_.offset() + ((double)e->x() + 0.5) * view_.scale());
}
-void Ruler::contextMenuEvent(QContextMenuEvent *event)
-{
- const shared_ptr<ViewItem> r = get_mouse_over_item(mouse_point_);
- if (!r)
- return;
-
- QMenu *menu = r->create_context_menu(this);
- if (menu)
- menu->exec(event->globalPos());
-}
-
void Ruler::keyPressEvent(QKeyEvent *e)
{
assert(e);