1
0
mirror of https://github.com/gryf/pygtktalog.git synced 2025-12-17 19:40:21 +01:00

* Added notebook widget for file preview.

* Added thumbnail preview.
This commit is contained in:
2008-03-26 11:03:12 +00:00
parent fe5bb49fa4
commit 0279279083
5 changed files with 176 additions and 88 deletions

View File

@@ -34,7 +34,6 @@ from utils import deviceHelper
from gtkmvc import Controller
from c_config import ConfigController
from c_details import DetailsController
from views.v_config import ConfigView
from models.m_config import ConfigModel
@@ -48,21 +47,22 @@ class MainController(Controller):
"""Controller for main application window"""
scan_cd = False
widgets = (
"discs","files",
'save1','save_as1','cut1','copy1','paste1','delete1','add_cd','add_directory1',
'tb_save','tb_addcd','tb_find',
"discs","files",
'save1','save_as1','cut1','copy1','paste1','delete1','add_cd','add_directory1',
'tb_save','tb_addcd','tb_find','keywords','description',
)
widgets_all = (
"discs","files",
'file1','edit1','add_cd','add_directory1','help1',
'tb_save','tb_addcd','tb_find','tb_new','tb_open','tb_quit',
"discs","files",
'file1','edit1','add_cd','add_directory1','help1',
'tb_save','tb_addcd','tb_find','tb_new','tb_open','tb_quit',
'keywords','description',
)
widgets_cancel = ('cancel','cancel1')
def __init__(self, model):
"""Initialize controller"""
Controller.__init__(self, model)
self.details = DetailsController(model.details)
return
def register_view(self, view):
@@ -115,11 +115,9 @@ class MainController(Controller):
if self.model.filename != None:
self.__activateUI(self.model.filename)
# register detail subview
#self.view.create_sub_view(self.details)
# generate recent menu
self.__generate_recent_menu()
# Show main window
self.view['main'].show();
return
@@ -277,6 +275,7 @@ class MainController(Controller):
print "c_main.py: on_files_cursor_changed() directory selected"
else:
#file, show what you got.
#self.details.get_top_widget()
selected_item = self.model.files_list.get_value(model.get_iter(treeview.get_cursor()[0]),0)
self.__get_item_info(selected_item)
if __debug__:
@@ -654,10 +653,20 @@ class MainController(Controller):
return
def __get_item_info(self, item):
'''self.view['details'].show()
txt = self.model.get_file_info(item)
buf = self.view['details'].get_buffer()
buf.set_text(txt)
self.view['details'].set_buffer(buf)'''
self.view['description'].show()
set = self.model.get_file_info(item)
buf = self.view['description'].get_buffer()
if set.has_key('description'):
buf.set_text(set['description'])
else:
buf.set_text('')
self.view['description'].set_buffer(buf)
if set.has_key('thumbnail'):
self.view['thumb'].set_from_file(set['thumbnail'])
self.view['thumb'].show()
else:
self.view['thumb'].hide()
return
pass # end of class

View File

@@ -426,15 +426,23 @@ class MainModel(ModelMT):
def get_file_info(self, id):
"""get file info from database"""
self.db_cursor.execute("SELECT filename, date, size, type \
FROM files WHERE id = ?", (id,))
retval = {}
self.db_cursor.execute("SELECT filename, date, size, type, filetype, \
id FROM files WHERE id = ?", (id,))
set = self.db_cursor.fetchone()
if set == None:
return ''
if set:
string = "Filename: %s\nDate: %s\nSize: %s\ntype: %s" % \
(set[0], datetime.fromtimestamp(set[1]), set[2], set[3])
retval['description'] = string
string = "Filename: %s\nDate: %s\nSize: %s\ntype: %s" % \
(set[0], datetime.fromtimestamp(set[1]), set[2], set[3])
return string
if set[4] == self.F_IMG:
self.db_cursor.execute("SELECT filename FROM thumbnails \
WHERE file_id = ?",
(id,))
set = self.db_cursor.fetchone()
if set:
retval['thumbnail'] = os.path.join(self.internal_dirname, set[0])
return retval
def get_source(self, path):
"""get source of top level directory"""

View File

@@ -34,13 +34,11 @@ class MainView(View):
GLADE = os.path.join(utils.globals.GLADE_DIR, "main.glade")
def __init__(self, ctrl):
View.__init__(self, ctrl, self.GLADE)
self.details = None
# hide v2.0 features
self['separatormenuitem4'].hide()
self['list1'].hide()
self['thumbnails1'].hide()
return
def create_sub_view(self, details_ctrl):
"""attach sub view"""
self.details = DetailsView(details_ctrl, False)
vpan = self['vpaned1']
vpan.add2(self.details.get_top_widget())
return
pass # end of class