• Skip to content
  • Skip to link menu
Trinity API Reference
  • Trinity API Reference
  • interfaces
 

interfaces

  • interfaces
  • tdemediaplayer
  • tdefileaudiopreview
tdefileaudiopreview.cpp
1 #include "tdefileaudiopreview.h"
2 
3 #include <tqcheckbox.h>
4 #include <tqhbox.h>
5 #include <tqlayout.h>
6 #include <tqvgroupbox.h>
7 
8 #include <tdeglobal.h>
9 #include <tdeconfig.h>
10 #include <klibloader.h>
11 #include <tdelocale.h>
12 #include <tdemediaplayer/player.h>
13 #include <kmimetype.h>
14 #include <tdeparts/componentfactory.h>
15 
16 #include <kplayobjectfactory.h>
17 
18 #include <config-tdefile.h>
19 
20 class KFileAudioPreviewFactory : public KLibFactory
21 {
22 protected:
23  virtual TQObject *createObject( TQObject *parent, const char *name,
24  const char *className, const TQStringList & args)
25  {
26  Q_UNUSED(className);
27  Q_UNUSED(args);
28  return TQT_TQOBJECT(new KFileAudioPreview( dynamic_cast<TQWidget*>( parent ), name ));
29  }
30 };
31 
32 K_EXPORT_COMPONENT_FACTORY( tdefileaudiopreview, KFileAudioPreviewFactory )
33 
34 
35 
38 
39 class KFileAudioPreview::KFileAudioPreviewPrivate
40 {
41 public:
42  KFileAudioPreviewPrivate( TQWidget *parent )
43  {
44  player = KParts::ComponentFactory::createInstanceFromQuery<KMediaPlayer::Player>( "KMediaPlayer/Player", TQString(), TQT_TQOBJECT(parent) );
45  }
46 
47  ~KFileAudioPreviewPrivate()
48  {
49  delete player;
50  }
51 
52  KMediaPlayer::Player *player;
53 };
54 
55 
56 KFileAudioPreview::KFileAudioPreview( TQWidget *parent, const char *name )
57  : KPreviewWidgetBase( parent, name )
58 {
59  TDEGlobal::locale()->insertCatalogue("tdefileaudiopreview");
60 
61  TQStringList formats = KDE::PlayObjectFactory::mimeTypes();
62  // ###
63  TQStringList::ConstIterator it = formats.begin();
64  for ( ; it != formats.end(); ++it )
65  m_supportedFormats.insert( *it, (void*) 1 );
66 
67  TQVGroupBox *box = new TQVGroupBox( i18n("Media Player"), this );
68  TQVBoxLayout *layout = new TQVBoxLayout( this );
69  layout->addWidget( box );
70 
71  (void) new TQWidget( box ); // spacer
72 
73  d = new KFileAudioPreviewPrivate( 0L ); // not box -- being reparented anyway
74  if ( d->player ) // only if there actually is a component...
75  {
76  setSupportedMimeTypes( formats );
77  KMediaPlayer::View *view = d->player->view();
78  view->setEnabled( false );
79 
80  // if we have access to the video widget, show it above the player
81  // So, reparent first the video widget, then the view.
82  if ( view->videoWidget() )
83  {
84  TQHBox *frame = new TQHBox( box );
85  frame->setFrameStyle( TQFrame::Panel | TQFrame::Sunken );
86  frame->setSizePolicy( TQSizePolicy( TQSizePolicy::Expanding, TQSizePolicy::Expanding ) );
87  view->videoWidget()->reparent( frame, TQPoint(0,0) );
88  }
89 
90  view->reparent( box, TQPoint(0,0) );
91  }
92 
93  m_autoPlay = new TQCheckBox( i18n("Play &automatically"), box );
94  TDEConfigGroup config( TDEGlobal::config(), ConfigGroup );
95  m_autoPlay->setChecked( config.readBoolEntry( "Autoplay sounds", true ) );
96  connect( m_autoPlay, TQT_SIGNAL(toggled(bool)), TQT_SLOT(toggleAuto(bool)) );
97 }
98 
99 KFileAudioPreview::~KFileAudioPreview()
100 {
101  TDEConfigGroup config( TDEGlobal::config(), ConfigGroup );
102  config.writeEntry( "Autoplay sounds", m_autoPlay->isChecked() );
103 
104  delete d;
105 }
106 
107 void KFileAudioPreview::showPreview( const KURL &url )
108 {
109  if ( !d->player || !url.isValid() )
110  return;
111 
112  KMimeType::Ptr mt = KMimeType::findByURL( url );
113  bool supported = m_supportedFormats.find( mt->name() );
114  d->player->view()->setEnabled( supported );
115  if ( !supported )
116  return;
117 
118  static_cast<KParts::ReadOnlyPart*>(d->player)->openURL( url );
119  if ( m_autoPlay->isChecked() )
120  d->player->play();
121 }
122 
123 void KFileAudioPreview::clearPreview()
124 {
125  if ( d->player )
126  {
127  d->player->stop();
128  d->player->closeURL();
129  }
130 }
131 
132 void KFileAudioPreview::toggleAuto( bool on )
133 {
134  if ( !d->player )
135  return;
136 
137  if ( on && m_currentURL.isValid() && d->player->view()->isEnabled() )
138  d->player->play();
139  else
140  d->player->stop();
141 }
142 
143 void KFileAudioPreview::virtual_hook( int, void* )
144 {}
145 
146 #include "tdefileaudiopreview.moc"
KURL
KLibFactory
KLibFactory::createObject
virtual TQObject * createObject(TQObject *parent=0, const char *name=0, const char *className=TQOBJECT_OBJECT_NAME_STRING, const TQStringList &args=TQStringList())=0
KMediaPlayer::View::videoWidget
TQWidget * videoWidget()
Return the TQWidget in which video is displayed.
Definition: view.cpp:84
KMediaPlayer::View
View is part of the user interface of a Player.
Definition: tdemediaplayer/view.h:34
TDEConfigGroup
tdelocale.h
TDELocale::insertCatalogue
void insertCatalogue(const TQString &catalog)
TDEGlobal::locale
static TDELocale * locale()
KMediaPlayer::Player
Player is the center of the KMediaPlayer interface.
Definition: player.h:46
TDEGlobal::config
static TDEConfig * config()
KURL::isValid
bool isValid() const
KFileAudioPreview
Audio "preview" widget for the file dialog.
Definition: tdefileaudiopreview.h:37
KParts::ReadOnlyPart

interfaces

Skip menu "interfaces"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

interfaces

Skip menu "interfaces"
  • arts
  • dcop
  • dnssd
  • interfaces
  •   kspeech
  •     interface
  •     library
  •   tdetexteditor
  • kate
  • kded
  • kdoctools
  • kimgio
  • kjs
  • libtdemid
  • libtdescreensaver
  •     tdecore
  • tdeabc
  • tdecmshell
  • tdecore
  • tdefx
  • tdehtml
  • tdeinit
  • tdeio
  •   bookmarks
  •   httpfilter
  •   kpasswdserver
  •   kssl
  • tdeioslave
  •   http
  •   tdefile
  •   tdeio
  •   tdeioexec
  • tdemdi
  •   tdemdi
  • tdenewstuff
  • tdeparts
  • tdeprint
  • tderandr
  • tderesources
  • tdespell2
  • tdesu
  • tdeui
  • tdeunittest
  • tdeutils
  • tdewallet
Generated for interfaces by doxygen 1.8.8
This website is maintained by Timothy Pearson.