[prev in list] [next in list] [prev in thread] [next in thread]
List: pykde
Subject: [PyKDE] [PATCH] eric3 remembers geometry
From: Hans-Peter Jansen <hpj () urpla ! net>
Date: 2002-11-27 17:48:41
[Download RAW message or body]
Hi Detlef,
what do you think about the attached patch. Is it good enough for inclusi=
on?
My first eric source contact was a pleasure (as it took me less then 45 m=
in
to finish it and writing this mail :)
Works-for-me'ly y'rs,
Hans-Peter
P.S.: diff complains about unterminated last line in both modified files.
If they're created with eric3, could you fix this?
["ericgeom.diff" (text/x-diff)]
--- eric/Preferences.py.orig 2002-11-27 18:05:30.000000000 +0100
+++ eric/Preferences.py 2002-11-27 18:32:19.000000000 +0100
@@ -73,10 +73,16 @@
# defaults for system settings
sysDefaults = {
"StringEncoding" : "latin-1"
}
+
+ # defaults for geometry
+ geometryDefaults = {
+ "MainGeometry" : [0,0,0,0],
+ "MainSplitter" : [0,0,0,0,0]
+ }
def readPreferences(prefClass = Prefs):
"""
Module function to read the preferences and transfer them into the central
store.
@@ -152,11 +158,21 @@
# read the entries for system settings
prefClass.sysPrefs = {}
prefClass.sysPrefs["StringEncoding"], ok = \
prefClass.settings.readEntry("/eric3/System/StringEncoding",
prefClass.sysDefaults["StringEncoding"])
-
+
+ # read the entries for the display geometry
+ prefClass.geometryPrefs = {}
+ for key in prefClass.geometryDefaults.keys():
+ v, ok = prefClass.settings.readEntry("/eric3/Geometry/" + key)
+ if ok:
+ prefClass.geometryPrefs[key] = eval(str(v))
+ else:
+ prefClass.geometryPrefs[key] = prefClass.geometryDefaults[key]
+
+
def savePreferences(prefClass = Prefs):
"""
Module function to write the preferences from the central store.
"""
# write the entries for the variables display
@@ -201,10 +217,15 @@
# write the entries for the system settings
prefClass.settings.writeEntry("/eric3/System/StringEncoding",
prefClass.sysPrefs["StringEncoding"])
+ # write the entries for the display geometry
+ for key in prefClass.geometryPrefs.keys():
+ prefClass.settings.writeEntry("/eric3/Geometry/" + key,
+ str(prefClass.geometryPrefs[key]))
+
def readToolbarSettings(mw, tbs, prefClass = Prefs):
"""
Module function to read the toolbar settings from the central store
and set the toolbars accordingly.
"""
@@ -381,6 +402,18 @@
"""
Module function to store the various system settings.
"""
prefClass.sysPrefs[key] = value
-initPreferences()
\ Kein Zeilenumbruch am Dateiende.
+def getGeometry(key, prefClass = Prefs):
+ """
+ Module function to retrieve the display geometry.
+ """
+ return prefClass.geometryPrefs[key]
+
+def setGeometry(key, value, prefClass = Prefs):
+ """
+ Module function to store the display geometry.
+ """
+ prefClass.geometryPrefs[key] = value
+
+initPreferences()
--- eric/UserInterface.py.orig 2002-11-27 18:19:34.000000000 +0100
+++ eric/UserInterface.py 2002-11-27 18:31:09.000000000 +0100
@@ -63,13 +63,18 @@
"""
def __init__(self):
QMainWindow.__init__(self)
- self.resize(qApp.desktop().size())
- self.setIcon(IconEric)
+ g = Preferences.getGeometry("MainGeometry")
+ if g == [0,0,0,0]:
+ self.resize(qApp.desktop().size())
+ else:
+ self.move(g[0], g[1])
+ self.resize(g[2], g[3])
+ self.setIcon(IconEric)
self.setCaption(Program)
self.setCentralWidget(QWidget(self))
appWindowLayout = QHBoxLayout(self.centralWidget(),0,6)
@@ -178,14 +183,19 @@
self.stderrTab.append)
self.connect(self, PYSIGNAL('preferencesChanged'),
self.viewmanager.handlePreferencesChanged)
# Set the sizes of the splitters
- width = self.width()
- height = self.height()
- hSizes = [int(0.21*width), int(0.49*width), int(0.3*width)]
- vSizes = [int(0.8*height), int(0.2*height)]
+ g = Preferences.getGeometry("MainSplitter")
+ if g == [0,0,0,0,0]:
+ width = self.width()
+ height = self.height()
+ hSizes = [int(0.21*width), int(0.49*width), int(0.3*width)]
+ vSizes = [int(0.8*height), int(0.2*height)]
+ else:
+ hSizes = g[:3]
+ vSizes = g[3:]
self.hSplitter.setSizes(hSizes)
self.vSplitter.setSizes(vSizes)
# Generate the unittest dialog
self.unittestDialog = UnittestDialog(None, 1, self)
@@ -772,8 +782,14 @@
def shutdown(self):
if not self.viewmanager.closeViewManager():
return 0
if not self.project.closeProject():
return 0
+ s = self.geometry()
+ p = self.frameGeometry()
+ Preferences.setGeometry("MainGeometry", [p.x(),p.y(),s.width(),s.height()])
+ h = self.hSplitter.sizes()
+ v = self.vSplitter.sizes()
+ Preferences.setGeometry("MainSplitter", [h[0],h[1],h[2],v[0],v[1]])
Preferences.savePreferences()
Preferences.saveToolbarSettings(self, self.toolbars)
- return 1
\ Kein Zeilenumbruch am Dateiende.
+ return 1
_______________________________________________
PyKDE mailing list PyKDE@mats.gmd.de
http://mats.gmd.de/mailman/listinfo/pykde
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic