****************************************************************************
* Copyright (C) 2006 the VideoLAN team
* Copyright (C) 2004 Daniel Molkentin <molkentin@kde.org>
- * $Id: qvlcframe.hpp 16283 2006-08-17 18:16:09Z zorglub $
+ * $Id$
*
* Authors: Clément Stenac <zorglub@videolan.org>
* The "ClickLineEdit" control is based on code by Daniel Molkentin
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ *****************************************************************************/
#ifndef _CUSTOMWIDGETS_H_
#define _CUSTOMWIDGETS_H_
bool mDrawClickMsg;
};
+class QToolButton;
+class SearchLineEdit : public QFrame
+{
+ Q_OBJECT
+public:
+ SearchLineEdit( QWidget *parent );
+
+private:
+ ClickLineEdit *searchLine;
+ QToolButton *clearButton;
+
+private slots:
+ void updateText( const QString& );
+
+signals:
+ void textChanged( const QString& );
+};
+
/*****************************************************************
* Custom views
*****************************************************************/
#include <QPoint>
#include <QModelIndex>
+/**
+ Special QTreeView that can emit rightClicked()
+ */
class QVLCTreeView : public QTreeView
{
Q_OBJECT;
public:
- QVLCTreeView( QWidget * parent ) : QTreeView( parent )
+ void mouseReleaseEvent( QMouseEvent* e )
{
- };
- virtual ~QVLCTreeView() {};
+ if( e->button() & Qt::RightButton )
+ return; /* Do NOT forward to QTreeView!! */
+ QTreeView::mouseReleaseEvent( e );
+ }
- void mouseReleaseEvent(QMouseEvent* e )
+ void mousePressEvent( QMouseEvent* e )
{
if( e->button() & Qt::RightButton )
{
- emit rightClicked( indexAt( QPoint( e->x(), e->y() ) ),
- QCursor::pos() );
+ QModelIndex index = indexAt( QPoint( e->x(), e->y() ) );
+ if( index.isValid() )
+ setSelection( visualRect( index ), QItemSelectionModel::ClearAndSelect );
+ emit rightClicked( index, QCursor::pos() );
+ return;
}
+ if( e->button() & Qt::LeftButton )
+ {
+ if( !indexAt( QPoint( e->x(), e->y() ) ).isValid() )
+ clearSelection();
+ }
+ QTreeView::mousePressEvent( e );
}
+
signals:
void rightClicked( QModelIndex, QPoint );
};
+/* VLC Key/Wheel hotkeys interactions */
+
class QKeyEvent;
+class QWheelEvent;
+
+int qtKeyModifiersToVLC( QInputEvent* e );
int qtEventToVLCKey( QKeyEvent *e );
+int qtWheelEventToVLCKey( QWheelEvent *e );
QString VLCKeyToString( int val );
-int qtKeyModifiersToVLC( QInputEvent* e );
#endif
+