2006-03-05 17:24:44 +00:00
|
|
|
/**
|
2007-04-26 03:53:02 +00:00
|
|
|
* \file qt4/Dialogs.cpp
|
2006-03-05 17:24:44 +00:00
|
|
|
* This file is part of LyX, the document processor.
|
|
|
|
* Licence details can be found in the file COPYING.
|
|
|
|
*
|
|
|
|
* \author Angus Leeming
|
|
|
|
*
|
|
|
|
* Full author contact details are available in file CREDITS.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include <config.h>
|
|
|
|
|
|
|
|
#include "Dialogs.h"
|
2007-09-03 05:59:32 +00:00
|
|
|
#include "GuiDialog.h"
|
2006-03-05 17:24:44 +00:00
|
|
|
|
|
|
|
#include "ButtonController.h"
|
2007-09-27 11:27:52 +00:00
|
|
|
#include "DialogView.h"
|
2007-03-12 14:23:44 +00:00
|
|
|
#include "DockView.h"
|
2007-08-31 05:53:55 +00:00
|
|
|
#include "GuiBibitem.h"
|
2007-08-31 22:37:05 +00:00
|
|
|
#include "GuiDelimiter.h"
|
2007-08-31 05:53:55 +00:00
|
|
|
#include "GuiDocument.h"
|
|
|
|
#include "GuiExternal.h"
|
|
|
|
#include "GuiGraphics.h"
|
|
|
|
#include "GuiIndex.h"
|
2007-08-31 22:37:05 +00:00
|
|
|
#include "GuiMathMatrix.h"
|
2007-08-31 05:53:55 +00:00
|
|
|
#include "GuiNomencl.h"
|
|
|
|
#include "GuiParagraph.h"
|
|
|
|
#include "GuiPrefs.h"
|
2007-09-08 16:04:25 +00:00
|
|
|
#include "GuiView.h"
|
2007-08-31 22:37:05 +00:00
|
|
|
#include "GuiURL.h"
|
2006-03-05 17:24:44 +00:00
|
|
|
|
2007-09-27 11:27:52 +00:00
|
|
|
// Uncomment this if you prefer dock widget
|
|
|
|
//#define USE_DOCK_WIDGET
|
|
|
|
|
2006-03-05 17:24:44 +00:00
|
|
|
#include "qt_helpers.h"
|
|
|
|
|
|
|
|
#include <boost/assert.hpp>
|
|
|
|
|
|
|
|
using std::string;
|
|
|
|
|
2007-08-14 09:54:59 +00:00
|
|
|
namespace lyx {
|
|
|
|
namespace frontend {
|
2006-03-05 17:24:44 +00:00
|
|
|
|
|
|
|
namespace {
|
|
|
|
|
2007-10-02 21:01:25 +00:00
|
|
|
// This list should be kept in sync with the list of insets in
|
|
|
|
// src/insets/Inset.cpp. I.e., if a dialog goes with an inset, the
|
|
|
|
// dialog should have the same name as the inset.
|
|
|
|
|
2006-03-05 17:24:44 +00:00
|
|
|
char const * const dialognames[] = {
|
|
|
|
"aboutlyx", "bibitem", "bibtex", "box", "branch", "changes", "character",
|
2007-08-31 15:42:35 +00:00
|
|
|
"citation", "document", "embedding", "errorlist", "ert", "external", "file",
|
2006-11-04 17:55:36 +00:00
|
|
|
"findreplace", "float", "graphics", "include", "index", "nomenclature", "label", "log",
|
2007-04-19 21:42:42 +00:00
|
|
|
"mathdelimiter", "mathmatrix", "note", "paragraph",
|
2006-03-05 17:24:44 +00:00
|
|
|
"prefs", "print", "ref", "sendto", "spellchecker","tabular", "tabularcreate",
|
|
|
|
|
|
|
|
#ifdef HAVE_LIBAIKSAURUS
|
|
|
|
"thesaurus",
|
|
|
|
#endif
|
|
|
|
|
Add support for listings package. Two listings command \lstinline, \lstinputlisting and an environment \lstlisting are supported, along with preamble \lstset. \lstinputlisting is implemented through Include dialog, and the other two are implemented with a new inset listings, along with its dialog.
* src/LyXAction.cpp: listing-insert action
* src/insets/Inset.h,cpp: LISTINGS_CODE
* src/insets/InsetInclude.cpp: handle \lstinputlisting
* src/insets/InsetListings.h,cpp: new listings inset
* src/insets/InsetListingsParams.h,cpp: parameters from listings package
* src/insets/InsetCommandParams.h,cpp: handle lstinputlisting option
* src/Bidi.cpp: handle LISTINGS_CODE
* src/frontends/qt4/ui/TextLayoutUi.ui: update UI
* src/frontends/qt4/ui/ListingsUi.ui: new dialog
* src/frontends/qt4/ui/IncludeUi.ui: update UI
* src/frontends/qt4/QInclude.h,cpp: add lstinputlisting
* src/frontends/qt4/QDocument.h,cpp: add textedit for preamble listings_params
* src/frontends/qt4/QListings.h,cpp: new listings inset
* src/frontends/qt4/Dialogs.cpp: new listings dialog
* src/frontends/controllers/ControlInclude.h,cpp: add lstinputlisting
* src/frontends/controllers/ControlListings.h,cpp: new listings inset
* src/LyXFunc.cpp: handle LISTING_CODE
* src/Paragraph.cpp: handle LISTING_CODE
* src/factory.cpp: new listings inset
* src/CutAndPaste.cpp: handle LISTINGS_CODE
* src/LaTeXFeatures.cpp: require listings
* src/Text3.cpp: Handle LISTINGS_CODE
* src/lfuns.h: add LFUN_LISTING_INSERT
* src/Buffer.cpp: change lyx file format to 269
* src/BufferParams.h,cpp: add listings_params to preamble
* lib/lyx2lyx/LyX.py: lyx2lyx
* lib/lyx2lyx/lyx_1_5.py: lyx2lyx
* lib/ui/stdmenus.inc: new menu item (no shortcut!)
* src/insets/Makefile.am: update autotools
* src/frontends/controllers/Makefile.am
* src/frontends/qt4/Makefile.dialogs
* src/frontends/qt4/Makefile.am
* po/POTFILES.in: a few more translatable files.
* development/scons/scons_manifest.py: scons build system
* development/FORMAT: document format changes
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18243 a592a061-630c-0410-9148-cb99ea01b6c8
2007-05-09 19:11:42 +00:00
|
|
|
"texinfo", "toc", "url", "view-source", "vspace", "wrap", "listings" };
|
2006-03-05 17:24:44 +00:00
|
|
|
|
|
|
|
char const * const * const end_dialognames =
|
|
|
|
dialognames + (sizeof(dialognames) / sizeof(char *));
|
|
|
|
|
|
|
|
class cmpCStr {
|
|
|
|
public:
|
|
|
|
cmpCStr(char const * name) : name_(name) {}
|
|
|
|
bool operator()(char const * other) {
|
|
|
|
return strcmp(other, name_) == 0;
|
|
|
|
}
|
|
|
|
private:
|
|
|
|
char const * name_;
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
} // namespace anon
|
|
|
|
|
2007-10-05 20:43:26 +00:00
|
|
|
// will be replaced by a proper factory...
|
2007-10-05 21:06:08 +00:00
|
|
|
Dialog * createGuiAbout(LyXView & lv);
|
|
|
|
Dialog * createGuiBibitem(LyXView & lv);
|
|
|
|
Dialog * createGuiBibtex(LyXView & lv);
|
|
|
|
Dialog * createGuiBox(LyXView & lv);
|
|
|
|
Dialog * createGuiBranch(LyXView & lv);
|
|
|
|
Dialog * createGuiChanges(LyXView & lv);
|
|
|
|
Dialog * createGuiCharacter(LyXView & lv);
|
|
|
|
Dialog * createGuiCitation(LyXView & lv);
|
|
|
|
Dialog * createGuiDelimiter(LyXView & lv);
|
|
|
|
Dialog * createGuiDocument(LyXView & lv);
|
2007-10-06 14:31:48 +00:00
|
|
|
Dialog * createGuiEmbeddedFiles(LyXView & lv);
|
2007-10-05 21:06:08 +00:00
|
|
|
Dialog * createGuiErrorList(LyXView & lv);
|
|
|
|
Dialog * createGuiERT(LyXView & lv);
|
|
|
|
Dialog * createGuiExternal(LyXView & lv);
|
|
|
|
Dialog * createGuiFloat(LyXView & lv);
|
|
|
|
Dialog * createGuiGraphics(LyXView & lv);
|
|
|
|
Dialog * createGuiInclude(LyXView & lv);
|
|
|
|
Dialog * createGuiIndex(LyXView & lv);
|
|
|
|
Dialog * createGuiLabel(LyXView & lv);
|
|
|
|
Dialog * createGuiListings(LyXView & lv);
|
|
|
|
Dialog * createGuiLog(LyXView & lv);
|
|
|
|
Dialog * createGuiMathMatrix(LyXView & lv);
|
|
|
|
Dialog * createGuiNomencl(LyXView & lv);
|
2007-10-05 20:43:26 +00:00
|
|
|
Dialog * createGuiNote(LyXView & lv);
|
2007-10-05 21:06:08 +00:00
|
|
|
Dialog * createGuiPrefs(LyXView & lv);
|
|
|
|
Dialog * createGuiPrint(LyXView & lv);
|
2007-10-05 19:04:38 +00:00
|
|
|
Dialog * createGuiRef(LyXView & lv);
|
2007-10-05 21:06:08 +00:00
|
|
|
Dialog * createGuiSearch(LyXView & lv);
|
2007-10-06 20:09:40 +00:00
|
|
|
Dialog * createGuiSendTo(LyXView & lv);
|
2007-10-05 21:06:08 +00:00
|
|
|
Dialog * createGuiShowFile(LyXView & lv);
|
|
|
|
Dialog * createGuiSpellchecker(LyXView & lv);
|
|
|
|
Dialog * createGuiTabularCreate(LyXView & lv);
|
|
|
|
Dialog * createGuiTabular(LyXView & lv);
|
2007-10-06 08:47:08 +00:00
|
|
|
Dialog * createGuiTexInfo(LyXView & lv);
|
2007-10-06 20:35:44 +00:00
|
|
|
Dialog * createGuiToc(LyXView & lv);
|
2007-10-05 21:06:08 +00:00
|
|
|
Dialog * createGuiThesaurus(LyXView & lv);
|
|
|
|
Dialog * createGuiURL(LyXView & lv);
|
|
|
|
Dialog * createGuiVSpace(LyXView & lv);
|
2007-10-06 15:03:58 +00:00
|
|
|
Dialog * createGuiViewSource(LyXView & lv);
|
2007-10-05 20:16:05 +00:00
|
|
|
Dialog * createGuiWrap(LyXView & lv);
|
2007-10-05 19:04:38 +00:00
|
|
|
|
|
|
|
|
2006-03-05 17:24:44 +00:00
|
|
|
bool Dialogs::isValidName(string const & name) const
|
|
|
|
{
|
|
|
|
return std::find_if(dialognames, end_dialognames,
|
|
|
|
cmpCStr(name.c_str())) != end_dialognames;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2007-09-03 05:59:32 +00:00
|
|
|
Dialog * Dialogs::build(string const & name)
|
2006-03-05 17:24:44 +00:00
|
|
|
{
|
|
|
|
BOOST_ASSERT(isValidName(name));
|
|
|
|
|
2007-09-08 16:04:25 +00:00
|
|
|
GuiViewBase & guiview = static_cast<GuiViewBase &>(lyxview_);
|
2006-03-05 17:24:44 +00:00
|
|
|
|
2007-10-06 19:51:03 +00:00
|
|
|
if (name == "aboutlyx")
|
|
|
|
return createGuiAbout(lyxview_);
|
|
|
|
if (name == "bibitem")
|
|
|
|
return new GuiBibitemDialog(lyxview_);
|
|
|
|
if (name == "bibtex")
|
|
|
|
return createGuiBibtex(lyxview_);
|
|
|
|
if (name == "box")
|
|
|
|
return createGuiBox(lyxview_);
|
|
|
|
if (name == "branch")
|
|
|
|
return createGuiBranch(lyxview_);
|
|
|
|
if (name == "changes")
|
|
|
|
return createGuiChanges(lyxview_);
|
|
|
|
if (name == "character")
|
|
|
|
return createGuiCharacter(lyxview_);
|
|
|
|
if (name == "citation")
|
|
|
|
return createGuiCitation(lyxview_);
|
|
|
|
if (name == "document")
|
|
|
|
return new GuiDocumentDialog(lyxview_);
|
|
|
|
if (name == "embedding")
|
|
|
|
return createGuiEmbeddedFiles(lyxview_);
|
|
|
|
if (name == "errorlist")
|
|
|
|
return createGuiErrorList(lyxview_);
|
|
|
|
if (name == "ert")
|
|
|
|
return createGuiERT(lyxview_);
|
|
|
|
if (name == "external")
|
|
|
|
return new GuiExternalDialog(lyxview_);
|
|
|
|
if (name == "file")
|
|
|
|
return createGuiShowFile(lyxview_);
|
|
|
|
if (name == "findreplace")
|
2007-10-06 20:54:31 +00:00
|
|
|
return createGuiSearch(lyxview_);
|
2007-10-06 19:51:03 +00:00
|
|
|
if (name == "float")
|
|
|
|
return createGuiFloat(lyxview_);
|
|
|
|
if (name == "graphics")
|
|
|
|
return new GuiGraphicsDialog(lyxview_);
|
|
|
|
if (name == "include")
|
|
|
|
return createGuiInclude(lyxview_);
|
|
|
|
if (name == "index")
|
|
|
|
return new GuiIndexDialog(lyxview_);
|
|
|
|
if (name == "nomenclature")
|
|
|
|
return new GuiNomenclDialog(lyxview_);
|
|
|
|
if (name == "label")
|
|
|
|
return new GuiLabelDialog(lyxview_);
|
|
|
|
if (name == "log")
|
|
|
|
return createGuiLog(lyxview_);
|
|
|
|
if (name == "view-source")
|
|
|
|
return createGuiViewSource(lyxview_);
|
|
|
|
if (name == "mathdelimiter")
|
|
|
|
return new GuiDelimiterDialog(lyxview_);
|
|
|
|
if (name == "mathmatrix")
|
|
|
|
return new GuiMathMatrixDialog(lyxview_);
|
|
|
|
if (name == "note")
|
|
|
|
return createGuiNote(lyxview_);
|
|
|
|
if (name == "paragraph") {
|
2007-09-27 11:27:52 +00:00
|
|
|
#ifdef USE_DOCK_WIDGET
|
2007-10-06 19:51:03 +00:00
|
|
|
return new DockView<ControlParagraph, GuiParagraph>(guiview, name,
|
|
|
|
Qt::TopDockWidgetArea);
|
2007-09-27 11:27:52 +00:00
|
|
|
#else
|
2007-10-06 19:51:03 +00:00
|
|
|
return new DialogView<ControlParagraph, GuiParagraph>(guiview, name);
|
2007-09-27 11:27:52 +00:00
|
|
|
#endif
|
2007-10-06 19:51:03 +00:00
|
|
|
}
|
|
|
|
if (name == "prefs")
|
|
|
|
return new GuiPrefsDialog(lyxview_);
|
|
|
|
if (name == "print")
|
2007-10-06 21:31:01 +00:00
|
|
|
return createGuiPrint(lyxview_);
|
2007-10-06 19:51:03 +00:00
|
|
|
if (name == "ref")
|
|
|
|
return createGuiRef(lyxview_);
|
|
|
|
if (name == "sendto")
|
2007-10-06 20:09:40 +00:00
|
|
|
return createGuiSendTo(lyxview_);
|
2007-10-06 19:51:03 +00:00
|
|
|
if (name == "spellchecker")
|
|
|
|
return createGuiSpellchecker(lyxview_);
|
|
|
|
if (name == "tabular")
|
|
|
|
return createGuiTabular(lyxview_);
|
|
|
|
if (name == "tabularcreate")
|
|
|
|
return createGuiTabularCreate(lyxview_);
|
|
|
|
if (name == "texinfo")
|
|
|
|
return createGuiTexInfo(lyxview_);
|
2006-03-05 17:24:44 +00:00
|
|
|
#ifdef HAVE_LIBAIKSAURUS
|
2007-10-06 19:51:03 +00:00
|
|
|
if (name == "thesaurus")
|
2007-10-06 19:59:13 +00:00
|
|
|
return createGuiThesaurus(lyxview_);
|
2006-03-05 17:24:44 +00:00
|
|
|
#endif
|
2007-10-06 20:35:44 +00:00
|
|
|
if (name == "toc")
|
|
|
|
return createGuiToc(lyxview_);
|
2007-10-06 19:51:03 +00:00
|
|
|
if (name == "url")
|
|
|
|
return new GuiURLDialog(lyxview_);
|
|
|
|
if (name == "vspace")
|
|
|
|
return createGuiVSpace(lyxview_);
|
|
|
|
if (name == "wrap")
|
|
|
|
return createGuiWrap(lyxview_);
|
|
|
|
if (name == "listings")
|
|
|
|
return createGuiListings(lyxview_);
|
|
|
|
|
|
|
|
return 0;
|
2006-03-05 17:24:44 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// Are the tooltips on or off?
|
|
|
|
bool Dialogs::tooltipsEnabled()
|
|
|
|
{
|
|
|
|
return false;
|
|
|
|
}
|
2006-10-21 00:16:43 +00:00
|
|
|
|
2007-08-14 09:54:59 +00:00
|
|
|
} // namespace frontend
|
2006-10-21 00:16:43 +00:00
|
|
|
} // namespace lyx
|