~ubuntu-branches/ubuntu/precise/grantlee/precise

« back to all changes in this revision

Viewing changes to examples/textedit/audiotextedit.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Harald Sitter
  • Date: 2010-06-11 23:41:45 UTC
  • Revision ID: james.westby@ubuntu.com-20100611234145-oas7rhdrbwy8j55c
Tags: upstream-0.1.1
ImportĀ upstreamĀ versionĀ 0.1.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
  This file is part of the Grantlee template system.
 
3
 
 
4
  Copyright (c) 2009,2010 Stephen Kelly <steveire@gmail.com>
 
5
 
 
6
  This library is free software; you can redistribute it and/or
 
7
  modify it under the terms of the GNU Lesser General Public
 
8
  License as published by the Free Software Foundation; either version
 
9
  2 of the Licence, or (at your option) any later version.
 
10
 
 
11
  This library is distributed in the hope that it will be useful,
 
12
  but WITHOUT ANY WARRANTY; without even the implied warranty of
 
13
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 
14
  Library General Public License for more details.
 
15
 
 
16
  You should have received a copy of the GNU Lesser General Public
 
17
  License along with this library.  If not, see <http://www.gnu.org/licenses/>.
 
18
 
 
19
*/
 
20
 
 
21
#include "audiotextedit.h"
 
22
 
 
23
#include <QFileDialog>
 
24
#include <QDebug>
 
25
 
 
26
#include "phonon/mediaobject.h"
 
27
 
 
28
#include "audioobject.h"
 
29
 
 
30
AudioTextEdit::AudioTextEdit(QWidget* parent)
 
31
  : QTextEdit(parent)
 
32
{
 
33
  viewport()->installEventFilter( this );
 
34
}
 
35
 
 
36
bool AudioTextEdit::eventFilter(QObject* obj, QEvent* event)
 
37
{
 
38
  if ( event->type() != QEvent::MouseButtonPress )
 
39
    return QObject::eventFilter(obj, event);
 
40
 
 
41
  QMouseEvent *mouseEvent = static_cast<QMouseEvent *>( event );
 
42
  QTextCursor textCursor = cursorForPosition( mouseEvent->pos() );
 
43
 
 
44
  QTextCharFormat currentFormat = textCursor.charFormat();
 
45
  textCursor.movePosition(QTextCursor::Right);
 
46
  QTextCharFormat previousFormat = textCursor.charFormat();
 
47
 
 
48
  QTextCharFormat audioFormat;
 
49
  if ( currentFormat.objectType() != AudioType )
 
50
  {
 
51
    if ( previousFormat.objectType() != AudioType )
 
52
      return QObject::eventFilter(obj, event);
 
53
    else
 
54
      audioFormat = previousFormat;
 
55
  } else
 
56
    audioFormat = currentFormat;
 
57
 
 
58
  Phonon::MediaObject *music =
 
59
         Phonon::createPlayer(Phonon::MusicCategory,
 
60
                              Phonon::MediaSource(audioFormat.property( AudioProperty ).toString()));
 
61
  music->play();
 
62
 
 
63
  return true;
 
64
}
 
65
 
 
66
#include "audiotextedit.moc"