+2002-10-20 Lars Gullik Bjønnes <larsbj@gullik.net>
+
+ * LyXKeySym.h: move operator== out of class. Separate
+ implementations for xforms and qt.
+
+ * Liason.[Ch]: get rid of setMinibuffer, where used call message
+ directly through LyXView::message instead.
+
2002-09-25 Angus Leeming <leeming@lyx.org>
* Dialogs.C: doxygen fix.
command += tostr(pp.count_copies);
command += ' ';
}
-
+
if (pp.reverse_order) {
command += lyxrc.print_reverse_flag + ' ';
}
return res == 0;
}
-
-void setMinibuffer(LyXView * lv, string const & msg)
-{
- lyx::Assert(lv);
- lv->message(msg);
-}
-
} // namespace Liason
PrinterParams getPrinterParams(Buffer *);
/// print the current buffer
bool printBuffer(Buffer *, PrinterParams const &);
- /// set the minibuffer
- void setMinibuffer(LyXView *, string const & msg);
//@}
} // namespace Liason
* This relies on user to use the right encoding.
*/
virtual char getISOEncoded() const = 0;
-
- /**
- * We need to be able to equality compare these for the
- * sake of the keymap business.
- */
- virtual bool operator==(LyXKeySym const & k) const = 0;
};
+
+/**
+ * We need to be able to equality compare these for the
+ * sake of the keymap business.
+ */
+bool operator==(LyXKeySym const & k1, LyXKeySym const & k1);
+
typedef boost::shared_ptr<LyXKeySym> LyXKeySymPtr;
#endif
+2002-10-20 Lars Gullik Bjønnes <larsbj@gullik.net>
+
+ * ControlCharacter.C (apply): setMinibuffer change
+ * ControlDocument.C (apply): ditto
+ (classApply): ditto
+ * ControlThesaurus.C (replace): ditto
+ * ControlSearch.C (find): ditto
+ (replace): ditto
+ * ControlPreamble.C (apply): ditto
+ * ControlParagraph.C (apply): ditto
2002-10-14 André Pönitz <poenitz@gmx.net>
* ControlDocument.h:
* ControlDocument.C:
* Makefile.am: New document parameters controller
-
+
2002-09-24 Lars Gullik Bjønnes <larsbj@gullik.net>
* Makefile.am (INCLUDES): loose SIGC_INCLUDES
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author Angus Leeming
+ * \author Angus Leeming
*
* Full author contact details are available in file CREDITS
*/
#include "gettext.h"
#include "language.h"
-#include "frontends/Liason.h"
#include "frontends/LyXView.h"
-using Liason::setMinibuffer;
-
ControlCharacter::ControlCharacter(LyXView & lv, Dialogs & d)
: ControlDialogBD(lv, d),
toggleAndShow(bufferview(), *(font_.get()), toggleall_);
lv_.view_state_changed();
buffer()->markDirty();
- setMinibuffer(&lv_, _("Character set"));
+ lv_.message(_("Character set"));
}
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author Edwin Leuven
+ * \author Edwin Leuven
*
* Full author contact details are available in file CREDITS
*/
#include "lyxtextclasslist.h"
#include "CutAndPaste.h"
-#include "frontends/Liason.h"
#include "frontends/LyXView.h"
#include "frontends/Alert.h"
#include "support/lstrings.h"
#include "support/filetools.h"
-using Liason::setMinibuffer;
-
ControlDocument::ControlDocument(LyXView & lv, Dialogs & d)
: ControlDialogBD(lv, d), bp_(0)
return *bp_;
}
+
LyXTextClass ControlDocument::textClass()
{
return textclasslist[bp_->textclass];
}
-
+
void ControlDocument::apply()
{
if (!bufferIsAvailable())
return;
-
+
setLanguage();
- bool succes = classApply();
- lv_.view()->redoCurrentBuffer();
-
+
+ // FIXME: do we need to use return value from classApply() here? (Lgb)
+ classApply();
+ lv_.view()->redoCurrentBuffer();
+
view().apply();
buffer()->params = *bp_;
buffer()->markDirty();
-
- Liason::setMinibuffer(&lv_, _("Document Settings Applied"));
+
+ lv_.message(_("Document Settings Applied"));
}
{
if (!bp_.get())
bp_.reset(new BufferParams());
-
+
/// Set the buffer parameters
*bp_ = buffer()->params;
}
{
Language const * oldL = buffer()->params.language;
Language const * newL = bp_->language;
-
+
if (oldL != newL
&& oldL->RightToLeft() == newL->RightToLeft()
&& !lv_.buffer()->isMultiLingual())
bool ControlDocument::classApply()
{
- BufferParams ¶ms = lv_.buffer()->params;
+ BufferParams & params = lv_.buffer()->params;
unsigned int const old_class = bp_->textclass;
// exit if nothing changes
if (params.textclass == old_class)
_("Reverting to original document class."));
return false;
}
-
+
// successfully loaded
- Liason::setMinibuffer(&lv_,
- _("Converting document to new document class..."));
+ lv_.message(_("Converting document to new document class..."));
int ret = CutAndPaste::SwitchLayoutsBetweenClasses(
old_class, params.textclass,
&*(lv_.buffer()->paragraphs.begin()),
void ControlDocument::saveAsDefault()
{
lv_.buffer()->params.preamble = bp_->preamble;
-
+
string const fname = AddName(AddPath(user_lyxdir, "templates/"),
"defaults.lyx");
Buffer defaults(fname);
Paragraph * par = new Paragraph;
par->layout(params().getLyXTextClass().defaultLayout());
defaults.paragraphs.set(par);
-
+
defaults.writeFile(defaults.fileName());
}
public:
///
ControlDocument(LyXView &, Dialogs &);
+ ///
~ControlDocument();
/// show latex preamble
void showPreamble();
BufferParams & params();
///
void saveAsDefault();
- ///
- bool classApply();
-
+ ///
+ bool classApply();
private:
/// apply settings
void apply();
};
#endif // CONTROLDOCUMENT_H
-
-
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author Edwin Leuven
+ * \author Edwin Leuven
*
* Full author contact details are available in file CREDITS
*/
#include "lyxtext.h"
#include "ParagraphParameters.h"
-#include "frontends/Liason.h"
+#include "frontends/LyXView.h"
#include "support/LAssert.h"
-using Liason::setMinibuffer;
-
ControlParagraph::ControlParagraph(LyXView & lv, Dialogs & d)
: ControlDialogBD(lv, d), pp_(0), ininset_(false)
buffer()->markDirty();
- setMinibuffer(&lv_, _("Paragraph layout set"));
+ lv_.message(_("Paragraph layout set"));
}
#include "buffer.h"
#include "gettext.h"
-#include "frontends/Liason.h"
+#include "frontends/LyXView.h"
ControlPreamble::ControlPreamble(LyXView & lv, Dialogs & d)
buffer()->params.preamble = params();
buffer()->markDirty();
- Liason::setMinibuffer(&lv_, _("LaTeX preamble set"));
+ lv_.message(_("LaTeX preamble set"));
}
#include "gettext.h"
#include "lyxfind.h"
-#include "frontends/Liason.h"
+#include "frontends/LyXView.h"
#include "support/lstrings.h"
-using Liason::setMinibuffer;
-
ControlSearch::ControlSearch(LyXView & lv, Dialogs & d)
: ControlDialogBD(lv, d)
matchword);
if (!found)
- setMinibuffer(&lv_, _("String not found!"));
+ lv_.message(_("String not found!"));
}
matchword, all, once);
if (replace_count == 0) {
- setMinibuffer(&lv_, _("String not found!"));
+ lv_.message(_("String not found!"));
} else {
if (replace_count == 1) {
- setMinibuffer(&lv_, _("String has been replaced."));
+ lv_.message(_("String has been replaced."));
} else {
string str = tostr(replace_count);
str += _(" strings have been replaced.");
- setMinibuffer(&lv_, str.c_str());
+ lv_.message(str.c_str());
}
}
}
#include "gettext.h"
#include "lyxfind.h"
-#include "frontends/Liason.h"
-
-
-using Liason::setMinibuffer;
+#include "frontends/LyXView.h"
ControlThesaurus::ControlThesaurus(LyXView & lv, Dialogs & d)
oldstr_ = newstr;
if (replace_count == 0)
- setMinibuffer(&lv_, _("String not found!"));
+ lv_.message(_("String not found!"));
else
- setMinibuffer(&lv_, _("String has been replaced."));
+ lv_.message(_("String has been replaced."));
}
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
using std::pair;
using std::make_pair;
+
void alert_pimpl(string const & s1, string const & s2, string const & s3)
{
- QMessageBox::warning(0, "LyX", (s1 + "\n" + "\n" + s2 + "\n" + s3).c_str());
+ QMessageBox::warning(0, "LyX",
+ (s1 + "\n" + "\n" + s2 + "\n" + s3).c_str());
}
}
-pair<bool, string> const askForText_pimpl(string const & msg, string const & dflt)
+pair<bool, string> const
+askForText_pimpl(string const & msg, string const & dflt)
{
string title = _("LyX: ");
title += msg;
#include "ui/BulletsModuleBase.h"
#include "QBrowseBox.h"
-BulletsModule::BulletsModule( QWidget* parent, const char* name, WFlags fl )
+
+BulletsModule::BulletsModule(QWidget * parent, char const * name, WFlags fl)
: BulletsModuleBase(parent, name, fl)
{
- standard = new QBrowseBox(6,6);
- standard->insertItem(QPixmap("standard.xpm"));
-
- maths = new QBrowseBox(6,6);
- maths->insertItem(QPixmap("amssymb.xpm"));
-
- QPopupMenu * pm = new QPopupMenu();
-
- QPopupMenu * pm1 = new QPopupMenu(pm);
- pm1->insertItem(standard);
-
- QPopupMenu * pm2 = new QPopupMenu(pm);
- pm2->insertItem(maths);
-
-
- pm->insertItem("Standard",pm1);
- pm->insertItem("Maths",pm2);
- pm->insertItem("Ding 1");
- pm->insertItem("Ding 2");
- pm->insertItem("Ding 3");
- pm->insertItem("Ding 4");
-
- setbullet1TB->setPopup(pm);
-
- connect( standard, SIGNAL( selected(int,int) ),
- this , SLOT( checkThis(int,int) ) );
-
+ standard = new QBrowseBox(6, 6);
+ standard->insertItem(QPixmap("standard.xpm"));
+
+ maths = new QBrowseBox(6, 6);
+ maths->insertItem(QPixmap("amssymb.xpm"));
+
+ QPopupMenu * pm = new QPopupMenu;
+
+ QPopupMenu * pm1 = new QPopupMenu(pm);
+ pm1->insertItem(standard);
+
+ QPopupMenu * pm2 = new QPopupMenu(pm);
+ pm2->insertItem(maths);
+
+ pm->insertItem("Standard", pm1);
+ pm->insertItem("Maths", pm2);
+ pm->insertItem("Ding 1");
+ pm->insertItem("Ding 2");
+ pm->insertItem("Ding 3");
+ pm->insertItem("Ding 4");
+
+ setbullet1TB->setPopup(pm);
+
+ connect(standard, SIGNAL(selected(int, int)),
+ this, SLOT(checkThis(int, int)));
+
}
+
BulletsModule::~BulletsModule()
{
- delete standard;
- delete maths;
-
+ delete standard;
+ delete maths;
}
+
void BulletsModule::setLevel1()
{
- qWarning("no setLevel1() yet");
+ qWarning("no setLevel1() yet");
}
+
void BulletsModule::checkThis(int x, int y)
{
- qWarning("Check, x: %d y: %d ",x,y);
+ qWarning("Check, x: %d y: %d ", x, y);
}
-
#include "ui/BulletsModuleBase.h"
#include "LString.h"
+
class QBrowseBox;
-class BulletsModule : public BulletsModuleBase
-{
+class BulletsModule : public BulletsModuleBase {
Q_OBJECT
public:
-
- BulletsModule( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
+ BulletsModule(QWidget* parent = 0, const char* name = 0,
+ WFlags fl = 0);
~BulletsModule();
-
public slots:
-
void checkThis(int,int);
void setLevel1();
-
private:
QBrowseBox * standard;
QBrowseBox * maths;
+2002-10-20 Lars Gullik Bjønnes <larsbj@gullik.net>
+
+ * Toolbar_pimpl.C (setLayout): initialize i to 0, don't
+ reinitialize.
+
+ * README: add a comment about the strange moc behaviour.
+
+ * QWrap.C (apply): local ref to params
+ (update_contents): ditto
+ (numtostr): use erase to clear string
+
+ * QWorkArea.C (setScrollbarParams): use explicit std::max
+
+ * QURL.C (update_contents): local ref to params
+ (apply): ditto
+
+ * QRef.C (update_contents): local ref to params
+ (apply): ditto
+
+ * QPreambleDialog.C (editClicked): no need to explicitly
+ initialize an std::string.
+ (editClicked): read file with smaller overhead.
+
+ * QParagraph.C (apply): local ref to params
+ (update_contents): ditto
+
+ * QMinipage.C (apply): local ref to params
+ (update_contents): ditto
+ (update_contents): handle InsetMinipage::top in switch
+
+ * QMath.C (createMathPanel): use "new Type" not "new Type()"
+
+ * QLyXKeySym.h: adda key_ accessor key().
+
+ * QLyXKeySym.C (operator=): out of class version.
+
+ * QLog.C (update_contents): use a simpler and faster way to fill
+ the log dialog.
+
+ * QLPopupMenu.C (getLabel): use subst directly on mi.label()
+
+ * QLPainter.C (QLPainter): use "new Type" not "new Type()"
+ (lines): put int i inside for scope
+ (fillPolygon): put j insize for scope
+
+ * QInclude.C (update_contents): local ref to params
+ (apply): ditto
+
+ * QGraphics.C (update_contents): initialize item to 0
+ (apply): use erase to clear string
+
+ * QFloat.C (update_contents): local ref to params
+ (apply): ditto
+
+ * QExternal.C (update_contents): local ref to params
+ (helpText): ditto
+ (apply): ditto
+
+ * QERT.C (apply): local reference to params
+
+ * QDocument.C (apply): have a local reference to the params
+ (update_contents): ditto
+
+ * QCommandEdit.C: add missing include config.h
+
+ * QCommandBuffer.C (QCommandBuffer): call method directly on
+ unnamed pointer objects.
+ (complete): use "new Type", not "new Type()"
+ (complete): use explict std::max
+
+ * QCharacter.C (update_contents): use a local reference as
+ controller cache
+ (apply): ditto
+
+ * QBibtex.C (update_contents): use erase to clear a string.
+
+ * QAbout.C (build_dialog): fill the credits view in a bit more
+ elegant way
+
+ * almost all files: clean up formatting and indenting.
+
2002-10-19 Lars Gullik Bjønnes <larsbj@gullik.net>
* qfont_loader.C (update): move loop vars into for scopes.
* Licence details can be found in the file COPYING.
*
* \author Allan Rae
- * \author Angus Leeming
+ * \author Angus Leeming
*
* Full author contact details are available in file CREDITS
*/
* Licence details can be found in the file COPYING.
*
* \author Allan Rae
- * \author Angus Leeming
+ * \author Angus Leeming
*
* Full author contact details are available in file CREDITS
*/
#include "Dialogs_impl.h"
+
void Dialogs::showAboutlyx()
{
pimpl_->aboutlyx.controller().show();
}
-void Dialogs::showTabular(InsetTabular * it)
+void Dialogs::showTabular(InsetTabular *)
{}
-void Dialogs::updateTabular(InsetTabular * it)
+void Dialogs::updateTabular(InsetTabular *)
{}
struct Dialogs::Impl {
Impl(LyXView & lv, Dialogs & d);
- AboutlyxDialog aboutlyx;
+ AboutlyxDialog aboutlyx;
BibitemDialog bibitem;
- BibtexDialog bibtex;
- CharacterDialog character;
+ BibtexDialog bibtex;
+ CharacterDialog character;
CitationDialog citation;
DocumentDialog document;
- ErrorDialog error;
+ ErrorDialog error;
ERTDialog ert;
- ExternalDialog external;
+ ExternalDialog external;
FileDialog file;
- FloatDialog floats;
- GraphicsDialog graphics;
+ FloatDialog floats;
+ GraphicsDialog graphics;
IncludeDialog include;
- IndexDialog index;
+ IndexDialog index;
LogFileDialog logfile;
MinipageDialog minipage;
ParagraphDialog paragraph;
using std::pair;
using std::endl;
+
struct FileDialog::Private {
Button b1;
Button b2;
};
-FileDialog::FileDialog(LyXView *lv, string const & t, kb_action s, Button b1, Button b2)
+
+FileDialog::FileDialog(LyXView * lv, string const & t,
+ kb_action s, Button b1, Button b2)
: private_(new FileDialog::Private), lv_(lv), title_(t), success_(s)
{
private_->b1 = b1;
}
-FileDialog::Result const FileDialog::Select(string const & path, string const & mask, string const & suggested)
+FileDialog::Result const FileDialog::Select(string const & path,
+ string const & mask,
+ string const & suggested)
{
- string filter = mask;
+ string filter(mask);
if (mask.empty())
filter = _("*|All files");
LyXFileDialog dlg(path, filter, title_, private_->b1, private_->b2);
- lyxerr[Debug::GUI] << "Select with path \"" << path << "\", mask \"" << filter << "\", suggested \"" << suggested << endl;
+ lyxerr[Debug::GUI] << "Select with path \"" << path
+ << "\", mask \"" << filter
+ << "\", suggested \"" << suggested << endl;
dlg.setMode(QFileDialog::AnyFile);
namespace {
- /// return the Qt form of the label
- string const getLabel(string const & str) {
- string label;
- string sc(split(str, label, '|'));
- if (sc.length() < 2)
- return label;
- string::size_type pos = label.find(sc[1]);
- if (pos == string::npos)
- return label;
- label.insert(pos, "&");
+
+/// return the Qt form of the label
+string const getLabel(string const & str) {
+ string label;
+ string sc(split(str, label, '|'));
+ if (sc.length() < 2)
return label;
- }
+ string::size_type pos = label.find(sc[1]);
+ if (pos == string::npos)
+ return label;
+ label.insert(pos, "&");
+ return label;
}
+} // namespace anon
+
LyXFileDialog::LyXFileDialog(string const & p, string const & m,
string const & t,
Q_OBJECT
public:
LyXFileDialog(string const & p, string const & m, string const & t,
- FileDialog::Button const & b1, FileDialog::Button const & b2);
-
+ FileDialog::Button const & b1,
+ FileDialog::Button const & b2);
public slots:
void buttonClicked();
-
private:
QToolButton * b1_;
string b1_dir_;
*/
#include <config.h>
-
+
#ifdef __GNUG__
#pragma implementation
#endif
{
return new QLyXKeySym();
}
-
-}
+
+} // namespace LyXKeySymFactory
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
return new QScreen(static_cast<QWorkArea &>(owner));
}
-}
+} // namespace LyXScreenFactory
#include <config.h>
-#include <algorithm>
-
#ifdef __GNUG__
#pragma implementation
#endif
#include <qmenubar.h>
#include <qcursor.h>
+#include <algorithm>
+
using std::endl;
using std::vector;
using std::max;
using std::for_each;
using std::pair;
+
Menubar::Pimpl::Pimpl(LyXView * view, MenuBackend const & mbe)
: owner_(static_cast<QtView*>(view)), menubackend_(mbe)
{
void openByName(string const &);
/// update the state of the menuitems - not needed
- void update() {};
+ void update() {}
/// return the owning view
QtView * view() { return owner_; }
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author Kalle Dalheimer
+ * \author Kalle Dalheimer
*
* Full author contact details are available in file CREDITS
*/
#include "LyXView.h"
#include "ButtonControllerBase.h"
#include "ControlAboutlyx.h"
-
+
#include <qlabel.h>
#include <qpushbutton.h>
#include <qtextview.h>
typedef Qt2CB<ControlAboutlyx, Qt2DB<QAboutDialog> > base_class;
+
QAbout::QAbout()
: base_class(_("About LyX"))
{
void QAbout::build_dialog()
{
- dialog_.reset(new QAboutDialog());
+ dialog_.reset(new QAboutDialog);
connect(dialog_.get()->closePB, SIGNAL(clicked()),
this, SLOT(slotClose()));
dialog_->versionLA->setText(controller().getVersion().c_str());
- stringstream in;
+ // The code below should depend on a autoconf test. (Lgb)
+#if 0
+ // There are a lot of buggy stringstream implementations..., but the
+ // code below will work on all of them (I hope). The drawback with
+ // this solutions os the extra copying. (Lgb)
+
+ ostringstream in;
controller().getCredits(in);
istringstream ss(in.str().c_str());
string s;
- string out;
+ ostringstream out;
while (getline(ss, s)) {
if (prefixIs(s, "@b"))
- out += "<b>" + s.substr(2) + "</b>";
+ out << "<b>" << s.substr(2) << "</b>";
+ else if (prefixIs(s, "@i"))
+ out << "<i>" << s.substr(2) << "</i>";
+ else
+ out << s;
+ out << "<br>";
+ }
+#else
+ // Good stringstream implementations can handle this. It avoids
+ // some copying, and should thus be faster and use less memory. (Lgb)
+ // I'll make this the default for a short while to see if anyone
+ // see the error...
+ stringstream in;
+ controller().getCredits(in);
+ in.seekg(0);
+ string s;
+ ostringstream out;
+
+ while (getline(in, s)) {
+ if (prefixIs(s, "@b"))
+ out << "<b>" << s.substr(2) << "</b>";
else if (prefixIs(s, "@i"))
- out += "<i>" + s.substr(2) + "</i>";
+ out << "<i>" << s.substr(2) << "</i>";
else
- out += s;
- out += "<br>";
+ out << s;
+ out << "<br>";
}
+#endif
- dialog_->creditsTV->setText(out.c_str());
+ dialog_->creditsTV->setText(out.str().c_str());
// try to resize to a good size
dialog_->copyright->hide();
dialog_->setMinimumSize(dialog_->copyright->sizeHint());
dialog_->copyright->show();
dialog_->setMinimumSize(dialog_->sizeHint());
-
+
// Manage the cancel/close button
bc().setCancel(dialog_->closePB);
bc().refresh();
{
public:
QAbout();
-
private:
/// not needed
virtual void apply() {}
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author Kalle Dalheimer
+ * \author Kalle Dalheimer
*
* Full author contact details are available in file CREDITS
*/
#include "QAboutDialog.h"
-QAboutDialog::QAboutDialog(QWidget * parent, const char * name, bool modal, WFlags fl)
+
+QAboutDialog::QAboutDialog(QWidget * parent, char const * name,
+ bool modal, WFlags fl)
: QAboutDialogBase(parent, name, modal, fl)
{
}
#include "ui/QAboutDialogBase.h"
-class QAboutDialog : public QAboutDialogBase
-{
-Q_OBJECT
+class QAboutDialog : public QAboutDialogBase {
+ Q_OBJECT
public:
- QAboutDialog(QWidget * parent = 0, const char * name = 0, bool modal = FALSE, WFlags fl = 0);
+ QAboutDialog(QWidget * parent = 0, const char * name = 0,
+ bool modal = FALSE, WFlags fl = 0);
~QAboutDialog();
};
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
#include "QBibitemDialog.h"
#include "QBibitem.h"
#include "Qt2BC.h"
-
+
typedef Qt2CB<ControlBibitem, Qt2DB<QBibitemDialog> > base_class;
+
QBibitem::QBibitem()
: base_class(_("Bibliography Item"))
{
class ControlBibitem;
class QBibitemDialog;
-class QBibitem :
- public Qt2CB<ControlBibitem, Qt2DB<QBibitemDialog> >
+class QBibitem
+ : public Qt2CB<ControlBibitem, Qt2DB<QBibitemDialog> >
{
+public:
friend class QBibitemDialog;
-public:
QBibitem();
-
protected:
virtual bool isValid();
-
private:
/// Apply changes
virtual void apply();
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
#include "QBibitemDialog.h"
#include "QBibitem.h"
-
+
+
QBibitemDialog::QBibitemDialog(QBibitem * form)
: QBibitemDialogBase(0, 0, false, 0),
form_(form)
class QBibitem;
-class QBibitemDialog : public QBibitemDialogBase
-{ Q_OBJECT
-
+class QBibitemDialog : public QBibitemDialogBase {
+ Q_OBJECT
public:
QBibitemDialog(QBibitem * form);
-
protected slots:
virtual void change_adaptor();
-
-
protected:
virtual void closeEvent(QCloseEvent * e);
-
private:
QBibitem * form_;
};
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
#include "ControlBibtex.h"
#include "gettext.h"
#include "debug.h"
+
#include "support/filetools.h" // ChangeExtension
#include "support/lstrings.h" // getVectorFromString
+
#include <qlineedit.h>
#include <qcombobox.h>
#include <qpushbutton.h>
typedef Qt2CB<ControlBibtex, Qt2DB<QBibtexDialog> > base_class;
+
QBibtex::QBibtex()
: base_class(_("BibTeX"))
{
if (contains(bibstyle,','))
bibstyle = split(bibstyle, bibtotoc, ',');
else
- bibstyle = "";
+ bibstyle.erase();
} else
dialog_->bibtocCB->setChecked(false);
controller().getBibStyles(),"\n");
for (vector<string>::const_iterator it = str.begin();
it != str.end(); ++it) {
- dialog_->styleCB->insertItem(ChangeExtension(*it,"").c_str());
+ dialog_->styleCB->insertItem(ChangeExtension(*it, "").c_str());
}
dialog_->styleCB->insertItem(bibstyle.c_str(),0);
}
class ControlBibtex;
class QBibtexDialog;
-class QBibtex :
- public Qt2CB<ControlBibtex, Qt2DB<QBibtexDialog> >
+class QBibtex
+ : public Qt2CB<ControlBibtex, Qt2DB<QBibtexDialog> >
{
+public:
friend class QBibtexDialog;
-public:
QBibtex();
-
protected:
virtual bool isValid();
-
private:
/// Apply changes
virtual void apply();
#pragma implementation
#endif
-#include <vector>
#include "ControlBibtex.h"
#include "gettext.h"
#include "debug.h"
#include "QBibtexDialog.h"
#include "QBibtex.h"
+#include <vector>
+
+
QBibtexDialog::QBibtexDialog(QBibtex * form)
: QBibtexDialogBase(0, 0, false, 0),
form_(form)
}
-void QBibtexDialog::styleChanged(const QString & sel)
+void QBibtexDialog::styleChanged(QString const & sel)
{
styleCB->insertItem(sel,0);
}
class QBibtex;
-class QBibtexDialog : public QBibtexDialogBase
-{
+class QBibtexDialog : public QBibtexDialogBase {
Q_OBJECT
-
public:
QBibtexDialog(QBibtex * form);
-
protected slots:
virtual void change_adaptor();
virtual void browsePressed();
virtual void deletePressed();
virtual void styleChanged(const QString &);
virtual void databaseChanged();
-
protected:
virtual void closeEvent(QCloseEvent * e);
-
private:
QBibtex * form_;
};
* \file QBrowseBox.C
*
* Original file taken from klyx 0.10 sources:
- * $Id: QBrowseBox.C,v 1.5 2002/10/17 13:31:04 leeming Exp $
+ * $Id: QBrowseBox.C,v 1.6 2002/10/20 01:48:27 larsbj Exp $
*
* \author Kalle Dalheimer ?
*
* Full author contact details are available in file CREDITS
*/
+#include <config.h>
#include <qstring.h>
#include <qpixmap.h>
#include <qstyle.h>
#include <qimage.h>
-#include <stdio.h>
-#include <math.h>
-
#include "QBrowseBox.h"
+#include <cstdio>
+#include <cmath>
+
QBrowseBox::QBrowseBox(int rows, int cols)
: QGridView()
if (activecell_.x() == row && activecell_.y() == col) {
if (ispixmap)
qDrawShadeRect(painter, 0, 0, cellWidth(),
- cellHeight(), colorGroup(), false, 1);
+ cellHeight(), colorGroup(), false, 1);
else
qDrawShadePanel(painter, 0, 0, cellWidth(),
- cellHeight(), colorGroup(), false, 1);
+ cellHeight(), colorGroup(), false, 1);
} else {
qDrawPlainRect(painter, 0, 0, cellWidth(),
- cellHeight(), colorGroup().background(), 1);
+ cellHeight(), colorGroup().background(), 1);
}
if (!texts_[coordsToIndex(row, col)].isEmpty()) {
painter->drawText(0, 0, cellWidth(),
- cellHeight(), AlignLeft,
- texts_[coordsToIndex(row, col)]);
+ cellHeight(), AlignLeft,
+ texts_[coordsToIndex(row, col)]);
}
painter->setClipping(false);
}
updateCell(x, activecell_.y());
updateCell(activecell_.x(), activecell_.y());
}
-
* \file QBrowseBox.h
*
* Original file taken from klyx 0.10 sources:
- * $Id: QBrowseBox.h,v 1.3 2002/10/17 13:31:04 leeming Exp $
+ * $Id: QBrowseBox.h,v 1.4 2002/10/20 01:48:27 larsbj Exp $
*
* \author Kalle Dalheimer ?
*
class QBrowseBox : public QGridView
{
- Q_OBJECT
+ Q_OBJECT
public:
- QBrowseBox(int rows, int cols);
- ~QBrowseBox();
-
- void insertItem(QString const & text, int x, int y);
- void insertItem(char const * text, int x, int y);
- void insertItem(QPixmap pixmap, int x, int y);
- void insertItem(QPixmap pixmap);
- void removeItem(int x, int y);
- void clear();
-
- QString text(int x, int y);
- QPixmap pixmap(int x, int y);
-
-// int exec(QPoint const & pos);
-// int exec(int x, int y);
-// int exec(QWidget * trigger);
-
+ QBrowseBox(int rows, int cols);
+ ~QBrowseBox();
+
+ void insertItem(QString const & text, int x, int y);
+ void insertItem(char const * text, int x, int y);
+ void insertItem(QPixmap pixmap, int x, int y);
+ void insertItem(QPixmap pixmap);
+ void removeItem(int x, int y);
+ void clear();
+
+ QString text(int x, int y);
+ QPixmap pixmap(int x, int y);
+
+ // int exec(QPoint const & pos);
+ // int exec(int x, int y);
+ // int exec(QWidget * trigger);
+
signals:
- void selected(int, int);
-
+ void selected(int, int);
+
protected:
- virtual void keyPressEvent(QKeyEvent * e);
- virtual void resizeEvent(QResizeEvent * e);
- virtual void mouseReleaseEvent(QMouseEvent * e);
-// virtual void closeEvent(QCloseEvent * e);
- virtual void mouseMoveEvent(QMouseEvent * e);
- virtual void paintCell(QPainter *, int x, int y);
-
+ virtual void keyPressEvent(QKeyEvent * e);
+ virtual void resizeEvent(QResizeEvent * e);
+ virtual void mouseReleaseEvent(QMouseEvent * e);
+ // virtual void closeEvent(QCloseEvent * e);
+ virtual void mouseMoveEvent(QMouseEvent * e);
+ virtual void paintCell(QPainter *, int x, int y);
+
private:
// make sure the automatically generated one is not used
- QBrowseBox & operator=(QBrowseBox const &);
-
+ QBrowseBox & operator=(QBrowseBox const &);
+
void moveLeft();
void moveRight();
void moveUp();
void moveDown();
-
- int coordsToIndex(int x, int y);
-
- QString * texts_;
- QPixmap* pixmaps_;
- QPoint activecell_;
-
+
+ int coordsToIndex(int x, int y);
+
+ QString * texts_;
+ QPixmap* pixmaps_;
+ QPoint activecell_;
};
-
-
#endif
typedef Qt2CB<ControlCharacter, Qt2DB<QCharacterDialog> > base_class;
+
QCharacter::QCharacter()
: base_class(_("Character"))
{
cit != family.end(); ++cit) {
dialog_->familyCO->insertItem(cit->first.c_str(), -1);
}
+
for (vector<SeriesPair>::const_iterator cit = series.begin();
cit != series.end(); ++cit) {
dialog_->seriesCO->insertItem(cit->first.c_str(), -1);
void QCharacter::update_contents()
{
- dialog_->familyCO->setCurrentItem(findPos2nd(family, controller().getFamily()));
- dialog_->seriesCO->setCurrentItem(findPos2nd(series, controller().getSeries()));
- dialog_->shapeCO->setCurrentItem(findPos2nd(shape, controller().getShape()));
- dialog_->sizeCO->setCurrentItem(findPos2nd(size, controller().getSize()));
- dialog_->miscCO->setCurrentItem(findPos2nd(bar, controller().getBar()));
- dialog_->colorCO->setCurrentItem(findPos2nd(color, controller().getColor()));
- dialog_->langCO->setCurrentItem(findPos2nd(language, controller().getLanguage()));
-
- dialog_->toggleallCB->setChecked(controller().getToggleAll());
+ ControlCharacter const & ctrl = controller();
+
+ dialog_->familyCO->setCurrentItem(findPos2nd(family,
+ ctrl.getFamily()));
+ dialog_->seriesCO->setCurrentItem(findPos2nd(series,
+ ctrl.getSeries()));
+ dialog_->shapeCO->setCurrentItem(findPos2nd(shape, ctrl.getShape()));
+ dialog_->sizeCO->setCurrentItem(findPos2nd(size, ctrl.getSize()));
+ dialog_->miscCO->setCurrentItem(findPos2nd(bar, ctrl.getBar()));
+ dialog_->colorCO->setCurrentItem(findPos2nd(color, ctrl.getColor()));
+ dialog_->langCO->setCurrentItem(findPos2nd(language,
+ ctrl.getLanguage()));
+
+ dialog_->toggleallCB->setChecked(ctrl.getToggleAll());
}
void QCharacter::apply()
{
- controller().setFamily(family[dialog_->familyCO->currentItem()].second);
- controller().setSeries(series[dialog_->seriesCO->currentItem()].second);
- controller().setShape(shape[dialog_->shapeCO->currentItem()].second);
- controller().setSize(size[dialog_->sizeCO->currentItem()].second);
- controller().setBar(bar[dialog_->miscCO->currentItem()].second);
- controller().setColor(color[dialog_->colorCO->currentItem()].second);
- controller().setLanguage(language[dialog_->langCO->currentItem()].second);
-
- controller().setToggleAll(dialog_->toggleallCB->isChecked());
+ ControlCharacter & ctrl = controller();
+
+ ctrl.setFamily(family[dialog_->familyCO->currentItem()].second);
+ ctrl.setSeries(series[dialog_->seriesCO->currentItem()].second);
+ ctrl.setShape(shape[dialog_->shapeCO->currentItem()].second);
+ ctrl.setSize(size[dialog_->sizeCO->currentItem()].second);
+ ctrl.setBar(bar[dialog_->miscCO->currentItem()].second);
+ ctrl.setColor(color[dialog_->colorCO->currentItem()].second);
+ ctrl.setLanguage(language[dialog_->langCO->currentItem()].second);
+
+ ctrl.setToggleAll(dialog_->toggleallCB->isChecked());
}
#include "controllers/frnt_lang.h"
#include "LString.h"
+
#include <vector>
class QCharacterDialog;
-class QCharacter :
- public Qt2CB<ControlCharacter, Qt2DB<QCharacterDialog> >
+class QCharacter
+ : public Qt2CB<ControlCharacter, Qt2DB<QCharacterDialog> >
{
+public:
friend class QCharacterDialog;
-public:
QCharacter();
-
private:
/// Apply changes
virtual void apply();
#include <qpushbutton.h>
#include <qgroupbox.h>
+
QCharacterDialog::QCharacterDialog(QCharacter * form)
: QCharacterDialogBase(0, 0, false, 0),
form_(form)
class LyXFont;
-class QCharacterDialog : public QCharacterDialogBase
-{ Q_OBJECT
-
+class QCharacterDialog : public QCharacterDialogBase {
+ Q_OBJECT
public:
QCharacterDialog(QCharacter * form);
-
protected:
void closeEvent(QCloseEvent * e);
-
private:
QCharacter * form_;
-
protected slots:
void change_adaptor();
};
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author Angus Leeming
- * \author Kalle Dalheimer
+ * \author Angus Leeming
+ * \author Kalle Dalheimer
*
* Full author contact details are available in file CREDITS
*/
typedef Qt2CB<ControlCitation, Qt2DB<QCitationDialog> > base_class;
+
QCitation::QCitation()
: base_class(_("Citation"))
{}
controller().params().setCmdName(command);
controller().params().setContents(getStringFromVector(citekeys));
- string const after = dialog_->textAfterED->text().latin1();
+ string const after = dialog_->textAfterED->text().latin1();
controller().params().setOptions(after);
}
}
-void QCitation::updateBrowser(QListBox* browser,
+void QCitation::updateBrowser(QListBox * browser,
vector<string> const & keys) const
{
browser->clear();
class QCitationDialog;
-class QCitation : public Qt2CB<ControlCitation, Qt2DB<QCitationDialog> >
+class QCitation
+ : public Qt2CB<ControlCitation, Qt2DB<QCitationDialog> >
{
- friend class QCitationDialog;
-
public:
+ friend class QCitationDialog;
///
QCitation();
-
private:
///
enum State {
using std::find;
using std::max;
+
QCitationDialog::QCitationDialog(QCitation * form)
: QCitationDialogBase(0, 0, false, 0),
form_(form)
class QCitation;
-class QCitationDialog : public QCitationDialogBase
-{ Q_OBJECT
-
+class QCitationDialog : public QCitationDialogBase {
+ Q_OBJECT
public:
QCitationDialog(QCitation * form);
~QCitationDialog();
-
protected slots:
virtual void slotBibHighlighted(int sel);
virtual void slotBibSelected(int sel);
virtual void slotPreviousClicked();
virtual void slotNextClicked();
virtual void changed_adaptor();
-
private:
void doFind(biblio::Direction dir);
-
private:
QCitation * form_;
};
public:
QTempListBox()
: QListBox(0, 0,
- WType_Modal | WType_Popup | WDestructiveClose) {
+ WType_Modal | WType_Popup | WDestructiveClose) {
setHScrollBarMode(AlwaysOff);
}
-
protected:
void mouseReleaseEvent(QMouseEvent * e) {
if (e->x() < 0 || e->y() < 0
- || e->x() > width() || e->y() > height()) {
+ || e->x() > width() || e->y() > height()) {
hide();
} else {
emit selected(currentText());
}
};
-}
+} // end of anon
+
QCommandBuffer::QCommandBuffer(QtView * view, ControlCommandBuffer & control)
: QToolBar(view), view_(view), controller_(control)
QPixmap qp(LibFileSearch("images", "unknown", "xpm").c_str());
- QToolButton * upb = new QToolButton(qp, _("Up"), "", this, SLOT(up()), this);
- upb->show();
-
- QToolButton * downb = new QToolButton(qp, _("Down"), "", this, SLOT(down()), this);
- downb->show();
+ (new QToolButton(qp, _("Up"), "", this, SLOT(up()), this))->show();
+ (new QToolButton(qp, _("Down"), "", this, SLOT(down()), this))->show();
edit_ = new QCommandEdit(this);
edit_->setMinimumSize(edit_->sizeHint());
edit_->setText(new_input.c_str());
- QTempListBox * list = new QTempListBox();
+ QTempListBox * list = new QTempListBox;
// For some reason the scrollview's contents are larger
// than the number of actual items...
list->resize(list->sizeHint());
QPoint pos(edit_->mapToGlobal(QPoint(0, 0)));
- int y = pos.y() - list->height();
- if (y < 0)
- y = 0;
+
+ int y = std::max(0, pos.y() - list->height());
+
list->move(pos.x(), y);
connect(list, SIGNAL(selected(const QString &)),
}
-void QCommandBuffer::complete_selected(const QString & str)
+void QCommandBuffer::complete_selected(QString const & str)
{
edit_->setText(str + " ");
QWidget const * widget = static_cast<QWidget const *>(sender());
void QCommandBuffer::up()
{
- string const input = edit_->text().latin1();
+ string const input(edit_->text().latin1());
string const h(controller_.historyUp());
if (h.empty()) {
void QCommandBuffer::down()
{
- string const input = edit_->text().latin1();
+ string const input(edit_->text().latin1());
string const h(controller_.historyDown());
if (h.empty()) {
class QCommandBuffer : public QToolBar {
Q_OBJECT
public:
-
QCommandBuffer(QtView * view, ControlCommandBuffer & control);
/// focus the edit widget
void focus_command();
-
public slots:
/// cancel command compose
void cancel();
/// tab-complete
void complete();
/// select-complete
- void complete_selected(const QString & str);
+ void complete_selected(QString const & str);
/// up
void up();
/// down
void down();
-
private:
/// owning view
QtView * view_;
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
+#include <config.h>
+
#include "QCommandEdit.h"
-
+
+
QCommandEdit::QCommandEdit(QWidget * parent)
: QLineEdit(parent)
-{
- setFocusPolicy(QWidget::ClickFocus);
+{
+ setFocusPolicy(QWidget::ClickFocus);
}
void QCommandEdit::keyPressEvent(QKeyEvent * e)
{
switch (e->key()) {
- case Key_Escape:
- emit escapePressed();
- break;
-
- case Key_Up:
- emit upPressed();
- break;
+ case Key_Escape:
+ emit escapePressed();
+ break;
- case Key_Down:
- emit downPressed();
+ case Key_Up:
+ emit upPressed();
break;
- case Key_Right:
- if (cursorPosition() == text().length())
- emit rightPressed();
- else
- QLineEdit::keyPressEvent(e);
- break;
+ case Key_Down:
+ emit downPressed();
+ break;
- default:
+ case Key_Right:
+ if (cursorPosition() == text().length())
+ emit rightPressed();
+ else
QLineEdit::keyPressEvent(e);
- break;
+ break;
+
+ default:
+ QLineEdit::keyPressEvent(e);
+ break;
}
}
class QCommandEdit : public QLineEdit {
Q_OBJECT
public:
-
QCommandEdit(QWidget * parent);
-
signals:
/// cancel
void escapePressed();
/// complete
void rightPressed();
-
protected:
virtual void keyPressEvent(QKeyEvent * e);
};
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
#include <qpainter.h>
#include <qtimer.h>
#include <qapplication.h>
-
+
using std::endl;
namespace {
-
+
/// return the LyX key state from Qt's
key_modifier::state q_key_state(Qt::ButtonState state)
{
return k;
}
+
/// return the LyX mouse button state from Qt's
mouse_button::state q_button_state(Qt::ButtonState button)
{
}
return b;
}
-
-
+
+
/// return the LyX mouse button state from Qt's
mouse_button::state q_motion_state(Qt::ButtonState state)
{
}
} // namespace anon
-
+
QContentPane::QContentPane(QWorkArea * parent)
- : QWidget(parent, "content_pane", WRepaintNoErase),
+ : QWidget(parent, "content_pane", WRepaintNoErase),
wa_(parent)
{
setFocusPolicy(QWidget::WheelFocus);
setFocus();
// stupid moc strikes again
- connect(wa_->scrollbar_, SIGNAL(valueChanged(int)),
+ connect(wa_->scrollbar_, SIGNAL(valueChanged(int)),
this, SLOT(scrollBarChanged(int)));
-
+
}
void QContentPane::scrollBarChanged(int val)
{
- wa_->scrollDocView(val);
+ wa_->scrollDocView(val);
}
-
-
+
+
void QContentPane::mousePressEvent(QMouseEvent * e)
{
if (dc_event_.active && dc_event_ == *e) {
wa_->dispatch(cmd);
return;
}
-
- FuncRequest cmd
- (LFUN_MOUSE_PRESS, e->x(), e->y(), q_button_state(e->button()));
+
+ FuncRequest cmd(LFUN_MOUSE_PRESS, e->x(), e->y(),
+ q_button_state(e->button()));
wa_->dispatch(cmd);
}
void QContentPane::mouseReleaseEvent(QMouseEvent * e)
{
- FuncRequest cmd
- (LFUN_MOUSE_RELEASE, e->x(), e->y(), q_button_state(e->button()));
+ FuncRequest cmd(LFUN_MOUSE_RELEASE, e->x(), e->y(),
+ q_button_state(e->button()));
wa_->dispatch(cmd);
}
-
+
void QContentPane::mouseMoveEvent(QMouseEvent * e)
{
FuncRequest cmd
wa_->workAreaKeyPress(LyXKeySymPtr(sym), q_key_state(e->state()));
}
-
+
void QContentPane::doubleClickTimeout()
{
if (!dc_event_.active)
return;
dc_event_.active = false;
-
+
FuncRequest cmd(LFUN_MOUSE_DOUBLE,
dc_event_.x, dc_event_.y,
q_button_state(dc_event_.state));
QTimer::singleShot(int(QApplication::doubleClickInterval() / 1.5),
this, SLOT(doubleClickTimeout()));
}
-
-
+
+
void QContentPane::resizeEvent(QResizeEvent *)
{
if (!pixmap_.get()) {
wa_->workAreaResize();
}
-
+
void QContentPane::paintEvent(QPaintEvent * e)
{
if (!pixmap_.get()) {
}
QRect r(e->rect());
-
- lyxerr[Debug::GUI] << "repainting " << r.x()
- << "," << r.y() << " " << r.width()
+
+ lyxerr[Debug::GUI] << "repainting " << r.x()
+ << "," << r.y() << " " << r.width()
<< "," << r.height() << endl;
QPainter q(this);
q.drawPixmap(QPoint(r.x(), r.y()),
- *pixmap_.get(), r);
+ *pixmap_.get(), r);
}
#include <qwidget.h>
#include <qevent.h>
#include <qpixmap.h>
+
#include <boost/scoped_ptr.hpp>
class QWorkArea;
state(e->button()), active(true) {}
};
+
/**
* Widget for actually drawing the document on
*/
class QContentPane : public QWidget {
Q_OBJECT
-
public:
QContentPane(QWorkArea * parent);
/// return the backing pixmap
QPixmap * pixmap() const { return pixmap_.get(); }
-
protected:
/// repaint part of the widget
void paintEvent(QPaintEvent * e);
/// key press
void keyPressEvent(QKeyEvent * e);
-
public slots:
void doubleClickTimeout();
void scrollBarChanged(int);
-
private:
/// owning widget
QWorkArea * wa_;
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
#include "support/filetools.h"
#include "gettext.h"
#include "debug.h"
-
+
#include "QMath.h"
#include "QDelimiterDialog.h"
#include "iconpalette.h"
-
+
#include <qlabel.h>
#include <qpixmap.h>
#include <qpushbutton.h>
#include <qcheckbox.h>
-
+
namespace {
- char const * delim[] = {
- "(", ")", "{", "}", "[", "]",
- "lceil", "rceil", "lfloor", "rfloor", "langle", "rangle",
- "uparrow", "Uparrow", "downarrow", "Downarrow",
- "|", "Vert", "slash", "backslash", ""
- };
-
- string do_match(string str) {
- if (str == "(") return ")";
- if (str == ")") return "(";
- if (str == "[") return "]";
- if (str == "]") return "[";
- if (str == "{") return "}";
- if (str == "}") return "{";
- if (str == "l") return "r";
- if (str == "rceil") return "lceil";
- if (str == "lceil") return "rceil";
- if (str == "rfloor") return "lfloor";
- if (str == "lfloor") return "rfloor";
- if (str == "rangle") return "langle";
- if (str == "langle") return "rangle";
- if (str == "backslash") return "slash";
- if (str == "slash") return "backslash";
- return str;
- }
-
+
+char const * delim[] = {
+ "(", ")", "{", "}", "[", "]",
+ "lceil", "rceil", "lfloor", "rfloor", "langle", "rangle",
+ "uparrow", "Uparrow", "downarrow", "Downarrow",
+ "|", "Vert", "slash", "backslash", ""
+};
+
+
+string do_match(string const & str)
+{
+ if (str == "(") return ")";
+ if (str == ")") return "(";
+ if (str == "[") return "]";
+ if (str == "]") return "[";
+ if (str == "{") return "}";
+ if (str == "}") return "{";
+ if (str == "l") return "r";
+ if (str == "rceil") return "lceil";
+ if (str == "lceil") return "rceil";
+ if (str == "rfloor") return "lfloor";
+ if (str == "lfloor") return "rfloor";
+ if (str == "rangle") return "langle";
+ if (str == "langle") return "rangle";
+ if (str == "backslash") return "slash";
+ if (str == "slash") return "backslash";
+ return str;
+}
+
+
+string fix_name(string const & str)
+{
+ if (str == "slash")
+ return "/";
+ if (str == "backslash")
+ return "\\";
+ if (str == "empty")
+ return ".";
+ return str;
}
+} // namespace anon
+
+
QDelimiterDialog::QDelimiterDialog(QMath * form)
: QDelimiterDialogBase(0, 0, false, 0),
form_(form)
{
setCaption(_("LyX: Delimiters"));
-
+
for (int i = 0; *delim[i]; ++i) {
string xpm_name = LibFileSearch("images/math/", delim[i], "xpm");
leftIP->add(QPixmap(xpm_name.c_str()), delim[i], delim[i]);
rdelim_clicked(")");
}
-
-namespace {
- string fix_name(string const & str) {
- if (str == "slash")
- return "/";
- if (str == "backslash")
- return "\\";
- if (str == "empty")
- return ".";
- return str;
- }
-}
-
+
void QDelimiterDialog::insertClicked()
{
form_->insertDelim(fix_name(left_) + " " + fix_name(right_));
}
-
+
void QDelimiterDialog::set_label(QLabel * label, string const & str)
{
string xpm_name = LibFileSearch("images/math/", str, "xpm");
label->update();
}
-
+
void QDelimiterDialog::ldelim_clicked(string str)
{
left_ = str;
-
+
set_label(leftPI, left_);
if (matchCB->isChecked()) {
right_ = do_match(left_);
void QDelimiterDialog::rdelim_clicked(string str)
{
right_ = str;
-
+
set_label(rightPI, right_);
if (matchCB->isChecked()) {
left_ = do_match(right_);
class IconPalette;
class QLabel;
-class QDelimiterDialog : public QDelimiterDialogBase
-{
+class QDelimiterDialog : public QDelimiterDialogBase {
Q_OBJECT
-
public:
QDelimiterDialog(QMath * form);
-
public slots:
void ldelim_clicked(string str);
void rdelim_clicked(string str);
void insertClicked();
-
protected:
//needed ? virtual void closeEvent(QCloseEvent * e);
-
private:
void set_label(QLabel * label, string const & str);
#include "gettext.h"
-
#include "ControlDocument.h"
#include "QDocument.h"
#include "QDocumentDialog.h"
typedef Qt2CB<ControlDocument, Qt2DB<QDocumentDialog> > base_class;
+
QDocument::QDocument()
: base_class(_("Document Settings"))
{
lang_ = getSecond(langs);
}
+
void QDocument::build_dialog()
{
dialog_.reset(new QDocumentDialog(this));
- /* biblio */
+ // biblio
dialog_->biblioModule->citeStyleCO->insertItem(_("Author-year"));
dialog_->biblioModule->citeStyleCO->insertItem(_("Numerical"));
dialog_->biblioModule->citeStyleCO->setCurrentItem(0);
- /* language & quotes */
+ // language & quotes
vector<frnt::LanguagePair> const langs = frnt::getLanguageData(false);
vector<frnt::LanguagePair>::const_iterator lit = langs.begin();
vector<frnt::LanguagePair>::const_iterator lend = langs.end();
dialog_->langModule->quoteStyleCO->insertItem(_("«text»"));
dialog_->langModule->quoteStyleCO->insertItem(_("»text«"));
- /* packages */
+ // packages
char const * items[] = {"default","auto","latin1","latin2",
"latin3","latin4","latin5","latin9",
"koi8-r","koi8-u","cp866","cp1251",
dialog_->packagesModule->encodingCO->insertStrList(items);
dialog_->packagesModule->lspacingCO->insertItem(
- _("Single"),Spacing::Single);
+ _("Single"), Spacing::Single);
dialog_->packagesModule->lspacingCO->insertItem(
- _("OneHalf"),Spacing::Onehalf);
+ _("OneHalf"), Spacing::Onehalf);
dialog_->packagesModule->lspacingCO->insertItem(
- _("Double"),Spacing::Double);
+ _("Double"), Spacing::Double);
dialog_->packagesModule->lspacingCO->insertItem(
- _("Custom"),Spacing::Other);
+ _("Custom"), Spacing::Other);
for (int n = 0; tex_graphics[n][0]; ++n) {
QString enc = tex_graphics[n];
dialog_->packagesModule->psdriverCO->insertItem(enc);
}
- /* paper */
+ // paper
QStringList papersize_;
papersize_ << _("Default") << _("Custom") << _("US letter") << _("US legal")
<< _("US executive") << _("A3") << _("A4") << _("A5")
<< _("B3") << _("B4") << _("B5");
dialog_->paperModule->papersizeCO->insertStringList(papersize_);
- /* layout */
+ // layout
for (LyXTextClassList::const_iterator cit = textclasslist.begin();
cit != textclasslist.end(); ++cit) {
dialog_->layoutModule->classCO->insertItem(cit->description().c_str());
dialog_->layoutModule->pagestyleCO->insertItem(_("headings"));
dialog_->layoutModule->pagestyleCO->insertItem(_("fancy"));
- /* margins */
+ // margins
dialog_->setMargins(0);
string const bmtablefile = LibFileSearch("images", "standard", "xpm");
QString s = bmtablefile.c_str();
- qWarning("%d", s);
// Manage the restore, ok, apply, restore and cancel/close buttons
bc().setOK(dialog_->okPB);
void QDocument::apply()
{
- /* preamble */
- controller().params().preamble =
+ BufferParams & params = controller().params();
+
+ // preamble
+ params.preamble =
dialog_->preambleModule->preambleMLE->text().latin1();
- /* biblio */
- controller().params().use_natbib =
+ // biblio
+ params.use_natbib =
dialog_->biblioModule->natbibCB->isChecked();
- controller().params().use_numerical_citations =
+ params.use_numerical_citations =
dialog_->biblioModule->citeStyleCO->currentItem();
- /* language & quotes */
+ // language & quotes
if (dialog_->langModule->singleQuoteRB->isChecked())
- controller().params().quotes_times = InsetQuotes::SingleQ;
+ params.quotes_times = InsetQuotes::SingleQ;
else
- controller().params().quotes_times = InsetQuotes::DoubleQ;
+ params.quotes_times = InsetQuotes::DoubleQ;
InsetQuotes::quote_language lga = InsetQuotes::EnglishQ;
lga = InsetQuotes::DanishQ;
break;
}
- controller().params().quotes_language = lga;
+ params.quotes_language = lga;
int const pos = dialog_->langModule->languageCO->currentItem();
- controller().params().language = languages.getLanguage(lang_[pos]);
+ params.language = languages.getLanguage(lang_[pos]);
- /* numbering */
- controller().params().secnumdepth =
+ // numbering
+ params.secnumdepth =
dialog_->numberingModule->tocDepthSB->value();
- controller().params().tocdepth =
+ params.tocdepth =
dialog_->numberingModule->sectionnrDepthSB->value();
- /* packages */
+ // packages
switch (dialog_->packagesModule->lspacingCO->currentItem()) {
case 0:
- controller().params().spacing.set(Spacing::Single);
+ params.spacing.set(Spacing::Single);
break;
case 1:
- controller().params().spacing.set(Spacing::Onehalf);
+ params.spacing.set(Spacing::Onehalf);
break;
case 2:
- controller().params().spacing.set(Spacing::Double);
+ params.spacing.set(Spacing::Double);
break;
case 3:
- controller().params().spacing.set(Spacing::Other,
+ params.spacing.set(Spacing::Other,
dialog_->packagesModule->
lspacingLE->text().toFloat()
);
break;
}
- controller().params().graphicsDriver =
+ params.graphicsDriver =
dialog_->packagesModule->psdriverCO->currentText().latin1();
- controller().params().use_amsmath =
+ params.use_amsmath =
dialog_->packagesModule->amsCB->isChecked();
- controller().params().inputenc =
+ params.inputenc =
dialog_->packagesModule->encodingCO->currentText().latin1();
- /* layout */
- controller().params().textclass =
+ // layout
+ params.textclass =
dialog_->layoutModule->classCO->currentItem();
//bool succes = controller().classApply();
- controller().params().fonts =
+ params.fonts =
dialog_->layoutModule->fontsCO->currentText().latin1();
- controller().params().fontsize =
+ params.fontsize =
dialog_->layoutModule->fontsizeCO->currentText().latin1();
- controller().params().pagestyle =
+ params.pagestyle =
dialog_->layoutModule->pagestyleCO->currentText().latin1();
if (dialog_->layoutModule->indentRB->isChecked())
- controller().params().paragraph_separation = BufferParams::PARSEP_INDENT;
+ params.paragraph_separation = BufferParams::PARSEP_INDENT;
else
- controller().params().paragraph_separation = BufferParams::PARSEP_SKIP;
+ params.paragraph_separation = BufferParams::PARSEP_SKIP;
switch (dialog_->layoutModule->skipCO->currentItem()) {
case 0:
- controller().params().setDefSkip(VSpace(VSpace::SMALLSKIP));
+ params.setDefSkip(VSpace(VSpace::SMALLSKIP));
break;
case 1:
- controller().params().setDefSkip(VSpace(VSpace::MEDSKIP));
+ params.setDefSkip(VSpace(VSpace::MEDSKIP));
break;
case 2:
- controller().params().setDefSkip(VSpace(VSpace::BIGSKIP));
+ params.setDefSkip(VSpace(VSpace::BIGSKIP));
break;
case 3:
{
double length =
dialog_->layoutModule->skipLE->text().toDouble();
VSpace vs = VSpace(LyXGlueLength(LyXLength(length,unit)));
- controller().params().setDefSkip(vs);
+ params.setDefSkip(vs);
break;
}
default:
// DocumentDefskipCB assures that this never happens
- controller().params().setDefSkip(VSpace(VSpace::MEDSKIP));
+ params.setDefSkip(VSpace(VSpace::MEDSKIP));
break;
}
- controller().params().options =
+ params.options =
dialog_->layoutModule->optionsLE->text().latin1();
- controller().params().float_placement =
+ params.float_placement =
dialog_->layoutModule->floatPlacementLE->text().latin1();
- /* paper */
- controller().params().papersize2 =
+ // paper
+ params.papersize2 =
dialog_->paperModule->papersizeCO->currentItem();
- controller().params().paperwidth =
+ params.paperwidth =
LyXLength(dialog_->paperModule->paperwidthLE->text().toDouble(),
dialog_->paperModule->paperwidthUnitCO->currentLengthItem()
).asString();
- controller().params().paperheight =
+ params.paperheight =
LyXLength(dialog_->paperModule->paperheightLE->text().toDouble(),
dialog_->paperModule->paperheightUnitCO->currentLengthItem()
).asString();
if (dialog_->paperModule->twoColumnCB->isChecked())
- controller().params().columns = 2;
+ params.columns = 2;
else
- controller().params().columns = 1;
+ params.columns = 1;
if (dialog_->paperModule->facingPagesCB->isChecked())
- controller().params().sides = LyXTextClass::TwoSides;
+ params.sides = LyXTextClass::TwoSides;
else
- controller().params().sides = LyXTextClass::OneSide;
+ params.sides = LyXTextClass::OneSide;
if (dialog_->paperModule->landscapeRB->isChecked())
- controller().params().orientation = BufferParams::ORIENTATION_LANDSCAPE;
+ params.orientation = BufferParams::ORIENTATION_LANDSCAPE;
else
- controller().params().orientation = BufferParams::ORIENTATION_PORTRAIT;
+ params.orientation = BufferParams::ORIENTATION_PORTRAIT;
- /* margins */
- controller().params().use_geometry =
- dialog_->marginsModule->marginCO->currentItem()==1;
+ // margins
+ params.use_geometry =
+ (dialog_->marginsModule->marginCO->currentItem() == 1);
int margin = dialog_->marginsModule->marginCO->currentItem();
- if (margin>0) {
+ if (margin > 0) {
margin = margin - 1;
}
- controller().params().paperpackage = char(margin);
+ params.paperpackage = char(margin);
- controller().params().leftmargin =
+ params.leftmargin =
LyXLength(dialog_->marginsModule->innerLE->text().toDouble(),
dialog_->marginsModule->innerUnit->currentLengthItem()
).asString();
- controller().params().topmargin =
+ params.topmargin =
LyXLength(dialog_->marginsModule->topLE->text().toDouble(),
dialog_->marginsModule->topUnit->currentLengthItem()
).asString();
- controller().params().rightmargin =
+ params.rightmargin =
LyXLength(dialog_->marginsModule->outerLE->text().toDouble(),
dialog_->marginsModule->outerUnit->currentLengthItem()
).asString();
- controller().params().bottommargin =
+ params.bottommargin =
LyXLength(dialog_->marginsModule->bottomLE->text().toDouble(),
dialog_->marginsModule->bottomUnit->currentLengthItem()
).asString();
- controller().params().headheight =
+ params.headheight =
LyXLength(dialog_->marginsModule->headheightLE->text().toDouble(),
dialog_->marginsModule->headheightUnit->currentLengthItem()
).asString();
- controller().params().headsep =
+ params.headsep =
LyXLength(dialog_->marginsModule->headsepLE->text().toDouble(),
dialog_->marginsModule->headsepUnit->currentLengthItem()
).asString();
- controller().params().footskip =
+ params.footskip =
LyXLength(dialog_->marginsModule->footskipLE->text().toDouble(),
dialog_->marginsModule->footskipUnit->currentLengthItem()
).asString();
}
+
namespace {
/** Return the position of val in the vector if found.
} // namespace anom
+
void QDocument::update_contents()
{
if (!dialog_.get())
return;
- /* preamble */
- QString preamble = controller().params().preamble.c_str();
+ BufferParams const & params = controller().params();
+
+ // preamble
+ QString preamble = params.preamble.c_str();
dialog_->preambleModule->preambleMLE->setText(preamble);
- /* biblio */
+ // biblio
dialog_->biblioModule->natbibCB->setChecked(
- controller().params().use_natbib);
+ params.use_natbib);
dialog_->biblioModule->citeStyleCO->setCurrentItem(
- controller().params().use_numerical_citations ? 1 : 0);
+ params.use_numerical_citations ? 1 : 0);
- /* language & quotes */
+ // language & quotes
dialog_->langModule->singleQuoteRB->setChecked(
- controller().params().quotes_times == InsetQuotes::SingleQ);
+ params.quotes_times == InsetQuotes::SingleQ);
dialog_->langModule->doubleQuoteRB->setChecked(
- controller().params().quotes_times == InsetQuotes::DoubleQ);
+ params.quotes_times == InsetQuotes::DoubleQ);
int const pos = int(findPos(lang_,
- controller().params().language->lang()));
+ params.language->lang()));
dialog_->langModule->languageCO->setCurrentItem(pos);
dialog_->langModule->quoteStyleCO->setCurrentItem(
- controller().params().quotes_language);
+ params.quotes_language);
- /* numbering */
+ // numbering
dialog_->numberingModule->tocDepthSB->setValue(
- controller().params().secnumdepth);
+ params.secnumdepth);
dialog_->numberingModule->sectionnrDepthSB->setValue(
- controller().params().tocdepth);
+ params.tocdepth);
- /* packages */
+ // packages
QStringList enc;
enc << "default" << "auto" << "latin1" << "latin2" << "latin3" <<
"latin4" << "latin5" << "latin9" << "koi8-r" << "koi8-u" <<
int pos2 = 0;
for (QStringList::Iterator it = enc.begin();
it!=enc.end(); ++it) {
- if (*it==controller().params().inputenc.c_str()) {
+ if (*it == params.inputenc.c_str()) {
dialog_->packagesModule->encodingCO->setCurrentItem(pos2);
}
++pos2;
}
- QString text = controller().params().graphicsDriver.c_str();
+ QString text = params.graphicsDriver.c_str();
int nitem = dialog_->packagesModule->psdriverCO->count();
for (int n = 0; n < nitem ; ++n) {
QString enc = tex_graphics[n];
dialog_->packagesModule->amsCB->setChecked(
- controller().params().use_amsmath);
+ params.use_amsmath);
dialog_->packagesModule->lspacingCO->
- setCurrentItem(controller().params().spacing.getSpace());
- if (controller().params().spacing.getSpace()==
- Spacing::Other) {
+ setCurrentItem(params.spacing.getSpace());
+ if (params.spacing.getSpace() == Spacing::Other) {
dialog_->packagesModule->lspacingLE->setText(
- tostr(controller().params().spacing.getValue()).c_str());
+ tostr(params.spacing.getValue()).c_str());
dialog_->setLSpacing(3);
}
- /* layout */
+ // layout
for (int n = 0; n<dialog_->layoutModule->classCO->count(); ++n) {
- if (dialog_->layoutModule->classCO->text(n)==
+ if (dialog_->layoutModule->classCO->text(n) ==
controller().textClass().description().c_str()) {
dialog_->layoutModule->classCO->setCurrentItem(n);
break;
}
dialog_->updateFontsize(controller().textClass().opt_fontsize(),
- controller().params().fontsize);
+ params.fontsize);
dialog_->updatePagestyle(controller().textClass().opt_pagestyle(),
- controller().params().pagestyle);
+ params.pagestyle);
for (int n = 0; tex_fonts[n][0]; ++n) {
- if (tex_fonts[n]==controller().params().fonts) {
+ if (tex_fonts[n] == params.fonts) {
dialog_->layoutModule->fontsCO->setCurrentItem(n);
break;
}
}
- if (controller().params().paragraph_separation
+ if (params.paragraph_separation
== BufferParams::PARSEP_INDENT) {
dialog_->layoutModule->indentRB->setChecked(true);
} else {
}
int skip = 0;
- switch (controller().params().getDefSkip().kind()) {
+ switch (params.getDefSkip().kind()) {
case VSpace::SMALLSKIP:
skip = 0;
break;
case VSpace::LENGTH:
{
skip = 3;
- string const length = controller().params().getDefSkip().asLyXCommand();
+ string const length = params.getDefSkip().asLyXCommand();
dialog_->layoutModule->skipLengthCO->setCurrentItem(LyXLength(length).unit());
dialog_->layoutModule->skipLE->setText(tostr(LyXLength(length).value()).c_str());
break;
dialog_->layoutModule->skipCO->setCurrentItem(skip);
dialog_->setSkip(skip);
- if (!controller().params().options.empty()) {
+ if (!params.options.empty()) {
dialog_->layoutModule->optionsLE->setText(
- controller().params().options.c_str());
+ params.options.c_str());
} else {
dialog_->layoutModule->optionsLE->setText("");
}
- /* paper */
- int const psize = controller().params().papersize2;
+ // paper
+ int const psize = params.papersize2;
dialog_->paperModule->papersizeCO->setCurrentItem(psize);
dialog_->setMargins(psize);
dialog_->setCustomPapersize(psize);
bool const landscape =
- controller().params().orientation == BufferParams::ORIENTATION_LANDSCAPE;
+ params.orientation == BufferParams::ORIENTATION_LANDSCAPE;
dialog_->paperModule->landscapeRB->setChecked(landscape);
dialog_->paperModule->portraitRB->setChecked(!landscape);
dialog_->paperModule->facingPagesCB->setChecked(
- controller().params().sides == LyXTextClass::TwoSides);
+ params.sides == LyXTextClass::TwoSides);
dialog_->paperModule->twoColumnCB->setChecked(
- controller().params().columns == 2);
+ params.columns == 2);
dialog_->paperModule->paperwidthUnitCO->setCurrentItem(
- LyXLength(controller().params().paperwidth).unit());
+ LyXLength(params.paperwidth).unit());
dialog_->paperModule->paperwidthLE->setText(
- tostr(LyXLength(controller().params().paperwidth).value()).c_str());
+ tostr(LyXLength(params.paperwidth).value()).c_str());
dialog_->paperModule->paperheightUnitCO->setCurrentItem(
- LyXLength(controller().params().paperheight).unit());
+ LyXLength(params.paperheight).unit());
dialog_->paperModule->paperheightLE->setText(
- tostr(LyXLength(controller().params().paperheight).value()).c_str());
+ tostr(LyXLength(params.paperheight).value()).c_str());
- /* margins */
- int item = controller().params().paperpackage;
- if (controller().params().use_geometry) {
+ // margins
+ int item = params.paperpackage;
+ if (params.use_geometry) {
item = 1;
} else if (item > 0) {
item = item + 1;
dialog_->setCustomMargins(item);
dialog_->marginsModule->topUnit->setCurrentItem(
- LyXLength(controller().params().topmargin).unit());
+ LyXLength(params.topmargin).unit());
dialog_->marginsModule->topLE->setText(
- tostr(LyXLength(controller().params().topmargin).value()).c_str());
+ tostr(LyXLength(params.topmargin).value()).c_str());
dialog_->marginsModule->bottomUnit->setCurrentItem(
- LyXLength(controller().params().bottommargin).unit());
+ LyXLength(params.bottommargin).unit());
dialog_->marginsModule->bottomLE->setText(
- tostr(LyXLength(controller().params().bottommargin).value()).c_str());
+ tostr(LyXLength(params.bottommargin).value()).c_str());
dialog_->marginsModule->innerUnit->setCurrentItem(
- LyXLength(controller().params().leftmargin).unit());
+ LyXLength(params.leftmargin).unit());
dialog_->marginsModule->innerLE->setText(
- tostr(LyXLength(controller().params().leftmargin).value()).c_str());
+ tostr(LyXLength(params.leftmargin).value()).c_str());
dialog_->marginsModule->outerUnit->setCurrentItem(
- LyXLength(controller().params().rightmargin).unit());
+ LyXLength(params.rightmargin).unit());
dialog_->marginsModule->outerLE->setText(
- tostr(LyXLength(controller().params().rightmargin).value()).c_str());
+ tostr(LyXLength(params.rightmargin).value()).c_str());
dialog_->marginsModule->headheightUnit->setCurrentItem(
- LyXLength(controller().params().headheight).unit());
+ LyXLength(params.headheight).unit());
dialog_->marginsModule->headheightLE->setText(
- tostr(LyXLength(controller().params().headheight).value()).c_str());
+ tostr(LyXLength(params.headheight).value()).c_str());
dialog_->marginsModule->headsepUnit->setCurrentItem(
- LyXLength(controller().params().headsep).unit());
+ LyXLength(params.headsep).unit());
dialog_->marginsModule->headsepLE->setText(
- tostr(LyXLength(controller().params().headsep).value()).c_str());
+ tostr(LyXLength(params.headsep).value()).c_str());
dialog_->marginsModule->footskipUnit->setCurrentItem(
- LyXLength(controller().params().footskip).unit());
+ LyXLength(params.footskip).unit());
dialog_->marginsModule->footskipLE->setText(
- tostr(LyXLength(controller().params().footskip).value()).c_str());
-
-
+ tostr(LyXLength(params.footskip).value()).c_str());
}
: public Qt2CB<ControlDocument, Qt2DB<QDocumentDialog> >
{
public:
- ///
- QDocument();
///
friend class QDocumentDialog;
+ ///
+ QDocument();
private:
/// Apply changes
void apply();
#include <qcheckbox.h>
#include <qspinbox.h>
#include "lengthcombo.h"
-/*
- * Constructs a DocumentDialog which is a child of 'parent', with the
- * name 'name' and widget flags set to 'f'
+
+
+/*
+ * Constructs a DocumentDialog 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.
form, SLOT(slotClose()));
connect(restorePB, SIGNAL(clicked()),
form, SLOT(slotRestore()));
-
+
moduleLB->clear();
moduleLB->insertItem( _("Layout"), LAYOUT );
moduleLB->insertItem( _("Packages"), PACKAGES );
moduleStack->addWidget(numberingModule,NUMBERING);
moduleStack->addWidget(biblioModule,BIBLIOGRAPHY);
moduleStack->addWidget(preambleModule,PREAMBLE);
-
+
moduleStack->raiseWidget(LAYOUT);
//QPixmap image("standard.xpm");
f.setWeight( QFont::Bold );
titleL->setFont( f );
setTitle(LAYOUT);
-
+
/* preamble */
connect( preambleModule->preambleMLE, SIGNAL( textChanged() ),
this , SLOT( change_adaptor() ) );
this , SLOT( change_adaptor() ) );
connect( layoutModule->skipLengthCO, SIGNAL( activated(int) ),
this , SLOT( change_adaptor() ) );
-
+
connect( layoutModule->classCO, SIGNAL( activated(int) ),
this , SLOT( classChanged() ) );
connect( layoutModule->skipCO, SIGNAL( activated(int) ),
this , SLOT( setSkip(int) ) );
connect( layoutModule->skipRB, SIGNAL( toggled(bool) ),
this , SLOT( enableSkip(bool) ) );
-
+
/* margins */
connect( marginsModule->marginCO, SIGNAL( activated(int) ),
this , SLOT( setCustomMargins(int) ) );
-
+
connect( marginsModule->marginCO, SIGNAL( activated(int) ),
this , SLOT( change_adaptor() ) );
connect( marginsModule->topLE, SIGNAL( textChanged(const QString&) ),
this , SLOT( change_adaptor() ) );
connect( marginsModule->footskipUnit, SIGNAL( activated(int) ),
this , SLOT( change_adaptor() ) );
-
+
/* paper */
connect( paperModule->papersizeCO, SIGNAL( activated(int) ),
this , SLOT( setMargins(int) ) );
this , SLOT( setCustomPapersize(int) ) );
connect( paperModule->papersizeCO, SIGNAL( activated(int) ),
this , SLOT( setCustomPapersize(int) ) );
-
+
connect( paperModule->papersizeCO, SIGNAL( activated(int) ),
this , SLOT( change_adaptor() ) );
connect( paperModule->paperheightLE, SIGNAL( textChanged(const QString&) ),
this , SLOT( change_adaptor() ) );
connect( paperModule->facingPagesCB, SIGNAL( toggled(bool) ),
this , SLOT( change_adaptor() ) );
-
+
}
+
void QDocumentDialog::showPreamble()
{
moduleStack->raiseWidget(PREAMBLE);
QDocumentDialogBase::show();
}
-/*
+
+/*
* Destroys the object and frees any allocated resources
*/
QDocumentDialog::~QDocumentDialog()
// no need to delete child widgets, Qt does it all for us
}
-/*
+
+/*
* public slot
*/
}
}
-/*
+
+/*
* public slot
*/
void QDocumentDialog::saveDocDefault()
{}
-/*
+
+/*
* public slot
*/
void QDocumentDialog::restore()
{
- qWarning( "DocumentDialog::restore() not yet implemented!" );
+ qWarning( "DocumentDialog::restore() not yet implemented!" );
}
-/*
+
+/*
* public slot
*/
void QDocumentDialog::useClassDefaults()
{
- qWarning( "DocumentDialog::useClassDefaults() not yet implemented!" );
+ qWarning( "DocumentDialog::useClassDefaults() not yet implemented!" );
}
+
void QDocumentDialog::change_adaptor()
{
form_->changed();
}
+
void QDocumentDialog::closeEvent(QCloseEvent * e)
{
form_->slotWMHide();
e->accept();
}
+
void QDocumentDialog::setLSpacing(int item)
{
- packagesModule->lspacingLE->setEnabled(item==3);
+ packagesModule->lspacingLE->setEnabled(item == 3);
}
+
void QDocumentDialog::setSkip(int item)
{
- bool enable = (item==3);
+ bool enable = (item == 3);
layoutModule->skipLE->setEnabled(enable);
layoutModule->skipLengthCO->setEnabled(enable);
}
+
void QDocumentDialog::enableSkip(bool skip)
{
layoutModule->skipCO->setEnabled(skip);
setSkip(layoutModule->skipCO->currentItem());
}
+
void QDocumentDialog::setMargins(int papersize)
{
QStringList a4only;
a4only << _("Small Margins") << _( "Very small Margins")
<< _("Very wide Margins ");
normal << _("Default") << _("Custom");
-
+
int olditem = marginsModule->marginCO->currentItem();
marginsModule->marginCO->clear();
marginsModule->marginCO->insertStringList(normal);
void QDocumentDialog::setCustomPapersize(int papersize)
{
- bool const custom = (papersize==1);
-
+ bool const custom = (papersize == 1);
+
paperModule->paperwidthL->setEnabled(custom);
paperModule->paperwidthLE->setEnabled(custom);
paperModule->paperwidthUnitCO->setEnabled(custom);
void QDocumentDialog::setCustomMargins(int margin)
{
- bool const custom = (margin==1);
-
+ bool const custom = (margin == 1);
+
marginsModule->topL->setEnabled(custom);
marginsModule->topLE->setEnabled(custom);
marginsModule->topUnit->setEnabled(custom);
}
+
void QDocumentDialog::updateFontsize(string const & items, string const & sel)
{
layoutModule->fontsizeCO->clear();
layoutModule->fontsizeCO->insertItem("default");
-
+
for (int n=0; !token(items,'|',n).empty(); ++n)
layoutModule->fontsizeCO->
insertItem(token(items,'|',n).c_str());
}
}
+
void QDocumentDialog::updatePagestyle(string const & items, string const & sel)
{
layoutModule->pagestyleCO->clear();
}
}
+
void QDocumentDialog::classChanged()
{
updateFontsize(form_->controller().textClass().opt_fontsize(),
form_->controller().params().fontsize);
-
+
updatePagestyle(form_->controller().textClass().opt_pagestyle(),
form_->controller().params().pagestyle);
-
-}
-
+}
class QDocument;
-class QDocumentDialog : public QDocumentDialogBase
-{
+class QDocumentDialog : public QDocumentDialogBase {
Q_OBJECT
-
public:
-
- QDocumentDialog( QDocument * );
-
+ friend class QDocument;
+
+ QDocumentDialog(QDocument *);
+
~QDocumentDialog();
void showPreamble();
-
- friend class QDocument;
- void updateFontsize(string const & , string const & );
-
- void updatePagestyle(string const & , string const & );
-
-public slots:
+ void updateFontsize(string const & , string const &);
+ void updatePagestyle(string const & , string const &);
+public slots:
void setTitle(int);
void change_adaptor();
void saveDocDefault();
void restore();
void useClassDefaults();
-
protected slots:
-
void setLSpacing(int);
void setMargins(int);
void setCustomPapersize(int);
void setSkip(int);
void enableSkip(bool);
void classChanged();
-
protected:
-
void closeEvent(QCloseEvent * e);
-
private:
enum Module {
LAYOUT,
BIBLIOGRAPHY,
PREAMBLE
};
-
+
ClassModuleBase * layoutModule;
PackagesModuleBase * packagesModule;
PaperModuleBase * paperModule;
typedef Qt2CB<ControlERT, Qt2DB<QERTDialog> > base_class;
+
QERT::QERT()
: base_class(_("LaTeX ERT"))
{
void QERT::apply()
{
+ ERTParams & params = controller().params();
+
if (dialog_->openRB->isChecked())
- controller().params().status = InsetERT::Open;
+ params.status = InsetERT::Open;
else if (dialog_->inlineRB->isChecked())
- controller().params().status = InsetERT::Inlined;
+ params.status = InsetERT::Inlined;
else
- controller().params().status = InsetERT::Collapsed;
+ params.status = InsetERT::Collapsed;
}
class ControlERT;
class QERTDialog;
-
-class QERT :
- public Qt2CB<ControlERT, Qt2DB<QERTDialog> >
+class QERT
+ : public Qt2CB<ControlERT, Qt2DB<QERTDialog> >
{
+public:
friend class QERTDialog;
-public:
QERT();
-
private:
/// Apply changes
virtual void apply();
#include <qpushbutton.h>
+
QERTDialog::QERTDialog(QERT * form)
: QERTDialogBase(0, 0, false, 0),
form_(form)
class QERT;
-class QERTDialog : public QERTDialogBase
-{ Q_OBJECT
-
+class QERTDialog : public QERTDialogBase {
+ Q_OBJECT
public:
QERTDialog(QERT * form);
-
protected slots:
virtual void change_adaptor();
-
protected:
virtual void closeEvent(QCloseEvent * e);
-
private:
QERT * form_;
};
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
#include "QErrorDialog.h"
#include "QError.h"
#include "Qt2BC.h"
-
+
typedef Qt2CB<ControlError, Qt2DB<QErrorDialog> > base_class;
+
QError::QError()
: base_class(_("LaTeX Error"))
{
class QErrorDialog;
-class QError :
- public Qt2CB<ControlError, Qt2DB<QErrorDialog> >
+class QError
+ : public Qt2CB<ControlError, Qt2DB<QErrorDialog> >
{
+public:
friend class QErrorDialog;
-public:
QError();
-
private:
/// Apply changes
- virtual void apply() {};
+ virtual void apply() {}
/// update
virtual void update_contents();
/// build the dialog
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
#include <config.h>
-
+
#ifdef __GNUG__
#pragma implementation
#endif
#include "QError.h"
-
+
#include <qwidget.h>
#include <qpushbutton.h>
#include "QErrorDialog.h"
+
QErrorDialog::QErrorDialog(QError * form)
: QErrorDialogBase(0, 0, false, 0),
form_(form)
class QError;
-class QErrorDialog : public QErrorDialogBase
-{ Q_OBJECT
-
+class QErrorDialog : public QErrorDialogBase {
+ Q_OBJECT
public:
QErrorDialog(QError * form);
-
protected:
virtual void closeEvent(QCloseEvent * e);
-
private:
QError * form_;
};
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
#pragma implementation
#endif
-#include <vector>
-
#include "ControlExternal.h"
#include "gettext.h"
#include "QExternalDialog.h"
#include "QExternal.h"
#include "Qt2BC.h"
-
+
+#include <vector>
+
typedef Qt2CB<ControlExternal, Qt2DB<QExternalDialog> > base_class;
+
QExternal::QExternal()
: base_class(_("External"))
{
dialog_->paramsED->setText(params.parameters.c_str());
dialog_->externalCO->setCurrentItem(controller().getTemplateNumber(params.templ.lyxName));
- dialog_->externalTV->setText(controller().params().templ.helpText.c_str());
+ dialog_->externalTV->setText(params.templ.helpText.c_str());
isValid();
}
string const & QExternal::helpText()
{
- controller().params().templ = controller().getTemplate(dialog_->externalCO->currentItem() + 1);
- return controller().params().templ.helpText;
+ InsetExternal::Params & params = controller().params();
+
+ params.templ = controller().getTemplate(dialog_->externalCO->currentItem() + 1);
+ return params.templ.helpText;
}
void QExternal::apply()
{
- controller().params().filename =
- string(dialog_->fileED->text().latin1());
- controller().params().parameters =
- string(dialog_->paramsED->text().latin1());
+ InsetExternal::Params & params = controller().params();
+
+ params.filename = dialog_->fileED->text().latin1();
+ params.parameters = dialog_->paramsED->text().latin1();
- controller().params().templ = controller().getTemplate(dialog_->externalCO->currentItem() + 1);
+ params.templ = controller().getTemplate(dialog_->externalCO->currentItem() + 1);
}
class ControlExternal;
class QExternalDialog;
-class QExternal :
- public Qt2CB<ControlExternal, Qt2DB<QExternalDialog> >
+class QExternal
+ : public Qt2CB<ControlExternal, Qt2DB<QExternalDialog> >
{
+public:
friend class QExternalDialog;
-public:
QExternal();
-
protected:
virtual bool isValid();
-
private:
/// Apply changes
virtual void apply();
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
#include "gettext.h"
#include "ControlExternal.h"
-
+
#include <qwidget.h>
#include <qpushbutton.h>
#include <qfiledialog.h>
#include "QExternalDialog.h"
#include "QExternal.h"
+
QExternalDialog::QExternalDialog(QExternal * form)
: QExternalDialogBase(0, 0, false, 0),
form_(form)
fileED->setFocus();
}
-
+
void QExternalDialog::change_adaptor()
{
form_->changed();
void QExternalDialog::browseClicked()
{
- QString file = QFileDialog::getOpenFileName(QString::null,
- _("External material (*)"), this, 0, _("Select external material"));
+ QString file =
+ QFileDialog::getOpenFileName(QString::null,
+ _("External material (*)"),
+ this, 0,
+ _("Select external material"));
if (!file.isNull()) {
fileED->setText(file.latin1());
form_->changed();
class QExternal;
-class QExternalDialog : public QExternalDialogBase
-{ Q_OBJECT
-
+class QExternalDialog : public QExternalDialogBase {
+ Q_OBJECT
public:
QExternalDialog(QExternal * form);
virtual void show();
-
protected slots:
virtual void change_adaptor();
virtual void editClicked();
virtual void updateClicked();
virtual void browseClicked();
virtual void templateChanged();
-
protected:
virtual void closeEvent(QCloseEvent * e);
-
private:
QExternal * form_;
};
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author Edwin Leuven
+ * \author Edwin Leuven
*
* Full author contact details are available in file CREDITS
*/
typedef Qt2CB<ControlFloat, Qt2DB<QFloatDialog> > base_class;
+
QFloat::QFloat()
: base_class(_("Float Settings"))
{
bool force = false;
bool here_definitely = false;
- string const placement(controller().params().placement);
+ FloatParams const & params = controller().params();
+
+ string const & placement = params.placement;
if (placement.empty()) {
def_placement = true;
here = true;
}
}
-
+
dialog_->defaultsCB->setChecked(def_placement);
dialog_->topCB->setChecked(top);
dialog_->bottomCB->setChecked(bottom);
dialog_->ignoreCB->setChecked(force);
dialog_->ignoreCB->setEnabled(top || bottom || page || here);
dialog_->heredefinitelyCB->setChecked(here_definitely);
-
- if (controller().params().wide) {
+
+ if (params.wide) {
dialog_->herepossiblyCB->setChecked(false);
dialog_->bottomCB->setChecked(false);
}
-
- dialog_->spanCB->setChecked(controller().params().wide);
+
+ dialog_->spanCB->setChecked(params.wide);
}
-
+
void QFloat::apply()
{
- controller().params().wide = dialog_->spanCB->isChecked();
+ FloatParams & params = controller().params();
+
+ params.wide = dialog_->spanCB->isChecked();
if (dialog_->defaultsCB->isChecked()) {
- controller().params().placement = "";
+ params.placement.erase();
return;
}
-
+
string placement;
if (dialog_->heredefinitelyCB->isChecked()) {
placement += "h";
}
}
- controller().params().placement = placement;
+ params.placement = placement;
}
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author Edwin Leuven
+ * \author Edwin Leuven
*
* Full author contact details are available in file CREDITS
*/
#include "QFloatDialog.h"
#include "QFloat.h"
-
+
+
QFloatDialog::QFloatDialog(QFloat * form)
: QFloatDialogBase(0, 0, false, 0),
form_(form)
allow |= herepossiblyCB->isChecked();
ignoreCB->setEnabled(allow);
}
-
+
void QFloatDialog::heredefinitelyClicked()
{
bool const span(spanCB->isChecked());
if (!defaultsCB->isChecked()) {
- herepossiblyCB->setEnabled(!span);
- heredefinitelyCB->setEnabled(!span);
+ herepossiblyCB->setEnabled(!span);
+ heredefinitelyCB->setEnabled(!span);
}
if (!span)
return;
-
+
herepossiblyCB->setChecked(false);
heredefinitelyCB->setChecked(false);
}
class QFloat;
-class QFloatDialog : public QFloatDialogBase
-{ Q_OBJECT
-
+class QFloatDialog : public QFloatDialogBase {
+ Q_OBJECT
public:
QFloatDialog(QFloat * form);
-
protected slots:
virtual void change_adaptor();
virtual void tbhpClicked();
virtual void heredefinitelyClicked();
virtual void spanClicked();
-
protected:
virtual void closeEvent(QCloseEvent * e);
-
private:
QFloat * form_;
};
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
- * \author Edwin Leuven
+ * \author John Levon
+ * \author Edwin Leuven
*
* Full author contact details are available in file CREDITS
*/
typedef Qt2CB<ControlGraphics, Qt2DB<QGraphicsDialog> > base_class;
+
QGraphics::QGraphics()
: base_class(_("Graphics"))
{
string unit = "cm";
switch (lyxrc.default_papersize) {
case BufferParams::PAPER_DEFAULT: break;
-
+
case BufferParams::PAPER_USLETTER:
case BufferParams::PAPER_LEGALPAPER:
- case BufferParams::PAPER_EXECUTIVEPAPER: unit = "in"; break;
-
+ case BufferParams::PAPER_EXECUTIVEPAPER:
+ unit = "in";
+ break;
+
case BufferParams::PAPER_A3PAPER:
case BufferParams::PAPER_A4PAPER:
case BufferParams::PAPER_A5PAPER:
- case BufferParams::PAPER_B5PAPER: unit = "cm"; break;
+ case BufferParams::PAPER_B5PAPER:
+ unit = "cm";
+ break;
}
dialog_->filename->setText(igp.filename.c_str());
dialog_->subfigure->setChecked(igp.subcaption);
dialog_->subcaption->setText(igp.subcaptionText.c_str());
- int item;
+ int item = 0;
switch (igp.display) {
case grfx::DefaultDisplay: item = 0; break;
case grfx::MonochromeDisplay: item = 1; break;
igp.filename = dialog_->filename->text();
if (!controller().bbChanged) {
- igp.bb = string();
+ igp.bb.erase();
} else {
string bb;
string lbX(dialog_->lbX->text());
if (!dialog_->displayCB->isChecked())
igp.display = grfx::NoDisplay;
-
+
string value(dialog_->width->text());
igp.width = LyXLength(strToDbl(value), dialog_->widthUnit->currentLengthItem());
value = string(dialog_->height->text());
igp.keepAspectRatio = dialog_->aspectratio->isChecked();
igp.noUnzip = dialog_->unzipCB->isChecked();
-
+
igp.lyxscale = strToInt(string(dialog_->displayscale->text()));
igp.rotateAngle = strToDbl(string(dialog_->angle->text()));
if ((dialog_->origin->currentItem()) > 0)
igp.rotateOrigin = dialog_->origin->currentText();
else
- igp.rotateOrigin = string();
+ igp.rotateOrigin.erase();
igp.special = dialog_->latexoptions->text();
}
bool QGraphics::isValid()
{
- // FIXME: we need more here.
+ // FIXME: we need more here.
return !string(dialog_->filename->text().latin1()).empty();
}
friend class QGraphicsDialog;
///
QGraphics();
-
protected:
virtual bool isValid();
-
private:
/// Apply changes
virtual void apply();
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
#pragma implementation
#endif
-#include <vector>
-
#include "ControlGraphics.h"
#include "debug.h"
#include "LString.h"
#include "QGraphicsDialog.h"
#include "QGraphics.h"
+#include <vector>
+
+
QGraphicsDialog::QGraphicsDialog(QGraphics * form)
: QGraphicsDialogBase(0, 0, false, 0),
form_(form)
void QGraphicsDialog::show()
-{
+{
QGraphicsDialogBase::show();
filename->setFocus();
}
-
+
void QGraphicsDialog::change_adaptor()
{
form_->changed();
class QGraphics;
-class QGraphicsDialog : public QGraphicsDialogBase
-{ Q_OBJECT
-
+class QGraphicsDialog : public QGraphicsDialogBase {
+ Q_OBJECT
public:
QGraphicsDialog(QGraphics * form);
virtual void show();
-
protected slots:
virtual void change_adaptor();
virtual void browse_clicked();
virtual void get_clicked();
-
protected:
virtual void closeEvent(QCloseEvent * e);
-
private:
QGraphics * form_;
};
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
#include "ControlInclude.h"
#include "gettext.h"
#include "debug.h"
-
+
#include "QIncludeDialog.h"
#include "QInclude.h"
#include "Qt2BC.h"
#include <qcheckbox.h>
#include <qcombobox.h>
+
typedef Qt2CB<ControlInclude, Qt2DB<QIncludeDialog> > base_class;
+
QInclude::QInclude()
: base_class(_("Include"))
{
void QInclude::update_contents()
{
- dialog_->filenameED->setText(controller().params().cparams.getContents().c_str());
+ InsetInclude::Params const & params = controller().params();
+
+ dialog_->filenameED->setText(params.cparams.getContents().c_str());
- string const cmdname = controller().params().cparams.getCmdName();
+ string const & cmdname = params.cparams.getCmdName();
dialog_->visiblespaceCB->setChecked(false);
dialog_->visiblespaceCB->setEnabled(false);
void QInclude::apply()
{
- controller().params().cparams.
- setContents(dialog_->filenameED->text().latin1());
+ InsetInclude::Params & params = controller().params();
+
+ params.cparams.setContents(dialog_->filenameED->text().latin1());
int const item = dialog_->typeCO->currentItem();
if (item == 0)
- controller().params().flag = InsetInclude::INPUT;
+ params.flag = InsetInclude::INPUT;
else if (item == 1)
- controller().params().flag = InsetInclude::INCLUDE;
+ params.flag = InsetInclude::INCLUDE;
else {
if (dialog_->visiblespaceCB->isChecked())
- controller().params().flag = InsetInclude::VERBAST;
+ params.flag = InsetInclude::VERBAST;
else
- controller().params().flag = InsetInclude::VERB;
+ params.flag = InsetInclude::VERB;
}
}
ControlInclude::Type type;
int const item = dialog_->typeCO->currentItem();
- if (item==0)
+ if (item == 0)
type = ControlInclude::INPUT;
- else if (item==1)
+ else if (item == 1)
type = ControlInclude::INCLUDE;
else
type = ControlInclude::VERBATIM;
friend class QIncludeDialog;
///
QInclude();
-
protected:
virtual bool isValid();
-
private:
/// Apply changes
virtual void apply();
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
#pragma implementation
#endif
-#include <vector>
-
#include "ControlInclude.h"
#include "debug.h"
#include "LString.h"
#include "QIncludeDialog.h"
#include "QInclude.h"
+#include <vector>
+
+
QIncludeDialog::QIncludeDialog(QInclude * form)
: QIncludeDialogBase(0, 0, false, 0),
form_(form)
{
QIncludeDialogBase::show();
filenameED->setFocus();
-}
-
+}
+
void QIncludeDialog::change_adaptor()
{
class QInclude;
-class QIncludeDialog : public QIncludeDialogBase
-{ Q_OBJECT
-
+class QIncludeDialog : public QIncludeDialogBase {
+ Q_OBJECT
public:
QIncludeDialog(QInclude * form);
void updateLists();
virtual void show();
-
protected slots:
virtual void change_adaptor();
virtual void loadClicked();
virtual void browseClicked();
virtual void typeChanged(int v);
-
protected:
virtual void closeEvent(QCloseEvent * e);
-
private:
QInclude * form_;
};
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
typedef Qt2CB<ControlIndex, Qt2DB<QIndexDialog> > base_class;
+
QIndex::QIndex()
: base_class(_("Index"))
{
class QIndex :
public Qt2CB<ControlIndex, Qt2DB<QIndexDialog> >
{
+public:
friend class QIndexDialog;
-public:
QIndex();
-
protected:
virtual bool isValid();
-
private:
/// Apply changes
virtual void apply();
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
#include "QIndex.h"
#include "QIndexDialog.h"
-
+
#include <qpushbutton.h>
#include <qlineedit.h>
#include <qwhatsthis.h>
+
QIndexDialog::QIndexDialog(QIndex * form)
: QIndexDialogBase(0, 0, false, 0),
form_(form)
void QIndexDialog::show()
{
- QIndexDialogBase::show();
+ QIndexDialogBase::show();
keywordED->setFocus();
}
-
+
void QIndexDialog::change_adaptor()
{
form_->changed();
class QIndex;
-class QIndexDialog : public QIndexDialogBase
-{ Q_OBJECT
-
+class QIndexDialog : public QIndexDialogBase {
+ Q_OBJECT
public:
QIndexDialog(QIndex * form);
virtual void show();
-
protected slots:
virtual void change_adaptor();
-
protected:
virtual void closeEvent(QCloseEvent * e);
-
private:
QIndex * form_;
};
* Licence details can be found in the file COPYING.
*
* \author Angus Leeming
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
Image::FormatList QLImage::loadableFormats()
{
static FormatList fmts;
-
+
if (!fmts.empty())
return fmts;
<< "\nThe image loader can load the following directly:\n";
QStrList qt_formats = QImageIO::inputFormats();
-
+
QStrListIterator it(qt_formats);
for (; it.current(); ++it) {
lyxerr[Debug::GRAPHICS] << it.current() << endl;
string ext = lowercase(it.current());
-
+
// special case
if (ext == "jpeg")
ext = "jpg";
QLImage::QLImage(QLImage const & other)
- : Image(other), pixmap_(other.pixmap_), xformed_pixmap_(other.xformed_pixmap_)
+ : Image(other), pixmap_(other.pixmap_),
+ xformed_pixmap_(other.xformed_pixmap_)
{
}
finishedLoading(false);
return;
}
- lyxerr[Debug::GRAPHICS] << "just Loaded." << endl;
+ lyxerr[Debug::GRAPHICS] << "just Loaded." << endl;
xformed_pixmap_ = pixmap_;
lyxerr[Debug::GRAPHICS] << "pixmap isNull " << pixmap_.isNull()
<< " xformed_pixmap_ isNull " << xformed_pixmap_.isNull() << endl;
- finishedLoading(true);
+ finishedLoading(true);
}
return false;
lyxerr[Debug::GRAPHICS] << "setPixmap()" << endl;
-
+
// FIXME
-#if 0
+#if 0
int color_key;
switch (params.display) {
case MonochromeDisplay:
flimage_replace_pixel(image_, image_->fill_color, fill);
image_->fill_color = fill;
}
-#endif
+#endif
return true;
}
// degree units.
lyxerr[Debug::GRAPHICS] << "rotating image by " << params.angle << " degrees" << endl;
-
+
QWMatrix m;
m.rotate(-params.angle);
xformed_pixmap_ = xformed_pixmap_.xForm(m);
namespace grfx {
-class QLImage : public Image
-{
+class QLImage : public Image {
public:
/// Access to this class is through this static method.
static ImagePtr newImage();
/// Scale the image using params.
virtual void scale(Params const & params);
-
private:
/// Access to the class is through newImage() and clone.
QLImage();
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
#pragma implementation
#endif
-#include <iostream>
-#include <boost/scoped_array.hpp>
-
#include "font_metrics.h"
-#include "support/lstrings.h"
+#include "support/lstrings.h"
#include "lyxrc.h"
#include "debug.h"
#include "LyXView.h"
#include "qfont_loader.h"
#include "QLPainter.h"
#include "QLImage.h"
-
+
+#include <boost/scoped_array.hpp>
+
#include <qpainter.h>
-#include <qbrush.h>
+#include <qbrush.h>
#include <qcolor.h>
+#include <iostream>
+
using std::endl;
+
QLPainter::QLPainter(QWorkArea & qwa)
: Painter(), owner_(qwa), paint_check_(0)
{
- qp_.reset(new QPainter());
+ qp_.reset(new QPainter);
}
qp_->begin(owner_.getPixmap());
}
-
+
void QLPainter::end()
{
if (paint_check_ == 0) {
}
}
-
+
int QLPainter::paperWidth() const
{
return owner_.workWidth();
return owner_.workHeight();
}
-
-QPainter & QLPainter::setPen(LColor::color c,
+
+QPainter & QLPainter::setPen(LColor::color c,
Painter::line_style ls, Painter::line_width lw)
{
QPen pen = qp_->pen();
-
+
pen.setColor(lcolor.getX11Name(c).c_str());
-
+
switch (ls) {
case line_solid: pen.setStyle(QPen::SolidLine); break;
case line_onoffdash: pen.setStyle(QPen::DotLine); break;
}
-
+
switch (lw) {
case line_thin: pen.setWidth(0); break;
case line_thick: pen.setWidth(3); break;
}
-
+
qp_->setPen(pen);
return *qp_;
}
-
-
+
+
Painter & QLPainter::point(int x, int y, LColor::color c)
{
setPen(c).drawPoint(x, y);
}
-Painter & QLPainter::line(int x1, int y1,
+Painter & QLPainter::line(int x1, int y1,
int x2, int y2,
LColor::color col,
line_style ls,
}
-Painter & QLPainter::lines(int const * xp, int const * yp,
+Painter & QLPainter::lines(int const * xp, int const * yp,
int np,
LColor::color col,
line_style ls,
// Must use new as np is not known at compile time.
boost::scoped_array<QCOORD> points(new QCOORD[np * 2]);
- int j = 0;
-
- for (int i = 0; i < np; ++i) {
+ for (int i = 0, j = 0; i < np; ++i) {
points[j++] = xp[i];
points[j++] = yp[i];
}
}
-Painter & QLPainter::rectangle(int x, int y,
+Painter & QLPainter::rectangle(int x, int y,
int w, int h,
LColor::color col,
line_style ls,
line_width lw)
{
- //lyxerr << "rectangle " << x<<","<<y << " " <<w<<","<<h<<endl;
+ //lyxerr << "rectangle " << x<<","<<y << " " <<w<<","<<h<<endl;
setPen(col, ls, lw).drawRect(x, y, w, h);
return *this;
}
-Painter & QLPainter::fillRectangle(int x, int y,
+Painter & QLPainter::fillRectangle(int x, int y,
int w, int h,
LColor::color col)
{
- //lyxerr << "fillRectangle " << x<<","<<y << " " <<w<<","<<h<<endl;
+ //lyxerr << "fillRectangle " << x<<","<<y << " " <<w<<","<<h<<endl;
qp_->fillRect(x, y, w, h, QColor(lcolor.getX11Name(col).c_str()));
return *this;
}
-Painter & QLPainter::fillPolygon(int const * xp, int const * yp,
+Painter & QLPainter::fillPolygon(int const * xp, int const * yp,
int np, LColor::color col)
{
// Must use new as np is not known at compile time.
boost::scoped_array<QCOORD> points(new QCOORD[np * 2]);
- //if (1) return *this;
- int j = 0;
-
- for (int i = 0; i < np; ++i) {
+ //if (1) return *this;
+
+ for (int i = 0, j = 0; i < np; ++i) {
points[j++] = xp[i];
points[j++] = yp[i];
}
setPen(col);
- qp_->setBrush(lcolor.getX11Name(col).c_str());
+ qp_->setBrush(lcolor.getX11Name(col).c_str());
qp_->drawPolygon(QPointArray(np, points.get()));
qp_->setBrush(Qt::NoBrush);
return *this;
}
-
+
Painter & QLPainter::arc(int x, int y,
unsigned int w, unsigned int h,
int a1, int a2, LColor::color col)
lyxerr[Debug::GUI] << "arc: " << x<<","<<y
<< " " << w<<","<<h << ", angles "
<< a1 << " - " << a2 << endl;
- // LyX usings 1/64ths degree, Qt usings 1/16th
+ // LyX usings 1/64ths degree, Qt usings 1/16th
setPen(col).drawArc(x, y, w, h, a1 / 4, a2 / 4);
- return *this;
+ return *this;
}
-
-Painter & QLPainter::image(int x, int y,
+
+Painter & QLPainter::image(int x, int y,
int w, int h,
grfx::Image const & i)
{
}
-Painter & QLPainter::text(int x, int y,
+Painter & QLPainter::text(int x, int y,
string const & s, LyXFont const & f)
{
return text(x, y, s.data(), s.length(), f);
}
-Painter & QLPainter::text(int x, int y,
+Painter & QLPainter::text(int x, int y,
char c, LyXFont const & f)
{
char s[2] = { c, '\0' };
QFont const & qsmallfont = fontloader.get(smallfont);
QFontMetrics const & qfontm = QFontMetrics(qfont);
QFontMetrics const & qsmallfontm = QFontMetrics(qsmallfont);
-
+
int tmpx = x;
size_t ls = s.length();
for (size_t i = 0; i < ls; ++i) {
}
}
-
-Painter & QLPainter::text(int x, int y,
+
+Painter & QLPainter::text(int x, int y,
char const * s, size_t ls,
LyXFont const & f)
{
str[i] = QChar(encoding->ucs(s[i]));
// HACK: QT3 refuses to show single compose characters
if (ls = 1 && str[0].unicode() >= 0x05b0 && str[0].unicode() <= 0x05c2)
- str = ' '+str;
+ str = ' ' + str;
#else
for (size_t i = 0; i < ls; ++i)
str += QChar(encoding->ucs(s[i]));
if (f.underbar() == LyXFont::ON) {
underline(f, x, y, font_metrics::width(s, ls, f));
}
-
+
return *this;
}
/// draw a char at position x, y (y is the baseline)
virtual Painter & text(int x, int y,
char c, LyXFont const & f);
-
private:
/// draw small caps text
void smallCapsText(int x, int y,
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
#include "MenuBackend.h"
#include "lyxfunc.h"
#include "debug.h"
-
+
#include "QtView.h"
-
+
#include "QLPopupMenu.h"
#include "support/lstrings.h"
using std::pair;
using std::make_pair;
-
+
namespace {
-
+
string const getLabel(MenuItem const & mi)
{
string const shortcut = mi.shortcut();
- string label = mi.label();
+ string label = subst(mi.label(), "&", "&&");
- label = subst(label, "&", "&&");
-
if (shortcut.empty())
return label;
-
+
string::size_type pos = label.find(shortcut);
if (pos == string::npos)
return label;
label.insert(pos, "&");
-
+
return label;
}
-}
+} // namespace anon
-pair<int, QLPopupMenu *> createMenu(QMenuData * parent, MenuItem const * item, Menubar::Pimpl * owner, bool is_toplevel)
+pair<int, QLPopupMenu *>
+createMenu(QMenuData * parent, MenuItem const * item, Menubar::Pimpl * owner, bool is_toplevel)
{
// FIXME: leaks ??
QLPopupMenu * pm = new QLPopupMenu(owner, item->submenuname(), is_toplevel);
int id = parent->insertItem(getLabel(*item).c_str(), pm);
return make_pair(id, pm);
}
-
-
-QLPopupMenu::QLPopupMenu(Menubar::Pimpl * owner, string const & name, bool toplevel)
+
+
+QLPopupMenu::QLPopupMenu(Menubar::Pimpl * owner,
+ string const & name, bool toplevel)
: owner_(owner), name_(name)
{
if (toplevel)
connect(this, SIGNAL(activated(int)),
owner_->view(), SLOT(activated(int)));
}
-
+
bool QLPopupMenu::disabled(Menu * menu)
{
bool disable = true;
-
+
Menu::const_iterator m = menu->begin();
Menu::const_iterator end = menu->end();
for (; m != end; ++m) {
- if (m->kind() == MenuItem::Submenu && !disabled(m->submenu())) {
+ if (m->kind() == MenuItem::Submenu
+ && !disabled(m->submenu())) {
disable = false;
} else {
FuncStatus const status =
- owner_->view()->getLyXFunc().getStatus(m->action());
+ owner_->view()->getLyXFunc()
+ .getStatus(m->action());
if (!status.disabled())
disable = false;
}
}
return disable;
}
-
+
void QLPopupMenu::populate(Menu * menu)
{
}
}
-
+
void QLPopupMenu::showing()
{
clear();
Menu tomenu;
Menu const frommenu = owner_->backend().getMenu(name_);
owner_->backend().expand(frommenu, tomenu, owner_->view()->buffer());
- populate(&tomenu);
+ populate(&tomenu);
}
/// create a sub-menu
std::pair<int, QLPopupMenu *>
- createMenu(QMenuData * parent, MenuItem const * item, Menubar::Pimpl * owner, bool is_toplevel = false);
+createMenu(QMenuData * parent, MenuItem const * item,
+ Menubar::Pimpl * owner, bool is_toplevel = false);
/// a submenu
class QLPopupMenu : public QPopupMenu {
Q_OBJECT
public:
- QLPopupMenu(Menubar::Pimpl * owner, string const & name, bool toplevel);
+ QLPopupMenu(Menubar::Pimpl * owner,
+ string const & name, bool toplevel);
/// populate the menu
void populate(Menu * menu);
-
public slots:
/// populate the toplevel menu and all children
void showing();
-
private:
/// return true if the given submenu is disabled
bool disabled(Menu * menu);
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
#include <config.h>
-#include <fstream>
#ifdef __GNUG__
#pragma implementation
#include "LyXView.h"
#include "gettext.h"
#include "ControlLog.h"
+#include "Lsstream.h"
#include <qtextview.h>
#include <qpushbutton.h>
#include "QLog.h"
#include "Qt2BC.h"
+#include <fstream>
+
using std::ifstream;
using std::getline;
void QLog::update_contents()
{
- std::pair<Buffer::LogType, string> const logfile = controller().logfile();
+ std::pair<Buffer::LogType, string> const & logfile =
+ controller().logfile();
if (logfile.first == Buffer::buildlog)
dialog_->setCaption(_("Build log"));
return;
}
- string text;
- string line;
-
- while (getline(ifstr, line))
- text += line + "\n";
+ ostringstream ost;
+ ost << ifstr.rdbuf();
- dialog_->logTV->setText(text.c_str());
+ dialog_->logTV->setText(ost.str().c_str());
}
friend class QLogDialog;
///
QLog();
-
private:
/// Apply changes
- virtual void apply() {};
+ virtual void apply() {}
/// update
virtual void update_contents();
/// build the dialog
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
#pragma implementation
#endif
-#include <vector>
-
#include "LyXView.h"
#include "ControlLog.h"
#include <qpushbutton.h>
#include <qtextview.h>
-
+
#include "QLogDialog.h"
#include "QLog.h"
+#include <vector>
+
+
QLogDialog::QLogDialog(QLog * form)
: QLogDialogBase(0, 0, false, 0),
form_(form)
class QLog;
-class QLogDialog : public QLogDialogBase
-{ Q_OBJECT
-
+class QLogDialog : public QLogDialogBase {
+ Q_OBJECT
public:
QLogDialog(QLog * form);
-
protected slots:
virtual void updateClicked();
-
protected:
virtual void closeEvent(QCloseEvent * e);
-
private:
QLog * form_;
};
* Licence details can be found in the file COPYING.
*
* \author Asger and Juergen
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
#include "QLyXKeySym.h"
#include "qlkey.h"
#include "debug.h"
-
+
#include <qevent.h>
using std::endl;
+
QLyXKeySym::QLyXKeySym()
: LyXKeySym(), key_(0)
{
}
-
-
+
+
void QLyXKeySym::set(QKeyEvent * ev)
{
key_ = ev->key();
- text_ = ev->text();
+ text_ = ev->text();
}
-
+
void QLyXKeySym::init(string const & symbolname)
{
lyxerr[Debug::KEY] << "Init key to " << key_ << ", " << text_ << endl;
}
-
+
bool QLyXKeySym::isOK() const
{
return ! key_ == 0;
}
-
+
bool QLyXKeySym::isModifier() const
{
return sym;
}
-
+
char QLyXKeySym::getISOEncoded() const
{
lyxerr[Debug::KEY] << "getISO returning " << text_.latin1()[0] << endl;
- return text_.latin1()[0];
+ return text_.latin1()[0];
}
-
-bool QLyXKeySym::operator==(LyXKeySym const & k) const
+
+bool operator==(LyXKeySym const & k1, LyXKeySym const & k2)
{
- QLyXKeySym const & o = static_cast<QLyXKeySym const &>(k);
- // ignore text_ !
- return o.key_ == key_;
+ // note we ignore text_ here (non-strict ==), because
+ // text_ is not filled out by keymap initialisation
+
+ return static_cast<QLyXKeySym const &>(k1).key()
+ == static_cast<QLyXKeySym const &>(k2).key();
+
}
* This relies on user to use the right encoding.
*/
virtual char getISOEncoded() const;
-
- virtual bool operator==(LyXKeySym const & k) const;
-
+ ///
+ int key() const {
+ return key_;
+ }
private:
/// the Qt sym value
int key_;
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
#endif
#include "debug.h"
-
+
#include "commandtags.h"
#include "funcrequest.h"
#include "LyXView.h"
#include "BufferView.h"
-
+
#include "QMathDialog.h"
#include "QMath.h"
#include "iconpalette.h"
-// FIXME temporary HACK !
+// needless to say, this can't last for long
+extern BufferView * current_view;
+
+
+// FIXME temporary HACK !
void createMathPanel()
{
- static QMath * dialog = 0;
+ static QMath * dialog = 0;
if (!dialog) {
- dialog = new QMath();
+ dialog = new QMath;
dialog->build_dialog();
}
dialog->do_show();
}
-
-
+
+
QMath::QMath()
{
}
{
dialog_->show();
}
-
-
+
+
void QMath::build_dialog()
{
dialog_ = new QMathDialog(this);
}
-
-// needless to say, this can't last for long
-extern BufferView * current_view;
void QMath::subscript()
{
{
current_view->owner()->dispatch(FuncRequest(LFUN_INSERT_MATH, '\\' + name));
}
-
+
void QMath::insertCubeRoot()
{
current_view->owner()->dispatch(FuncRequest(LFUN_INSERT_MATRIX, "2 2"));
}
-
+
void QMath::insertDelim(string const & str)
{
current_view->owner()->dispatch(FuncRequest(LFUN_MATH_DELIM, str));
}
-
+
void QMath::toggleDisplay()
{
current_view->owner()->dispatch(FuncRequest(LFUN_MATH_DISPLAY));
class QMathDialog;
-class QMath
-{
+class QMath {
public:
friend class QMathDialog;
/// switch between display and inline
void toggleDisplay();
-
private:
/// Apply changes
virtual void apply() {}
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
#include "support/filetools.h"
#include "gettext.h"
#include "debug.h"
-
+
#include "QMathDialog.h"
#include "QMath.h"
#include "ControlMath.h"
#include "iconpalette.h"
#include "QDelimiterDialog.h"
-
+
#include <qapplication.h>
#include <qwidgetstack.h>
#include <qcombobox.h>
#include <qlayout.h>
#include <qpopupmenu.h>
#include <qcursor.h>
-
+
using std::min;
using std::max;
using std::endl;
-
+
+
class QScrollViewSingle : public QScrollView {
public:
QScrollViewSingle(QWidget * p)
setBackgroundMode(PaletteBackground);
viewport()->setBackgroundMode(PaletteBackground);
}
-
+
void setChild(QWidget * w) {
- w_ = w;
+ w_ = w;
setMinimumWidth(verticalScrollBar()->width() + w_->width() + 4);
addChild(w_);
}
-
protected:
virtual void resizeEvent(QResizeEvent * e) {
QScrollView::resizeEvent(e);
if (!w_)
return;
-
+
w_->resize(viewport()->width(), w_->height());
// force the resize to get accurate scrollbars
qApp->processEvents();
resizeContents(w_->width(), w_->height());
}
-
private:
- QWidget * w_;
+ QWidget * w_;
};
-
-namespace {
- char const ** panels[] = {
- latex_bop, latex_varsz, latex_brel, latex_greek, latex_arrow,
- latex_dots, latex_deco, latex_misc, latex_ams_ops,
- latex_ams_rel, latex_ams_nrel, latex_ams_arrows,
- latex_ams_misc
- };
- int const nr_panels = sizeof(panels)/sizeof(panels[0]);
+
+namespace {
+
+char const ** panels[] = {
+ latex_bop, latex_varsz, latex_brel, latex_greek, latex_arrow,
+ latex_dots, latex_deco, latex_misc, latex_ams_ops,
+ latex_ams_rel, latex_ams_nrel, latex_ams_arrows,
+ latex_ams_misc
+};
+
+int const nr_panels = sizeof(panels)/sizeof(panels[0]);
bool panel_initialised[nr_panels];
-}
-
-
+
+} // namespace anon
+
+
QMathDialog::QMathDialog(QMath * form)
: QMathDialogBase(0, 0, false, 0),
form_(form)
{
- connect(symbolsCO, SIGNAL(activated(int)), symbolsWS, SLOT(raiseWidget(int)));
+ connect(symbolsCO, SIGNAL(activated(int)), symbolsWS, SLOT(raiseWidget(int)));
for (int i = 0; *function_names[i]; ++i) {
functionsLB->insertItem(function_names[i]);
}
-
- for (int i = 0; i < nr_panels; ++i) {
+
+ for (int i = 0; i < nr_panels; ++i) {
QScrollViewSingle * view = new QScrollViewSingle(symbolsWS);
symbolsWS->addWidget(view, i);
}
symbolsWS->raiseWidget(0);
addPanel(0);
panel_initialised[0] = true;
-
+
connect(symbolsWS, SIGNAL(aboutToShow(int)), this, SLOT(showingPanel(int)));
-
+
QPopupMenu * m = new QPopupMenu(spacePB);
m->setCaption(_("LyX: Insert space"));
m->insertTearOffHandle();
- m->insertItem(_("Thin space \\,"), 1);
- m->insertItem(_("Medium space \\:"), 2);
- m->insertItem(_("Thick space \\;"), 3);
- m->insertItem(_("Quadratin space \\quad"), 4);
- m->insertItem(_("Double quadratin space \\qquad"), 5);
+ m->insertItem(_("Thin space \\,"), 1);
+ m->insertItem(_("Medium space \\:"), 2);
+ m->insertItem(_("Thick space \\;"), 3);
+ m->insertItem(_("Quadratin space \\quad"), 4);
+ m->insertItem(_("Double quadratin space \\qquad"), 5);
m->insertItem(_("Negative space \\!"), 6);
connect(m, SIGNAL(activated(int)), this, SLOT(insertSpace(int)));
spacePB->setPopup(m);
m->insertItem(_("Square root \\sqrt"), 1);
m->insertItem(_("Cube root \\root"), 2);
m->insertItem(_("Other root \\root"), 3);
- connect(m, SIGNAL(activated(int)), this, SLOT(insertRoot(int)));
+ connect(m, SIGNAL(activated(int)), this, SLOT(insertRoot(int)));
sqrtPB->setPopup(m);
m = new QPopupMenu(stylePB);
addPanel(num);
- // Qt needs to catch up. Dunno why.
+ // Qt needs to catch up. Dunno why.
qApp->processEvents();
-
+
panel_initialised[num] = true;
}
-
+
IconPalette * QMathDialog::makePanel(QWidget * parent, char const ** entries)
{
IconPalette * p = new IconPalette(parent);
p->add(QPixmap(xpm_name.c_str()), entries[i], string("\\") + entries[i]);
}
connect(p, SIGNAL(button_clicked(string)), this, SLOT(symbol_clicked(string)));
-
+
return p;
}
-
+
void QMathDialog::addPanel(int num)
{
QScrollViewSingle * view = static_cast<QScrollViewSingle*>(symbolsWS->visibleWidget());
view->setChild(p);
}
-
-void QMathDialog::symbol_clicked(string str)
+
+void QMathDialog::symbol_clicked(string const & str)
{
form_->insert(str);
}
-
+
void QMathDialog::fracClicked()
{
form_->insert("frac");
}
-
+
void QMathDialog::delimiterClicked()
{
- // FIXME: leak
+ // FIXME: leak
QDelimiterDialog * d = new QDelimiterDialog(form_);
d->show();
}
-
+
void QMathDialog::expandClicked()
{
int const id = symbolsWS->id(symbolsWS->visibleWidget());
IconPalette * p = makePanel(0, panels[id]);
- string s = "LyX: ";
+ string s = "LyX: ";
s += symbolsCO->text(id).latin1();
p->setCaption(s.c_str());
p->resize(40 * 5, p->height());
p->show();
p->setMaximumSize(p->width(), p->height());
}
-
-
+
+
void QMathDialog::functionSelected(const QString & str)
{
- form_->insert(str.latin1());
+ form_->insert(str.latin1());
}
-
+
void QMathDialog::matrixClicked()
{
form_->insertMatrix();
}
-
+
void QMathDialog::equationClicked()
{
form_->toggleDisplay();
}
-
+
void QMathDialog::subscriptClicked()
{
form_->subscript();
}
-
+
void QMathDialog::superscriptClicked()
{
form_->superscript();
form_->insert(str);
}
-
+
void QMathDialog::insertRoot(int id)
{
switch (id) {
}
}
-
+
void QMathDialog::insertStyle(int id)
{
string str;
case 2: str = "textstyle"; break;
case 3: str = "scriptstyle"; break;
case 4: str = "scriptscriptstyle"; break;
- }
+ }
form_->insert(str);
}
-
+
void QMathDialog::insertFont(int id)
{
string str;
class QMathDialog : public QMathDialogBase
{
Q_OBJECT
-
public:
QMathDialog(QMath * form);
-
public slots:
virtual void delimiterClicked();
virtual void expandClicked();
virtual void fracClicked();
- virtual void functionSelected(const QString &);
+ virtual void functionSelected(QString const &);
virtual void matrixClicked();
virtual void subscriptClicked();
virtual void superscriptClicked();
virtual void equationClicked();
- void symbol_clicked(string str);
+ void symbol_clicked(string const & str);
void insertSpace(int id);
void insertRoot(int id);
void insertStyle(int id);
/// about to show a symbol panel
void showingPanel(int);
-
protected:
//needed ? virtual void closeEvent(QCloseEvent * e);
-
private:
/// make a symbol panel
IconPalette * makePanel(QWidget * parent, char const ** entries);
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
#include "QMinipageDialog.h"
#include "Qt2BC.h"
#include "lengthcombo.h"
-
+
#include <qpushbutton.h>
#include <qcombobox.h>
#include <qlineedit.h>
typedef Qt2CB<ControlMinipage, Qt2DB<QMinipageDialog> > base_class;
+
QMinipage::QMinipage()
: base_class(_("Minipage"))
{
void QMinipage::apply()
{
- double value = strToDbl(dialog_->widthED->text().latin1());
+ double const value = strToDbl(dialog_->widthED->text().latin1());
LyXLength::UNIT unit = dialog_->unitsLC->currentLengthItem();
if (string(dialog_->widthED->text().latin1()).empty())
unit = LyXLength::UNIT_NONE;
- controller().params().pageWidth = LyXLength(value, unit);
+ MinipageParams & params = controller().params();
+
+ params.pageWidth = LyXLength(value, unit);
switch (dialog_->valignCO->currentItem()) {
case 0:
- controller().params().pos = InsetMinipage::top;
+ params.pos = InsetMinipage::top;
break;
case 1:
- controller().params().pos = InsetMinipage::center;
+ params.pos = InsetMinipage::center;
break;
case 2:
- controller().params().pos = InsetMinipage::bottom;
+ params.pos = InsetMinipage::bottom;
break;
}
}
namespace {
- string const numtostr(double val) {
- string a(tostr(val));
- if (a == "0")
- a = "";
- return a;
- }
+
+string const numtostr(double val)
+{
+ string a(tostr(val));
+ if (a == "0")
+ a.erase();
+ return a;
+}
+
} // namespace anon
void QMinipage::update_contents()
{
- LyXLength len(controller().params().pageWidth);
+ MinipageParams const & params = controller().params();
+
+ LyXLength len(params.pageWidth);
dialog_->widthED->setText(numtostr(len.value()).c_str());
dialog_->unitsLC->setCurrentItem(len.unit());
- lyxerr << "width " << numtostr(len.value()).c_str() << " units " << len.unit() << std::endl;
+ lyxerr << "width " << numtostr(len.value())
+ << " units " << len.unit() << std::endl;
int item = 0;
- switch (controller().params().pos) {
- case InsetMinipage::center:
- item = 1;
- break;
- case InsetMinipage::bottom:
- item = 2;
- break;
+ switch (params.pos) {
+ case InsetMinipage::top:
+ item = 0;
+ break;
+ case InsetMinipage::center:
+ item = 1;
+ break;
+ case InsetMinipage::bottom:
+ item = 2;
+ break;
}
dialog_->valignCO->setCurrentItem(item);
}
friend class QMinipageDialog;
///
QMinipage();
-
private:
/// Apply changes
virtual void apply();
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
#pragma implementation
#endif
-#include <vector>
-
#include "ControlMinipage.h"
#include "QMinipage.h"
#include <qtextview.h>
#include "lengthcombo.h"
+#include <vector>
+
+
QMinipageDialog::QMinipageDialog(QMinipage * form)
: QMinipageDialogBase(0, 0, false, 0),
form_(form)
class QMinipage;
-class QMinipageDialog : public QMinipageDialogBase
-{ Q_OBJECT
-
+class QMinipageDialog : public QMinipageDialogBase {
+ Q_OBJECT
public:
QMinipageDialog(QMinipage * form);
-
protected slots:
virtual void change_adaptor();
-
protected:
virtual void closeEvent(QCloseEvent * e);
-
private:
QMinipage * form_;
};
#include "support/lstrings.h"
#include "support/LAssert.h"
-#include <functional>
-
#include <qcombobox.h>
#include <qlineedit.h>
#include <qcheckbox.h>
#include <qtabwidget.h>
#include <qbuttongroup.h>
+#include <functional>
+
using std::vector;
using std::bind2nd;
using std::remove_if;
typedef Qt2CB<ControlParagraph, Qt2DB<QParagraphDialog> > base_class;
+
QParagraph::QParagraph()
: base_class(_("Paragraph Layout"))
{}
+
void QParagraph::build_dialog()
{
// the tabbed folder
// Create the contents of the unit choices
// Don't include the "%" terms...
units_ = getLatexUnits();
- vector<string>::iterator del = remove_if(units_.begin(), units_.end(),
- bind2nd(contains_functor(), "%"));
+ vector<string>::iterator del =
+ remove_if(units_.begin(), units_.end(),
+ bind2nd(contains_functor(), "%"));
units_.erase(del, units_.end());
for (vector<string>::const_iterator it = units_.begin();
bc().addReadOnly(dialog_->paragraphTab);
}
+
namespace {
VSpace setVSpaceFromWidgets(int spacing,
} // namespace anon
+
void QParagraph::apply()
{
- /* SPACING ABOVE */
+ ParagraphParameters & params = controller().params();
+
+ // SPACING ABOVE
// If a vspace kind is "Length" but there's no text in
// the input field, reset the kind to "None".
- if (dialog_->spacingAbove->currentItem()==5
+ if (dialog_->spacingAbove->currentItem() == 5
&& dialog_->valueAbove->text().isEmpty())
dialog_->spacingAbove->setCurrentItem(0);
string(dialog_->unitAbove->currentText()),
dialog_->keepAbove->isChecked());
+ params.spaceTop(space_top);
- controller().params().spaceTop(space_top);
-
- /* SPACING BELOW */
- if (dialog_->spacingBelow->currentItem()==5
+ // SPACING BELOW
+ if (dialog_->spacingBelow->currentItem() == 5
&& dialog_->valueBelow->text().isEmpty())
dialog_->spacingBelow->setCurrentItem(0);
string(dialog_->unitBelow->currentText()),
dialog_->keepBelow->isChecked());
- controller().params().spaceBottom(space_bottom);
+ params.spaceBottom(space_bottom);
- /* alignment */
+ // alignment
LyXAlignment align;
switch (dialog_->align->currentItem()) {
case 0:
default:
align = LYX_ALIGN_BLOCK;
}
- controller().params().align(align);
+ params.align(align);
- /* get spacing */
+ // get spacing
Spacing::Space linespacing = Spacing::Default;
string other;
switch (dialog_->linespacing->currentItem()) {
}
Spacing const spacing(linespacing, other);
- controller().params().spacing(spacing);
-
- /* lines and pagebreaks */
- controller().params().lineTop(dialog_->lineAbove->isChecked());
- controller().params().lineBottom(dialog_->lineBelow->isChecked());
- controller().params().pagebreakTop(dialog_->pagebreakAbove->isChecked());
- controller().params().pagebreakBottom(dialog_->pagebreakBelow->isChecked());
- /* label width */
- controller().params().labelWidthString(string(dialog_->labelWidth->text()));
- /* indendation */
- controller().params().noindent(dialog_->noindent->isChecked());
+ params.spacing(spacing);
+
+ // lines and pagebreaks
+ params.lineTop(dialog_->lineAbove->isChecked());
+ params.lineBottom(dialog_->lineBelow->isChecked());
+ params.pagebreakTop(dialog_->pagebreakAbove->isChecked());
+ params.pagebreakBottom(dialog_->pagebreakBelow->isChecked());
+ // label width
+ params.labelWidthString(string(dialog_->labelWidth->text()));
+ // indendation
+ params.noindent(dialog_->noindent->isChecked());
}
+
namespace {
void setWidgetsFromVSpace(VSpace const & space,
value->setEnabled(true);
unit->setEnabled(true);
string length = space.length().asString();
- string const default_unit = (lyxrc.default_papersize>3) ? "cm" : "in";
+ string const default_unit =
+ (lyxrc.default_papersize > 3) ? "cm" : "in";
string supplied_unit = default_unit;
LyXLength len(length);
- if ((isValidLength(length) || isStrDbl(length)) && !len.zero()) {
+ if ((isValidLength(length)
+ || isStrDbl(length)) && !len.zero()) {
ostringstream buffer;
buffer << len.value();
length = buffer.str();
- supplied_unit = subst(stringFromUnit(len.unit()),"%","%%");
+ supplied_unit = subst(stringFromUnit(len.unit()),
+ "%", "%%");
}
+
int unit_item = 0;
int i = 0;
for (vector<string>::const_iterator it = units_.begin();
it != units_.end(); ++it) {
- if (*it==default_unit) {
+ if (*it == default_unit) {
unit_item = i;
}
- if (*it==supplied_unit) {
+ if (*it == supplied_unit) {
unit_item = i;
break;
}
} // namespace anon
+
void QParagraph::update_contents()
{
- /* label width */
- string labelwidth = controller().params().labelWidthString();
+ ParagraphParameters const & params = controller().params();
+
+ // label width
+ string const & labelwidth = params.labelWidthString();
dialog_->labelWidth->setText(labelwidth.c_str());
dialog_->labelwidthGB->setEnabled(
labelwidth != _("Senseless with this layout!"));
- /* alignment */
+ // alignment
int i;
- switch (controller().params().align()) {
+ switch (params.align()) {
case LYX_ALIGN_LEFT:
i = 1;
break;
dialog_->pagebreakAbove->setEnabled(!ininset);
dialog_->pagebreakBelow->setEnabled(!ininset);
- /* lines, pagebreaks and indent */
- dialog_->lineAbove->setChecked(controller().params().lineTop());
- dialog_->lineBelow->setChecked(controller().params().lineBottom());
- dialog_->pagebreakAbove->setChecked(controller().params().pagebreakTop());
- dialog_->pagebreakBelow->setChecked(controller().params().pagebreakBottom());
- dialog_->noindent->setChecked(controller().params().noindent());
+ // lines, pagebreaks and indent
+ dialog_->lineAbove->setChecked(params.lineTop());
+ dialog_->lineBelow->setChecked(params.lineBottom());
+ dialog_->pagebreakAbove->setChecked(params.pagebreakTop());
+ dialog_->pagebreakBelow->setChecked(params.pagebreakBottom());
+ dialog_->noindent->setChecked(params.noindent());
- /* linespacing */
+ // linespacing
int linespacing;
- Spacing const space = controller().params().spacing();
+ Spacing const & space = params.spacing();
switch (space.getSpace()) {
case Spacing::Single:
linespacing = 1;
dialog_->linespacingValue->setEnabled(false);
}
- /* vspace top */
- setWidgetsFromVSpace(controller().params().spaceTop(),
+ // vspace top
+ setWidgetsFromVSpace(params.spaceTop(),
dialog_->spacingAbove,
dialog_->valueAbove,
dialog_->unitAbove,
dialog_->keepAbove,units_);
- /* vspace bottom */
- setWidgetsFromVSpace(controller().params().spaceBottom(),
+ // vspace bottom
+ setWidgetsFromVSpace(params.spaceBottom(),
dialog_->spacingBelow,
dialog_->valueBelow,
dialog_->unitBelow,
dialog_->keepBelow,units_);
- /* no indent */
- dialog_->noindent->setChecked(controller().params().noindent());
+ // no indent
+ dialog_->noindent->setChecked(params.noindent());
}
class QParagraphDialog;
-class QParagraph :
- public Qt2CB<ControlParagraph, Qt2DB<QParagraphDialog> >
+class QParagraph
+ : public Qt2CB<ControlParagraph, Qt2DB<QParagraphDialog> >
{
+public:
friend class QParagraphDialog;
-public:
QParagraph();
-
private:
/// Apply changes
virtual void apply();
using std::vector;
+
QParagraphDialog::QParagraphDialog(QParagraph * form)
: QParagraphDialogBase(0, 0, false, 0),
form_(form)
//valueBelow->setValidator(new QDoubleValidator(valueBelow));
}
+
void QParagraphDialog::closeEvent(QCloseEvent * e)
{
form_->slotWMHide();
form_->changed();
}
+
void QParagraphDialog::enableAbove(int)
{
bool const enable = spacingAbove->currentItem()==6;
}
+
void QParagraphDialog::enableBelow(int)
{
bool const enable = spacingBelow->currentItem()==6;
unitBelow->setEnabled(enable);
}
+
void QParagraphDialog::enableLinespacingValue(int)
{
bool const enable = linespacing->currentItem()==4;
class QParagraph;
-class QParagraphDialog : public QParagraphDialogBase
-{
+class QParagraphDialog : public QParagraphDialogBase {
Q_OBJECT
public:
QParagraphDialog(QParagraph * form);
-
protected:
void closeEvent (QCloseEvent * e);
private:
QParagraph * form_;
-
protected slots:
void change_adaptor();
void enableAbove(int);
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
#include <config.h>
-#include <fstream>
#ifdef __GNUG__
#pragma implementation
#include "gettext.h"
#include "LyXView.h"
#include "ControlPreamble.h"
-
+
#include "QPreamble.h"
#include "QPreambleDialog.h"
#include "Qt2BC.h"
typedef Qt2CB<ControlPreamble, Qt2DB<QPreambleDialog> > base_class;
+
QPreamble::QPreamble()
: base_class(_("LaTeX Preamble"))
{
friend class QPreambleDialog;
///
QPreamble();
-
private:
/// Apply changes
virtual void apply();
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
#pragma implementation
#endif
-#include <fstream>
-
+#include "Lsstream.h"
#include "support/lyxlib.h"
#include "support/forkedcall.h"
#include "support/filetools.h"
#include <qmultilineedit.h>
#include <qinputdialog.h>
+#include <fstream>
+
using std::getline;
QPreambleDialog::QPreambleDialog(QPreamble * form)
// find an editor
string editor = GetEnv("EDITOR");
if (editor.empty()) {
- static string lastentry = "";
+ static string lastentry;
editor = QInputDialog::getText(
_("Enter editor program"), _("Editor"), QLineEdit::Normal,
lastentry.c_str()).latin1();
return;
}
- string newtext;
- string line;
-
- while (getline(in, line)) {
- newtext += line + "\n";
- }
+ ostringstream newtext;
+ newtext << in.rdbuf();
+ // close the files before we delete the file
in.close();
+
lyx::unlink(filename);
- preambleLE->setText(newtext.c_str());
+ preambleLE->setText(newtext.str().c_str());
}
class QPreamble;
-class QPreambleDialog : public QPreambleDialogBase
-{ Q_OBJECT
-
+class QPreambleDialog : public QPreambleDialogBase {
+ Q_OBJECT
public:
QPreambleDialog(QPreamble * form);
-
protected slots:
virtual void editClicked();
virtual void change_adaptor();
-
protected:
virtual void closeEvent(QCloseEvent * e);
-
private:
QPreamble * form_;
};
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
* \author Edwin Leuven
*
* Full author contact details are available in file CREDITS
#include <qpushbutton.h>
// FIXME FIXME QPrintDialog is getting destructed twice !!!!
-
+
+
typedef Qt2CB<ControlPrint, Qt2DB<QPrintDialog> > base_class;
+
QPrint::QPrint()
: base_class(_("Print"))
{
// only reset params if a different buffer
if (!pp.file_name.empty() && pp.file_name == dialog_->fileED->text().latin1())
return;
-
+
dialog_->printerED->setText(pp.printer_name.c_str());
dialog_->fileED->setText(pp.file_name.c_str());
dialog_->reverseCB->setChecked(pp.reverse_order);
dialog_->copiesSB->setValue(pp.count_copies);
-
+
dialog_->oddCB->setChecked(pp.odd_pages);
dialog_->evenCB->setChecked(pp.even_pages);
-
+
dialog_->collateCB->setChecked(pp.sorted_copies);
-
+
if (pp.all_pages) {
dialog_->allRB->setChecked(true);
return;
}
dialog_->rangeRB->setChecked(true);
-
+
QString s;
s.setNum(pp.from_page);
dialog_->fromED->setText(s);
PrinterParams const pp(t,
dialog_->printerED->text().latin1(),
dialog_->fileED->text().latin1(),
- dialog_->allRB->isChecked(),
+ dialog_->allRB->isChecked(),
dialog_->fromED->text().toUInt(),
- dialog_->toED->text().toUInt(),
+ dialog_->toED->text().toUInt(),
dialog_->oddCB->isChecked(),
dialog_->evenCB->isChecked(),
dialog_->copiesSB->text().toUInt(),
friend class QPrintDialog;
///
QPrint();
-
private:
/// Apply changes
virtual void apply();
#pragma implementation
#endif
-#include <gettext.h>
+#include "gettext.h"
#include "support/filetools.h"
#include "support/lstrings.h"
#include <qradiobutton.h>
#include <qspinbox.h>
+
QPrintDialog::QPrintDialog(QPrint * f)
: QPrintDialogBase(0, 0, false, 0),
form_(f)
void QPrintDialog::browseClicked()
{
- QString file = QFileDialog::getOpenFileName(QString::null,
- _("PostScript files (*.ps)"), this, 0, _("Select a file to print to"));
+ QString file =
+ QFileDialog::getOpenFileName(QString::null,
+ _("PostScript files (*.ps)"),
+ this, 0,
+ _("Select a file to print to"));
if (!file.isNull()) {
fileED->setText(file);
form_->changed();
void QPrintDialog::pagerangeChanged()
{
- int from = strToUnsignedInt(fromED->text().latin1());
- int to = strToUnsignedInt(toED->text().latin1());
+ int const from = strToUnsignedInt(fromED->text().latin1());
+ int const to = strToUnsignedInt(toED->text().latin1());
if (!toED->text().isEmpty() && from > to)
fromED->setText(toED->text());
class QPrint;
-class QPrintDialog : public QPrintDialogBase
-{ Q_OBJECT
-
+class QPrintDialog : public QPrintDialogBase {
+ Q_OBJECT
public:
QPrintDialog(QPrint * f);
-
protected slots:
virtual void change_adaptor();
virtual void browseClicked();
virtual void copiesChanged(int);
virtual void printerChanged();
virtual void pagerangeChanged();
-
private:
QPrint * form_;
};
#include "support/lstrings.h" // frontStrip, strip
#include "gettext.h"
#include "insets/insetref.h"
-
+
using std::find;
using std::max;
using std::sort;
using std::vector;
using std::endl;
+
typedef Qt2CB<ControlRef, Qt2DB<QRefDialog> > base_class;
+
QRef::QRef()
: base_class(_("Cross Reference")),
sort_(false), at_ref_(false)
void QRef::update_contents()
{
- dialog_->referenceED->setText(controller().params().getContents().c_str());
+ InsetCommandParams const & params = controller().params();
- dialog_->nameED->setText(controller().params().getOptions().c_str());
+ dialog_->referenceED->setText(params.getContents().c_str());
+
+ dialog_->nameED->setText(params.getOptions().c_str());
dialog_->nameED->setReadOnly(!nameAllowed() && !readOnly());
- dialog_->typeCO->setCurrentItem(InsetRef::getType(controller().params().getCmdName()));
+ dialog_->typeCO->setCurrentItem(InsetRef::getType(params.getCmdName()));
dialog_->typeCO->setEnabled(!typeAllowed() && !readOnly());
if (!typeAllowed())
dialog_->typeCO->setCurrentItem(0);
dialog_->sortCB->setChecked(sort_);
- /* insert buffer list */
+ // insert buffer list
dialog_->bufferCO->clear();
vector<string> const buffers = controller().getBufferList();
for (vector<string>::const_iterator it = buffers.begin();
dialog_->bufferCO->insertItem(it->c_str());
}
dialog_->bufferCO->setCurrentItem(controller().getBufferNum());
-
+
updateRefs();
}
void QRef::apply()
{
- controller().params().setCmdName(InsetRef::getName(dialog_->typeCO->currentItem()));
- controller().params().setContents(dialog_->referenceED->text().latin1());
- controller().params().setOptions(dialog_->nameED->text().latin1());
+ InsetCommandParams & params = controller().params();
+
+ params.setCmdName(InsetRef::getName(dialog_->typeCO->currentItem()));
+ params.setContents(dialog_->referenceED->text().latin1());
+ params.setOptions(dialog_->nameED->text().latin1());
}
// need this because Qt will send a highlight() here for
// the first item inserted
- string tmp(dialog_->referenceED->text());
+ string const tmp(dialog_->referenceED->text());
for (std::vector<string>::const_iterator iter = refs_.begin();
iter != refs_.end(); ++iter) {
class QRefDialog;
-class QRef :
- public Qt2CB<ControlRef, Qt2DB<QRefDialog> >
+class QRef
+ : public Qt2CB<ControlRef, Qt2DB<QRefDialog> >
{
+public:
friend class QRefDialog;
-public:
QRef();
-
private:
/// apply changes
virtual void apply();
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author Kalle Dalheimer
- * \author John Levon
+ * \author Kalle Dalheimer
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
#include "QRef.h"
#include "QRefDialog.h"
-
+
#include <qpushbutton.h>
#include <qlineedit.h>
#include <qcombobox.h>
#include <qlistbox.h>
+
QRefDialog::QRefDialog(QRef * form)
: QRefDialogBase(0, 0, false, 0),
form_(form)
class QRef;
-class QRefDialog : public QRefDialogBase
-{ Q_OBJECT
-
+class QRefDialog : public QRefDialogBase {
+ Q_OBJECT
public:
QRefDialog(QRef * form);
-
public slots:
void changed_adaptor();
void gotoClicked();
- void refHighlighted(const QString &);
- void refSelected(const QString &);
+ void refHighlighted(QString const &);
+ void refSelected(QString const &);
void sortToggled(bool);
void updateClicked();
-
protected:
void closeEvent(QCloseEvent * e);
-
private:
QRef * form_;
};
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
#include <config.h>
-#include <fstream>
#ifdef __GNUG__
#pragma implementation
#include <qcheckbox.h>
#include <qcombobox.h>
+
typedef Qt2CB<ControlSearch, Qt2DB<QSearchDialog> > base_class;
+
QSearch::QSearch()
: base_class(_("Search"))
{
}
-void QSearch::find(string const & str, bool casesens, bool words, bool backwards)
+void QSearch::find(string const & str, bool casesens,
+ bool words, bool backwards)
{
controller().find(str, casesens, words, !backwards);
}
friend class QSearchDialog;
///
QSearch();
-
private:
/// Apply changes
- virtual void apply() {};
+ virtual void apply() {}
/// update
- virtual void update_contents() {};
+ virtual void update_contents() {}
/// build the dialog
virtual void build_dialog();
-
- void find(string const & str, bool casesens, bool words, bool backwards);
+ void find(string const & str, bool casesens,
+ bool words, bool backwards);
void replace(string const & findstr, string const & replacestr,
bool casesens, bool words, bool all);
-
};
#endif // QSEARCH_H
#include <qlineedit.h>
#include <qlabel.h>
+
QSearchDialog::QSearchDialog(QSearch * form)
: QSearchDialogBase(0, 0, false, 0),
form_(form)
findCO->lineEdit()->setSelection(0, findCO->lineEdit()->text().length());
}
-
+
void QSearchDialog::closeEvent(QCloseEvent * e)
{
form_->slotWMHide();
class QCloseEvent;
class QComboBox;
-class QSearchDialog : public QSearchDialogBase
-{ Q_OBJECT
-
+class QSearchDialog : public QSearchDialogBase {
+ Q_OBJECT
public:
QSearchDialog(QSearch * form);
virtual void show();
-
protected slots:
void findChanged();
void findClicked();
void replaceClicked();
void replaceallClicked();
-
protected:
virtual void closeEvent(QCloseEvent * e);
typedef Qt2CB<ControlSendto, Qt2DB<QSendtoDialog> > base_class;
+
QSendto::QSendto()
: base_class(_("Send document to command"))
{
dialog_->commandCO->insertItem(controller().getCommand().c_str());
}
+
void QSendto::apply()
{
int const line(dialog_->formatLB->currentItem());
controller().setCommand(cmd);
}
+
bool QSendto::isValid()
{
int const line(dialog_->formatLB->currentItem());
if (line < 0 || line > dialog_->formatLB->count())
return false;
-
+
else return dialog_->formatLB->count() != 0 &&
!string(dialog_->commandCO->currentText()).empty();
}
#endif
#include "Qt2Base.h"
+
#include <vector>
class ControlSendto;
friend class QSendtoDialog;
///
QSendto();
-
protected:
virtual bool isValid();
-
private:
/// Apply from dialog
virtual void apply();
class QSendto;
-class QSendtoDialog : public QSendtoDialogBase
-{
+class QSendtoDialog : public QSendtoDialogBase {
Q_OBJECT
-
public:
QSendtoDialog(QSendto * form);
-
protected slots:
virtual void changed_adaptor();
- virtual void slotFormatHighlighted(const QString&) {};
- virtual void slotFormatSelected(const QString&) {};
-
+ virtual void slotFormatHighlighted(const QString&) {}
+ virtual void slotFormatSelected(const QString&) {}
protected:
virtual void closeEvent(QCloseEvent * e);
-
private:
QSendto * form_;
};
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
#include "QShowFile.h"
#include "QShowFileDialog.h"
#include "Qt2BC.h"
-
+
#include <qtextview.h>
#include <qpushbutton.h>
typedef Qt2CB<ControlShowFile, Qt2DB<QShowFileDialog> > base_class;
+
QShowFile::QShowFile()
: base_class(_("ShowFile"))
{
class QShowFileDialog;
-class QShowFile :
- public Qt2CB<ControlShowFile, Qt2DB<QShowFileDialog> >
+class QShowFile
+ : public Qt2CB<ControlShowFile, Qt2DB<QShowFileDialog> >
{
+public:
friend class QShowFileDialog;
-public:
QShowFile();
-
private:
/// Apply changes
- virtual void apply() {};
+ virtual void apply() {}
/// update
virtual void update_contents();
/// build the dialog
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
#include <qwidget.h>
#include <qpushbutton.h>
+
QShowFileDialog::QShowFileDialog(QShowFile * form)
: QShowFileDialogBase(0, 0, false, 0),
form_(form)
class QShowFile;
-class QShowFileDialog : public QShowFileDialogBase
-{ Q_OBJECT
-
+class QShowFileDialog : public QShowFileDialogBase {
+ Q_OBJECT
public:
QShowFileDialog(QShowFile * form);
-
protected:
virtual void closeEvent(QCloseEvent * e);
-
private:
QShowFile * form_;
};
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
typedef Qt2CB<ControlSpellchecker, Qt2DB<QSpellcheckerDialog> > base_class;
+
QSpellchecker::QSpellchecker()
: base_class(_("Spellchecker"))
{
case 2:
dialog_->spellcheckPB->setEnabled(true);
hide();
- QMessageBox::information(0, _("Spellcheck complete"), controller().getMessage().c_str() , _("OK"));
+ QMessageBox::information(0, _("Spellcheck complete"),
+ controller().getMessage().c_str(),
+ _("OK"));
break;
}
}
class QSpellcheckerDialog;
-class QSpellchecker :
- public Qt2CB<ControlSpellchecker, Qt2DB<QSpellcheckerDialog> >
+class QSpellchecker
+ : public Qt2CB<ControlSpellchecker, Qt2DB<QSpellcheckerDialog> >
{
+public:
friend class QSpellcheckerDialog;
-public:
QSpellchecker();
/// update from controller
void partialUpdate(int id);
-
private:
void stop();
void accept();
void spellcheck();
/// Apply changes
- virtual void apply() {};
+ virtual void apply() {}
/// update
virtual void update_contents();
/// build the dialog
#include <qlistbox.h>
#include <qcombobox.h>
+
QSpellcheckerDialog::QSpellcheckerDialog(QSpellchecker * form)
: QSpellcheckerDialogBase(0, 0, false, 0),
form_(form)
}
-void QSpellcheckerDialog::suggestionChanged(const QString & str)
+void QSpellcheckerDialog::suggestionChanged(QString const & str)
{
if (replaceCO->count() != 0)
replaceCO->changeItem(str, 0);
}
-void QSpellcheckerDialog::replaceChanged(const QString & str)
+void QSpellcheckerDialog::replaceChanged(QString const & str)
{
if (suggestionsLB->currentText() == str)
return;
class QSpellchecker;
-class QSpellcheckerDialog : public QSpellcheckerDialogBase
-{ Q_OBJECT
-
+class QSpellcheckerDialog : public QSpellcheckerDialogBase {
+ Q_OBJECT
public:
QSpellcheckerDialog(QSpellchecker * form);
-
protected slots:
virtual void stop();
virtual void acceptClicked();
virtual void ignoreClicked();
virtual void suggestionChanged(const QString &);
virtual void replaceChanged(const QString &);
-
protected:
virtual void closeEvent(QCloseEvent * e);
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
typedef Qt2CB<ControlTabularCreate, Qt2DB<QTabularCreateDialog> > base_class;
+
QTabularCreate::QTabularCreate()
: base_class(_("Insert table"))
{
friend class QTabularCreateDialog;
///
QTabularCreate();
-
private:
/// Apply changes
virtual void apply();
/// update
- virtual void update_contents() {};
+ virtual void update_contents() {}
/// build the dialog
virtual void build_dialog();
};
#pragma implementation
#endif
-#include <gettext.h>
+#include "gettext.h"
#include "support/lstrings.h"
#include <qspinbox.h>
#include "emptytable.h"
+
QTabularCreateDialog::QTabularCreateDialog(QTabularCreate * form)
: QTabularCreateDialogBase(0, 0, false, 0),
form_(form)
class QTabularCreate;
-class QTabularCreateDialog : public QTabularCreateDialogBase
-{ Q_OBJECT
-
+class QTabularCreateDialog : public QTabularCreateDialogBase {
+ Q_OBJECT
public:
QTabularCreateDialog(QTabularCreate * form);
-
protected slots:
virtual void columnsChanged(int);
virtual void rowsChanged(int);
-
private:
QTabularCreate * form_;
};
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author Edwin Leuven
+ * \author Edwin Leuven
*
* Full author contact details are available in file CREDITS
*/
#include <config.h>
-#include <vector>
-
#ifdef __GNUG__
#pragma implementation
#endif
#include "helper_funcs.h"
#include "support/lstrings.h"
-
+
#include <qlistbox.h>
#include <qpushbutton.h>
#include <qcheckbox.h>
typedef Qt2CB<ControlTexinfo, Qt2DB<QTexinfoDialog> > base_class;
+
QTexinfo::QTexinfo()
: base_class(_("LaTeX Information")), warningPosted(false), activeStyle(ControlTexinfo::cls)
-
{
}
void QTexinfo::updateStyles(ControlTexinfo::texFileSuffix whichStyle)
{
string const fstr = controller().getContents(whichStyle, true);
-
+
switch (whichStyle) {
- case ControlTexinfo::bst:
+ case ControlTexinfo::bst:
bst_ = getVectorFromString(fstr, "\n");
break;
case ControlTexinfo::cls:
{
updateStyles(activeStyle);
}
-
-
-
-
-
-
#include "ControlTexinfo.h"
+#include <vector>
+
class QTexinfoDialog;
///
QTexinfo();
private:
/// Apply changes
- virtual void apply() { };
+ virtual void apply() {}
/// update (do we need this?)
- virtual void update_contents() {};
+ virtual void update_contents() {}
/// build the dialog
virtual void build_dialog();
///
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author Edwin Leuven
+ * \author Edwin Leuven
*
* Full author contact details are available in file CREDITS
*/
#pragma implementation
#endif
-#include <vector>
-
#include "LString.h"
#include "ControlTexinfo.h"
#include <qpushbutton.h>
#include <qcombobox.h>
+#include <vector>
+
+
QTexinfoDialog::QTexinfoDialog(QTexinfo * form)
: QTexinfoDialogBase(0, 0, false, 0),
form_(form)
e->accept();
}
+
void QTexinfoDialog::rescanClicked()
{
// build new *Files.lst
enableViewPB();
}
+
void QTexinfoDialog::viewClicked()
{
int const fitem = fileList->currentItem();
default:
break;
}
-
+
// a valid entry?
if (!sel.empty()) {
form_->controller().viewFile(sel.c_str());
}
}
+
void QTexinfoDialog::update()
{
switch (whatStyle->currentItem()) {
default:
break;
}
-
+
enableViewPB();
}
+
void QTexinfoDialog::enableViewPB()
{
- viewPB->setEnabled(fileList->currentItem()>-1);
+ viewPB->setEnabled(fileList->currentItem() > -1);
}
-
-
-
class QTexinfo;
-class QTexinfoDialog : public QTexinfoDialogBase
-{ Q_OBJECT
-
+class QTexinfoDialog : public QTexinfoDialogBase {
+ Q_OBJECT
public:
QTexinfoDialog(QTexinfo * form);
-
protected slots:
virtual void change_adaptor();
virtual void rescanClicked();
virtual void viewClicked();
virtual void update();
virtual void enableViewPB();
-
protected:
virtual void closeEvent(QCloseEvent * e);
private:
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
typedef Qt2CB<ControlThesaurus, Qt2DB<QThesaurusDialog> > base_class;
+
QThesaurus::QThesaurus()
: base_class(_("Thesaurus"))
{
QThesaurus();
private:
/// Apply changes
- virtual void apply() { };
+ virtual void apply() {}
/// update
virtual void update_contents();
/// build the dialog
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
#pragma implementation
#endif
-#include <vector>
-
#include "LString.h"
#include "ControlThesaurus.h"
#include <qlistview.h>
#include <qlineedit.h>
+#include <vector>
+
+
QThesaurusDialog::QThesaurusDialog(QThesaurus * form)
: QThesaurusDialogBase(0, 0, false, 0),
form_(form)
class QThesaurus;
class QListViewItem;
-class QThesaurusDialog : public QThesaurusDialogBase
-{ Q_OBJECT
-
+class QThesaurusDialog : public QThesaurusDialogBase {
+ Q_OBJECT
public:
QThesaurusDialog(QThesaurus * form);
void updateLists();
-
protected slots:
virtual void change_adaptor();
virtual void entryChanged();
virtual void replaceClicked();
virtual void selectionChanged(QListViewItem *);
virtual void selectionClicked(QListViewItem *);
-
protected:
virtual void closeEvent(QCloseEvent * e);
-
private:
QThesaurus * form_;
};
dialog_->tocLV->setUpdatesEnabled(false);
int curdepth = 0;
- stack< pair< QListViewItem *, QListViewItem *> > istack;
- QListViewItem *last = 0;
- QListViewItem *parent = 0;
- QListViewItem *item;
+ stack<pair<QListViewItem *, QListViewItem *> > istack;
+ QListViewItem * last = 0;
+ QListViewItem * parent = 0;
+ QListViewItem * item;
- // Yes, it is this ugly. Two reasons - root items must have a QListView parent,
- // rather than QListViewItem; and the TOC can move in and out an arbitrary number
- // of levels
+ // Yes, it is this ugly. Two reasons - root items must have
+ // a QListView parent, rather than QListViewItem; and the
+ // TOC can move in and out an arbitrary number of levels
for (toc::Toc::const_iterator iter = toclist.begin();
- iter != toclist.end(); ++iter) {
+ iter != toclist.end(); ++iter) {
if (iter->depth == curdepth) {
// insert it after the last one we processed
if (!parent)
- item = (last) ? (new QListViewItem(dialog_->tocLV,last)) : (new QListViewItem(dialog_->tocLV));
+ item = (last ? new QListViewItem(dialog_->tocLV,last) : new QListViewItem(dialog_->tocLV));
else
- item = (last) ? (new QListViewItem(parent,last)) : (new QListViewItem(parent));
+ item = (last ? new QListViewItem(parent,last) : new QListViewItem(parent));
} else if (iter->depth > curdepth) {
int diff = iter->depth - curdepth;
// first save old parent and last
while (diff--)
istack.push(pair< QListViewItem *, QListViewItem * >(parent,last));
- item = (last) ? (new QListViewItem(last)) : (new QListViewItem(dialog_->tocLV));
+ item = (last ? new QListViewItem(last) : new QListViewItem(dialog_->tocLV));
parent = last;
} else {
int diff = curdepth - iter->depth;
- pair< QListViewItem *, QListViewItem * > top;
+ pair<QListViewItem *, QListViewItem * > top;
// restore context
while (diff--) {
top = istack.top();
last = top.second;
// insert it after the last one we processed
if (!parent)
- item = (last) ? (new QListViewItem(dialog_->tocLV,last)) : (new QListViewItem(dialog_->tocLV));
+ item = (last ? new QListViewItem(dialog_->tocLV,last) : new QListViewItem(dialog_->tocLV));
else
- item = (last) ? (new QListViewItem(parent,last)) : (new QListViewItem(parent));
+ item = (last ? new QListViewItem(parent,last) : new QListViewItem(parent));
}
- lyxerr[Debug::GUI] << "Table of contents" << endl << "Added item " << iter->str.c_str()
- << " at depth " << iter->depth << ", previous sibling \"" << (last ? last->text(0).latin1() : "0")
- << "\", parent \"" << (parent ? parent->text(0).latin1() : "0") << "\"" << endl;
+ lyxerr[Debug::GUI]
+ << "Table of contents\n"
+ << "Added item " << iter->str.c_str()
+ << " at depth " << iter->depth
+ << ", previous sibling \""
+ << (last ? last->text(0).latin1() : "0")
+ << "\", parent \""
+ << (parent ? parent->text(0).latin1() : "0") << "\""
+ << endl;
item->setText(0,iter->str.c_str());
item->setOpen(iter->depth < depth_);
curdepth = iter->depth;
public Qt2CB<ControlToc, Qt2DB<QTocDialog> >
{
public:
- QToc();
-
friend class QTocDialog;
+ QToc();
private:
/// update the listview
void updateToc(int newdepth);
/// set the depth
void set_depth(int depth);
- virtual void apply() {};
+ virtual void apply() {}
/// update dialog
virtual void update_contents();
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
#include <config.h>
-
+
#ifdef __GNUG__
#pragma implementation
#endif
#include <qlistview.h>
#include <qpushbutton.h>
+
QTocDialog::QTocDialog(QToc * form)
: QTocDialogBase(0, 0, false, 0),
form_(form)
class QToc;
-class QTocDialog : public QTocDialogBase
-{ Q_OBJECT
-
+class QTocDialog : public QTocDialogBase {
+ Q_OBJECT
public:
QTocDialog(QToc * form);
~QTocDialog();
-
public slots:
void activate_adaptor(int);
void depth_adaptor(int);
void select_adaptor(QListViewItem *);
void update_adaptor();
-
protected:
void closeEvent(QCloseEvent * e);
-
private:
QToc * form_;
};
#include "ControlUrl.h"
#include "debug.h"
#include "gettext.h"
-
+
#include "QURL.h"
#include "QURLDialog.h"
#include "Qt2BC.h"
typedef Qt2CB<ControlUrl, Qt2DB<QURLDialog> > base_class;
+
QURL::QURL()
: base_class(_("URL"))
{
void QURL::update_contents()
{
- dialog_->urlED->setText(controller().params().getContents().c_str());
- dialog_->nameED->setText(controller().params().getOptions().c_str());
- dialog_->hyperlinkCB->setChecked(controller().params().getCmdName() != "url");
+ InsetCommandParams const & params = controller().params();
+
+ dialog_->urlED->setText(params.getContents().c_str());
+ dialog_->nameED->setText(params.getOptions().c_str());
+ dialog_->hyperlinkCB->setChecked(params.getCmdName() != "url");
}
void QURL::apply()
{
- controller().params().setContents(dialog_->urlED->text().latin1());
- controller().params().setOptions(dialog_->nameED->text().latin1());
+ InsetCommandParams & params = controller().params();
+
+ params.setContents(dialog_->urlED->text().latin1());
+ params.setOptions(dialog_->nameED->text().latin1());
if (dialog_->hyperlinkCB->isChecked())
- controller().params().setCmdName("htmlurl");
+ params.setCmdName("htmlurl");
else
- controller().params().setCmdName("url");
+ params.setCmdName("url");
}
class QURL :
public Qt2CB<ControlUrl, Qt2DB<QURLDialog> >
{
- friend class QURLDialog;
public:
+ friend class QURLDialog;
QURL();
-
protected:
virtual bool isValid();
-
private:
/// apply dialog
virtual void apply();
#include <qpushbutton.h>
#include <qlineedit.h>
-
+
+
QURLDialog::QURLDialog(QURL * form)
: QURLDialogBase(0, 0, false, 0),
form_(form)
urlED->setFocus();
}
-
+
void QURLDialog::changed_adaptor()
{
form_->changed();
class QURL;
-class QURLDialog : public QURLDialogBase
-{ Q_OBJECT
-
+class QURLDialog : public QURLDialogBase {
+ Q_OBJECT
public:
QURLDialog(QURL * form);
~QURLDialog();
virtual void show();
-
public slots:
void changed_adaptor();
-
protected:
void closeEvent(QCloseEvent *);
-
private:
QURL * form_;
};
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
#include <config.h>
-#include "Lsstream.h"
#ifdef __GNUG__
#pragma implementation
#endif
+#include "Lsstream.h"
#include "gettext.h"
#include "LyXView.h"
#include "ControlVCLog.h"
-
+
#include "QVCLog.h"
#include "QVCLogDialog.h"
#include "Qt2BC.h"
typedef Qt2CB<ControlVCLog, Qt2DB<QVCLogDialog> > base_class;
+
QVCLog::QVCLog()
: base_class(_("VCLog"))
{
friend class QVCLogDialog;
///
QVCLog();
-
private:
/// Apply changes
- virtual void apply() {};
+ virtual void apply() {}
/// update
virtual void update_contents();
/// build the dialog
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
#include <qpushbutton.h>
#include <qtextview.h>
-
+
+
QVCLogDialog::QVCLogDialog(QVCLog * form)
: QVCLogDialogBase(0, 0, false, 0),
form_(form)
class QVCLog;
-class QVCLogDialog : public QVCLogDialogBase
-{ Q_OBJECT
-
+class QVCLogDialog : public QVCLogDialogBase {
+ Q_OBJECT
public:
QVCLogDialog(QVCLog * form);
-
protected slots:
virtual void updateClicked();
-
protected:
virtual void closeEvent(QCloseEvent * e);
-
private:
QVCLog * form_;
};
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
#include "support/lstrings.h"
#include "support/LAssert.h"
-#include <cmath>
-#include <cctype>
-
#include "QWorkArea.h"
-
+
#include <qapplication.h>
-#include <qevent.h>
+#include <qevent.h>
#include <qpainter.h>
#include <qmainwindow.h>
#include <qlayout.h>
#include <qclipboard.h>
-
+
+#include <cmath>
+#include <cctype>
+
using std::endl;
using std::abs;
using std::hex;
-
+
QWorkArea::QWorkArea(int, int, int, int)
: WorkArea(), QWidget(qApp->mainWidget()), painter_(*this)
{
content_ = new QContentPane(this);
(static_cast<QMainWindow*>(qApp->mainWidget()))->setCentralWidget(this);
-
+
setFocusProxy(content_);
-
+
content_->show();
content_->setBackgroundColor(lcolor.getX11Name(LColor::background).c_str());
QHBoxLayout * vl = new QHBoxLayout(this);
vl->addWidget(content_, 5);
vl->addWidget(scrollbar_, 0);
-
+
show();
}
{
// do what cursor movement does (some grey)
h += height() / 4;
-
- int max = h - height();
- if (max < 0)
- max = 0;
+
+ int max = std::max(0, h - height());
+
scrollbar_->setRange(0, max);
scrollbar_->setValue(pos);
scrollbar_->setLineStep(line_h);
// not possible in Qt !
}
-
-string const QWorkArea::getClipboard() const
+
+string const QWorkArea::getClipboard() const
{
- QString str = QApplication::clipboard()->text();
+ QString str = QApplication::clipboard()->text();
if (str.isNull())
return string();
return str.latin1();
}
-
+
void QWorkArea::putClipboard(string const & str) const
{
QApplication::clipboard()->setText(str.c_str());
* Hopefully soon we can just use QScrollView ...
*/
class QWorkArea : public WorkArea, public QWidget {
-
- friend class QContentPane;
-
public:
+ friend class QContentPane;
QWorkArea(int x, int y, int w, int h);
/// get the content pane widget
QWidget * getContent() const { return content_; }
-
private:
/// scroll bar
QScrollBar * scrollbar_;
#include "QWrapDialog.h"
#include "Qt2BC.h"
#include "lengthcombo.h"
-
+
#include <qpushbutton.h>
#include <qcombobox.h>
#include <qlineedit.h>
typedef Qt2CB<ControlWrap, Qt2DB<QWrapDialog> > base_class;
+
QWrap::QWrap()
: base_class(_("Wrap Options"))
{
if (string(dialog_->widthED->text().latin1()).empty())
unit = LyXLength::UNIT_NONE;
- controller().params().pageWidth = LyXLength(value, unit);
+ WrapParams & params = controller().params();
+
+ params.pageWidth = LyXLength(value, unit);
switch (dialog_->valignCO->currentItem()) {
case 0:
- controller().params().placement.erase();
+ params.placement.erase();
break;
case 1:
- controller().params().placement = "l";
+ params.placement = "l";
break;
case 2:
- controller().params().placement = "r";
+ params.placement = "r";
break;
case 3:
- controller().params().placement = "p";
+ params.placement = "p";
break;
}
}
namespace {
- string const numtostr(double val) {
- string a(tostr(val));
- if (a == "0")
- a = "";
- return a;
- }
+
+string const numtostr(double val) {
+ string a(tostr(val));
+ if (a == "0")
+ a.erase();
+ return a;
+}
+
} // namespace anon
void QWrap::update_contents()
{
- LyXLength len(controller().params().pageWidth);
+ WrapParams & params = controller().params();
+
+ LyXLength len(params.pageWidth);
dialog_->widthED->setText(numtostr(len.value()).c_str());
dialog_->unitsLC->setCurrentItem(len.unit());
int item = 0;
- if (controller().params().placement == "l")
+ if (params.placement == "l")
item = 1;
- else if (controller().params().placement == "r")
+ else if (params.placement == "r")
item = 2;
- else if (controller().params().placement == "p")
+ else if (params.placement == "p")
item = 3;
dialog_->valignCO->setCurrentItem(item);
: public Qt2CB<ControlWrap, Qt2DB<QWrapDialog> >
{
public:
-
friend class QWrapDialog;
QWrap();
-
private:
/// Apply changes
virtual void apply();
#pragma implementation
#endif
-#include <vector>
-
#include "ControlWrap.h"
#include "QWrap.h"
#include <qtextview.h>
#include "lengthcombo.h"
+#include <vector>
+
+
QWrapDialog::QWrapDialog(QWrap * form)
: QWrapDialogBase(0, 0, false, 0),
form_(form)
class QWrap;
-class QWrapDialog : public QWrapDialogBase
-{ Q_OBJECT
-
+class QWrapDialog : public QWrapDialogBase {
+ Q_OBJECT
public:
QWrapDialog(QWrap * form);
-
protected slots:
virtual void change_adaptor();
-
protected:
virtual void closeEvent(QCloseEvent * e);
-
private:
QWrap * form_;
};
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author Allan Rae
- * \author Angus Leeming
+ * \author Allan Rae
+ * \author Angus Leeming
*
* Full author contact details are available in file CREDITS
*/
#include <qbutton.h>
#include <qlineedit.h>
+
Qt2BC::Qt2BC(string const & cancel, string const & close)
: GuiBC<QButton, QWidget>(cancel, close)
{}
the activation policy and which buttons correspond to which output of the
state machine.
*/
-class Qt2BC : public GuiBC<QButton, QWidget>
-{
+class Qt2BC : public GuiBC<QButton, QWidget> {
public:
///
Qt2BC(string const &, string const &);
-
private:
/// Updates the button sensitivity (enabled/disabled)
void setButtonEnabled(QButton *, bool enabled);
#include "ControlButtons.h"
#include "support/LAssert.h"
+
Qt2Base::Qt2Base(QString const & t)
: ViewBase(), updating_(false), title_(t)
{}
/** This class is an Qt2 GUI base class.
*/
-class Qt2Base : public QObject, public ViewBase
-{
+class Qt2Base : public QObject, public ViewBase {
Q_OBJECT
public:
///
Qt2Base(QString const &);
///
virtual ~Qt2Base() {}
-
protected:
/// build the actual dialog
virtual void build_dialog() = 0;
/// are we updating ?
bool updating_;
-
protected slots:
// dialog closed from WM
void slotWMHide();
// Close button clicked
void slotClose();
-
private:
/// Pointer to the actual instantiation of xform's form
virtual QDialog * form() const = 0;
template <class Dialog>
-class Qt2DB: public Qt2Base
-{
+class Qt2DB: public Qt2Base {
protected:
Qt2DB(QString const &);
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author Lars Gullik Bjornes
- * \author John Levon
+ * \author Lars Gullik Bjornes
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
#include "frontends/Menubar.h"
#include "frontends/Dialogs.h"
#include "frontends/Timeout.h"
-
+
#include <boost/bind.hpp>
-
+
#include "QtView.h"
#include "qfont_loader.h"
#include "QCommandBuffer.h"
-
+
#include <qapplication.h>
#include <qpixmap.h>
#include <qmenubar.h>
#include <qstatusbar.h>
-
+
using std::endl;
namespace {
- int const idle_timer_value = 3000;
-}
-
+
+int const idle_timer_value = 3000;
+
+} // namespace anon
+
// FIXME: this has to go away
BufferView * current_view;
qfont_loader fontloader;
+
QtView::QtView(unsigned int width, unsigned int height)
: QMainWindow(), LyXView()
{
resize(width, height);
-
+
qApp->setMainWidget(this);
-
+
bufferview_.reset(new BufferView(this, 0, 0, width, height));
::current_view = bufferview_.get();
toolbar_.reset(new Toolbar(this, 0, 0, toolbardefaults));
statusBar()->setSizeGripEnabled(false);
-
+
view_state_changed.connect(boost::bind(&QtView::update_view_state, this));
connect(&idle_timer_, SIGNAL(timeout()), this, SLOT(update_view_state_qt()));
-
- idle_timer_.start(idle_timer_value);
-
+
+ idle_timer_.start(idle_timer_value);
+
focus_command_buffer.connect(boost::bind(&QtView::focus_command_widget, this));
-
+
commandbuffer_ = new QCommandBuffer(this, *controlcommand_);
-
+
addToolBar(commandbuffer_, Bottom, true);
-
- // assign an icon to main form
+
+ // assign an icon to main form
string const iconname = LibFileSearch("images", "lyx", "xpm");
if (!iconname.empty())
setIcon(QPixmap(iconname.c_str()));
void QtView::message(string const & str)
{
- statusBar()->message(str.c_str());
+ statusBar()->message(str.c_str());
idle_timer_.stop();
idle_timer_.start(idle_timer_value);
}
-
+
void QtView::focus_command_widget()
{
commandbuffer_->focus_command();
statusBar()->message(currentState(view().get()).c_str());
}
-
+
void QtView::update_view_state()
{
statusBar()->message(currentState(view().get()).c_str());
}
-
+
void QtView::activated(int id)
{
getLyXFunc().dispatch(id, true);
}
-
-
+
+
void QtView::closeEvent(QCloseEvent *)
{
QuitLyX();
}
-
+
void QtView::show(int x, int y, string const & title)
{
move(x, y);
/// display a status message
virtual void message(string const & str);
-
public slots:
/// menu item has been selected
void activated(int id);
/// idle timeout
void update_view_state_qt();
-
protected:
/// make sure we quit cleanly
virtual void closeEvent(QCloseEvent * e);
-
private:
/// focus the command buffer widget
void focus_command_widget();
Toc Kalle Waiting to be updated
Url Kalle Done
VCLog John Done
+
+
+Stuff to be aware of
+--------------------
+
+The connect statement in Qt is a macro and its arguments does not follow
+the C++ standard as it should. Using the construct "Type const &" as
+argument will lead to runtime-errors, use "const Type &" instead.
+
+ex.
+
+--right--
+
+ connect(list, SIGNAL(selected(const QString &)),
+ this, SLOT(complete_selected(const QString &)));
+
+--wrong--
+
+ connect(list, SIGNAL(selected(QString const &)),
+ this, SLOT(complete_selected(QString const &)));
void reset();
/// is the timer running ?
bool running() const;
-
protected:
/// slot
virtual void timerEvent(QTimerEvent *);
-
private:
/// the owning timer
Timeout * owner_;
if (!fullname.empty()) {
lyxerr[Debug::GUI] << "Full icon name is `"
- << fullname << "'" << endl;
+ << fullname << "'" << endl;
return QPixmap(fullname.c_str());
}
fullname = LibFileSearch("images", "unknown", "xpm");
if (!fullname.empty()) {
lyxerr[Debug::GUI] << "Using default `unknown' icon"
- << endl;
+ << endl;
}
return QPixmap(fullname.c_str());
}
string const & name = _(tc[layout]->name());
- int i;
-
- for (i = 0; i < combo_->count(); ++i) {
+ int i = 0;
+ for (; i < combo_->count(); ++i) {
if (name == combo_->text(i).latin1())
break;
}
class ToolbarProxy;
struct Toolbar::Pimpl {
-
+public:
friend class ToolbarProxy;
-public:
Pimpl(LyXView * o, int x, int y);
~Pimpl();
/// add a new button to the toolbar.
- void add(int action);
+ void add(int action);
/// update the state of the icons
void update();
void openLayoutList();
/// Erase the layout list
void clearLayoutList();
-
private:
void changed_layout(string const & sel);
typedef std::map<QToolButton *, int> ButtonMap;
ButtonMap map_;
-
};
// moc is mind-numbingly stupid
class ToolbarProxy : public QObject {
Q_OBJECT
-
public:
ToolbarProxy(Toolbar::Pimpl & owner)
- : owner_(owner) { };
-
+ : owner_(owner) {}
public slots:
void layout_selected(const QString & str) {
static_cast<QToolButton const *>(sender()))
);
}
-
private:
Toolbar::Pimpl & owner_;
};
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
#include <config.h>
-
+
#ifdef __GNUG__
#pragma implementation
#endif
#include "frontends/WorkAreaFactory.h"
-
+
#include "QWorkArea.h"
-
+
namespace WorkAreaFactory {
-
+
WorkArea * create(int x, int y, int w, int h)
{
return new QWorkArea(x, y, w, h);
}
-}
+} // namespace WorkAreaFactory
* A simple widget for a quick "preview" in TabularCreateDialog
*/
-const unsigned int cellsize = 20;
+unsigned int const cellsize = 20;
+
EmptyTable::EmptyTable(QWidget * parent, const char * name)
: QtTableView(parent, name, WRepaintNoErase)
setTableFlags(Tbl_autoScrollBars);
}
+
QSize EmptyTable::sizeHint() const
{
return QSize(cellsize * numCols(), cellsize * numRows());
}
-void EmptyTable::paintCell(QPainter *p, int row, int col)
+void EmptyTable::paintCell(QPainter * p, int row, int col)
{
int const x2 = cellWidth(col) - 1;
int const y2 = cellHeight(row) - 1;
if (row + 1 != numRows() || col + 1 != numCols())
return;
-
+
// draw handle
int const step = cellsize / 5;
int const space = 4;
}
}
+
void EmptyTable::setNumberColumns(int nr_cols)
{
if (nr_cols < 1)
emit colsChanged(nr_cols);
}
+
void EmptyTable::setNumberRows(int nr_rows)
{
if (nr_rows < 1)
emit rowsChanged(nr_rows);
}
+
void EmptyTable::mouseMoveEvent(QMouseEvent *ev)
{
int const x = ev->pos().x();
public:
EmptyTable(QWidget * parent = 0, const char * name = 0);
- ~EmptyTable() {};
+ ~EmptyTable() {}
virtual QSize sizeHint() const;
-
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;
#endif
#include "debug.h"
-
+
#include "iconpalette.h"
#include <qlayout.h>
using std::make_pair;
using std::vector;
using std::max;
-
+
int const button_size = 40;
-
+
+
IconPalette::IconPalette(QWidget * parent, char const * name)
: QWidget(parent, name), maxcol_(-1)
{
p->setFixedSize(button_size, button_size);
p->setPixmap(pixmap);
QToolTip::add(p, tooltip.c_str());
- connect(p, SIGNAL(clicked()), this, SLOT(clicked()));
+ connect(p, SIGNAL(clicked()), this, SLOT(clicked()));
buttons_.push_back(make_pair(p, name));
}
void IconPalette::resizeEvent(QResizeEvent * e)
{
QWidget::resizeEvent(e);
-
+
lyxerr[Debug::GUI] << "resize panel to "
<< e->size().width() << "," << e->size().height() << endl;
-
+
int maxcol = e->size().width() / button_size;
-
+
if (!layout_->isEmpty() && maxcol == maxcol_)
return;
lyxerr[Debug::GUI] << "Laying out " << buttons_.size() << " widgets in a "
<< cols << "x" << rows << " grid." << endl;
-
+
setUpdatesEnabled(false);
-
+
// clear layout
QLayoutIterator lit = layout_->iterator();
while (lit.current()) {
lit.takeCurrent();
}
-
+
layout_->invalidate();
-
+
vector<Button>::const_iterator it(buttons_.begin());
vector<Button>::const_iterator const end(buttons_.end());
}
out:
-
+
resize(cols * button_size, rows * button_size);
maxcol_ = cols;
-
+
setUpdatesEnabled(true);
update();
}
/// add a button
void add(QPixmap const & pixmap, string name, string tooltip);
-
signals:
void button_clicked(string);
-
protected:
virtual void resizeEvent(QResizeEvent * e);
-
protected slots:
virtual void clicked();
-
private:
int maxcol_;
#include "lyxserver.h"
#include "io_callback.h"
+
io_callback::io_callback(int fd, LyXComm * comm)
: comm_(comm)
{
public:
/// connect a read ready notification for fd to the LyXComm
io_callback(int fd, LyXComm * comm);
-
public slots:
void data_received();
-
private:
/// our notifier
boost::scoped_ptr<QSocketNotifier> sn_;
#include <qwhatsthis.h>
+
LengthCombo::LengthCombo(QWidget * parent, char * name)
: QComboBox(parent, name)
{
/// get the current item
LyXLength::UNIT currentLengthItem() const;
-
protected slots:
virtual void has_activated(int index);
-
signals:
/// the current selection has changed
void selectionChanged(LyXLength::UNIT unit);
#include "io_callback.h"
#include <qapplication.h>
-#include <qwidget.h>
-#include <qpaintdevicemetrics.h>
+#include <qwidget.h>
+#include <qpaintdevicemetrics.h>
#ifndef CXX_GLOBAL_CSTD
using std::exit;
namespace {
float getDPI()
-{
+{
QWidget w;
QPaintDeviceMetrics pdm(&w);
return 0.5 * (pdm.logicalDpiX() + pdm.logicalDpiY());
}
-}
+map<int, io_callback *> io_callbacks;
+
+} // namespace anon
+
// FIXME: wrong place !
LyXServer * lyxserver;
+
void lyx_gui::parse_init(int & argc, char * argv[])
{
static QApplication a(argc, argv);
}
-namespace {
- map<int, io_callback *> io_callbacks;
-}
-
-
void lyx_gui::set_read_callback(int fd, LyXComm * comm)
{
io_callbacks[fd] = new io_callback(fd, comm);
using std::endl;
+
qfont_loader::qfont_loader()
{
}
QFontMetrics const & metrics(LyXFont const & f) {
return getfontinfo(f)->metrics;
}
-
private:
/// hold info about a particular font
struct font_info {
* Licence details can be found in the file COPYING.
*
* \author unknown
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
#include <config.h>
-
#ifdef __GNUG__
#pragma implementation "frontends/font_metrics.h"
#endif
#include <qfontmetrics.h>
#include <qfont.h>
+
namespace {
- QFontMetrics const & metrics(LyXFont const & f) {
- return fontloader.metrics(f);
- }
+
+QFontMetrics const & metrics(LyXFont const & f)
+{
+ return fontloader.metrics(f);
}
+} // namespace anon
+
namespace font_metrics {
*/
int string_to_qkey(string const & str)
{
+ // FIX! (Lgb)
+
if (str == "Escape") return Qt::Key_Escape;
if (str == "Tab") return Qt::Key_Tab;
if (str == "BackSpace") return Qt::Key_BackSpace;
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
* Full author contact details are available in file CREDITS
*/
#endif
#include <algorithm>
-#include <iostream>
+#include <iostream>
-#include "LColor.h"
+#include "LColor.h"
#include "QWorkArea.h"
#include "qscreen.h"
#include "lyxtext.h"
#include "debug.h"
#include <qapplication.h>
-
+
using std::endl;
using std::max;
using std::min;
/// copy some horizontal regions about inside a pixmap
void copyInPixmap(QPixmap * p, int dest_y, int src_y, int src_w, int src_h)
{
- bitBlt(p,
- 0, dest_y, // dest x,y
- p, 0, src_y, // source x, y
- src_w, src_h // source w, h
- );
+ // bitBlt(dest, dest_x, dest_y, source, src_x, src_y, src_w, src_h)
+ bitBlt(p, 0, dest_y, p, 0, src_y, src_w, src_h);
}
-
+
} // namespace anon
-
+
QScreen::QScreen(QWorkArea & o)
: LyXScreen(), owner_(o)
{
}
-
+
void QScreen::showManualCursor(LyXText const * text, int x, int y,
int asc, int desc, Cursor_Shape shape)
{
if (!qApp->focusWidget())
return;
-
+
string const focusname(qApp->focusWidget()->name());
-
+
// Probably a hack
if (focusname != "content_pane")
return;
int const y_tmp = min(y - text->first_y + desc, owner_.height());
// secure against very strange situations
- // which would be when .... ?
+ // which would be when .... ?
int const y2 = max(y_tmp, y1);
-
+
if (y2 > 0 && y1 < owner_.height()) {
cursor_h_ = y2 - y1 + 1;
cursor_y_ = y1;
break;
}
- if (!nocursor_pixmap_.get()
+ if (!nocursor_pixmap_.get()
|| cursor_w_ != nocursor_pixmap_->width()
|| cursor_h_ != nocursor_pixmap_->height()) {
nocursor_pixmap_.reset(new QPixmap(cursor_w_, cursor_h_));
}
-
+
owner_.getPainter().start();
- // save old area
+ // save old area
bitBlt(nocursor_pixmap_.get(), 0, 0, owner_.getPixmap(),
cursor_x_, cursor_y_, cursor_w_, cursor_h_);
-
+
owner_.getPainter().line(x, y1, x, y2);
switch (shape) {
case BAR_SHAPE:
cursor_w_ - 1, rectangle_h, LColor::cursor);
break;
}
-
+
owner_.getPainter().end();
-
+
owner_.getContent()->repaint(
cursor_x_, cursor_y_,
- cursor_w_, cursor_h_);
+ cursor_w_, cursor_h_);
}
cursor_visible_ = true;
void QScreen::hideCursor()
{
- if (!cursor_visible_)
+ if (!cursor_visible_)
return;
- bitBlt(owner_.getPixmap(), cursor_x_, cursor_y_,
+ bitBlt(owner_.getPixmap(), cursor_x_, cursor_y_,
nocursor_pixmap_.get(), 0, 0, cursor_w_, cursor_h_);
-
+
owner_.getContent()->repaint(
cursor_x_, cursor_y_,
- cursor_w_, cursor_h_);
-
+ cursor_w_, cursor_h_);
+
cursor_visible_ = false;
}
-
+
void QScreen::repaint()
{
QWidget * content(owner_.getContent());
content->repaint(0, 0, content->width(), content->height());
}
-
+
void QScreen::expose(int x, int y, int w, int h)
{
lyxerr[Debug::GUI] << "expose " << w << "x" << h
<< "+" << x << "+" << y << endl;
-
+
owner_.getContent()->update(x, y, w, h);
}
void QScreen::draw(LyXText * text, BufferView * bv, unsigned int y)
{
QPixmap * p(owner_.getPixmap());
-
+
owner_.getPainter().start();
-
+
if (cursor_visible_) hideCursor();
int const old_first = text->first_y;
// If you want to fix the warning below, fix it so it
// actually scrolls properly. Hint: a cast won't do.
-
+
// is any optimization possible?
if (y - old_first < owner_.workHeight()
&& old_first - y < owner_.workHeight()) {
expose(0, owner_.height() - src_y, owner_.workWidth(), src_y);
}
} else {
- lyxerr[Debug::GUI] << "dumb full redraw" << endl;
+ lyxerr[Debug::GUI] << "dumb full redraw" << endl;
drawFromTo(text, bv, 0, owner_.height(), 0, 0, internal);
repaint();
}
-
+
owner_.getPainter().end();
}
+2002-10-20 Lars Gullik Bjønnes <larsbj@gullik.net>
+
+ * XLyXKeySym.h: rename private var keysym to keysym_, add accessor
+ function keysym().
+
+ * FormDocument.C (class_apply): setMessage change
+ (apply): ditto
+
2002-10-16 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
* Menubar_pimpl.C (create_submenu): do not create a "More..."
2002-10-09 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
* xforms_helpers.C (formatted): fix small typo, spotted by Rob
- Lahaye
+ Lahaye
2002-10-08 Dekel Tsur <dekelts@tau.ac.il>
#include "lyxrc.h"
#include "BufferView.h"
#include "buffer.h"
-#include "Liason.h"
#include "CutAndPaste.h"
#include "bufferview_funcs.h"
#include "xforms_helpers.h"
#include <functional>
using std::bind2nd;
-
-using Liason::setMinibuffer;
using std::vector;
+
FormDocument::FormDocument(LyXView & lv, Dialogs & d)
: FormBaseBD(lv, d, _("Document Layout")),
ActCell(0), Confirmed(0),
lv_.view()->redoCurrentBuffer();
}
lv_.buffer()->markDirty();
- setMinibuffer(&lv_, _("Document layout set"));
+ lv_.message(_("Document layout set"));
}
if (textclasslist[params.textclass].load()) {
// successfully loaded
redo = true;
- setMinibuffer(&lv_, _("Converting document to new document class..."));
+ lv_.message(_("Converting document to new document class..."));
int ret = CutAndPaste::SwitchLayoutsBetweenClasses(
old_class, params.textclass,
&*(lv_.buffer()->paragraphs.begin()),
using std::endl;
XLyXKeySym::XLyXKeySym()
- : LyXKeySym(), keysym(NoSymbol)
+ : LyXKeySym(), keysym_(NoSymbol)
{
}
-
+
void XLyXKeySym::initFromKeySym(KeySym ks)
{
- keysym = ks;
+ keysym_ = ks;
}
-
+
void XLyXKeySym::init(string const & symbolname)
{
- keysym = XStringToKeysym(symbolname.c_str());
- if (keysym == NoSymbol) {
+ keysym_ = XStringToKeysym(symbolname.c_str());
+ if (keysym_ == NoSymbol) {
lyxerr[Debug::KBMAP]
<< "XLyXKeySym.C: No such keysym: "
<< symbolname << endl;
bool XLyXKeySym::isOK() const
{
- return keysym != NoSymbol;
+ return keysym_ != NoSymbol;
}
// Can we be sure that this will work for all X Window
// implementations? (Lgb)
// Perhaps all of them should be explictly mentioned?
- return ((keysym >= XK_Shift_L && keysym <= XK_Hyper_R)
- || keysym == XK_Mode_switch || keysym == 0x0);
+ return ((keysym_ >= XK_Shift_L && keysym_ <= XK_Hyper_R)
+ || keysym_ == XK_Mode_switch || keysym_ == 0x0);
}
string XLyXKeySym::getSymbolName() const
{
- char * name = XKeysymToString(keysym);
+ char * name = XKeysymToString(keysym_);
return name ? name : string();
}
-
+
char XLyXKeySym::getISOEncoded() const
{
- if (keysym == NoSymbol) {
+ if (keysym_ == NoSymbol) {
return 0;
}
- unsigned int c = keysym;
+ unsigned int c = keysym_;
switch (c & 0x0000FF00) {
// latin 1 byte 3 = 0
return c;
}
-
-bool XLyXKeySym::operator==(LyXKeySym const & k) const
+
+bool operator==(LyXKeySym const & k1, LyXKeySym const & k2)
{
- // This is dangerous! Ideally, we should use dynamic_cast instead,
- // but on the other hand, we are sure that we will always get
- // the right type, because we decide at compile time which
- // frontend we use. (Asger)
- return keysym == static_cast<XLyXKeySym const &>(k).keysym;
+ return static_cast<XLyXKeySym const &>(k1).keysym()
+ == static_cast<XLyXKeySym const &>(k2).keysym();
}
/// Is this a modifier key only?
virtual bool isModifier() const;
-
+
virtual string getSymbolName() const;
/**
*/
virtual char getISOEncoded() const;
- virtual bool operator==(LyXKeySym const & k) const;
-
+ ///
+ unsigned int keysym() const {
+ return keysym_;
+ }
private:
- unsigned int keysym;
+ unsigned int keysym_;
};
#endif // XLYXKEYSYM_H