]> git.lyx.org Git - features.git/commitdiff
Fix bug 5863:
authorJürgen Spitzmüller <spitz@lyx.org>
Sat, 28 Mar 2009 10:48:16 +0000 (10:48 +0000)
committerJürgen Spitzmüller <spitz@lyx.org>
Sat, 28 Mar 2009 10:48:16 +0000 (10:48 +0000)
* beamer.layout:
* powerdot.layout:
- those provide geometry

* BufferParams.cpp:
* GuiDocument.cpp:
- implement provides("geometry")

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28957 a592a061-630c-0410-9148-cb99ea01b6c8

lib/layouts/beamer.layout
lib/layouts/powerdot.layout
src/BufferParams.cpp
src/frontends/qt4/GuiDocument.cpp

index 5a4f4b076ecc2152981ee09cab789b55c4721f05..7e0b984449c32687ab1cf9473b3c08b8c2bf30d4 100644 (file)
@@ -17,6 +17,7 @@ SecNumDepth        2
 TocDepth           2
 DefaultStyle       Standard
 Provides hyperref  1
+Provides geometry  1
 
 DefaultFont
   Family           Sans
index 161e0cb25797faddd6ccea2c0bddeb9a04b8202f..e9ac1aa04c455c3ec83fce4474cf608b05307100 100644 (file)
@@ -13,6 +13,7 @@ Columns             1
 Sides               1
 Provides url        1
 Provides hyperref   1
+Provides geometry   1
 DefaultStyle        Standard
 
 DefaultFont
index 53de012b389535734b9cdaf340d36cd3971a9606..5183ac2499040db9aa693775fae51bd33900a823 100644 (file)
@@ -1129,7 +1129,8 @@ bool BufferParams::writeLaTeX(odocstream & os, LaTeXFeatures & features,
                os << "}\n";
                texrow.newline();
        }
-       if (use_geometry || nonstandard_papersize) {
+       if (!tclass.provides("geometry")
+           && (use_geometry || nonstandard_papersize)) {
                odocstringstream ods;
                if (!getGraphicsDriver("geometry").empty())
                        ods << getGraphicsDriver("geometry");
index 493ac1a2726bfef556e9d1f637d4ab995a45df8e..a61d9fa6e3a1c007cc820b36d4c9e36ad767750b 100644 (file)
@@ -1097,6 +1097,14 @@ void GuiDocument::portraitChanged()
 
 void GuiDocument::setMargins(bool custom)
 {
+       bool const extern_geometry =
+               documentClass().provides("geometry");
+       marginsModule->marginCB->setEnabled(!extern_geometry);
+       if (extern_geometry) {
+               marginsModule->marginCB->setChecked(false);
+               setCustomMargins(true);
+               return;
+       }
        marginsModule->marginCB->setChecked(custom);
        setCustomMargins(custom);
 }
@@ -2071,14 +2079,19 @@ void GuiDocument::paramsToDialog()
                fontModule->fontsDefaultCO->setCurrentIndex(n);
 
        // paper
+       bool const extern_geometry =
+               documentClass().provides("geometry");
        int const psize = bp_.papersize;
        pageLayoutModule->papersizeCO->setCurrentIndex(psize);
-       setCustomPapersize(psize);
+       setCustomPapersize(!extern_geometry && psize);
+       pageLayoutModule->papersizeCO->setEnabled(!extern_geometry);
 
        bool const landscape =
                bp_.orientation == ORIENTATION_LANDSCAPE;
        pageLayoutModule->landscapeRB->setChecked(landscape);
        pageLayoutModule->portraitRB->setChecked(!landscape);
+       pageLayoutModule->landscapeRB->setEnabled(!extern_geometry);
+       pageLayoutModule->portraitRB->setEnabled(!extern_geometry);
 
        pageLayoutModule->facingPagesCB->setChecked(
                bp_.sides == TwoSides);