author | Tero Marttila <terom@fixme.fi> |
Wed, 01 Jul 2009 20:40:00 +0300 | |
changeset 141 | 9387da0dc183 |
parent 129 | a4698fa2066c |
permissions | -rw-r--r-- |
64
4ebd563214d2
begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
1 |
""" |
4ebd563214d2
begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
2 |
Top-level gallery state |
4ebd563214d2
begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
3 |
""" |
4ebd563214d2
begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
4 |
|
112
e990b7a54d40
only load the resources/pkg_resources stuff if needed - slight optimization for importing without referencing the stylesheet
Tero Marttila <terom@fixme.fi>
parents:
82
diff
changeset
|
5 |
import filesystem, folder |
64
4ebd563214d2
begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
6 |
|
4ebd563214d2
begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
7 |
from utils import lazy_load |
4ebd563214d2
begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
8 |
|
4ebd563214d2
begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
9 |
class Gallery (filesystem.Root, folder.Folder) : |
4ebd563214d2
begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
10 |
""" |
4ebd563214d2
begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
11 |
A Gallery is a single place in the filesystem which acts as a Folder of Images, but had some additional stuff |
4ebd563214d2
begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
12 |
""" |
141
9387da0dc183
move .config from filesystem to gallery/folder/image, rename degal_dir to app_dir
Tero Marttila <terom@fixme.fi>
parents:
129
diff
changeset
|
13 |
|
9387da0dc183
move .config from filesystem to gallery/folder/image, rename degal_dir to app_dir
Tero Marttila <terom@fixme.fi>
parents:
129
diff
changeset
|
14 |
def _init_config (self) : |
9387da0dc183
move .config from filesystem to gallery/folder/image, rename degal_dir to app_dir
Tero Marttila <terom@fixme.fi>
parents:
129
diff
changeset
|
15 |
""" |
9387da0dc183
move .config from filesystem to gallery/folder/image, rename degal_dir to app_dir
Tero Marttila <terom@fixme.fi>
parents:
129
diff
changeset
|
16 |
Keep using our given .config |
9387da0dc183
move .config from filesystem to gallery/folder/image, rename degal_dir to app_dir
Tero Marttila <terom@fixme.fi>
parents:
129
diff
changeset
|
17 |
""" |
9387da0dc183
move .config from filesystem to gallery/folder/image, rename degal_dir to app_dir
Tero Marttila <terom@fixme.fi>
parents:
129
diff
changeset
|
18 |
|
9387da0dc183
move .config from filesystem to gallery/folder/image, rename degal_dir to app_dir
Tero Marttila <terom@fixme.fi>
parents:
129
diff
changeset
|
19 |
return self.config |
64
4ebd563214d2
begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
20 |
|
4ebd563214d2
begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
21 |
def __init__ (self, path, config) : |
4ebd563214d2
begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
22 |
""" |
4ebd563214d2
begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
23 |
Build a Gallery rooted at the given filesystem path, and using the given user configuration. |
4ebd563214d2
begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
24 |
|
4ebd563214d2
begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
25 |
XXX: replace path with config.gallery_path? |
4ebd563214d2
begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
26 |
""" |
4ebd563214d2
begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
27 |
|
141
9387da0dc183
move .config from filesystem to gallery/folder/image, rename degal_dir to app_dir
Tero Marttila <terom@fixme.fi>
parents:
129
diff
changeset
|
28 |
# store config for access by Folder.__init__ |
9387da0dc183
move .config from filesystem to gallery/folder/image, rename degal_dir to app_dir
Tero Marttila <terom@fixme.fi>
parents:
129
diff
changeset
|
29 |
self.config = config |
9387da0dc183
move .config from filesystem to gallery/folder/image, rename degal_dir to app_dir
Tero Marttila <terom@fixme.fi>
parents:
129
diff
changeset
|
30 |
|
9387da0dc183
move .config from filesystem to gallery/folder/image, rename degal_dir to app_dir
Tero Marttila <terom@fixme.fi>
parents:
129
diff
changeset
|
31 |
# cooperative |
9387da0dc183
move .config from filesystem to gallery/folder/image, rename degal_dir to app_dir
Tero Marttila <terom@fixme.fi>
parents:
129
diff
changeset
|
32 |
super(Gallery, self).__init__(path) |
64
4ebd563214d2
begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
33 |
|
118
60b126ff0b74
configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents:
112
diff
changeset
|
34 |
@property |
141
9387da0dc183
move .config from filesystem to gallery/folder/image, rename degal_dir to app_dir
Tero Marttila <terom@fixme.fi>
parents:
129
diff
changeset
|
35 |
def _app_dir (self) : |
118
60b126ff0b74
configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents:
112
diff
changeset
|
36 |
""" |
141
9387da0dc183
move .config from filesystem to gallery/folder/image, rename degal_dir to app_dir
Tero Marttila <terom@fixme.fi>
parents:
129
diff
changeset
|
37 |
The dir containing our application data. |
118
60b126ff0b74
configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents:
112
diff
changeset
|
38 |
""" |
60b126ff0b74
configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents:
112
diff
changeset
|
39 |
|
60b126ff0b74
configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents:
112
diff
changeset
|
40 |
return self.subdir('.degal') |
60b126ff0b74
configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents:
112
diff
changeset
|
41 |
|
64
4ebd563214d2
begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
42 |
@lazy_load |
141
9387da0dc183
move .config from filesystem to gallery/folder/image, rename degal_dir to app_dir
Tero Marttila <terom@fixme.fi>
parents:
129
diff
changeset
|
43 |
def app_dir (self) : |
64
4ebd563214d2
begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
44 |
""" |
141
9387da0dc183
move .config from filesystem to gallery/folder/image, rename degal_dir to app_dir
Tero Marttila <terom@fixme.fi>
parents:
129
diff
changeset
|
45 |
The dir containing our application data. |
64
4ebd563214d2
begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
46 |
|
4ebd563214d2
begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
47 |
It will be created if it does not exist. |
4ebd563214d2
begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
48 |
""" |
4ebd563214d2
begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
49 |
|
73
8897352630a5
misc. stuff in gallery.py utils.py
Tero Marttila <terom@fixme.fi>
parents:
64
diff
changeset
|
50 |
return self.subdir('.degal', create=True) |
8897352630a5
misc. stuff in gallery.py utils.py
Tero Marttila <terom@fixme.fi>
parents:
64
diff
changeset
|
51 |
|
64
4ebd563214d2
begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
52 |
@lazy_load |
4ebd563214d2
begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
53 |
def stylesheet (self) : |
4ebd563214d2
begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
54 |
""" |
4ebd563214d2
begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
55 |
The stylesheet file. |
4ebd563214d2
begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
56 |
|
4ebd563214d2
begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
57 |
It will be copied from internal resources if it does not exist. |
4ebd563214d2
begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
58 |
""" |
4ebd563214d2
begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
59 |
|
141
9387da0dc183
move .config from filesystem to gallery/folder/image, rename degal_dir to app_dir
Tero Marttila <terom@fixme.fi>
parents:
129
diff
changeset
|
60 |
stylesheet = self.app_dir.subfile('style.css') |
64
4ebd563214d2
begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
61 |
|
82
c21d9145aabc
fix Gallery.stylesheet to actually copy it into place
Tero Marttila <terom@fixme.fi>
parents:
77
diff
changeset
|
62 |
if not stylesheet.exists() : |
112
e990b7a54d40
only load the resources/pkg_resources stuff if needed - slight optimization for importing without referencing the stylesheet
Tero Marttila <terom@fixme.fi>
parents:
82
diff
changeset
|
63 |
# load the resources dir |
129 | 64 |
from resources import STATIC_DIR |
112
e990b7a54d40
only load the resources/pkg_resources stuff if needed - slight optimization for importing without referencing the stylesheet
Tero Marttila <terom@fixme.fi>
parents:
82
diff
changeset
|
65 |
|
e990b7a54d40
only load the resources/pkg_resources stuff if needed - slight optimization for importing without referencing the stylesheet
Tero Marttila <terom@fixme.fi>
parents:
82
diff
changeset
|
66 |
# copy it from the static resource file |
e990b7a54d40
only load the resources/pkg_resources stuff if needed - slight optimization for importing without referencing the stylesheet
Tero Marttila <terom@fixme.fi>
parents:
82
diff
changeset
|
67 |
stylesheet.copy_from(STATIC_DIR.subfile('style.css')) |
141
9387da0dc183
move .config from filesystem to gallery/folder/image, rename degal_dir to app_dir
Tero Marttila <terom@fixme.fi>
parents:
129
diff
changeset
|
68 |
|
9387da0dc183
move .config from filesystem to gallery/folder/image, rename degal_dir to app_dir
Tero Marttila <terom@fixme.fi>
parents:
129
diff
changeset
|
69 |
# elif stylesheet-is-older-than-resources-one: warn |
64
4ebd563214d2
begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
70 |
|
4ebd563214d2
begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
71 |
return stylesheet |
4ebd563214d2
begin implementation of folder, gallery
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
72 |