kdevwidgetaction.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #include "kdevwidgetaction.h"
00011
00012 #if !(KDE_VERSION > 305)
00013
00014 #include <ktoolbar.h>
00015 #include <kdebug.h>
00016 #include <kapplication.h>
00017
00018 namespace KDevCompat {
00019
00020
00021 KWidgetAction::KWidgetAction( QWidget* widget,
00022 const QString& text, const KShortcut& cut,
00023 const QObject* receiver, const char* slot,
00024 KActionCollection* parent, const char* name )
00025 : KAction( text, cut, receiver, slot, parent, name )
00026 , m_widget( widget )
00027 , m_autoSized( false )
00028 {
00029 }
00030
00031 KWidgetAction::~KWidgetAction()
00032 {
00033 }
00034
00035 void KWidgetAction::setAutoSized( bool autoSized )
00036 {
00037 if( m_autoSized == autoSized )
00038 return;
00039
00040 m_autoSized = autoSized;
00041
00042 if( !m_widget || !isPlugged() )
00043 return;
00044
00045 KToolBar* toolBar = (KToolBar*)m_widget->parent();
00046 int i = findContainer( toolBar );
00047 if ( i == -1 )
00048 return;
00049 int id = itemId( i );
00050
00051 toolBar->setItemAutoSized( id, m_autoSized );
00052 }
00053
00054 int KWidgetAction::plug( QWidget* w, int index )
00055 {
00056 if (kapp && !kapp->authorizeKAction(name()))
00057 return -1;
00058
00059 if ( !w->inherits( "KToolBar" ) ) {
00060 kdError() << "KWidgetAction::plug: KWidgetAction must be plugged into KToolBar." << endl;
00061 return -1;
00062 }
00063 if ( !m_widget ) {
00064 kdError() << "KWidgetAction::plug: Widget was deleted or null!" << endl;
00065 return -1;
00066 }
00067
00068 KToolBar* toolBar = static_cast<KToolBar*>( w );
00069
00070 int id = KAction::getToolButtonID();
00071
00072 m_widget->reparent( toolBar, QPoint() );
00073 toolBar->insertWidget( id, 0, m_widget, index );
00074 toolBar->setItemAutoSized( id, m_autoSized );
00075
00076 addContainer( toolBar, id );
00077
00078 connect( toolBar, SIGNAL( destroyed() ), this, SLOT( slotDestroyed() ) );
00079
00080 return containerCount() - 1;
00081 }
00082
00083 void KWidgetAction::unplug( QWidget *w )
00084 {
00085
00086 if( !m_widget )
00087 return;
00088
00089 m_widget->reparent( 0L, QPoint(), false );
00090
00091 KAction::unplug( w );
00092 }
00093
00094
00095 void KWidgetAction::virtual_hook( int id, void* data )
00096 { KAction::virtual_hook( id, data ); }
00097
00098
00099
00100 };
00101
00102 #include "kdevwidgetaction.moc"
00103
00104 #endif // !(KDE_VERSION > 305)
00105
This file is part of the documentation for KDevelop Version 3.1.2.