kword
KWDeleteDia.cpp00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "KWTableFrameSet.h"
00022 #include "KWDeleteDia.h"
00023 #include "KWView.h"
00024
00025 #include <klocale.h>
00026 #include <qlabel.h>
00027 #include <qlayout.h>
00028
00029 KWDeleteDia::KWDeleteDia( KWView *parent, KWTableFrameSet *table, DeleteType type, QValueList<uint> remove)
00030 : KDialogBase( Plain, (type==deleteRow?i18n("Delete Row") : i18n("Delete Column")), Ok | Cancel, Ok, parent, "Delete Table items dialog", true )
00031 {
00032 Q_ASSERT(type == deleteRow || type == deleteColumn);
00033 m_type = type;
00034 m_table = table;
00035 m_toRemove = remove;
00036 m_view = parent;
00037
00038 setupTab1();
00039 setButtonOK( KGuiItem(
00040 i18n("&Delete"), "editdelete", type == deleteRow ?
00041 i18n("Delete the row from the table.") :
00042 i18n("Delete the column from the table.")) );
00043 }
00044
00045 void KWDeleteDia::setupTab1() {
00046 QWidget *tab1 = plainPage();
00047 QGridLayout *grid1 = new QGridLayout( tab1, 4, 1, 0, spacingHint() );
00048 unsigned int count = m_toRemove.count();
00049 Q_ASSERT(count > 0);
00050
00051 QString message;
00052 if ( count == ( (m_type == deleteRow) ? m_table->getRows() : m_table->getColumns() ) )
00053
00054
00055 message = i18n("Delete the whole table?");
00056 else if ( count > 10 )
00057
00058 message = m_type == deleteRow ? i18n("Delete all selected rows?") : i18n("Delete all selected cells?");
00059 else if ( count == 1 ) {
00060 message = m_type == deleteRow ? i18n( "Delete row number %1?" ) : i18n( "Delete column number %1?" );
00061 message = message.arg( m_toRemove.first() + 1 );
00062 }
00063 else {
00064 message = m_type == deleteRow ? i18n( "Delete rows: %1 ?" ) : i18n( "Delete columns: %1 ?" );
00065
00066 QValueListIterator<uint> items = m_toRemove.begin();
00067 QString rows;
00068 for(;items != m_toRemove.end(); ++items) {
00069 if(! rows.isEmpty())
00070 rows += ", ";
00071 rows += QString().setNum((*items) +1);
00072 }
00073 message = message.arg( rows );
00074 }
00075
00076 QLabel *rc = new QLabel( message , tab1 );
00077 rc->resize( rc->sizeHint() );
00078 rc->setAlignment( AlignLeft | AlignBottom );
00079 grid1->addWidget( rc, 1, 0 );
00080 }
00081
00082 void KWDeleteDia::slotOk() {
00083 if(m_type == deleteRow)
00084 m_view->tableDeleteRow(m_toRemove);
00085 else
00086 m_view->tableDeleteCol(m_toRemove);
00087 KDialogBase::slotOk();
00088 }
00089
00090 #include "KWDeleteDia.moc"
|