Commit graph

301 commits

Author SHA1 Message Date
Emmanuel Pescosta 24823bbfd1 Implemented DolphinRecentTabsMenu to encapsulate the recent
tabs menu related code from DolphinMainWindow in a new class.

The DolphinRecentTabsMenu remembers the tab configuration if a
tab has been closed.

REVIEW: 118805
2014-06-19 22:04:36 +02:00
Frank Reininghaus 4fe788f115 Keep the "free space" information updated in all visible views
The old code would watch the free space on a mount point, i.e.,
determine the free space again, in 10-second intervals, only until the
view became invisible once (even if it was invisible only for a very
short moment, i.e., while splitting the view).

This commit ensures that the mount point is watched again as soon as
the corresponding view becomes visible again.

Moreover, the object that watches the free space for a mount point is
shared among all views that show URLs that belong to this mount point.
To achieve this, there is a central cache which can be used to obtain
an existing MountPointObserver for a certain path. If necessary, a new
MountPointObserver is created and added to the cache.

The MountPointObserver is removed from the cache and destroyed only if
no views use it any more, and no new users appear until the next update
(which happens every 10 seconds). This prevents that the free space is
measured repeatedly when changing the current directory on the same
mount point.

Many thanks to Emmanuel Pescosta for the initial ideas to factor out
the "free space" code and to establish a central storage for the
"observer" objects, and for providing many good suggestions how to
improve the code!

BUG: 327708
REVIEW: 118208
FIXED-IN: 4.14.0
2014-05-22 18:42:17 +02:00
Christophe Giboudeaux 709c336776 Fix includes 2014-02-07 15:41:48 +01:00
Vishesh Handa 64afe7b226 Port Dolphin to Baloo
Nepomuk is being replaced with Baloo
2014-02-06 20:29:09 +01:00
Patrick von Reth d7ed6c8805 dolphinnewfilemenu.cpp is part of dolphinprivate 2013-11-19 19:51:16 +01:00
Frank Reininghaus fc2ab47898 Store the selected items in a more efficient way
Since Dolphin 2.0, we have stored the selected items in a QSet<int>,
which is neither space-efficient nor particularly fast when inserting
many items which are in a consecutive range.

This commit replaces the QSet<int> by a new class "KItemSet", which
stores the items in a sorted list of ranges. For each range, we only
store the first index and the length of the range, so we need a lot
less memory for most common selection patterns, and we also save quite
a few CPU cycles in many situations, because adding an item to the
KItemSet will in many cases not need a memory allocation at all, and
it's particularly easy when inserting sorted items into the KItemSet in
a row.

KItemSet contains a minimal subset of QSet's API which makes it
suitable as a drop-in replacement for our needs. It also has iterators,
such that the items can be iterated through easily, also with foreach.
One advantage of KItemSet compared to QSet<int> is that the items are
always iterated through in ascending order.

REVIEW: 113488
2013-10-30 23:22:23 +01:00
Frank Reininghaus 4bfc28cb4b Count the items inside directories in another thread
This prevents that the GUI freezes if there are many files inside the
directory, or if the access to the directory is slow for some other
reason.

BUG: 318518
REVIEW: 111920
FIXED-IN: 4.12.0
2013-09-04 21:50:16 +02:00
Emmanuel Pescosta a4ef4bbfde Replaced all KNewFileMenu usages in DolphinPart by DolphinNewFileMenu.
Removed all signal-slot-connections related to DolphinNewFileMenu->errorMessage(QString)
in DolphinMainWindow and DolphinContextMenu and replaced it by a better solution.

Now we make use of the already existing DolphinNewFileMenuObserver singleton class to achieve a better
error handling, because every newly created DolphinContextMenu instance registers himself by DolphinNewFileMenuObserver
and we use this to connect the errorMessage(QString) signal of every DolphinContextMenu instance to the errorMessage(QString)
signal of the DolphinNewFileMenuObserver singleton class.

So we need only one connection from DolphinNewFileMenuObserver to DolphinMainWindow (or to DolphinPart) to
collect all error messages thrown by every DolphinNewFileMenu instance.

REVIEW: 112178
2013-08-28 18:46:45 +02:00
Dawit Alemayehu 01761798a9 - Factored out the Delete/Move To Trash action into own class.
- Updated both the Dolphin KPart and context menu to use the new
  DolphinRemoveAction class to manage "Delete/Move to Trash" actions.

See also https://git.reviewboard.kde.org/r/107509/.

REVIEW: 108802
2013-05-14 08:37:21 -04:00
Frank Reininghaus d9680ead80 Re-organise the sorting code
The KFileItemModel-specific parts are now separated from the generic
ones, like the parallel sorting implementation.

REVIEW: 108386
2013-01-15 18:50:37 +01:00
Christophe Giboudeaux feae9f9dfc Merge branch 'KDE/4.10'
Conflicts:
	dolphin/src/CMakeLists.txt
2013-01-07 18:22:28 +01:00
Christophe Giboudeaux 6b351820a3 Fix build if one of the missing Nepomuk dependencies is missing 2013-01-07 18:11:07 +01:00
Vishesh Handa 24c9bc6ce7 Dolphin: Make Nepomuk Support Optional
Use the KFileMetadataWidget if Nepomuk is not present.

REVIEW: 108236
2013-01-07 19:59:23 +05:30
Christophe Giboudeaux 56f1c0371c Merge branch 'KDE/4.10'
Conflicts:
	dolphin/src/CMakeLists.txt
2013-01-02 15:28:43 +01:00
Vishesh Handa bf202f3931 Dolphin Information Panel: Use Nepomuk2::FileMetadataWidget
Instead of the KFileMetadataWidget. The Nepomuk widget is just a copy of
the KFileMetadataWidget which utilizes Nepomuk2.
2013-01-02 16:35:37 +05:30
Christophe Giboudeaux c473003fca Port to feature_summary. 2012-12-30 11:59:35 +01:00
Pino Toscano e428f431bb look also for soprano 2012-10-16 10:14:56 +02:00
Emmanuel Pescosta a9b04801db Port Dolphin from Nepomuk to Nepomuk2 according to the Nepomuk2Port mini guide on techbase - http://techbase.kde.org/Projects/Nepomuk/Nepomuk2Port
REVIEW: 106825
2012-10-15 21:46:59 +02:00
Dawit Alemayehu b7a8327c30 Merge branch '4.9' 2012-09-27 17:48:56 -04:00
Frank Reininghaus 831251d0f3 Add a new config option for the icon size in the Places Panel
To change the icon size in the Places Panel to, e.g., 60 pixels, add
the following lines to $KDEHOME/share/config/dolphinrc :

[PlacesPanel]
IconSize=60

A value of -1 means that the standard "Small" size should be used
(which has been the default before this commit).

It is planned to add an "Icon Size" submenu to the context menu of the
Places Panel in KDE 4.10, but we cannot do this in the 4.9 branch
because of the string freeze.

FIXED-IN: 4.9.2
BUG: 301959
2012-09-27 08:12:02 +02:00
Amandeep Singh 1b5b731621 Merge branch for accessibility 2012-09-22 23:49:15 +05:30
Amandeep Singh 0ae031a4e6 Modify code according to dolphin policy 2012-09-22 23:47:17 +05:30
Dawit Alemayehu 399c4b22ea Corrected the compile fix commit, rev 965fc6b3.
(cherry picked from commit 1e45cb9019)
2012-09-15 14:41:06 -04:00
Dawit Alemayehu 0b918c3f82 Corrected the compile fix commit, rev 965fc6b3. 2012-09-15 13:44:54 -04:00
Christophe Giboudeaux 707dfbec0e Fix includes 2012-08-24 13:38:43 +02:00
Ivan Čukić 50eaec7a81 Merge branch 'ivan/dolphin-activities'
REVIEW:105973
2012-08-15 08:25:24 +02:00
Ivan Čukić 8268c0813a Dolphin reporting opened locations to activity manager 2012-08-15 08:22:30 +02:00
Amandeep Singh cd1d45c831 Adding the Accessibility classes 2012-08-14 20:27:55 +05:30
Emmanuel Pescosta ab61d9d3ba Fix wrong text color in places and in folders panel.
FIXED-IN: 4.9.1
REVIEW: 105832
BUG: 303133
2012-08-13 19:10:50 +02:00
Emmanuel Pescosta 220d0d522d Fix wrong text color in places and in folders panel.
FIXED-IN: 4.9.1
REVIEW: 105832
BUG: 303133
2012-08-13 18:40:43 +02:00
Peter Penz 203449110e Get rid of obsolete DolphinPlacesModel 2012-05-29 13:14:12 +02:00
Mark Gaiser a5c25d2de5 Make tooltip background blurred.
REVIEW: 105061
2012-05-26 18:05:25 +02:00
Peter Penz 2fd31c8a95 Update trash-icon dependent on whether the thrash is empty or not
The class PlacesItemStorageAccessListener has been renamed to
PlacesItemSignalHandler and represents a generic signal handler
for the PlacesItem.
2012-05-16 19:19:57 +02:00
Peter Penz 28daa45a44 Places Panel: Implement eject and teardown actions
Further fixes:
- Add/remove item when device has been added/removed
- Update emblem if the accessibility-state has been changed
2012-05-11 23:02:14 +02:00
Peter Penz 5cf40dba79 Remove kde-runtime dependency "nepomukdatamanagement"
Follow the suggestion from Vishesh Handa and copy the ResourceWatcher
code from kde-runtime instead of creating a dependency. This will of
course get removed again as soon as Nepomuk's resource watcher will
get a public API.
2012-05-06 21:52:33 +02:00
Peter Penz 23fff35aeb Places Panel: Provide access to devices 2012-05-05 21:38:37 +02:00
Peter Penz d76b113ad1 Places Panel: Allow hiding of items
Related changes:
- Animate changed items for the details-view in case it is not expandable
- Remove the hardcoded "isHidden"-code in KStandardItemListWidget and
  allow derived widgets to define themselves what means "hidden" within
  their context.

The current code needs a lot of bugfixing, but lets make this in smaller
steps during the next days...
2012-05-01 23:14:52 +02:00
Peter Penz d1c5dc52a3 Places Panel: Provide dialog for editing places 2012-04-26 23:41:01 +02:00
Peter Penz 640696db72 Places panel: Internal cleanup
Move the bookmark handling into a custom model, so that the
PlacesPanel only contains UI + controller code.
2012-04-25 23:02:40 +02:00
Peter Penz 67f58d5082 Fix search-UI issues in combination with the new places entries
The places-entries for searching revealed some serious issues in
combination with the search-panel. Move the filtering away from
QDockWidget and bring it back below the search-bar.
2012-04-25 02:20:25 +02:00
Peter Penz d9de391720 Provide additional default groups for the Places Panel
If Nepomuk is enabled, it is now possible to easily search for
some most common queries by having additional groups.
2012-04-24 23:18:34 +02:00
Peter Penz ae4d11d918 Prepare view-engine for non-KFileItem usecase
Up to now the view-engine only provided a model-implementation that
supports file-items. The view-engine always had been designed to be able
to work with any kind of model, so now a KStandardItemModel is available.
The plan is to convert the places panel to the new view-engine. It should
be no problem to fix this until the feature freeze - in the worst case
the places-panel code could be reverted while still keeping the
KStandardItemModel changes.
2012-04-21 21:32:42 +02:00
Peter Penz b2e54c3a31 Implement inline-renaming for the new view-engine
BUG: 286893
FIXED-IN: 4.9.0
2012-04-17 18:15:12 +02:00
Peter Penz 6c3d9acbc2 KItemViews: Internal directory restructuration
- Move all private headers from the kitemviews-directory into
the 'private' subdirectory.

- Get rid of DolphinDirLister and just use a directory-lister
  internally in KFileItemModel.

- Minor interface-cleanups for signals
2012-04-11 16:08:32 +02:00
Peter Penz e0ac8b61fb Layout improvements for settings
- Handle 'Context Menu' settings as part of the services
- Handle 'Version Control' settings as part of the services
- Move the confirmations-settings into own tab
- Use combobox for view-property settings
- A lot of minor spacing cleanups
2012-04-08 23:18:20 +02:00
Peter Penz 5d27eb81cd Update items if a Nepomuk property has been changed
If a Nepomuk property has been changed (e.g. by changing the rating
in the Information Panel) the corresponding item in the view must
be updated.
2012-04-06 18:04:56 +02:00
Peter Penz 1e6031c04d Extract sorting-algorithm from KFileItemModel into custom class 2012-04-04 13:37:07 +02:00
Peter Penz a4ede4e0eb Allow showing Nepomuk metadata inside views
Metadata like image-size, rating, comments, tags, ... can be shown
now in the view (e.g. as column in the Details mode).

Still open: The rating-information needs to be shown as stars.

In the context of this feature also the following bugs have been
fixed:
- Fix visual glitches in the header of the Details mode
- Improve the minimum column width calculation to respect also
  the headling and not only the content

BUG: 296782
FIXED-IN: 4.9.0
2012-04-01 16:46:54 +02:00
Peter Penz 3f88f79f86 Details view: Optionally remember user changed column-widths
If the user changed a column-width in the details-view, up to now
the width got reset when changing a directory or when restarting
Dolphin. Now the column-widths automatically get remembered for each
directory in case if the user has modified the width. The automatic
resizing is still turn on per default. The storing of the custom
column-width can easily be reset by right clicking on the header and
selecting "Automatic Column Widths" from the context-menu.

Some finetuning is still necessary (e.g. the "Adjust View Properties"
dialog currently is not aware about this setting) but this will
be fixed during the next weeks.

BUG: 264434
FIXED-IN: 4.9.0
2012-03-23 22:31:55 +01:00
Peter Penz f041099904 Remove RolesInfoAccessor
Now KFileItemModel provides a way to access the available roles
including their translations. Note that the 3 roles "comments",
"rating" and "tags" have not been implemented yet in KFileItemModel
and turning them on does not work currently.
2012-03-13 16:29:45 +01:00