This patch implements FormTabCreate, and improves
the para dialog.

please apply


On the gs hang thing, I see Lars said :

> I am not going to debug this. I want the new InsetGraphics brought up
> to working state instead.

now, as far as I can tell, this bug will persist to then, if it truly is
an xforms interaction. And it is sad to hear this will last for another
stable release :(

If the figinset.C patch is not acceptable, I would at least like to know
why, by the way ... it is much more readable after IMVHO

thanks
john

-- 
"I hope you will find the courage to keep on living 
 despite the existence of this feature."
        - Richard Stallman
Index: ChangeLog
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/ChangeLog,v
retrieving revision 1.699
diff -u -p -r1.699 ChangeLog
--- ChangeLog   2000/11/22 18:46:53     1.699
+++ ChangeLog   2000/11/23 10:45:59
@@ -1,3 +1,41 @@
+2000-11-23  John Levon  <[EMAIL PROTECTED]>
+
+       * src/vspace.h (VSpace::length()): return a LyXGlueLength instead
+
+       * src/frontends/kde/FormParagraph.C: remove LyXGlueLength hack, 
+         add keep bools, and update the buffer properly
+
+       * src/frontends/kde/FormToc.C: added FIXME comment
+
+       * src/frontends/kde/paradlg.C: update comment, remove
+         math unit choice, add keep bools
+
+       * src/frontends/kde/paradlg.h: add getAbove/BelowKeep()
+
+       * src/frontends/kde/paraextradlg.C:
+       * src/frontends/kde/parageneraldlg.C:
+       * src/frontends/kde/parageneraldlg.h: remove math units,
+         remove unused slots
+
+       * src/support/lstrings.C:
+       * src/support/lstrings.h: add strToUnsignedInt(), isStrUnsignedInt()
+
+       * src/frontends/kde/dlg/parageneral.dlg:
+       * src/frontends/kde/parageneraldlgdata.C:
+       * src/frontends/kde/parageneraldlgdata.h: updated
+
+       * src/frontends/kde/Makefile.am:
+       * src/frontends/kde/dlg/tabcreate.dlg:
+       * src/frontends/kde/tabcreatedlgdata.C:
+       * src/frontends/kde/tabcreatedlgdata.h:
+       * src/frontends/kde/tabcreatedlg.h:
+       * src/frontends/kde/tabcreatedlg.C:
+       * src/frontends/kde/emptytable.h:
+       * src/frontends/kde/emptytable.C:
+       * src/frontends/kde/FormTabularCreate.h:
+       * src/frontends/kde/FormTabularCreate.C: add
+         FormTabularCreate
+
 2000-11-22  Lars Gullik Bjønnes  <[EMAIL PROTECTED]>
 
        * src/version.h: try the pre2 again
Index: src/vspace.h
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/vspace.h,v
retrieving revision 1.13
diff -u -p -r1.13 vspace.h
--- src/vspace.h        2000/09/14 17:53:07     1.13
+++ src/vspace.h        2000/11/23 10:46:46
@@ -222,7 +222,7 @@ public:
        // access functions
        vspace_kind kind() const  { return  kin; }
        ///
-       LyXLength   length() const { return len; }
+       LyXGlueLength   length() const { return len; }
 
        // a flag that switches between \vspace and \vspace*
         bool keep() const      { return kp; }
Index: src/frontends/kde/Dialogs.C
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/kde/Dialogs.C,v
retrieving revision 1.8
diff -u -p -r1.8 Dialogs.C
--- src/frontends/kde/Dialogs.C 2000/11/22 18:38:31     1.8
+++ src/frontends/kde/Dialogs.C 2000/11/23 10:46:46
@@ -24,7 +24,6 @@
 // temporary till ported
 extern void ShowCredits();
 
-
 // Signal enabling all visible popups to be redrawn if so desired.
 // E.g., when the GUI colours have been remapped.
 Signal0<void> Dialogs::redrawGUI;
Index: src/frontends/kde/FormParagraph.C
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/kde/FormParagraph.C,v
retrieving revision 1.2
diff -u -p -r1.2 FormParagraph.C
--- src/frontends/kde/FormParagraph.C   2000/11/22 18:38:31     1.2
+++ src/frontends/kde/FormParagraph.C   2000/11/23 10:46:46
@@ -80,9 +80,7 @@ void FormParagraph::update(bool switched
 #endif
 
        if (physpar->added_space_top.kind()==VSpace::LENGTH) {
-               // FIXME: ??? this breaks badly if we ever add non glue length vspace 
to a paragraph
-               // I need some help here ... it is silly anyway !
-               LyXGlueLength above(physpar->added_space_top.length().asString());
+               LyXGlueLength above = physpar->added_space_top.length();
                lyxerr[Debug::GUI] << "Reading above space : \"" << 
physpar->added_space_top.length().asString() << "\"" << endl;
                dialog_->setAboveLength(above.value(), above.plusValue(), 
above.minusValue(),
                        above.unit(), above.plusUnit(), above.minusUnit());
@@ -90,9 +88,7 @@ void FormParagraph::update(bool switched
                dialog_->setAboveLength(0.0, 0.0, 0.0, LyXLength::UNIT_NONE, 
LyXLength::UNIT_NONE, LyXLength::UNIT_NONE);
 
        if (physpar->added_space_bottom.kind()==VSpace::LENGTH) {
-               // FIXME: ??? this breaks badly if we ever add non glue length vspace 
to a paragraph
-               // I need some help here ... it is silly anyway !
-               LyXGlueLength below(physpar->added_space_bottom.length().asString());
+               LyXGlueLength below = physpar->added_space_bottom.length();
                lyxerr[Debug::GUI] << "Reading below space : \"" << 
physpar->added_space_bottom.length().asString() << "\"" << endl;
                dialog_->setBelowLength(below.value(), below.plusValue(), 
below.minusValue(),
                        below.unit(), below.plusUnit(), below.minusUnit());
@@ -150,6 +146,9 @@ void FormParagraph::apply()
        else
                spacebelow = VSpace(dialog_->getSpaceBelowKind());
 
+       spaceabove.setKeep(dialog_->getAboveKeep());
+       spacebelow.setKeep(dialog_->getBelowKeep());
+
        lyxerr[Debug::GUI] << "Setting above space \"" << 
LyXGlueLength(spaceabove.length().asString()).asString() << "\"" << endl;
        lyxerr[Debug::GUI] << "Setting below space \"" << 
LyXGlueLength(spacebelow.length().asString()).asString() << "\"" << endl;
 
@@ -178,6 +177,10 @@ void FormParagraph::apply()
                dialog_->getExtraAlign(),
                dialog_->getHfillBetween(),
                dialog_->getStartNewMinipage());
+
+       lv_->view()->update(BufferView::SELECT | BufferView::FITCUR | 
+BufferView::CHANGE);
+       lv_->buffer()->markDirty();
+       setMinibuffer(lv_, _("Paragraph layout set"));
 }
 
 void FormParagraph::show()
Index: src/frontends/kde/FormTabularCreate.C
===================================================================
RCS file: FormTabularCreate.C
diff -N FormTabularCreate.C
--- /dev/null   Tue May  5 22:32:27 1998
+++ src/frontends/kde/FormTabularCreate.C       Thu Nov 23 11:46:46 2000
@@ -0,0 +1,77 @@
+/*
+ * FormTabularCreate.C
+ * (C) 2000 LyX Team
+ * John Levon, [EMAIL PROTECTED]
+ */
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#include <config.h>
+
+#include "tabcreatedlg.h"
+#include "Dialogs.h"
+#include "FormTabularCreate.h"
+#include "gettext.h"
+#include "QtLyXView.h"
+#include "BufferView.h"
+#include "insets/insettabular.h"  
+
+using std::endl;
+
+FormTabularCreate::FormTabularCreate(LyXView *v, Dialogs *d)
+       : dialog_(0), lv_(v), d_(d), h_(0)
+{
+       // let the dialog be shown
+       // This is a permanent connection so we won't bother
+       // storing a copy because we won't be disconnecting.
+       d->showTabularCreate.connect(slot(this, &FormTabularCreate::show));
+}
+
+FormTabularCreate::~FormTabularCreate()
+{
+       delete dialog_;
+}
+
+void FormTabularCreate::apply(unsigned int rows, unsigned cols)
+{
+       if (!lv_->view()->available())
+               return;
+
+       InsetTabular * in = new InsetTabular(*lv_->buffer(), rows, cols);
+       if (!lv_->view()->open_new_inset(in))
+               delete in;
+}
+
+void FormTabularCreate::show()
+{
+       if (!dialog_)
+               dialog_ = new TabularCreateDialog(this, 0, _("LyX: Insert Table"));
+
+       if (!dialog_->isVisible()) {
+               h_ = d_->hideBufferDependent.connect(slot(this, 
+&FormTabularCreate::hide));
+       }
+
+       dialog_->raise();
+       dialog_->setActiveWindow();
+
+       update();
+       dialog_->show();
+}
+
+void FormTabularCreate::close()
+{
+       h_.disconnect();
+}
+
+void FormTabularCreate::hide()
+{
+       dialog_->hide();
+       close();
+}
Index: src/frontends/kde/FormTabularCreate.h
===================================================================
RCS file: FormTabularCreate.h
diff -N FormTabularCreate.h
--- /dev/null   Tue May  5 22:32:27 1998
+++ src/frontends/kde/FormTabularCreate.h       Thu Nov 23 11:46:46 2000
@@ -0,0 +1,60 @@
+/* FormTabularCreate.h
+ * (C) 2000 LyX Team
+ * John Levon, [EMAIL PROTECTED]
+ */
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#ifndef FORMTABULARCREATE_H
+#define FORMTABULARCREATE_H
+
+#include "DialogBase.h"
+
+class Dialogs;
+class LyXView; 
+class TabularCreateDialog;
+
+class FormTabularCreate : public DialogBase, public noncopyable {
+public: 
+       /**@name Constructors and Destructors */
+       //@{
+       ///
+       FormTabularCreate(LyXView *, Dialogs *);
+       /// 
+       ~FormTabularCreate();
+       //@}
+
+       /// create the table 
+       void apply(unsigned int rows, unsigned int cols);
+       /// close the connections
+       void close();
+ 
+private:
+       /// Create the dialog if necessary, update it and display it.
+       void show();
+       /// Hide the dialog.
+       void hide();
+ 
+       /// Real GUI implementation.
+       TabularCreateDialog * dialog_;
+
+       /// the LyXView we belong to
+       LyXView * lv_;
+ 
+       /** Which Dialogs do we belong to?
+           Used so we can get at the signals we have to connect to.
+       */
+       Dialogs * d_;
+       
+       /// Hide connection.
+       Connection h_;
+};
+
+#endif
Index: src/frontends/kde/FormToc.C
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/kde/FormToc.C,v
retrieving revision 1.6
diff -u -p -r1.6 FormToc.C
--- src/frontends/kde/FormToc.C 2000/10/17 08:27:34     1.6
+++ src/frontends/kde/FormToc.C 2000/11/23 10:46:46
@@ -33,6 +33,8 @@ using std::pair;
 using std::stack;
 using std::endl;
  
+// FIXME: we should be able to move sections around like klyx can.
+
 FormToc::FormToc(LyXView *v, Dialogs *d)
        : dialog_(0), lv_(v), d_(d), inset_(0), h_(0), u_(0), ih_(0),
        toclist(0), type(Buffer::TOC_TOC), depth(1)
Index: src/frontends/kde/Makefile.am
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/kde/Makefile.am,v
retrieving revision 1.19
diff -u -p -r1.19 Makefile.am
--- src/frontends/kde/Makefile.am       2000/11/22 18:38:31     1.19
+++ src/frontends/kde/Makefile.am       2000/11/23 10:46:47
@@ -20,8 +20,11 @@ BUILTSOURCES =       citationdlg_moc.C \
                printdlg_moc.C \
                printdlgdata_moc.C \
                refdlg_moc.C \
+               tabcreatedlg_moc.C \
+               tabcreatedlgdata_moc.C \
                tocdlg_moc.C \
-               urldlg_moc.C
+               urldlg_moc.C \
+               emptytable_moc.C
 
 # generated by qtarch
 
@@ -34,7 +37,9 @@ GENSOURCES =    copyrightdlgdata.C \
                paraextradlgdata.C \
                paraextradlgdata.h \
                printdlgdata.C \
-               printdlgdata.h
+               printdlgdata.h \
+               tabcreatedlgdata.C \
+               tabcreatedlgdata.h
 
 DISTCLEANFILES = $(BUILTSOURCES) *.orig *.rej *~ *.bak core
 
@@ -53,8 +58,6 @@ libkde_la_OBJADD = \
         ../xforms/form_preferences.lo \
         ../xforms/FormTabular.lo \
         ../xforms/form_tabular.lo \
-       ../xforms/FormTabularCreate.lo \
-       ../xforms/form_tabular_create.lo \
         ../xforms/input_validators.lo \
         ../xforms/RadioButtonGroup.lo \
         ../xforms/Toolbar_pimpl.lo \
@@ -81,6 +84,8 @@ libkde_la_SOURCES = \
        FormPrint.h \
        FormRef.C \
        FormRef.h \
+       FormTabularCreate.C \
+       FormTabularCreate.h \
        FormToc.C \
        FormToc.h \
        FormUrl.C \
@@ -101,10 +106,14 @@ libkde_la_SOURCES = \
        printdlg.h \
        refdlg.C \
        refdlg.h \
+       tabcreatedlg.C \
+       tabcreatedlg.h \
        tocdlg.C \
        tocdlg.h \
        urldlg.C \
        urldlg.h \
+       emptytable.C \
+       emptytable.h \
        $(GENSOURCES) \
        $(BUILTSOURCES)
 
@@ -141,8 +150,10 @@ parageneraldlgdata.C parageneraldlgdata.
        $(QTARCH) -g dlg/parageneral.dlg
 paraextradlgdata.C paraextradlgdata.h: dlg/paraextra.dlg
        $(QTARCH) -g dlg/paraextra.dlg
+tabcreatedlgdata.C tabcreatedlgdata.h: dlg/tabcreate.dlg
+       $(QTARCH) -g dlg/tabcreate.dlg
 
-dlgdata: $(GENSOURCES) 
+dlgdata: $(GENSOURCES)
 
 # add a dependency for every moc file to be full portable
 # I've added a key binding to emacs for this. 
@@ -157,6 +168,9 @@ copyrightdlg_moc.C: copyrightdlg.h
 copyrightdlgdata_moc.C: copyrightdlgdata.h
        $(MOC) copyrightdlgdata.h -o copyrightdlgdata_moc.C
 
+emptytable_moc.C: emptytable.h
+       $(MOC) emptytable.h -o emptytable_moc.C
+
 indexdlg.C: indexdlg_moc.C
 indexdlg_moc.C: indexdlg.h
        $(MOC) indexdlg.h -o indexdlg_moc.C
@@ -188,6 +202,12 @@ printdlgdata_moc.C: printdlgdata.h
 refdlg.C: refdlg_moc.C
 refdlg_moc.C: refdlg.h
        $(MOC) refdlg.h -o refdlg_moc.C
+
+tabcreatedlg.C: tabcreatedlg_moc.C
+tabcreatedlg_moc.C: tabcreatedlg.h
+       $(MOC) tabcreatedlg.h -o tabcreatedlg_moc.C
+tabcreatedlgdata_moc.C: tabcreatedlgdata.h
+       $(MOC) tabcreatedlgdata.h -o tabcreatedlgdata_moc.C
 
 tocdlg.C: tocdlg_moc.C
 tocdlg_moc.C: tocdlg.h
Index: src/frontends/kde/emptytable.C
===================================================================
RCS file: emptytable.C
diff -N emptytable.C
--- /dev/null   Tue May  5 22:32:27 1998
+++ src/frontends/kde/emptytable.C      Thu Nov 23 11:46:47 2000
@@ -0,0 +1,80 @@
+/*
+ * emptytable.C
+ * (C) 2000 LyX Team
+ * John Levon, [EMAIL PROTECTED]
+ */
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#include "emptytable.h"
+
+/**
+ * A simple widget for a quick "preview" in TabularCreateDialog
+ */
+
+const unsigned int cellsize = 20;
+
+EmptyTable::EmptyTable(QWidget * parent = 0, const char * name = 0)
+       : QTableView(parent,name)
+{
+       setNumCols(5);
+       setNumRows(5);
+       setCellWidth(cellsize);
+       setCellHeight(cellsize);
+       setTableFlags(Tbl_autoScrollBars);
+}
+
+void EmptyTable::paintCell(QPainter *p, int row, int col)
+{
+       int x2 = cellWidth(col) - 1;
+       int y2 = cellHeight(row) - 1;
+
+       p->fillRect(0, 0, x2, y2, QColor("white"));
+       p->drawLine(x2, 0, x2, y2);
+       p->drawLine(0, y2, x2, y2);
+}
+
+void EmptyTable::setNumberColumns(int nr_cols)
+{
+       if (nr_cols < 1)
+               return;
+       if (nr_cols == numCols())
+               return;
+       setAutoUpdate(false);
+       setNumCols(nr_cols);
+       setAutoUpdate(true);
+       update();
+       emit colsChanged(nr_cols);
+}
+
+void EmptyTable::setNumberRows(int nr_rows)
+{
+       if (nr_rows < 1)
+               return;
+       if (nr_rows == numRows())
+               return;
+       setAutoUpdate(false);
+       setNumRows(nr_rows);
+       setAutoUpdate(true);
+       update();
+       emit rowsChanged(nr_rows);
+}
+
+void EmptyTable::mouseMoveEvent(QMouseEvent *ev)
+{
+       int x = ev->pos().x();
+       int y = ev->pos().y();
+
+       if (x > 0) 
+               setNumberColumns(x / cellsize + leftCell());
+
+       if (y > 0) 
+               setNumberRows(y / cellsize + topCell());
+}
Index: src/frontends/kde/emptytable.h
===================================================================
RCS file: emptytable.h
diff -N emptytable.h
--- /dev/null   Tue May  5 22:32:27 1998
+++ src/frontends/kde/emptytable.h      Thu Nov 23 11:46:47 2000
@@ -0,0 +1,59 @@
+/*
+ * emptytable.h
+ * (C) 2000 LyX Team
+ * John Levon, [EMAIL PROTECTED]
+ */
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#ifndef EMPTYTABLE_H
+#define EMPTYTABLE_H
+
+#include <qpainter.h> 
+#include <qtableview.h> 
+
+#include "boost/utility.hpp"
+
+/**
+ * A simple widget for a quick "preview" in TabularCreateDialog.
+ * The user can drag on the widget to change the table dimensions.
+ */
+class EmptyTable : public QTableView, public noncopyable {
+   Q_OBJECT
+public:
+       EmptyTable(QWidget * parent = 0, const char * name = 0);
+       
+       ~EmptyTable() {};
+
+public slots:
+       /// set the number of columns in the table and emit colsChanged() signal 
+       void setNumberColumns(int nr_cols);
+       /// set the number of rows in the table and emit rowsChanged() signal 
+       void setNumberRows(int nr_rows);
+ 
+signals:
+       /// the number of columns changed
+       void colsChanged(unsigned int);
+       /// the number of rows changed
+       void rowsChanged(unsigned int);
+
+protected:
+       /// fill in a cell
+       virtual void paintCell(class QPainter *, int, int);
+       virtual void mouseMoveEvent(QMouseEvent *);
+       
+private:
+       /// number of current columns 
+       unsigned int cols;
+       /// number of current rows
+       unsigned int rows;
+};
+
+#endif
Index: src/frontends/kde/paradlg.C
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/kde/paradlg.C,v
retrieving revision 1.2
diff -u -p -r1.2 paradlg.C
--- src/frontends/kde/paradlg.C 2000/11/22 18:38:31     1.2
+++ src/frontends/kde/paradlg.C 2000/11/23 10:46:47
@@ -26,16 +26,10 @@ using std::endl;
  * This is the top-level dialog which contains the buttons, and the tab bar for 
adding
  * the qtarch-designed child widget dialogs.
  *
- * FIXME: QTabDialog is not good for three reasons - 
- * 1) OK/Apply don't emit different signals. Why didn't the Qt people consider we 
might
- *    care about things other than visibility of the dialog *sigh*
- * 2) the default button placement goes against the style used in the other dialogs
- * 3) we don't seem to be able to disable the OK/Apply buttons
- *
- * So this must go
- *
- * In fact I'm not at all sure that this design is a good one from the user's point 
of view, but I
- * don't really have a better solution at the moment :/
+ * FIXME: we don't seem to be able to disable the buttons
+ * also this dialog places the buttons right-justified. I am still unsure what to do 
+here -
+ * the KDE ways seems to right-justify, but I think it is better to spread them 
+across, as
+ * it gives larger targets like that.
  */
 
 ParaDialog::ParaDialog(FormParagraph *form, QWidget *parent, const char *name, bool, 
WFlags)
@@ -102,6 +96,8 @@ void ParaDialog::setReadOnly(bool readon
        generalpage->right->setEnabled(!readonly);
        generalpage->center->setEnabled(!readonly);
        generalpage->labelwidth->setEnabled(!readonly);
+       generalpage->keepabove->setEnabled(!readonly);
+       generalpage->keepbelow->setEnabled(!readonly);
        extrapage->specialalignment->setEnabled(!readonly);
        extrapage->type->setEnabled(!readonly);
        extrapage->widthvalue->setEnabled(!readonly);
@@ -111,7 +107,6 @@ void ParaDialog::setReadOnly(bool readon
        extrapage->top->setEnabled(!readonly);
        extrapage->middle->setEnabled(!readonly);
        extrapage->bottom->setEnabled(!readonly);
-       // FIXME: can't set buttons readonly
 }
 
 void ParaDialog::setLabelWidth(const char *text)
@@ -150,7 +145,7 @@ void ParaDialog::setChecks(bool labove, 
        generalpage->linebelow->setChecked(lbelow);
        generalpage->pagebreakabove->setChecked(pabove); 
        generalpage->pagebreakbelow->setChecked(pbelow); 
-       generalpage->noindent->setChecked(noindent); 
+       generalpage->noindent->setChecked(noindent);
 }
 
 void ParaDialog::setSpace(VSpace::vspace_kind kindabove, VSpace::vspace_kind 
kindbelow, bool keepabove, bool keepbelow)
@@ -215,7 +210,10 @@ void ParaDialog::setSpace(VSpace::vspace
        generalpage->spacebelowminus->setEnabled(kindbelow == VSpace::LENGTH);
        generalpage->spacebelowminusunits->setEnabled(kindbelow == VSpace::LENGTH);
 
-       // FIXME: I admit I don't know what keep does, or what is best to do with it 
...
+       generalpage->keepabove->setChecked(keepabove);
+       generalpage->keepabove->setEnabled(kindabove != VSpace::NONE);
+       generalpage->keepbelow->setChecked(keepbelow);
+       generalpage->keepbelow->setEnabled(kindbelow != VSpace::NONE);
 }
 
 void ParaDialog::setUnits(QComboBox *box, LyXLength::UNIT unit)
@@ -232,7 +230,7 @@ void ParaDialog::setUnits(QComboBox *box
                case LyXLength::BP: box->setCurrentItem(8); break;
                case LyXLength::DD: box->setCurrentItem(9); break;
                case LyXLength::CC: box->setCurrentItem(10); break;
-               case LyXLength::MU: box->setCurrentItem(11); break;
+               case LyXLength::MU: box->setCurrentItem(0); break;
                case LyXLength::UNIT_NONE: box->setCurrentItem(0); break;
                default:
                        lyxerr[Debug::GUI] << "Unknown unit " << long(unit) << endl;
@@ -351,7 +349,6 @@ LyXLength::UNIT ParaDialog::getUnits(QCo
                case 8: return LyXLength::BP;
                case 9: return LyXLength::DD;
                case 10: return LyXLength::CC;
-               case 11: return LyXLength::MU;
                default:
                        lyxerr[Debug::GUI] << "Unknown combo choice " << 
box->currentItem() << endl;
        }
@@ -389,7 +386,7 @@ LyXGlueLength ParaDialog::getBelowLength
 LyXLength ParaDialog::getExtraWidth() const
 {
 
-       if (extrapage->widthvalueunits->currentItem()!=12) {
+       if (extrapage->widthvalueunits->currentItem()!=11) {
                LyXLength len(strToDbl(extrapage->widthvalue->text()), 
getUnits(extrapage->widthvalueunits));
                return len;
        } else {
Index: src/frontends/kde/paradlg.h
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/kde/paradlg.h,v
retrieving revision 1.2
diff -u -p -r1.2 paradlg.h
--- src/frontends/kde/paradlg.h 2000/11/22 18:38:31     1.2
+++ src/frontends/kde/paradlg.h 2000/11/23 10:46:47
@@ -63,6 +63,14 @@ public:
                        return LYX_ALIGN_BLOCK;
        }
 
+       bool getAboveKeep() const {
+               return generalpage->keepabove->isChecked();
+       }
+
+       bool getBelowKeep() const {
+               return generalpage->keepbelow->isChecked();
+       }
+
        bool getLineAbove() const {
                return generalpage->lineabove->isChecked();
        }
@@ -91,16 +99,6 @@ public:
                return getSpaceKind(generalpage->spacebelow->currentItem());
        }
        
-       bool getSpaceAboveKeep() const {
-               // FIXME
-               return true;
-       }
-
-       bool getSpaceBelowKeep() const {
-               // FIXME
-               return true;
-       }
-
        LyXGlueLength getAboveLength() const;
 
        LyXGlueLength getBelowLength() const;
Index: src/frontends/kde/paraextradlg.C
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/kde/paraextradlg.C,v
retrieving revision 1.1
diff -u -p -r1.1 paraextradlg.C
--- src/frontends/kde/paraextradlg.C    2000/10/17 08:27:34     1.1
+++ src/frontends/kde/paraextradlg.C    2000/11/23 10:46:47
@@ -37,7 +37,6 @@ ParaExtraDialog::ParaExtraDialog
        widthvalueunits->insertItem(_("Big/PS points (1/72 inch)"));
        widthvalueunits->insertItem(_("Didot points"));
        widthvalueunits->insertItem(_("Cicero points"));
-       widthvalueunits->insertItem(_("Math units"));
        widthvalueunits->insertItem(_("Percent of column"));
 }
 
Index: src/frontends/kde/parageneraldlg.C
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/kde/parageneraldlg.C,v
retrieving revision 1.1
diff -u -p -r1.1 parageneraldlg.C
--- src/frontends/kde/parageneraldlg.C  2000/10/17 08:27:34     1.1
+++ src/frontends/kde/parageneraldlg.C  2000/11/23 10:46:48
@@ -59,7 +59,6 @@ void ParaGeneralDialog::createUnits(QCom
        box->insertItem(_("Big/PS points (1/72 inch)"));
        box->insertItem(_("Didot points"));
        box->insertItem(_("Cicero points"));
-       box->insertItem(_("Math units"));
 }
 
 ParaGeneralDialog::~ParaGeneralDialog()
@@ -74,24 +73,9 @@ void ParaGeneralDialog::spaceaboveHighli
        spaceaboveplusunits->setEnabled(val == 6);
        spaceaboveminus->setEnabled(val == 6);
        spaceaboveminusunits->setEnabled(val == 6);
+       keepabove->setEnabled(val != 0);
 }
 
-void ParaGeneralDialog::spaceabovevalueChanged(const char *text)
-{
-       // FIXME: the problem here is not validation, but what to do
-       // if it is not a valid double value ...
-}
-
-void ParaGeneralDialog::spaceaboveplusChanged(const char *text)
-{
-       // FIXME
-}
-
-void ParaGeneralDialog::spaceaboveminusChanged(const char *text)
-{
-       // FIXME
-}
-
 void ParaGeneralDialog::spacebelowHighlighted(int val)
 {
        spacebelowvalue->setEnabled(val == 6);
@@ -100,19 +84,5 @@ void ParaGeneralDialog::spacebelowHighli
        spacebelowplusunits->setEnabled(val == 6);
        spacebelowminus->setEnabled(val == 6);
        spacebelowminusunits->setEnabled(val == 6);
-}
-
-void ParaGeneralDialog::spacebelowvalueChanged(const char *text)
-{
-       // FIXME
-}
-
-void ParaGeneralDialog::spacebelowplusChanged(const char *text)
-{
-       // FIXME
-}
-
-void ParaGeneralDialog::spacebelowminusChanged(const char *text)
-{
-       // FIXME
+       keepbelow->setEnabled(val != 0);
 }
Index: src/frontends/kde/parageneraldlg.h
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/kde/parageneraldlg.h,v
retrieving revision 1.1
diff -u -p -r1.1 parageneraldlg.h
--- src/frontends/kde/parageneraldlg.h  2000/10/17 08:27:34     1.1
+++ src/frontends/kde/parageneraldlg.h  2000/11/23 10:46:48
@@ -34,12 +34,6 @@ protected slots:
 
     void spaceaboveHighlighted(int);
     void spacebelowHighlighted(int);
-    void spaceabovevalueChanged(const char *text);
-    void spaceaboveplusChanged(const char *text);
-    void spaceaboveminusChanged(const char *text);
-    void spacebelowvalueChanged(const char *text);
-    void spacebelowplusChanged(const char *text);
-    void spacebelowminusChanged(const char *text);
 
 private:
 
Index: src/frontends/kde/parageneraldlgdata.C
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/kde/parageneraldlgdata.C,v
retrieving revision 1.2
diff -u -p -r1.2 parageneraldlgdata.C
--- src/frontends/kde/parageneraldlgdata.C      2000/10/24 13:13:58     1.2
+++ src/frontends/kde/parageneraldlgdata.C      2000/11/23 10:46:48
@@ -3,7 +3,7 @@
        --- Qt Architect generated file ---
 
        File: parageneraldlgdata.C
-       Last generated: Tue Oct 24 13:38:19 2000
+       Last generated: Fri Nov 17 20:37:21 2000
 
        DO NOT EDIT!!!  This file will be automatically
        regenerated by qtarch.  All changes will be lost.
@@ -30,7 +30,7 @@ ParaGeneralDialogData::ParaGeneralDialog
        Inherited( parent, name, 0 )
 {
        alignment = new QButtonGroup( this, "alignment" );
-       alignment->setGeometry( 5, 5, 102, 196 );
+       alignment->setGeometry( 5, 5, 142, 386 );
        alignment->setMinimumSize( 0, 0 );
        alignment->setMaximumSize( 32767, 32767 );
        alignment->setFocusPolicy( QWidget::NoFocus );
@@ -47,8 +47,8 @@ ParaGeneralDialogData::ParaGeneralDialog
 
        QGroupBox* qtarch_SpacingAboveGroupBox;
        qtarch_SpacingAboveGroupBox = new QGroupBox( this, "SpacingAboveGroupBox" );
-       qtarch_SpacingAboveGroupBox->setGeometry( 112, 5, 204, 196 );
-       qtarch_SpacingAboveGroupBox->setMinimumSize( 0, 0 );
+       qtarch_SpacingAboveGroupBox->setGeometry( 152, 5, 294, 386 );
+       qtarch_SpacingAboveGroupBox->setMinimumSize( 10, 40 );
        qtarch_SpacingAboveGroupBox->setMaximumSize( 32767, 32767 );
        qtarch_SpacingAboveGroupBox->setFocusPolicy( QWidget::NoFocus );
        qtarch_SpacingAboveGroupBox->setBackgroundMode( QWidget::PaletteBackground );
@@ -62,7 +62,7 @@ ParaGeneralDialogData::ParaGeneralDialog
        qtarch_SpacingAboveGroupBox->setAlignment( 1 );
 
        lineabove = new QCheckBox( this, "lineabove" );
-       lineabove->setGeometry( 5, 206, 255, 26 );
+       lineabove->setGeometry( 5, 396, 365, 46 );
        lineabove->setMinimumSize( 0, 0 );
        lineabove->setMaximumSize( 32767, 32767 );
        lineabove->setFocusPolicy( QWidget::TabFocus );
@@ -75,7 +75,7 @@ ParaGeneralDialogData::ParaGeneralDialog
        lineabove->setChecked( FALSE );
 
        linebelow = new QCheckBox( this, "linebelow" );
-       linebelow->setGeometry( 5, 237, 255, 27 );
+       linebelow->setGeometry( 5, 447, 365, 47 );
        linebelow->setMinimumSize( 0, 0 );
        linebelow->setMaximumSize( 32767, 32767 );
        linebelow->setFocusPolicy( QWidget::TabFocus );
@@ -88,7 +88,7 @@ ParaGeneralDialogData::ParaGeneralDialog
        linebelow->setChecked( FALSE );
 
        pagebreakabove = new QCheckBox( qtarch_SpacingAboveGroupBox, "pagebreakabove" 
);
-       pagebreakabove->setGeometry( 5, 20, 194, 24 );
+       pagebreakabove->setGeometry( 5, 20, 284, 66 );
        pagebreakabove->setMinimumSize( 0, 0 );
        pagebreakabove->setMaximumSize( 32767, 32767 );
        pagebreakabove->setFocusPolicy( QWidget::TabFocus );
@@ -101,7 +101,7 @@ ParaGeneralDialogData::ParaGeneralDialog
        pagebreakabove->setChecked( FALSE );
 
        noindent = new QCheckBox( this, "noindent" );
-       noindent->setGeometry( 5, 269, 255, 26 );
+       noindent->setGeometry( 5, 499, 365, 46 );
        noindent->setMinimumSize( 0, 0 );
        noindent->setMaximumSize( 32767, 32767 );
        noindent->setFocusPolicy( QWidget::TabFocus );
@@ -114,7 +114,7 @@ ParaGeneralDialogData::ParaGeneralDialog
        noindent->setChecked( FALSE );
 
        spaceabove = new QComboBox( FALSE, qtarch_SpacingAboveGroupBox, "spaceabove" 
);
-       spaceabove->setGeometry( 5, 79, 194, 24 );
+       spaceabove->setGeometry( 5, 234, 284, 66 );
        spaceabove->setMinimumSize( 0, 0 );
        spaceabove->setMaximumSize( 32767, 32767 );
        connect( spaceabove, SIGNAL(highlighted(int)), 
SLOT(spaceaboveHighlighted(int)) );
@@ -129,7 +129,7 @@ ParaGeneralDialogData::ParaGeneralDialog
 
        QLabel* qtarch_abovelabel;
        qtarch_abovelabel = new QLabel( qtarch_SpacingAboveGroupBox, "abovelabel" );
-       qtarch_abovelabel->setGeometry( 5, 49, 194, 25 );
+       qtarch_abovelabel->setGeometry( 5, 162, 284, 67 );
        qtarch_abovelabel->setMinimumSize( 0, 0 );
        qtarch_abovelabel->setMaximumSize( 32767, 32767 );
        qtarch_abovelabel->setFocusPolicy( QWidget::NoFocus );
@@ -146,8 +146,8 @@ ParaGeneralDialogData::ParaGeneralDialog
 
        QGroupBox* qtarch_SpacingBelowGroupBox;
        qtarch_SpacingBelowGroupBox = new QGroupBox( this, "SpacingBelowGroupBox" );
-       qtarch_SpacingBelowGroupBox->setGeometry( 321, 5, 204, 196 );
-       qtarch_SpacingBelowGroupBox->setMinimumSize( 0, 0 );
+       qtarch_SpacingBelowGroupBox->setGeometry( 451, 5, 294, 386 );
+       qtarch_SpacingBelowGroupBox->setMinimumSize( 10, 40 );
        qtarch_SpacingBelowGroupBox->setMaximumSize( 32767, 32767 );
        qtarch_SpacingBelowGroupBox->setFocusPolicy( QWidget::NoFocus );
        qtarch_SpacingBelowGroupBox->setBackgroundMode( QWidget::PaletteBackground );
@@ -161,7 +161,7 @@ ParaGeneralDialogData::ParaGeneralDialog
        qtarch_SpacingBelowGroupBox->setAlignment( 1 );
 
        pagebreakbelow = new QCheckBox( qtarch_SpacingBelowGroupBox, "pagebreakbelow" 
);
-       pagebreakbelow->setGeometry( 5, 20, 194, 24 );
+       pagebreakbelow->setGeometry( 5, 20, 284, 66 );
        pagebreakbelow->setMinimumSize( 0, 0 );
        pagebreakbelow->setMaximumSize( 32767, 32767 );
        pagebreakbelow->setFocusPolicy( QWidget::TabFocus );
@@ -175,7 +175,7 @@ ParaGeneralDialogData::ParaGeneralDialog
 
        QLabel* qtarch_belowlabel;
        qtarch_belowlabel = new QLabel( qtarch_SpacingBelowGroupBox, "belowlabel" );
-       qtarch_belowlabel->setGeometry( 5, 49, 194, 25 );
+       qtarch_belowlabel->setGeometry( 5, 162, 284, 67 );
        qtarch_belowlabel->setMinimumSize( 0, 0 );
        qtarch_belowlabel->setMaximumSize( 32767, 32767 );
        qtarch_belowlabel->setFocusPolicy( QWidget::NoFocus );
@@ -191,7 +191,7 @@ ParaGeneralDialogData::ParaGeneralDialog
        qtarch_belowlabel->setMargin( -1 );
 
        spacebelow = new QComboBox( FALSE, qtarch_SpacingBelowGroupBox, "spacebelow" 
);
-       spacebelow->setGeometry( 5, 79, 194, 24 );
+       spacebelow->setGeometry( 5, 234, 284, 66 );
        spacebelow->setMinimumSize( 0, 0 );
        spacebelow->setMaximumSize( 32767, 32767 );
        connect( spacebelow, SIGNAL(highlighted(int)), 
SLOT(spacebelowHighlighted(int)) );
@@ -205,7 +205,7 @@ ParaGeneralDialogData::ParaGeneralDialog
        spacebelow->setAutoCompletion( FALSE );
 
        block = new QRadioButton( alignment, "block" );
-       block->setGeometry( 5, 37, 92, 18 );
+       block->setGeometry( 5, 58, 132, 39 );
        block->setMinimumSize( 0, 0 );
        block->setMaximumSize( 32767, 32767 );
        block->setFocusPolicy( QWidget::TabFocus );
@@ -218,7 +218,7 @@ ParaGeneralDialogData::ParaGeneralDialog
        block->setChecked( FALSE );
 
        center = new QRadioButton( alignment, "center" );
-       center->setGeometry( 5, 77, 92, 17 );
+       center->setGeometry( 5, 140, 132, 39 );
        center->setMinimumSize( 0, 0 );
        center->setMaximumSize( 32767, 32767 );
        center->setFocusPolicy( QWidget::TabFocus );
@@ -231,7 +231,7 @@ ParaGeneralDialogData::ParaGeneralDialog
        center->setChecked( FALSE );
 
        left = new QRadioButton( alignment, "left" );
-       left->setGeometry( 5, 117, 92, 17 );
+       left->setGeometry( 5, 222, 132, 39 );
        left->setMinimumSize( 0, 0 );
        left->setMaximumSize( 32767, 32767 );
        left->setFocusPolicy( QWidget::TabFocus );
@@ -244,7 +244,7 @@ ParaGeneralDialogData::ParaGeneralDialog
        left->setChecked( FALSE );
 
        right = new QRadioButton( alignment, "right" );
-       right->setGeometry( 5, 156, 92, 18 );
+       right->setGeometry( 5, 304, 132, 39 );
        right->setMinimumSize( 0, 0 );
        right->setMaximumSize( 32767, 32767 );
        right->setFocusPolicy( QWidget::TabFocus );
@@ -258,7 +258,7 @@ ParaGeneralDialogData::ParaGeneralDialog
 
        QLabel* qtarch_labelwidthlabel;
        qtarch_labelwidthlabel = new QLabel( this, "labelwidthlabel" );
-       qtarch_labelwidthlabel->setGeometry( 265, 206, 128, 89 );
+       qtarch_labelwidthlabel->setGeometry( 375, 396, 183, 149 );
        qtarch_labelwidthlabel->setMinimumSize( 0, 0 );
        qtarch_labelwidthlabel->setMaximumSize( 32767, 32767 );
        qtarch_labelwidthlabel->setFocusPolicy( QWidget::NoFocus );
@@ -274,7 +274,7 @@ ParaGeneralDialogData::ParaGeneralDialog
        qtarch_labelwidthlabel->setMargin( -1 );
 
        labelwidth = new QLineEdit( this, "labelwidth" );
-       labelwidth->setGeometry( 398, 206, 127, 89 );
+       labelwidth->setGeometry( 563, 396, 182, 149 );
        labelwidth->setMinimumSize( 0, 0 );
        labelwidth->setMaximumSize( 32767, 32767 );
        labelwidth->setFocusPolicy( QWidget::StrongFocus );
@@ -287,10 +287,9 @@ ParaGeneralDialogData::ParaGeneralDialog
        labelwidth->setFrame( TRUE );
 
        spaceabovevalue = new KRestrictedLine( qtarch_SpacingAboveGroupBox, 
"spaceabovevalue" );
-       spaceabovevalue->setGeometry( 36, 108, 53, 24 );
+       spaceabovevalue->setGeometry( 58, 305, 48, 22 );
        spaceabovevalue->setMinimumSize( 0, 0 );
-       spaceabovevalue->setMaximumSize( 32767, 32767 );
-       connect( spaceabovevalue, SIGNAL(textChanged(const char*)), 
SLOT(spaceabovevalueChanged(const char*)) );
+       spaceabovevalue->setMaximumSize( 50, 32767 );
        spaceabovevalue->setFocusPolicy( QWidget::StrongFocus );
        spaceabovevalue->setBackgroundMode( QWidget::PaletteBase );
        spaceabovevalue->setFontPropagation( QWidget::NoChildren );
@@ -299,11 +298,11 @@ ParaGeneralDialogData::ParaGeneralDialog
        spaceabovevalue->setMaxLength( 32767 );
        spaceabovevalue->setFrame( QLineEdit::Normal );
        spaceabovevalue->setFrame( TRUE );
-       spaceabovevalue->setValidChars( "0123456789.-," );
+       spaceabovevalue->setValidChars( "0123456789.," );
 
        QLabel* qtarch_ValueLabel;
        qtarch_ValueLabel = new QLabel( qtarch_SpacingAboveGroupBox, "ValueLabel" );
-       qtarch_ValueLabel->setGeometry( 5, 108, 26, 24 );
+       qtarch_ValueLabel->setGeometry( 5, 305, 48, 22 );
        qtarch_ValueLabel->setMinimumSize( 0, 0 );
        qtarch_ValueLabel->setMaximumSize( 32767, 32767 );
        qtarch_ValueLabel->setFocusPolicy( QWidget::NoFocus );
@@ -319,7 +318,7 @@ ParaGeneralDialogData::ParaGeneralDialog
        qtarch_ValueLabel->setMargin( -1 );
 
        spaceabovevalueunits = new QComboBox( FALSE, qtarch_SpacingAboveGroupBox, 
"spaceabovevalueunits" );
-       spaceabovevalueunits->setGeometry( 94, 108, 105, 24 );
+       spaceabovevalueunits->setGeometry( 111, 305, 178, 22 );
        spaceabovevalueunits->setMinimumSize( 0, 0 );
        spaceabovevalueunits->setMaximumSize( 32767, 32767 );
        spaceabovevalueunits->setFocusPolicy( QWidget::StrongFocus );
@@ -333,7 +332,7 @@ ParaGeneralDialogData::ParaGeneralDialog
 
        QLabel* qtarch_aboveminuslabel;
        qtarch_aboveminuslabel = new QLabel( qtarch_SpacingAboveGroupBox, 
"aboveminuslabel" );
-       qtarch_aboveminuslabel->setGeometry( 5, 167, 26, 24 );
+       qtarch_aboveminuslabel->setGeometry( 5, 359, 48, 22 );
        qtarch_aboveminuslabel->setMinimumSize( 0, 0 );
        qtarch_aboveminuslabel->setMaximumSize( 32767, 32767 );
        qtarch_aboveminuslabel->setFocusPolicy( QWidget::NoFocus );
@@ -349,10 +348,9 @@ ParaGeneralDialogData::ParaGeneralDialog
        qtarch_aboveminuslabel->setMargin( -1 );
 
        spaceaboveminus = new KRestrictedLine( qtarch_SpacingAboveGroupBox, 
"spaceaboveminus" );
-       spaceaboveminus->setGeometry( 36, 167, 53, 24 );
+       spaceaboveminus->setGeometry( 58, 359, 48, 22 );
        spaceaboveminus->setMinimumSize( 0, 0 );
-       spaceaboveminus->setMaximumSize( 32767, 32767 );
-       connect( spaceaboveminus, SIGNAL(textChanged(const char*)), 
SLOT(spaceaboveminusChanged(const char*)) );
+       spaceaboveminus->setMaximumSize( 50, 32767 );
        spaceaboveminus->setFocusPolicy( QWidget::StrongFocus );
        spaceaboveminus->setBackgroundMode( QWidget::PaletteBase );
        spaceaboveminus->setFontPropagation( QWidget::NoChildren );
@@ -361,10 +359,10 @@ ParaGeneralDialogData::ParaGeneralDialog
        spaceaboveminus->setMaxLength( 32767 );
        spaceaboveminus->setFrame( QLineEdit::Normal );
        spaceaboveminus->setFrame( TRUE );
-       spaceaboveminus->setValidChars( "0123456789.-," );
+       spaceaboveminus->setValidChars( "0123456789.," );
 
        spaceaboveminusunits = new QComboBox( FALSE, qtarch_SpacingAboveGroupBox, 
"spaceaboveminusunits" );
-       spaceaboveminusunits->setGeometry( 94, 167, 105, 24 );
+       spaceaboveminusunits->setGeometry( 111, 359, 178, 22 );
        spaceaboveminusunits->setMinimumSize( 0, 0 );
        spaceaboveminusunits->setMaximumSize( 32767, 32767 );
        spaceaboveminusunits->setFocusPolicy( QWidget::StrongFocus );
@@ -378,7 +376,7 @@ ParaGeneralDialogData::ParaGeneralDialog
 
        QLabel* qtarch_abovepluslabel ;
        qtarch_abovepluslabel  = new QLabel( qtarch_SpacingAboveGroupBox, 
"abovepluslabel " );
-       qtarch_abovepluslabel ->setGeometry( 5, 137, 26, 25 );
+       qtarch_abovepluslabel ->setGeometry( 5, 332, 48, 22 );
        qtarch_abovepluslabel ->setMinimumSize( 0, 0 );
        qtarch_abovepluslabel ->setMaximumSize( 32767, 32767 );
        qtarch_abovepluslabel ->setFocusPolicy( QWidget::NoFocus );
@@ -394,10 +392,9 @@ ParaGeneralDialogData::ParaGeneralDialog
        qtarch_abovepluslabel ->setMargin( -1 );
 
        spaceaboveplus = new KRestrictedLine( qtarch_SpacingAboveGroupBox, 
"spaceaboveplus" );
-       spaceaboveplus->setGeometry( 36, 137, 53, 25 );
+       spaceaboveplus->setGeometry( 58, 332, 48, 22 );
        spaceaboveplus->setMinimumSize( 0, 0 );
-       spaceaboveplus->setMaximumSize( 32767, 32767 );
-       connect( spaceaboveplus, SIGNAL(textChanged(const char*)), 
SLOT(spaceaboveplusChanged(const char*)) );
+       spaceaboveplus->setMaximumSize( 50, 32767 );
        spaceaboveplus->setFocusPolicy( QWidget::StrongFocus );
        spaceaboveplus->setBackgroundMode( QWidget::PaletteBase );
        spaceaboveplus->setFontPropagation( QWidget::NoChildren );
@@ -406,10 +403,10 @@ ParaGeneralDialogData::ParaGeneralDialog
        spaceaboveplus->setMaxLength( 32767 );
        spaceaboveplus->setFrame( QLineEdit::Normal );
        spaceaboveplus->setFrame( TRUE );
-       spaceaboveplus->setValidChars( "0123456789.-," );
+       spaceaboveplus->setValidChars( "0123456789.," );
 
        spaceaboveplusunits = new QComboBox( FALSE, qtarch_SpacingAboveGroupBox, 
"spaceaboveplusunits" );
-       spaceaboveplusunits->setGeometry( 94, 137, 105, 25 );
+       spaceaboveplusunits->setGeometry( 111, 332, 178, 22 );
        spaceaboveplusunits->setMinimumSize( 0, 0 );
        spaceaboveplusunits->setMaximumSize( 32767, 32767 );
        spaceaboveplusunits->setFocusPolicy( QWidget::StrongFocus );
@@ -423,7 +420,7 @@ ParaGeneralDialogData::ParaGeneralDialog
 
        QLabel* qtarch_valuebelowlabel;
        qtarch_valuebelowlabel = new QLabel( qtarch_SpacingBelowGroupBox, 
"valuebelowlabel" );
-       qtarch_valuebelowlabel->setGeometry( 5, 108, 26, 24 );
+       qtarch_valuebelowlabel->setGeometry( 5, 305, 48, 22 );
        qtarch_valuebelowlabel->setMinimumSize( 0, 0 );
        qtarch_valuebelowlabel->setMaximumSize( 32767, 32767 );
        qtarch_valuebelowlabel->setFocusPolicy( QWidget::NoFocus );
@@ -440,7 +437,7 @@ ParaGeneralDialogData::ParaGeneralDialog
 
        QLabel* qtarch_plusbelowlabel;
        qtarch_plusbelowlabel = new QLabel( qtarch_SpacingBelowGroupBox, 
"plusbelowlabel" );
-       qtarch_plusbelowlabel->setGeometry( 5, 137, 26, 25 );
+       qtarch_plusbelowlabel->setGeometry( 5, 332, 48, 22 );
        qtarch_plusbelowlabel->setMinimumSize( 0, 0 );
        qtarch_plusbelowlabel->setMaximumSize( 32767, 32767 );
        qtarch_plusbelowlabel->setFocusPolicy( QWidget::NoFocus );
@@ -457,7 +454,7 @@ ParaGeneralDialogData::ParaGeneralDialog
 
        QLabel* qtarch_minusbelowlabel;
        qtarch_minusbelowlabel = new QLabel( qtarch_SpacingBelowGroupBox, 
"minusbelowlabel" );
-       qtarch_minusbelowlabel->setGeometry( 5, 167, 26, 24 );
+       qtarch_minusbelowlabel->setGeometry( 5, 359, 48, 22 );
        qtarch_minusbelowlabel->setMinimumSize( 0, 0 );
        qtarch_minusbelowlabel->setMaximumSize( 32767, 32767 );
        qtarch_minusbelowlabel->setFocusPolicy( QWidget::NoFocus );
@@ -473,10 +470,9 @@ ParaGeneralDialogData::ParaGeneralDialog
        qtarch_minusbelowlabel->setMargin( -1 );
 
        spacebelowminus = new KRestrictedLine( qtarch_SpacingBelowGroupBox, 
"spacebelowminus" );
-       spacebelowminus->setGeometry( 36, 167, 53, 24 );
+       spacebelowminus->setGeometry( 58, 359, 48, 22 );
        spacebelowminus->setMinimumSize( 0, 0 );
-       spacebelowminus->setMaximumSize( 32767, 32767 );
-       connect( spacebelowminus, SIGNAL(textChanged(const char*)), 
SLOT(spacebelowminusChanged(const char*)) );
+       spacebelowminus->setMaximumSize( 50, 32767 );
        spacebelowminus->setFocusPolicy( QWidget::StrongFocus );
        spacebelowminus->setBackgroundMode( QWidget::PaletteBase );
        spacebelowminus->setFontPropagation( QWidget::NoChildren );
@@ -485,13 +481,12 @@ ParaGeneralDialogData::ParaGeneralDialog
        spacebelowminus->setMaxLength( 32767 );
        spacebelowminus->setFrame( QLineEdit::Normal );
        spacebelowminus->setFrame( TRUE );
-       spacebelowminus->setValidChars( "0123456789.-," );
+       spacebelowminus->setValidChars( "0123456789.," );
 
        spacebelowplus = new KRestrictedLine( qtarch_SpacingBelowGroupBox, 
"spacebelowplus" );
-       spacebelowplus->setGeometry( 36, 137, 53, 25 );
+       spacebelowplus->setGeometry( 58, 332, 48, 22 );
        spacebelowplus->setMinimumSize( 0, 0 );
-       spacebelowplus->setMaximumSize( 32767, 32767 );
-       connect( spacebelowplus, SIGNAL(textChanged(const char*)), 
SLOT(spacebelowplusChanged(const char*)) );
+       spacebelowplus->setMaximumSize( 50, 32767 );
        spacebelowplus->setFocusPolicy( QWidget::StrongFocus );
        spacebelowplus->setBackgroundMode( QWidget::PaletteBase );
        spacebelowplus->setFontPropagation( QWidget::NoChildren );
@@ -500,13 +495,12 @@ ParaGeneralDialogData::ParaGeneralDialog
        spacebelowplus->setMaxLength( 32767 );
        spacebelowplus->setFrame( QLineEdit::Normal );
        spacebelowplus->setFrame( TRUE );
-       spacebelowplus->setValidChars( "0123456789.-," );
+       spacebelowplus->setValidChars( "0123456789.," );
 
        spacebelowvalue = new KRestrictedLine( qtarch_SpacingBelowGroupBox, 
"spacebelowvalue" );
-       spacebelowvalue->setGeometry( 36, 108, 53, 24 );
+       spacebelowvalue->setGeometry( 58, 305, 48, 22 );
        spacebelowvalue->setMinimumSize( 0, 0 );
-       spacebelowvalue->setMaximumSize( 32767, 32767 );
-       connect( spacebelowvalue, SIGNAL(textChanged(const char*)), 
SLOT(spacebelowvalueChanged(const char*)) );
+       spacebelowvalue->setMaximumSize( 50, 32767 );
        spacebelowvalue->setFocusPolicy( QWidget::StrongFocus );
        spacebelowvalue->setBackgroundMode( QWidget::PaletteBase );
        spacebelowvalue->setFontPropagation( QWidget::NoChildren );
@@ -515,10 +509,10 @@ ParaGeneralDialogData::ParaGeneralDialog
        spacebelowvalue->setMaxLength( 32767 );
        spacebelowvalue->setFrame( QLineEdit::Normal );
        spacebelowvalue->setFrame( TRUE );
-       spacebelowvalue->setValidChars( "0123456789.-," );
+       spacebelowvalue->setValidChars( "0123456789.," );
 
        spacebelowvalueunits = new QComboBox( FALSE, qtarch_SpacingBelowGroupBox, 
"spacebelowvalueunits" );
-       spacebelowvalueunits->setGeometry( 94, 108, 105, 24 );
+       spacebelowvalueunits->setGeometry( 111, 305, 178, 22 );
        spacebelowvalueunits->setMinimumSize( 0, 0 );
        spacebelowvalueunits->setMaximumSize( 32767, 32767 );
        spacebelowvalueunits->setFocusPolicy( QWidget::StrongFocus );
@@ -531,7 +525,7 @@ ParaGeneralDialogData::ParaGeneralDialog
        spacebelowvalueunits->setAutoCompletion( FALSE );
 
        spacebelowplusunits = new QComboBox( FALSE, qtarch_SpacingBelowGroupBox, 
"spacebelowplusunits" );
-       spacebelowplusunits->setGeometry( 94, 137, 105, 25 );
+       spacebelowplusunits->setGeometry( 111, 332, 178, 22 );
        spacebelowplusunits->setMinimumSize( 0, 0 );
        spacebelowplusunits->setMaximumSize( 32767, 32767 );
        spacebelowplusunits->setFocusPolicy( QWidget::StrongFocus );
@@ -544,7 +538,7 @@ ParaGeneralDialogData::ParaGeneralDialog
        spacebelowplusunits->setAutoCompletion( FALSE );
 
        spacebelowminusunits = new QComboBox( FALSE, qtarch_SpacingBelowGroupBox, 
"spacebelowminusunits" );
-       spacebelowminusunits->setGeometry( 94, 167, 105, 24 );
+       spacebelowminusunits->setGeometry( 111, 359, 178, 22 );
        spacebelowminusunits->setMinimumSize( 0, 0 );
        spacebelowminusunits->setMaximumSize( 32767, 32767 );
        spacebelowminusunits->setFocusPolicy( QWidget::StrongFocus );
@@ -556,6 +550,32 @@ ParaGeneralDialogData::ParaGeneralDialog
        spacebelowminusunits->setMaxCount( 2147483647 );
        spacebelowminusunits->setAutoCompletion( FALSE );
 
+       keepabove = new QCheckBox( qtarch_SpacingAboveGroupBox, "keepabove" );
+       keepabove->setGeometry( 5, 91, 284, 66 );
+       keepabove->setMinimumSize( 0, 0 );
+       keepabove->setMaximumSize( 32767, 32767 );
+       keepabove->setFocusPolicy( QWidget::TabFocus );
+       keepabove->setBackgroundMode( QWidget::PaletteBackground );
+       keepabove->setFontPropagation( QWidget::NoChildren );
+       keepabove->setPalettePropagation( QWidget::NoChildren );
+       keepabove->setText( _("Keep space when at top of page") );
+       keepabove->setAutoRepeat( FALSE );
+       keepabove->setAutoResize( FALSE );
+       keepabove->setChecked( FALSE );
+
+       keepbelow = new QCheckBox( qtarch_SpacingBelowGroupBox, "keepbelow" );
+       keepbelow->setGeometry( 5, 91, 284, 66 );
+       keepbelow->setMinimumSize( 0, 0 );
+       keepbelow->setMaximumSize( 32767, 32767 );
+       keepbelow->setFocusPolicy( QWidget::TabFocus );
+       keepbelow->setBackgroundMode( QWidget::PaletteBackground );
+       keepbelow->setFontPropagation( QWidget::NoChildren );
+       keepbelow->setPalettePropagation( QWidget::NoChildren );
+       keepbelow->setText( _("Keep space when at bottom of page") );
+       keepbelow->setAutoRepeat( FALSE );
+       keepbelow->setAutoResize( FALSE );
+       keepbelow->setChecked( FALSE );
+
        if (alignment->sizeHint().width()!=-1)
                alignment->setMinimumWidth(alignment->sizeHint().width());
        if (alignment->sizeHint().height()!=-1)
@@ -775,6 +795,22 @@ ParaGeneralDialogData::ParaGeneralDialog
                
spacebelowminusunits->setMinimumHeight(spacebelowminusunits->sizeHint().height());
        if (spacebelowminusunits->sizeHint().height()!=-1)
                
spacebelowminusunits->setMaximumHeight(spacebelowminusunits->sizeHint().height());
+       if (keepabove->sizeHint().width()!=-1)
+               keepabove->setMinimumWidth(keepabove->sizeHint().width());
+       if (keepabove->sizeHint().height()!=-1)
+               keepabove->setMinimumHeight(keepabove->sizeHint().height());
+       if (keepabove->sizeHint().width()!=-1)
+               keepabove->setMaximumWidth(keepabove->sizeHint().width());
+       if (keepabove->sizeHint().height()!=-1)
+               keepabove->setMaximumHeight(keepabove->sizeHint().height());
+       if (keepbelow->sizeHint().width()!=-1)
+               keepbelow->setMinimumWidth(keepbelow->sizeHint().width());
+       if (keepbelow->sizeHint().height()!=-1)
+               keepbelow->setMinimumHeight(keepbelow->sizeHint().height());
+       if (keepbelow->sizeHint().width()!=-1)
+               keepbelow->setMaximumWidth(keepbelow->sizeHint().width());
+       if (keepbelow->sizeHint().height()!=-1)
+               keepbelow->setMaximumHeight(keepbelow->sizeHint().height());
        QBoxLayout* qtarch_layout_1 = new QBoxLayout( this, QBoxLayout::TopToBottom, 
5, 5, NULL );
        qtarch_layout_1->addStrut( 0 );
        QBoxLayout* qtarch_layout_1_1 = new QBoxLayout( QBoxLayout::LeftToRight, 5, 
NULL );
@@ -798,51 +834,63 @@ ParaGeneralDialogData::ParaGeneralDialog
        qtarch_layout_1_1_2->addStrut( 0 );
        qtarch_layout_1_1_2->addSpacing( 15 );
        qtarch_layout_1_1_2->addWidget( pagebreakabove, 1, 1 );
+       qtarch_layout_1_1_2->addWidget( keepabove, 1, 1 );
        qtarch_layout_1_1_2->addWidget( qtarch_abovelabel, 1, 1 );
        qtarch_layout_1_1_2->addWidget( spaceabove, 1, 1 );
-       QBoxLayout* qtarch_layout_1_1_2_5 = new QBoxLayout( QBoxLayout::LeftToRight, 
5, NULL );
-       qtarch_layout_1_1_2->addLayout( qtarch_layout_1_1_2_5, 1 );
-       qtarch_layout_1_1_2_5->addStrut( 0 );
-       qtarch_layout_1_1_2_5->addWidget( qtarch_ValueLabel, 1, 36 );
-       qtarch_layout_1_1_2_5->addWidget( spaceabovevalue, 2, 36 );
-       qtarch_layout_1_1_2_5->addWidget( spaceabovevalueunits, 4, 36 );
-       QBoxLayout* qtarch_layout_1_1_2_6 = new QBoxLayout( QBoxLayout::LeftToRight, 
5, NULL );
+       QGridLayout* qtarch_layout_1_1_2_6 = new QGridLayout( 3, 3, 5, NULL );
        qtarch_layout_1_1_2->addLayout( qtarch_layout_1_1_2_6, 1 );
-       qtarch_layout_1_1_2_6->addStrut( 0 );
-       qtarch_layout_1_1_2_6->addWidget( qtarch_abovepluslabel , 1, 36 );
-       qtarch_layout_1_1_2_6->addWidget( spaceaboveplus, 2, 36 );
-       qtarch_layout_1_1_2_6->addWidget( spaceaboveplusunits, 4, 36 );
-       QBoxLayout* qtarch_layout_1_1_2_7 = new QBoxLayout( QBoxLayout::LeftToRight, 
5, NULL );
-       qtarch_layout_1_1_2->addLayout( qtarch_layout_1_1_2_7, 1 );
-       qtarch_layout_1_1_2_7->addStrut( 0 );
-       qtarch_layout_1_1_2_7->addWidget( qtarch_aboveminuslabel, 1, 36 );
-       qtarch_layout_1_1_2_7->addWidget( spaceaboveminus, 2, 36 );
-       qtarch_layout_1_1_2_7->addWidget( spaceaboveminusunits, 4, 36 );
+       qtarch_layout_1_1_2_6->addColSpacing( 0, 5 );
+       qtarch_layout_1_1_2_6->setColStretch( 0, 1 );
+       qtarch_layout_1_1_2_6->addColSpacing( 1, 5 );
+       qtarch_layout_1_1_2_6->setColStretch( 1, 1 );
+       qtarch_layout_1_1_2_6->addColSpacing( 2, 5 );
+       qtarch_layout_1_1_2_6->setColStretch( 2, 4 );
+       qtarch_layout_1_1_2_6->addRowSpacing( 0, 0 );
+       qtarch_layout_1_1_2_6->setRowStretch( 0, 1 );
+       qtarch_layout_1_1_2_6->addWidget( qtarch_ValueLabel, 0, 0, 33 );
+       qtarch_layout_1_1_2_6->addWidget( spaceabovevalue, 0, 1, 33 );
+       qtarch_layout_1_1_2_6->addWidget( spaceabovevalueunits, 0, 2, 34 );
+       qtarch_layout_1_1_2_6->addRowSpacing( 1, 0 );
+       qtarch_layout_1_1_2_6->setRowStretch( 1, 1 );
+       qtarch_layout_1_1_2_6->addWidget( qtarch_abovepluslabel , 1, 0, 33 );
+       qtarch_layout_1_1_2_6->addWidget( spaceaboveplus, 1, 1, 33 );
+       qtarch_layout_1_1_2_6->addWidget( spaceaboveplusunits, 1, 2, 34 );
+       qtarch_layout_1_1_2_6->addRowSpacing( 2, 0 );
+       qtarch_layout_1_1_2_6->setRowStretch( 2, 1 );
+       qtarch_layout_1_1_2_6->addWidget( qtarch_aboveminuslabel, 2, 0, 33 );
+       qtarch_layout_1_1_2_6->addWidget( spaceaboveminus, 2, 1, 33 );
+       qtarch_layout_1_1_2_6->addWidget( spaceaboveminusunits, 2, 2, 34 );
        qtarch_layout_1_1->addWidget( qtarch_SpacingBelowGroupBox, 2, 36 );
        QBoxLayout* qtarch_layout_1_1_3 = new QBoxLayout( qtarch_SpacingBelowGroupBox, 
QBoxLayout::TopToBottom, 5, 5, NULL );
        qtarch_layout_1_1_3->addStrut( 0 );
        qtarch_layout_1_1_3->addSpacing( 15 );
        qtarch_layout_1_1_3->addWidget( pagebreakbelow, 1, 1 );
+       qtarch_layout_1_1_3->addWidget( keepbelow, 1, 1 );
        qtarch_layout_1_1_3->addWidget( qtarch_belowlabel, 1, 1 );
        qtarch_layout_1_1_3->addWidget( spacebelow, 1, 1 );
-       QBoxLayout* qtarch_layout_1_1_3_5 = new QBoxLayout( QBoxLayout::LeftToRight, 
5, NULL );
-       qtarch_layout_1_1_3->addLayout( qtarch_layout_1_1_3_5, 1 );
-       qtarch_layout_1_1_3_5->addStrut( 0 );
-       qtarch_layout_1_1_3_5->addWidget( qtarch_valuebelowlabel, 1, 36 );
-       qtarch_layout_1_1_3_5->addWidget( spacebelowvalue, 2, 36 );
-       qtarch_layout_1_1_3_5->addWidget( spacebelowvalueunits, 4, 36 );
-       QBoxLayout* qtarch_layout_1_1_3_6 = new QBoxLayout( QBoxLayout::LeftToRight, 
5, NULL );
+       QGridLayout* qtarch_layout_1_1_3_6 = new QGridLayout( 3, 3, 5, NULL );
        qtarch_layout_1_1_3->addLayout( qtarch_layout_1_1_3_6, 1 );
-       qtarch_layout_1_1_3_6->addStrut( 0 );
-       qtarch_layout_1_1_3_6->addWidget( qtarch_plusbelowlabel, 1, 36 );
-       qtarch_layout_1_1_3_6->addWidget( spacebelowplus, 2, 36 );
-       qtarch_layout_1_1_3_6->addWidget( spacebelowplusunits, 4, 36 );
-       QBoxLayout* qtarch_layout_1_1_3_7 = new QBoxLayout( QBoxLayout::LeftToRight, 
5, NULL );
-       qtarch_layout_1_1_3->addLayout( qtarch_layout_1_1_3_7, 1 );
-       qtarch_layout_1_1_3_7->addStrut( 0 );
-       qtarch_layout_1_1_3_7->addWidget( qtarch_minusbelowlabel, 1, 36 );
-       qtarch_layout_1_1_3_7->addWidget( spacebelowminus, 2, 36 );
-       qtarch_layout_1_1_3_7->addWidget( spacebelowminusunits, 4, 36 );
+       qtarch_layout_1_1_3_6->addColSpacing( 0, 5 );
+       qtarch_layout_1_1_3_6->setColStretch( 0, 1 );
+       qtarch_layout_1_1_3_6->addColSpacing( 1, 5 );
+       qtarch_layout_1_1_3_6->setColStretch( 1, 1 );
+       qtarch_layout_1_1_3_6->addColSpacing( 2, 5 );
+       qtarch_layout_1_1_3_6->setColStretch( 2, 4 );
+       qtarch_layout_1_1_3_6->addRowSpacing( 0, 0 );
+       qtarch_layout_1_1_3_6->setRowStretch( 0, 1 );
+       qtarch_layout_1_1_3_6->addWidget( qtarch_valuebelowlabel, 0, 0, 33 );
+       qtarch_layout_1_1_3_6->addWidget( spacebelowvalue, 0, 1, 33 );
+       qtarch_layout_1_1_3_6->addWidget( spacebelowvalueunits, 0, 2, 34 );
+       qtarch_layout_1_1_3_6->addRowSpacing( 1, 0 );
+       qtarch_layout_1_1_3_6->setRowStretch( 1, 1 );
+       qtarch_layout_1_1_3_6->addWidget( qtarch_plusbelowlabel, 1, 0, 33 );
+       qtarch_layout_1_1_3_6->addWidget( spacebelowplus, 1, 1, 33 );
+       qtarch_layout_1_1_3_6->addWidget( spacebelowplusunits, 1, 2, 34 );
+       qtarch_layout_1_1_3_6->addRowSpacing( 2, 0 );
+       qtarch_layout_1_1_3_6->setRowStretch( 2, 1 );
+       qtarch_layout_1_1_3_6->addWidget( qtarch_minusbelowlabel, 2, 0, 33 );
+       qtarch_layout_1_1_3_6->addWidget( spacebelowminus, 2, 1, 33 );
+       qtarch_layout_1_1_3_6->addWidget( spacebelowminusunits, 2, 2, 34 );
        QBoxLayout* qtarch_layout_1_2 = new QBoxLayout( QBoxLayout::LeftToRight, 5, 
NULL );
        qtarch_layout_1->addLayout( qtarch_layout_1_2, 2 );
        qtarch_layout_1_2->addStrut( 0 );
@@ -857,7 +905,7 @@ ParaGeneralDialogData::ParaGeneralDialog
        qtarch_layout_1_2_2->addStrut( 0 );
        qtarch_layout_1_2_2->addWidget( qtarch_labelwidthlabel, 1, 36 );
        qtarch_layout_1_2_2->addWidget( labelwidth, 1, 36 );
-       resize( 530,300 );
+       resize( 750,550 );
        setMinimumSize( 0, 0 );
        setMaximumSize( 32767, 32767 );
 }
@@ -870,23 +918,5 @@ void ParaGeneralDialogData::spaceaboveHi
 {
 }
 void ParaGeneralDialogData::spacebelowHighlighted(int)
-{
-}
-void ParaGeneralDialogData::spaceabovevalueChanged(const char*)
-{
-}
-void ParaGeneralDialogData::spaceaboveminusChanged(const char*)
-{
-}
-void ParaGeneralDialogData::spaceaboveplusChanged(const char*)
-{
-}
-void ParaGeneralDialogData::spacebelowminusChanged(const char*)
-{
-}
-void ParaGeneralDialogData::spacebelowplusChanged(const char*)
-{
-}
-void ParaGeneralDialogData::spacebelowvalueChanged(const char*)
 {
 }
Index: src/frontends/kde/parageneraldlgdata.h
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/kde/parageneraldlgdata.h,v
retrieving revision 1.2
diff -u -p -r1.2 parageneraldlgdata.h
--- src/frontends/kde/parageneraldlgdata.h      2000/10/24 13:13:58     1.2
+++ src/frontends/kde/parageneraldlgdata.h      2000/11/23 10:46:48
@@ -3,7 +3,7 @@
        --- Qt Architect generated file ---
 
        File: parageneraldlgdata.h
-       Last generated: Tue Oct 24 13:38:19 2000
+       Last generated: Fri Nov 17 20:37:21 2000
 
        DO NOT EDIT!!!  This file will be automatically
        regenerated by qtarch.  All changes will be lost.
@@ -40,14 +40,8 @@ public slots:
 
 protected slots:
 
-    virtual void spaceaboveplusChanged(const char*);
-    virtual void spacebelowplusChanged(const char*);
-    virtual void spacebelowminusChanged(const char*);
-    virtual void spacebelowvalueChanged(const char*);
-    virtual void spaceaboveminusChanged(const char*);
     virtual void spaceaboveHighlighted(int);
     virtual void spacebelowHighlighted(int);
-    virtual void spaceabovevalueChanged(const char*);
 
 protected:
     QButtonGroup* alignment;
@@ -75,6 +69,8 @@ protected:
     QComboBox* spacebelowvalueunits;
     QComboBox* spacebelowplusunits;
     QComboBox* spacebelowminusunits;
+    QCheckBox* keepabove;
+    QCheckBox* keepbelow;
 
 };
 
Index: src/frontends/kde/tabcreatedlg.C
===================================================================
RCS file: tabcreatedlg.C
diff -N tabcreatedlg.C
--- /dev/null   Tue May  5 22:32:27 1998
+++ src/frontends/kde/tabcreatedlg.C    Thu Nov 23 11:46:49 2000
@@ -0,0 +1,50 @@
+/*
+ * tabcreatedlg.C
+ * (C) 2000 LyX Team
+ * John Levon, <[EMAIL PROTECTED]>
+ */
+
+#include "tabcreatedlg.h"
+#include "support/lstrings.h"
+
+TabularCreateDialog::TabularCreateDialog (FormTabularCreate *form, QWidget *parent, 
+const char* name)
+       : TabularCreateDialogData(parent, name), form_(form)
+{
+       setCaption(name);
+       table->setMinimumSize(100,100); 
+       rows->setValue(5);
+       cols->setValue(5);
+       connect(rows,SIGNAL(valueChanged(int)),table,SLOT(setNumberRows(int)));
+       connect(cols,SIGNAL(valueChanged(int)),table,SLOT(setNumberColumns(int)));
+       connect(table,SIGNAL(colsChanged(unsigned int)),this,SLOT(colsChanged(unsigned 
+int))); 
+       connect(table,SIGNAL(rowsChanged(unsigned int)),this,SLOT(rowsChanged(unsigned 
+int))); 
+}
+
+TabularCreateDialog::~TabularCreateDialog()
+{
+}
+
+void TabularCreateDialog::colsChanged(unsigned int nr_cols)
+{
+       if (nr_cols != strToUnsignedInt(cols->text()))
+               cols->setValue(nr_cols);
+}
+
+void TabularCreateDialog::rowsChanged(unsigned int nr_rows)
+{
+       if (nr_rows != strToUnsignedInt(rows->text()))
+               rows->setValue(nr_rows);
+}
+
+void TabularCreateDialog::clickedInsert()
+{
+       form_->apply(strToInt(rows->text()), strToInt(cols->text()));
+       form_->close();
+       hide();
+}
+ 
+void TabularCreateDialog::clickedCancel()
+{
+       form_->close();
+       hide();
+}
Index: src/frontends/kde/tabcreatedlg.h
===================================================================
RCS file: tabcreatedlg.h
diff -N tabcreatedlg.h
--- /dev/null   Tue May  5 22:32:27 1998
+++ src/frontends/kde/tabcreatedlg.h    Thu Nov 23 11:46:49 2000
@@ -0,0 +1,29 @@
+/*
+ * tabcreatedialog.h
+ * (C) 2000 LyX Team
+ * John Levon, [EMAIL PROTECTED]
+ */
+
+#ifndef TABCREATEDIALOG_H
+#define TABCREATEDIALOG_H
+
+#include "tabcreatedlgdata.h"
+#include "FormTabularCreate.h" 
+
+class TabularCreateDialog : public TabularCreateDialogData
+{
+    Q_OBJECT
+public:
+       TabularCreateDialog (FormTabularCreate *form, QWidget* parent = 0, const char 
+*name = 0);
+       virtual ~TabularCreateDialog();
+
+protected slots:
+       virtual void clickedInsert();
+       virtual void clickedCancel();
+       virtual void colsChanged(unsigned int);
+       virtual void rowsChanged(unsigned int);
+
+private:
+       FormTabularCreate *form_;
+};
+#endif
Index: src/frontends/kde/tabcreatedlgdata.C
===================================================================
RCS file: tabcreatedlgdata.C
diff -N tabcreatedlgdata.C
--- /dev/null   Tue May  5 22:32:27 1998
+++ src/frontends/kde/tabcreatedlgdata.C        Thu Nov 23 11:46:49 2000
@@ -0,0 +1,219 @@
+/**********************************************************************
+
+       --- Qt Architect generated file ---
+
+       File: tabcreatedlgdata.C
+       Last generated: Sun Nov 19 01:29:39 2000
+
+       DO NOT EDIT!!!  This file will be automatically
+       regenerated by qtarch.  All changes will be lost.
+
+ *********************************************************************/
+
+#include <gettext.h>
+#include <qpixmap.h>
+#include <qlayout.h>
+#include "tabcreatedlgdata.h"
+
+#define Inherited QWidget
+
+#include <qlabel.h>
+#include <qpushbutton.h>
+
+TabularCreateDialogData::TabularCreateDialogData
+(
+       QWidget* parent,
+       const char* name
+)
+       :
+       Inherited( parent, name, 0 )
+{
+       QPushButton* qtarch_Insert;
+       qtarch_Insert = new QPushButton( this, "Insert" );
+       qtarch_Insert->setGeometry( 64, 249, 59, 21 );
+       qtarch_Insert->setMinimumSize( 0, 0 );
+       qtarch_Insert->setMaximumSize( 32767, 32767 );
+       connect( qtarch_Insert, SIGNAL(clicked()), SLOT(clickedInsert()) );
+       qtarch_Insert->setFocusPolicy( QWidget::TabFocus );
+       qtarch_Insert->setBackgroundMode( QWidget::PaletteBackground );
+       qtarch_Insert->setFontPropagation( QWidget::NoChildren );
+       qtarch_Insert->setPalettePropagation( QWidget::NoChildren );
+       qtarch_Insert->setText( _("&Insert") );
+       qtarch_Insert->setAutoRepeat( FALSE );
+       qtarch_Insert->setAutoResize( FALSE );
+       qtarch_Insert->setToggleButton( FALSE );
+       qtarch_Insert->setDefault( FALSE );
+       qtarch_Insert->setAutoDefault( FALSE );
+       qtarch_Insert->setIsMenuButton( FALSE );
+
+       QPushButton* qtarch_Cancel;
+       qtarch_Cancel = new QPushButton( this, "Cancel" );
+       qtarch_Cancel->setGeometry( 187, 249, 59, 21 );
+       qtarch_Cancel->setMinimumSize( 0, 0 );
+       qtarch_Cancel->setMaximumSize( 32767, 32767 );
+       connect( qtarch_Cancel, SIGNAL(clicked()), SLOT(clickedCancel()) );
+       qtarch_Cancel->setFocusPolicy( QWidget::TabFocus );
+       qtarch_Cancel->setBackgroundMode( QWidget::PaletteBackground );
+       qtarch_Cancel->setFontPropagation( QWidget::NoChildren );
+       qtarch_Cancel->setPalettePropagation( QWidget::NoChildren );
+       qtarch_Cancel->setText( _("&Cancel") );
+       qtarch_Cancel->setAutoRepeat( FALSE );
+       qtarch_Cancel->setAutoResize( FALSE );
+       qtarch_Cancel->setToggleButton( FALSE );
+       qtarch_Cancel->setDefault( FALSE );
+       qtarch_Cancel->setAutoDefault( FALSE );
+       qtarch_Cancel->setIsMenuButton( FALSE );
+
+       table = new EmptyTable( this, "table" );
+       table->setGeometry( 5, 31, 300, 213 );
+       table->setMinimumSize( 0, 0 );
+       table->setMaximumSize( 32767, 32767 );
+       table->setFocusPolicy( QWidget::NoFocus );
+       table->setBackgroundMode( QWidget::PaletteBackground );
+       table->setFontPropagation( QWidget::NoChildren );
+       table->setPalettePropagation( QWidget::NoChildren );
+
+       QLabel* qtarch_rowslabel;
+       qtarch_rowslabel = new QLabel( this, "rowslabel" );
+       qtarch_rowslabel->setGeometry( 46, 5, 40, 21 );
+       qtarch_rowslabel->setMinimumSize( 0, 0 );
+       qtarch_rowslabel->setMaximumSize( 32767, 32767 );
+       qtarch_rowslabel->setFocusPolicy( QWidget::NoFocus );
+       qtarch_rowslabel->setBackgroundMode( QWidget::PaletteBackground );
+       qtarch_rowslabel->setFontPropagation( QWidget::NoChildren );
+       qtarch_rowslabel->setPalettePropagation( QWidget::NoChildren );
+       qtarch_rowslabel->setFrameStyle( 0 );
+       qtarch_rowslabel->setLineWidth( 1 );
+       qtarch_rowslabel->setMidLineWidth( 0 );
+       qtarch_rowslabel->QFrame::setMargin( 0 );
+       qtarch_rowslabel->setText( _("Rows") );
+       qtarch_rowslabel->setAlignment( 290 );
+       qtarch_rowslabel->setMargin( -1 );
+
+       QLabel* qtarch_columnslabel;
+       qtarch_columnslabel = new QLabel( this, "columnslabel" );
+       qtarch_columnslabel->setGeometry( 178, 5, 41, 21 );
+       qtarch_columnslabel->setMinimumSize( 0, 0 );
+       qtarch_columnslabel->setMaximumSize( 32767, 32767 );
+       qtarch_columnslabel->setFocusPolicy( QWidget::NoFocus );
+       qtarch_columnslabel->setBackgroundMode( QWidget::PaletteBackground );
+       qtarch_columnslabel->setFontPropagation( QWidget::NoChildren );
+       qtarch_columnslabel->setPalettePropagation( QWidget::NoChildren );
+       qtarch_columnslabel->setFrameStyle( 0 );
+       qtarch_columnslabel->setLineWidth( 1 );
+       qtarch_columnslabel->setMidLineWidth( 0 );
+       qtarch_columnslabel->QFrame::setMargin( 0 );
+       qtarch_columnslabel->setText( _("Columns") );
+       qtarch_columnslabel->setAlignment( 290 );
+       qtarch_columnslabel->setMargin( -1 );
+
+       rows = new QSpinBox( this, "rows" );
+       rows->setGeometry( 91, 5, 41, 21 );
+       rows->setMinimumSize( 0, 0 );
+       rows->setMaximumSize( 32767, 32767 );
+       rows->setFocusPolicy( QWidget::StrongFocus );
+       rows->setBackgroundMode( QWidget::PaletteBackground );
+       rows->setFontPropagation( QWidget::NoChildren );
+       rows->setPalettePropagation( QWidget::NoChildren );
+       rows->setFrameStyle( 51 );
+       rows->setLineWidth( 2 );
+       rows->setMidLineWidth( 0 );
+       rows->QFrame::setMargin( 0 );
+       rows->setRange( 1, 300 );
+       rows->setSteps( 1, 0 );
+       rows->setPrefix( "" );
+       rows->setSuffix( "" );
+       rows->setSpecialValueText( "" );
+       rows->setWrapping( FALSE );
+
+       cols = new QSpinBox( this, "cols" );
+       cols->setGeometry( 224, 5, 40, 21 );
+       cols->setMinimumSize( 0, 0 );
+       cols->setMaximumSize( 32767, 32767 );
+       cols->setFocusPolicy( QWidget::StrongFocus );
+       cols->setBackgroundMode( QWidget::PaletteBackground );
+       cols->setFontPropagation( QWidget::NoChildren );
+       cols->setPalettePropagation( QWidget::NoChildren );
+       cols->setFrameStyle( 51 );
+       cols->setLineWidth( 2 );
+       cols->setMidLineWidth( 0 );
+       cols->QFrame::setMargin( 0 );
+       cols->setRange( 1, 40 );
+       cols->setSteps( 1, 0 );
+       cols->setPrefix( "" );
+       cols->setSuffix( "" );
+       cols->setSpecialValueText( "" );
+       cols->setWrapping( FALSE );
+
+       if (qtarch_Insert->sizeHint().width()!=-1)
+               qtarch_Insert->setMinimumWidth(qtarch_Insert->sizeHint().width());
+       if (qtarch_Insert->sizeHint().height()!=-1)
+               qtarch_Insert->setMinimumHeight(qtarch_Insert->sizeHint().height());
+       if (qtarch_Insert->sizeHint().width()!=-1)
+               qtarch_Insert->setMaximumWidth(qtarch_Insert->sizeHint().width());
+       if (qtarch_Insert->sizeHint().height()!=-1)
+               qtarch_Insert->setMaximumHeight(qtarch_Insert->sizeHint().height());
+       if (qtarch_Cancel->sizeHint().width()!=-1)
+               qtarch_Cancel->setMinimumWidth(qtarch_Cancel->sizeHint().width());
+       if (qtarch_Cancel->sizeHint().height()!=-1)
+               qtarch_Cancel->setMinimumHeight(qtarch_Cancel->sizeHint().height());
+       if (qtarch_Cancel->sizeHint().width()!=-1)
+               qtarch_Cancel->setMaximumWidth(qtarch_Cancel->sizeHint().width());
+       if (qtarch_Cancel->sizeHint().height()!=-1)
+               qtarch_Cancel->setMaximumHeight(qtarch_Cancel->sizeHint().height());
+       if (qtarch_rowslabel->sizeHint().width()!=-1)
+               
+qtarch_rowslabel->setMinimumWidth(qtarch_rowslabel->sizeHint().width());
+       if (qtarch_rowslabel->sizeHint().height()!=-1)
+               
+qtarch_rowslabel->setMinimumHeight(qtarch_rowslabel->sizeHint().height());
+       if (qtarch_columnslabel->sizeHint().width()!=-1)
+               
+qtarch_columnslabel->setMinimumWidth(qtarch_columnslabel->sizeHint().width());
+       if (qtarch_columnslabel->sizeHint().height()!=-1)
+               
+qtarch_columnslabel->setMinimumHeight(qtarch_columnslabel->sizeHint().height());
+       if (rows->sizeHint().width()!=-1)
+               rows->setMinimumWidth(rows->sizeHint().width());
+       if (rows->sizeHint().height()!=-1)
+               rows->setMinimumHeight(rows->sizeHint().height());
+       if (rows->sizeHint().height()!=-1)
+               rows->setMaximumHeight(rows->sizeHint().height());
+       if (cols->sizeHint().width()!=-1)
+               cols->setMinimumWidth(cols->sizeHint().width());
+       if (cols->sizeHint().height()!=-1)
+               cols->setMinimumHeight(cols->sizeHint().height());
+       if (cols->sizeHint().height()!=-1)
+               cols->setMaximumHeight(cols->sizeHint().height());
+       QBoxLayout* qtarch_layout_1 = new QBoxLayout( this, QBoxLayout::TopToBottom, 
+5, 5, NULL );
+       qtarch_layout_1->addStrut( 0 );
+       QBoxLayout* qtarch_layout_1_1 = new QBoxLayout( QBoxLayout::LeftToRight, 5, 
+NULL );
+       qtarch_layout_1->addLayout( qtarch_layout_1_1, 1 );
+       qtarch_layout_1_1->addStrut( 0 );
+       qtarch_layout_1_1->addStretch( 1 );
+       qtarch_layout_1_1->addWidget( qtarch_rowslabel, 1, 36 );
+       qtarch_layout_1_1->addWidget( rows, 1, 36 );
+       qtarch_layout_1_1->addStretch( 1 );
+       qtarch_layout_1_1->addWidget( qtarch_columnslabel, 1, 36 );
+       qtarch_layout_1_1->addWidget( cols, 1, 36 );
+       qtarch_layout_1_1->addStretch( 1 );
+       qtarch_layout_1->addWidget( table, 10, 36 );
+       QBoxLayout* qtarch_layout_1_3 = new QBoxLayout( QBoxLayout::LeftToRight, 5, 
+NULL );
+       qtarch_layout_1->addLayout( qtarch_layout_1_3, 1 );
+       qtarch_layout_1_3->addStrut( 0 );
+       qtarch_layout_1_3->addStretch( 1 );
+       qtarch_layout_1_3->addWidget( qtarch_Insert, 1, 36 );
+       qtarch_layout_1_3->addStretch( 1 );
+       qtarch_layout_1_3->addWidget( qtarch_Cancel, 1, 36 );
+       qtarch_layout_1_3->addStretch( 1 );
+       resize( 310,275 );
+       setMinimumSize( 0, 0 );
+       setMaximumSize( 32767, 32767 );
+}
+
+
+TabularCreateDialogData::~TabularCreateDialogData()
+{
+}
+void TabularCreateDialogData::clickedInsert()
+{
+}
+void TabularCreateDialogData::clickedCancel()
+{
+}
Index: src/frontends/kde/tabcreatedlgdata.h
===================================================================
RCS file: tabcreatedlgdata.h
diff -N tabcreatedlgdata.h
--- /dev/null   Tue May  5 22:32:27 1998
+++ src/frontends/kde/tabcreatedlgdata.h        Thu Nov 23 11:46:49 2000
@@ -0,0 +1,49 @@
+/**********************************************************************
+
+       --- Qt Architect generated file ---
+
+       File: tabcreatedlgdata.h
+       Last generated: Sun Nov 19 01:29:39 2000
+
+       DO NOT EDIT!!!  This file will be automatically
+       regenerated by qtarch.  All changes will be lost.
+
+ *********************************************************************/
+
+#ifndef TabularCreateDialogData_included
+#define TabularCreateDialogData_included
+
+#include <qwidget.h>
+#include <qspinbox.h>
+#include "emptytable.h"
+
+class TabularCreateDialogData : public QWidget
+{
+    Q_OBJECT
+
+public:
+
+    TabularCreateDialogData
+    (
+        QWidget* parent = NULL,
+        const char* name = NULL
+    );
+
+    virtual ~TabularCreateDialogData();
+
+public slots:
+
+
+protected slots:
+
+    virtual void clickedCancel();
+    virtual void clickedInsert();
+
+protected:
+    EmptyTable* table;
+    QSpinBox* rows;
+    QSpinBox* cols;
+
+};
+
+#endif // TabularCreateDialogData_included
Index: src/frontends/kde/dlg/parageneral.dlg
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/kde/dlg/parageneral.dlg,v
retrieving revision 1.1
diff -u -p -r1.1 parageneral.dlg
--- src/frontends/kde/dlg/parageneral.dlg       2000/10/17 08:27:35     1.1
+++ src/frontends/kde/dlg/parageneral.dlg       2000/11/23 10:46:49
@@ -12,7 +12,7 @@ Dialog {
 }
 WidgetLayout {
 InitialPos {-1 -1}
-Size {530 300}
+Size {750 550}
 MinSize {0 0}
 MaxSize {32767 32767}
 Grid {5}
@@ -25,7 +25,7 @@ ButtonGroup {
                LineWidth {1}
                MidLineWidth {0}
                FrameMargin {0}
-               Rect {5 5 102 196}
+               Rect {5 5 142 386}
                Name {alignment}
                Variable {alignment}
                MinimumSize {0 0}
@@ -52,9 +52,9 @@ GroupBox {
                LineWidth {1}
                MidLineWidth {0}
                FrameMargin {0}
-               Rect {112 5 204 196}
+               Rect {152 5 294 386}
                Name {SpacingAboveGroupBox}
-               MinimumSize {0 0}
+               MinimumSize {10 40}
                MaximumSize {32767 32767}
                BackgroundPixmap {}
                UseBackgroundPixmap {FALSE}
@@ -76,7 +76,7 @@ CheckBox {
                Text {Draw line above paragraph}
                AutoRepeat {FALSE}
                AutoResize {FALSE}
-               Rect {5 206 255 26}
+               Rect {5 396 365 46}
                Name {lineabove}
                Variable {lineabove}
                MinimumSize {0 0}
@@ -101,7 +101,7 @@ CheckBox {
                Text {Draw line below paragraph}
                AutoRepeat {FALSE}
                AutoResize {FALSE}
-               Rect {5 237 255 27}
+               Rect {5 447 365 47}
                Name {linebelow}
                Variable {linebelow}
                MinimumSize {0 0}
@@ -126,7 +126,7 @@ CheckBox {
                Text {Page break}
                AutoRepeat {FALSE}
                AutoResize {FALSE}
-               Rect {117 25 194 24}
+               Rect {157 25 284 66}
                Name {pagebreakabove}
                Variable {pagebreakabove}
                MinimumSize {0 0}
@@ -151,7 +151,7 @@ CheckBox {
                Text {Don't indent paragraph}
                AutoRepeat {FALSE}
                AutoResize {FALSE}
-               Rect {5 269 255 26}
+               Rect {5 499 365 46}
                Name {noindent}
                Variable {noindent}
                MinimumSize {0 0}
@@ -178,7 +178,7 @@ ComboBox {
                AutoResize {FALSE}
                MaxCount {2147483647}
                AutoCompletion {FALSE}
-               Rect {117 84 194 24}
+               Rect {157 239 284 66}
                Name {spaceabove}
                Variable {spaceabove}
                Signal {[Protected]  highlighted --> spaceaboveHighlighted  (int)}
@@ -208,7 +208,7 @@ Label {
                LineWidth {1}
                MidLineWidth {0}
                FrameMargin {0}
-               Rect {117 54 194 25}
+               Rect {157 167 284 67}
                Name {abovelabel}
                MinimumSize {0 0}
                MaximumSize {32767 32767}
@@ -234,9 +234,9 @@ GroupBox {
                LineWidth {1}
                MidLineWidth {0}
                FrameMargin {0}
-               Rect {321 5 204 196}
+               Rect {451 5 294 386}
                Name {SpacingBelowGroupBox}
-               MinimumSize {0 0}
+               MinimumSize {10 40}
                MaximumSize {32767 32767}
                BackgroundPixmap {}
                UseBackgroundPixmap {FALSE}
@@ -258,7 +258,7 @@ CheckBox {
                Text {Page break}
                AutoRepeat {FALSE}
                AutoResize {FALSE}
-               Rect {326 25 194 24}
+               Rect {456 25 284 66}
                Name {pagebreakbelow}
                Variable {pagebreakbelow}
                MinimumSize {0 0}
@@ -287,7 +287,7 @@ Label {
                LineWidth {1}
                MidLineWidth {0}
                FrameMargin {0}
-               Rect {326 54 194 25}
+               Rect {456 167 284 67}
                Name {belowlabel}
                MinimumSize {0 0}
                MaximumSize {32767 32767}
@@ -313,7 +313,7 @@ ComboBox {
                AutoResize {FALSE}
                MaxCount {2147483647}
                AutoCompletion {FALSE}
-               Rect {326 84 194 24}
+               Rect {456 239 284 66}
                Name {spacebelow}
                Variable {spacebelow}
                Signal {[Protected]  highlighted --> spacebelowHighlighted  (int)}
@@ -339,7 +339,7 @@ RadioButton {
                Text {Block}
                AutoRepeat {FALSE}
                AutoResize {FALSE}
-               Rect {10 42 92 18}
+               Rect {10 63 132 39}
                Name {block}
                Variable {block}
                MinimumSize {0 0}
@@ -364,7 +364,7 @@ RadioButton {
                Text {Center}
                AutoRepeat {FALSE}
                AutoResize {FALSE}
-               Rect {10 82 92 17}
+               Rect {10 145 132 39}
                Name {center}
                Variable {center}
                MinimumSize {0 0}
@@ -389,7 +389,7 @@ RadioButton {
                Text {Left}
                AutoRepeat {FALSE}
                AutoResize {FALSE}
-               Rect {10 122 92 17}
+               Rect {10 227 132 39}
                Name {left}
                Variable {left}
                MinimumSize {0 0}
@@ -414,7 +414,7 @@ RadioButton {
                Text {Right}
                AutoRepeat {FALSE}
                AutoResize {FALSE}
-               Rect {10 161 92 18}
+               Rect {10 309 132 39}
                Name {right}
                Variable {right}
                MinimumSize {0 0}
@@ -443,7 +443,7 @@ Label {
                LineWidth {1}
                MidLineWidth {0}
                FrameMargin {0}
-               Rect {265 206 128 89}
+               Rect {375 396 183 149}
                Name {labelwidthlabel}
                MinimumSize {0 0}
                MaximumSize {32767 32767}
@@ -467,7 +467,7 @@ LineEdit {
                EchoMode {Normal}
                MaxLength {32767}
                FrameShown {TRUE}
-               Rect {398 206 127 89}
+               Rect {563 396 182 149}
                Name {labelwidth}
                Variable {labelwidth}
                MinimumSize {0 0}
@@ -488,17 +488,16 @@ LineEdit {
                PalettePropagation {NoChildren}
 }
 KDE::KRestrictedLine {
-               ValidChars {0123456789.-,}
+               ValidChars {0123456789.,}
                Text {}
                EchoMode {Normal}
                MaxLength {32767}
                FrameShown {TRUE}
-               Rect {148 113 53 24}
+               Rect {210 310 48 22}
                Name {spaceabovevalue}
                Variable {spaceabovevalue}
-               Signal {[Protected]  textChanged --> spaceabovevalueChanged  (const 
char*)}
                MinimumSize {0 0}
-               MaximumSize {32767 32767}
+               MaximumSize {50 32767}
                BackgroundPixmap {}
                UseBackgroundPixmap {FALSE}
                AdjustSize {FALSE}
@@ -523,7 +522,7 @@ Label {
                LineWidth {1}
                MidLineWidth {0}
                FrameMargin {0}
-               Rect {117 113 26 24}
+               Rect {157 310 48 22}
                Name {ValueLabel}
                MinimumSize {0 0}
                MaximumSize {32767 32767}
@@ -549,7 +548,7 @@ ComboBox {
                AutoResize {FALSE}
                MaxCount {2147483647}
                AutoCompletion {FALSE}
-               Rect {206 113 105 24}
+               Rect {263 310 178 22}
                Name {spaceabovevalueunits}
                Variable {spaceabovevalueunits}
                MinimumSize {0 0}
@@ -578,7 +577,7 @@ Label {
                LineWidth {1}
                MidLineWidth {0}
                FrameMargin {0}
-               Rect {117 172 26 24}
+               Rect {157 364 48 22}
                Name {aboveminuslabel}
                MinimumSize {0 0}
                MaximumSize {32767 32767}
@@ -598,17 +597,16 @@ Label {
                PalettePropagation {NoChildren}
 }
 KDE::KRestrictedLine {
-               ValidChars {0123456789.-,}
+               ValidChars {0123456789.,}
                Text {}
                EchoMode {Normal}
                MaxLength {32767}
                FrameShown {TRUE}
-               Rect {148 172 53 24}
+               Rect {210 364 48 22}
                Name {spaceaboveminus}
                Variable {spaceaboveminus}
-               Signal {[Protected]  textChanged --> spaceaboveminusChanged  (const 
char*)}
                MinimumSize {0 0}
-               MaximumSize {32767 32767}
+               MaximumSize {50 32767}
                BackgroundPixmap {}
                UseBackgroundPixmap {FALSE}
                AdjustSize {FALSE}
@@ -631,7 +629,7 @@ ComboBox {
                AutoResize {FALSE}
                MaxCount {2147483647}
                AutoCompletion {FALSE}
-               Rect {206 172 105 24}
+               Rect {263 364 178 22}
                Name {spaceaboveminusunits}
                Variable {spaceaboveminusunits}
                MinimumSize {0 0}
@@ -660,7 +658,7 @@ Label {
                LineWidth {1}
                MidLineWidth {0}
                FrameMargin {0}
-               Rect {117 142 26 25}
+               Rect {157 337 48 22}
                Name {abovepluslabel }
                MinimumSize {0 0}
                MaximumSize {32767 32767}
@@ -680,17 +678,16 @@ Label {
                PalettePropagation {NoChildren}
 }
 KDE::KRestrictedLine {
-               ValidChars {0123456789.-,}
+               ValidChars {0123456789.,}
                Text {}
                EchoMode {Normal}
                MaxLength {32767}
                FrameShown {TRUE}
-               Rect {148 142 53 25}
+               Rect {210 337 48 22}
                Name {spaceaboveplus}
                Variable {spaceaboveplus}
-               Signal {[Protected]  textChanged --> spaceaboveplusChanged  (const 
char*)}
                MinimumSize {0 0}
-               MaximumSize {32767 32767}
+               MaximumSize {50 32767}
                BackgroundPixmap {}
                UseBackgroundPixmap {FALSE}
                AdjustSize {FALSE}
@@ -713,7 +710,7 @@ ComboBox {
                AutoResize {FALSE}
                MaxCount {2147483647}
                AutoCompletion {FALSE}
-               Rect {206 142 105 25}
+               Rect {263 337 178 22}
                Name {spaceaboveplusunits}
                Variable {spaceaboveplusunits}
                MinimumSize {0 0}
@@ -742,7 +739,7 @@ Label {
                LineWidth {1}
                MidLineWidth {0}
                FrameMargin {0}
-               Rect {326 113 26 24}
+               Rect {456 310 48 22}
                Name {valuebelowlabel}
                MinimumSize {0 0}
                MaximumSize {32767 32767}
@@ -770,7 +767,7 @@ Label {
                LineWidth {1}
                MidLineWidth {0}
                FrameMargin {0}
-               Rect {326 142 26 25}
+               Rect {456 337 48 22}
                Name {plusbelowlabel}
                MinimumSize {0 0}
                MaximumSize {32767 32767}
@@ -798,7 +795,7 @@ Label {
                LineWidth {1}
                MidLineWidth {0}
                FrameMargin {0}
-               Rect {326 172 26 24}
+               Rect {456 364 48 22}
                Name {minusbelowlabel}
                MinimumSize {0 0}
                MaximumSize {32767 32767}
@@ -818,17 +815,16 @@ Label {
                PalettePropagation {NoChildren}
 }
 KDE::KRestrictedLine {
-               ValidChars {0123456789.-,}
+               ValidChars {0123456789.,}
                Text {}
                EchoMode {Normal}
                MaxLength {32767}
                FrameShown {TRUE}
-               Rect {357 172 53 24}
+               Rect {509 364 48 22}
                Name {spacebelowminus}
                Variable {spacebelowminus}
-               Signal {[Protected]  textChanged --> spacebelowminusChanged  (const 
char*)}
                MinimumSize {0 0}
-               MaximumSize {32767 32767}
+               MaximumSize {50 32767}
                BackgroundPixmap {}
                UseBackgroundPixmap {FALSE}
                AdjustSize {FALSE}
@@ -845,17 +841,16 @@ KDE::KRestrictedLine {
                PalettePropagation {NoChildren}
 }
 KDE::KRestrictedLine {
-               ValidChars {0123456789.-,}
+               ValidChars {0123456789.,}
                Text {}
                EchoMode {Normal}
                MaxLength {32767}
                FrameShown {TRUE}
-               Rect {357 142 53 25}
+               Rect {509 337 48 22}
                Name {spacebelowplus}
                Variable {spacebelowplus}
-               Signal {[Protected]  textChanged --> spacebelowplusChanged  (const 
char*)}
                MinimumSize {0 0}
-               MaximumSize {32767 32767}
+               MaximumSize {50 32767}
                BackgroundPixmap {}
                UseBackgroundPixmap {FALSE}
                AdjustSize {FALSE}
@@ -872,17 +867,16 @@ KDE::KRestrictedLine {
                PalettePropagation {NoChildren}
 }
 KDE::KRestrictedLine {
-               ValidChars {0123456789.-,}
+               ValidChars {0123456789.,}
                Text {}
                EchoMode {Normal}
                MaxLength {32767}
                FrameShown {TRUE}
-               Rect {357 113 53 24}
+               Rect {509 310 48 22}
                Name {spacebelowvalue}
                Variable {spacebelowvalue}
-               Signal {[Protected]  textChanged --> spacebelowvalueChanged  (const 
char*)}
                MinimumSize {0 0}
-               MaximumSize {32767 32767}
+               MaximumSize {50 32767}
                BackgroundPixmap {}
                UseBackgroundPixmap {FALSE}
                AdjustSize {FALSE}
@@ -905,7 +899,7 @@ ComboBox {
                AutoResize {FALSE}
                MaxCount {2147483647}
                AutoCompletion {FALSE}
-               Rect {415 113 105 24}
+               Rect {562 310 178 22}
                Name {spacebelowvalueunits}
                Variable {spacebelowvalueunits}
                MinimumSize {0 0}
@@ -932,7 +926,7 @@ ComboBox {
                AutoResize {FALSE}
                MaxCount {2147483647}
                AutoCompletion {FALSE}
-               Rect {415 142 105 25}
+               Rect {562 337 178 22}
                Name {spacebelowplusunits}
                Variable {spacebelowplusunits}
                MinimumSize {0 0}
@@ -959,7 +953,7 @@ ComboBox {
                AutoResize {FALSE}
                MaxCount {2147483647}
                AutoCompletion {FALSE}
-               Rect {415 172 105 24}
+               Rect {562 364 178 22}
                Name {spacebelowminusunits}
                Variable {spacebelowminusunits}
                MinimumSize {0 0}
@@ -979,6 +973,56 @@ ComboBox {
                FontPropagation {AllChildren}
                PalettePropagation {AllChildren}
 }
+CheckBox {
+               Checked {FALSE}
+               Text {Keep space when at top of page}
+               AutoRepeat {FALSE}
+               AutoResize {FALSE}
+               Rect {157 96 284 66}
+               Name {keepabove}
+               Variable {keepabove}
+               MinimumSize {0 0}
+               MaximumSize {32767 32767}
+               BackgroundPixmap {}
+               UseBackgroundPixmap {FALSE}
+               AdjustSize {FALSE}
+               ReadPixmapFromData {FALSE}
+               DataVarName {}
+               DataLenName {}
+               minWidthSizeHint {TRUE}
+               minHeightSizeHint {TRUE}
+               maxWidthSizeHint {TRUE}
+               maxHeightSizeHint {TRUE}
+               FocusPolicy {TabFocus}
+               BackgroundMode {PaletteBackground}
+               FontPropagation {NoChildren}
+               PalettePropagation {NoChildren}
+}
+CheckBox {
+               Checked {FALSE}
+               Text {Keep space when at bottom of page}
+               AutoRepeat {FALSE}
+               AutoResize {FALSE}
+               Rect {456 96 284 66}
+               Name {keepbelow}
+               Variable {keepbelow}
+               MinimumSize {0 0}
+               MaximumSize {32767 32767}
+               BackgroundPixmap {}
+               UseBackgroundPixmap {FALSE}
+               AdjustSize {FALSE}
+               ReadPixmapFromData {FALSE}
+               DataVarName {}
+               DataLenName {}
+               minWidthSizeHint {TRUE}
+               minHeightSizeHint {TRUE}
+               maxWidthSizeHint {TRUE}
+               maxHeightSizeHint {TRUE}
+               FocusPolicy {TabFocus}
+               BackgroundMode {PaletteBackground}
+               FontPropagation {NoChildren}
+               PalettePropagation {NoChildren}
+}
 
 Box_Layout-1{
        Direction {TopToBottom}
@@ -1069,83 +1113,85 @@ Layout_Widget-1.1.2.1.2{
        Alignment {1}
 }
 Layout_Widget-1.1.2.1.3{
-       Widget {abovelabel}
+       Widget {keepabove}
        BoxStretch {1}
        Alignment {1}
 }
 Layout_Widget-1.1.2.1.4{
+       Widget {abovelabel}
+       BoxStretch {1}
+       Alignment {1}
+}
+Layout_Widget-1.1.2.1.5{
        Widget {spaceabove}
        BoxStretch {1}
        Alignment {1}
 }
-Box_Layout-1.1.2.1.5{
-       Direction {LeftToRight}
+Grid_Layout-1.1.2.1.6{
        Border {5}
        AutoBorder {5}
        Name {}
-       Strut {0}
+       ColumnInfo {5 1}
+       ColumnInfo {5 1}
+       ColumnInfo {5 4}
+       BoxStretch {1}
+}
+Grid_Row-1.1.2.1.6.1{
        Stretch {1}
+       Spacing {0}
 }
-Layout_Widget-1.1.2.1.5.1{
+Layout_Widget-1.1.2.1.6.1.1{
        Widget {ValueLabel}
        BoxStretch {1}
-       Alignment {36}
+       Alignment {33}
 }
-Layout_Widget-1.1.2.1.5.2{
+Layout_Widget-1.1.2.1.6.1.2{
        Widget {spaceabovevalue}
-       BoxStretch {2}
-       Alignment {36}
+       BoxStretch {1}
+       Alignment {33}
 }
-Layout_Widget-1.1.2.1.5.3{
+Layout_Widget-1.1.2.1.6.1.3{
        Widget {spaceabovevalueunits}
-       BoxStretch {4}
-       Alignment {36}
+       BoxStretch {1}
+       Alignment {34}
 }
-Box_Layout-1.1.2.1.6{
-       Direction {LeftToRight}
-       Border {5}
-       AutoBorder {5}
-       Name {}
-       Strut {0}
+Grid_Row-1.1.2.1.6.2{
        Stretch {1}
+       Spacing {0}
 }
-Layout_Widget-1.1.2.1.6.1{
+Layout_Widget-1.1.2.1.6.2.1{
        Widget {abovepluslabel }
        BoxStretch {1}
-       Alignment {36}
+       Alignment {33}
 }
-Layout_Widget-1.1.2.1.6.2{
+Layout_Widget-1.1.2.1.6.2.2{
        Widget {spaceaboveplus}
-       BoxStretch {2}
-       Alignment {36}
+       BoxStretch {1}
+       Alignment {33}
 }
-Layout_Widget-1.1.2.1.6.3{
+Layout_Widget-1.1.2.1.6.2.3{
        Widget {spaceaboveplusunits}
-       BoxStretch {4}
-       Alignment {36}
+       BoxStretch {1}
+       Alignment {34}
 }
-Box_Layout-1.1.2.1.7{
-       Direction {LeftToRight}
-       Border {5}
-       AutoBorder {5}
-       Name {}
-       Strut {0}
+Grid_Row-1.1.2.1.6.3{
        Stretch {1}
+       Spacing {0}
 }
-Layout_Widget-1.1.2.1.7.1{
+Layout_Widget-1.1.2.1.6.3.1{
        Widget {aboveminuslabel}
        BoxStretch {1}
-       Alignment {36}
+       Alignment {33}
 }
-Layout_Widget-1.1.2.1.7.2{
+Layout_Widget-1.1.2.1.6.3.2{
        Widget {spaceaboveminus}
-       BoxStretch {2}
-       Alignment {36}
+       BoxStretch {1}
+       Alignment {33}
 }
-Layout_Widget-1.1.2.1.7.3{
+Layout_Widget-1.1.2.1.6.3.3{
        Widget {spaceaboveminusunits}
-       BoxStretch {4}
-       Alignment {36}
+       BoxStretch {1}
+       Alignment {34}
 }
 Layout_Widget-1.1.3{
        Widget {SpacingBelowGroupBox}
@@ -1169,83 +1215,85 @@ Layout_Widget-1.1.3.1.2{
        Alignment {1}
 }
 Layout_Widget-1.1.3.1.3{
-       Widget {belowlabel}
+       Widget {keepbelow}
        BoxStretch {1}
        Alignment {1}
 }
 Layout_Widget-1.1.3.1.4{
+       Widget {belowlabel}
+       BoxStretch {1}
+       Alignment {1}
+}
+Layout_Widget-1.1.3.1.5{
        Widget {spacebelow}
        BoxStretch {1}
        Alignment {1}
 }
-Box_Layout-1.1.3.1.5{
-       Direction {LeftToRight}
+Grid_Layout-1.1.3.1.6{
        Border {5}
        AutoBorder {5}
        Name {}
-       Strut {0}
+       ColumnInfo {5 1}
+       ColumnInfo {5 1}
+       ColumnInfo {5 4}
+       BoxStretch {1}
+}
+Grid_Row-1.1.3.1.6.1{
        Stretch {1}
+       Spacing {0}
 }
-Layout_Widget-1.1.3.1.5.1{
+Layout_Widget-1.1.3.1.6.1.1{
        Widget {valuebelowlabel}
        BoxStretch {1}
-       Alignment {36}
+       Alignment {33}
 }
-Layout_Widget-1.1.3.1.5.2{
+Layout_Widget-1.1.3.1.6.1.2{
        Widget {spacebelowvalue}
-       BoxStretch {2}
-       Alignment {36}
+       BoxStretch {1}
+       Alignment {33}
 }
-Layout_Widget-1.1.3.1.5.3{
+Layout_Widget-1.1.3.1.6.1.3{
        Widget {spacebelowvalueunits}
-       BoxStretch {4}
-       Alignment {36}
+       BoxStretch {1}
+       Alignment {34}
 }
-Box_Layout-1.1.3.1.6{
-       Direction {LeftToRight}
-       Border {5}
-       AutoBorder {5}
-       Name {}
-       Strut {0}
+Grid_Row-1.1.3.1.6.2{
        Stretch {1}
+       Spacing {0}
 }
-Layout_Widget-1.1.3.1.6.1{
+Layout_Widget-1.1.3.1.6.2.1{
        Widget {plusbelowlabel}
        BoxStretch {1}
-       Alignment {36}
+       Alignment {33}
 }
-Layout_Widget-1.1.3.1.6.2{
+Layout_Widget-1.1.3.1.6.2.2{
        Widget {spacebelowplus}
-       BoxStretch {2}
-       Alignment {36}
+       BoxStretch {1}
+       Alignment {33}
 }
-Layout_Widget-1.1.3.1.6.3{
+Layout_Widget-1.1.3.1.6.2.3{
        Widget {spacebelowplusunits}
-       BoxStretch {4}
-       Alignment {36}
+       BoxStretch {1}
+       Alignment {34}
 }
-Box_Layout-1.1.3.1.7{
-       Direction {LeftToRight}
-       Border {5}
-       AutoBorder {5}
-       Name {}
-       Strut {0}
+Grid_Row-1.1.3.1.6.3{
        Stretch {1}
+       Spacing {0}
 }
-Layout_Widget-1.1.3.1.7.1{
+Layout_Widget-1.1.3.1.6.3.1{
        Widget {minusbelowlabel}
        BoxStretch {1}
-       Alignment {36}
+       Alignment {33}
 }
-Layout_Widget-1.1.3.1.7.2{
+Layout_Widget-1.1.3.1.6.3.2{
        Widget {spacebelowminus}
-       BoxStretch {2}
-       Alignment {36}
+       BoxStretch {1}
+       Alignment {33}
 }
-Layout_Widget-1.1.3.1.7.3{
+Layout_Widget-1.1.3.1.6.3.3{
        Widget {spacebelowminusunits}
-       BoxStretch {4}
-       Alignment {36}
+       BoxStretch {1}
+       Alignment {34}
 }
 Box_Layout-1.2{
        Direction {LeftToRight}
Index: src/frontends/kde/dlg/tabcreate.dlg
===================================================================
RCS file: tabcreate.dlg
diff -N tabcreate.dlg
--- /dev/null   Tue May  5 22:32:27 1998
+++ src/frontends/kde/dlg/tabcreate.dlg Thu Nov 23 11:46:49 2000
@@ -0,0 +1,297 @@
+DlgEdit:v1.2:Dialog:
+Dialog {
+       ClassHeader {tabcreatedlg.h}
+       ClassSource {tabcreatedlg.C}
+       ClassName {TabularCreateDialog}
+       DataHeader {tabcreatedlgdata.h}
+       DataSource {tabcreatedlgdata.C}
+       DataName {TabularCreateDialogData}
+       WindowBaseClass {QWidget}
+       UseGetText {TRUE}
+       WindowFlags {0}
+}
+WidgetLayout {
+InitialPos {-1 -1}
+Size {310 275}
+MinSize {0 0}
+MaxSize {32767 32767}
+Grid {5}
+
+PushButton {
+               ToggleButton {FALSE}
+               Default {FALSE}
+               AutoDefault {FALSE}
+               IsMenuButton {FALSE}
+               Text {&Insert}
+               AutoRepeat {FALSE}
+               AutoResize {FALSE}
+               Rect {64 249 59 21}
+               Name {Insert}
+               Signal {[Protected]  clicked --> clickedInsert  ()}
+               MinimumSize {0 0}
+               MaximumSize {32767 32767}
+               BackgroundPixmap {}
+               UseBackgroundPixmap {FALSE}
+               AdjustSize {FALSE}
+               ReadPixmapFromData {FALSE}
+               DataVarName {}
+               DataLenName {}
+               minWidthSizeHint {TRUE}
+               minHeightSizeHint {TRUE}
+               maxWidthSizeHint {TRUE}
+               maxHeightSizeHint {TRUE}
+               FocusPolicy {TabFocus}
+               BackgroundMode {PaletteBackground}
+               FontPropagation {NoChildren}
+               PalettePropagation {NoChildren}
+}
+PushButton {
+               ToggleButton {FALSE}
+               Default {FALSE}
+               AutoDefault {FALSE}
+               IsMenuButton {FALSE}
+               Text {&Cancel}
+               AutoRepeat {FALSE}
+               AutoResize {FALSE}
+               Rect {187 249 59 21}
+               Name {Cancel}
+               Signal {[Protected]  clicked --> clickedCancel  ()}
+               MinimumSize {0 0}
+               MaximumSize {32767 32767}
+               BackgroundPixmap {}
+               UseBackgroundPixmap {FALSE}
+               AdjustSize {FALSE}
+               ReadPixmapFromData {FALSE}
+               DataVarName {}
+               DataLenName {}
+               minWidthSizeHint {TRUE}
+               minHeightSizeHint {TRUE}
+               maxWidthSizeHint {TRUE}
+               maxHeightSizeHint {TRUE}
+               FocusPolicy {TabFocus}
+               BackgroundMode {PaletteBackground}
+               FontPropagation {NoChildren}
+               PalettePropagation {NoChildren}
+}
+User {
+               UserClassHeader {emptytable.h}
+               UserClassName {EmptyTable}
+               Rect {5 31 300 213}
+               Name {table}
+               Variable {table}
+               MinimumSize {0 0}
+               MaximumSize {32767 32767}
+               BackgroundPixmap {}
+               UseBackgroundPixmap {FALSE}
+               AdjustSize {FALSE}
+               ReadPixmapFromData {FALSE}
+               DataVarName {}
+               DataLenName {}
+               minWidthSizeHint {FALSE}
+               minHeightSizeHint {FALSE}
+               maxWidthSizeHint {FALSE}
+               maxHeightSizeHint {FALSE}
+               FocusPolicy {NoFocus}
+               BackgroundMode {PaletteBackground}
+               FontPropagation {NoChildren}
+               PalettePropagation {NoChildren}
+}
+Label {
+               Text {Rows}
+               Alignment {290}
+               AutoResize {FALSE}
+               Margin {-1}
+               Style {0}
+               LineWidth {1}
+               MidLineWidth {0}
+               FrameMargin {0}
+               Rect {46 5 40 21}
+               Name {rowslabel}
+               MinimumSize {0 0}
+               MaximumSize {32767 32767}
+               BackgroundPixmap {}
+               UseBackgroundPixmap {FALSE}
+               AdjustSize {FALSE}
+               ReadPixmapFromData {FALSE}
+               DataVarName {}
+               DataLenName {}
+               minWidthSizeHint {TRUE}
+               minHeightSizeHint {TRUE}
+               maxWidthSizeHint {FALSE}
+               maxHeightSizeHint {FALSE}
+               FocusPolicy {NoFocus}
+               BackgroundMode {PaletteBackground}
+               FontPropagation {NoChildren}
+               PalettePropagation {NoChildren}
+}
+Label {
+               Text {Columns}
+               Alignment {290}
+               AutoResize {FALSE}
+               Margin {-1}
+               Style {0}
+               LineWidth {1}
+               MidLineWidth {0}
+               FrameMargin {0}
+               Rect {178 5 41 21}
+               Name {columnslabel}
+               MinimumSize {0 0}
+               MaximumSize {32767 32767}
+               BackgroundPixmap {}
+               UseBackgroundPixmap {FALSE}
+               AdjustSize {FALSE}
+               ReadPixmapFromData {FALSE}
+               DataVarName {}
+               DataLenName {}
+               minWidthSizeHint {TRUE}
+               minHeightSizeHint {TRUE}
+               maxWidthSizeHint {FALSE}
+               maxHeightSizeHint {FALSE}
+               FocusPolicy {NoFocus}
+               BackgroundMode {PaletteBackground}
+               FontPropagation {NoChildren}
+               PalettePropagation {NoChildren}
+}
+SpinBox {
+               MinValue {1}
+               MaxValue {300}
+               Step {1}
+               Prefix {}
+               Suffix {}
+               SpecialValue {}
+               Wrapping {FALSE}
+               Style {51}
+               LineWidth {2}
+               MidLineWidth {0}
+               FrameMargin {0}
+               Rect {91 5 41 21}
+               Name {rows}
+               Variable {rows}
+               MinimumSize {0 0}
+               MaximumSize {32767 32767}
+               BackgroundPixmap {}
+               UseBackgroundPixmap {FALSE}
+               AdjustSize {FALSE}
+               ReadPixmapFromData {FALSE}
+               DataVarName {}
+               DataLenName {}
+               minWidthSizeHint {TRUE}
+               minHeightSizeHint {TRUE}
+               maxWidthSizeHint {FALSE}
+               maxHeightSizeHint {TRUE}
+               FocusPolicy {StrongFocus}
+               BackgroundMode {PaletteBackground}
+               FontPropagation {NoChildren}
+               PalettePropagation {NoChildren}
+}
+SpinBox {
+               MinValue {1}
+               MaxValue {40}
+               Step {1}
+               Prefix {}
+               Suffix {}
+               SpecialValue {}
+               Wrapping {FALSE}
+               Style {51}
+               LineWidth {2}
+               MidLineWidth {0}
+               FrameMargin {0}
+               Rect {224 5 40 21}
+               Name {cols}
+               Variable {cols}
+               MinimumSize {0 0}
+               MaximumSize {32767 32767}
+               BackgroundPixmap {}
+               UseBackgroundPixmap {FALSE}
+               AdjustSize {FALSE}
+               ReadPixmapFromData {FALSE}
+               DataVarName {}
+               DataLenName {}
+               minWidthSizeHint {TRUE}
+               minHeightSizeHint {TRUE}
+               maxWidthSizeHint {FALSE}
+               maxHeightSizeHint {TRUE}
+               FocusPolicy {StrongFocus}
+               BackgroundMode {PaletteBackground}
+               FontPropagation {NoChildren}
+               PalettePropagation {NoChildren}
+}
+
+Box_Layout-1{
+       Direction {TopToBottom}
+       Border {5}
+       AutoBorder {5}
+       Name {}
+       Strut {0}
+       Stretch {1}
+}
+Box_Layout-1.1{
+       Direction {LeftToRight}
+       Border {5}
+       AutoBorder {5}
+       Name {}
+       Strut {0}
+       Stretch {1}
+}
+Box_Stretch-1.1.1{
+       Stretch {1}
+}
+Layout_Widget-1.1.2{
+       Widget {rowslabel}
+       BoxStretch {1}
+       Alignment {36}
+}
+Layout_Widget-1.1.3{
+       Widget {rows}
+       BoxStretch {1}
+       Alignment {36}
+}
+Box_Stretch-1.1.4{
+       Stretch {1}
+}
+Layout_Widget-1.1.5{
+       Widget {columnslabel}
+       BoxStretch {1}
+       Alignment {36}
+}
+Layout_Widget-1.1.6{
+       Widget {cols}
+       BoxStretch {1}
+       Alignment {36}
+}
+Box_Stretch-1.1.7{
+       Stretch {1}
+}
+Layout_Widget-1.2{
+       Widget {table}
+       BoxStretch {10}
+       Alignment {36}
+}
+Box_Layout-1.3{
+       Direction {LeftToRight}
+       Border {5}
+       AutoBorder {5}
+       Name {}
+       Strut {0}
+       Stretch {1}
+}
+Box_Stretch-1.3.1{
+       Stretch {1}
+}
+Layout_Widget-1.3.2{
+       Widget {Insert}
+       BoxStretch {1}
+       Alignment {36}
+}
+Box_Stretch-1.3.3{
+       Stretch {1}
+}
+Layout_Widget-1.3.4{
+       Widget {Cancel}
+       BoxStretch {1}
+       Alignment {36}
+}
+Box_Stretch-1.3.5{
+       Stretch {1}
+}
+}
Index: src/support/lstrings.C
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/support/lstrings.C,v
retrieving revision 1.33
diff -u -p -r1.33 lstrings.C
--- src/support/lstrings.C      2000/11/15 03:22:08     1.33
+++ src/support/lstrings.C      2000/11/23 10:46:50
@@ -95,9 +95,39 @@ bool isStrInt(string const & str)
 }
 
 
+bool isStrUnsignedInt(string const & str)
+{
+       if (str.empty()) return false;
+       
+       // Remove leading and trailing white space chars.
+       string const tmpstr = frontStrip(strip(str, ' '), ' ');
+       if (tmpstr.empty()) return false;
+       
+       string::const_iterator cit = tmpstr.begin();
+       string::const_iterator end = tmpstr.end();
+       for (; cit != end; ++cit) {
+               if (!isdigit((*cit))) return false;
+       }
+       return true;
+}
+
+
 int strToInt(string const & str)
 {
        if (isStrInt(str)) {
+               // Remove leading and trailing white space chars.
+               string const tmpstr = frontStrip(strip(str, ' '), ' ');
+               // Do the conversion proper.
+               return lyx::atoi(tmpstr);
+       } else {
+               return 0;
+       }
+}
+
+
+unsigned int strToUnsignedInt(string const & str)
+{
+       if (isStrUnsignedInt(str)) {
                // Remove leading and trailing white space chars.
                string const tmpstr = frontStrip(strip(str, ' '), ' ');
                // Do the conversion proper.
Index: src/support/lstrings.h
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/support/lstrings.h,v
retrieving revision 1.25
diff -u -p -r1.25 lstrings.h
--- src/support/lstrings.h      2000/10/30 21:53:29     1.25
+++ src/support/lstrings.h      2000/11/23 10:46:50
@@ -44,8 +44,14 @@ int compare(char const * a, char const *
 ///
 bool isStrInt(string const & str);
 
+/// does the string represent an unsigned integer value ?
+bool isStrUnsignedInt(string const & str);
+
 ///
 int strToInt(string const & str);
+
+/// convert string to an unsigned integer
+unsigned int strToUnsignedInt(string const & str);
 
 ///
 bool isStrDbl(string const & str);

Reply via email to