From 490b297522b0a4f323f014cc71fb20c0b34731b2 Mon Sep 17 00:00:00 2001 From: bjschuma Date: Mon, 4 Jan 2010 15:11:27 -0500 Subject: [PATCH] Plugins remove settings values created on startup (if they should not be saved) --- src/base/settings.py | 20 ++++++++++++++++++-- src/core/cli.py | 8 +++++++- src/core/cline/message.py | 4 +++- 3 files changed, 28 insertions(+), 4 deletions(-) diff --git a/src/base/settings.py b/src/base/settings.py index d75ca8a3..56fd23e1 100644 --- a/src/base/settings.py +++ b/src/base/settings.py @@ -28,14 +28,23 @@ from bt.message import error from bt.file import fopen +# Return true if settings contains key +def has(key): + global settings + return (key in settings.keys()) + + # Return the value at key def get(key, all=False): + key = key.upper() global settings + if has(key)==False: + return None if(all == False): - return settings[key.upper()][0] + return settings[key][0] else: - return settings[key.upper()] + return settings[key] # Replace settings[key] with value @@ -56,6 +65,13 @@ def pop(key): return None +def delete(key): + key = key.upper() + global settings + if has(key) == True: + del settings[key] + + # Read settings from file def readfile(file): write("Reading file: "+file,True) diff --git a/src/core/cli.py b/src/core/cli.py index 30347ffd..55051709 100644 --- a/src/core/cli.py +++ b/src/core/cli.py @@ -20,7 +20,6 @@ import cline.message import settings global maxyx, stdscr, thread -threads = [] # Called every time the plugin is enabled @@ -65,6 +64,13 @@ def close(): #thread.join() write("CLI has been stopped", True) + # Delete keys that settings no longer needs + settings.delete("stdscr") + settings.delete("maxyx") + settings.delete("prompt") + settings.delete("clinex") + settings.delete("cliney") + # Called when the plugin needs to perform some action def run(args=None): diff --git a/src/core/cline/message.py b/src/core/cline/message.py index b364b0f7..d3bc46a1 100644 --- a/src/core/cline/message.py +++ b/src/core/cline/message.py @@ -33,7 +33,7 @@ def insert(string): if len(string) >= maxyx[1]: stdscr.addstr(y, 0, string[0:maxyx[1]]) - advance(y, maxyx[0], stdscr) + y = advance(y, maxyx[0], stdscr) insert(string[maxyx[1]:]) return @@ -45,6 +45,8 @@ def insert(string): # Replace the string on the current line def disp(string): stdscr = settings.get("stdscr") + if stdscr == None: + return try: stdscr.addstr(settings.get("cliney"), 0, string) except: