- don't save geometry values of the maximized lyx window
   - save/restore the maximized property of the lyx window

- fix changed lyx_gui::start interface for xform and gtk


Index: frontends/gtk/lyx_gui.C
===================================================================
--- frontends/gtk/lyx_gui.C	(revision 14083)
+++ frontends/gtk/lyx_gui.C	(working copy)
@@ -123,7 +123,7 @@
 
 
 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();
 
-	boost::shared_ptr<QtView> view_ptr(new QtView(width, height));
+	boost::shared_ptr<QtView> view_ptr(new QtView(width, height, isMax));
 	LyX::ref().addLyXView(view_ptr);
 
 	QtView & view = *view_ptr.get();
Index: frontends/qt3/QtView.C
===================================================================
--- frontends/qt3/QtView.C	(revision 14083)
+++ frontends/qt3/QtView.C	(working copy)
@@ -55,10 +55,13 @@
 
 
 
-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);
 
 	~QtView();
 
Index: frontends/qt4/lyx_gui.C
===================================================================
--- frontends/qt4/lyx_gui.C	(revision 14083)
+++ frontends/qt4/lyx_gui.C	(working copy)
@@ -228,12 +228,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();
 
-	boost::shared_ptr<QtView> view_ptr(new QtView(width, height));
+	boost::shared_ptr<QtView> view_ptr(new QtView(width, height, isMax));
 	LyX::ref().addLyXView(view_ptr);
 
 	QtView & view = *view_ptr.get();
Index: frontends/qt4/QtView.C
===================================================================
--- frontends/qt4/QtView.C	(revision 14083)
+++ frontends/qt4/QtView.C	(working copy)
@@ -70,11 +70,14 @@
 } // namespace anon
 
 
-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(Qt::WindowMaximized);
+
 	mainWidget_ = this;
 
 //	setToolButtonStyle(Qt::ToolButtonIconOnly);
@@ -182,11 +185,12 @@
 void QtView::closeEvent(QCloseEvent *)
 {
 	// save windows size and position
-	LyX::ref().session().saveSessionInfo("WindowWidth", convert<string>(width()));
-	LyX::ref().session().saveSessionInfo("WindowHeight", convert<string>(height()));
+	LyX::ref().session().saveSessionInfo("WindowWidth", convert<string>(this->normalGeometry().width()));
+	LyX::ref().session().saveSessionInfo("WindowHeight", convert<string>(this->normalGeometry().height()));
+	LyX::ref().session().saveSessionInfo("WindowIsMaximized", (this->isMaximized() ? "yes" : "no"));
 	if (lyxrc.geometry_xysaved) {
-		LyX::ref().session().saveSessionInfo("WindowPosX", convert<string>(x()));
-		LyX::ref().session().saveSessionInfo("WindowPosY", convert<string>(y()));
+		LyX::ref().session().saveSessionInfo("WindowPosX", convert<string>(this->normalGeometry().x()));
+		LyX::ref().session().saveSessionInfo("WindowPosY", convert<string>(this->normalGeometry().y()));
 	}
 	// trigger LFUN_LYX_QUIT instead of quit directly
 	// since LFUN_LYX_QUIT may have more cleanup stuff
Index: frontends/qt4/QtView.h
===================================================================
--- frontends/qt4/QtView.h	(revision 14083)
+++ frontends/qt4/QtView.h	(working copy)
@@ -47,7 +47,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);
 
 	~QtView();
 
Index: frontends/xforms/lyx_gui.C
===================================================================
--- frontends/xforms/lyx_gui.C	(revision 14083)
+++ frontends/xforms/lyx_gui.C	(working copy)
@@ -256,7 +256,7 @@
 
 
 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);



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14088 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Peter Kümmel 2006-06-13 08:05:00 +00:00
parent 7efc6e9e0a
commit 226acfcbab
10 changed files with 29 additions and 16 deletions

View File

@ -123,7 +123,7 @@ void lyx_gui::parse_lyxrc()
void lyx_gui::start(string const & batch, std::vector<string> const & files, 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); boost::shared_ptr<GView> view_ptr(new GView);
LyX::ref().addLyXView(view_ptr); LyX::ref().addLyXView(view_ptr);

View File

@ -57,7 +57,7 @@ void parse_lyxrc();
* batch commands, and loading the given documents * batch commands, and loading the given documents
*/ */
void start(std::string const & batch, std::vector<std::string> const & files, 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) * Enter the main event loop (\sa LyX::exec2)

View File

@ -55,10 +55,13 @@ int const statusbar_timer_value = 3000;
QtView::QtView(unsigned int width, unsigned int height) QtView::QtView(unsigned int width, unsigned int height, bool isMax)
: QMainWindow(), LyXView(), commandbuffer_(0) : QMainWindow(), LyXView(), commandbuffer_(0)
{ {
resize(width, height); resize(width, height);
if(isMax)
this->setWindowState(WindowMaximized);
qApp->setMainWidget(this); qApp->setMainWidget(this);
@ -160,6 +163,9 @@ bool QtView::hasFocus() const
void QtView::closeEvent(QCloseEvent *) 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 // save windows size and position
LyX::ref().session().saveSessionInfo("WindowWidth", convert<string>(width())); LyX::ref().session().saveSessionInfo("WindowWidth", convert<string>(width()));
LyX::ref().session().saveSessionInfo("WindowHeight", convert<string>(height())); LyX::ref().session().saveSessionInfo("WindowHeight", convert<string>(height()));

View File

@ -37,7 +37,7 @@ class QtView : public QMainWindow, public LyXView {
Q_OBJECT Q_OBJECT
public: public:
/// create a main window of the given dimensions /// create a main window of the given dimensions
QtView(unsigned int w, unsigned int h); QtView(unsigned int w, unsigned int h, bool isMax);
~QtView(); ~QtView();

View File

@ -222,12 +222,12 @@ void parse_lyxrc()
void start(string const & batch, vector<string> const & files, 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 // this can't be done before because it needs the Languages object
initEncodings(); initEncodings();
boost::shared_ptr<QtView> view_ptr(new QtView(width, height)); boost::shared_ptr<QtView> view_ptr(new QtView(width, height, isMax));
LyX::ref().addLyXView(view_ptr); LyX::ref().addLyXView(view_ptr);
QtView & view = *view_ptr.get(); QtView & view = *view_ptr.get();

View File

@ -70,11 +70,14 @@ int const statusbar_timer_value = 3000;
} // namespace anon } // namespace anon
QtView::QtView(unsigned int width, unsigned int height) QtView::QtView(unsigned int width, unsigned int height, bool isMax)
: QMainWindow(), LyXView(), commandbuffer_(0) : QMainWindow(), LyXView(), commandbuffer_(0)
{ {
resize(width, height); resize(width, height);
if(isMax)
this->setWindowState(Qt::WindowMaximized);
mainWidget_ = this; mainWidget_ = this;
// setToolButtonStyle(Qt::ToolButtonIconOnly); // setToolButtonStyle(Qt::ToolButtonIconOnly);
@ -182,11 +185,12 @@ bool QtView::hasFocus() const
void QtView::closeEvent(QCloseEvent *) void QtView::closeEvent(QCloseEvent *)
{ {
// save windows size and position // save windows size and position
LyX::ref().session().saveSessionInfo("WindowWidth", convert<string>(width())); LyX::ref().session().saveSessionInfo("WindowWidth", convert<string>(this->normalGeometry().width()));
LyX::ref().session().saveSessionInfo("WindowHeight", convert<string>(height())); LyX::ref().session().saveSessionInfo("WindowHeight", convert<string>(this->normalGeometry().height()));
LyX::ref().session().saveSessionInfo("WindowIsMaximized", (this->isMaximized() ? "yes" : "no"));
if (lyxrc.geometry_xysaved) { if (lyxrc.geometry_xysaved) {
LyX::ref().session().saveSessionInfo("WindowPosX", convert<string>(x())); LyX::ref().session().saveSessionInfo("WindowPosX", convert<string>(this->normalGeometry().x()));
LyX::ref().session().saveSessionInfo("WindowPosY", convert<string>(y())); LyX::ref().session().saveSessionInfo("WindowPosY", convert<string>(this->normalGeometry().y()));
} }
// trigger LFUN_LYX_QUIT instead of quit directly // trigger LFUN_LYX_QUIT instead of quit directly
// since LFUN_LYX_QUIT may have more cleanup stuff // since LFUN_LYX_QUIT may have more cleanup stuff

View File

@ -47,7 +47,7 @@ class QtView : public QMainWindow, public LyXView {
Q_OBJECT Q_OBJECT
public: public:
/// create a main window of the given dimensions /// create a main window of the given dimensions
QtView(unsigned int w, unsigned int h); QtView(unsigned int w, unsigned int h, bool isMax);
~QtView(); ~QtView();

View File

@ -228,12 +228,12 @@ void parse_lyxrc()
void start(string const & batch, vector<string> const & files, 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 // this can't be done before because it needs the Languages object
initEncodings(); initEncodings();
boost::shared_ptr<QtView> view_ptr(new QtView(width, height)); boost::shared_ptr<QtView> view_ptr(new QtView(width, height, isMax));
LyX::ref().addLyXView(view_ptr); LyX::ref().addLyXView(view_ptr);
QtView & view = *view_ptr.get(); QtView & view = *view_ptr.get();

View File

@ -256,7 +256,7 @@ void parse_lyxrc()
void start(string const & batch, vector<string> const & files, 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 = int const geometryBitmask =
XParseGeometry(geometry, &posx, &posy, &width, &height); XParseGeometry(geometry, &posx, &posy, &width, &height);

View File

@ -307,6 +307,7 @@ void LyX::exec2(int & argc, char * argv[])
// initial geometry // initial geometry
unsigned int width = 690; unsigned int width = 690;
unsigned int height = 510; unsigned int height = 510;
bool isMax = false;
// first try lyxrc // first try lyxrc
if (lyxrc.geometry_width != 0 && lyxrc.geometry_height != 0 ) { if (lyxrc.geometry_width != 0 && lyxrc.geometry_height != 0 ) {
width = lyxrc.geometry_width; width = lyxrc.geometry_width;
@ -320,6 +321,8 @@ void LyX::exec2(int & argc, char * argv[])
val = session().loadSessionInfo("WindowHeight"); val = session().loadSessionInfo("WindowHeight");
if (!val.empty()) if (!val.empty())
height = convert<unsigned int>(val); height = convert<unsigned int>(val);
if (session().loadSessionInfo("WindowIsMaximized") == "yes")
isMax = true;
} }
// if user wants to restore window position // if user wants to restore window position
int posx = -1; int posx = -1;
@ -332,7 +335,7 @@ void LyX::exec2(int & argc, char * argv[])
if (!val.empty()) if (!val.empty())
posy = convert<int>(val); 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 { } else {
// Something went wrong above // Something went wrong above
quitLyX(false); quitLyX(false);