Commit graph

4549 commits

Author SHA1 Message Date
Frank Reininghaus
9d6f50ac50 Connect to the currentDirectoryChanged signal after the shell setup
This fixes the problem that the view URL may be reset to the Home URL
when opening the Terminal Panel while browsing a remote URL. Moreover,
it fixes crashes that can occur when the signal is received during the
shell setup if the DolphinMainWindow does not have a valid
m_activeViewContainer yet.

BUG: 339502
BUG: 340233
REVIEW: 120726
FIXED-IN: 4.14.3
2014-10-23 23:17:43 +02:00
Emmanuel Pescosta
a58f159854 Made the free space indicator and zoom slider a little bit larger. (was reduced by an older commit)
BUG: 339768
FIXED-IN: 4.14.3
2014-10-13 11:53:06 +02:00
l10n daemon script
ca6507b47c SVN_SILENT made messages (.desktop file) 2014-10-12 07:05:59 +00:00
l10n daemon script
df7b18aaae SVN_SILENT made messages (after extraction) 2014-10-12 05:17:04 +00:00
l10n daemon script
a696093fa2 SVN_SILENT made messages (after extraction) 2014-10-09 05:14:24 +00:00
Arjun AK
398162a1be Do not allow files or folders inside trash to be added to dolphin's places panel
REVIEW: 120286
BUG: 339204
FIXED-IN: 4.14.2
2014-09-21 17:16:19 +05:30
Frank Reininghaus
47bd204804 Make it possible to open archives via the command line
This used to work before afcf8961f6 (only
if "Open archives as folder" was enabled in the settings though). The
reason why this commit broke it is that the mime type of a file is not
determined automatically any more before asking
KProtocolManager::protocolForArchiveMimetype for the correct protocol,
so the determination of the protocol may fail.

Keeping the isMimeTypeKnown() check in DolphinView::openItemAsFolderUrl
still makes sense, because it prevents GUI blocking if the user tries
to open many files at the same time.

Therefore, we now call determineMimeType() in
DolphinViewContainer::slotUrlIsFileError(const KUrl&) and then try to
determine the correct protocol and use it to open the archive in the
view, rather than hoping that slotItemActivated(item) will do the right
thing.

BUG: 333078
REVIEW: 119877
FIXED-IN: 4.14.1
2014-09-01 00:06:18 +02:00
Emmanuel Pescosta
dc378935d3 Only keep the active view container connected with the main window, all inactive
view containers are disconnected. Changing the connections is done whenever the
active view has been changed, so we can always guarantee that the active view is
connected.

The problem with restoring saved sessions is, that we create a new view container
in DolphinTabPage::restoreState() when split view was used in the previous session,
but this view container isn't connected to the main window slots because
DolphinMainWindow::connectViewSignals() is not called for this container. This leads
to these strange problems: no context menu, ...

BUG: 338549
REVIEW: 119961
FIXED-IN: 4.14.1
2014-08-31 17:00:10 +02:00
Arjun AK
4290827540 Hide an already visible KMessageWidget message before showing a new one
1. Do some operation that causes the KMessageWidget to show an error message
2. Immediately Repeat the same action.

The user has no way to know whether the error message is from the second operation or
is a leftover from the first one. By hiding the widget first and then showing it using
animatedShow(), the user can clearly see that a new message was generated. Also once the
directory successfully loads, the widget should be hidden.

BUG: 323077
FIXED-IN: 4.14.1
REVIEW: 119401
2014-08-22 18:42:50 +05:30
Mathieu Tarral
b73aeb4598 Fixes display issues of Dolphin statusbar widgets when a high DPI value is used (>= 196 for example).
BUG: 334271
REVIEW: 119701
FIXED-IN: 4.14.1
2014-08-14 18:12:08 +02:00
l10n daemon script
c7e300db90 SVN_SILENT made messages (after extraction) 2014-08-13 05:58:14 +00:00
Frank Reininghaus
bf1ac8ee9b Always clear DolphinView's m_currentItemUrl member in updateViewState()
Before this patch, we still kept the URL in m_currentItemUrl if the URL
was not found in the model. This could cause problems the next time
updateViewState() was called, because the current index would then be
set to 0, which could cause other issues.

For example, all items between the first item in the view and a folder
which was expanded in Details View could be selected.

In principle, it is possible that updateViewState() is called multiple
times if many large files are being pasted in the view, but since the
item which should be made the current item (and which the view should
be scrolled to) should always be the first pasted item, this change
will most likely not cause any other problems.

BUG: 329377
REVIEW: 119703
FIXED-IN: 4.14.0
2014-08-12 09:17:41 +02:00
Frank Reininghaus
4ed068ffff Fix crash when restoring a session stored with Dolphin 4.13 or earlier
Since DolphinTabPage::saveState() and
DolphinTabPage::restoreState(const QByteArray& state) save and restore
the state of each tab in a different format than DolphinMainWindow did
before the refactoring, we can run into problems: the first time a user
logs into a session that has Dolphin 4.14, Dolphin might read session
data that does not contain the QByteArray that DolphinTabPage wants to
read the data from.

In restoreState, isSplitViewEnabled will thus have the value false, and
no secondary view will be created. Later on, m_primaryViewActive will
also be set to false, but the else branch of the following
"if (m_primaryViewActive)" then tries to activate the secondary view,
which does not exist -> we get a crash.

The easiest solution is to not restore the tab state if no session data
in the new format is found.

BUG: 338187
REVIEW: 119718
FIXED-IN: 4.14.0
2014-08-12 09:08:30 +02:00
l10n daemon script
013b2346f5 SVN_SILENT made messages (after extraction) 2014-08-10 05:48:43 +00:00
Emmanuel Pescosta
18a976c435 Fix wrong text eliding in some corner cases.
BUG: 337104
FIXED-IN: 4.14.0
REVIEW: 119546
2014-08-04 19:43:07 +02:00
Michael Reeves
a31b836479 Fix warning on launch "QPixmap::scaled: Pixmap is a null pixmap"
If Dolphin is launched with the information panel on and set to display
previews, PixmapViewer::paintEvent is called three times before any
pixmap is set. Each time the above warning message is output.

REVIEW: 119553
FIXED-IN: 4.14.0
2014-08-03 10:51:41 +02:00
l10n daemon script
3d076f7c5e SVN_SILENT made messages (.desktop file) 2014-08-03 07:30:09 +00:00
l10n daemon script
2b1267d71e SVN_SILENT made messages (after extraction) 2014-08-03 05:46:42 +00:00
l10n daemon script
09ab78a8bb SVN_SILENT made messages (after extraction) 2014-08-02 05:39:42 +00:00
l10n daemon script
39e1197536 SVN_SILENT made messages (after extraction) 2014-07-31 05:55:50 +00:00
l10n daemon script
d1f12e1778 SVN_SILENT made messages (after extraction) 2014-07-27 05:45:07 +00:00
l10n daemon script
c2f8389acb SVN_SILENT made messages (after extraction) 2014-07-21 05:43:56 +00:00
l10n daemon script
603e1775c8 SVN_SILENT made messages (.desktop file) 2014-07-16 08:22:33 +00:00
Frank Reininghaus
7cb193de10 Fix regression concerning the "Places" selector in the location bar
This commit ensures that the selector is visible in all location bars
if and only if the Places Panel is hidden. It fixes a regression caused
by commit 6a98d83312.

BUG: 337389
FIXED-IN: 4.14.0
REVIEW: 119238
2014-07-16 09:12:16 +02:00
Emmanuel Pescosta
00754dda30 Avoid opening unused tabs which are closed again after startup has finished (when directory/file urls are given)
Instead of always opening a new tab with the home url and closing it again when directory/file urls are passed on,
we now use the given directories/files directly to open new tabs on startup.

Makes the code easier and we can reuse openDirectories/openFiles in future (if needed).

REVIEW: 118966
2014-07-08 19:16:17 +02:00
l10n daemon script
c25b501898 SVN_SILENT made messages (after extraction) 2014-07-06 01:33:37 +00:00
l10n daemon script
baeb21e96e SVN_SILENT made messages (after extraction) 2014-07-05 01:36:55 +00:00
Emmanuel Pescosta
b0fb590ebd Implemented DolphinTabPage class to encapsulate the split view handling from DolphinMainWindow.
The signal activeViewUrlChanged in DolphinTabPage is currently unused, but we need it later when
we implement the tab widget and tab bar.

DolphinTabPage has saveState/restoreState which are using a QByteArray instead of the KConfigGroup to
be more generic.

REVIEW: 118964
2014-07-04 17:16:03 +02:00
Frank Reininghaus
20e13c31df Improve drawing selected items in Compact/Details View and Places Panel
This commit removes the icon tinting for the selected item in Compact
and Details View, and extends the selection rectangle such that it
includes the icon area as well. The icon tinting can be disturbing, and
having a selection rectangle that only includes the text can look a bit
strange, especially in the Places Panel.

BUG: 304643
REVIEW: 119018
FIXED-IN: 4.14.0
2014-07-04 00:49:46 +02:00
Frank Reininghaus
4d8f89f55a Remove current item highlighting in the Places Panel
In the Places Panel, there is always exactly one selected item, which is
equal to the current item. Since the selected item is highlighted by
drawing its background in a different color, it is not really necessary
to highlight additionally that it is the current item.

This is achieved by removing the calls to
KItemListWidget::setCurrent(true) from KItemListView. The "current"
information in the widget is only used for deciding if the "current item
highlighting", like an underline in Oxygen, should be drawn.

The motivation for this change is that I have seem some complaints about
the "current item" highlighting, which can be even more distracting with
non-Oxygen styles.

REVIEW: 119019
2014-07-04 00:42:38 +02:00
l10n daemon script
1e22db8ba5 SVN_SILENT made messages (after extraction) 2014-07-03 01:30:12 +00:00
Arjun AK
97da9f9a5c Fix typo: chnage -> change
REVIEW: 119084
GIT_SILENT
2014-07-02 16:17:18 +05:30
l10n daemon script
f57f4e1a01 SVN_SILENT made messages (after extraction) 2014-06-30 01:42:40 +00:00
l10n daemon script
74d8522ac6 SVN_SILENT made messages (after extraction) 2014-06-29 01:36:02 +00:00
l10n daemon script
caadc66bd8 SVN_SILENT made messages (after extraction) 2014-06-28 01:32:56 +00:00
l10n daemon script
e99e511236 SVN_SILENT made messages (after extraction) 2014-06-27 01:41:26 +00:00
Emmanuel Pescosta
4a40a2c66e Add AppStream meta data file (imported from https://github.com/ximion/kde-appstream-metadata-templates/blob/master/apps/dolphin.appdata.xml)
Thanks to Matthias Klumpp for providing this file!

REVIEW: 118701
2014-06-25 14:31:15 +02:00
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
efa19caa46 Implement TODO concerning changed roles
When emitting the itemsChanged signal in KFileItemModel::setRoles,
use the changed roles in the argument of the signal.

A warning message which was related to this issue was removed in
7a83252e0d

REVIEW: 118815
2014-06-19 20:35:22 +02:00
Frank Reininghaus
7a593fc92b Merge branch 'KDE/4.13' 2014-06-19 20:32:30 +02:00
Frank Reininghaus
a8e86cf7ef Remove confusing warning message
The message
"TODO: Emitting itemsChanged() with no information what has changed!"
is not helpful for the user.

The implementation of the TODO will be done in master, see
https://git.reviewboard.kde.org/r/118815/

CCBUG: 336174
2014-06-19 20:27:58 +02:00
Frank Reininghaus
9dc1513f8b Do not crash if QApplication::clipboard()->mimeData() is a null pointer
This removes the remaining unchecked accesses to the clipboard mime
data after commit 7828b057da. According
to a bug report, it can be a null pointer on Wayland.

BUG: 335053
REVIEW: 118649
2014-06-12 08:37:11 +02:00
l10n daemon script
3b119c4ff9 SVN_SILENT made messages (.desktop file) 2014-06-09 04:33:35 +00:00
Frank Reininghaus
ea713e7a79 Merge remote-tracking branch 'origin/KDE/4.13' 2014-06-05 08:54:06 +02:00
Frank Reininghaus
e07468c784 Separate width and height info in the layouting code
By separating the width and height info, we can save some unnecessary
overhead in terms of memory and CPU cycles, and make the calculation of
the height of a row (or the width of a column in Compact View) a bit
simpler.

To achieve this, this patch extends the concept of "logical rows"
(which are actually columns in Compact View) to "logical width" and
"logical height" (which is the actual height and width, respectively, in
 Compact View). The distinction between rows/columns and "logical"
rows/columns may be a bit confusing, but the confusion is already in the
current code, and I hope that it will be mitigated a bit by prefixing
the corresponding variables with "logical".

REVIEW: 118454
2014-06-05 08:50:52 +02:00
Frank Reininghaus
352f644159 Fix possible crash if a kioslave adds multiple items with the same URL
When opening the URL "man:", there are multiple items with the same
name (for example, _exit is shown twice here). When opening a new tab,
the kioslave reports some items as deleted (I have not quite understood
why). The problem is that it reports some of the duplicate items twice
in the list of deleted items. This confused KFileItemModel and
corrupted the internal data structures, and finally, caused a crash.

The fix is to remove all duplicates from
KItemRangeList::fromSortedContainer(const Container& container).

New unit tests included.

BUG: 335672
REVIEW: 118507
FIXED-IN: 4.13.2
2014-06-04 21:49:02 +02:00
Frank Reininghaus
90e27974a4 Merge remote-tracking branch 'origin/KDE/4.13' 2014-06-01 14:48:30 +02:00
Emmanuel Pescosta
96c34cfe65 Fix Bug 334696 - File/directory icons/names move to the right when opening/refreshing contents of Dolphin
Take the scrollbar spacing into account.

BUG: 334696
REVIEW: 118319
FIXED-IN: 4.13.2
2014-05-29 15:33:03 +02:00
Emmanuel Pescosta
fb69036dbd Use "selectionToggleRect().contains(pos)" instead
of "m_selectionToggle->contains(pos)" in
KItemListWidget::setHoverPosition(const QPointF& pos).

This wrong check was accidentally introduced by
commit 24326d4473

BUG: 299328
REVIEW: 118320
FIXED-IN: 4.13.2
2014-05-29 15:31:24 +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