Primitivus first draft
- Sortilège is recoded using urwid, and renamed in Primitivus as it is no more based on curses - soritlege code moved to sortilege_old, and deprecated - Primitivus first draft, begining of ProfileManager widget
This commit is contained in:
parent
b191e5d64f
commit
b6ef271fd2
9 changed files with 112 additions and 0 deletions
78
frontends/primitivus/primitivus
Executable file
78
frontends/primitivus/primitivus
Executable file
|
|
@ -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 <http://www.gnu.org/licenses/>.
|
||||
"""
|
||||
|
||||
|
||||
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()
|
||||
34
frontends/primitivus/profile_manager.py
Normal file
34
frontends/primitivus/profile_manager.py
Normal file
|
|
@ -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 <http://www.gnu.org/licenses/>.
|
||||
"""
|
||||
|
||||
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)
|
||||
|
||||
Loading…
Reference in a new issue