summaryrefslogtreecommitdiff
path: root/TODO
blob: 8ba7d085933cc94d3cba4a33a613367653ffd3f2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
- Keyboard shortcuts
  	   zoom in		(+ in addition to ctrl-+)
	   zoom out		
	   Scrolling

- When you open a file that is already open, reload it	   ...	   	

- 'Reload' menu item

- Display original size in the title

- Open a copy, save a copy (maybe)

- Properties

- Metadata
  - Keep track of when files are used
  - Limit size to 10000 most recently used files

- Recent files

- Full screen view

- Statusbar
  - Size, position, color
  - Show optionally

- Rotation

- Loading arrays of files

- Remember the directory in the open file dialog

Later:

- Pass through unknown properties in the metadata. (To be forwards
  compatible).  This is not hugely important. I don't really care all
  that much about NFS mounted home directories where people run
  different versions of siv.

Done:

- View toolbar

- Metadata
  - Be less aggressive about saving it - we are
    one-instance now.

- Handle startup notification across dbus

- When failing from the command line, print failure on stdout rather
  than displaying an alert. (This doesn't work very well if the
  process is running in the background, but still has a terminal).
  
- Icon
  - Set the image as icon when one is loaded

- One-instance
  - Make it one-instance with d-bus so that if you try to open the
    same image twice, you will get the old window.

    - Own the "siv.gnome.org" name, have a method to open a new
      window (or present an existing one).

    - On startup: 
      	 if (!own_name())
	    get_name().open (filename);
         else
	    open (filename);

    - Look at evince.

  - "Open a copy"

  - At that point, caching the meta data should be feasible (though it
    should still deal with the case where someone presses Ctrl-C).

- Find out why it's so slow when loading huge images

- Icon

- If more than one instance of the application is
  open, then things go haywrite.
    
  Either only allow one open instance, or monitor the metadata file.

  Or only write out the ones we have changed - ie., write-out
  consists of reading the file into hash table, then modifying, then
  writing out.

  In fact, maybe we should just never cache the table in memory.
  Just read it every time we need data from it.

  If people put .gnome2 on NFS, then they lose.

- Set mimetypes in open dialog

- Dragging

- Remember position of empty window

- .desktop file

- Make sure filenames are escaped if they contains [ or ]

- About box

- Build system

- Meta data

- Save adjustment positions

- Open