From 6512edb15ae20cdeac305d919b228db9badb464d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lars=20Gullik=20Bj=C3=B8nnes?= Date: Wed, 14 Feb 2001 19:43:56 +0000 Subject: [PATCH] qt2.diff.gz git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@1517 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/frontends/qt2/ChangeLog | 28 + src/frontends/qt2/FormParagraph.C | 204 +++ src/frontends/qt2/FormParagraph.h | 59 + src/frontends/qt2/FormPrint.C | 135 ++ src/frontends/qt2/FormPrint.h | 62 + src/frontends/qt2/FormTabularCreate.C | 68 + src/frontends/qt2/FormTabularCreate.h | 62 + src/frontends/qt2/QtLyXView.h | 12 + src/frontends/qt2/emptytable.C | 80 + src/frontends/qt2/emptytable.h | 59 + src/frontends/qt2/paragraphdlg.C | 618 +++++++ src/frontends/qt2/paragraphdlg.h | 117 ++ src/frontends/qt2/paragraphdlg.ui | 1978 ++++++++++++++++++++++ src/frontends/qt2/paragraphdlgimpl.C | 469 +++++ src/frontends/qt2/paragraphdlgimpl.h | 84 + src/frontends/qt2/printdlg.C | 223 +++ src/frontends/qt2/printdlg.h | 71 + src/frontends/qt2/printdlg.ui | 460 +++++ src/frontends/qt2/printdlgimpl.C | 161 ++ src/frontends/qt2/printdlgimpl.h | 57 + src/frontends/qt2/tabularcreatedlg.C | 108 ++ src/frontends/qt2/tabularcreatedlg.h | 48 + src/frontends/qt2/tabularcreatedlg.ui | 260 +++ src/frontends/qt2/tabularcreatedlgimpl.C | 66 + src/frontends/qt2/tabularcreatedlgimpl.h | 34 + 25 files changed, 5523 insertions(+) create mode 100644 src/frontends/qt2/FormParagraph.C create mode 100644 src/frontends/qt2/FormParagraph.h create mode 100644 src/frontends/qt2/FormPrint.C create mode 100644 src/frontends/qt2/FormPrint.h create mode 100644 src/frontends/qt2/FormTabularCreate.C create mode 100644 src/frontends/qt2/FormTabularCreate.h create mode 100644 src/frontends/qt2/QtLyXView.h create mode 100644 src/frontends/qt2/emptytable.C create mode 100644 src/frontends/qt2/emptytable.h create mode 100644 src/frontends/qt2/paragraphdlg.C create mode 100644 src/frontends/qt2/paragraphdlg.h create mode 100644 src/frontends/qt2/paragraphdlg.ui create mode 100644 src/frontends/qt2/paragraphdlgimpl.C create mode 100644 src/frontends/qt2/paragraphdlgimpl.h create mode 100644 src/frontends/qt2/printdlg.C create mode 100644 src/frontends/qt2/printdlg.h create mode 100644 src/frontends/qt2/printdlg.ui create mode 100644 src/frontends/qt2/printdlgimpl.C create mode 100644 src/frontends/qt2/printdlgimpl.h create mode 100644 src/frontends/qt2/tabularcreatedlg.C create mode 100644 src/frontends/qt2/tabularcreatedlg.h create mode 100644 src/frontends/qt2/tabularcreatedlg.ui create mode 100644 src/frontends/qt2/tabularcreatedlgimpl.C create mode 100644 src/frontends/qt2/tabularcreatedlgimpl.h diff --git a/src/frontends/qt2/ChangeLog b/src/frontends/qt2/ChangeLog index e3d052e766..c95d9db1b3 100644 --- a/src/frontends/qt2/ChangeLog +++ b/src/frontends/qt2/ChangeLog @@ -1,3 +1,31 @@ +2001-01-24 Edwin Leuven + + *FormParagraph.C: + *FormParagraph.h: + *FormPrint.C: + *FormPrint.h: + *FormTabularCreate.C: + *FormTabularCreate.h: + *QtLyXView.h: + *emptytable.C: + *emptytable.h: + *paragraphdlg.C: + *paragraphdlg.h: + *paragraphdlg.ui: + *paragraphdlgimpl.C: + *paragraphdlgimpl.h: + *printdlg.C: + *printdlg.h: + *printdlg.ui: + *printdlgimpl.C: + *printdlgimpl.h: + *tabularcreatedlg.C: + *tabularcreatedlg.h: + *tabularcreatedlg.ui: + *tabularcreatedlgimpl.C: + *tabularcreatedlgimpl.h: + *Makefile.am: added paragraph/print/tabular create dialogs + 2001-01-24 John Levon * src/frontends/qt2/.cvsignore: diff --git a/src/frontends/qt2/FormParagraph.C b/src/frontends/qt2/FormParagraph.C new file mode 100644 index 0000000000..aaabe701ec --- /dev/null +++ b/src/frontends/qt2/FormParagraph.C @@ -0,0 +1,204 @@ +/** + * \file FormParagraph.C + * Copyright 2001 LyX Team + * see the file COPYING + * + * \author John Levon, moz@compsoc.man.ac.uk + */ + +#include + +#include "paragraphdlgimpl.h" + +#include "FormParagraph.h" +#include "Dialogs.h" +#include "Liason.h" +#include "gettext.h" +#include "buffer.h" +#include "QtLyXView.h" +#include "lyxtext.h" +#include "debug.h" + +#ifdef CXX_WORKING_NAMESPACES +using Liason::setMinibuffer; +#endif + +using std::endl; + +FormParagraph::FormParagraph(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->showLayoutParagraph.connect(slot(this, &FormParagraph::show)); +} + +FormParagraph::~FormParagraph() +{ + delete dialog_; +} + +void FormParagraph::update(bool switched) +{ + if (switched) { + hide(); + return; + } + + if (!lv_->view()->available()) + return; + + Buffer *buf = lv_->view()->buffer(); + + if (readonly!=buf->isReadonly()) { + readonly = buf->isReadonly(); + dialog_->setReadOnly(readonly); + } + + LyXText *text = 0; + + if (lv_->view()->theLockingInset()) + text = lv_->view()->theLockingInset()->getLyXText(lv_->view()); + + if (!text) + text = lv_->view()->text; + + LyXParagraph *par = text->cursor.par(); + + int align = par->GetAlign(); + + if (align==LYX_ALIGN_LAYOUT) + align = textclasslist.Style(buf->params.textclass, par->GetLayout()).align; + +#ifndef NEW_INSETS + LyXParagraph *physpar = par->FirstPhysicalPar(); +#else + LyXParagraph *physpar = par; +#endif + + if (physpar->added_space_top.kind()==VSpace::LENGTH) { + 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()); + } else + 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) { + 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()); + } else + dialog_->setBelowLength(0.0, 0.0, 0.0, LyXLength::UNIT_NONE, LyXLength::UNIT_NONE, LyXLength::UNIT_NONE); + + dialog_->setLabelWidth(text->cursor.par()->GetLabelWidthString().c_str()); + dialog_->setAlign(align); + dialog_->setChecks(physpar->line_top, physpar->line_bottom, + physpar->pagebreak_top, physpar->pagebreak_bottom, physpar->noindent); + dialog_->setSpace(physpar->added_space_top.kind(), physpar->added_space_bottom.kind(), + physpar->added_space_top.keep(), physpar->added_space_bottom.keep()); + + // now the extras page + + LyXLength extrawidth; + float val = 0.0; + LyXLength::UNIT unit = LyXLength::CM; + + if (isValidLength(par->pextra_width, &extrawidth)) { + lyxerr[Debug::GUI] << "Reading extra width \"" << extrawidth.asString() << "\"" << endl; + val = extrawidth.value(); + unit = extrawidth.unit(); + } + + lyxerr[Debug::GUI] << "Reading widthp \"" << par->pextra_widthp << "\"" << endl; + + dialog_->setExtra(val, unit, par->pextra_widthp, + par->pextra_alignment, + par->pextra_hfill, + par->pextra_start_minipage, + static_cast(par->pextra_type)); +} + +void FormParagraph::apply() +{ + if (readonly) + return; + + VSpace spaceabove; + VSpace spacebelow; + + if (dialog_->getSpaceAboveKind()==VSpace::LENGTH) + spaceabove = VSpace(dialog_->getAboveLength()); + else + spaceabove = VSpace(dialog_->getSpaceAboveKind()); + + if (dialog_->getSpaceBelowKind()==VSpace::LENGTH) + spacebelow = VSpace(dialog_->getBelowLength()); + 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; + + lv_->view()->text->SetParagraph(lv_->view(), + dialog_->getLineAbove(), dialog_->getLineBelow(), + dialog_->getPagebreakAbove(), dialog_->getPagebreakBelow(), + spaceabove, spacebelow, dialog_->getAlign(), + dialog_->getLabelWidth(), dialog_->getNoIndent()); + + // extra stuff + + string width(""); + string widthp(""); + + LyXLength extrawidth(dialog_->getExtraWidth()); + if (extrawidth.unit()==LyXLength::UNIT_NONE) { + widthp = dialog_->getExtraWidthPercent(); + } else + width = extrawidth.asString(); + + lyxerr[Debug::GUI] << "Setting extrawidth \"" << width << "\"" << endl; + lyxerr[Debug::GUI] << "Setting percent extrawidth \"" << widthp << "\"" << endl; + + lv_->view()->text->SetParagraphExtraOpt(lv_->view(), + dialog_->getExtraType(), width, widthp, + 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() +{ + if (!dialog_) + dialog_ = new ParagraphDlgImpl(this, 0, _("LyX: Paragraph Options"), false); + + if (!dialog_->isVisible()) + h_ = d_->hideBufferDependent.connect(slot(this, &FormParagraph::hide)); + + + dialog_->raise(); + dialog_->setActiveWindow(); + update(); + + dialog_->show(); +} + +void FormParagraph::close() +{ + h_.disconnect(); +} + +void FormParagraph::hide() +{ + dialog_->hide(); + close(); +} diff --git a/src/frontends/qt2/FormParagraph.h b/src/frontends/qt2/FormParagraph.h new file mode 100644 index 0000000000..d560d86456 --- /dev/null +++ b/src/frontends/qt2/FormParagraph.h @@ -0,0 +1,59 @@ +/** + * \file FormParagraph.h + * Copyright 2001 LyX Team + * see the file COPYING + * + * \author John Levon, moz@compsoc.man.ac.uk + */ + +#ifndef FORMPARAGRAPH_H +#define FORMPARAGRAPH_H + +#include "DialogBase.h" +#include "LString.h" +#include "boost/utility.hpp" + +class Dialogs; +class LyXView; +class ParagraphDlgImpl; + +class FormParagraph : public DialogBase, public noncopyable { +public: + /**@name Constructors and Destructors */ + //@{ + /// + FormParagraph(LyXView *, Dialogs *); + /// + ~FormParagraph(); + //@} + + /// Apply changes + void apply(); + /// Update the dialog. + void update(bool switched = false); + /// 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. + ParagraphDlgImpl * dialog_; + + /// the LyXView we belong to + LyXView * lv_; + + /// Used so we can get at the signals we have to connect to. + Dialogs * d_; + + /// Hide connection. + Connection h_; + + /// readonly file or not + bool readonly; +}; + +#endif diff --git a/src/frontends/qt2/FormPrint.C b/src/frontends/qt2/FormPrint.C new file mode 100644 index 0000000000..1e2ffa40fd --- /dev/null +++ b/src/frontends/qt2/FormPrint.C @@ -0,0 +1,135 @@ +/** + * \file FormPrint.C + * Copyright 2001 LyX Team + * see the file COPYING + * + * \author John Levon, moz@compsoc.man.ac.uk + */ + +#include + +#include "printdlgimpl.h" +#include "FormPrint.h" +#include "Dialogs.h" +#include "gettext.h" +#include "buffer.h" +#include "lyxrc.h" +#include "QtLyXView.h" + +#include "PrinterParams.h" +#include "Liason.h" +#include "BufferView.h" +#include "support/lstrings.h" +#include "qmessagebox.h" + +#ifdef SIGC_CXX_NAMESPACES +using SigC::slot; +#endif + +#ifdef CXX_WORKING_NAMESPACES +using Liason::printBuffer; +using Liason::getPrinterParams; +using std::max; +#endif + +FormPrint::FormPrint(LyXView *v, Dialogs *d) + : dialog_(0), lv_(v), d_(d), h_(0), u_(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->showPrint.connect(slot(this, &FormPrint::show)); +} + +FormPrint::~FormPrint() +{ + delete dialog_; +} + +// we can safely ignore the parameter because we can always update +void FormPrint::update(bool) +{ + if (!lv_->view()->available()) + return; + + PrinterParams pp(getPrinterParams(lv_->buffer())); + + dialog_->setTarget(pp.target); + dialog_->setPrinter(pp.printer_name.c_str()); + dialog_->setFile(pp.file_name.c_str()); + dialog_->setWhichPages(pp.which_pages); + dialog_->setReverse(pp.reverse_order); + dialog_->setSort(pp.unsorted_copies); + dialog_->setCount(pp.count_copies); + + if (!pp.from_page.empty()) { + dialog_->setFrom(pp.from_page.c_str()); + if (pp.to_page) + dialog_->setTo(tostr(pp.to_page).c_str()); + else + dialog_->setTo(""); + } else { + dialog_->setFrom(""); + dialog_->setTo(""); + } +} + +void FormPrint::print() +{ + if (!lv_->view()->available()) + return; + + string from; + int to(0); + + if (strlen(dialog_->getFrom())) { + from = dialog_->getFrom(); + if (strlen(dialog_->getTo())) + to = strToInt(dialog_->getTo()); + } + + int retval; + retval = printBuffer(lv_->buffer(), PrinterParams(dialog_->getTarget(), + string(dialog_->getPrinter()), string(dialog_->getFile()), + dialog_->getWhichPages(), from, to, dialog_->getReverse(), + dialog_->getSort(), max(strToInt(dialog_->getCount()),1))); + + if (!retval) { + // FIXME: should have a utility class for this + string message(_("An error occured while printing.\n\n")); + message += _("Check the parameters are correct.\n"); + QMessageBox msg( _("LyX: Print Error"), message.c_str(), QMessageBox::Warning, 1,0,0); + msg.raise(); + msg.setActiveWindow(); + msg.show(); + } +} + +void FormPrint::show() +{ + if (!dialog_) + dialog_ = new PrintDlgImpl(this, 0, _("LyX: Print")); + + if (!dialog_->isVisible()) { + h_ = d_->hideBufferDependent.connect(slot(this, &FormPrint::hide)); + u_ = d_->updateBufferDependent.connect(slot(this, &FormPrint::update)); + } + + dialog_->raise(); + dialog_->setActiveWindow(); + + update(); + dialog_->show(); +} + +void FormPrint::close() +{ + h_.disconnect(); + u_.disconnect(); +} + +void FormPrint::hide() +{ + dialog_->hide(); + close(); +} diff --git a/src/frontends/qt2/FormPrint.h b/src/frontends/qt2/FormPrint.h new file mode 100644 index 0000000000..bd8fe30524 --- /dev/null +++ b/src/frontends/qt2/FormPrint.h @@ -0,0 +1,62 @@ +/** + * \file FormPrint.h + * Copyright 2001 LyX Team + * see the file COPYING + * + * \author John Levon, moz@compsoc.man.ac.uk + */ +#ifndef FORMPRINT_H +#define FORMPRINT_H + +#include "DialogBase.h" +#include "boost/utility.hpp" + +class Dialogs; +class LyXView; +class PrintDlgImpl; + +#ifdef SIGC_CXX_NAMESPACES +using SigC::Connection; +#endif + +class FormPrint : public DialogBase, public noncopyable { +public: + /**@name Constructors and Destructors */ + //@{ + /// + FormPrint(LyXView *, Dialogs *); + /// + ~FormPrint(); + //@} + + /// start print + void print(); + /// close + void close(); + +private: + /// Create the dialog if necessary, update it and display it. + void show(); + /// Hide the dialog. + void hide(); + /// Update the dialog. + void update(bool = false); + + /// Real GUI implementation. + PrintDlgImpl * 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_; + /// Update connection. + Connection u_; +}; + +#endif diff --git a/src/frontends/qt2/FormTabularCreate.C b/src/frontends/qt2/FormTabularCreate.C new file mode 100644 index 0000000000..553f9b0517 --- /dev/null +++ b/src/frontends/qt2/FormTabularCreate.C @@ -0,0 +1,68 @@ +/** + * \file FormTabularCreate.C + * Copyright 2001 LyX Team + * see the file COPYING + * + * \author John Levon, moz@compsoc.man.ac.uk + */ + +#include + +#include "tabularcreatedlgimpl.h" +#include "Dialogs.h" +#include "FormTabularCreate.h" +#include "gettext.h" +#include "QtLyXView.h" +#include "BufferView.h" +#include "insets/insettabular.h" +#include "support/lstrings.h" + +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(int rows, int cols) +{ + if (!lv_->view()->available()) + return; + + string tmp = tostr(rows) + " " + tostr(cols); + lv_->getLyXFunc()->Dispatch(LFUN_INSET_TABULAR, tmp); +} + +void FormTabularCreate::show() +{ + if (!dialog_) + dialog_ = new TabularCreateDlgImpl(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(); +} diff --git a/src/frontends/qt2/FormTabularCreate.h b/src/frontends/qt2/FormTabularCreate.h new file mode 100644 index 0000000000..cfae3318f9 --- /dev/null +++ b/src/frontends/qt2/FormTabularCreate.h @@ -0,0 +1,62 @@ +/* FormTabularCreate.h + * (C) 2000 LyX Team + * John Levon, moz@compsoc.man.ac.uk + */ + +/*************************************************************************** + * * + * 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" +#include "LString.h" +#include "boost/utility.hpp" + +class Dialogs; +class LyXView; +class TabularCreateDlgImpl; + +class FormTabularCreate : public DialogBase, public noncopyable { +public: + /**@name Constructors and Destructors */ + //@{ + /// + FormTabularCreate(LyXView *, Dialogs *); + /// + ~FormTabularCreate(); + //@} + + /// create the table + void apply(int rows, 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. + TabularCreateDlgImpl * 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 diff --git a/src/frontends/qt2/QtLyXView.h b/src/frontends/qt2/QtLyXView.h new file mode 100644 index 0000000000..d9081cbcc9 --- /dev/null +++ b/src/frontends/qt2/QtLyXView.h @@ -0,0 +1,12 @@ +/* + * QtLyXView.h + * (C) 2000 LyX Team + * moz@compsoc.man.ac.uk + */ + +/* Qt 1.x has a messy namespace which conflicts with 'emit' in + * src/Timeout.h. This can go away when Qt 2.x happens. + */ + +#undef emit +#include "LyXView.h" diff --git a/src/frontends/qt2/emptytable.C b/src/frontends/qt2/emptytable.C new file mode 100644 index 0000000000..53ef5225b8 --- /dev/null +++ b/src/frontends/qt2/emptytable.C @@ -0,0 +1,80 @@ +/* + * emptytable.C + * (C) 2000 LyX Team + * John Levon, moz@compsoc.man.ac.uk + */ + +/*************************************************************************** + * * + * 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, const char * name) + : 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()); +} diff --git a/src/frontends/qt2/emptytable.h b/src/frontends/qt2/emptytable.h new file mode 100644 index 0000000000..e17807b399 --- /dev/null +++ b/src/frontends/qt2/emptytable.h @@ -0,0 +1,59 @@ +/* + * emptytable.h + * (C) 2000 LyX Team + * John Levon, moz@compsoc.man.ac.uk + */ + +/*************************************************************************** + * * + * 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 +#include + +#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(int); + /// the number of rows changed + void rowsChanged(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 diff --git a/src/frontends/qt2/paragraphdlg.C b/src/frontends/qt2/paragraphdlg.C new file mode 100644 index 0000000000..31791b9618 --- /dev/null +++ b/src/frontends/qt2/paragraphdlg.C @@ -0,0 +1,618 @@ +/**************************************************************************** +** Form implementation generated from reading ui file 'paragraphdlg.ui' +** +** Created: Sat Feb 10 14:22:28 2001 +** by: The User Interface Compiler (uic) +** +** WARNING! All changes made in this file will be lost! +****************************************************************************/ +#include "paragraphdlg.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * Constructs a ParagraphDlg which is a child of 'parent', with the + * name 'name' and widget flags set to 'f' + * + * The dialog will by default be modeless, unless you set 'modal' to + * TRUE to construct a modal dialog. + */ +ParagraphDlg::ParagraphDlg( QWidget* parent, const char* name, bool modal, WFlags fl ) + : QDialog( parent, name, modal, fl ) +{ + if ( !name ) + setName( "ParagraphDlg" ); + resize( 559, 387 ); + setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)1, (QSizePolicy::SizeType)1, sizePolicy().hasHeightForWidth() ) ); + setCaption( tr( "Paragraph" ) ); + setSizeGripEnabled( TRUE ); + ParagraphDlgLayout = new QVBoxLayout( this ); + ParagraphDlgLayout->setSpacing( 6 ); + ParagraphDlgLayout->setMargin( 11 ); + + TabsParagraph = new QTabWidget( this, "TabsParagraph" ); + + tab = new QWidget( TabsParagraph, "tab" ); + tabLayout = new QVBoxLayout( tab ); + tabLayout->setSpacing( 6 ); + tabLayout->setMargin( 11 ); + + Layout6 = new QHBoxLayout; + Layout6->setSpacing( 6 ); + Layout6->setMargin( 0 ); + + alignmentL = new QLabel( tab, "alignmentL" ); + alignmentL->setText( tr( "Alignment:" ) ); + alignmentL->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)1, (QSizePolicy::SizeType)1, alignmentL->sizePolicy().hasHeightForWidth() ) ); + Layout6->addWidget( alignmentL ); + + alignment = new QComboBox( FALSE, tab, "alignment" ); + alignment->insertItem( tr( "Justified" ) ); + alignment->insertItem( tr( "Left" ) ); + alignment->insertItem( tr( "Right" ) ); + alignment->insertItem( tr( "Centered" ) ); + alignment->setInsertionPolicy( QComboBox::AtBottom ); + alignment->setAutoCompletion( FALSE ); + Layout6->addWidget( alignment ); + QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum ); + Layout6->addItem( spacer ); + + noIndent = new QCheckBox( tab, "noIndent" ); + noIndent->setText( tr( "No indentation" ) ); + Layout6->addWidget( noIndent ); + tabLayout->addLayout( Layout6 ); + + spacingOptions = new QGroupBox( tab, "spacingOptions" ); + spacingOptions->setTitle( tr( "Spacing" ) ); + spacingOptions->setEnabled( TRUE ); + spacingOptions->setColumnLayout(0, Qt::Vertical ); + spacingOptions->layout()->setSpacing( 0 ); + spacingOptions->layout()->setMargin( 0 ); + spacingOptionsLayout = new QGridLayout( spacingOptions->layout() ); + spacingOptionsLayout->setAlignment( Qt::AlignTop ); + spacingOptionsLayout->setSpacing( 6 ); + spacingOptionsLayout->setMargin( 11 ); + + spacingBelowValueUnit = new QComboBox( FALSE, spacingOptions, "spacingBelowValueUnit" ); + spacingBelowValueUnit->insertItem( tr( "Centimetres" ) ); + spacingBelowValueUnit->insertItem( tr( "Inches" ) ); + spacingBelowValueUnit->insertItem( tr( "Points" ) ); + spacingBelowValueUnit->insertItem( tr( "Millimetres" ) ); + spacingBelowValueUnit->insertItem( tr( "Picas" ) ); + spacingBelowValueUnit->insertItem( tr( "ex Units" ) ); + spacingBelowValueUnit->insertItem( tr( "em Units" ) ); + spacingBelowValueUnit->insertItem( tr( "Scaled Points" ) ); + spacingBelowValueUnit->insertItem( tr( "Big/PS Points" ) ); + spacingBelowValueUnit->insertItem( tr( "Didot Points" ) ); + spacingBelowValueUnit->insertItem( tr( "Cicero Points" ) ); + spacingBelowValueUnit->setEnabled( FALSE ); + spacingBelowValueUnit->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)3, (QSizePolicy::SizeType)0, spacingBelowValueUnit->sizePolicy().hasHeightForWidth() ) ); + + spacingOptionsLayout->addWidget( spacingBelowValueUnit, 4, 2 ); + + spacingBelowPlusUnit = new QComboBox( FALSE, spacingOptions, "spacingBelowPlusUnit" ); + spacingBelowPlusUnit->insertItem( tr( "Centimetres" ) ); + spacingBelowPlusUnit->insertItem( tr( "Inches" ) ); + spacingBelowPlusUnit->insertItem( tr( "Points" ) ); + spacingBelowPlusUnit->insertItem( tr( "Millimetres" ) ); + spacingBelowPlusUnit->insertItem( tr( "Picas" ) ); + spacingBelowPlusUnit->insertItem( tr( "ex Units" ) ); + spacingBelowPlusUnit->insertItem( tr( "em Units" ) ); + spacingBelowPlusUnit->insertItem( tr( "Scaled Points" ) ); + spacingBelowPlusUnit->insertItem( tr( "Big/PS Points" ) ); + spacingBelowPlusUnit->insertItem( tr( "Didot Points" ) ); + spacingBelowPlusUnit->insertItem( tr( "Cicero Points" ) ); + spacingBelowPlusUnit->setEnabled( FALSE ); + spacingBelowPlusUnit->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)3, (QSizePolicy::SizeType)0, spacingBelowPlusUnit->sizePolicy().hasHeightForWidth() ) ); + + spacingOptionsLayout->addWidget( spacingBelowPlusUnit, 4, 3 ); + + spacingBelowMinusUnit = new QComboBox( FALSE, spacingOptions, "spacingBelowMinusUnit" ); + spacingBelowMinusUnit->insertItem( tr( "Centimetres" ) ); + spacingBelowMinusUnit->insertItem( tr( "Inches" ) ); + spacingBelowMinusUnit->insertItem( tr( "Points" ) ); + spacingBelowMinusUnit->insertItem( tr( "Millimetres" ) ); + spacingBelowMinusUnit->insertItem( tr( "Picas" ) ); + spacingBelowMinusUnit->insertItem( tr( "ex Units" ) ); + spacingBelowMinusUnit->insertItem( tr( "em Units" ) ); + spacingBelowMinusUnit->insertItem( tr( "Scaled Points" ) ); + spacingBelowMinusUnit->insertItem( tr( "Big/PS Points" ) ); + spacingBelowMinusUnit->insertItem( tr( "Didot Points" ) ); + spacingBelowMinusUnit->insertItem( tr( "Cicero Points" ) ); + spacingBelowMinusUnit->setEnabled( FALSE ); + spacingBelowMinusUnit->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)3, (QSizePolicy::SizeType)0, spacingBelowMinusUnit->sizePolicy().hasHeightForWidth() ) ); + + spacingOptionsLayout->addWidget( spacingBelowMinusUnit, 4, 4 ); + + spacingAbovePlusUnit = new QComboBox( FALSE, spacingOptions, "spacingAbovePlusUnit" ); + spacingAbovePlusUnit->insertItem( tr( "Centimetres" ) ); + spacingAbovePlusUnit->insertItem( tr( "Inches" ) ); + spacingAbovePlusUnit->insertItem( tr( "Points" ) ); + spacingAbovePlusUnit->insertItem( tr( "Millimetres" ) ); + spacingAbovePlusUnit->insertItem( tr( "Picas" ) ); + spacingAbovePlusUnit->insertItem( tr( "ex Units" ) ); + spacingAbovePlusUnit->insertItem( tr( "em Units" ) ); + spacingAbovePlusUnit->insertItem( tr( "Scaled Points" ) ); + spacingAbovePlusUnit->insertItem( tr( "Big/PS Points" ) ); + spacingAbovePlusUnit->insertItem( tr( "Didot Points" ) ); + spacingAbovePlusUnit->insertItem( tr( "Cicero Points" ) ); + spacingAbovePlusUnit->setEnabled( FALSE ); + spacingAbovePlusUnit->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)3, (QSizePolicy::SizeType)0, spacingAbovePlusUnit->sizePolicy().hasHeightForWidth() ) ); + + spacingOptionsLayout->addWidget( spacingAbovePlusUnit, 2, 3 ); + + spacingAboveValueUnit = new QComboBox( FALSE, spacingOptions, "spacingAboveValueUnit" ); + spacingAboveValueUnit->insertItem( tr( "Centimetres" ) ); + spacingAboveValueUnit->insertItem( tr( "Inches" ) ); + spacingAboveValueUnit->insertItem( tr( "Points" ) ); + spacingAboveValueUnit->insertItem( tr( "Millimetres" ) ); + spacingAboveValueUnit->insertItem( tr( "Picas" ) ); + spacingAboveValueUnit->insertItem( tr( "ex Units" ) ); + spacingAboveValueUnit->insertItem( tr( "em Units" ) ); + spacingAboveValueUnit->insertItem( tr( "Scaled Points" ) ); + spacingAboveValueUnit->insertItem( tr( "Big/PS Points" ) ); + spacingAboveValueUnit->insertItem( tr( "Didot Points" ) ); + spacingAboveValueUnit->insertItem( tr( "Cicero Points" ) ); + spacingAboveValueUnit->setEnabled( FALSE ); + spacingAboveValueUnit->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)3, (QSizePolicy::SizeType)0, spacingAboveValueUnit->sizePolicy().hasHeightForWidth() ) ); + + spacingOptionsLayout->addWidget( spacingAboveValueUnit, 2, 2 ); + + spacingBelowValue = new QLineEdit( spacingOptions, "spacingBelowValue" ); + spacingBelowValue->setEnabled( FALSE ); + + spacingOptionsLayout->addWidget( spacingBelowValue, 3, 2 ); + + spacingBelowPlus = new QLineEdit( spacingOptions, "spacingBelowPlus" ); + spacingBelowPlus->setEnabled( FALSE ); + + spacingOptionsLayout->addWidget( spacingBelowPlus, 3, 3 ); + + spacingAboveMinusUnit = new QComboBox( FALSE, spacingOptions, "spacingAboveMinusUnit" ); + spacingAboveMinusUnit->insertItem( tr( "Centimetres" ) ); + spacingAboveMinusUnit->insertItem( tr( "Inches" ) ); + spacingAboveMinusUnit->insertItem( tr( "Points" ) ); + spacingAboveMinusUnit->insertItem( tr( "Millimetres" ) ); + spacingAboveMinusUnit->insertItem( tr( "Picas" ) ); + spacingAboveMinusUnit->insertItem( tr( "ex Units" ) ); + spacingAboveMinusUnit->insertItem( tr( "em Units" ) ); + spacingAboveMinusUnit->insertItem( tr( "Scaled Points" ) ); + spacingAboveMinusUnit->insertItem( tr( "Big/PS Points" ) ); + spacingAboveMinusUnit->insertItem( tr( "Didot Points" ) ); + spacingAboveMinusUnit->insertItem( tr( "Cicero Points" ) ); + spacingAboveMinusUnit->setEnabled( FALSE ); + spacingAboveMinusUnit->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)3, (QSizePolicy::SizeType)0, spacingAboveMinusUnit->sizePolicy().hasHeightForWidth() ) ); + + spacingOptionsLayout->addWidget( spacingAboveMinusUnit, 2, 4 ); + + spacingAboveValue = new QLineEdit( spacingOptions, "spacingAboveValue" ); + spacingAboveValue->setEnabled( FALSE ); + + spacingOptionsLayout->addWidget( spacingAboveValue, 1, 2 ); + + spacingAbovePlus = new QLineEdit( spacingOptions, "spacingAbovePlus" ); + spacingAbovePlus->setEnabled( FALSE ); + + spacingOptionsLayout->addWidget( spacingAbovePlus, 1, 3 ); + + spacingAboveMinus = new QLineEdit( spacingOptions, "spacingAboveMinus" ); + spacingAboveMinus->setEnabled( FALSE ); + + spacingOptionsLayout->addWidget( spacingAboveMinus, 1, 4 ); + + spacingBelowMinus = new QLineEdit( spacingOptions, "spacingBelowMinus" ); + spacingBelowMinus->setEnabled( FALSE ); + + spacingOptionsLayout->addWidget( spacingBelowMinus, 3, 4 ); + + Layout2_1 = new QHBoxLayout; + Layout2_1->setSpacing( 6 ); + Layout2_1->setMargin( 0 ); + QSpacerItem* spacer_2 = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum ); + Layout2_1->addItem( spacer_2 ); + + spacingBelowUnitsL = new QLabel( spacingOptions, "spacingBelowUnitsL" ); + spacingBelowUnitsL->setText( tr( "Units:" ) ); + spacingBelowUnitsL->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)1, (QSizePolicy::SizeType)1, spacingBelowUnitsL->sizePolicy().hasHeightForWidth() ) ); + spacingBelowUnitsL->setEnabled( FALSE ); + QToolTip::add( spacingBelowUnitsL, tr( "Unit of Size, Stretch and Slink" ) ); + Layout2_1->addWidget( spacingBelowUnitsL ); + + spacingOptionsLayout->addLayout( Layout2_1, 4, 1 ); + + Layout2_1_2 = new QHBoxLayout; + Layout2_1_2->setSpacing( 6 ); + Layout2_1_2->setMargin( 0 ); + QSpacerItem* spacer_3 = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum ); + Layout2_1_2->addItem( spacer_3 ); + + spacingAboveUnitsL = new QLabel( spacingOptions, "spacingAboveUnitsL" ); + spacingAboveUnitsL->setText( tr( "Units:" ) ); + spacingAboveUnitsL->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)1, (QSizePolicy::SizeType)1, spacingAboveUnitsL->sizePolicy().hasHeightForWidth() ) ); + spacingAboveUnitsL->setEnabled( FALSE ); + QToolTip::add( spacingAboveUnitsL, tr( "Unit of Size, Stretch and Slink" ) ); + Layout2_1_2->addWidget( spacingAboveUnitsL ); + + spacingOptionsLayout->addLayout( Layout2_1_2, 2, 1 ); + + spacingValueL = new QLabel( spacingOptions, "spacingValueL" ); + spacingValueL->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)1, (QSizePolicy::SizeType)1, spacingValueL->sizePolicy().hasHeightForWidth() ) ); + spacingValueL->setText( tr( "Value:" ) ); + spacingValueL->setEnabled( FALSE ); + QToolTip::add( spacingValueL, tr( "Amount of spacing" ) ); + + spacingOptionsLayout->addWidget( spacingValueL, 0, 2 ); + + spacingPlusL = new QLabel( spacingOptions, "spacingPlusL" ); + spacingPlusL->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)1, (QSizePolicy::SizeType)1, spacingPlusL->sizePolicy().hasHeightForWidth() ) ); + spacingPlusL->setText( tr( "Stretch:" ) ); + spacingPlusL->setEnabled( FALSE ); + QToolTip::add( spacingPlusL, tr( "Margin by with paragraph is allowed to increase" ) ); + + spacingOptionsLayout->addWidget( spacingPlusL, 0, 3 ); + + spacingMinusL = new QLabel( spacingOptions, "spacingMinusL" ); + spacingMinusL->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)1, (QSizePolicy::SizeType)1, spacingMinusL->sizePolicy().hasHeightForWidth() ) ); + spacingMinusL->setText( tr( "Shrink:" ) ); + spacingMinusL->setEnabled( FALSE ); + QToolTip::add( spacingMinusL, tr( "Margin by with paragraph is allowed to increase" ) ); + + spacingOptionsLayout->addWidget( spacingMinusL, 0, 4 ); + + spacingAbove = new QComboBox( FALSE, spacingOptions, "spacingAbove" ); + spacingAbove->insertItem( tr( "None" ) ); + spacingAbove->insertItem( tr( "DefSkip" ) ); + spacingAbove->insertItem( tr( "SmallSkip" ) ); + spacingAbove->insertItem( tr( "MedSkip" ) ); + spacingAbove->insertItem( tr( "BigSkip" ) ); + spacingAbove->insertItem( tr( "VFill" ) ); + spacingAbove->insertItem( tr( "Custom" ) ); + spacingAbove->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)3, (QSizePolicy::SizeType)0, spacingAbove->sizePolicy().hasHeightForWidth() ) ); + + spacingOptionsLayout->addWidget( spacingAbove, 1, 1 ); + + spacingAboveL = new QLabel( spacingOptions, "spacingAboveL" ); + spacingAboveL->setText( tr( "Above:" ) ); + + spacingOptionsLayout->addWidget( spacingAboveL, 1, 0 ); + + spacingBelowL = new QLabel( spacingOptions, "spacingBelowL" ); + spacingBelowL->setText( tr( "Below:" ) ); + + spacingOptionsLayout->addWidget( spacingBelowL, 3, 0 ); + + spacingBelow = new QComboBox( FALSE, spacingOptions, "spacingBelow" ); + spacingBelow->insertItem( tr( "None" ) ); + spacingBelow->insertItem( tr( "DefSkip" ) ); + spacingBelow->insertItem( tr( "SmallSkip" ) ); + spacingBelow->insertItem( tr( "MedSkip" ) ); + spacingBelow->insertItem( tr( "BigSkip" ) ); + spacingBelow->insertItem( tr( "VFill" ) ); + spacingBelow->insertItem( tr( "Custom" ) ); + spacingBelow->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)3, (QSizePolicy::SizeType)0, spacingBelow->sizePolicy().hasHeightForWidth() ) ); + + spacingOptionsLayout->addWidget( spacingBelow, 3, 1 ); + + spacingAboveKeep = new QCheckBox( spacingOptions, "spacingAboveKeep" ); + spacingAboveKeep->setText( tr( "Keep space at the top of the page" ) ); + spacingAboveKeep->setEnabled( TRUE ); + QToolTip::add( spacingAboveKeep, tr( "Keep space at top of the page" ) ); + + spacingOptionsLayout->addMultiCellWidget( spacingAboveKeep, 5, 5, 1, 2 ); + + spacingBelowKeep = new QCheckBox( spacingOptions, "spacingBelowKeep" ); + spacingBelowKeep->setText( tr( "Keep space at the bottom of the page" ) ); + spacingBelowKeep->setEnabled( TRUE ); + QToolTip::add( spacingBelowKeep, tr( "Keep space at the bottom of the page" ) ); + + spacingOptionsLayout->addMultiCellWidget( spacingBelowKeep, 5, 5, 3, 4 ); + tabLayout->addWidget( spacingOptions ); + + listOptions = new QGroupBox( tab, "listOptions" ); + listOptions->setTitle( tr( "List environment" ) ); + listOptions->setEnabled( FALSE ); + listOptions->setColumnLayout(0, Qt::Vertical ); + listOptions->layout()->setSpacing( 0 ); + listOptions->layout()->setMargin( 0 ); + listOptionsLayout = new QHBoxLayout( listOptions->layout() ); + listOptionsLayout->setAlignment( Qt::AlignTop ); + listOptionsLayout->setSpacing( 6 ); + listOptionsLayout->setMargin( 11 ); + + labelWidthL = new QLabel( listOptions, "labelWidthL" ); + labelWidthL->setText( tr( "Label width:" ) ); + labelWidthL->setEnabled( FALSE ); + QToolTip::add( labelWidthL, tr( "Label width in list environment" ) ); + listOptionsLayout->addWidget( labelWidthL ); + + labelWidth = new QLineEdit( listOptions, "labelWidth" ); + labelWidth->setEnabled( FALSE ); + listOptionsLayout->addWidget( labelWidth ); + QSpacerItem* spacer_4 = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum ); + listOptionsLayout->addItem( spacer_4 ); + tabLayout->addWidget( listOptions ); + QSpacerItem* spacer_5 = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding ); + tabLayout->addItem( spacer_5 ); + TabsParagraph->insertTab( tab, tr( "&Alignment and Spacing" ) ); + + tab_2 = new QWidget( TabsParagraph, "tab_2" ); + tabLayout_2 = new QGridLayout( tab_2 ); + tabLayout_2->setSpacing( 6 ); + tabLayout_2->setMargin( 11 ); + + pagebreakOptions = new QGroupBox( tab_2, "pagebreakOptions" ); + pagebreakOptions->setTitle( tr( "Page break" ) ); + pagebreakOptions->setOrientation( QGroupBox::Vertical ); + pagebreakOptions->setColumnLayout(0, Qt::Vertical ); + pagebreakOptions->layout()->setSpacing( 0 ); + pagebreakOptions->layout()->setMargin( 0 ); + pagebreakOptionsLayout = new QVBoxLayout( pagebreakOptions->layout() ); + pagebreakOptionsLayout->setAlignment( Qt::AlignTop ); + pagebreakOptionsLayout->setSpacing( 6 ); + pagebreakOptionsLayout->setMargin( 11 ); + + pagebreakAbove = new QCheckBox( pagebreakOptions, "pagebreakAbove" ); + pagebreakAbove->setText( tr( "above paragraph" ) ); + pagebreakOptionsLayout->addWidget( pagebreakAbove ); + + pagebreakBelow = new QCheckBox( pagebreakOptions, "pagebreakBelow" ); + pagebreakBelow->setText( tr( "below paragraph" ) ); + pagebreakOptionsLayout->addWidget( pagebreakBelow ); + + tabLayout_2->addWidget( pagebreakOptions, 0, 1 ); + QSpacerItem* spacer_6 = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum ); + tabLayout_2->addItem( spacer_6, 0, 2 ); + QSpacerItem* spacer_7 = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding ); + tabLayout_2->addItem( spacer_7, 1, 2 ); + + lineOptions = new QGroupBox( tab_2, "lineOptions" ); + lineOptions->setTitle( tr( "Line" ) ); + lineOptions->setColumnLayout(0, Qt::Vertical ); + lineOptions->layout()->setSpacing( 0 ); + lineOptions->layout()->setMargin( 0 ); + lineOptionsLayout = new QVBoxLayout( lineOptions->layout() ); + lineOptionsLayout->setAlignment( Qt::AlignTop ); + lineOptionsLayout->setSpacing( 6 ); + lineOptionsLayout->setMargin( 11 ); + + lineAbove = new QCheckBox( lineOptions, "lineAbove" ); + lineAbove->setText( tr( "above paragraph" ) ); + lineOptionsLayout->addWidget( lineAbove ); + + lineBelow = new QCheckBox( lineOptions, "lineBelow" ); + lineBelow->setText( tr( "below paragraph" ) ); + lineOptionsLayout->addWidget( lineBelow ); + + tabLayout_2->addWidget( lineOptions, 0, 0 ); + TabsParagraph->insertTab( tab_2, tr( "&Lines and Page breaks" ) ); + + tab_3 = new QWidget( TabsParagraph, "tab_3" ); + tabLayout_3 = new QGridLayout( tab_3 ); + tabLayout_3->setSpacing( 6 ); + tabLayout_3->setMargin( 11 ); + QSpacerItem* spacer_8 = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum ); + tabLayout_3->addItem( spacer_8, 1, 1 ); + + Layout7 = new QGridLayout; + Layout7->setSpacing( 6 ); + Layout7->setMargin( 0 ); + + extraUnitL = new QLabel( tab_3, "extraUnitL" ); + extraUnitL->setText( tr( "Unit:" ) ); + extraUnitL->setEnabled( FALSE ); + + Layout7->addWidget( extraUnitL, 0, 2 ); + + extraUnit = new QComboBox( FALSE, tab_3, "extraUnit" ); + extraUnit->insertItem( tr( "Centimetres" ) ); + extraUnit->insertItem( tr( "Inches" ) ); + extraUnit->insertItem( tr( "Points" ) ); + extraUnit->insertItem( tr( "Millimetres" ) ); + extraUnit->insertItem( tr( "Picas" ) ); + extraUnit->insertItem( tr( "ex Units" ) ); + extraUnit->insertItem( tr( "em Units" ) ); + extraUnit->insertItem( tr( "Scaled Points" ) ); + extraUnit->insertItem( tr( "Big/PS Points" ) ); + extraUnit->insertItem( tr( "Didot Points" ) ); + extraUnit->insertItem( tr( "Cicero Points" ) ); + extraUnit->setFocusPolicy( QComboBox::TabFocus ); + extraUnit->setEnabled( FALSE ); + + Layout7->addWidget( extraUnit, 1, 2 ); + + extraWidth = new QLineEdit( tab_3, "extraWidth" ); + extraWidth->setEnabled( FALSE ); + + Layout7->addWidget( extraWidth, 1, 1 ); + + extraType = new QComboBox( FALSE, tab_3, "extraType" ); + extraType->insertItem( tr( "None" ) ); + extraType->insertItem( tr( "Minipage" ) ); + extraType->insertItem( tr( "Wrap text around floats" ) ); + extraType->insertItem( tr( "Indent whole paragraph" ) ); + + Layout7->addWidget( extraType, 1, 0 ); + + extraWidthL = new QLabel( tab_3, "extraWidthL" ); + extraWidthL->setText( tr( "Width:" ) ); + extraWidthL->setEnabled( FALSE ); + + Layout7->addWidget( extraWidthL, 0, 1 ); + + tabLayout_3->addLayout( Layout7, 0, 0 ); + + minipageOptions = new QGroupBox( tab_3, "minipageOptions" ); + minipageOptions->setTitle( tr( "Minipage options" ) ); + minipageOptions->setEnabled( FALSE ); + minipageOptions->setColumnLayout(0, Qt::Vertical ); + minipageOptions->layout()->setSpacing( 0 ); + minipageOptions->layout()->setMargin( 0 ); + minipageOptionsLayout = new QVBoxLayout( minipageOptions->layout() ); + minipageOptionsLayout->setAlignment( Qt::AlignTop ); + minipageOptionsLayout->setSpacing( 6 ); + minipageOptionsLayout->setMargin( 11 ); + + minipageStart = new QCheckBox( minipageOptions, "minipageStart" ); + minipageStart->setText( tr( "Start new minipage" ) ); + minipageStart->setEnabled( FALSE ); + minipageOptionsLayout->addWidget( minipageStart ); + + minipageHfill = new QCheckBox( minipageOptions, "minipageHfill" ); + minipageHfill->setText( tr( "HFill between minipage paragraphs" ) ); + minipageHfill->setEnabled( FALSE ); + minipageOptionsLayout->addWidget( minipageHfill ); + + Layout15 = new QHBoxLayout; + Layout15->setSpacing( 6 ); + Layout15->setMargin( 0 ); + + minipageValignL = new QLabel( minipageOptions, "minipageValignL" ); + minipageValignL->setText( tr( "Vertical Alignment:" ) ); + Layout15->addWidget( minipageValignL ); + + minipageValign = new QComboBox( FALSE, minipageOptions, "minipageValign" ); + minipageValign->insertItem( tr( "Top" ) ); + minipageValign->insertItem( tr( "Middle" ) ); + minipageValign->insertItem( tr( "Bottom" ) ); + Layout15->addWidget( minipageValign ); + QSpacerItem* spacer_9 = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum ); + Layout15->addItem( spacer_9 ); + minipageOptionsLayout->addLayout( Layout15 ); + + tabLayout_3->addWidget( minipageOptions, 1, 0 ); + QSpacerItem* spacer_10 = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding ); + tabLayout_3->addItem( spacer_10, 2, 0 ); + TabsParagraph->insertTab( tab_3, tr( "&Extra options" ) ); + ParagraphDlgLayout->addWidget( TabsParagraph ); + + Layout1 = new QHBoxLayout; + Layout1->setSpacing( 6 ); + Layout1->setMargin( 0 ); + + defaultsPB = new QPushButton( this, "defaultsPB" ); + defaultsPB->setText( tr( "&Restore" ) ); + Layout1->addWidget( defaultsPB ); + QSpacerItem* spacer_11 = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum ); + Layout1->addItem( spacer_11 ); + + applyPB = new QPushButton( this, "applyPB" ); + applyPB->setText( tr( "&Apply" ) ); + Layout1->addWidget( applyPB ); + + okPB = new QPushButton( this, "okPB" ); + okPB->setText( tr( "&OK" ) ); + okPB->setFlat( FALSE ); + okPB->setDefault( FALSE ); + Layout1->addWidget( okPB ); + + cancelPB = new QPushButton( this, "cancelPB" ); + cancelPB->setText( tr( "&Cancel" ) ); + cancelPB->setDefault( TRUE ); + Layout1->addWidget( cancelPB ); + ParagraphDlgLayout->addLayout( Layout1 ); + + // signals and slots connections + connect( defaultsPB, SIGNAL( clicked() ), this, SLOT( restore_adaptor() ) ); + connect( applyPB, SIGNAL( clicked() ), this, SLOT( apply_adaptor() ) ); + connect( cancelPB, SIGNAL( clicked() ), this, SLOT( cancel_adaptor() ) ); + connect( okPB, SIGNAL( clicked() ), this, SLOT( ok_adaptor() ) ); + connect( spacingAbove, SIGNAL( activated(int) ), this, SLOT( enable_spacingAbove(int) ) ); + connect( spacingBelow, SIGNAL( activated(int) ), this, SLOT( enable_spacingBelow(int) ) ); + connect( extraType, SIGNAL( activated(int) ), this, SLOT( enable_minipageOptions(int) ) ); + connect( extraType, SIGNAL( activated(int) ), this, SLOT( enable_extraOptions(int) ) ); + + // tab order + setTabOrder( TabsParagraph, alignment ); + setTabOrder( alignment, noIndent ); + setTabOrder( noIndent, spacingAbove ); + setTabOrder( spacingAbove, spacingAboveValue ); + setTabOrder( spacingAboveValue, spacingAbovePlus ); + setTabOrder( spacingAbovePlus, spacingAboveMinus ); + setTabOrder( spacingAboveMinus, spacingAboveKeep ); + setTabOrder( spacingAboveKeep, spacingAboveValueUnit ); + setTabOrder( spacingAboveValueUnit, spacingAbovePlusUnit ); + setTabOrder( spacingAbovePlusUnit, spacingAboveMinusUnit ); + setTabOrder( spacingAboveMinusUnit, spacingBelow ); + setTabOrder( spacingBelow, spacingBelowValue ); + setTabOrder( spacingBelowValue, spacingBelowPlus ); + setTabOrder( spacingBelowPlus, spacingBelowMinus ); + setTabOrder( spacingBelowMinus, spacingBelowKeep ); + setTabOrder( spacingBelowKeep, spacingBelowValueUnit ); + setTabOrder( spacingBelowValueUnit, spacingBelowPlusUnit ); + setTabOrder( spacingBelowPlusUnit, spacingBelowMinusUnit ); + setTabOrder( spacingBelowMinusUnit, labelWidth ); + setTabOrder( labelWidth, lineAbove ); + setTabOrder( lineAbove, lineBelow ); + setTabOrder( lineBelow, pagebreakAbove ); + setTabOrder( pagebreakAbove, pagebreakBelow ); + setTabOrder( pagebreakBelow, extraType ); + setTabOrder( extraType, extraWidth ); + setTabOrder( extraWidth, extraUnit ); + setTabOrder( extraUnit, minipageStart ); + setTabOrder( minipageStart, minipageHfill ); + setTabOrder( minipageHfill, minipageValign ); + setTabOrder( minipageValign, cancelPB ); + setTabOrder( cancelPB, okPB ); + setTabOrder( okPB, applyPB ); + setTabOrder( applyPB, defaultsPB ); +} + +/* + * Destroys the object and frees any allocated resources + */ +ParagraphDlg::~ParagraphDlg() +{ + // no need to delete child widgets, Qt does it all for us +} + +void ParagraphDlg::apply_adaptor() +{ + qWarning( "ParagraphDlg::apply_adaptor(): Not implemented yet!" ); +} + +void ParagraphDlg::cancel_adaptor() +{ + qWarning( "ParagraphDlg::cancel_adaptor(): Not implemented yet!" ); +} + +void ParagraphDlg::enable_extraOptions(int) +{ + qWarning( "ParagraphDlg::enable_extraOptions(int): Not implemented yet!" ); +} + +void ParagraphDlg::enable_minipageOptions(int) +{ + qWarning( "ParagraphDlg::enable_minipageOptions(int): Not implemented yet!" ); +} + +void ParagraphDlg::enable_spacingAbove(int) +{ + qWarning( "ParagraphDlg::enable_spacingAbove(int): Not implemented yet!" ); +} + +void ParagraphDlg::enable_spacingBelow(int) +{ + qWarning( "ParagraphDlg::enable_spacingBelow(int): Not implemented yet!" ); +} + +void ParagraphDlg::ok_adaptor() +{ + qWarning( "ParagraphDlg::ok_adaptor(): Not implemented yet!" ); +} + +void ParagraphDlg::restore_adaptor() +{ + qWarning( "ParagraphDlg::restore_adaptor(): Not implemented yet!" ); +} + diff --git a/src/frontends/qt2/paragraphdlg.h b/src/frontends/qt2/paragraphdlg.h new file mode 100644 index 0000000000..39c08770e5 --- /dev/null +++ b/src/frontends/qt2/paragraphdlg.h @@ -0,0 +1,117 @@ +/**************************************************************************** +** Form interface generated from reading ui file 'paragraphdlg.ui' +** +** Created: Sat Feb 10 14:22:05 2001 +** by: The User Interface Compiler (uic) +** +** WARNING! All changes made in this file will be lost! +****************************************************************************/ +#ifndef PARAGRAPHDLG_H +#define PARAGRAPHDLG_H + +#include +#include +class QVBoxLayout; +class QHBoxLayout; +class QGridLayout; +class QCheckBox; +class QComboBox; +class QGroupBox; +class QLabel; +class QLineEdit; +class QPushButton; +class QTabWidget; +class QWidget; + +class ParagraphDlg : public QDialog +{ + Q_OBJECT + +public: + ParagraphDlg( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 ); + ~ParagraphDlg(); + + QTabWidget* TabsParagraph; + QWidget* tab; + QLabel* alignmentL; + QComboBox* alignment; + QCheckBox* noIndent; + QGroupBox* spacingOptions; + QComboBox* spacingBelowValueUnit; + QComboBox* spacingBelowPlusUnit; + QComboBox* spacingBelowMinusUnit; + QComboBox* spacingAbovePlusUnit; + QComboBox* spacingAboveValueUnit; + QLineEdit* spacingBelowValue; + QLineEdit* spacingBelowPlus; + QComboBox* spacingAboveMinusUnit; + QLineEdit* spacingAboveValue; + QLineEdit* spacingAbovePlus; + QLineEdit* spacingAboveMinus; + QLineEdit* spacingBelowMinus; + QLabel* spacingBelowUnitsL; + QLabel* spacingAboveUnitsL; + QLabel* spacingValueL; + QLabel* spacingPlusL; + QLabel* spacingMinusL; + QComboBox* spacingAbove; + QLabel* spacingAboveL; + QLabel* spacingBelowL; + QComboBox* spacingBelow; + QCheckBox* spacingAboveKeep; + QCheckBox* spacingBelowKeep; + QGroupBox* listOptions; + QLabel* labelWidthL; + QLineEdit* labelWidth; + QWidget* tab_2; + QGroupBox* pagebreakOptions; + QCheckBox* pagebreakAbove; + QCheckBox* pagebreakBelow; + QGroupBox* lineOptions; + QCheckBox* lineAbove; + QCheckBox* lineBelow; + QWidget* tab_3; + QLabel* extraUnitL; + QComboBox* extraUnit; + QLineEdit* extraWidth; + QComboBox* extraType; + QLabel* extraWidthL; + QGroupBox* minipageOptions; + QCheckBox* minipageStart; + QCheckBox* minipageHfill; + QLabel* minipageValignL; + QComboBox* minipageValign; + QPushButton* defaultsPB; + QPushButton* applyPB; + QPushButton* okPB; + QPushButton* cancelPB; + +protected slots: + virtual void apply_adaptor(); + virtual void cancel_adaptor(); + virtual void enable_extraOptions(int); + virtual void enable_minipageOptions(int); + virtual void enable_spacingAbove(int); + virtual void enable_spacingBelow(int); + virtual void ok_adaptor(); + virtual void restore_adaptor(); + +protected: + QVBoxLayout* ParagraphDlgLayout; + QVBoxLayout* tabLayout; + QHBoxLayout* Layout6; + QGridLayout* spacingOptionsLayout; + QHBoxLayout* Layout2_1; + QHBoxLayout* Layout2_1_2; + QHBoxLayout* listOptionsLayout; + QGridLayout* tabLayout_2; + QVBoxLayout* pagebreakOptionsLayout; + QVBoxLayout* lineOptionsLayout; + QGridLayout* tabLayout_3; + QGridLayout* Layout7; + QVBoxLayout* minipageOptionsLayout; + QHBoxLayout* Layout15; + QHBoxLayout* Layout1; +}; + +#endif // PARAGRAPHDLG_H diff --git a/src/frontends/qt2/paragraphdlg.ui b/src/frontends/qt2/paragraphdlg.ui new file mode 100644 index 0000000000..777e2c8a57 --- /dev/null +++ b/src/frontends/qt2/paragraphdlg.ui @@ -0,0 +1,1978 @@ + +ParagraphDlg + + QDialog + + name + ParagraphDlg + + + geometry + + 0 + 0 + 559 + 387 + + + + sizePolicy + + 1 + 1 + + + + caption + Paragraph + + + sizeGripEnabled + true + + + layoutMargin + + + layoutSpacing + + + + margin + 11 + + + spacing + 6 + + + QTabWidget + + name + TabsParagraph + + + layoutMargin + + + layoutSpacing + + + QWidget + + name + tab + + + title + &Alignment and Spacing + + + + margin + 11 + + + spacing + 6 + + + QLayoutWidget + + name + Layout6 + + + + margin + 0 + + + spacing + 6 + + + QLabel + + name + alignmentL + + + text + Alignment: + + + sizePolicy + + 1 + 1 + + + + + QComboBox + + + text + Justified + + + + + text + Left + + + + + text + Right + + + + + text + Centered + + + + name + alignment + + + insertionPolicy + AtBottom + + + autoCompletion + false + + + + + name + Spacer3 + + + orientation + Horizontal + + + sizeType + Expanding + + + sizeHint + + 20 + 20 + + + + + QCheckBox + + name + noIndent + + + text + No indentation + + + + + + QGroupBox + + name + spacingOptions + + + title + Spacing + + + enabled + true + + + layoutSpacing + + + + margin + 11 + + + spacing + 6 + + + QComboBox + + + text + Centimetres + + + + + text + Inches + + + + + text + Points + + + + + text + Millimetres + + + + + text + Picas + + + + + text + ex Units + + + + + text + em Units + + + + + text + Scaled Points + + + + + text + Big/PS Points + + + + + text + Didot Points + + + + + text + Cicero Points + + + + name + spacingBelowValueUnit + + + enabled + false + + + sizePolicy + + 3 + 0 + + + + + QComboBox + + + text + Centimetres + + + + + text + Inches + + + + + text + Points + + + + + text + Millimetres + + + + + text + Picas + + + + + text + ex Units + + + + + text + em Units + + + + + text + Scaled Points + + + + + text + Big/PS Points + + + + + text + Didot Points + + + + + text + Cicero Points + + + + name + spacingBelowPlusUnit + + + enabled + false + + + sizePolicy + + 3 + 0 + + + + + QComboBox + + + text + Centimetres + + + + + text + Inches + + + + + text + Points + + + + + text + Millimetres + + + + + text + Picas + + + + + text + ex Units + + + + + text + em Units + + + + + text + Scaled Points + + + + + text + Big/PS Points + + + + + text + Didot Points + + + + + text + Cicero Points + + + + name + spacingBelowMinusUnit + + + enabled + false + + + sizePolicy + + 3 + 0 + + + + + QComboBox + + + text + Centimetres + + + + + text + Inches + + + + + text + Points + + + + + text + Millimetres + + + + + text + Picas + + + + + text + ex Units + + + + + text + em Units + + + + + text + Scaled Points + + + + + text + Big/PS Points + + + + + text + Didot Points + + + + + text + Cicero Points + + + + name + spacingAbovePlusUnit + + + enabled + false + + + sizePolicy + + 3 + 0 + + + + + QComboBox + + + text + Centimetres + + + + + text + Inches + + + + + text + Points + + + + + text + Millimetres + + + + + text + Picas + + + + + text + ex Units + + + + + text + em Units + + + + + text + Scaled Points + + + + + text + Big/PS Points + + + + + text + Didot Points + + + + + text + Cicero Points + + + + name + spacingAboveValueUnit + + + enabled + false + + + sizePolicy + + 3 + 0 + + + + + QLineEdit + + name + spacingBelowValue + + + enabled + false + + + + QLineEdit + + name + spacingBelowPlus + + + enabled + false + + + + QComboBox + + + text + Centimetres + + + + + text + Inches + + + + + text + Points + + + + + text + Millimetres + + + + + text + Picas + + + + + text + ex Units + + + + + text + em Units + + + + + text + Scaled Points + + + + + text + Big/PS Points + + + + + text + Didot Points + + + + + text + Cicero Points + + + + name + spacingAboveMinusUnit + + + enabled + false + + + sizePolicy + + 3 + 0 + + + + + QLineEdit + + name + spacingAboveValue + + + enabled + false + + + + QLineEdit + + name + spacingAbovePlus + + + enabled + false + + + + QLineEdit + + name + spacingAboveMinus + + + enabled + false + + + + QLineEdit + + name + spacingBelowMinus + + + enabled + false + + + + QLayoutWidget + + name + Layout2_1 + + + + margin + 0 + + + spacing + 6 + + + + name + Spacer2_1_1 + + + orientation + Horizontal + + + sizeType + Expanding + + + sizeHint + + 20 + 20 + + + + + QLabel + + name + spacingBelowUnitsL + + + text + Units: + + + sizePolicy + + 1 + 1 + + + + enabled + false + + + toolTip + Unit of Size, Stretch and Slink + + + + + + QLayoutWidget + + name + Layout2_1_2 + + + + margin + 0 + + + spacing + 6 + + + + name + Spacer2_1_1_2 + + + orientation + Horizontal + + + sizeType + Expanding + + + sizeHint + + 20 + 20 + + + + + QLabel + + name + spacingAboveUnitsL + + + text + Units: + + + sizePolicy + + 1 + 1 + + + + enabled + false + + + toolTip + Unit of Size, Stretch and Slink + + + + + + QLabel + + name + spacingValueL + + + sizePolicy + + 1 + 1 + + + + text + Value: + + + enabled + false + + + toolTip + Amount of spacing + + + + QLabel + + name + spacingPlusL + + + sizePolicy + + 1 + 1 + + + + text + Stretch: + + + enabled + false + + + toolTip + Margin by with paragraph is allowed to increase + + + + QLabel + + name + spacingMinusL + + + sizePolicy + + 1 + 1 + + + + text + Shrink: + + + enabled + false + + + toolTip + Margin by with paragraph is allowed to increase + + + + QComboBox + + + text + None + + + + + text + DefSkip + + + + + text + SmallSkip + + + + + text + MedSkip + + + + + text + BigSkip + + + + + text + VFill + + + + + text + Custom + + + + name + spacingAbove + + + sizePolicy + + 3 + 0 + + + + + QLabel + + name + spacingAboveL + + + text + Above: + + + buddy + + + + + QLabel + + name + spacingBelowL + + + text + Below: + + + buddy + + + + + QComboBox + + + text + None + + + + + text + DefSkip + + + + + text + SmallSkip + + + + + text + MedSkip + + + + + text + BigSkip + + + + + text + VFill + + + + + text + Custom + + + + name + spacingBelow + + + sizePolicy + + 3 + 0 + + + + + QCheckBox + + name + spacingAboveKeep + + + text + Keep space at the top of the page + + + enabled + true + + + toolTip + Keep space at top of the page + + + + QCheckBox + + name + spacingBelowKeep + + + text + Keep space at the bottom of the page + + + enabled + true + + + toolTip + Keep space at the bottom of the page + + + + + + QGroupBox + + name + listOptions + + + title + List environment + + + enabled + false + + + + margin + 11 + + + spacing + 6 + + + QLabel + + name + labelWidthL + + + text + Label width: + + + enabled + false + + + toolTip + Label width in list environment + + + + QLineEdit + + name + labelWidth + + + enabled + false + + + + + name + Spacer7 + + + orientation + Horizontal + + + sizeType + Expanding + + + sizeHint + + 20 + 20 + + + + + + + + name + Spacer1_5 + + + orientation + Vertical + + + sizeType + Expanding + + + sizeHint + + 20 + 20 + + + + + + + QWidget + + name + tab + + + title + &Lines and Page breaks + + + + margin + 11 + + + spacing + 6 + + + QGroupBox + + name + pagebreakOptions + + + title + Page break + + + orientation + Vertical + + + + margin + 11 + + + spacing + 6 + + + QCheckBox + + name + pagebreakAbove + + + text + above paragraph + + + + QCheckBox + + name + pagebreakBelow + + + text + below paragraph + + + + + + + name + Spacer1_2 + + + orientation + Horizontal + + + sizeType + Expanding + + + sizeHint + + 20 + 20 + + + + toolTip + Index entry + + + + + name + Spacer2 + + + orientation + Vertical + + + sizeType + Expanding + + + sizeHint + + 20 + 20 + + + + + QGroupBox + + name + lineOptions + + + title + Line + + + + margin + 11 + + + spacing + 6 + + + QCheckBox + + name + lineAbove + + + text + above paragraph + + + + QCheckBox + + name + lineBelow + + + text + below paragraph + + + + + + + + QWidget + + name + tab + + + title + &Extra options + + + + margin + 11 + + + spacing + 6 + + + + name + Spacer1_4 + + + orientation + Horizontal + + + sizeType + Expanding + + + sizeHint + + 20 + 20 + + + + + QLayoutWidget + + name + Layout7 + + + + margin + 0 + + + spacing + 6 + + + QLabel + + name + extraUnitL + + + text + Unit: + + + enabled + false + + + + QComboBox + + + text + Centimetres + + + + + text + Inches + + + + + text + Points + + + + + text + Millimetres + + + + + text + Picas + + + + + text + ex Units + + + + + text + em Units + + + + + text + Scaled Points + + + + + text + Big/PS Points + + + + + text + Didot Points + + + + + text + Cicero Points + + + + name + extraUnit + + + focusPolicy + TabFocus + + + enabled + false + + + + QLineEdit + + name + extraWidth + + + enabled + false + + + + QComboBox + + + text + None + + + + + text + Minipage + + + + + text + Wrap text around floats + + + + + text + Indent whole paragraph + + + + name + extraType + + + + QLabel + + name + extraWidthL + + + text + Width: + + + enabled + false + + + + + + QGroupBox + + name + minipageOptions + + + title + Minipage options + + + enabled + false + + + + margin + 11 + + + spacing + 6 + + + QCheckBox + + name + minipageStart + + + text + Start new minipage + + + enabled + false + + + + QCheckBox + + name + minipageHfill + + + text + HFill between minipage paragraphs + + + enabled + false + + + + QLayoutWidget + + name + Layout15 + + + + margin + 0 + + + spacing + 6 + + + QLabel + + name + minipageValignL + + + text + Vertical Alignment: + + + + QComboBox + + + text + Top + + + + + text + Middle + + + + + text + Bottom + + + + name + minipageValign + + + + + name + Spacer8 + + + orientation + Horizontal + + + sizeType + Expanding + + + sizeHint + + 20 + 20 + + + + + + + + + + name + Spacer6 + + + orientation + Vertical + + + sizeType + Expanding + + + sizeHint + + 20 + 20 + + + + + + + + QLayoutWidget + + name + Layout1 + + + + margin + 0 + + + spacing + 6 + + + QPushButton + + name + defaultsPB + + + text + &Restore + + + + + name + Spacer1 + + + orientation + Horizontal + + + sizeType + Expanding + + + sizeHint + + 20 + 20 + + + + + QPushButton + + name + applyPB + + + text + &Apply + + + + QPushButton + + name + okPB + + + text + &OK + + + flat + false + + + default + false + + + + QPushButton + + name + cancelPB + + + text + &Cancel + + + default + true + + + + + + + + + defaultsPB + clicked() + ParagraphDlg + restore_adaptor() + + + applyPB + clicked() + ParagraphDlg + apply_adaptor() + + + cancelPB + clicked() + ParagraphDlg + cancel_adaptor() + + + okPB + clicked() + ParagraphDlg + ok_adaptor() + + + spacingAbove + activated(int) + ParagraphDlg + enable_spacingAbove(int) + + + spacingBelow + activated(int) + ParagraphDlg + enable_spacingBelow(int) + + + extraType + activated(int) + ParagraphDlg + enable_minipageOptions(int) + + + extraType + activated(int) + ParagraphDlg + enable_extraOptions(int) + + apply_adaptor() + cancel_adaptor() + enable_extraOptions(int) + enable_minipageOptions(int) + enable_spacingAbove(int) + enable_spacingBelow(int) + ok_adaptor() + restore_adaptor() + + + TabsParagraph + alignment + noIndent + spacingAbove + spacingAboveValue + spacingAbovePlus + spacingAboveMinus + spacingAboveKeep + spacingAboveValueUnit + spacingAbovePlusUnit + spacingAboveMinusUnit + spacingBelow + spacingBelowValue + spacingBelowPlus + spacingBelowMinus + spacingBelowKeep + spacingBelowValueUnit + spacingBelowPlusUnit + spacingBelowMinusUnit + labelWidth + lineAbove + lineBelow + pagebreakAbove + pagebreakBelow + extraType + extraWidth + extraUnit + minipageStart + minipageHfill + minipageValign + cancelPB + okPB + applyPB + defaultsPB + + diff --git a/src/frontends/qt2/paragraphdlgimpl.C b/src/frontends/qt2/paragraphdlgimpl.C new file mode 100644 index 0000000000..64f2affc14 --- /dev/null +++ b/src/frontends/qt2/paragraphdlgimpl.C @@ -0,0 +1,469 @@ +/** + * \file paragraphdlgimpl.C + * Copyright 2001 LyX Team + * see the file COPYING + * + * \author John Levon, moz@compsoc.man.ac.uk + * \author Edwin Leuven, leuven@fee.uva.nl + */ + +#include "paragraphdlg.h" + +#include +#include +#include + +#include "paragraphdlgimpl.h" +#include "FormParagraph.h" +#include "support/lstrings.h" +#include "debug.h" + +#include "qlineedit.h" +#include "qcombobox.h" +#include "qcheckbox.h" +#include "qpushbutton.h" +#include "qtabwidget.h" +#include "qlabel.h" +#include "qgroupbox.h" + + +ParagraphDlgImpl::ParagraphDlgImpl(FormParagraph *form, QWidget* parent, const char* name, bool modal, WFlags fl ) + : ParagraphDlg( parent, name, modal, fl ), form_(form) +{ + setCaption(name); +} + +ParagraphDlgImpl::~ParagraphDlgImpl() +{ + // no need to delete child widgets, Qt does it all for us +} + +void ParagraphDlgImpl::setReadOnly(bool readonly) +{ + TabsParagraph->setEnabled(!readonly); + okPB->setEnabled(!readonly); + applyPB->setEnabled(!readonly); + defaultsPB->setEnabled(!readonly); + cancelPB->setText(readonly ? _("&Close") : _("&Cancel")); +} + +void ParagraphDlgImpl::setLabelWidth(const char *text) +{ + // FIXME: should be cleverer here + if (!strcmp(_("Senseless with this layout!"),text)) { + listOptions->setEnabled(false); + labelWidth->setText(""); + } else { + listOptions->setEnabled(true); + labelWidth->setText(text); + } +} + +void ParagraphDlgImpl::setAlign(int type) +{ + int item=0; + switch (type) { + case LYX_ALIGN_BLOCK : item=0; break; + case LYX_ALIGN_LEFT : item=1; break; + case LYX_ALIGN_RIGHT : item=2; break; + case LYX_ALIGN_CENTER : item=3; break; + default: + item=0; + } + alignment->setCurrentItem(item); +} + +void ParagraphDlgImpl::setChecks(bool labove, bool lbelow, bool pabove, bool pbelow, bool noindent) +{ + lineAbove->setChecked(labove); + lineBelow->setChecked(lbelow); + pagebreakAbove->setChecked(pabove); + pagebreakBelow->setChecked(pbelow); + noIndent->setChecked(noindent); +} + +void ParagraphDlgImpl::setSpace(VSpace::vspace_kind kindabove, VSpace::vspace_kind kindbelow, bool keepabove, bool keepbelow) +{ + int item=0; + + switch (kindabove) { + case VSpace::NONE: item = 0; break; + case VSpace::DEFSKIP: item = 1; break; + case VSpace::SMALLSKIP: item = 2; break; + case VSpace::MEDSKIP: item = 3; break; + case VSpace::BIGSKIP: item = 4; break; + case VSpace::VFILL: item = 5; break; + case VSpace::LENGTH: item = 6; break; + } + spacingAbove->setCurrentItem(item); + + switch (kindbelow) { + case VSpace::NONE: item = 0; break; + case VSpace::DEFSKIP: item = 1; break; + case VSpace::SMALLSKIP: item = 2; break; + case VSpace::MEDSKIP: item = 3; break; + case VSpace::BIGSKIP: item = 4; break; + case VSpace::VFILL: item = 5; break; + case VSpace::LENGTH: item = 6; break; + } + spacingBelow->setCurrentItem(item); + + spacingAboveValue->setEnabled(kindabove == VSpace::LENGTH); + spacingAbovePlus->setEnabled(kindabove == VSpace::LENGTH); + spacingAboveMinus->setEnabled(kindabove == VSpace::LENGTH); + spacingBelowValue->setEnabled(kindbelow == VSpace::LENGTH); + spacingBelowPlus->setEnabled(kindbelow == VSpace::LENGTH); + spacingBelowMinus->setEnabled(kindbelow == VSpace::LENGTH); + + spacingAboveKeep->setChecked(keepabove); + spacingBelowKeep->setChecked(keepbelow); +} + +void ParagraphDlgImpl::setAboveLength(float val, float plus, float minus, + LyXLength::UNIT vunit, LyXLength::UNIT punit, LyXLength::UNIT munit) +{ + if (vunit==LyXLength::UNIT_NONE) { + spacingAboveValue->setText(""); + spacingAbovePlus->setText(""); + spacingAboveMinus->setText(""); + } else { + spacingAboveValue->setText(tostr(val).c_str()); + spacingAbovePlus->setText(tostr(plus).c_str()); + spacingAboveMinus->setText(tostr(minus).c_str()); + } + + spacingAboveValueUnit->setCurrentItem(getItem(vunit)); + spacingAbovePlusUnit->setCurrentItem(getItem(punit)); + spacingAboveMinusUnit->setCurrentItem(getItem(munit)); + +} + +void ParagraphDlgImpl::setBelowLength(float val, float plus, float minus, + LyXLength::UNIT vunit, LyXLength::UNIT punit, LyXLength::UNIT munit) +{ + if (vunit==LyXLength::UNIT_NONE) { + spacingBelowValue->setText(""); + spacingBelowPlus->setText(""); + spacingBelowMinus->setText(""); + } else { + spacingBelowValue->setText(tostr(val).c_str()); + spacingBelowPlus->setText(tostr(plus).c_str()); + spacingBelowMinus->setText(tostr(minus).c_str()); + } + + spacingBelowValueUnit->setCurrentItem(getItem(vunit)); + spacingBelowPlusUnit->setCurrentItem(getItem(punit)); + spacingBelowMinusUnit->setCurrentItem(getItem(munit)); +} + +void ParagraphDlgImpl::setExtra(float widthval, LyXLength::UNIT units, const string percent, int align, + bool hfill, bool startminipage, LyXParagraph::PEXTRA_TYPE type) +{ + if (type!=LyXParagraph::PEXTRA_NONE) { + lyxerr[Debug::GUI] << "percent : $" << percent << "$ widthval " << widthval << " unit " << long(units) << endl; + if (percent != "") { + extraWidth->setText(percent.c_str()); + extraUnit->setCurrentItem(11); + } else { + extraWidth->setText(tostr(widthval).c_str()); + extraUnit->setCurrentItem(getItem(units)); + } + } else + extraWidth->setText(""); + + switch (type) { + case LyXParagraph::PEXTRA_NONE: + extraType->setCurrentItem(0); + break; + case LyXParagraph::PEXTRA_MINIPAGE: + extraType->setCurrentItem(1); + enable_extraOptions(1); + enable_minipageOptions(1); + break; + case LyXParagraph::PEXTRA_FLOATFLT: + extraType->setCurrentItem(2); + enable_extraOptions(2); + break; + case LyXParagraph::PEXTRA_INDENT: + extraType->setCurrentItem(3); + enable_extraOptions(3); + break; + } + + switch (align) { + case LyXParagraph::MINIPAGE_ALIGN_TOP: + minipageValign->setCurrentItem(0); + break; + case LyXParagraph::MINIPAGE_ALIGN_MIDDLE: + minipageValign->setCurrentItem(1); + break; + case LyXParagraph::MINIPAGE_ALIGN_BOTTOM: + minipageValign->setCurrentItem(2); + break; + } + + minipageHfill->setChecked(hfill); + minipageStart->setChecked(startminipage); + +} + +LyXGlueLength ParagraphDlgImpl::getAboveLength() const +{ + LyXGlueLength len( + spacingAboveValue->text().toFloat(), + getLyXLength( spacingAboveValueUnit->currentItem() ), + spacingAbovePlus->text().toFloat(), + getLyXLength( spacingAbovePlusUnit->currentItem() ), + spacingAboveMinus->text().toFloat(), + getLyXLength( spacingAboveMinusUnit->currentItem() ) + ); + return len; +} + +LyXGlueLength ParagraphDlgImpl::getBelowLength() const +{ + LyXGlueLength len( + spacingBelowValue->text().toFloat(), + getLyXLength( spacingBelowValueUnit->currentItem() ), + spacingBelowPlus->text().toFloat(), + getLyXLength( spacingBelowPlusUnit->currentItem() ), + spacingBelowMinus->text().toFloat(), + getLyXLength( spacingBelowMinusUnit->currentItem() ) + ); + return len; +} + +LyXLength ParagraphDlgImpl::getExtraWidth() const +{ + if (extraUnit->currentItem()!=11) { + LyXLength len( + (extraWidth->text()).toDouble(), + getLyXLength(extraUnit->currentItem()) + ); + return len; + } else { + LyXLength len(0.0, LyXLength::UNIT_NONE); + return len; + } +} + +string ParagraphDlgImpl::getExtraWidthPercent() const +{ + double val = (extraWidth->text()).toDouble(); + if (val > 100.0) + val = 100.0; + if (val < 0.0) + val = 0.0; + return tostr(val); +} + + +const char* ParagraphDlgImpl::getLabelWidth() const { + return labelWidth->text(); +} + +LyXAlignment ParagraphDlgImpl::getAlign() const { + switch (alignment->currentItem()) { + case 0: return LYX_ALIGN_BLOCK; + case 1: return LYX_ALIGN_LEFT; + case 2: return LYX_ALIGN_RIGHT; + case 3: return LYX_ALIGN_CENTER; + default: return LYX_ALIGN_CENTER; + } +} + + +bool ParagraphDlgImpl::getAboveKeep() const { + return spacingAboveKeep->isChecked(); +} + +bool ParagraphDlgImpl::getBelowKeep() const { + return spacingBelowKeep->isChecked(); +} + +bool ParagraphDlgImpl::getLineAbove() const { + return lineAbove->isChecked(); +} + +bool ParagraphDlgImpl::getLineBelow() const { + return lineBelow->isChecked(); +} + +bool ParagraphDlgImpl::getPagebreakAbove() const { + return pagebreakAbove->isChecked(); +} + +bool ParagraphDlgImpl::getPagebreakBelow() const { + return pagebreakBelow->isChecked(); +} + +bool ParagraphDlgImpl::getNoIndent() const { + return noIndent->isChecked(); +} + +VSpace::vspace_kind ParagraphDlgImpl::getSpaceAboveKind() const { + return getSpaceKind(spacingAbove->currentItem()); +} + +VSpace::vspace_kind ParagraphDlgImpl::getSpaceBelowKind() const { + return getSpaceKind(spacingBelow->currentItem()); +} + +LyXParagraph::PEXTRA_TYPE ParagraphDlgImpl::getExtraType() const { + switch (extraType->currentItem()) { + case 0: return LyXParagraph::PEXTRA_NONE; + case 1: return LyXParagraph::PEXTRA_MINIPAGE; + case 2: return LyXParagraph::PEXTRA_FLOATFLT; + case 3: return LyXParagraph::PEXTRA_INDENT; + } + return LyXParagraph::PEXTRA_NONE; +} + +LyXParagraph::MINIPAGE_ALIGNMENT ParagraphDlgImpl::getExtraAlign() const { + switch (minipageValign->currentItem()) { + case 0: return LyXParagraph::MINIPAGE_ALIGN_TOP; + case 1: return LyXParagraph::MINIPAGE_ALIGN_MIDDLE; + case 2: return LyXParagraph::MINIPAGE_ALIGN_BOTTOM; + default: return LyXParagraph::MINIPAGE_ALIGN_BOTTOM; + } +} + +bool ParagraphDlgImpl::getHfillBetween() const { + return minipageHfill->isChecked(); +} + +bool ParagraphDlgImpl::getStartNewMinipage() const { + return minipageStart->isChecked(); +} + +VSpace::vspace_kind ParagraphDlgImpl::getSpaceKind(int val) const { + switch (val) { + case 0: return VSpace::NONE; + case 1: return VSpace::DEFSKIP; + case 2: return VSpace::SMALLSKIP; + case 3: return VSpace::MEDSKIP; + case 4: return VSpace::BIGSKIP; + case 5: return VSpace::VFILL; + case 6: return VSpace::LENGTH; + default: + lyxerr[Debug::GUI] << "Unknown kind combo entry " << val << std::endl; + } + return VSpace::NONE; +} + +LyXLength::UNIT ParagraphDlgImpl::getLyXLength(int val) const { + switch (val) { + case 0: return LyXLength::CM; + case 1: return LyXLength::IN; + case 2: return LyXLength::PT; + case 3: return LyXLength::MM; + case 4: return LyXLength::PC; + case 5: return LyXLength::EX; + case 6: return LyXLength::EM; + case 7: return LyXLength::SP; + case 8: return LyXLength::BP; + case 9: return LyXLength::DD; + case 10: return LyXLength::CC; + default: + lyxerr[Debug::GUI] << "Unknown kind combo entry " << val << std::endl; + } + return LyXLength::UNIT_NONE; +} + +int ParagraphDlgImpl::getItem(LyXLength::UNIT unit) const { + int item=0; + switch (unit) { + case LyXLength::CM: item = 0; break; + case LyXLength::IN: item = 1; break; + case LyXLength::PT: item = 2; break; + case LyXLength::MM: item = 3; break; + case LyXLength::PC: item = 4; break; + case LyXLength::EX: item = 5; break; + case LyXLength::EM: item = 6; break; + case LyXLength::SP: item = 7; break; + case LyXLength::BP: item = 8; break; + case LyXLength::DD: item = 9; break; + case LyXLength::CC: item = 10; break; + case LyXLength::MU: item = 0; break; + case LyXLength::UNIT_NONE: item = 0; break; + default: + lyxerr[Debug::GUI] << "Unknown unit " << long(unit) << endl; + } + return item; +} + +void ParagraphDlgImpl::enable_extraOptions(int item) +{ + bool enable = (item==0); + extraWidth->setEnabled(enable); + extraWidthL->setEnabled(enable); + extraUnit->setEnabled(enable); + extraUnitL->setEnabled(enable); +} + +void ParagraphDlgImpl::enable_minipageOptions(int item) +{ + minipageOptions->setEnabled( item==1 ); +} + +void ParagraphDlgImpl::enable_spacingAbove(int item) +{ + bool enable = (item==6); + spacingAboveValue->setEnabled(enable); + spacingAbovePlus->setEnabled(enable); + spacingAboveMinus->setEnabled(enable); + spacingAboveValueUnit->setEnabled(enable); + spacingAbovePlusUnit->setEnabled(enable); + spacingAboveMinusUnit->setEnabled(enable); + spacingAboveUnitsL->setEnabled(enable); + bool enablel = ( (item==6) || (item!=6 && spacingBelow->currentItem()==6) ); + spacingValueL->setEnabled(enablel); + spacingPlusL->setEnabled(enablel); + spacingMinusL->setEnabled(enablel); +} + +void ParagraphDlgImpl::enable_spacingBelow(int item) +{ + bool enable = (item==6); + spacingBelowValue->setEnabled(enable); + spacingBelowPlus->setEnabled(enable); + spacingBelowMinus->setEnabled(enable); + spacingBelowValueUnit->setEnabled(enable); + spacingBelowPlusUnit->setEnabled(enable); + spacingBelowMinusUnit->setEnabled(enable); + spacingBelowUnitsL->setEnabled(enable); + bool enablel = ( (item==6) || (item!=6 && spacingAbove->currentItem()==6) ); + spacingValueL->setEnabled(enablel); + spacingPlusL->setEnabled(enablel); + spacingMinusL->setEnabled(enablel); +} + +void ParagraphDlgImpl::closeEvent(QCloseEvent * e) +{ + form_->close(); + e->accept(); +} + +void ParagraphDlgImpl::apply_adaptor() +{ + form_->apply(); +} + +void ParagraphDlgImpl::cancel_adaptor() +{ + form_->close(); + hide(); +} + +void ParagraphDlgImpl::ok_adaptor() +{ + apply_adaptor(); + form_->close(); + hide(); +} + +void ParagraphDlgImpl::restore_adaptor() +{ + form_->update(); +} + diff --git a/src/frontends/qt2/paragraphdlgimpl.h b/src/frontends/qt2/paragraphdlgimpl.h new file mode 100644 index 0000000000..ab40e68fa9 --- /dev/null +++ b/src/frontends/qt2/paragraphdlgimpl.h @@ -0,0 +1,84 @@ +/** + * \file paragraphdlgimpl.h + * Copyright 2001 LyX Team + * see the file COPYING + * + * \author John Levon, moz@compsoc.man.ac.uk + * \author Edwin Leuven, leuven@fee.uva.nl + */ + +#ifndef PARAGRAPHDLGIMPL_H +#define PARAGRAPHDLGIMPL_H + +#include "paragraphdlg.h" +#include "vspace.h" +#include "lyxparagraph.h" + + +class FormParagraph; + +class ParagraphDlgImpl : public ParagraphDlg +{ + Q_OBJECT + + public: + + ParagraphDlgImpl(FormParagraph *form, QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 ); + ~ParagraphDlgImpl(); + + void setReadOnly(bool); + void setLabelWidth(const char *); + void setAlign(int); + void setChecks(bool, bool, bool, bool, bool); + void setSpace(VSpace::vspace_kind, VSpace::vspace_kind, bool, bool); + void setAboveLength(float, float, float, LyXGlueLength::UNIT, LyXGlueLength::UNIT, LyXGlueLength::UNIT); + void setBelowLength(float, float, float, LyXGlueLength::UNIT, LyXGlueLength::UNIT, LyXGlueLength::UNIT); + void setExtra(float, LyXGlueLength::UNIT, const string, int, bool, bool, LyXParagraph::PEXTRA_TYPE); + LyXGlueLength getAboveLength() const; + LyXGlueLength getBelowLength() const; + LyXLength getExtraWidth() const; + string getExtraWidthPercent() const; + const char * getLabelWidth() const; + LyXAlignment getAlign() const; + bool getAboveKeep() const; + bool getBelowKeep() const; + bool getLineAbove() const; + bool getLineBelow() const; + bool getPagebreakAbove() const; + bool getPagebreakBelow() const; + bool getNoIndent() const; + VSpace::vspace_kind getSpaceAboveKind() const; + VSpace::vspace_kind getSpaceBelowKind() const; + LyXParagraph::PEXTRA_TYPE getExtraType() const; + LyXParagraph::MINIPAGE_ALIGNMENT getExtraAlign() const; + bool getHfillBetween() const; + bool getStartNewMinipage() const; + + + protected: + + void closeEvent (QCloseEvent * e); + + + private: + + FormParagraph * form_; + VSpace::vspace_kind getSpaceKind(int val) const; + LyXLength::UNIT getLyXLength(int val) const; + int getItem(LyXLength::UNIT unit) const; + + + protected slots: + + void apply_adaptor(); + void cancel_adaptor(); + void enable_extraOptions(int); + void enable_minipageOptions(int); + void enable_spacingAbove(int); + void enable_spacingBelow(int); + void ok_adaptor(); + void restore_adaptor(); + +}; + +#endif // PARAGRAPHDLGIMPL_H diff --git a/src/frontends/qt2/printdlg.C b/src/frontends/qt2/printdlg.C new file mode 100644 index 0000000000..83f34ea656 --- /dev/null +++ b/src/frontends/qt2/printdlg.C @@ -0,0 +1,223 @@ +/**************************************************************************** +** Form implementation generated from reading ui file 'printdlg.ui' +** +** Created: Sun Feb 4 23:02:20 2001 +** by: The User Interface Compiler (uic) +** +** WARNING! All changes made in this file will be lost! +****************************************************************************/ +#include "printdlg.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * Constructs a PrintDlg which is a child of 'parent', with the + * name 'name' and widget flags set to 'f' + * + * The dialog will by default be modeless, unless you set 'modal' to + * TRUE to construct a modal dialog. + */ +PrintDlg::PrintDlg( QWidget* parent, const char* name, bool modal, WFlags fl ) + : QDialog( parent, name, modal, fl ) +{ + if ( !name ) + setName( "PrintDlg" ); + resize( 363, 342 ); + setCaption( tr( "Form1" ) ); + PrintDlgLayout = new QVBoxLayout( this ); + PrintDlgLayout->setSpacing( 6 ); + PrintDlgLayout->setMargin( 11 ); + + ButtonGroup1 = new QButtonGroup( this, "ButtonGroup1" ); + ButtonGroup1->setTitle( tr( "Print Destination" ) ); + ButtonGroup1->setColumnLayout(0, Qt::Vertical ); + ButtonGroup1->layout()->setSpacing( 0 ); + ButtonGroup1->layout()->setMargin( 0 ); + ButtonGroup1Layout = new QGridLayout( ButtonGroup1->layout() ); + ButtonGroup1Layout->setAlignment( Qt::AlignTop ); + ButtonGroup1Layout->setSpacing( 3 ); + ButtonGroup1Layout->setMargin( 11 ); + + toPrinter = new QRadioButton( ButtonGroup1, "toPrinter" ); + toPrinter->setText( tr( "&Printer" ) ); + toPrinter->setChecked( TRUE ); + + ButtonGroup1Layout->addWidget( toPrinter, 0, 0 ); + + toFile = new QRadioButton( ButtonGroup1, "toFile" ); + toFile->setText( tr( "&File" ) ); + + ButtonGroup1Layout->addWidget( toFile, 1, 0 ); + + printerName = new QLineEdit( ButtonGroup1, "printerName" ); + + ButtonGroup1Layout->addWidget( printerName, 0, 1 ); + + fileName = new QLineEdit( ButtonGroup1, "fileName" ); + fileName->setEnabled( FALSE ); + + ButtonGroup1Layout->addWidget( fileName, 1, 1 ); + + browsePB = new QPushButton( ButtonGroup1, "browsePB" ); + browsePB->setText( tr( "&Browse..." ) ); + browsePB->setEnabled( FALSE ); + + ButtonGroup1Layout->addWidget( browsePB, 1, 2 ); + PrintDlgLayout->addWidget( ButtonGroup1 ); + + ButtonGroup3 = new QButtonGroup( this, "ButtonGroup3" ); + ButtonGroup3->setTitle( tr( "Pages" ) ); + ButtonGroup3->setColumnLayout(0, Qt::Vertical ); + ButtonGroup3->layout()->setSpacing( 0 ); + ButtonGroup3->layout()->setMargin( 0 ); + ButtonGroup3Layout = new QGridLayout( ButtonGroup3->layout() ); + ButtonGroup3Layout->setAlignment( Qt::AlignTop ); + ButtonGroup3Layout->setSpacing( 3 ); + ButtonGroup3Layout->setMargin( 11 ); + + allPages = new QRadioButton( ButtonGroup3, "allPages" ); + allPages->setText( tr( "All" ) ); + allPages->setChecked( TRUE ); + + ButtonGroup3Layout->addWidget( allPages, 0, 0 ); + + oddPages = new QRadioButton( ButtonGroup3, "oddPages" ); + oddPages->setText( tr( "Odd" ) ); + + ButtonGroup3Layout->addWidget( oddPages, 1, 0 ); + + evenPages = new QRadioButton( ButtonGroup3, "evenPages" ); + evenPages->setText( tr( "Even" ) ); + + ButtonGroup3Layout->addWidget( evenPages, 2, 0 ); + + fromPageL = new QLabel( ButtonGroup3, "fromPageL" ); + fromPageL->setText( tr( "Starting range:" ) ); + fromPageL->setEnabled( FALSE ); + + ButtonGroup3Layout->addWidget( fromPageL, 3, 1 ); + + toPageL = new QLabel( ButtonGroup3, "toPageL" ); + toPageL->setText( tr( "Last page:" ) ); + toPageL->setEnabled( FALSE ); + + ButtonGroup3Layout->addWidget( toPageL, 3, 2 ); + + toPage = new QLineEdit( ButtonGroup3, "toPage" ); + toPage->setEnabled( FALSE ); + + ButtonGroup3Layout->addWidget( toPage, 4, 2 ); + + reverse = new QCheckBox( ButtonGroup3, "reverse" ); + reverse->setText( tr( "&Reverse order" ) ); + + ButtonGroup3Layout->addWidget( reverse, 0, 2 ); + + fromPage = new QLineEdit( ButtonGroup3, "fromPage" ); + fromPage->setEnabled( FALSE ); + + ButtonGroup3Layout->addWidget( fromPage, 4, 1 ); + + customPages = new QRadioButton( ButtonGroup3, "customPages" ); + customPages->setText( tr( "Pages:" ) ); + + ButtonGroup3Layout->addWidget( customPages, 4, 0 ); + PrintDlgLayout->addWidget( ButtonGroup3 ); + + GroupBox3 = new QGroupBox( this, "GroupBox3" ); + GroupBox3->setTitle( tr( "Copies" ) ); + GroupBox3->setColumnLayout(0, Qt::Vertical ); + GroupBox3->layout()->setSpacing( 0 ); + GroupBox3->layout()->setMargin( 0 ); + GroupBox3Layout = new QHBoxLayout( GroupBox3->layout() ); + GroupBox3Layout->setAlignment( Qt::AlignTop ); + GroupBox3Layout->setSpacing( 6 ); + GroupBox3Layout->setMargin( 11 ); + + copies = new QSpinBox( GroupBox3, "copies" ); + copies->setMinValue( 1 ); + copies->setValue( 1 ); + GroupBox3Layout->addWidget( copies ); + + collate = new QCheckBox( GroupBox3, "collate" ); + collate->setText( tr( "Co&llate" ) ); + collate->setEnabled( FALSE ); + GroupBox3Layout->addWidget( collate ); + QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum ); + GroupBox3Layout->addItem( spacer ); + PrintDlgLayout->addWidget( GroupBox3 ); + + Layout1 = new QHBoxLayout; + Layout1->setSpacing( 6 ); + Layout1->setMargin( 0 ); + QSpacerItem* spacer_2 = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum ); + Layout1->addItem( spacer_2 ); + + printPB = new QPushButton( this, "printPB" ); + printPB->setText( tr( "&Print" ) ); + Layout1->addWidget( printPB ); + + cancelPB = new QPushButton( this, "cancelPB" ); + cancelPB->setText( tr( "&Cancel" ) ); + cancelPB->setDefault( TRUE ); + Layout1->addWidget( cancelPB ); + PrintDlgLayout->addLayout( Layout1 ); + + // signals and slots connections + connect( toFile, SIGNAL( toggled(bool) ), browsePB, SLOT( setEnabled(bool) ) ); + connect( toFile, SIGNAL( toggled(bool) ), fileName, SLOT( setEnabled(bool) ) ); + connect( toFile, SIGNAL( toggled(bool) ), printerName, SLOT( setDisabled(bool) ) ); + connect( printPB, SIGNAL( clicked() ), this, SLOT( print() ) ); + connect( cancelPB, SIGNAL( clicked() ), this, SLOT( cancel_adaptor() ) ); + connect( copies, SIGNAL( valueChanged(int) ), this, SLOT( set_collate(int) ) ); + connect( browsePB, SIGNAL( clicked() ), this, SLOT( browse_file() ) ); + connect( customPages, SIGNAL( toggled(bool) ), fromPage, SLOT( setEnabled(bool) ) ); + connect( customPages, SIGNAL( toggled(bool) ), fromPageL, SLOT( setEnabled(bool) ) ); + connect( customPages, SIGNAL( toggled(bool) ), toPage, SLOT( setEnabled(bool) ) ); + connect( customPages, SIGNAL( toggled(bool) ), toPageL, SLOT( setEnabled(bool) ) ); +} + +/* + * Destroys the object and frees any allocated resources + */ +PrintDlg::~PrintDlg() +{ + // no need to delete child widgets, Qt does it all for us +} + +void PrintDlg::cancel_adaptor() +{ + qWarning( "PrintDlg::cancel_adaptor(): Not implemented yet!" ); +} + +void PrintDlg::enable_pagerange(int) +{ + qWarning( "PrintDlg::enable_pagerange(int): Not implemented yet!" ); +} + +void PrintDlg::browse_file() +{ + qWarning( "PrintDlg::browse_file(): Not implemented yet!" ); +} + +void PrintDlg::print() +{ + qWarning( "PrintDlg::print(): Not implemented yet!" ); +} + +void PrintDlg::set_collate(int) +{ + qWarning( "PrintDlg::set_collate(int): Not implemented yet!" ); +} + diff --git a/src/frontends/qt2/printdlg.h b/src/frontends/qt2/printdlg.h new file mode 100644 index 0000000000..d31d4e75d2 --- /dev/null +++ b/src/frontends/qt2/printdlg.h @@ -0,0 +1,71 @@ +/**************************************************************************** +** Form interface generated from reading ui file 'printdlg.ui' +** +** Created: Sun Feb 4 23:02:16 2001 +** by: The User Interface Compiler (uic) +** +** WARNING! All changes made in this file will be lost! +****************************************************************************/ +#ifndef PRINTDLG_H +#define PRINTDLG_H + +#include +#include +class QVBoxLayout; +class QHBoxLayout; +class QGridLayout; +class QButtonGroup; +class QCheckBox; +class QGroupBox; +class QLabel; +class QLineEdit; +class QPushButton; +class QRadioButton; +class QSpinBox; + +class PrintDlg : public QDialog +{ + Q_OBJECT + +public: + PrintDlg( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 ); + ~PrintDlg(); + + QButtonGroup* ButtonGroup1; + QRadioButton* toPrinter; + QRadioButton* toFile; + QLineEdit* printerName; + QLineEdit* fileName; + QPushButton* browsePB; + QButtonGroup* ButtonGroup3; + QRadioButton* allPages; + QRadioButton* oddPages; + QRadioButton* evenPages; + QLabel* fromPageL; + QLabel* toPageL; + QLineEdit* toPage; + QCheckBox* reverse; + QLineEdit* fromPage; + QRadioButton* customPages; + QGroupBox* GroupBox3; + QSpinBox* copies; + QCheckBox* collate; + QPushButton* printPB; + QPushButton* cancelPB; + +protected slots: + virtual void cancel_adaptor(); + virtual void enable_pagerange(int); + virtual void browse_file(); + virtual void print(); + virtual void set_collate(int); + +protected: + QVBoxLayout* PrintDlgLayout; + QGridLayout* ButtonGroup1Layout; + QGridLayout* ButtonGroup3Layout; + QHBoxLayout* GroupBox3Layout; + QHBoxLayout* Layout1; +}; + +#endif // PRINTDLG_H diff --git a/src/frontends/qt2/printdlg.ui b/src/frontends/qt2/printdlg.ui new file mode 100644 index 0000000000..b68743bd62 --- /dev/null +++ b/src/frontends/qt2/printdlg.ui @@ -0,0 +1,460 @@ + +PrintDlg + + QDialog + + name + PrintDlg + + + geometry + + 0 + 0 + 363 + 342 + + + + caption + Form1 + + + + margin + 11 + + + spacing + 6 + + + QButtonGroup + + name + ButtonGroup1 + + + title + Print Destination + + + layoutSpacing + + + + margin + 11 + + + spacing + 3 + + + QRadioButton + + name + toPrinter + + + text + &Printer + + + checked + true + + + + QRadioButton + + name + toFile + + + text + &File + + + + QLineEdit + + name + printerName + + + + QLineEdit + + name + fileName + + + enabled + false + + + + QPushButton + + name + browsePB + + + text + &Browse... + + + enabled + false + + + + + + QButtonGroup + + name + ButtonGroup3 + + + title + Pages + + + layoutSpacing + + + + margin + 11 + + + spacing + 3 + + + QRadioButton + + name + allPages + + + text + All + + + checked + true + + + + QRadioButton + + name + oddPages + + + text + Odd + + + + QRadioButton + + name + evenPages + + + text + Even + + + + QLabel + + name + fromPageL + + + text + Starting range: + + + enabled + false + + + + QLabel + + name + toPageL + + + text + Last page: + + + enabled + false + + + + QLineEdit + + name + toPage + + + enabled + false + + + + QCheckBox + + name + reverse + + + text + &Reverse order + + + + QLineEdit + + name + fromPage + + + enabled + false + + + + QRadioButton + + name + customPages + + + text + Pages: + + + + + + QGroupBox + + name + GroupBox3 + + + title + Copies + + + + margin + 11 + + + spacing + 6 + + + QSpinBox + + name + copies + + + minValue + 1 + + + value + 1 + + + + QCheckBox + + name + collate + + + text + Co&llate + + + enabled + false + + + + + name + Spacer1_2 + + + orientation + Horizontal + + + sizeType + Expanding + + + sizeHint + + 20 + 20 + + + + + + + QLayoutWidget + + name + Layout1 + + + + margin + 0 + + + spacing + 6 + + + + name + Spacer1 + + + orientation + Horizontal + + + sizeType + Expanding + + + sizeHint + + 20 + 20 + + + + + QPushButton + + name + printPB + + + text + &Print + + + + QPushButton + + name + cancelPB + + + text + &Cancel + + + default + true + + + + + + + + + toFile + toggled(bool) + browsePB + setEnabled(bool) + + + toFile + toggled(bool) + fileName + setEnabled(bool) + + + toFile + toggled(bool) + printerName + setDisabled(bool) + + + printPB + clicked() + PrintDlg + print() + + + cancelPB + clicked() + PrintDlg + cancel_adaptor() + + + copies + valueChanged(int) + PrintDlg + set_collate(int) + + + browsePB + clicked() + PrintDlg + browse_file() + + + customPages + toggled(bool) + fromPage + setEnabled(bool) + + + customPages + toggled(bool) + fromPageL + setEnabled(bool) + + + customPages + toggled(bool) + toPage + setEnabled(bool) + + + customPages + toggled(bool) + toPageL + setEnabled(bool) + + cancel_adaptor() + enable_pagerange(int) + browse_file() + print() + set_collate(int) + + diff --git a/src/frontends/qt2/printdlgimpl.C b/src/frontends/qt2/printdlgimpl.C new file mode 100644 index 0000000000..7bbf09ab4a --- /dev/null +++ b/src/frontends/qt2/printdlgimpl.C @@ -0,0 +1,161 @@ +/** + * \file printdlgimpl.C + * Copyright 2001 LyX Team + * see the file COPYING + * + * \author John Levon, moz@compsoc.man.ac.uk + * \author Edwin Leuven, leuven@fee.uva.nl + */ + +#include "qfiledialog.h" +#include "qcheckbox.h" +#include "qlabel.h" +#include "qlineedit.h" +#include "qpushbutton.h" +#include "qradiobutton.h" +#include "qspinbox.h" + +#include "printdlgimpl.h" +#include "FormPrint.h" + +#include + +#include "support/filetools.h" +#include "support/lstrings.h" +#include "lyxrc.h" +#include "PrinterParams.h" + +#include +#include + + +PrintDlgImpl::PrintDlgImpl( FormPrint *f, QWidget* parent, const char* name, bool modal, WFlags fl ) + : PrintDlg( parent, name, modal, fl ), form_(f) +{ + setCaption(name); +} + +PrintDlgImpl::~PrintDlgImpl() +{ + // no need to delete child widgets, Qt does it all for us +} + +const char * PrintDlgImpl::getFrom() { + return fromPage->text(); +} + +const char * PrintDlgImpl::getTo() { + return toPage->text(); +} + +PrinterParams::Target PrintDlgImpl::getTarget() { + if (toPrinter->isChecked()) + return PrinterParams::PRINTER; + else + return PrinterParams::FILE; +} + + +const char * PrintDlgImpl::getPrinter() { + return printerName->text(); +} + +const char * PrintDlgImpl::getFile() { + return fileName->text(); +} + +PrinterParams::WhichPages PrintDlgImpl::getWhichPages() { + if (oddPages->isChecked()) + return PrinterParams::ODD; + else if (evenPages->isChecked()) + return PrinterParams::EVEN; + else + return PrinterParams::ALL; +} + +bool PrintDlgImpl::getReverse() { + return reverse->isChecked(); +} + +bool PrintDlgImpl::getSort() { + return collate->isChecked(); +} + +const char * PrintDlgImpl::getCount() { + return copies->text(); +} + +void PrintDlgImpl::setTarget(PrinterParams::Target t) { + toPrinter->setChecked(t==PrinterParams::PRINTER); + toFile->setChecked(t!=PrinterParams::PRINTER); +} + +void PrintDlgImpl::setPrinter(const char * name) { + printerName->setText(name); +} + +void PrintDlgImpl::setFile(const char * name) { + fileName->setText(name); +} + +void PrintDlgImpl::setWhichPages(PrinterParams::WhichPages wp) { + switch (wp) { + case PrinterParams::ALL: + allPages->setChecked(true); + break; + case PrinterParams::EVEN: + evenPages->setChecked(true); + break; + case PrinterParams::ODD: + oddPages->setChecked(true); + break; + } +} + +void PrintDlgImpl::setReverse(bool on) { + reverse->setChecked(on); +} + +void PrintDlgImpl::setSort(bool on) { + collate->setChecked(on); +} + +void PrintDlgImpl::setCount(int num) { + copies->setValue(num); + collate->setEnabled(num > 1); +} + +void PrintDlgImpl::setFrom(const char * text) { + fromPage->setText(text); +} + +void PrintDlgImpl::setTo(const char * text) { + toPage->setText(text); +} + +void PrintDlgImpl::browse_file() +{ + QString d( OnlyPath(tostr(fileName->text())).c_str() ); + QString s( QFileDialog::getOpenFileName( d, "PostScript Files (*.ps)", this ) ); + if (!s.isNull()) + fileName->setText(s); +} + +void PrintDlgImpl::print() +{ + form_->print(); + form_->close(); + hide(); +} + +void PrintDlgImpl::cancel_adaptor() +{ + form_->close(); + hide(); +} + +void PrintDlgImpl::set_collate(int copies) +{ + collate->setEnabled(copies > 1); +} + diff --git a/src/frontends/qt2/printdlgimpl.h b/src/frontends/qt2/printdlgimpl.h new file mode 100644 index 0000000000..1ab016d1a7 --- /dev/null +++ b/src/frontends/qt2/printdlgimpl.h @@ -0,0 +1,57 @@ +/** + * \file printdlgimpl.h + * Copyright 2001 LyX Team + * see the file COPYING + * + * \author John Levon, moz@compsoc.man.ac.uk + * \author Edwin Leuven, leuven@fee.uva.nl + */ + +#ifndef PRINTDLGIMPL_H +#define PRINTDLGIMPL_H +#include "printdlg.h" +#include "lyxrc.h" +#include "PrinterParams.h" + +class FormPrint; + +class PrintDlgImpl : public PrintDlg +{ + Q_OBJECT + + public: + PrintDlgImpl( FormPrint *f, QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 ); + ~PrintDlgImpl(); + + const char *getFrom(); + const char *getTo(); + const char *getPrinter(); + const char *getFile(); + const char *getCount(); + PrinterParams::Target getTarget(); + PrinterParams::WhichPages getWhichPages(); + bool getReverse(); + bool getSort(); + void setFrom(const char *); + void setTo(const char *); + void setPrinter(const char *); + void setFile(const char *); + void setCount(int); + void setTarget(PrinterParams::Target); + void setWhichPages(PrinterParams::WhichPages); + void setReverse(bool); + void setSort(bool); + + + protected slots: + void cancel_adaptor(); + void browse_file(); + void print(); + void set_collate(int); + + private: + FormPrint * form_; + +}; + +#endif // PRINTDLGIMPL_H diff --git a/src/frontends/qt2/tabularcreatedlg.C b/src/frontends/qt2/tabularcreatedlg.C new file mode 100644 index 0000000000..0c4f864e4c --- /dev/null +++ b/src/frontends/qt2/tabularcreatedlg.C @@ -0,0 +1,108 @@ +/**************************************************************************** +** Form implementation generated from reading ui file 'tabularcreatedlg.ui' +** +** Created: Tue Feb 6 01:41:28 2001 +** by: The User Interface Compiler (uic) +** +** WARNING! All changes made in this file will be lost! +****************************************************************************/ +#include "tabularcreatedlg.h" + +#include +#include +#include +#include "emptytable.h" +#include +#include +#include +#include + +/* + * Constructs a InsertTabularDlg which is a child of 'parent', with the + * name 'name' and widget flags set to 'f' + * + * The dialog will by default be modeless, unless you set 'modal' to + * TRUE to construct a modal dialog. + */ +InsertTabularDlg::InsertTabularDlg( QWidget* parent, const char* name, bool modal, WFlags fl ) + : QDialog( parent, name, modal, fl ) +{ + if ( !name ) + setName( "InsertTabularDlg" ); + resize( 245, 235 ); + setSizeGripEnabled( TRUE ); + setCaption( tr( "Form1" ) ); + InsertTabularDlgLayout = new QVBoxLayout( this ); + InsertTabularDlgLayout->setSpacing( 6 ); + InsertTabularDlgLayout->setMargin( 11 ); + + Layout1 = new QHBoxLayout; + Layout1->setSpacing( 6 ); + Layout1->setMargin( 0 ); + + rowsL = new QLabel( this, "rowsL" ); + rowsL->setText( tr( "Rows:" ) ); + Layout1->addWidget( rowsL ); + + rows = new QSpinBox( this, "rows" ); + rows->setMinValue( 1 ); + rows->setMaxValue( 511 ); + Layout1->addWidget( rows ); + + columnsL = new QLabel( this, "columnsL" ); + columnsL->setText( tr( "Columns:" ) ); + Layout1->addWidget( columnsL ); + + columns = new QSpinBox( this, "columns" ); + columns->setMinValue( 1 ); + columns->setMaxValue( 511 ); + Layout1->addWidget( columns ); + QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum ); + Layout1->addItem( spacer ); + InsertTabularDlgLayout->addLayout( Layout1 ); + + table = new EmptyTable( this, "table" ); + InsertTabularDlgLayout->addWidget( table ); + + Layout2 = new QHBoxLayout; + Layout2->setSpacing( 6 ); + Layout2->setMargin( 0 ); + QSpacerItem* spacer_2 = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum ); + Layout2->addItem( spacer_2 ); + + insertPB = new QPushButton( this, "insertPB" ); + insertPB->setText( tr( "&Insert" ) ); + Layout2->addWidget( insertPB ); + + cancelPB = new QPushButton( this, "cancelPB" ); + cancelPB->setText( tr( "&Cancel" ) ); + Layout2->addWidget( cancelPB ); + InsertTabularDlgLayout->addLayout( Layout2 ); + + // signals and slots connections + connect( table, SIGNAL( rowsChanged(int) ), rows, SLOT( setValue(int) ) ); + connect( table, SIGNAL( colsChanged(int) ), columns, SLOT( setValue(int) ) ); + connect( rows, SIGNAL( valueChanged(int) ), table, SLOT( setNumberRows(int) ) ); + connect( columns, SIGNAL( valueChanged(int) ), table, SLOT( setNumberColumns(int) ) ); + connect( insertPB, SIGNAL( clicked() ), this, SLOT( insert_tabular() ) ); + connect( cancelPB, SIGNAL( clicked() ), this, SLOT( cancel_adaptor() ) ); +} + +/* + * Destroys the object and frees any allocated resources + */ +InsertTabularDlg::~InsertTabularDlg() +{ + // no need to delete child widgets, Qt does it all for us +} + +void InsertTabularDlg::insert_tabular() +{ + qWarning( "InsertTabularDlg::insert_tabular(): Not implemented yet!" ); +} + +void InsertTabularDlg::cancel_adaptor() +{ + qWarning( "InsertTabularDlg::cancel_adaptor(): Not implemented yet!" ); +} + diff --git a/src/frontends/qt2/tabularcreatedlg.h b/src/frontends/qt2/tabularcreatedlg.h new file mode 100644 index 0000000000..b4046f5b4e --- /dev/null +++ b/src/frontends/qt2/tabularcreatedlg.h @@ -0,0 +1,48 @@ +/**************************************************************************** +** Form interface generated from reading ui file 'tabularcreatedlg.ui' +** +** Created: Tue Feb 6 01:41:06 2001 +** by: The User Interface Compiler (uic) +** +** WARNING! All changes made in this file will be lost! +****************************************************************************/ +#ifndef INSERTTABULARDLG_H +#define INSERTTABULARDLG_H + +#include +#include +class QVBoxLayout; +class QHBoxLayout; +class QGridLayout; +class EmptyTable; +class QLabel; +class QPushButton; +class QSpinBox; + +class InsertTabularDlg : public QDialog +{ + Q_OBJECT + +public: + InsertTabularDlg( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 ); + ~InsertTabularDlg(); + + QLabel* rowsL; + QSpinBox* rows; + QLabel* columnsL; + QSpinBox* columns; + EmptyTable* table; + QPushButton* insertPB; + QPushButton* cancelPB; + +protected slots: + virtual void insert_tabular(); + virtual void cancel_adaptor(); + +protected: + QVBoxLayout* InsertTabularDlgLayout; + QHBoxLayout* Layout1; + QHBoxLayout* Layout2; +}; + +#endif // INSERTTABULARDLG_H diff --git a/src/frontends/qt2/tabularcreatedlg.ui b/src/frontends/qt2/tabularcreatedlg.ui new file mode 100644 index 0000000000..f9a02e4f30 --- /dev/null +++ b/src/frontends/qt2/tabularcreatedlg.ui @@ -0,0 +1,260 @@ + +InsertTabularDlg + + QDialog + + name + InsertTabularDlg + + + geometry + + 0 + 0 + 245 + 235 + + + + sizeGripEnabled + true + + + caption + Form1 + + + + margin + 11 + + + spacing + 6 + + + QLayoutWidget + + name + Layout1 + + + + margin + 0 + + + spacing + 6 + + + QLabel + + name + rowsL + + + text + Rows: + + + + QSpinBox + + name + rows + + + minValue + 1 + + + maxValue + 511 + + + + QLabel + + name + columnsL + + + text + Columns: + + + + QSpinBox + + name + columns + + + minValue + 1 + + + maxValue + 511 + + + + + name + Spacer1 + + + orientation + Horizontal + + + sizeType + Expanding + + + sizeHint + + 20 + 20 + + + + + + + EmptyTable + + name + table + + + + QLayoutWidget + + name + Layout2 + + + + margin + 0 + + + spacing + 6 + + + + name + Spacer2 + + + orientation + Horizontal + + + sizeType + Expanding + + + sizeHint + + 20 + 20 + + + + + QPushButton + + name + insertPB + + + text + &Insert + + + + QPushButton + + name + cancelPB + + + text + &Cancel + + + + + + + + + EmptyTable +
emptytable.h
+ + -1 + -1 + + 0 + + 5 + 5 + + image0 + colsChanged(int) + rowsChanged(int) + setNumberColumns(int) + setNumberRows(int) +
+
+ + + image0 + 789c6dd2c10ac2300c00d07bbf2234b7229d1be245fc04c5a3201e4615f430059d0711ff5ddb2e6bb236ec90eed134cb5a19d8ef36602af5ecdbfeeac05dda0798d3abebde87e3faa374d3807fa0d633a52d38d8de6f679fe33fc776e196f53cd010188256a3600a292882096246517815ca99884606e18044a3a40d91824820924265a7923a2e8bcd05f33db1173e002913175f2a6be6d3294871a2d95fa00e8a94ee017b69d339d90df1e77c57ea072ede6758 + + + + + table + rowsChanged(int) + rows + setValue(int) + + + table + colsChanged(int) + columns + setValue(int) + + + rows + valueChanged(int) + table + setNumberRows(int) + + + columns + valueChanged(int) + table + setNumberColumns(int) + + + insertPB + clicked() + InsertTabularDlg + insert_tabular() + + + cancelPB + clicked() + InsertTabularDlg + cancel_adaptor() + + insert_tabular() + cancel_adaptor() + +
diff --git a/src/frontends/qt2/tabularcreatedlgimpl.C b/src/frontends/qt2/tabularcreatedlgimpl.C new file mode 100644 index 0000000000..b3b9ec63fe --- /dev/null +++ b/src/frontends/qt2/tabularcreatedlgimpl.C @@ -0,0 +1,66 @@ +/** + * \file tabularcreatedlgimpl.C + * Copyright 2001 LyX Team + * see the file COPYING + * + * \author John Levon, moz@compsoc.man.ac.uk + * \author Edwin Leuven, leuven@fee.uva.nl + */ + +#include "tabularcreatedlg.h" + +#include +#include +#include + +#include "tabularcreatedlgimpl.h" +#include "FormTabularCreate.h" +#include "support/lstrings.h" + +#include "qpushbutton.h" +#include "qspinbox.h" +#include "emptytable.h" +#include "qpainter.h" +#include "qtableview.h" +#include "qtooltip.h" + +TabularCreateDlgImpl::TabularCreateDlgImpl(FormTabularCreate* form, QWidget* parent, const char* name, bool modal, WFlags fl ) + : InsertTabularDlg( parent, name, modal, fl ), form_(form) +{ + setCaption(name); + table->setMinimumSize(100,100); + rows->setValue(5); + columns->setValue(5); + QToolTip::add(table, _("Drag with left mouse button to resize")); +} + +TabularCreateDlgImpl::~TabularCreateDlgImpl() +{ + // no need to delete child widgets, Qt does it all for us +} + +void TabularCreateDlgImpl::insert_tabular() +{ + form_->apply((rows->text()).toInt(), (columns->text()).toInt()); + form_->close(); + hide(); +} + +void TabularCreateDlgImpl::cancel_adaptor() +{ + form_->close(); + hide(); +} + +void TabularCreateDlgImpl::colsChanged(int nr_cols) +{ + if (nr_cols != (columns->text()).toInt()) + columns->setValue(nr_cols); +} + +void TabularCreateDlgImpl::rowsChanged(int nr_rows) +{ + if (nr_rows != (rows->text()).toInt()) + rows->setValue(nr_rows); +} + diff --git a/src/frontends/qt2/tabularcreatedlgimpl.h b/src/frontends/qt2/tabularcreatedlgimpl.h new file mode 100644 index 0000000000..3287622350 --- /dev/null +++ b/src/frontends/qt2/tabularcreatedlgimpl.h @@ -0,0 +1,34 @@ +/** + * \file tabularcreatedlgimpl.h + * Copyright 2001 LyX Team + * see the file COPYING + * + * \author John Levon, moz@compsoc.man.ac.uk + * \author Edwin Leuven, leuven@fee.uva.nl + */ + +#ifndef TABULARCREATEDLGIMPL_H +#define TABULARCREATEDLGIMPL_H +#include "tabularcreatedlg.h" + +class FormTabularCreate; + +class TabularCreateDlgImpl : public InsertTabularDlg +{ + Q_OBJECT + +public: + TabularCreateDlgImpl(FormTabularCreate *form, QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 ); + ~TabularCreateDlgImpl(); + +protected slots: + void insert_tabular(); + void cancel_adaptor(); + virtual void colsChanged(int); + virtual void rowsChanged(int); + +private: + FormTabularCreate * form_; +}; + +#endif // TABULARCREATEDLGIMPL_H