* [qt3, xforms, gtk]/GuiImplementation::newWorkArea: return 0
* qt4/Application.[Ch]: was not merged (GUI API cleanup merge) for an unknown reason
* qt4/clipboard.C: ditto
* lib/lyx2lyx/LyX.py (format_relation): add file format 247 (from Georg BAUM).
* lib/lyx2lyx/lyx_1_5.py: add convert_font_settings, revert_font_settings (from Georg BAUM).
* lib/chkconfig.ltx: Test for newly supported font packages
* lib/doc/LaTeXConfig.lyx.in: document newly supported font packages
* lib/doc/UserGuide.lyx: document new UI.
* lib/doc/Extended.lyx: update PostScript font documentation
* development/FORMAT: document file format change 246->247.
* src/tex-strings.[Ch]: new strings tex_fonts_roman, tex_fonts_sans,
tex_fonts_monospaced (with GUI equivalents).
* src/buffer.C: Format up to 247.
* src/bufferparams.C:
new params fontsRoman, fontsSans, fontsTypewriter, fontsDefaultFamily,
fontsSC, fontsOSF, fontsSansScale and fontsTypewriterScale
(LyXFont const BufferParams::getFont): consider switch of default family.
(string const BufferParams::loadFonts): new method to get all the LaTeX
font stuff done.
* src/paragraph.C
(LyXFont const Paragraph::getFont):
(LyXFont const Paragraph::getLabelFont):
(LyXFont const Paragraph::getLayoutFont): user buffer's not textclass's
default font
* src/text.C
(int LyXText::leftMargin):
(int LyXText::rightMargin): user buffer's not textclass's default font
* src/text2.C
(LyXFont LyXText::getFont):
(LyXFont LyXText::getLayoutFont):
(LyXFont LyXText::getLabelFont): check if the family of the default document
font has been customized.
* src/frontends/gtk/GDocument.[Ch]: implement new font ui (from Georg BAUM).
* src/frontends/gtk/glade/document.glade: implement new font ui (from Georg BAUM).
* src/frontends/qt3/Makefile.dialogs: add new FontModuleBase
* src/frontends/qt3/ui/FontModuleBase.ui: new File
* src/frontends/qt3/ui/TextLayoutModuleBase.ui: remove font widgets
* src/frontends/qt3/QDocument.C
* src/frontends/qt3/QDocumentDialog.[Ch]: implement new font ui
* src/frontends/qt4/Makefile.dialogs: add new FontUi
* src/frontends/qt4/QDocumentDialog.[Ch]: implement new font ui
* src/frontends/qt4/ui/FontUi.ui: new File
* src/frontends/qt4/ui/TextLayoutUi.ui: remove font widgets
* src/frontends/qt4/ui/compile_uic.sh: add new FontUi
* src/frontends/xforms/FormDocument.[Ch]: implement new font ui
* src/frontends/xforms/forms/form_document.fd: add new font tab.
* src/frontends/controllers/ControlDocument.[Ch]
(char ControlDocument::fontfamilies):
(char ControlDocument::fontfamilies_gui):
(bool ControlDocument::isFontAvailable):
(bool ControlDocument::providesSC):
(bool ControlDocument::providesOSF):
(bool ControlDocument::providesScale): new methods, providing font info.
Georg Baum [Sun, 18 Jun 2006 10:51:59 +0000 (10:51 +0000)]
* src/format.C
(Formats::view): Call the viewer with the absolute filename instead
of changing the working directory to avoid a race condition on
systems with a slow fork().
(Formats::edit): Ditto (editor instead of viewer)
void start(string const & batch, vector<string> const & files,
- unsigned int width, unsigned int height, int posx, int posy, bool isMax)
+ unsigned int width, unsigned int height, int posx, int posy, bool maximize)
{
// this can't be done before because it needs the Languages object
initEncodings();
void start(string const & batch, vector<string> const & files,
- unsigned int width, unsigned int height, int posx, int posy, bool isMax)
+ unsigned int width, unsigned int height, int posx, int posy, bool maximize)
{
// this can't be done before because it needs the Languages object
initEncodings();
void lyx_gui::start(string const & batch, std::vector<string> const & files,
- unsigned int width, unsigned int height, int posx, int posy)
+ unsigned int width, unsigned int height, int posx, int posy, bool)
{
boost::shared_ptr<GView> view_ptr(new GView);
LyX::ref().addLyXView(view_ptr);
Index: frontends/qt3/lyx_gui.C
===================================================================
--- frontends/qt3/lyx_gui.C (revision 14083)
+++ frontends/qt3/lyx_gui.C (working copy)
@@ -222,12 +222,12 @@
void start(string const & batch, vector<string> const & files,
- unsigned int width, unsigned int height, int posx, int posy)
+ unsigned int width, unsigned int height, int posx, int posy, bool isMax)
{
// this can't be done before because it needs the Languages object
initEncodings();
-QtView::QtView(unsigned int width, unsigned int height)
+QtView::QtView(unsigned int width, unsigned int height, bool isMax)
: QMainWindow(), LyXView(), commandbuffer_(0)
{
resize(width, height);
+
+ if(isMax)
+ this->setWindowState(WindowMaximized);
qApp->setMainWidget(this);
@@ -160,6 +163,9 @@
void QtView::closeEvent(QCloseEvent *)
{
+ LyX::ref().session().saveSessionInfo("WindowIsMaximized", (this->isMaximized() ? "yes" : "no"));
+ //don't save maximized values
+ this->showNormal();
// save windows size and position
LyX::ref().session().saveSessionInfo("WindowWidth", convert<string>(width()));
LyX::ref().session().saveSessionInfo("WindowHeight", convert<string>(height()));
Index: frontends/qt3/QtView.h
===================================================================
--- frontends/qt3/QtView.h (revision 14083)
+++ frontends/qt3/QtView.h (working copy)
@@ -37,7 +37,7 @@
Q_OBJECT
public:
/// create a main window of the given dimensions
- QtView(unsigned int w, unsigned int h);
+ QtView(unsigned int w, unsigned int h, bool isMax);
void start(string const & batch, vector<string> const & files,
- unsigned int width, unsigned int height, int posx, int posy)
+ unsigned int width, unsigned int height, int posx, int posy, bool isMax)
{
// this can't be done before because it needs the Languages object
initEncodings();
void start(string const & batch, vector<string> const & files,
- unsigned int width, unsigned int height, int posx, int posy)
+ unsigned int width, unsigned int height, int posx, int posy, bool)
{
int const geometryBitmask =
XParseGeometry(geometry, &posx, &posy, &width, &height);
Index: frontends/lyx_gui.h
===================================================================
--- frontends/lyx_gui.h (revision 14083)
+++ frontends/lyx_gui.h (working copy)
@@ -57,7 +57,7 @@
* batch commands, and loading the given documents
*/
void start(std::string const & batch, std::vector<std::string> const & files,
- unsigned int width, unsigned int height, int posx, int posy);
+ unsigned int width, unsigned int height, int posx, int posy, bool isMax);
/**
* Enter the main event loop (\sa LyX::exec2)
Index: lyx_main.C
===================================================================
--- lyx_main.C (revision 14083)
+++ lyx_main.C (working copy)
@@ -307,6 +307,7 @@
// initial geometry
unsigned int width = 690;
unsigned int height = 510;
+ bool isMax = false;
// first try lyxrc
if (lyxrc.geometry_width != 0 && lyxrc.geometry_height != 0 ) {
width = lyxrc.geometry_width;
@@ -320,6 +321,8 @@
val = session().loadSessionInfo("WindowHeight");
if (!val.empty())
height = convert<unsigned int>(val);
+ if (session().loadSessionInfo("WindowIsMaximized") == "yes")
+ isMax = true;
}
// if user wants to restore window position
int posx = -1;
@@ -332,7 +335,7 @@
if (!val.empty())
posy = convert<int>(val);
}
- lyx_gui::start(batch_command, files, width, height, posx, posy);
+ lyx_gui::start(batch_command, files, width, height, posx, posy, isMax);
} else {
// Something went wrong above
quitLyX(false);
Peter Kümmel [Sun, 11 Jun 2006 11:57:25 +0000 (11:57 +0000)]
Initial cmake support.
trunk/development/cmake/README.cmake:
Building LyX with CMake
CMake 2.4.2 or CVS version from www.cmake.org
Building Visual C++ 2005 project files:
- install Visual C++ 2005
- install Platform SDK 2005, "Core" and "Web Workshop"
- add include and library paths of the SDK to the IDE search paths,
menu: Tools->Options->VC++ directories->Library files + Include files
- install zlib (www.zlib.net) into %ProgramFiles%/GnuWin32/include+lib
or %ProgramFiles%/zlib/include+lib
- create a build directory, e.g. .../trunk/../build
- call in the build directory cmake ..\trunk\development\cmake
- start lyx.sln
To generate other build files call "cmake"
which shows a list of possibilities.
Peter Kümmel [Thu, 8 Jun 2006 14:27:44 +0000 (14:27 +0000)]
- remove usage of qt3 support functions.
- undef QT3_SUPPORT until the QT3_SUPPORT-logic will be inverted.
- QLocale::system().name() returns e.g de_DE but the Qt file name is
qt_de.
Index: frontends/qt4/lyx_gui.C
===================================================================
--- frontends/qt4/lyx_gui.C (revision 14043)
+++ frontends/qt4/lyx_gui.C (working copy)
@@ -9,6 +9,8 @@
* Full author contact details are available in file CREDITS.
*/
using lyx::support::ltrim;
using lyx::support::package;
@@ -167,19 +171,22 @@
// install translation file for Qt built-in dialogs
// These are only installed since Qt 3.2.x
- QTranslator qt_trans(0);
- if (qt_trans.load(QString("qt_") + QTextCodec::locale(),
- qInstallPathTranslations())) {
+ QTranslator qt_trans;
+ QString language_name = QString("qt_") + QLocale::system().name();
+ language_name.truncate(5);
+ if (qt_trans.load(language_name,
+ QLibraryInfo::location(QLibraryInfo::TranslationsPath)))
+ {
qApp->installTranslator(&qt_trans);
// even if the language calls for RtL, don't do that
- qApp->setReverseLayout(false);
+ qApp->setLayoutDirection(Qt::LeftToRight);
lyxerr[Debug::GUI]
<< "Successfully installed Qt translations for locale "
- << QTextCodec::locale() << std::endl;
+ << fromqstr(language_name) << std::endl;
} else
lyxerr[Debug::GUI]
<< "Could not find Qt translations for locale "
- << QTextCodec::locale() << std::endl;
+ << fromqstr(language_name) << std::endl;
/*#ifdef Q_WS_MACX
// These translations are meant to break Qt/Mac menu merging
@@ -260,9 +267,7 @@
// During screen update/ redraw, this method is disabled to
// prevent keyboard events being handed to the LyX core, where
// they could cause re-entrant calls to screen update.
-#if QT_VERSION >= 0x030100
- qApp->processEvents(QEventLoop::ExcludeUserInput);
-#endif
+ qApp->processEvents(QEventLoop::ExcludeUserInputEvents);
}
Georg Baum [Wed, 7 Jun 2006 20:08:37 +0000 (20:08 +0000)]
Fix crash on exit (bug 2549) by correct usage of QApplication
* src/lyx_cb.C
(quitLyX): lyx_gui::exit takes now an argument
* src/frontends/{gtk,xforms}/lyx_gui.C
(lyx_gui::parse_init): rename to lyx_gui::exec and call LyX::exec2
(void lyx_gui::exit): add exit status argument
* src/frontends/qt{3,4}/lyx_gui.C
(cleanup): new function for pointer cleanup
(lyx_gui::parse_init): rename to lyx_gui::exec and call LyX::exec2,
turn static variables into automatic variables
(void lyx_gui::exit): add exit status argument
(start): Use cleanup()
(exit): ditto
* src/frontends/lyx_gui.h
(parse_init): remove
(exec): new
(exit): Take exist status argument
* src/lyx_main.[Ch]
(LyX::priv_exec): split into LyX::priv_exec and LyX::exec2
* src/lyx_main.C
(lyx_exit): New, choose the right exit function
(showFileError): call lyx_exit
(LyX::queryUserLyXDir): ditto
(LyX::init): ditto
(LyX::priv_exec): ditto
(LyX::priv_exec): Replace want_gui by lyx_gui::use_gui
(LyX::priv_exec): replace lyx_gui::parse_init by lyx_gui::exec and
exec2
(LyX::init): Replace gui argument by lyx_gui::use_gui
This patch removes qscreen.[Ch] and simplify the cursor drawing on screen. Basically, we paint now only if needed. So there's no need anymore to handle the "no cursor" pixmap saving.
Bo Peng [Mon, 29 May 2006 15:11:19 +0000 (15:11 +0000)]
Move window width/height/posx/posy from frontends to lyx_main.C, from Bo Peng (ben.bob@gmail.com)
* src/frontends/ALLFRONTENDS/lyx_gui.C: use passed width/height/posx/posy in lyx_gui::start
* src/frontends/lyx_gui.h: prototype change for lyx_gui::start
* src/lyx_main.C: determine windows size and position from lyxrc or session.
Bo Peng [Mon, 29 May 2006 14:56:08 +0000 (14:56 +0000)]
Some MSVC2003/2005 compatibility fixes, from Bo Peng (ben.bob@gmail.com)
* src/support/lyxsum.C: fix HAVE_DECL_ISTREAMBUF_ITERATOR
* src/support/mkdir.C: add direct.h for windows
* src/support/forkedcall.C: add cerrno under windows
* src/support/tempname.C: define S_IRUSR and S_IWUSR
* src/support/package.C.in: define PATH_MAX=256
Fix hang on exit under Windows.
TODO: reorganize this code. In particular make sure that this advise from Qt documentation is respected:
Since the QApplication object does so much initialization, it must be created before any other objects related to the user interface are created.
Right now this is not the case. For example, "FontLoader::initFontPath()" is called before the QApplication creation. Moreover, I suspect that a number of global variables contains Qt object that are initialized before the passage through parse_init(). This might also explain the message displayed by Qt that caused the hanging:
QObject::killTimer: timers cannot be stopped from another thread