~ubuntu-branches/ubuntu/trusty/gnome-do/trusty-proposed

« back to all changes in this revision

Viewing changes to Do.Interface.Linux.Docky/src/Docky.Interface/TrashDockItem.cs

  • Committer: Bazaar Package Importer
  • Author(s): Daniel T Chen
  • Date: 2009-03-13 18:00:35 UTC
  • mfrom: (1.1.6 upstream) (0.1.3 squeeze)
  • Revision ID: james.westby@ubuntu.com-20090313180035-08lo8130dasdg7n8
Tags: 0.8.1.3-0ubuntu1
* New upstream release (LP: #344578).
  + Gnome Do causes keyboard keys to be remapped (LP: #308143)
  + Docky window too small when summoned (LP: #317381)
  + Minimize/Maximize does not work on all windows (LP: #317908)
  + Docky blocks drag and drop over large areas of the screen
    (LP: #318471)
  + Docky fails to autohide properly when changing themes
    (LP: #318672)
  + Paste via ctrl+v does not work in 1st pane (LP: #318922)
  + Autostart is in wrong assembly (LP: #319114)
  + Docky has no results list (LP: #319797)
  + Docky trash applet does not reflect current state
    (LP: #320621)
  + Docky panels splits into two when over filled (LP: #324648)
  + Docky ui division is inconsistent and confusing
    (LP: #324718)
  + poor performance with two screens (LP: #323294)
  + Docky trash applet doesn't check if trash exists
    (LP: #323453)
  + docky panel splits into two when overfilled (LP: #324648)
  + Docky's UI division is inconsistent and confusing
    (LP: #324718)
  + Do crashes when using a pastebin launcher with docky
    (LP: #325178)
  + Make docky aware of icon theme switch (LP: #328721)
  + Docky doesn't update icon status for some apps that minimize
    to system tray. (LP: #329120)
  + Docky does not work properly with pull-down window
    (LP: #334663)
  + sensitivity of zooming the icons in the dock isn't
    configurable (LP: #336214)
  + Regression: In 0.8.1, "Request attention" is no longer
    indicated (LP: #337594)
  + Clock's Calendar mode auto-hides when leaving the bounds of
    the original dock (LP: #337783)
  + gnome-do does not notice change of icon theme (LP: #204368)
  + Thumbnails are never displayed when files have spaces in
    their names (LP: #311551)
  + Open improperly escapes URLs. (LP: #317416)
  + Docky: Right-click dialog appears on wrong monitor
    (LP: #319062)
  + Dragging items off Docky possible in summon mode
    (LP: #319452)
  + Docky shows icon according to the filename (LP: #320892)
  + Mouse click inactive when Do(cky) is summoned (LP: #324937)
  + Docky trash don't have a right-click menu (LP: #317947)
  + Polish docky's window name labels (LP: #318487)
  + Docky: Scroll on window icon should switch between windows
    of that app (LP: #319805)
  + Docky does not preserve window stack (z?) order when
    switching apps by clicking on app icon (LP: #326661)
  + Docky window switching should be easier. (LP: #327079)
  + Color of indicators on Docky cannot be changed
    (LP: #332936)
  + Do's ResultWindow is using wrong text color (LP: #288771)
  + Docky won't unhide after rev 1053 (LP: #337113)
  + Do's icon label in Docky should be "GNOME Do" instead of
    "Summon GNOME Do" (LP: #338496)
* Build against gtk, gnome mono packages from Experimental.
* debian/control:
  + Bump versioned dep on libgtk2.0-cil to ensure
    Gdk.Screen.IsComposited exists
  + Add libwnck2.20-cil build-dep
  + Add librsvg2-2.18-cil build-dep
  + gnome-sharp2 transition.
* debian/patches/03_show_in_all_DEs
  + Drop; fixed in new upstream
* debian/gnome-do.1
  + Update for new version.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
// TrashDockItem.cs
2
 
// 
3
 
// Copyright (C) 2008 GNOME Do
4
 
//
5
 
// This program is free software: you can redistribute it and/or modify
6
 
// it under the terms of the GNU General Public License as published by
7
 
// the Free Software Foundation, either version 3 of the License, or
8
 
// (at your option) any later version.
9
 
//
10
 
// This program is distributed in the hope that it will be useful,
11
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 
// GNU General Public License for more details.
14
 
//
15
 
// You should have received a copy of the GNU General Public License
16
 
// along with this program.  If not, see <http://www.gnu.org/licenses/>.
17
 
//
18
 
 
19
 
using System;
20
 
using System.Collections.Generic;
21
 
using System.IO;
22
 
using System.Linq;
23
 
 
24
 
using Gdk;
25
 
using Mono.Unix;
26
 
 
27
 
using Do.Interface;
28
 
using Do.Interface.CairoUtils;
29
 
using Do.Platform;
30
 
 
31
 
using Docky.Utilities;
32
 
 
33
 
namespace Docky.Interface
34
 
{
35
 
        
36
 
        
37
 
        public class TrashDockItem :  BaseDockItem
38
 
        {
39
 
                const string TrashEmptyIcon = "gnome-stock-trash";
40
 
                const string TrashFullIcon = "gnome-stock-trash-full";
41
 
                
42
 
                string Trash {
43
 
                        get { 
44
 
                                return System.IO.Path.Combine (Environment.GetFolderPath (Environment.SpecialFolder.LocalApplicationData), "Trash/files/");
45
 
                        }
46
 
                }
47
 
                
48
 
                public override bool IsAcceptingDrops {
49
 
                        get { return true; }
50
 
                }
51
 
                
52
 
                public TrashDockItem()
53
 
                {
54
 
                }
55
 
                
56
 
                protected override Pixbuf GetSurfacePixbuf ()
57
 
                {
58
 
                        if (Directory.GetFiles (Trash).Any ())
59
 
                                return IconProvider.PixbufFromIconName (TrashFullIcon, DockPreferences.FullIconSize);
60
 
                        return IconProvider.PixbufFromIconName (TrashEmptyIcon, DockPreferences.FullIconSize);
61
 
                }
62
 
 
63
 
                #region IDockDragAwareItem implementation 
64
 
                
65
 
                public override bool ReceiveItem (string item)
66
 
                {
67
 
                        bool trashHadFiles = Directory.GetFiles (Trash).Any ();
68
 
                        
69
 
                        if (item.StartsWith ("file://"))
70
 
                                item = item.Substring ("file://".Length);
71
 
                        
72
 
                        // if the file doesn't exist for whatever reason, we bail
73
 
                        if (!System.IO.File.Exists (item) && !System.IO.Directory.Exists (item))
74
 
                                return false;
75
 
                        
76
 
                        try {
77
 
                                System.IO.File.Move (item, Path.Combine (Trash, Path.GetFileName (item)));
78
 
                        } catch (Exception e) { 
79
 
                                Log.Error (e.Message);
80
 
                                Log.Error ("Could not move {0} to trash", item); 
81
 
                                return false;
82
 
                        }
83
 
                        
84
 
                        // we just added to the trash, so it has files now for sure
85
 
                        if (!trashHadFiles)
86
 
                                RedrawIcon ();
87
 
                        return true;
88
 
                }
89
 
                
90
 
                #endregion 
91
 
                
92
 
                
93
 
                public override string Description {
94
 
                        get {
95
 
                                return Catalog.GetString ("Trash");
96
 
                        }
97
 
                }
98
 
                
99
 
                public override void Clicked (uint button)
100
 
                {
101
 
                        if (button == 1) {
102
 
                                Services.Environment.OpenUrl ("trash://");
103
 
                                AnimationType = ClickAnimationType.Bounce;
104
 
                        } else {
105
 
                                AnimationType = ClickAnimationType.None;
106
 
                        }
107
 
                        
108
 
                        base.Clicked (button);
109
 
                }
110
 
 
111
 
        }
112
 
}