mirror of
https://github.com/KDE/konsole.git
synced 2026-05-19 03:57:43 -04:00
Start of saving window size when Konsole and restoring it on the next startup. Not working properly yet for windows above a certain size.
svn path=/trunk/KDE/kdebase/apps/konsole/; revision=696974
This commit is contained in:
@@ -29,6 +29,7 @@
|
||||
|
||||
// KDE
|
||||
#include <kdebug.h>
|
||||
#include <KGlobal>
|
||||
#include <KLocale>
|
||||
#include <KToggleAction>
|
||||
#include <KXMLGUIFactory>
|
||||
@@ -293,6 +294,11 @@ void ViewManager::sessionFinished()
|
||||
|
||||
Q_ASSERT(session);
|
||||
|
||||
// record the size of the last session
|
||||
qDebug() << "Recording session size: " << session->size();
|
||||
setDefaultDisplaySize( session->size().height() , session->size().width() );
|
||||
|
||||
// close attached views
|
||||
QList<TerminalDisplay*> children = _viewSplitter->findChildren<TerminalDisplay*>();
|
||||
|
||||
foreach ( TerminalDisplay* view , children )
|
||||
@@ -303,6 +309,7 @@ void ViewManager::sessionFinished()
|
||||
view->deleteLater();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void ViewManager::focusActiveView()
|
||||
@@ -468,8 +475,11 @@ void ViewManager::createView(Session* session)
|
||||
applyProfile(display,session->profileKey());
|
||||
|
||||
// set initial size
|
||||
// temporary default used for now
|
||||
display->setSize(80,40);
|
||||
int defaultLines = 0;
|
||||
int defaultColumns = 0;
|
||||
getDefaultDisplaySize(defaultLines,defaultColumns);
|
||||
qDebug() << "Setting default display size to " << QSize(defaultColumns,defaultLines);
|
||||
display->setSize(defaultColumns,defaultLines);
|
||||
|
||||
ViewProperties* properties = createController(session,display);
|
||||
|
||||
@@ -488,6 +498,19 @@ void ViewManager::createView(Session* session)
|
||||
}
|
||||
}
|
||||
|
||||
void ViewManager::getDefaultDisplaySize(int& lines , int& columns) const
|
||||
{
|
||||
const KConfigGroup group = KGlobal::config()->group("Last Session");
|
||||
QSize size = group.readEntry("WindowSize",QSize(80,40));
|
||||
lines = size.height();
|
||||
columns = size.width();
|
||||
}
|
||||
void ViewManager::setDefaultDisplaySize(int lines , int columns)
|
||||
{
|
||||
KConfigGroup group = KGlobal::config()->group("Last Session");
|
||||
group.writeEntry("WindowSize",QSize(columns,lines));
|
||||
}
|
||||
|
||||
ViewContainer* ViewManager::createContainer(const QString& profileKey)
|
||||
{
|
||||
const Profile* info = SessionManager::instance()->profile(profileKey);
|
||||
@@ -528,12 +551,13 @@ void ViewManager::containerViewsChanged(QObject* container)
|
||||
|
||||
void ViewManager::viewCloseRequest(QWidget* view)
|
||||
{
|
||||
//FIXME Check that this cast is actually legal
|
||||
TerminalDisplay* display = (TerminalDisplay*)view;
|
||||
|
||||
Q_ASSERT(display);
|
||||
|
||||
// 1. detach view from session
|
||||
// 2. if the session has no views left, close it
|
||||
|
||||
qDebug() << "Removing view.";
|
||||
|
||||
TerminalDisplay* display = (TerminalDisplay*)view;
|
||||
Session* session = _sessionMap[ display ];
|
||||
if ( session )
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user