Commit Graph

105 Commits

Author SHA1 Message Date
hjk
e109b731ad Utils: Rename FilePathList to simply FilePaths
The exact storage type does not really matter here.

Change-Id: Iefec40f0f5909c8e7ba3415db4a11962694e1b38
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-12-18 08:43:18 +00:00
hjk
d3b2c01c11 Utils: Move FileUtils::resolvePath to FilePath
In line with the general move toward use of FilePath nowadays.

Change-Id: I1c50e1479f7d9100ff8ded3ce3c22dd82b7fe6aa
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-12-05 08:38:03 +00:00
Cristian Adam
8ee22dd597 CMakeProjectManager: Fix clang code model when CMake PCHs are used
CMake gives the path to the cmake_pch.h[xx] file as relative path
to build directory. Making it absolute fixes the code model.

Fixes: QTCREATORBUG-22888
Change-Id: I2fdc080be779f22b737788be2074254290994aaa
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2019-10-22 08:12:26 +00:00
hjk
ddf0dd8734 Utils: Add a FilePath::isDir() convenience function
Change-Id: I1df0ee1b136299ae6e4f2e5bd0bdc24bfeca33dd
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-09-11 12:46:10 +00:00
hjk
e027ed5e96 Utils: Split FilePath::fileName
Into the regular case, and a fileNameWithPathComponents() function
handling the rarely used case with argument.

This saves a few cycles in the regular case and makes the function
usable by member function pointer in e.g. Utils::transform.

Change-Id: Ic4469198c3f8a44f59e50d70e67b864d876700d5
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-08-14 09:40:24 +00:00
Frederik Schwarzer
4ca3bd4d0f check if Android sdk folder is writable
Fixes: QTCREATORBUG-21943
Change-Id: Ic20ed4c24c567b0b08269b7ad07014eb4248b214
Reviewed-by: hjk <hjk@qt.io>
2019-08-13 21:49:18 +00:00
hjk
a460fa3152 Utils: Register CommandLine
Needed e.g. in VCS support.

Change-Id: I3a9d64526bc0bf60a77ab154408dfec94cc6ba75
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-07-31 07:58:42 +00:00
hjk
44acfc0702 Utils: Drop transitional FileName alias for FilePath
Transition is over...

Change-Id: Iacaccead238130c8fdb347e172189ecc82b33401
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-07-24 07:31:50 +00:00
hjk
fa81f76237 Utils: Move meta char policy handling from FilePath to ConsoleProcess
Currently the only place that's using it and the scope is much smaller.

Change-Id: I1a43d14f0e2c69a16f76e6f83b82436bbeeac1c9
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-07-23 16:03:02 +00:00
hjk
8b72e92167 Utils: Add CommandLine convenience constructors
... taking a QString for the executable.

This weakens the very explicit QString -> FileName conversion via the
named constructors for the special case of constructing a CommandLine.

I think that's worthwhile here, as it reduces the noise on the caller
site under circumstance where the nature of the thing is obvious.

Change-Id: I27b4a73639728893d053b2e7ba65cb745f0ffe83
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-07-23 15:51:45 +00:00
Eike Ziller
5455234308 Merge remote-tracking branch 'origin/4.10'
Conflicts:
	src/libs/utils/consoleprocess.h

Change-Id: I771630cb4dc60a9e87e9d30d6295040c27348d8c
2019-06-20 11:03:05 +02:00
Eike Ziller
917636b88b Merge remote-tracking branch 'origin/4.10'
Conflicts:
        src/libs/utils/consoleprocess.h
        src/libs/utils/consoleprocess_unix.cpp
        src/libs/utils/consoleprocess_win.cpp
        src/plugins/projectexplorer/devicesupport/sshdeviceprocess.cpp
        src/tools/clangrefactoringbackend/source/symbolscollector.cpp
        tests/unit/mockup/projectexplorer/project.h

Change-Id: I8d10f26b9bcb54829ba31cdc2272885691df1e16
2019-06-18 12:30:55 +02:00
hjk
611e1ea837 Utils: Encourage marking of raw command line parameters
Change-Id: Id66ac07732c66ab8c1232fe1f58042de8a61abb0
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-06-06 12:22:47 +00:00
hjk
772b48797d Utils: Add a CommandLine::splitArguments() convenience function
... and use it from within new SynchronousProcess functions
taking CommandLine arguments.

Change-Id: I5d7f83727cbb22f03b1a79b1645db95514c66033
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-06-06 08:42:06 +00:00
hjk
c7e2dc97e1 Utils: Pass an optional OsType parameter to CommandLine::addArg
... and extend the idea to addArgs(list)

Change-Id: Ia5423ee5ab96835b4adc23b72749e9c13892ee83
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-06-05 05:43:02 +00:00
hjk
959fec76dc Utils: Move CommandLine to fileutils.{cpp,h}
Causes less #include hassle when using downstream instead of
command/argument pairs.

Change-Id: I0fa0d016374df0b8e0a22f3786623652af684d36
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-06-03 12:32:07 +00:00
hjk
613d2e7d23 Utils: Remove rarely used FilePath constructor
Not much benefit interface-wise.

Change-Id: I0e605ec235e8072efcbf7e777cf7e8f8ee5e0799
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-05-28 14:05:51 +00:00
hjk
473a741c9f Utils: Rename FileName to FilePath
More in line with QFileInfo terminonlogy which appears to be
best-of-breed within Qt.

Change-Id: I1d051ff1c8363ebd4ee56376451df45216c4c9ab
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-05-28 12:23:26 +00:00
hjk
f7d224bf58 Utils: Remove now-unused FileName::appendPath()
Change-Id: I9d429a1f60930e27e3926e1242114bed3485f000
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-05-27 12:22:08 +00:00
hjk
535f0da977 Utils: Make FileName::shortNativePath a member
Change-Id: If1ab02ae9dc7efb97792cdf3bbdce3bba18b3e3d
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-05-20 13:07:38 +00:00
hjk
c04370aa26 Utils: Make FileName::isFileNewerThan a member
Easier to discover and more compact in use.

Change-Id: I93dae0570a1dfded4d40dd6ae69b99fe82e3788f
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-05-20 13:06:06 +00:00
hjk
36daca80f3 Utils: Make FileName::canonicalPath a member
Change-Id: I8d7450dec5c4c14ae3e007d1d66f1a9c3c98f807
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-05-20 11:06:12 +00:00
hjk
c238fc88b1 Utils: Make FileName hold an QUrl optionally
This is meant to be helpful to piggy-back device information
in situations where the file resides on a remote file system.

The approach taken effectively duplicates the path data of the
url if the url constructor is actually used, but does not rely
on lossless path/fromPath conversions as it leaves the non-url
code paths unaffected in all situations.

The total overhead is deemed acceptable as the common use case
only default-constructs the m_url member which only sets a
pimpl nullptr.

Change-Id: Ie441cb1355ce086507333c31c7356ae5e6d10b96
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-05-17 08:35:18 +00:00
hjk
d1f9e466da Utils: Introduce a non-mutating FileName::pathAppended
... and start using it. The plan is to replace all appendPath() uses.

Change-Id: I555bcfa742b99b0951b98b0c0e707422c348fadb
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-05-15 11:45:24 +00:00
hjk
f99d69ee43 Utils: Replace mutating FileName::appendString
... by a non-mutating .stringAppended, doing the same.

Change-Id: I7adb6cae3415942cc9a80088bd75cda9d577d4a5
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-05-15 07:42:59 +00:00
hjk
648f983f49 Utils: Use data member instead of inheritance in FileName
Change-Id: Ib0a9889dfa34ea877ee413881e87ab12c3a54956
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-05-13 14:57:49 +00:00
hjk
8b532c2cc5 Utils: Replace FileName::FileName(QFileInfo) by a named constructor
More consistent with the fromString case and avoiding false
conversions QString -> QFileInfo -> FileName in case the
inheritance of QString suddenly disappears.

Change-Id: Ib14646ab1a660fd45dd1ea6862a0b5faa52ad0e3
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-05-13 11:33:33 +00:00
hjk
dd304fc824 Utils: Remove FileName::isNull
... and its uses in order to shrink the FileName interface.

Change-Id: I4b9a229d98ad53c4f189e381c89241981ddbed2e
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-05-13 11:12:09 +00:00
hjk
88c495976c Utils: RemoveFileName::{size,count,length}
Use .toString().{size,count,length} instead.

Change-Id: Ib697155f441a8297fb179921bcd3397719a44073
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-05-10 12:36:27 +00:00
hjk
cf6421d3d1 Utils: Remove unused FileName::chop
It's unused, and non-const, so not nice-to-have in the url-using case.

Change-Id: I5ec7d06e74b20b22a2fd8467222a135a6dcce814
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-05-10 09:20:53 +00:00
Orgad Shaneh
24ec0b7708 Utils: Detect hardlinks also on Windows
Believe it or not, they exist :)

Git for Windows installs all its exectables as hardlinks for instance.

Logic copied from qfilesystemengine_{win,unix}.cpp in Qt.

This amends commit 118f713eb4.

Change-Id: Iafc64be4b2150378c7f9676fda0e01a43cd8b7cf
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-04-30 09:43:45 +00:00
hjk
4f3f73bc3b Utils: Rename one of the FileName::fromString overloads
Overloaded functions are ugly to use in algorithms like transform().

Change-Id: Ia4f191e1cd9a21ceb99dec23a8f4fd1ce5f24182
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-03-19 09:05:47 +00:00
Ivan Donchevskii
7f67e987ea CompilationDatabase: Add folders to Project view
Change-Id: I4cd480535c203aa923b27596ea4ca74f83c12a9e
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2018-11-05 15:51:12 +00:00
Alessandro Portale
f6943a712a Utils: Modernize further
Many issues, mostly in headers, were not addressed in
e38410b76c

modernize-use-auto
modernize-use-nullptr
modernize-use-override
modernize-use-using
modernize-use-default-member-init
modernize-use-equals-default

Change-Id: I320a51726db881e582b898948d53735ebb06887a
Reviewed-by: hjk <hjk@qt.io>
2018-07-24 12:21:42 +00:00
Andre Hartmann
85ffe78e96 Utils: Properly name withNtfsPermissions()
Change-Id: I759e702b63f8bed9384ccbfae6345f858e50830b
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2018-06-05 12:59:56 +00:00
Tobias Hunger
63ef88d015 Utils: Consistently use nullptr
Fixed by clang-tidy modernize-use-nullptr.

Change-Id: I93edae67271a521e3b2a1f97f486e5fa97009836
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2018-05-13 19:53:14 +00:00
Tobias Hunger
07e67b2188 Utils: Use override consistently
clang-tidy fixes from modernize-use-override check.

Change-Id: I89d27f359b6ee507153cb3712f61f81471ff0858
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2018-05-13 19:42:50 +00:00
Eike Ziller
6f91ce1c52 File System view: Add "New Folder" to context menu
Task-number: QTCREATORBUG-17358
Change-Id: I64b3d34ca0432369630382c40cf749f3cc1a08df
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2018-04-11 06:43:26 +00:00
Eike Ziller
36c88ba5fb Fix Utils::withNTFSPermissions with void function
Fix up of 9467ed42c3

Change-Id: I24343e5e1440210188742332ec6f725af3412100
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: André Hartmann <aha_1980@gmx.de>
2018-02-20 08:26:03 +00:00
Eike Ziller
4328898fb3 Add a bread crumb widget to file system view
Which allows easy navigation to any parent of the current selection.

Task-number: QTCREATORBUG-19203
Change-Id: I97179a4800afd92a21bd0fa466fbfda4ac1a5846
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2017-11-14 15:43:41 +00:00
Eike Ziller
51e8a1730a HostOsInfo/FileUtils/PersistentSettings: Fix build without QtGui
Interesting for command line tools that want to pull this in but not
QtGui (e.g. sdktool)

Change-Id: Ic2f5c1f3126869cc38bf672345750d7d966560fd
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2017-08-22 13:32:43 +00:00
Eike Ziller
de7e0c58f8 FileUtils: Remove unused includes and forward declaration
Left over after moving functionality to dragsupport.cpp/.h

Change-Id: I909be9eb42fb96989e9469278b416e25f3ac7f62
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2017-08-22 10:39:30 +00:00
Ivan Donchevskii
277b331389 Fix build
Move constructor definition to .cpp file to
avoid it being inlined

Change-Id: I1c55095e5158740526af9e698c978abf33304e52
Reviewed-by: hjk <hjk@qt.io>
2017-07-03 10:23:41 +00:00
Ivan Donchevskii
1607a34a9a Utils: use unique_ptr for QFile object
Do not use raw pointer.

Change-Id: I6810c3ec3a60a43829130cf5e5a00e52db95b965
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2017-07-03 09:28:53 +00:00
Eike Ziller
2897414d3b Add std::hash for FileName
Change-Id: Iaef49c826c0febf3a9cb1fdc97de9f92c261cf40
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2017-06-19 08:37:11 +00:00
Eike Ziller
a834c5104d Fix check if example location is writable on Windows
The normal permission check done by QFileInfo is not sufficient in many
cases.

Task-number: QTCREATORBUG-18184
Change-Id: Icab92c592e6d3c8610304e0b987eded6142f4ab3
Reviewed-by: David Schulz <david.schulz@qt.io>
2017-05-29 07:34:47 +00:00
Eike Ziller
4f9016e03f Merge remote-tracking branch 'origin/4.0' into 4.1
Conflicts:
	qtcreator.pri
	qtcreator.qbs
	src/plugins/android/android.qbs
	src/plugins/android/androiddevice.cpp
	src/plugins/autotest/testcodeparser.cpp
	src/plugins/debugger/analyzer/analyzerstartparameters.h
	src/plugins/projectexplorer/devicesupport/desktopdevice.cpp
	src/plugins/projectexplorer/devicesupport/idevice.cpp
	src/plugins/projectexplorer/runconfiguration.h

Change-Id: I2474d06f2309fa71210a8401846bc2ef85bebf1d
2016-06-22 11:09:32 +02:00
David Faure
52ed384549 cmake: resolve symlinks when comparing source directories.
Testcase: trying to use an existing build dir which was
made for /d/foo where /d is a symlink to $HOME/d.

To help understanding the problem, the error message now prints
both source dirs, the one found in the builddir and the one we expected.

Change-Id: I9a24fbd6ef3cf8108c5edba0d2a5b99ecdea0e89
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2016-06-20 07:37:41 +00:00
hjk
39a38d5679 Wholesale conversion to #pragma once
Kudos to cgmb and https://github.com/cgmb/guardonce

Change-Id: Ifa8970734b8d43fd08c9260c645bdb0228633791
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-03-30 15:20:19 +00:00
Tobias Hunger
f72370f20a Update License according to agreement with Free Qt Foundation
* Update remaining files in src

Change-Id: I1896f17fcf34f71c3310c87899fb5171b8e4afb1
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-01-19 15:59:41 +00:00