Commit Graph

86 Commits

Author SHA1 Message Date
Richard Heck
700af7e701 Add support for document-local layout information. GUI is to follow.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23913 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-24 12:31:07 +00:00
Abdelrazak Younes
f0771cecc2 MSVC Compile fix.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23540 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-07 19:43:17 +00:00
Richard Heck
6edb3984bf BaseClassList --> LayoutFileList
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23532 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-07 03:53:21 +00:00
Richard Heck
ac6e5b871c Get rid of the boost::shared_ptr's in TextClass.{h,cpp}. It's not clear what these were really doing here now, and they will cause bugs now that DocumentClass objects are more dynamic.
Abdel suggested it might be worth pimpl'ing the FloatList and Counter objects, to get the header dependencies back down.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23530 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-07 03:41:12 +00:00
Richard Heck
6f1cb456cf Improve performance of TextClass type objects by making BaseClassList and DocumentClassBundle containers of pointers rather than of objects, thus reducing the need to copy. Since these classes are singletons that live the life of the process, there's not much need to worry about memory leaks.
We take the opportunity to make TextClass objects noncopyable, nonassignable, etc.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23526 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-06 23:31:40 +00:00
Richard Heck
f401ce5d29 Changes LayoutList from a vector<LayoutPtr> to a vector<Layout>.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23519 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-06 20:01:30 +00:00
Richard Heck
592f951ba0 Kill indexing into the list of layouts.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23505 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-06 05:59:21 +00:00
Jürgen Spitzmüller
ac1977018b ** subfig support **
* src/Buffer.cpp:
* development/FORMAT:
	- bump format to 316.

* src/insets/InsetFloat.{cpp, h}:
	- let nested floats be subfloats
	  NOTE: docbook support is missing.
* src/insets/InsetCaption.{cpp, h}:
	- handle subfigure captions
* src/insets/InsetGraphics.cpp:
* src/insets/InsetGraphicsParams.{cpp, h}:
	- remove old subfigure support

* lib/chkconfig.ltx:
* lib/doc/LaTeXConfig.lyx:
	- check for subfig instead of subfigure.

* lib/lyx2lyx/LyX.py:
* lib/lyx2lyx/lyx_1_6.py:
	- conversion/reversion routines for subfig -> subfloats
	  NOTE: the reversion routine still has bugs.

* src/Counters.{cpp, h}: 
	- add identifiers for subfloats

* src/LaTeXFeatures.{cpp, h}:
	- support for subfig

* src/TextClass.cpp:
	- set up subfloat counter for all custom floats.

* src/frontends/qt4/GuiGraphics.cpp:
* src/frontends/qt4/ui/GrahicsUi.ui:
	- remove subfigure UI.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23381 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-02 11:30:50 +00:00
Richard Heck
2b3bd7b5f4 This is the last of the commits that hopes to enforce the distinction between "layout files" and "document classes" that was introduced by the modules code. For the most part, these changes just refactor code from TextClass between: (a) a TextClass base class; (b) a LayoutFile subclass, which represents the information in a .layout file; and (c) a DocumentClass subclass, which represents the layout information associated with a Buffer---a LayoutFile plus Modules. Methods from TextClass have been apportioned between the three classes depending upon what is needed where, and signatures have been changed where necessary so that the right kind of class is required.
At this point, there are no simple TextClass objects in the main LyX code, and it is impossible to create them, since the TextClass constructor is protected. Only LayoutFile and DocumentClass objects can be constructed, and for the most part these are constructed only by their respective containers: BaseClassList and DocumentClassBundle. There is an exception: LayoutFile does have a public default constructor, but if anyone knows how to make it go away, please do.

There will be one or two more commits along these lines, but these will be simple renamings. For example, BaseClassList should be LayoutFileList.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23343 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-29 02:45:33 +00:00
Richard Heck
cef5f40f47 Fix oddity in bibtotoc handling.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23339 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-28 21:25:57 +00:00
Richard Heck
058933bb94 Missed this when fixing the TextClass::read() API.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23330 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-28 18:17:59 +00:00
Richard Heck
d8a6b5bfd0 Remove TextClassPtr without losing the type safety it provided.
See these threads:
http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg136112.html
http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg136062.html
http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg135997.html
for some background.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23299 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-28 01:42:02 +00:00
Richard Heck
b2475f6625 Replace boost::shared_ptr<TextClass> with a global cache of sorts of the TextClass's used by Buffers---or, more strictly, constructed by BufferParams::makeTextClass(). The action is in TextClass.{h,cpp}.
I've left the typedef in TextClassPtr.h. At the moment, it's kind of silly. But I've left it mostly because it helps to identify where the TextClass's stored in the TextClassBundle are used, and maybe it'd be worth having some sort of strong typedef like the one for BaseClassIndex here.

I need to check whether the textClass_ member of InsetCollapsable is needed now. I think not.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23232 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-25 19:31:31 +00:00
Bo Peng
1aaa96e6f1 Load local textclass in addTextClass(), reload local layout correctly in LFUN_TEXTCLASS_APPLY and LFUN_TEXTCLASS_LOAD
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23175 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-24 06:14:48 +00:00
André Pönitz
0fb8f3fba1 mostly s/Paragraph::layout(...)/Paragraph::setLayout(...)/
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23159 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-23 16:45:38 +00:00
Richard Heck
20cf42b741 This is the second commit in the process of making InsetLayout a real class.
Here, we move TextClass::readInsetLayout() to InsetLayout::read().


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23117 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-22 03:27:42 +00:00
Richard Heck
a8317afc4b This is the first of a series of commits that will make InsetLayout a real class.
In this commit, we do the minimal amount of work necessary to protect our data.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23116 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-22 02:32:52 +00:00
Richard Heck
a51525c416 Add empty InsetLayout for undefined cases. Should avoid possible bugs caused by empty layout_ pointer in InsetCollapsable.
NOTE: Some cleanup is needed here, and I'll do it shortly. Doing it properly, though, requires making InsetLayout a proper class. (At the moment, it's just a C-style struct.) That should be committed separately.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23103 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-21 16:31:59 +00:00
Jean-Marc Lasgouttes
c075a285a0 * TextClass.cpp (read): do not use istrstream (which is deprecated),
but istringstream instead.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23053 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-18 10:03:30 +00:00
Abdelrazak Younes
2bf1c09376 header cleanup
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23049 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-18 07:14:42 +00:00
Richard Heck
369d21f4e2 Fix Layout::read() API.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22991 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-14 04:12:15 +00:00
Richard Heck
b76e95b942 Fix TextClass::read API. Also some cleanup.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22988 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-14 03:38:08 +00:00
Abdelrazak Younes
5ed5e01fd7 *TextClass::readStyle(): return true on success!
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22980 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-13 14:39:16 +00:00
Abdelrazak Younes
decc411b6b rev 22973: correct fix.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22974 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-13 12:37:11 +00:00
Abdelrazak Younes
7acb8e3998 Warning fix
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22973 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-13 12:25:42 +00:00
Richard Heck
040f3431e7 Fix bug 4037 and related problems. The patch has been cleaned up a bit
from the one posted to the list.

The basic idea has two parts. First, we hard code an "empty layout"
(called PlainLayout, for want of a better name) in TextClass and read it
before doing anything else. It can therefore be customized by classes,
if they want---say, to make it left-aligned. Second, InsetText's are
divided into three types: (i) normal ones, that use the "default" layout
defined by the text class; (ii) highly restrictive ones, such as ERT and
(not quite an inset) table cells, which demand the empty layout; (iii)
middling ones, which default to an empty layout and use the empty layout
in place of the default. (This is so we don't get the same problem we
had with ERT in e.g. footnotes.) The type of inset is signaled by new
methods InsetText::forceEmptyLayout() and InsetText::useEmptyLayout().
(The latter might better be called: useEmptyLayoutInsteadOfDefault(),
but that's silly.) The old InsetText::forceDefaultParagraphs() has been
split into these, plus a new method InsetText::allowParagraphCustomization(). 
A lot of the changes just adapt to this change.

The other big change is in GuiToolbar: We want to show LyXDefault and
the "default" layout only when they're active.

There are a handful of places where I'm not entirely sure whether we
should be using forceEmptyLayout or !allowParagraphCustomization() or
both. The InsetCaption is one of these. These places, and some others,
are marked with FIXMEs, so I'd appreciate it if people would search
through the patch and let me know whether these need changing. If they
don't, the FIXMEs can be deleted.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22966 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-12 17:31:07 +00:00
Abdelrazak Younes
270ca445e5 Tex2lyx Compile fix: use Exception Message instead of frontend::Alert. Richard, please verify that the thrown exceptions are correctly caught by the caller in tex2lyx and in lyx.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22806 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-06 09:46:48 +00:00
Abdelrazak Younes
27edbfb4c8 shutup warning.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22805 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-06 09:37:37 +00:00
Richard Heck
8fec5f512d Partially fix bug 4532: http://bugzilla.lyx.org/show_bug.cgi?id=4532.
See in particular comment 6.

We forcibly load stdinsets.inc unless the TextClass declares:
  Provides stdinsets 1
There isn't really any such package, of course. We're just using this
(per a suggestion by JMarc) to say we've loaded relevant info about the
standard insets.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22802 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-05 22:57:33 +00:00
Richard Heck
2e82ca7198 Tweaks.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22793 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-05 16:20:18 +00:00
Richard Heck
cee09578e6 Cosmetic.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22757 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-03 00:32:02 +00:00
Jean-Marc Lasgouttes
11bea5a763 Use a set<string> instead of a vecctor<string> for list of features. This
allows to simplify the code to some extent.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22734 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-01 15:12:04 +00:00
Jürgen Spitzmüller
926e115e6a * src/TextClass.cpp:
- remove superfluous condition.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22429 a592a061-630c-0410-9148-cb99ea01b6c8
2008-01-08 09:14:44 +00:00
Jürgen Spitzmüller
2c0eaab164 * src/TextClass.cpp:
- allow for multiple subsequent Requires class tags.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22428 a592a061-630c-0410-9148-cb99ea01b6c8
2008-01-08 07:29:47 +00:00
Jürgen Spitzmüller
9e5eebc14c *** Requires tag for classes, layouts and custom insets ***
* src/TextClass{cpp,h}:
	- implement Requires tag for class and InsetLayout.
* src/Layout.{cpp,h}:
	- implement Requires tag for layouts.
	- increase layouts format to 6.
* src/Paragraph.cpp:
	- request required features for paragraph layouts.
* src/LaTeXFeatures.cpp:
	- add some packages needed by modules.
	- remove Preamble method for InsetLayout. This is now done
	  in InsetFlex::validate.
* src/BufferParams.cpp (validate):
	- request required features for the class.
* src/insets/InsetLayout.h:
	- new member "requires".
* src/insets/InsetFlex.{cpp,h}:
	- implement validate method and request required features and preamble snippets.

* lib/layouts/*.{layout,module,inc}:
	- increase layouts format to 6.
	- use Requires tags in some modules (more can be done later).

* lib/doc/Customization.lyx:
	- document Requires tag.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22414 a592a061-630c-0410-9148-cb99ea01b6c8
2008-01-07 16:59:10 +00:00
Abdelrazak Younes
9439b6e6e0 * get rid of support::absolutePath()
* remove FileName.h inclusion from filetools.h


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22188 a592a061-630c-0410-9148-cb99ea01b6c8
2007-12-17 16:04:46 +00:00
Abdelrazak Younes
e7bb71ff4e header cleanup.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22178 a592a061-630c-0410-9148-cb99ea01b6c8
2007-12-16 22:09:28 +00:00
Abdelrazak Younes
4020357dd2 Transfer tempName() implementation to FileName.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22161 a592a061-630c-0410-9148-cb99ea01b6c8
2007-12-16 07:52:38 +00:00
Abdelrazak Younes
7c392af6ea getting rid of superfluous lyx::support:: statements.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22106 a592a061-630c-0410-9148-cb99ea01b6c8
2007-12-12 19:57:42 +00:00
Abdelrazak Younes
9abb7db468 getting rid of superfluous std:: statements.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22104 a592a061-630c-0410-9148-cb99ea01b6c8
2007-12-12 19:28:07 +00:00
Abdelrazak Younes
b89cc942eb 'using namespace lyx::support' instead of 'using support::xxx'
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22103 a592a061-630c-0410-9148-cb99ea01b6c8
2007-12-12 18:57:56 +00:00
Abdelrazak Younes
9383f4c3c6 'using namespace std' instead of 'using std::xxx'
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22097 a592a061-630c-0410-9148-cb99ea01b6c8
2007-12-12 10:16:00 +00:00
Peter Kümmel
a30f67ed98 fix wrong tex2lyx hack
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22009 a592a061-630c-0410-9148-cb99ea01b6c8
2007-12-08 11:07:43 +00:00
Peter Kümmel
2944cdd82a fix wrong tex2lyx hack
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22008 a592a061-630c-0410-9148-cb99ea01b6c8
2007-12-08 10:50:30 +00:00
André Pönitz
9d0ea8aeff Move debug.{cpp,h}, Messages.{cpp,h} and gettext.{cpp,h} to support/.
Now support/* should have no dependencies on src/* anymore.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21851 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-29 07:04:28 +00:00
Abdelrazak Younes
f07105d0e5 * FileName:
- removeFile(): replace unlink
- copyTo(): add 'overwrite' parameter.

* getcwd.cpp: simplify.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21843 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-28 09:01:49 +00:00
Peter Kümmel
75ac7cb3ad fix compile, but it breaks cmake's merged build
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21780 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-25 19:25:05 +00:00
Peter Kümmel
ff78ddc4fc don't declare if already done in a header
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21772 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-25 17:57:08 +00:00
André Pönitz
d95451ae5c s/isFileReadable/isReadableFile;
introduce isReadableDirectory
replace isReadable by either isReadableFile or isReadableDirectory
remove isReadable


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21769 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-25 11:18:16 +00:00
André Pönitz
e1ce2f92db reduce line noise
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21631 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-15 20:04:51 +00:00