[prev in list] [next in list] [prev in thread] [next in thread]
List: koffice-devel
Subject: [karbon14] Toolbox convert to toolbar
From: Thomas Zander <zander () planescape ! com>
Date: 2002-09-27 23:05:55
[Download RAW message or body]
Hi,
The toolbox currently has the problem that if you move it to the top or bottom
it looks rather silly.
Therefor I changed the VToolBox class to extend a QToolBar and make it use two
columns/rows according to the orientation it is positioned.
Please test/read attached patch.
The extra layouters and the overloaded slot should provide a universal manner
for multi-column toolbars. Anyone here who thinks this can be used in
Qt/KDElibs/KOfficeLibs ?
May I commit?
--
Thomas Zander zander@planescape.com
We are what we pretend to be
["2colToolbar.diff" (text/plain)]
? 2colToolbar.diff
Index: karbon_view.cc
===================================================================
RCS file: /home/kde/koffice/karbon/karbon_view.cc,v
retrieving revision 1.256
diff -u -3 -p -b -r1.256 karbon_view.cc
--- karbon_view.cc 2002/09/27 11:06:57 1.256
+++ karbon_view.cc 2002/09/27 22:30:10
@@ -250,11 +250,11 @@ KarbonView::createContainer( QWidget *pa
{
if( element.attribute( "name" ) == "toolbox" )
{
- QWidget *toolbar = KXMLGUIBuilder::createContainer( parent, index, element, id );
+ //QWidget *toolbar = KXMLGUIBuilder::createContainer( parent, index, element, id );
//if( !m_toolbox )
//{
- kdDebug() << "GOT IT! toolbar :" << toolbar << endl;
- m_toolbox = new VToolBox( m_part, toolbar );
+ //kdDebug() << "GOT IT! toolbar :" << toolbar << endl;
+ m_toolbox = new VToolBox( m_part, mainWindow(), "toolbox");
connect( m_toolbox, SIGNAL( selectToolActivated() ), this, SLOT( selectTool() ) );
connect( m_toolbox, SIGNAL( selectNodesToolActivated() ), this, SLOT( selectNodesTool() ) );
connect( m_toolbox, SIGNAL( rotateToolActivated() ), this, SLOT( rotateTool() ) );
@@ -280,7 +280,7 @@ KarbonView::createContainer( QWidget *pa
selectionChanged();
}
//}
- return toolbar;
+ return m_toolbox;
}
return KXMLGUIBuilder::createContainer( parent, index, element, id );
Index: widgets/vtoolbox.cc
===================================================================
RCS file: /home/kde/koffice/karbon/widgets/vtoolbox.cc,v
retrieving revision 1.2
diff -u -3 -p -b -r1.2 vtoolbox.cc
--- widgets/vtoolbox.cc 2002/09/22 22:33:02 1.2
+++ widgets/vtoolbox.cc 2002/09/27 22:30:10
@@ -19,8 +19,11 @@
*/
#include <qbuttongroup.h>
+#include <qnamespace.h>
#include <qtoolbutton.h>
+#include <qlayout.h>
#include <qlabel.h>
+#include <qtooltip.h>
#include <qlayout.h>
#include <qpixmap.h>
@@ -36,125 +39,97 @@
#include "vtoolbox.h"
#include "vstrokefillpreview.h"
-VToolBox::VToolBox( KarbonPart* part, QWidget* parent, const char* /*name*/ ) : QWidget( parent )
+VToolBox::VToolBox( KarbonPart* part, KMainWindow *mainWin, const char* name ) : QToolBar( mainWin )
{
- //setOrientation( Vertical );
- QToolButton *button;
-
- m_btngroup = new QButtonGroup( 2, Horizontal, this );
- m_btngroup->setExclusive( true );
- m_btngroup->setInsideSpacing( 2 );
- m_btngroup->setInsideMargin( 5 );
+ setName(name);
+ QBoxLayout::Direction d=orientation()==Qt::Vertical?QBoxLayout::LeftToRight:QBoxLayout::TopToBottom;
+ base= new QButtonGroup(this);
+ base->setExclusive (true);
+ buttonsLayouter = new QBoxLayout(base, d);
+
+ d=orientation()==Qt::Horizontal?QBoxLayout::LeftToRight:QBoxLayout::TopToBottom;
+ left= new QWidget(base);
+ leftLayout = new QBoxLayout(left, d);
+ buttonsLayouter->addWidget(left);
+
+ right= new QWidget(base);
+ rightLayout = new QBoxLayout(right, d);
+ buttonsLayouter->addWidget(right);
- button = new QToolButton( m_btngroup );
- QPixmap pixmap = BarIcon( "14_select", KarbonFactory::instance() );
- button->setPixmap( pixmap );
- button->setToggleButton( true );
+ insertLeft=true;
+ QToolButton *button = addButton("14_select", i18n("Select tool"));
button->toggle();
connect( button, SIGNAL( clicked() ), this, SIGNAL( selectToolActivated() ) );
- m_btngroup->insert( button );
- button = new QToolButton( m_btngroup );
- pixmap = BarIcon( "14_selectnodes", KarbonFactory::instance() );
- button->setPixmap( pixmap );
- button->setToggleButton( true );
+ button = addButton("14_selectnodes", i18n("Select nodes tool"));
connect( button, SIGNAL( clicked() ), this, SIGNAL( selectNodesToolActivated() ) );
- m_btngroup->insert( button );
- button = new QToolButton( m_btngroup );
- pixmap = BarIcon( "14_rotate", KarbonFactory::instance() );
- button->setPixmap( pixmap );
- button->setToggleButton( true );
+ button = addButton("14_rotate", i18n("rotate tool"));
connect( button, SIGNAL( clicked() ), this, SIGNAL( rotateToolActivated() ) );
- m_btngroup->insert( button );
- button = new QToolButton( m_btngroup );
- pixmap = BarIcon( "14_shear", KarbonFactory::instance() );
- button->setPixmap( pixmap );
- button->setToggleButton( true );
+ button = addButton("14_shear", i18n("shear tool"));
connect( button, SIGNAL( clicked() ), this, SIGNAL( shearToolActivated() ) );
- m_btngroup->insert( button );
- button = new QToolButton( m_btngroup );
- pixmap = BarIcon( "14_rectangle", KarbonFactory::instance() );
- button->setPixmap( pixmap );
- button->setToggleButton( true );
+ button = addButton("14_rectangle", i18n("create rectangle tool"));
connect( button, SIGNAL( clicked() ), this, SIGNAL( rectangleToolActivated() ) );
- m_btngroup->insert( button );
- button = new QToolButton( m_btngroup );
- pixmap = BarIcon( "14_roundrect", KarbonFactory::instance() );
- button->setPixmap( pixmap );
- button->setToggleButton( true );
+ button = addButton("14_roundrect", i18n("create rounded rectangle tool"));
connect( button, SIGNAL( clicked() ), this, SIGNAL( roundRectToolActivated() ) );
- m_btngroup->insert( button );
- button = new QToolButton( m_btngroup );
- pixmap = BarIcon( "14_ellipse", KarbonFactory::instance() );
- button->setPixmap( pixmap );
- button->setToggleButton( true );
+ button = addButton("14_ellipse", i18n("create ellipse tool"));
connect( button, SIGNAL( clicked() ), this, SIGNAL( ellipseToolActivated() ) );
- m_btngroup->insert( button );
- button = new QToolButton( m_btngroup );
- pixmap=BarIcon( "14_polygon", KarbonFactory::instance() );
- button->setPixmap( pixmap );
- button->setToggleButton( true );
+ button = addButton("14_polygon", i18n("create poligon tool"));
connect( button, SIGNAL( clicked() ), this, SIGNAL( polygonToolActivated() ) );
- m_btngroup->insert( button );
- button = new QToolButton( m_btngroup );
- pixmap = BarIcon( "14_star", KarbonFactory::instance() );
- button->setPixmap( pixmap );
- button->setToggleButton( true );
+ button = addButton("14_star", i18n("create star tool"));
connect( button, SIGNAL( clicked() ), this, SIGNAL( starToolActivated() ) );
- m_btngroup->insert( button );
- button = new QToolButton( m_btngroup );
- pixmap = BarIcon( "14_sinus", KarbonFactory::instance() );
- button->setPixmap( pixmap );
- button->setToggleButton( true );
+ button = addButton("14_sinus", i18n("create sinus wave tool"));
connect( button, SIGNAL( clicked() ), this, SIGNAL( sinusToolActivated() ) );
- m_btngroup->insert( button );
- button = new QToolButton( m_btngroup );
- pixmap = BarIcon( "14_spiral", KarbonFactory::instance() );
- button->setPixmap( pixmap );
- button->setToggleButton( true );
+ button = addButton("14_spiral", i18n("create spiral tool"));
connect( button, SIGNAL( clicked() ), this, SIGNAL( spiralToolActivated() ) );
- m_btngroup->insert( button );
- button = new QToolButton( m_btngroup );
- pixmap = BarIcon( "14_gradient", KarbonFactory::instance() );
- button->setPixmap( pixmap );
- button->setToggleButton( true );
+ button = addButton("14_gradient", i18n("fill with gradient tool"));
connect( button, SIGNAL( clicked() ), this, SIGNAL( gradToolActivated() ) );
- m_btngroup->insert( button );
- button = new QToolButton( m_btngroup );
- pixmap=BarIcon( "14_polyline", KarbonFactory::instance() );
- button->setPixmap( pixmap );
- button->setToggleButton( true );
+ button = addButton("14_polyline", i18n("create polyline tool"));
connect( button, SIGNAL( clicked() ), this, SIGNAL( polylineToolActivated() ) );
- m_btngroup->insert( button );
+
+ button = addButton("14_clipart", i18n("insert clipart tool"));
+ connect( button, SIGNAL( clicked() ), this, SIGNAL( clipartToolActivated() ) );
- button = new QToolButton( m_btngroup );
- pixmap=BarIcon( "14_clipart", KarbonFactory::instance() );
+ m_strokeFillPreview = new VStrokeFillPreview( part,this );
+}
+
+QToolButton *
+VToolBox::addButton(const char* iconName, QString tooltip)
+{
+ QToolButton *button = new QToolButton( insertLeft?left:right );
+ QPixmap pixmap=BarIcon( iconName, KarbonFactory::instance() );
button->setPixmap( pixmap );
button->setToggleButton( true );
- connect( button, SIGNAL( clicked() ), this, SIGNAL( clipartToolActivated() ) );
- m_btngroup->insert( button );
+ QToolTip::add(button, tooltip);
+ if(insertLeft)
+ leftLayout->addWidget( button );
+ else
+ rightLayout->addWidget( button );
- m_strokeFillPreview = new VStrokeFillPreview( part, this );
+ base->insert(button);
+ insertLeft=!insertLeft;
+}
- QVBoxLayout *mainWidgetLayout = new QVBoxLayout( this, 2 );
- mainWidgetLayout->addWidget( m_btngroup );
- mainWidgetLayout->addWidget( m_strokeFillPreview );
- mainWidgetLayout->activate();
- //mainWidget->setMaximumHeight( 164 );
- //mainWidget->setMinimumWidth( 194 );
- //setWidget( mainWidget );
+void
+VToolBox::setOrientation ( Qt::Orientation o )
+{
+ QBoxLayout::Direction d=orientation()==Qt::Vertical?QBoxLayout::LeftToRight:QBoxLayout::TopToBottom;
+ buttonsLayouter->setDirection(d);
+ d=o==Qt::Horizontal?QBoxLayout::LeftToRight:QBoxLayout::TopToBottom;
+ leftLayout->setDirection(d);
+ rightLayout->setDirection(d);
+ QDockWindow::setOrientation(o);
}
VStrokeFillPreview *
Index: widgets/vtoolbox.h
===================================================================
RCS file: /home/kde/koffice/karbon/widgets/vtoolbox.h,v
retrieving revision 1.2
diff -u -3 -p -b -r1.2 vtoolbox.h
--- widgets/vtoolbox.h 2002/09/22 22:33:02 1.2
+++ widgets/vtoolbox.h 2002/09/27 22:30:10
@@ -20,17 +20,18 @@
#ifndef __VTOOLBOX_H__
#define __VTOOLBOX_H__
+#include <qtoolbutton.h>
class QWidget;
class KarbonPart;
class VStrokeFillPreview;
-class VToolBox : public QWidget
+class VToolBox : public QToolBar
{
Q_OBJECT
public:
- VToolBox( KarbonPart* part, QWidget* parent = 0L, const char* name = 0L );
+ VToolBox( KarbonPart* part, KMainWindow *mainWin, const char* name = 0L );
VStrokeFillPreview *strokeFillPreview();
@@ -50,10 +51,18 @@ signals:
void gradToolActivated();
void clipartToolActivated();
+public slots:
+ virtual void setOrientation ( Orientation o );
+
private:
- QButtonGroup *m_btngroup;
KarbonPart *m_part;
VStrokeFillPreview *m_strokeFillPreview;
+ QBoxLayout *leftLayout,*rightLayout,*buttonsLayouter;
+ QWidget *left, *right;
+ QButtonGroup *base;
+ bool insertLeft;
+
+ QToolButton *addButton(const char* iconName, QString tooltip);
};
#endif
_______________________________________________
koffice-devel mailing list
koffice-devel@mail.kde.org
http://mail.kde.org/mailman/listinfo/koffice-devel
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic