~ubuntu-branches/ubuntu/utopic/kdebase/utopic

« back to all changes in this revision

Viewing changes to apps/dolphin/src/views/dolphinviewactionhandler.h

  • Committer: Bazaar Package Importer
  • Author(s): Jonathan Riddell
  • Date: 2010-11-25 16:00:47 UTC
  • mfrom: (1.1.53 upstream)
  • Revision ID: james.westby@ubuntu.com-20101125160047-bsycodsp50o8su5s
Tags: 4:4.5.80-0ubuntu1
* New upstream beta release
* Drop kubuntu_06_simple_aboutpage.diff, didn't apply and no point
  keeping a distro patch to an app we don't ship by default
* Drop kubuntu_23_konqueror_spinner_in_toolbar.diff now upstream

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/***************************************************************************
 
2
 *   Copyright (C) 2008 by David Faure <faure@kde.org>                     *
 
3
 *                                                                         *
 
4
 *   This program is free software; you can redistribute it and/or modify  *
 
5
 *   it under the terms of the GNU General Public License as published by  *
 
6
 *   the Free Software Foundation; either version 2 of the License, or     *
 
7
 *   (at your option) any later version.                                   *
 
8
 *                                                                         *
 
9
 *   This program is distributed in the hope that it will be useful,       *
 
10
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
 
11
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
 
12
 *   GNU General Public License for more details.                          *
 
13
 *                                                                         *
 
14
 *   You should have received a copy of the GNU General Public License     *
 
15
 *   along with this program; if not, write to the                         *
 
16
 *   Free Software Foundation, Inc.,                                       *
 
17
 *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
 
18
 ***************************************************************************/
 
19
 
 
20
 
 
21
#ifndef DOLPHINVIEWACTIONHANDLER_H
 
22
#define DOLPHINVIEWACTIONHANDLER_H
 
23
 
 
24
#include "libdolphin_export.h"
 
25
#include <kactionmenu.h>
 
26
#include <kselectaction.h>
 
27
#include "views/dolphinview.h"
 
28
#include <QtCore/QObject>
 
29
 
 
30
class KToggleAction;
 
31
class QAction;
 
32
class QActionGroup;
 
33
class DolphinView;
 
34
class KActionCollection;
 
35
 
 
36
/**
 
37
 * @short Handles all actions for DolphinView
 
38
 *
 
39
 * The action handler owns all the actions and slots related to DolphinView,
 
40
 * but can the view that is acts upon can be switched to another one
 
41
 * (this is used in the case of split views).
 
42
 *
 
43
 * The purpose of this class is also to share this code between DolphinMainWindow
 
44
 * and DolphinPart.
 
45
 *
 
46
 * @see DolphinView
 
47
 * @see DolphinMainWindow
 
48
 * @see DolphinPart
 
49
 */
 
50
class LIBDOLPHINPRIVATE_EXPORT DolphinViewActionHandler : public QObject
 
51
{
 
52
    Q_OBJECT
 
53
 
 
54
public:
 
55
    explicit DolphinViewActionHandler(KActionCollection* collection, QObject* parent);
 
56
 
 
57
    /**
 
58
     * Sets the view that this action handler should work on.
 
59
     */
 
60
    void setCurrentView(DolphinView* view);
 
61
 
 
62
    /**
 
63
     * Returns the view that this action handler should work on.
 
64
     */
 
65
    DolphinView* currentView();
 
66
 
 
67
    /**
 
68
     * Returns the name of the action for the current viewmode
 
69
     */
 
70
    QString currentViewModeActionName() const;
 
71
 
 
72
    /**
 
73
     * Returns m_actionCollection
 
74
     */
 
75
    KActionCollection* actionCollection();
 
76
 
 
77
public Q_SLOTS:
 
78
    /**
 
79
     * Update all actions in the 'View' menu, i.e. those that depend on the
 
80
     * settings in the current view.
 
81
     */
 
82
    void updateViewActions();
 
83
 
 
84
Q_SIGNALS:
 
85
    /**
 
86
     * Emitted by DolphinViewActionHandler when the user triggered an action.
 
87
     * This is only used for clearining the statusbar in DolphinMainWindow.
 
88
     */
 
89
    void actionBeingHandled();
 
90
 
 
91
    /**
 
92
     * Emitted if the user requested creating a new directory by the F10 key.
 
93
     * The receiver of the signal (DolphinMainWindow or DolphinPart) invokes
 
94
     * the method createDirectory of their KNewFileMenu instance.
 
95
     */
 
96
    void createDirectory();
 
97
 
 
98
private Q_SLOTS:
 
99
    /**
 
100
     * Emitted when the user requested a change of view mode
 
101
     */
 
102
    void slotViewModeActionTriggered(QAction*);
 
103
 
 
104
    /**
 
105
     * Let the user input a name for the selected item(s) and trigger
 
106
     * a renaming afterwards.
 
107
     */
 
108
    void slotRename();
 
109
 
 
110
    /**
 
111
     * Moves the selected items of the active view to the trash.
 
112
     * This methods adds "shift means del" handling.
 
113
     */
 
114
    void slotTrashActivated(Qt::MouseButtons, Qt::KeyboardModifiers);
 
115
 
 
116
    /**
 
117
     * Deletes the selected items of the active view.
 
118
     */
 
119
    void slotDeleteItems();
 
120
 
 
121
    /**
 
122
     * Switches between showing a preview of the file content and showing the icon.
 
123
     */
 
124
    void togglePreview(bool);
 
125
 
 
126
    /** Updates the state of the 'Show preview' menu action. */
 
127
    void slotShowPreviewChanged();
 
128
 
 
129
    /** Increases the size of the current set view mode. */
 
130
    void zoomIn();
 
131
 
 
132
    /** Decreases the size of the current set view mode. */
 
133
    void zoomOut();
 
134
 
 
135
    /** Switches between an ascending and descending sorting order. */
 
136
    void toggleSortOrder();
 
137
 
 
138
    /** Switches between a separate sorting and a mixed sorting of files and folders. */
 
139
    void toggleSortFoldersFirst();
 
140
 
 
141
    /**
 
142
     * Updates the state of the 'Sort Ascending/Descending' action.
 
143
     */
 
144
    void slotSortOrderChanged(Qt::SortOrder order);
 
145
 
 
146
    /**
 
147
     * Updates the state of the 'Sort Folders First' action.
 
148
     */
 
149
    void slotSortFoldersFirstChanged(bool foldersFirst);
 
150
 
 
151
    /**
 
152
     * Updates the state of the 'Sort by' actions.
 
153
     */
 
154
    void slotSortingChanged(DolphinView::Sorting sorting);
 
155
 
 
156
    /**
 
157
     * Updates the state of the 'Zoom In' and 'Zoom Out' actions.
 
158
     */
 
159
    void slotZoomLevelChanged(int level);
 
160
 
 
161
    /**
 
162
     * Switches on or off the displaying of additional information
 
163
     * as specified by \a action.
 
164
     */
 
165
    void toggleAdditionalInfo(QAction* action);
 
166
 
 
167
    /**
 
168
     * Changes the sorting of the current view.
 
169
     */
 
170
    void slotSortTriggered(QAction*);
 
171
 
 
172
    /**
 
173
     * Updates the state of the 'Additional Information' actions.
 
174
     */
 
175
    void slotAdditionalInfoChanged();
 
176
 
 
177
    /**
 
178
     * Switches between sorting by categories or not.
 
179
     */
 
180
    void toggleSortCategorization(bool);
 
181
 
 
182
    /**
 
183
     * Updates the state of the 'Categorized sorting' menu action.
 
184
     */
 
185
    void slotCategorizedSortingChanged();
 
186
 
 
187
    /**
 
188
     * Switches between showing and hiding of hidden marked files
 
189
     */
 
190
    void toggleShowHiddenFiles(bool);
 
191
 
 
192
    /**
 
193
     * Updates the state of the 'Show hidden files' menu action.
 
194
     */
 
195
    void slotShowHiddenFilesChanged();
 
196
 
 
197
    /**
 
198
     * Opens the view properties dialog, which allows to modify the properties
 
199
     * of the currently active view.
 
200
     */
 
201
    void slotAdjustViewProperties();
 
202
 
 
203
    /**
 
204
     * Connected to the "properties" action.
 
205
     * Opens the properties dialog for the selected items of the
 
206
     * active view. The properties dialog shows information
 
207
     * like name, size and permissions.
 
208
     */
 
209
    void slotProperties();
 
210
 
 
211
private:
 
212
    /**
 
213
     * Create all the actions.
 
214
     * This is called only once (by the constructor)
 
215
     */
 
216
    void createActions();
 
217
 
 
218
    /**
 
219
     * Creates an action group with all the "show additional information" actions in it.
 
220
     * Helper method for createActions();
 
221
     */
 
222
    QActionGroup* createAdditionalInformationActionGroup();
 
223
 
 
224
    /**
 
225
     * Creates an action group with all the "sort by" actions in it.
 
226
     * Helper method for createActions();
 
227
     */
 
228
    QActionGroup* createSortByActionGroup();
 
229
 
 
230
    /**
 
231
     * Returns the "switch to icons mode" action.
 
232
     * Helper method for createActions();
 
233
     */
 
234
    KToggleAction* iconsModeAction();
 
235
 
 
236
    /**
 
237
     * Returns the "switch to details mode" action.
 
238
     * Helper method for createActions();
 
239
     */
 
240
    KToggleAction* detailsModeAction();
 
241
 
 
242
    /**
 
243
     * Returns the "switch to columns mode" action.
 
244
     * Helper method for createActions();
 
245
     */
 
246
    KToggleAction* columnsModeAction();
 
247
 
 
248
    KActionCollection* m_actionCollection;
 
249
    DolphinView* m_currentView;
 
250
};
 
251
 
 
252
#endif /* DOLPHINVIEWACTIONHANDLER_H */