当前位置: 技术问答>linux和unix
KDevelop KDE application的问题
来源: 互联网 发布时间:2015-11-02
本文导语: 我用kdevelop生成一个KDE Application 看其中main.cpp的代码 if (app.isRestored()) { RESTORE(KDEApp); } else 。。。 bool KApplication::isRestored ( ) const [inline] Is the applicatio...
我用kdevelop生成一个KDE Application
看其中main.cpp的代码
if (app.isRestored())
{
RESTORE(KDEApp);
}
else
。。。
bool KApplication::isRestored ( ) const [inline]
Is the application restored from the session manager?
首先我想问一下这里的session是指的什么?
还有restore怎么理解、翻译?
既然他restored了为什么还要调用RESTORE(KDEApp);
#define RESTORE(type) { int n = 1;
while (KMainWindow::canBeRestored(n)){
(new type)->restore(n);
n++;}}
626
看其中main.cpp的代码
if (app.isRestored())
{
RESTORE(KDEApp);
}
else
。。。
bool KApplication::isRestored ( ) const [inline]
Is the application restored from the session manager?
首先我想问一下这里的session是指的什么?
还有restore怎么理解、翻译?
既然他restored了为什么还要调用RESTORE(KDEApp);
#define RESTORE(type) { int n = 1;
while (KMainWindow::canBeRestored(n)){
(new type)->restore(n);
n++;}}
626
|
这个session跟用户会话应该无关。而是应该指的是QSessionManager。QSessionManager提供了一个interface来存储应用的运行状态。比如在windows下存储注册表,linux下存储某个文件中。
KDE应用在QT之上建立了一个自己的目录结构。isRestored()应该是检查具体app所在的目录下的状态配置文件,来判断是否有过以前存储的运行状态。如果以前串行化了运行状态,就根据这个串行化来构造应用,否则构造个新的空应用。
比如,那些toolbar或者停靠窗口,用户改变了它们的位置。当下次启动程序的时候,可能还希望是原来的用户习惯的位置。
kde的目录树我已经记不清了。去/usr/local下找吧。
KDE应用在QT之上建立了一个自己的目录结构。isRestored()应该是检查具体app所在的目录下的状态配置文件,来判断是否有过以前存储的运行状态。如果以前串行化了运行状态,就根据这个串行化来构造应用,否则构造个新的空应用。
比如,那些toolbar或者停靠窗口,用户改变了它们的位置。当下次启动程序的时候,可能还希望是原来的用户习惯的位置。
kde的目录树我已经记不清了。去/usr/local下找吧。