┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
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-20Avoid a unnecessary resorting when items are changed, only resort the items ↵Emmanuel Pescosta
when the sorting role value is changed. BUG: 299565 FIXED-IN: 4.11 REVIEW: 111146
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-20Prevent the selection rectangle from being reduced to 0pxEmmanuel Pescosta
width or 0px height, so the selected items can not be accidently unselected when the rectangle width/height becomes 0px. BUG: 320897 REVIEW: 111144 FIXED-IN: 4.10.5
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-20Merge remote-tracking branch 'origin/KDE/4.10'Dawit Alemayehu
2013-06-18Do not use fixed widths for the widgets in the status barFrank Reininghaus
This fixes the problem that the Dolphin window has a rather large minimum size. A side effect of this was that splitting the view could resize the window (because twice the minimum status bar width was needed then). BUG: 319373 REVIEW: 110966 FIXED-IN: 4.10.5
2013-06-18Ensure that the "Sort by Type" setting is respectedFrank Reininghaus
Before this commit, switching from, e.g., "Sort by Name" to "Sort by Type" sometimes had no effect until the view was refreshed. The problem was that the re-sorting was triggered before the type information was actually added to the model. BUG: 310705 BUG: 312014 FIXED-IN: 4.10.5 REVIEW: 111004
2013-06-13Remove trailing white spaceFrank Reininghaus
2013-06-13Fix "unused parameter" warningFrank Reininghaus
We don't need the parameter at all, so let's just remove it.
2013-06-10Merge remote-tracking branch 'origin/KDE/4.10'Frank Reininghaus
2013-06-10Do not rename files unexpectedly when changing the URLFrank Reininghaus
This is the real fix now - note that the last commit 4de9a233642a62ee96bac6031340d3eea21f14f9 was actually the fix for bug 320823. Somehow, I have messed up the local branches in my git respository clone - sorry for the confusion! BUG: 319912 FIXED-IN: 4.10.5 REVIEW: 110908
2013-06-10Do not rename files unexpectedly when changing the URLFrank Reininghaus
If the role editor loses focus, it considers the current renaming operation finished, and tells DolphinView to rename the file. This is a problem when changing the directory, because the URL change happens before DolphinView receives the signal, which results in a file in the new directory being renamed unexpectedly. The solution is to establish the connection to the slotRoleEditingFinished signal only when the "rename inline" editor is opened, and disconnect it when renaming is finished or canceled or the URL changes. BUG: 319912 FIXED-IN: 4.10.5 REVIEW: 110908
2013-06-10Fix Bug 319119 - Dolphin doesn't notice when renaming failedEmmanuel Pescosta
Change the data in the model before the real renaming is done by KonqOperations::rename(), but when the rename operation fails, revert the data changes in the model. BUG: 319119 REVIEW: 110922
2013-06-09Do not delete files when Shift-clicking "Trash"Frank Reininghaus
Thanks to Dawit Alemayehu for making this fix possible with commit 8e023ae9e5051cb7b81af86a178e37c1f2c5da94 ! BUG: 307254 FIXED-IN: 4.11.0
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-06Ignore a changed item if it cannot be found in the modelFrank Reininghaus
This prevents repeated attempts to reload the data for the non-existing item. This was the root cause of bug 320791. Thanks to Hrvoje Senjan and Jekyll Wu for testing the new code and finding this bug! BUG: 320791
2013-06-06Make calls to resolveNextPendingRoles and resolveNextSortRole delayedFrank Reininghaus
This prevents that functions that call these indirectly call themselves recursively and cause trouble. BUG: 320791
2013-06-06startPreviewJob: if items is empty, delay call to slotPreviewJobFinshedFrank Reininghaus
This should prevent that other functions, which start preview jobs, eventually call themselves and thus cause trouble. CCBUG: 320791
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-06-05Reduce KFileItemModel memory usage by making use of implicit sharingFrank Reininghaus
The idea is based on http://milianw.de/blog/katekdevelop-sprint-vienna-2012-take-1 REVIEW: 110686
2013-06-05move focus to another view upon dropWeng Xuetian
When user drag and drop to another splitted view, the view will be activated, thus if user close the split view, the view will be closed, while this is usually the case when user copy file to remote/removable media. REVIEW: 110167 CCBUG: 312834
2013-06-04Bug 196035 - middle clicking on archive files in dolphin does not open them ↵Emmanuel Pescosta
in a new tab When 'browse through archives' is enabled, open archive files like folders on middle clicking, context menu -> new tab action and context menu -> new window action. BUG: 196035 REVIEW: 110487
2013-05-29Dolphin Search: Do not use Nepomuk for hidden foldersVishesh Handa
Nepomuk does not index hidden folders BUG: 318442 REVIEW: 110697 FIXED-IN: 4.11.0
2013-05-29Hide context menu plugins unless enabled by default or by the userFrank Reininghaus
REVIEW: 110685
2013-05-28PlacesModel: Only allow folders to be pinnedVishesh Handa
It makes no sense to pin files. Plus the old PlacesModel from kdelibs had the same behaviour. REVIEW: 110347
2013-05-28PlacesPanel: Do not allow drop events into timeline or search folderVishesh Handa
They are read only. You cannot modify them, so it makes no point showing the "Move/Copy Into" context menu. REVIEW: 110348
2013-05-25set KItemListView palette from scenes first viewThomas Lübking
REVIEW: 110505
2013-05-22Added the "Open in new Tabs" action to the Dolphin Context menu.Emmanuel Pescosta
BUG: 312296 REVIEW: 110371 FIXED-IN: 4.11.0
2013-05-22Filter bar: add a button that prevents clearing if the URL changesStuart Citrin
FEATURE: 256651 FIXED-IN: 4.11.0 REVIEW: 107392
2013-05-22Merge remote-tracking branch 'origin/KDE/4.10'Frank Reininghaus
2013-05-22KFileItemModel::insertItems(): guarantee O(N) run time complexityFrank Reininghaus
This commit prevents repeated insertions of single items into the list m_itemData, which shift all following items by one position and result in O(N^2) worst case complexity for the entire function. Moreover, the hash m_items is updated only for the items starting from the first inserted/removed item to save some superfluous calculations of hash values. REVIEW: 110355
2013-05-22Do not reset the 'isExpanded' state when an expanded folder is refreshedFrank Reininghaus
If an item is moved out of an expanded folder, the model receives the dir lister's refreshItems signal for the folder. The method retrieveData() then updates the folder's properties. This commit makes sure that the 'isExpanded' state is not touched by retrieveData(). A side-effect is that the 'isExpanded' role is not initialized to 'false', but this does not matter because trying to read a non-existing role from the QHash<QByteArray, QVariant> yields a default-constructed QVariant, which evaluates to 'false'. BUG: 299675 FIXED-IN: 4.10.4 REVIEW: 110401
2013-05-22KFileItemModelRolesUpdater: only update the size for changed foldersFrank Reininghaus
When using inotify, we also receive signals for modified files, even if we only ask KDirWatch to watch the directory containing them. In that case, we must not set the size to -1 (which means "unknown number of items" for folders) temporarily, or we end up with an apparent file size of 2^64 - 1 bytes. BUG: 309740 FIXED-IN: 4.10.4 REVIEW: 110428
2013-05-14- Factored out the Delete/Move To Trash action into own class.Dawit Alemayehu
- 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-14Merge remote-tracking branch 'origin/KDE/4.10'Dawit Alemayehu
2013-05-13DolphinSearchBox setReadOnly: Update if either of the parameters changeVishesh Handa
This way when another read only query is added, the internal state is changed and the search label gets updated. REVIEW: 110324 BUG: 315796 FIXED-IN: 4.10.4
2013-05-13Dolphin Places: Make it easier to drag and drop itemsVishesh Handa
When doing a drop, a check is performed to see if it is within x pixels from the top or x pixel from the bottom of the rect. If it is, then the drop is considered a drop between items. This x was fixed to qMax( 4, myStyleOption.padding ) which would generally be 4. This is fine for some cases, but when the rectangle size increases then this 4 pixels is not enough. Hence this 'x' is now being set to 30% of the rectangle height. By default the rectangle height is 20 pixels, so x is now 6 instead of 4 in the default case, which does make it slightly easier. Also, this in-between-items check is only performed when moving from one item to another. This is not good since if you enter the item and the bottom, the indicator is shown, and then as to start moving it up it stops showing, and then it should start showing again as you approach the top edge. Modified the code to run the check on every mouse drag event even if the hovered item has not changed. Both these changes combined make it much easier to drag and drop items. REVIEW: 110342
2013-05-12Make error message translatableFrank Reininghaus
2013-05-12Merge remote-tracking branch 'origin/KDE/4.10'Frank Reininghaus
2013-05-12Hide the message widget when the URL changesFrank Reininghaus
Most error messages are only relevant when trying to open a URL, e.g., they inform the user that opening the URL failed. After the next successful URL change, these errors are not relevant any more. Therefore, it makes sense to hide the message widget automatically to prevent that the user is forced to close it manually. BUG: 312872 FIXED-IN: 4.11.0 REVIEW: 110369
2013-05-12Fix unit test failureFrank Reininghaus
The recent commit 022b564831e2295ee3bb6e53ece53191b40d894a, which added a few source files to kitemlistcontrollertest, caused a crash in that test - an assert was hit because now a different virtual method was called in one place (KStandardItemListView::initializeItemListWidget()), and qobject_cast could not cast the 'item', which is of type KFileItemListWidget, to its base class KStandardItemListWidget. Adding the source file kfileitemlistwidget.cpp fixes this. CCMAIL: [email protected]
2013-05-11Merge remote-tracking branch 'origin/KDE/4.10'Frank Reininghaus
Conflicts: CMakeLists.txt
2013-05-11Update copyright yearFrank Reininghaus
2013-05-10fix building tests under windowsPatrick Spendrin
2013-05-10Don't try to change the icon of the "sort" action menu if it doesn't existDaniel Faust
BUG: 255819 FIXED-IN: 4.10.4 REVIEW: 109966
2013-05-07Dolphin Places: React to Nepomuk system changesVishesh Handa
Reload the places panel when Nepomuk starts up and shutsdown. This way the user does not need to restart Dolphin to see the custom searches and places after Nepomuk switches on. BUG: 304918 REVIEW: 110323
2013-05-05Reimplement handling of Shift while showing menu without KModifierKeyInfoDavid Faure
Finding out whether shift is pressed initially can be done with qApp->keyboardModifiers(), and finding out that the user is pressing or release shift can be done with keyPressEvent/keyReleaseEvent. This required to inherit from KMenu rather than having the KMenu as a member. KModifierKeyInfo is only implemented on X11, so this makes the code more portable. If similar solutions can be found for other users of KModifierKeyInfo, it will be deprecated in KF5. REVIEW: 110303
2013-05-03Remove erroneous double-quotes around %c in Exec lineDavid Faure
2013-05-02Merge remote-tracking branch 'origin/KDE/4.10'Frank Reininghaus