From b6ef271fd234b8d735d2adc51fd91c660e4e2084 Mon Sep 17 00:00:00 2001 From: Goffi Date: Wed, 30 Jun 2010 14:24:24 +0800 Subject: [PATCH] =?UTF-8?q?Primitivus=20first=20draft=20-=20Sortil=C3=A8ge?= =?UTF-8?q?=20is=20recoded=20using=20urwid,=20and=20renamed=20in=20Primiti?= =?UTF-8?q?vus=20as=20it=20is=20no=20more=20based=20on=20curses=20-=20sori?= =?UTF-8?q?tlege=20code=20moved=20to=20sortilege=5Fold,=20and=20deprecated?= =?UTF-8?q?=20-=20Primitivus=20first=20draft,=20begining=20of=20ProfileMan?= =?UTF-8?q?ager=20widget?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontends/primitivus/primitivus | 78 +++++++++++++++++++ frontends/primitivus/profile_manager.py | 34 ++++++++ .../{sortilege => sortilege_old}/__init__.py | 0 .../{sortilege => sortilege_old}/boxsizer.py | 0 .../{sortilege => sortilege_old}/chat.py | 0 .../{sortilege => sortilege_old}/editbox.py | 0 .../{sortilege => sortilege_old}/sortilege | 0 .../{sortilege => sortilege_old}/statusbar.py | 0 .../{sortilege => sortilege_old}/window.py | 0 9 files changed, 112 insertions(+) create mode 100755 frontends/primitivus/primitivus create mode 100644 frontends/primitivus/profile_manager.py rename frontends/{sortilege => sortilege_old}/__init__.py (100%) rename frontends/{sortilege => sortilege_old}/boxsizer.py (100%) rename frontends/{sortilege => sortilege_old}/chat.py (100%) rename frontends/{sortilege => sortilege_old}/editbox.py (100%) rename frontends/{sortilege => sortilege_old}/sortilege (100%) rename frontends/{sortilege => sortilege_old}/statusbar.py (100%) rename frontends/{sortilege => sortilege_old}/window.py (100%) diff --git a/frontends/primitivus/primitivus b/frontends/primitivus/primitivus new file mode 100755 index 00000000..d425bf0e --- /dev/null +++ b/frontends/primitivus/primitivus @@ -0,0 +1,78 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +""" +Primitivus: a SAT frontend +Copyright (C) 2009, 2010 Jérôme Poisson (goffi@goffi.org) + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +""" + + +from quick_frontend.quick_app import QuickApp +from quick_frontend.quick_chat_list import QuickChatList +from quick_frontend.quick_contact_list import QuickContactList +from quick_frontend.quick_contact_management import QuickContactManagement +import urwid +from profile_manager import ProfileManager +import pdb +"""from window import Window +from editbox import EditBox +from statusbar import StatusBar +from chat import Chat +from tools.jid import JID""" +import logging +from logging import debug, info, error +#import locale +import sys, os +#from curses import ascii +#import locale +#from signal import signal, SIGWINCH +#import fcntl +#import struct +#import termios +#from boxsizer import BoxSizer + + +### logging configuration FIXME: put this elsewhere ### +logging.basicConfig(level=logging.CRITICAL, #TODO: configure it to put messages in a log file + format='%(message)s') +### + +const_APP_NAME = "Primitivus" +const_PALETTE = [('title', 'black', 'light gray', 'standout,underline'),] + +class PrimitivusApp(QuickApp): + + def __init__(self): + QuickApp.__init__(self) #XXX: yes it's an unusual place for the constructor of a parent class, but the init order is important + + ## main loop setup ## + self.main_widget = self.__buildMainWidget() + self.loop = urwid.MainLoop(self.main_widget, const_PALETTE, event_loop=urwid.GLibEventLoop(), unhandled_input=self.key_handler) + + def start(self): + self.loop.run() + + def key_handler(self, input): + if input in ('q', 'Q') or input == 'ctrl x': + raise urwid.ExitMainLoop() + + def __buildMainWidget(self): + main_widget = ProfileManager(self) + return main_widget + + +sat = PrimitivusApp() +sat.start() diff --git a/frontends/primitivus/profile_manager.py b/frontends/primitivus/profile_manager.py new file mode 100644 index 00000000..6fe06bd1 --- /dev/null +++ b/frontends/primitivus/profile_manager.py @@ -0,0 +1,34 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +""" +Primitivus: a SAT frontend +Copyright (C) 2009, 2010 Jérôme Poisson (goffi@goffi.org) + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +""" + +import urwid + + +class ProfileManager(urwid.WidgetWrap): + + def __init__(self, host): + self.host = host + profiles = self.host.bridge.getProfilesList() + widgets = [urwid.Text(str(profiles))] + content = urwid.SimpleListWalker(widgets) + display_widget = urwid.Frame(urwid.ListBox(content),urwid.AttrMap(urwid.Text("Profile Manager",align='center'),'title')) + urwid.WidgetWrap.__init__(self, display_widget) + diff --git a/frontends/sortilege/__init__.py b/frontends/sortilege_old/__init__.py similarity index 100% rename from frontends/sortilege/__init__.py rename to frontends/sortilege_old/__init__.py diff --git a/frontends/sortilege/boxsizer.py b/frontends/sortilege_old/boxsizer.py similarity index 100% rename from frontends/sortilege/boxsizer.py rename to frontends/sortilege_old/boxsizer.py diff --git a/frontends/sortilege/chat.py b/frontends/sortilege_old/chat.py similarity index 100% rename from frontends/sortilege/chat.py rename to frontends/sortilege_old/chat.py diff --git a/frontends/sortilege/editbox.py b/frontends/sortilege_old/editbox.py similarity index 100% rename from frontends/sortilege/editbox.py rename to frontends/sortilege_old/editbox.py diff --git a/frontends/sortilege/sortilege b/frontends/sortilege_old/sortilege similarity index 100% rename from frontends/sortilege/sortilege rename to frontends/sortilege_old/sortilege diff --git a/frontends/sortilege/statusbar.py b/frontends/sortilege_old/statusbar.py similarity index 100% rename from frontends/sortilege/statusbar.py rename to frontends/sortilege_old/statusbar.py diff --git a/frontends/sortilege/window.py b/frontends/sortilege_old/window.py similarity index 100% rename from frontends/sortilege/window.py rename to frontends/sortilege_old/window.py