diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-02-03 02:15:56 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-02-03 02:15:56 +0000 |
commit | 50b48aec6ddd451a6d1709c0942477b503457663 (patch) | |
tree | a9ece53ec06fd0a2819de7a2a6de997193566626 /src/option/k3bpluginoptiontab.cpp | |
download | k3b-50b48aec6ddd451a6d1709c0942477b503457663.tar.gz k3b-50b48aec6ddd451a6d1709c0942477b503457663.zip |
Added abandoned KDE3 version of K3B
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/k3b@1084400 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'src/option/k3bpluginoptiontab.cpp')
-rw-r--r-- | src/option/k3bpluginoptiontab.cpp | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/src/option/k3bpluginoptiontab.cpp b/src/option/k3bpluginoptiontab.cpp new file mode 100644 index 0000000..59d7b74 --- /dev/null +++ b/src/option/k3bpluginoptiontab.cpp @@ -0,0 +1,137 @@ +/* + * + * $Id: k3bpluginoptiontab.cpp 619556 2007-01-03 17:38:12Z trueg $ + * Copyright (C) 2003 Sebastian Trueg <trueg@k3b.org> + * + * This file is part of the K3b project. + * Copyright (C) 1998-2007 Sebastian Trueg <trueg@k3b.org> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * See the file "COPYING" for the exact licensing terms. + */ + +#include "k3bpluginoptiontab.h" + + +#include <k3bpluginmanager.h> +#include <k3bplugin.h> +#include <k3bpluginconfigwidget.h> +#include <k3blistview.h> +#include <k3bcore.h> + +#include <klocale.h> +#include <kmessagebox.h> +#include <kdebug.h> +#include <kdialogbase.h> +#include <kconfig.h> +#include <kglobalsettings.h> +#include <kdeversion.h> + +#include <qstringlist.h> +#include <qpushbutton.h> + + +class K3bPluginOptionTab::PluginViewItem : public K3bListViewItem +{ +public: + PluginViewItem( K3bPlugin* p, KListViewItem* parent ) + : K3bListViewItem( parent ), + plugin(p) { + const K3bPluginInfo& info = p->pluginInfo(); + setText( 0, info.name() ); + if( !info.author().isEmpty() ) { + if( info.email().isEmpty() ) + setText( 1, info.author() ); + else + setText( 1, info.author() + " <" + info.email() + ">" ); + } + setText( 2, info.version() ); + setText( 3, info.comment() ); + setText( 4, info.licence() ); + } + + K3bPlugin* plugin; +}; + + + +K3bPluginOptionTab::K3bPluginOptionTab( QWidget* parent, const char* name ) + : base_K3bPluginOptionTab( parent, name ) +{ +#if KDE_IS_VERSION(3,4,0) + m_viewPlugins->setShadeSortColumn( false ); +#endif + m_viewPlugins->addColumn( i18n("Name") ); + m_viewPlugins->addColumn( i18n("Author") ); + m_viewPlugins->addColumn( i18n("Version") ); + m_viewPlugins->addColumn( i18n("Description") ); + m_viewPlugins->addColumn( i18n("License") ); + m_viewPlugins->setAlternateBackground( QColor() ); + m_viewPlugins->setAllColumnsShowFocus(true); + + connect( m_viewPlugins, SIGNAL(doubleClicked(QListViewItem*, const QPoint&, int)), this, SLOT(slotConfigureButtonClicked()) ); + connect( m_buttonConfigure, SIGNAL(clicked()), this, SLOT(slotConfigureButtonClicked()) ); + connect( m_viewPlugins, SIGNAL(selectionChanged()), this, SLOT(slotSelectionChanged()) ); +} + + +K3bPluginOptionTab::~K3bPluginOptionTab() +{ +} + + +void K3bPluginOptionTab::readSettings() +{ + m_viewPlugins->clear(); + QStringList groups = k3bcore->pluginManager()->groups(); + for( QStringList::const_iterator it = groups.begin(); + it != groups.end(); ++it ) { + const QString& group = *it; + + K3bListViewItem* groupViewItem = new K3bListViewItem( m_viewPlugins, + m_viewPlugins->lastChild(), + group ); + QFont f( font() ); + f.setBold(true); + groupViewItem->setFont( 0, f ); + groupViewItem->setBackgroundColor( 0, KGlobalSettings::alternateBackgroundColor() ); + groupViewItem->setBackgroundColor( 1, KGlobalSettings::alternateBackgroundColor() ); + groupViewItem->setBackgroundColor( 2, KGlobalSettings::alternateBackgroundColor() ); + groupViewItem->setBackgroundColor( 3, KGlobalSettings::alternateBackgroundColor() ); + groupViewItem->setBackgroundColor( 4, KGlobalSettings::alternateBackgroundColor() ); + groupViewItem->setSelectable( false ); + + QPtrList<K3bPlugin> fl = k3bcore->pluginManager()->plugins( group ); + for( QPtrListIterator<K3bPlugin> fit( fl ); fit.current(); ++fit ) + (void)new PluginViewItem( fit.current(), groupViewItem ); + + groupViewItem->setOpen(true); + } + + slotSelectionChanged(); +} + + +bool K3bPluginOptionTab::saveSettings() +{ + return true; +} + + +void K3bPluginOptionTab::slotConfigureButtonClicked() +{ + QListViewItem* item = m_viewPlugins->selectedItem(); + if( PluginViewItem* pi = dynamic_cast<PluginViewItem*>( item ) ) + k3bcore->pluginManager()->execPluginDialog( pi->plugin, this ); +} + + +void K3bPluginOptionTab::slotSelectionChanged() +{ + m_buttonConfigure->setEnabled( dynamic_cast<PluginViewItem*>( m_viewPlugins->selectedItem() ) != 0 ); +} + +#include "k3bpluginoptiontab.moc" |