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