1 /* This file is part of the KDE project
2 Copyright (C) 2003 Fabian Wolf <fabianw@gmx.net>
4 image_plugin.cpp (also Part of the KDE Project) used as template
6 This program is free software; you can redistribute it and/or
7 modify it under the terms of the GNU General Public
8 License as published by the Free Software Foundation; version 2
11 This program 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 General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program; see the file COPYING. If not, write to
18 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19 Boston, MA 02110-1301, USA.
22 #include <kgenericfactory.h>
23 #include <ksqueezedtextlabel.h>
24 #include <kio/renamedialogplugin.h>
28 #include <qstringlist.h>
29 #include <QGridLayout>
30 #include <kio/global.h>
33 #include <sys/types.h>
35 #include "audiopreview.h"
37 class AudioPlugin
: public KIO::RenameDialogPlugin
{
39 AudioPlugin( QDialog
*dialog
, const QStringList
& );
42 bool wantToHandle( KIO::RenameDialog_Mode mode
, const KIO::RenameDialogPlugin::FileItem
& src
,
43 const KIO::RenameDialogPlugin::FileItem
& dst
) const;
44 void handle( KIO::RenameDialog_Mode
, const KIO::RenameDialogPlugin::FileItem
& src
,
45 const KIO::RenameDialogPlugin::FileItem
& dst
);
48 AudioPlugin::AudioPlugin( QDialog
*dialog
, const QStringList
& ) : RenameDialogPlugin( dialog
) {
51 AudioPlugin::~AudioPlugin()
55 bool AudioPlugin::wantToHandle( KIO::RenameDialog_Mode
, const KIO::RenameDialogPlugin::FileItem
&,
56 const KIO::RenameDialogPlugin::FileItem
& ) const {
60 void AudioPlugin::handle( KIO::RenameDialog_Mode mode
, const KIO::RenameDialogPlugin::FileItem
& src
,
61 const KIO::RenameDialogPlugin::FileItem
& dst
) {
63 QGridLayout
*lay
= new QGridLayout( this );
64 if( mode
& KIO::M_OVERWRITE
){
65 QLabel
*label_src
= new QLabel(this);
66 QLabel
*label_dst
= new QLabel(this);
67 QLabel
*label_ask
= new QLabel(this);
70 QString dest
= dst
.url().pathOrUrl();
71 if ( src
.mTime() < dst
.mTime() )
72 sentence1
= i18n("An older file named '%1' already exists.\n", dest
);
73 else if ( src
.mTime() == dst
.mTime() )
74 sentence1
= i18n("A similar file named '%1' already exists.\n", dest
);
76 sentence1
= i18n("A newer file named '%1' already exists.\n", dest
);
77 QLabel
*label_head
= new KSqueezedTextLabel(sentence1
, this);
78 label_src
->setText(i18n("Source File"));
79 label_dst
->setText(i18n("Existing File"));
80 label_ask
->setText(i18n("Would you like to replace the existing file with the one on the right?") );
81 label_head
->adjustSize();
82 label_src
->adjustSize();
83 label_dst
->adjustSize();
84 label_ask
->adjustSize();
85 lay
->addWidget(label_head
, 0, 0, 1, 3, Qt::AlignLeft
);
86 lay
->addWidget(label_dst
, 1, 0, Qt::AlignLeft
);
87 lay
->addWidget(label_src
, 1, 2, Qt::AlignLeft
);
88 lay
->addWidget(label_ask
, 3, 0, 1, 3, Qt::AlignLeft
);
91 AudioPreview
*left
= new AudioPreview(this, dst
.url(), dst
.mimeType() );
92 AudioPreview
*right
= new AudioPreview( this, src
.url(), src
.mimeType() );
93 lay
->addWidget(left
, 2, 0 );
94 lay
->addWidget(right
, 2, 2 );
98 typedef KGenericFactory
<AudioPlugin
, QDialog
> AudioPluginFactory
;
99 K_EXPORT_COMPONENT_FACTORY( librenaudioplugin
, AudioPluginFactory("audiorename_plugin") )