Commit graph

126 commits

Author SHA1 Message Date
Nate Graham
4937992e93 When restoring former window state, append any URLs passed as args
Before, when Dolphin was closed but opened with any URLs, it would open
a new window with only those URLs, rather than restoring any window
state (if the user has this feature enabled).

Now, Dolphin will first restore state (if enabled) and then append any
URLs, rather than replacing the existing set of URLs.

The "new instance" case was previously handled automatically and now
needs to be explictly handled by checking for it, to make sure that new
instances give you a clean window rather than a state-restored window.

BUG: 427274
FIXED-IN: 20.12
2020-10-11 17:02:49 +00:00
Elvis Angelaccio
954e8c4790 Output of licensedigger + manual cleanup afterwards.
Unfortunately licensedigger does not strip the trailing * characters.
While at it, use a common style for all source files.
2020-08-25 17:07:38 +00:00
Antonio Rojas
ce981c3e4a Fix "Show folders, tabs, and window state from last time" feature
We were using the DBus interface before declaring it, oops.

BUG: 422300
FIXED-IN: 20.08.0
2020-07-19 08:03:56 -06:00
Nate Graham
caf2fe1c43 Add an option to show tabs from last time when Dolphin starts
Summary:
All modern web browsers offer a function to show tabs from last time when a browser starts, and many apps today
restore their prior state when they're launched. This patch implements thatfunctionality as an option and turns it on by default.

The settings window is accordingly adjusted to be clear about what applies when:

{F7681752}

FEATURE: 413564
FIXED-IN: 20.08.0

Depends on D25106
Depends on D25219

Test Plan:
With the new setting turned off:
- No behavioral changes at all

With the new setting turned on:
- When launched from the GUI or CLI without any URLs, dolphin restores session
- When rebooting with Dolphin open, it restores session normally after the system comes back (i.e. no behavioral change here)
- When launched with URLs, Dolphin window is opened showing those URLs instead of restoring session
- When Dolphin is already running and a new window is opened, that new window shows a single tab with the same URL as was visible in the previously-open Dolphin instance (i.e. no behavioral change here)
- "Open Containing folder" functionality in other apps works regardless of whether or not Dolphin is running

Reviewers: #dolphin, #vdg, feverfew, meven, elvisangelaccio, ndavis

Reviewed By: #dolphin, #vdg, feverfew, elvisangelaccio, ndavis

Subscribers: davidedmundson, ndavis, intika, feverfew, kfm-devel, ngraham, broulik, #dolphin

Tags: #dolphin

Differential Revision: https://phabricator.kde.org/D11382
2020-04-26 12:14:56 -06:00
Elvis Angelaccio
fa806d48da Exclude daemonized processes from Dolphin::attachToExistingInstance()
Summary:
`dolphin --daemon` does not have the `/dolphin/Dolphin_1` dbus path,
because it doesn't have any DolphinMainWindow.

Instead of working around this issue (as we did in D21666 and D25510),
just exclude these processes from the list of dbus instances checked by
`Dolphin::attachToExistingInstance()`.

CCBUG: 408244

Test Plan: Same test plan as in D21666 and D25510

Reviewers: #dolphin

Subscribers: kfm-devel

Tags: #dolphin

Differential Revision: https://phabricator.kde.org/D26213
2020-03-16 22:38:40 +01:00
Nate Graham
2310e33b7a Correct invalid homepage URL
BUG: 414901
FIXED-IN: 19.12.1
2019-12-06 12:41:33 -07:00
Christoph Cullmann
0caab3c0a2 properly enable hi-dpi support 2019-10-13 18:33:53 +02:00
Alexander Saoutkin
56b3059f77 Making sure that DBus objects are all created before the service
Summary:
Currently the DBus service is created before the MainWindow DBus object is
created. This can cause hangs if another service makes calls to a a method
in an object that's not been initialised, when the service is already published.
This patch defers the creation of the service until all DBus objects are
created.

Test Plan:
Tested in KDevelop. Have "open new folders in tabs" feature enabled.
Open several folders with Dolphin at once. Before this patch
there would be noticeable hanging. With this patch all tabs instantly open with
no hanging.

Reviewers: elvisangelaccio, ngraham

Reviewed By: elvisangelaccio

Subscribers: kfm-devel

Tags: #dolphin

Differential Revision: https://phabricator.kde.org/D23672
2019-09-02 23:13:53 +02:00
Alexander Saoutkin
91709cb6fe Fixing bug where split view opens with no URLs
Summary:
BUG: 411193
FIXED-IN: 19.08.1

Test Plan:
Reproduce steps as given in bug report. Observe the exected result.
Used qdbusviewer and ShowFolders method to observe that no regressions occured
in the "open new folders in tabs" feature.

Reviewers: elvisangelaccio, ngraham

Subscribers: kfm-devel

Tags: #dolphin

Differential Revision: https://phabricator.kde.org/D23445
2019-08-25 10:36:07 -06:00
Alexander Saoutkin
d2506ffa63 Open new instance of Dolphin if no URLs are given
Summary:
BUG: 408387
BUG: 408244
FIXED-IN: 19.08.0

Currently Dolphin only opens a new instance of itself in the following two scenarios:
1. No other Dolphin instances ( D21666 deals with not matching daemonized instances) are currently running.
2. A new instance is explicitly asked for via:  `dolphin --new-window`

A third scenario is needed to fix this bug:
3. If no URLs are passed in as arguments then open a new instance.

This patch adds this third scenario.

Test Plan:
STEPS TO REPRODUCE
1. Open Dolphin
2. Right-click on Dolphin's Task Manager Entry and click "Start New Instance"
3. A new instance is created.

As my system stuff is not built on master I am unable to replicate the bug (and can't confirm whether this fixes it), hence I'll rely on @ngraham to confirm whether this patch fixes the issue.

Reviewers: ngraham, elvisangelaccio

Reviewed By: ngraham, elvisangelaccio

Subscribers: elvisangelaccio, ngraham, kfm-devel

Tags: #dolphin

Differential Revision: https://phabricator.kde.org/D21691
2019-06-22 15:47:00 +02:00
Alexander Saoutkin
27e3907a3d Open externally called files/directories in new tabs
Summary:
FEATURE: 183429
FIXED-IN: 19.08.0
GUI: new cli argument --new-window

Externally called files/directories are opened in a a new tab of an instance of Dolphin that already exists. If any of the given URIs are already open in a tab, then those tabs are activated instead of a new tab being opened.  If there is no instance then the files/directories are opened in a new window. The newly opened file/directory has its tab activated, and consequently, the window is also activated.

When the user clicks "Open In New Window" or "Detach Tab", the files/directories are opened in a new window.

Test Plan:
[Manual]
Before testing, set the default file manager in system settings as the newly built Dolphin executable.
One must also include the new dolphin executable in the $PATH, otherwise some functions will attempt to open the system dolphin instead of the new one.

Furthermore, running two different versions of Dolphin (in particular, where one does not have this patch included) can result in bugs appearing, in particular, new tabs not opening as old instances will not recognise the DBus commands sent to it. However, I see no reason why a user will have two different versions of Dolphin (apart from people like us :D).

Open directories with the help of auxillary programs (i.e. a browser). The files/directories should appear in a new window if an instance does not exist. If an existence already exists, then a new tab should be opened and activated in that instance and the window activated.
Use QDBusViewer to open folders/items by calling the ShowFolders/ShowItems methods in org.freedesktop.FileManager1 of the Dolphin instance.
When a user chooses to "Open In New Window"/"Detach Tab" then the files/directories should be opened in a new window.

Reviewers: #dolphin, elvisangelaccio

Subscribers: zzag, dfaure, fvogt, fikrim, magar, fbg13, davidedmundson, kwin, ngraham, elvisangelaccio, anthonyfieroni, kfm-devel

Tags: #dolphin

Differential Revision: https://phabricator.kde.org/D16648
2019-05-30 22:40:08 +02:00
Friedrich W. H. Kossebau
1cde03cdfe Use https over http for homepage url 2019-01-04 22:22:07 +01:00
Elvis Angelaccio
23350914f6 Update copyright year in KAboutData
GIT_SILENT
2018-11-11 19:00:24 +01:00
Elvis Angelaccio
e87771abec Update maintainership in KAboutData
As discussed on kfm-devel and agreed upon with Emmanuel.
2018-11-04 21:21:19 +01:00
Elvis Angelaccio
9be80423dc Drop redundant setAttribute for WA_DeleteOnClose
Every KMainWindow (which DolphinMainWindow inherits) already has this
attribute set.
2018-07-29 23:37:34 +02:00
Laurent Montel
26e629a78e Do not duplicate work of KAboutData::setupCommandLine() 2018-06-19 08:57:39 +02:00
Nathaniel Graham
40453cb627 Re-allow running Dolphin as the root user (but still not using sudo)
Summary:
Prohibiting the use of Dolphin as the actual root user (not using `sudo` or `kdesu`) breaks legitimate use cases for using the root user. An example is Kali, a distro that logs in as the root user by default as a deliberate design choice.

In such an environment, there is no additional security vulnerability beyond what you're already potentially exposing yourself to. So, let's re-enable it.

BUG: 387974
FIXED-IN: 18.08.0

Test Plan:
- Log in as normal user and run `sudo dolphin`: you get an error message.
- Log in as normal user and run `kdesu dolphin`: you get an error message.
- Log in as the root user and run dolphin normally: it works.

Reviewers: markg, elvisangelaccio, #dolphin

Reviewed By: markg

Subscribers: chinmoyr, cfeck, elvisangelaccio, mmustac, Fuchs, markg, graesslin, nicolasfella, zzag, kfm-devel, emmanuelp

Tags: #dolphin

Differential Revision: https://phabricator.kde.org/D12795
2018-05-31 12:18:18 -06:00
Roman Inflianskas
48b58f830a Remove unused #include
Summary: I used CLion inspection to hunt all unused #include

Reviewers: #dolphin, elvisangelaccio, markg

Reviewed By: #dolphin, elvisangelaccio, markg

Subscribers: bcooksley, markg, elvisangelaccio, #dolphin

Differential Revision: https://phabricator.kde.org/D10985
2018-03-04 21:00:47 +03:00
Roman Inflianskas
848abc5922 Remove unused #include
Summary: I used CLion inspection to hunt all unused #include

Reviewers: #dolphin, elvisangelaccio, markg

Reviewed By: #dolphin, elvisangelaccio, markg

Subscribers: markg, elvisangelaccio, #dolphin

Differential Revision: https://phabricator.kde.org/D10985
2018-03-03 17:08:01 +03:00
Emmanuel Pescosta
0bdd8e0b05
Disallow executing Dolphin as root on Linux
Basically a copy of commit kate/9adcebd3c2e476c8a32e9b455cc99f46b0e12a7e which was
written by Martin Grässlin.
2017-02-19 02:39:52 +01:00
R.J.V. Bertin
ded92cc32a Use the current window icon in QIcon::fromTheme()
This prevents removing the application icon when icon lookup fails, on
Mac or MS Windows.
2016-11-22 17:55:34 +01:00
Frederik Schwarzer
1649a0f890 Change wording of Directory to Folder. 2016-05-05 13:43:02 +02:00
Artur Puzio
5593c252e8 [CLAZY] Fixed all level 1 and level 2 warnings with small exceptions
REVIEW: 126771
2016-03-16 22:17:37 +01:00
Frank Reininghaus
adb7c47885 Update copyright year 2016-01-14 20:45:49 +01:00
Albert Astals Cid
d00b531c74 Call KLocalizedString::setApplicationDomain("dolphin");
dolphin is using
   -DTRANSLATION_DOMAIN=\"dolphin\"
that is wrong for applications, apps need to use
   KLocalizedString::setApplicationDomain
since that makes some other things like the transltators tab in the about
dialog show.

I have not removed -DTRANSLATION_DOMAIN=\"dolphin\" because on the other hand
this code is also a library (i.e. the dolphin kpart).

The "being pedandly correct" fix would be using -DTRANSLATION_DOMAIN=\"dolphin\"
only to compile the files that are part of the kpart but that's prone to
break at some point and using both KLocalizedString::setApplicationDomain and
-DTRANSLATION_DOMAIN does not create any problem so i went that route

CCMAIL: kfm-devel@kde.org
2015-11-29 19:19:33 +01:00
Andreas Cord-Landwehr
3c09528f3c Enable KCrash crash handler. 2015-11-14 22:37:40 +01:00
Emmanuel Pescosta
5dd5eaf08d Allow home directories with non-local file paths.
Paths like file:/home/me work now instead of showing
an error message.

BUG: 352743
BUG: 353550
FIXED-IN: 15.08.3
REVIEW: 125586
2015-10-21 13:45:45 +02:00
Ragnar Thomsen
7d1a054267 Enable automatic update of version number
Use CMake variables autoupdated by release script. Dolphin version is
automatically updated to KDE Applications version.
2015-07-29 22:54:54 +02:00
Emmanuel Pescosta
06f2cd58b8 Reorder code in main.cpp ("cluster definitions and setters") 2015-04-27 13:01:18 +02:00
Emmanuel Pescosta
5acfb27760 Simplify startup split view handling
* Instead of setting and resetting GeneralSettings's split view option, just pass it on to openFiles/openDirectories.
* Require at least one url in openFiles/openDirectories

REVIEW: 123395
2015-04-27 12:55:53 +02:00
Ashish Bansal
7042c6c289 Add dbus interface to dolphin
Implemented org.freedesktop.FileManager1 dbus interface in dolphin
http://www.freedesktop.org/wiki/Specifications/file-manager-interface/

REVIEW: 123313
BUG: 343016
2015-04-22 18:59:39 +05:30
David Edmundson
172d41f9da Enable high DPI pixmaps in Dolphin 2015-03-25 18:31:39 +01:00
Emmanuel Pescosta
8a7d9b6d2c Bump the Qt version to 5.4 and the KF5 version to 5.7
Added all required components

Reviewed-By: David Edmundson
2015-02-25 21:46:49 +01:00
Hrvoje Senjan
f6b4f56216 Fix build on Jenkins (or with BUILD_TESTING=ON) 2015-02-24 17:07:55 +01:00
Luca Beltrame
f8d8256cbb Fix the build temporarily
The port of Dolphin to categorized logging created errors in one
specific point only, in main.cpp:

 undefined reference to `DolphinDebug()'

 I couldn't spot any obvious error, so for now I did it the bad way
 (warnings should not be commented out!) to keep it building while a
 real solution is found.

 CCMAIL: emmanuelpescosta099@gmail.com
2015-02-24 14:14:36 +01:00
Emmanuel Pescosta
169cca55b9 Replace kDebug/kWarning by categorized logging (org.kde.dolphin) 2015-02-24 13:07:35 +01:00
Arjun AK
2305e34cc3 Assume links passed via cmdline args are local files
If not, when the user types 'dolphin nonexistantfile' he will be
taken to 'http://nonexistantfile'

BUG: 343906
2015-02-10 11:21:53 +05:30
Arjun AK
b86d0def39 Construct URLs passed via cmdline args using QUrl::fromUserInput()
Otherwise user will have to type "dolphin file:///tmp" instead of
"dolphin /tmp"

REVIEW: 122475
BUG: 343906
2015-02-09 18:15:37 +05:30
Montel Laurent
85cc0e78c7 Migrate settings 2015-02-06 09:32:39 +01:00
Emmanuel Pescosta
1b3ea64abb Add dolphin dbus service 2015-02-04 10:29:33 +01:00
Mathieu Tarral
c725848709 Port Dolphin away from KApplication, KCmdLineArgs and K4AboutData 2015-02-04 10:22:03 +01:00
Andrius da Costa Ribas
e1789b559e Fix Exports.
REVIEW: 121078
2014-11-20 01:06:58 -02:00
Montel Laurent
31a0c4fbd5 Fix includes 2014-10-18 14:42:41 +02:00
Frank Reininghaus
01e4f60a09 Merge remote-tracking branch 'origin/master' into frameworks
Conflicts:
	dolphin/src/main.cpp
	kdepasswd/kcm/kcm_useraccount.desktop
	plasma/applets/folderview/folderview.cpp
2014-10-16 20:36:49 +02:00
Frank Reininghaus
d98c61abf5 Update "About" dialog after maintainership change
See http://lists.kde.org/?t=140990649300001&r=1&w=2

REVIEW: 120608
2014-10-16 20:19:59 +02:00
Frank Reininghaus
470e305be4 Change the Dolphin version in frameworks to 4.60
Since the KF5 libraries and the applications will not have a
synchronized release schedule any more, it does not make sense to
continue using KDE_VERSION_STRING as the Dolphin version.
2014-06-04 22:03:08 +02:00
Alex Richardson
2f045c6010 Allow compiling Dolphin with KF5
This does not work properly yet, there are probably quite a few bad signal/
slot connections due to KUrl -> QUrl. However dolphin starts without
crashing.

Accessibility is not ported since that changed quite a lot from Qt4 -> Qt5
and I have no idea how it is supposed to be used.

This is the first commit for review 117395
2014-05-05 23:05:13 +02:00
Frank Reininghaus
ace34ac134 Update copyright year 2014-01-12 16:56:09 +01:00
Frank Reininghaus
559fdae18f Use the KDE SC version also as the Dolphin versions
This has some advantages:

(a) The version actually changes for every bug fix release, making it
    easier to find out which version a bug reporter has used.

(b) No changes in Dolphin's source code are required to keep the version
    always up to date.

(c) It is more transparent for users because there are not two different
    versions any more.
2013-06-26 21:24:15 +02:00
Frank Reininghaus
f9990aff6a Update copyright year 2013-05-11 18:44:21 +02:00