kword
KWResizeTableDia.cpp00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "KWDocument.h"
00022 #include "KWResizeTableDia.h"
00023 #include "KWTableFrameSet.h"
00024 #include "KWCommand.h"
00025
00026 #include <KoUnitWidgets.h>
00027 #include <klocale.h>
00028 #include <qlabel.h>
00029 #include <qvbox.h>
00030
00031 KWResizeTableDia::KWResizeTableDia( QWidget *parent, KWTableFrameSet *table, KWDocument *doc, int resizeColumn )
00032 : KDialogBase( parent, "resize column dialog" , true, "", Ok | Cancel | User1 | Apply )
00033 {
00034 setButtonText( KDialogBase::User1, i18n("Reset") );
00035 setCaption( i18n( "Resize Column" ) );
00036
00037 m_table = table;
00038 m_doc = doc;
00039
00040 setupTab1(resizeColumn);
00041 }
00042
00043 void KWResizeTableDia::setupTab1(int resizeColumn) {
00044 QVBox *page = makeVBoxMainWidget();
00045 QLabel *rc = new QLabel( i18n( "Column:" ), page );
00046 rc->resize( rc->sizeHint() );
00047 rc->setAlignment( AlignLeft | AlignBottom );
00048 m_value = new QSpinBox( 1, m_table->getColumns(), 1, page );
00049 m_value->resize( m_value->sizeHint() );
00050 m_value->setValue( resizeColumn );
00051
00052 rc = new QLabel( i18n( "Width:" ), page );
00053 m_position= new KoUnitDoubleSpinBox( page, 0.01, m_table->anchorFrameset()->isFloating() ? m_table->anchorFrameset()->frame(0)->width(): 9999, 1, 0.0, m_doc->unit(), m_doc->unit() );
00054 slotValueChanged( m_value->value());
00055 connect( m_value, SIGNAL( valueChanged ( int )), this, SLOT( slotValueChanged( int )));
00056 }
00057
00058 bool KWResizeTableDia::doResize()
00059 {
00060 unsigned int resize= m_value->value() - 1;
00061 KWFrame *frm = m_table->cell( 0, resize )->frame(0);
00062 if (frm) {
00063 FrameIndex index( frm );
00064 KoRect newRect( frm->normalize() );
00065 newRect.setWidth( m_position->value() );
00066 FrameResizeStruct resizeStruct( frm->normalize(), frm->minimumFrameHeight(), newRect );
00067 KWFrameResizeCommand * cmd =new KWFrameResizeCommand( i18n("Resize Column"), index, resizeStruct );
00068 cmd->execute();
00069 m_doc->addCommand( cmd );
00070 }
00071 return true;
00072 }
00073
00074 void KWResizeTableDia::slotValueChanged( int pos)
00075 {
00076 KWFrame *frm = m_table->cell( 0, pos-1 )->frame(0);
00077 if (frm) {
00078 m_position->setValue( KoUnit::toUserValue( QMAX(0.00, frm->normalize().width()), m_doc->unit() ) );
00079 m_resetValue = m_position->value();
00080 }
00081 }
00082
00083 void KWResizeTableDia::slotUser1()
00084 {
00085 m_position->setValue( KoUnit::toUserValue(m_resetValue, m_doc->unit() ) );
00086 doResize();
00087 }
00088
00089 void KWResizeTableDia::slotApply()
00090 {
00091 doResize();
00092 }
00093
00094 void KWResizeTableDia::slotOk()
00095 {
00096 if (doResize())
00097 {
00098 KDialogBase::slotOk();
00099 }
00100 }
00101
00102 #include "KWResizeTableDia.moc"
|