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
Georg Baum [Sat, 27 May 2006 13:39:11 +0000 (13:39 +0000)]
* src/lyxsocket.C
(LyXServerSocket::~LyXServerSocket): Don't try to unregister and
close fd_ if the socket is disabled (avoids crash on win, from Peter
KÃŒmmel)
(LyXServerSocket::~LyXServerSocket): Check the return value of close()
(LyXDataSocket::~LyXDataSocket): ditto
Georg Baum [Thu, 25 May 2006 11:57:22 +0000 (11:57 +0000)]
Change the semantics of 'none' and 'auto' viewers/editors: 'none' means now
"Don't view/edit this format", and 'auto' means "Use the default viewer/editor".
* src/format.C
(fixCommand): Change semantics: "none" is equal to "", and "auto"
is removed if canAutoOpenFile returns false.
* lib/doc/Customization.lyx: Document the autoopen feature
* lib/configure.py
(checkProg): add optional not_found argument, defaulting to 'none'
(checkViewer): new, equivalent to checkProg with not_found = 'auto'
(checkFormatEntries): call checkViewer instead of checkProg for
viewers and editors
Georg Baum [Wed, 24 May 2006 20:06:42 +0000 (20:06 +0000)]
From Joost Verburg: Put the clean_dvi.py script into the main distribution
* lib/configure.py
(checkLatex): Add DraftDVI converter on windows if dv2dt and dt2dv
are available
(checkFormatEntries): Add DraftDVI entry on windows if dv2dt and
dt2dv are available