mirror of
https://github.com/fwbuilder/fwbuilder
synced 2026-09-11 15:41:41 +02:00
bugfix 2592
This commit is contained in:
+47
-25
@@ -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 ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
Reference in New Issue
Block a user