From: <j-...@us...> - 2011-02-21 00:01:50
|
Revision: 5444 http://kdenlive.svn.sourceforge.net/kdenlive/?rev=5444&view=rev Author: j-b-m Date: 2011-02-21 00:01:43 +0000 (Mon, 21 Feb 2011) Log Message: ----------- Double click on monitor overlay info to edit a marker Modified Paths: -------------- trunk/kdenlive/src/mainwindow.cpp trunk/kdenlive/src/monitor.cpp trunk/kdenlive/src/monitor.h Modified: trunk/kdenlive/src/mainwindow.cpp =================================================================== --- trunk/kdenlive/src/mainwindow.cpp 2011-02-20 23:32:44 UTC (rev 5443) +++ trunk/kdenlive/src/mainwindow.cpp 2011-02-21 00:01:43 UTC (rev 5444) @@ -1422,6 +1422,7 @@ connect(deleteAllClipMarkers, SIGNAL(triggered(bool)), this, SLOT(slotDeleteAllClipMarkers())); KAction* editClipMarker = new KAction(KIcon("document-properties"), i18n("Edit Marker"), this); + editClipMarker->setData(QString("edit_marker")); collection.addAction("edit_clip_marker", editClipMarker); connect(editClipMarker, SIGNAL(triggered(bool)), this, SLOT(slotEditClipMarker())); Modified: trunk/kdenlive/src/monitor.cpp =================================================================== --- trunk/kdenlive/src/monitor.cpp 2011-02-20 23:32:44 UTC (rev 5443) +++ trunk/kdenlive/src/monitor.cpp 2011-02-21 00:01:43 UTC (rev 5444) @@ -60,7 +60,8 @@ m_monitorRefresh(NULL), m_effectWidget(NULL), m_selectedClip(NULL), - m_loopClipTransition(true) + m_loopClipTransition(true), + m_editMarker(NULL) { QVBoxLayout *layout = new QVBoxLayout; @@ -256,8 +257,16 @@ m_contextMenu->addMenu(m_playMenu); if (goMenu) m_contextMenu->addMenu(goMenu); - if (markerMenu) + if (markerMenu) { m_contextMenu->addMenu(markerMenu); + QList <QAction *>list = markerMenu->actions(); + for (int i = 0; i < list.count(); i++) { + if (list.at(i)->data().toString() == "edit_marker") { + m_editMarker = list.at(i); + break; + } + } + } m_playMenu->addAction(playZone); m_playMenu->addAction(loopZone); @@ -443,7 +452,7 @@ void Monitor::mousePressEvent(QMouseEvent * event) { if (event->button() != Qt::RightButton) { - if (m_videoBox->underMouse()) { + if (m_videoBox->underMouse() && (!m_overlay || !m_overlay->underMouse())) { m_dragStarted = true; m_DragStartPosition = event->pos(); } @@ -888,6 +897,7 @@ #if defined(Q_WS_MAC) || defined(USE_OPEN_GL) if (m_glWidget->layout()) delete m_glWidget->layout(); m_overlay = new Overlay(); + connect(m_overlay, SIGNAL(editMarker()), this, SLOT(slotEditMarker())); QVBoxLayout *layout = new QVBoxLayout; layout->addStretch(10); layout->addWidget(m_overlay); @@ -896,6 +906,7 @@ } else { if (m_monitorRefresh->layout()) delete m_monitorRefresh->layout(); m_overlay = new Overlay(); + connect(m_overlay, SIGNAL(editMarker()), this, SLOT(slotEditMarker())); QVBoxLayout *layout = new QVBoxLayout; layout->addStretch(10); layout->addWidget(m_overlay); @@ -910,6 +921,11 @@ } } +void Monitor::slotEditMarker() +{ + if (m_editMarker) m_editMarker->trigger(); +} + void Monitor::updateTimecodeFormat() { m_timePos->slotUpdateTimeCodeFormat(); @@ -1029,13 +1045,32 @@ Overlay::Overlay(QWidget* parent) : QLabel(parent) { - setAttribute(Qt::WA_TransparentForMouseEvents); + //setAttribute(Qt::WA_TransparentForMouseEvents); setAutoFillBackground(true); setBackgroundRole(QPalette::Base); setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); + setCursor(Qt::PointingHandCursor); } +// virtual +void Overlay::mouseReleaseEvent ( QMouseEvent * event ) +{ + event->accept(); +} +// virtual +void Overlay::mousePressEvent( QMouseEvent * event ) +{ + event->accept(); +} + +// virtual +void Overlay::mouseDoubleClickEvent ( QMouseEvent * event ) +{ + emit editMarker(); + event->accept(); +} + void Overlay::setOverlayText(const QString &text, bool isZone) { setHidden(true); Modified: trunk/kdenlive/src/monitor.h =================================================================== --- trunk/kdenlive/src/monitor.h 2011-02-20 23:32:44 UTC (rev 5443) +++ trunk/kdenlive/src/monitor.h 2011-02-21 00:01:43 UTC (rev 5444) @@ -96,6 +96,14 @@ private: bool m_isZone; + +protected: + virtual void mouseDoubleClickEvent ( QMouseEvent * event ); + virtual void mousePressEvent ( QMouseEvent * event ); + virtual void mouseReleaseEvent ( QMouseEvent * event ); + +signals: + void editMarker(); }; class Monitor : public QWidget @@ -179,6 +187,7 @@ QToolBar *m_toolbar; QWidget *m_volumeWidget; QSlider *m_audioSlider; + QAction *m_editMarker; private slots: void seekCursor(int pos); @@ -195,6 +204,7 @@ void slotGoToMarker(QAction *action); void slotSetVolume(int volume); void slotShowVolume(); + void slotEditMarker(); public slots: void slotOpenFile(const QString &); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |