┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kfileitemmodelrolesupdater.h
AgeCommit message (Collapse)Author
2015-11-28Fix wrong path->URL conversion.David Faure
2015-11-04Use the new KOverlayIconPlugin interface from KIO::WidgetsOlivier Goffart
REVIEW: 125675
2015-10-10Only perform operations with Baloo if it is enabledVishesh Handa
REVIEW: 125584
2015-02-25Move the KVersionControlPlugin2 interface from konqlib to Dolphin and remove ↵Emmanuel Pescosta
the deprecated KVersionControlPlugin interface from konqlib REVIEW: 122687
2014-11-20Fix Exports.Andrius da Costa Ribas
REVIEW: 121078
2014-10-18fix forward declarationMontel Laurent
2014-10-14Port Dolphin to the new Baloo APIsVishesh Handa
REVIEW: 120582
2014-05-05dolphin: convert kitemviews/ to qt5 signal slot syntaxAlex Richardson
This conversion was performed automatically using convert2qt5signalslot. The only manual changes required were changing the overloaded signal KDirLister::redirection and KDirLister::completed from KUrl to QUrl. All other cases were no problem since these signals are not overloaded and a static_cast for disambiguation is not necessary. Code inside HAVE_BALOO is not converted yet, will do that once I can build a version with Baloo.
2014-02-06Port Dolphin to BalooVishesh Handa
Nepomuk is being replaced with Baloo
2014-01-06Avoid calling KFileItemModel::index() in KFileItemModelRolesUpdaterFrank Reininghaus
KFileItemModel allows to find out the index of a KFileItem with its index(const KFileItem&) method. Calling this method is not extremely expensive, but it's also not free (it looks up the URL of the KFileItem in a QHash, i.e., it has to call qHash(QString) for the full URL). In KFileItemModelRolesUpdater, we sometimes converted the known index to a KFileItem and then back to an index in applyResolvedRoles(KFileItem). This patch fixes this by modifying applyResolvedRoles such that it takes the index directly as its argument. REVIEW: 114847
2013-09-04Count the items inside directories in another threadFrank Reininghaus
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-07-18Fix build if HAVE_NEPOMUK is not definedFrank Reininghaus
We really have to make nepomuk-core and nepomuk-widgets a hard dependency in the framworks era.
2013-07-18Overwrite the changed role value with an empty QVariant,Emmanuel Pescosta
because the nepomuk roles provider doesn't overwrite it when the property value list is empty. BUG: 322348 REVIEW: 111505 FIXED-IN: 4.11.0
2013-07-12Load unknown icons for items just before showing items in the viewFrank Reininghaus
Rather than loading many icons (without full mime type determination) in advance, we make sure that an item has an icon just before it is shown in the view. This makes sure that no "unknown" icons are shown unnecessarily, and saves some resources. REVIEW: 111396
2013-06-20Try to do at least a "fast" icon loading for all itemsFrank Reininghaus
If all icons for the visible items could be loaded in 200 ms, we continue loading icons without mime type determination for all items until the 200 ms are over. This reduces the risk that the user ever sees "unknown" icons. REVIEW: 111011
2013-06-20Make sure that all visible items have an iconFrank Reininghaus
We try to determine "final" icons, i.e., icons with known mime type, for 200 ms. If this does not succeed, we at least load "fast" icons, i.e., load the icons without determining the mime type. REVIEW: 111009
2013-06-20Simplify handling of preview jobsFrank Reininghaus
This patch changes two things about the way we handle the preview jobs: (a) Rather than passing a KFileItemList to startPreviewJob(), remembering the leftovers in the member variable m_pendingPreviewItems and then starting a new preview job for these, we append items that need a preview to this member, and let startPreviewJob() take its input from there. This simplifies the code greatly. (b) To prevent that we start preview jobs with just one item and also that the GUI is frozen too long by startPreviewJob(), we take the following approach: * If the mime type of the first pending item is known, the function has probably been called by startUpdating(), which has determined mime types for the visible items already. startUpdating() has also blocked the GUI, so we just take all items at the beginning of the list with known mime type, and do not do any expensive mime type determination in startPreviewJob(). * If the mime type of the first pending item is unknown, the function has probably been called by slotPreviewJobFinished(). In that case, we can afford to block the GUI for a short while, so we determine mime types for 200 ms. REVIEW: 111008
2013-06-07Remove unused argumentFrank Reininghaus
I saw a runtime warning from QMetaObject::invokeMethod() that KJob* is not a registered type. Since we don't use that argument in slotPreviewJobFinished(KJob*) anyway, it's best to remove it.
2013-06-05KFileItemModelRolesUpdater: waste less ressources and fix some bugsFrank Reininghaus
The main change in this commit is that we do not determine expensive roles (like previews, mime types, etc) for all items, but only for the visible ones and those close to the visible area or on the first and the last page of the view. This prevents that the CPU and hard drive are kept busy for quite some time after entering a folder while all items are handled asynchronously. There is one known problem at the moment: when sorting by "Type" or another role that can be resolved by KFileItemModelRolesUpdater, the icons of the visible items are sometimes not loaded while the sorting is still in progress. I will try to fix this issue during the next few days. REVIEW: 110839
2013-04-22Always determine icons for the visible items firstFrank Reininghaus
When entering a folder, KFileItemModelRolesUpdater has not yet been informed about the visible index range by the view when it tries to determine icons synchronously. This resulted in the problem that it tried to determine icons for all items in random order, and some visible icons were somtimes still unknown after the "synchronous icon loading" timeout of 200 ms. This commit tries to improve the situation by loading icons starting with the first item in increasing order. This should make it less likely that some visible items still have unknown icons after 200 ms. BUG: 316129 FIXED-IN: 4.10.3 REVIEW: 109843
2012-10-15Port Dolphin from Nepomuk to Nepomuk2 according to the Nepomuk2Port mini ↵Emmanuel Pescosta
guide on techbase - http://techbase.kde.org/Projects/Nepomuk/Nepomuk2Port REVIEW: 106825
2012-06-11Update "isExpandable" and "size"-rolesPeter Penz
If the "isExpandable"- or "size"-role is shown for a folder, the number of sub-items must be watched to be able to update the state of those 2 roles. This fixes the issue that e.g. no expanding-toggle is shown if an sub-directory has been created inside an empty directory. BUG: 293972 FIXED-IN: 4.9.0
2012-04-11KItemViews: Internal directory restructurationPeter Penz
- 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-10Improvements for slow sorting rolesPeter Penz
If the sorting is done for data which is resolved asynchronously (e.g. rating), it is important to give a visual feedback about the state of the sorting. This is done now by a progress indication in the statusbar. Also optimizations for "Sort by type" have been done: Although resolving a type can be expensive in the most often case it is a very cheap operation. So it the sorting is done by type, try to resolve the type synchronously for at least 200 ms to prevent a asynchronous resorting. This is usually sufficient to have resolved types even for directories with several thousands of items. BUG: 292733 FIXED-IN: 4.9.0
2012-04-06Allow to specify whether an upscaling of images should be donePeter Penz
The option is currently hidden as up to now only Nuno requested it, but it seems to be urgent: "my icon making productivity has drop subtantialy" ((c) 2012 Nuno) As I don't want to get blamed for an outdated Oxygen-icon-set I have no other choice ;-) CCMAIL: [email protected]
2012-04-06Update items if a Nepomuk property has been changedPeter Penz
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-01Allow showing Nepomuk metadata inside viewsPeter Penz
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-02-01KFileItemModelRolesUpdater: Optimize updatesPeter Penz
The asynchronous resolving to bypass performance bottlenecks is not necessary anymore as multiple ranges can be inserted in one step now. This solves the issue that e.g. opening a tree resulted in temporary unknown icons for a short period of time.
2012-01-15Don't show a expanding-toggle in the Folders Panel if there are no ↵Peter Penz
subdirectories BUG: 290745 FIXED-IN: 4.8.0
2012-01-09Prevent generating previews all the time during downloading a large filePeter Penz
When downloading a large file the preview should not be recreated each time a change-notification has been received. Create the preview after getting the first file change, but postpone creating the next previews until no change has been done during a longer period of time. BUG: 290698 FIXED-IN: 4.8.0
2011-12-23Introduce "isExpandable" rolePeter Penz
The role is used to determine whether a directory can be expanded at all. This is e.g. not the case if a directory has 0 items or the target-URL is different from the item-URL. The expansion toggle will get hidden if a directory is not expandable. CCBUG: 288521
2011-12-21Update previews when the preview-plugin settings have changedPeter Penz
Thanks to Janardhan Reddy for the initial patch. BUG: 288726 FIXED-IN: 4.8.0
2011-12-16Update the roles if items have been changedPeter Penz
The code "// TODO..." in slotItemsChanged() obviously was not sufficient ;-) BUG: 288691 BUG: 288824 BUG: 288921 FIXED-IN: 4.8.0
2011-08-13Fixes for "krazy"Peter Penz
2011-08-02Improve performance for creating previewsPeter Penz
The overall time for creating previews is faster the more items are passed to KIO::previewJob() in parallel instead of passing e.g. only 100 items once and start several KIO::previewJobs sequentially. However in the worst case KIO::previewJob() might block the application for several seconds if the MIME-type of the passed KFileItems are unknown and e.g. 10000 items are forwarded. So KFileItemModelRolesUpdater will now take care to resolve as many MIME-types as possible until a timeout is reached and will only pass those items to KIO::previewJob(). For huge image folders, where the MIME-type can be determined very fast, this means that the overall time for creating previews will decrease without blocking the application. For "worst case" directories where resolving the MIME-type can get very expensive this approach assures no blocking of the user-interface although the overall time until all previews are generated might slightly increase.
2011-07-30Merged very early alpha-version of Dolphin 2.0Peter Penz
Dolphin 2.0 will get a new view-engine with the following improvements: - Better performance - Animated transitions - No clipped filenames due to dynamic item-sizes - Grouping support for all view-modes - Non-rectangular selection areas - Simplified code for better maintenance More details will be provided in a blog-entry during the next days. Please note that the code is in a very early alpha-stage and although the most tricky parts have been implemented already very basic things like drag and drop or selections have not been pushed yet. Those things are rather trivial to implement but this still will take some time.