bugfix 2592

This commit is contained in:
2008-06-02 20:47:29 +00:00
parent cbd3ec6e67
commit 92cbc5b8dc
2 changed files with 64 additions and 41 deletions
+47 -25
View File
@@ -156,6 +156,7 @@ void ProjectPanel::initMain(FWWindow *main)
firstResize = false ; firstResize = false ;
firstLoad = false; firstLoad = false;
closing = false ; closing = false ;
enableAvtoSaveState=true ;
oldState=-1; oldState=-1;
if (st->getInfoStyle()!=0) m_panel->oi->show(); if (st->getInfoStyle()!=0) m_panel->oi->show();
else m_panel->oi->hide(); else m_panel->oi->hide();
@@ -231,6 +232,12 @@ void ProjectPanel::info(libfwbuilder::FWObject *obj, bool forced)
// unselectRules(); // unselectRules();
} }
void ProjectPanel::setStartupFileName(const QString &fn)
{
// enableAvtoSaveState = false;
startupFileName = fn;
}
RuleElement* ProjectPanel::getRE( Rule* r, int col ) RuleElement* ProjectPanel::getRE( Rule* r, int col )
{ {
string ret; string ret;
@@ -1927,10 +1934,14 @@ void ProjectPanel::startupLoad()
{ {
try try
{ {
enableAvtoSaveState=false;
RCS *rcs=new RCS(startupFileName); RCS *rcs=new RCS(startupFileName);
rcs->co(); rcs->co();
load(NULL,rcs); load(NULL,rcs);
loadState(startupFileName);
loadSplitters(startupFileName);
//firstResize=true;
} catch (FWException &ex) } catch (FWException &ex)
{ {
qDebug("Exception: %s",ex.toString().c_str()); qDebug("Exception: %s",ex.toString().c_str());
@@ -1969,6 +1980,7 @@ void ProjectPanel::startupLoad()
} }
} }
mw->recreateWindowsMenu(); mw->recreateWindowsMenu();
enableAvtoSaveState=true ;
} }
@@ -3635,11 +3647,14 @@ void ProjectPanel::showEvent( QShowEvent *ev)
QWidget::showEvent(ev); QWidget::showEvent(ev);
} }
void ProjectPanel::loadSplitters() void ProjectPanel::loadSplitters(QString filename)
{ {
QString FileName = getFileName();
if (filename !="")
FileName = filename;
firstLoad=true ; firstLoad=true ;
QString val = st->getStr("Layout/MainWindowSplitter"+getFileName()); QString val = st->getStr("Layout/MainWindowSplitter"+FileName);
QString out1 = "load Layout/MainWindowSplitter"+getFileName(); QString out1 = "load Layout/MainWindowSplitter"+FileName;
out1+= " " + val; out1+= " " + val;
qDebug(out1.toAscii().data()); qDebug(out1.toAscii().data());
@@ -3655,7 +3670,7 @@ void ProjectPanel::loadSplitters()
m_panel->mainSplitter->setSizes( sl ); m_panel->mainSplitter->setSizes( sl );
} }
val = st->getStr("Layout/ObjInfoSplitter"+getFileName()); val = st->getStr("Layout/ObjInfoSplitter"+FileName);
if (!val.isEmpty()) if (!val.isEmpty())
{ {
int w1 = val.section(',',0,0).toInt(); int w1 = val.section(',',0,0).toInt();
@@ -3712,18 +3727,23 @@ QString ProjectPanel::getFileName()
void ProjectPanel::saveState () void ProjectPanel::saveState ()
{ {
if (isMaximized ())
{
st->setInt("Window/maximized",0);
}
else
{
st->setInt("Window/maximized",1);
}
if (rcs!=NULL) if (rcs!=NULL)
{ {
if (isMaximized ())
{
qDebug ("Window/maximized true");
st->setInt("Window/maximized",0);
}
else
{
qDebug ("Window/maximized false");
st->setInt("Window/maximized",1);
}
QString FileName = rcs->getFileName(); QString FileName = rcs->getFileName();
if (!isMaximized ()) if (!isMaximized ())
{ {
@@ -3732,9 +3752,6 @@ void ProjectPanel::saveState ()
st->setInt("Window/"+FileName+"/width",mdiWindow->width ()); st->setInt("Window/"+FileName+"/width",mdiWindow->width ());
st->setInt("Window/"+FileName+"/height",mdiWindow->height ()); st->setInt("Window/"+FileName+"/height",mdiWindow->height ());
// } // }
// oe->hide(); // oe->hide();
// fd->hide(); // fd->hide();
// st->saveGeometry(this); // st->saveGeometry(this);
@@ -3754,11 +3771,13 @@ void ProjectPanel::saveState ()
} }
} }
void ProjectPanel::loadState () void ProjectPanel::loadState (QString filename)
{ {
QString FileName ; QString FileName ;
if (rcs!=NULL) if (rcs!=NULL)
FileName =rcs->getFileName(); FileName =rcs->getFileName();
if (filename!="")
FileName = filename ;
if (FileName!="") if (FileName!="")
{ {
if (st->getInt("Window/maximized")!=0) if (st->getInt("Window/maximized")!=0)
@@ -3774,10 +3793,9 @@ void ProjectPanel::loadState ()
width = 600; width = 600;
height= 600; height= 600;
} }
firstResize=true ;
// loadSplitters(); // loadSplitters();
mdiWindow->setGeometry (x,y,width,height); mdiWindow->setGeometry (x,y,width,height);
firstResize=true ;
} }
} }
@@ -3785,14 +3803,10 @@ void ProjectPanel::loadState ()
{ {
if (st->getInt("Window/maximized")!=0) if (st->getInt("Window/maximized")!=0)
{ {
firstResize=true ;
//mdiWindow->resize (600,400);
//mdiWindow->resize (600,400);
mdiWindow->setGeometry (10,10,600,600); mdiWindow->setGeometry (10,10,600,600);
//mdiWindow->resize (600,800); firstResize=true ;
} }
} }
} }
void ProjectPanel::resizeEvent ( QResizeEvent* ) void ProjectPanel::resizeEvent ( QResizeEvent* )
@@ -3803,7 +3817,14 @@ void ProjectPanel::resizeEvent ( QResizeEvent* )
oldState=0; oldState=0;
return ; return ;
}*/ }*/
if (firstResize) if (!firstResize&&!startupFileName.isEmpty())
{
loadState(startupFileName);
loadSplitters(startupFileName);
//firstResize = true ;
// startupFileName="";
}
if (firstResize&&enableAvtoSaveState)
{ {
saveState(); saveState();
} }
@@ -3812,6 +3833,7 @@ void ProjectPanel::resizeEvent ( QResizeEvent* )
{ {
loadState(); loadState();
loadSplitters(); loadSplitters();
if (!isMaximized())
firstResize = true ; firstResize = true ;
} }
} }
+4 -3
View File
@@ -92,6 +92,7 @@ class ProjectPanel: public QWidget {
void initFD(); void initFD();
QString noFirewalls; QString noFirewalls;
bool enableAvtoSaveState;
void checkRERefs(libfwbuilder::RuleElement *re, void checkRERefs(libfwbuilder::RuleElement *re,
std::list<libfwbuilder::FWObject*> &extRefs); std::list<libfwbuilder::FWObject*> &extRefs);
@@ -350,8 +351,8 @@ public:
void save(); void save();
void saveState (); void saveState ();
bool firstLoad ; bool firstLoad ;
void loadState (); void loadState (QString filename="");
void loadSplitters(); void loadSplitters(QString filename="");
bool checkin(bool unlock); bool checkin(bool unlock);
void loadLibrary(const std::string &libfpath); void loadLibrary(const std::string &libfpath);
@@ -363,7 +364,7 @@ public:
std::list<libfwbuilder::FWReference*> &extRefs); std::list<libfwbuilder::FWReference*> &extRefs);
void setSafeMode(bool f) { safeMode=f; } void setSafeMode(bool f) { safeMode=f; }
void setStartupFileName(const QString &fn) { startupFileName = fn; } void setStartupFileName(const QString &fn);
void setupAutoSave(); void setupAutoSave();
QString getCurrentFileName(); QString getCurrentFileName();
RCS * getRCS(); RCS * getRCS();