kspread
kspread_dlg_resize2.cc00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include <float.h>
00027
00028 #include <qlabel.h>
00029 #include <qlayout.h>
00030
00031 #include <knuminput.h>
00032
00033 #include <KoUnit.h>
00034 #include <KoUnitWidgets.h>
00035
00036 #include <kspread_canvas.h>
00037 #include <kspread_doc.h>
00038 #include <kspread_global.h>
00039 #include <kspread_locale.h>
00040 #include <kspread_sheet.h>
00041 #include <kspread_undo.h>
00042 #include <kspread_view.h>
00043 #include "manipulator.h"
00044 #include "selection.h"
00045
00046 #include "kspread_dlg_resize2.h"
00047
00048 using namespace KSpread;
00049
00050 ResizeRow::ResizeRow( View* parent, const char* name )
00051 : KDialogBase( parent, name, true, i18n("Resize Row"), Ok|Cancel|Default )
00052 {
00053 m_pView = parent;
00054
00055 QWidget *page = new QWidget( this );
00056 setMainWidget( page );
00057
00058 QVBoxLayout *vLay = new QVBoxLayout( page, 0, spacingHint() );
00059 QHBoxLayout *hLay = new QHBoxLayout( vLay );
00060
00061 QRect selection( m_pView->selectionInfo()->selection() );
00062 RowFormat* rl = m_pView->activeSheet()->rowFormat( selection.top() );
00063 rowHeight = rl->dblHeight();
00064
00065 QLabel * label1 = new QLabel( page, "label1" );
00066 label1->setText( i18n( "Height:" ) );
00067 hLay->addWidget( label1 );
00068
00069 m_pHeight = new KoUnitDoubleSpinBox( page );
00070 m_pHeight->setValue( rowHeight );
00071 m_pHeight->setUnit( m_pView->doc()->unit() );
00072
00073 hLay->addWidget( m_pHeight );
00074
00075 QWidget *hSpacer = new QWidget( page );
00076 hSpacer->setMinimumSize( spacingHint(), spacingHint() );
00077 hLay->addWidget( hSpacer );
00078
00079 QWidget *vSpacer = new QWidget( page );
00080 vSpacer->setMinimumSize( spacingHint(), spacingHint() );
00081 vLay->addWidget( vSpacer );
00082
00083 m_pHeight->setFocus();
00084
00085
00086 rowHeight = m_pHeight->value();
00087 }
00088
00089 void ResizeRow::slotOk()
00090 {
00091 double height = m_pHeight->value();
00092
00093
00094 if ( fabs( height - rowHeight ) > DBL_EPSILON )
00095 {
00096 ResizeRowManipulator* manipulator = new ResizeRowManipulator();
00097 manipulator->setSheet(m_pView->activeSheet());
00098 manipulator->setSize(height);
00099
00100 manipulator->setOldSize(rowHeight);
00101 manipulator->add(*m_pView->selectionInfo());
00102 manipulator->execute();
00103 }
00104 accept();
00105 }
00106
00107 void ResizeRow::slotDefault()
00108 {
00109 Sheet* sheet = m_pView->activeSheet();
00110 if (!sheet)
00111 return;
00112 double points = sheet->rowFormat(0)->dblHeight();
00113 m_pHeight->setValue(KoUnit::toUserValue(points, m_pView->doc()->unit()));
00114 }
00115
00116 ResizeColumn::ResizeColumn( View* parent, const char* name )
00117 : KDialogBase( parent, name, true, i18n("Resize Column"), Ok|Cancel|Default )
00118 {
00119 m_pView = parent;
00120
00121 QWidget *page = new QWidget( this );
00122 setMainWidget(page);
00123
00124 QVBoxLayout *vLay = new QVBoxLayout( page, 0, spacingHint() );
00125 QHBoxLayout *hLay = new QHBoxLayout( vLay );
00126
00127 QRect selection( m_pView->selectionInfo()->selection() );
00128 ColumnFormat* cl = m_pView->activeSheet()->columnFormat( selection.left() );
00129 columnWidth = cl->dblWidth();
00130
00131 QLabel * label1 = new QLabel( page, "label1" );
00132 label1->setText( i18n( "Width:" ) );
00133 hLay->addWidget( label1 );
00134
00135 m_pWidth = new KoUnitDoubleSpinBox( page );
00136 m_pWidth->setValue( columnWidth );
00137 m_pWidth->setUnit( m_pView->doc()->unit() );
00138
00139 hLay->addWidget( m_pWidth );
00140
00141 QWidget *hSpacer = new QWidget( page );
00142 hSpacer->setMinimumSize( spacingHint(), spacingHint() );
00143 hLay->addWidget( hSpacer );
00144
00145 QWidget *vSpacer = new QWidget( page );
00146 vSpacer->setMinimumSize( spacingHint(), spacingHint() );
00147 vLay->addWidget( vSpacer );
00148
00149 m_pWidth->setFocus();
00150
00151
00152 columnWidth = m_pWidth->value();
00153 }
00154
00155 void ResizeColumn::slotOk()
00156 {
00157 double width = m_pWidth->value();
00158
00159
00160 if ( fabs( width - columnWidth ) > DBL_EPSILON )
00161 {
00162 ResizeColumnManipulator* manipulator = new ResizeColumnManipulator();
00163 manipulator->setSheet(m_pView->activeSheet());
00164 manipulator->setSize(width);
00165
00166 manipulator->setOldSize(columnWidth);
00167 manipulator->add(*m_pView->selectionInfo());
00168 manipulator->execute();
00169 }
00170 accept();
00171 }
00172
00173 void ResizeColumn::slotDefault()
00174 {
00175 Sheet* sheet = m_pView->activeSheet();
00176 if (!sheet)
00177 return;
00178 double points = sheet->columnFormat(0)->dblWidth();
00179 m_pWidth->setValue(KoUnit::toUserValue(points, m_pView->doc()->unit()));
00180 }
00181
00182
00183 #include "kspread_dlg_resize2.moc"
|