• 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
20class KFileAudioPreviewFactory : public KLibFactory
21{
22protected:
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 new KFileAudioPreview( dynamic_cast<TQWidget*>( parent ), name );
29 }
30};
31
32K_EXPORT_COMPONENT_FACTORY( tdefileaudiopreview, KFileAudioPreviewFactory )
33
34
35
37
38
39class KFileAudioPreview::KFileAudioPreviewPrivate
40{
41public:
42 KFileAudioPreviewPrivate( TQWidget *parent )
43 {
44 player = KParts::ComponentFactory::createInstanceFromQuery<KMediaPlayer::Player>( "KMediaPlayer/Player", TQString(), parent );
45 }
46
47 ~KFileAudioPreviewPrivate()
48 {
49 delete player;
50 }
51
52 KMediaPlayer::Player *player;
53};
54
55
56KFileAudioPreview::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, TQ_SIGNAL(toggled(bool)), TQ_SLOT(toggleAuto(bool)) );
97}
98
99KFileAudioPreview::~KFileAudioPreview()
100{
101 TDEConfigGroup config( TDEGlobal::config(), ConfigGroup );
102 config.writeEntry( "Autoplay sounds", m_autoPlay->isChecked() );
103
104 delete d;
105}
106
107void 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
123void KFileAudioPreview::clearPreview()
124{
125 if ( d->player )
126 {
127 d->player->stop();
128 d->player->closeURL();
129 }
130}
131
132void 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
143void KFileAudioPreview::virtual_hook( int, void* )
144{}
145
146#include "tdefileaudiopreview.moc"
KFileAudioPreview
Audio "preview" widget for the file dialog.
Definition: tdefileaudiopreview.h:38
KLibFactory
KLibFactory::createObject
virtual TQObject * createObject(TQObject *parent=0, const char *name=0, const char *className="TQObject", const TQStringList &args=TQStringList())=0
KMediaPlayer::Player
Player is the center of the KMediaPlayer interface.
Definition: player.h:47
KMediaPlayer::View
View is part of the user interface of a Player.
Definition: tdemediaplayer/view.h:35
KMediaPlayer::View::videoWidget
TQWidget * videoWidget()
Return the TQWidget in which video is displayed.
Definition: view.cpp:84
KParts::ReadOnlyPart
KURL
KURL::isValid
bool isValid() const
TDEConfigGroup
TDEGlobal::config
static TDEConfig * config()
TDEGlobal::locale
static TDELocale * locale()
TDELocale::insertCatalogue
void insertCatalogue(const TQString &catalog)
TDEStdAccel::name
TQString name(StdAccel id)
tdelocale.h

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
  • tdeabc
  • tdecmshell
  • tdecore
  • tdefx
  • tdehtml
  • tdeinit
  • tdeio
  •   bookmarks
  •   httpfilter
  •   kpasswdserver
  •   kssl
  •   tdefile
  •   tdeio
  •   tdeioexec
  • tdeioslave
  •   http
  • tdemdi
  •   tdemdi
  • tdenewstuff
  • tdeparts
  • tdeprint
  • tderandr
  • tderesources
  • tdespell2
  • tdesu
  • tdeui
  • tdeunittest
  • tdeutils
  • tdewallet
Generated for interfaces by doxygen 1.9.4
This website is maintained by Timothy Pearson.