Commit Graph

237 Commits

Author SHA1 Message Date
Katarina Behrens
dbfd226e85 Imageviewer: zoom in and out using fixed set of common-sense zoom values
Previously scale factor for zoom in/out was calculated as

$(currentScaleFactor)^1.2

This results in weird zoom levels such as 83.3% or 144%. Replace this
approach with using pre-defined set of 'normal' zoom level values
such as {25%, 50%, .. 100%, 150%, 200% .. }, similar to what most
graphic editors do

To find the nearest greater or lesser fixed zoom level for any given
floating point scale factor I borrowed some code from qmldesigner/
timelinewidget

I didn't know what to do with zooming using mouse wheel so I left the
old code in place

Change-Id: Id037ef99f89cce5e8dcd58bb9ad0e6f3c8536f36
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-02-01 17:11:30 +00:00
Eike Ziller
9d8a419d10 Remove qmake build files
Removes qmake as a build system for building Qt Creator itself.
Keep them for some tests that are not completely moved to CMake yet.

Change-Id: I846c6ef65626b6dfae6375fdc85d00677aa8c2fb
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-01-20 12:18:15 +00:00
Eike Ziller
7bb21fcfff Merge remote-tracking branch 'origin/5.0' into 6.0
Conflicts:
	cmake/QtCreatorIDEBranding.cmake
	qbs/modules/qtc/qtc.qbs
	qtcreator_ide_branding.pri

Change-Id: I87b19a51b1950d19eff95086848b0728ba2f0ebd
2021-10-08 15:58:02 +02:00
Eike Ziller
69fbe0ab90 ImageViewer: Fix crash when opening invalid movie
Qt 6 sends the finished signal directly from QMovie::start, so if we
connect QMovie::finished directly to QMovie::start, we end up in
an endless recursion and stack exhaustion.

Use a queued connection, and do not restart a movie if it went
invalid.

Fixes: QTCREATORBUG-26377
Change-Id: I9980615f44d0cf7e92f85c010427bd6b67046949
Reviewed-by: Robert Löhning <robert.loehning@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2021-10-07 13:26:58 +00:00
hjk
7c28c4f744 Utils: Introduce a FilePath constructor from char arrays
Similar to QT_RESTRICTED_CAST_FROM_ASCII to avoid the need for
decorations in user code.

At the same time, drop some convenience constructors and functions
in CommandLine and Icon essentially serving the same purpose.

Change-Id: Ida4e5ac19c2da0a4298a97b2a8e1511d56bbb79d
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-08-17 05:34:10 +00:00
David Schulz
e13c2b7403 MimeDatabase: add FilePath convenience function
Change-Id: I59c825490b3b5c49f3c177584ea4cc885c4f920b
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-06-23 12:03:28 +00:00
David Schulz
665c090039 Core: filepathify IDocument
Change-Id: I364a80d070c5f90433309c281c4906ee101a1a1a
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2021-05-19 09:45:22 +00:00
Christian Kandeler
7cc2b149b1 qbs build: Make ImageViewer build with Qt 6
Change-Id: If934d2df162e043102ba65d9c3de4fb7fc121540
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-05-10 13:36:34 +00:00
Eike Ziller
6689f0e5f4 Fix dropping files onto image viewer
Interactive QGraphicsViews eat all drag&drop events. Since we don't want
the view to be "interactive" anyhow, just set it to non-interactive.
Dragging the image around if it is larger than the view is not
implemented via drag&drop events, so it still works.

Fixes: QTCREATORBUG-25462
Change-Id: Iee403bab7ba83f897b4d2cca662c4e82ae4aa529
Reviewed-by: Robert Löhning <robert.loehning@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
2021-05-06 07:15:43 +00:00
Eike Ziller
484d40258a IDocument: Simplify permission changes
Take care of handling file permission changes centrally.

TextDocument had its own, caching implementation of tracking the backing
file's read-only state. Move that into IDocument directly.

IDocument::reload with a permission-only change is not a very
interesting case, but every subclass needed to add handling of it.
Instead, remove TypePermission from the file-change types, and handle it
separately via the now unified checkPermissions() implementation.
IDocument::reloadBehavior already was never called with TypePermission.

Change-Id: I321d47ba6193bc878efa9bb50ba7a739fa492745
Reviewed-by: David Schulz <david.schulz@qt.io>
2021-01-14 14:55:34 +00:00
hjk
206e9f95fb Core: Signal duplicated editors
FakeVim needs some notification even in cases where the
duplication is triggered outside the EditorManager as in
QmlDesigner's qml-editor.

Fixes: QTCREATORBUG-22344
Change-Id: Ia4950ff4b02d3f89779f03ff4c106a07ccff2106
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2021-01-14 08:31:44 +00:00
Eike Ziller
9277c58e42 Do not pop up general messages pane
General messages pane should only be opened on direct user interaction.

Task-number: QTCREATORBUG-24430
Change-Id: Ib4c72b1bb07c27aabc74eb62c56061d5548b677d
Reviewed-by: David Schulz <david.schulz@qt.io>
2021-01-04 12:49:11 +00:00
Jarek Kobus
fdaed3aa09 Fix qmake build against Qt 6
Change-Id: Iee5154e5b48c1e7f41d682f2ec7040202366db77
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-11-09 09:22:28 +00:00
Eike Ziller
5e67bc5055 Fix build with Qt6
Add missing includes for "incomplete type" issues.
Remove usage of QDesktopWidget.
Don't compile native WebKit help backend (missing native widget integration).
Add SvgWidget dependency.

Task-number: QTCREATORBUG-24098
Change-Id: I1b3afb54d385940ff283824870fa7454866212a4
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-10-26 08:44:21 +00:00
Eike Ziller
c74714da04 Remove parent argument from IEditor constructor
Editors are owned by whoever created them via the corresponding editor
factory, usually the EditorManager.

Change-Id: I4432eab1a3a8c38ce1bba6bb10b0f9273695a524
Reviewed-by: hjk <hjk@qt.io>
2020-09-24 09:10:37 +00:00
Eike Ziller
423ea729f8 Merge remote-tracking branch 'origin/4.13' into master
Conflicts:
	cmake/QtCreatorIDEBranding.cmake
	qbs/modules/qtc/qtc.qbs
	qtcreator_ide_branding.pri
	src/plugins/mcusupport/mcusupportoptions.cpp

Change-Id: I3fd0d0a6a3ff30bb990da3dc0f78e69f9e1247ef
2020-09-23 10:11:44 +02:00
Kai Koehne
87cf6400fc ImageViewer: Change license of files to Commercial/GPLv3
Task-number: QTCREATORBUG-24620
Change-Id: I8c76b312d4e93346ca70eec92b8b7ac8dfa455d1
Reviewed-by: Denis Mingulov <denis@mingulov.com>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-09-21 12:33:29 +00:00
Eike Ziller
6225d33c28 Fix build issues with Qt6
Change from QStringRef to QStringView at various places.

Task-number: QTCREATORBUG-24098
Change-Id: Ia7a634fa26464fbb2962724d5f0e188cecc68801
Reviewed-by: hjk <hjk@qt.io>
2020-09-18 14:41:32 +00:00
hjk
5363256acd Qt6: Port some uses of QApplication::desktop()->availableGeometry()
Task-number: QTCREATORBUG-24098
Change-Id: I3bf911402084fb26110a89992cb5f1d61c2f46e9
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-07-30 05:56:00 +00:00
hjk
43b658e9e7 Utils: Drop Utils::SkipEmptyParts again
We require Qt 5.14 nowadays.

Change-Id: Iff245257d3cb19207007c0445ee13814e66152dd
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-07-21 12:42:27 +00:00
hjk
e1c88116b3 Core/Utils: Migrate further to Utils::Id
The coreplugin/id.h header is kept for downstream for now.

Change-Id: I8c44590f7b988b3770ecdc177c40783e12353e66
(cherry picked from commit 430a33dcd9)
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-07-06 11:15:18 +00:00
hjk
430a33dcd9 Core/Utils: Migrate further to Utils::Id
The coreplugin/id.h header is kept for downstream for now.

Change-Id: I8c44590f7b988b3770ecdc177c40783e12353e66
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2020-07-06 06:07:13 +00:00
hjk
736e6eada0 Various Qt6 compile fixes
Task-number: QTCREATORBUG-24098
Change-Id: Ia0fe92d82d4477bd8f14ee25754b114316fc878a
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-06-22 07:04:12 +00:00
hjk
1c81a3b3e8 All: Use Utils::SkipEmptyParts
Task-number: QTCREATORBUG-24098
Change-Id: Iab45de9a9c17ddc39a0e343b1175d4f6cb94b098
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-06-17 05:55:25 +00:00
hjk
79b680e7f0 Utils: Rename PathChooser::{f,setF}ileName() to {f,setF}ilePath()
It's returning a FilePath, so it's a better fit.

Keep the old versions as inline function now to ease downstream migration.

Change-Id: I535887928018f42b92895c8b0c82527f0d55e5ca
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: André Hartmann <aha_1980@gmx.de>
2020-04-09 17:30:23 +00:00
Kai Koehne
fda9955df0 Globally disable WindowContextHelpButtonHint
Do set the global application flag AA_DisableWindowContextHelpButton
to avoid having to unset the default WindowContextHelpButtonHint
in every single dialog.

AA_DisableWindowContextHelpButton was added in Qt 5.10.

Change-Id: I21fe8bc5ddfa4c01ec7a799b04bfb6ff1c9d6d86
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-02-25 13:26:44 +00:00
hjk
a44bfdd779 Provide an empty default IPlugin::extensionsInitialized()
And remove all empy re-implementations.

Change-Id: I19f0b4e55c042c96693ecb89766f97f0a97b54ae
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-02-07 10:21:34 +00:00
hjk
0b1a463c47 Core: Remove one IEditorFactory::addMimeType overload
Not overly useful in the times of QT_RESTRICTED_CAST_FROM_ASCII

Change-Id: I87032b1da9cc4e8205d2a9c8596bc9ba832acf30
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-02-06 08:33:53 +00:00
hjk
d7ae3b79f8 Core: Make IEditorFactory::createEditor use a function object
Also, replace or remove unneeded Q_OBJECTs, and make base
setters and adders protected.

Change-Id: I212257ef53984d8852dc8c478537199fc9483486
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-02-05 11:41:29 +00:00
hjk
3a5cb65128 ImageViewer: Use standard plugin setup pattern
Change-Id: Iab9536115b243563bb9a4bfd56b9d211a45f1b0b
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2020-01-22 16:05:42 +00:00
Sona Kurazyan
66435024a4 Replace the deprecated QWheelEvent::delta() -> QWheelEvent::angleDelta()
Replaced the usages of deprecated QWheelEvent::delta() with
QWheelEvent::angleDelta().y(), assuming that it's acceptable to use only the
vertical component of angle delta.

Task-number: QTBUG-76491
Change-Id: I4aa0a5a0e9ba7f33321bdb879b66ffb589b53e42
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-09-02 13:01:30 +00:00
Alessandro Portale
0933c20de8 connect() to ambiguous signals/slots: Replace static_cast with QOverload
Change-Id: I473d7a2a16509cee944a2a21b022a3f6f02cfd8d
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-05-28 14:07:03 +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
Cristian Adam
d855b84c5d Qt Creator CMake port
Based on Tobias Hunger's work from a few months ago.

The CMake configuration needs libclang and Qt paths specified as
CMAKE_PREFIX_PATH.

Auto tests are run with "ctest". At the moment the pass rate is 87%.

Change-Id: Iba98e39bf22077d52706dce6c85986be67a6eab0
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-05-17 13:33:28 +00:00
Alessandro Portale
2f6d43745a ImageViewer: Don't blur the ImageViewer background pattern on HighDpi
Simply don't draw the background pattern with interpolated scaling.

Task-number: QTCREATORBUG-22280
Change-Id: Iae17f4ce663ae82ee00cbebaa9830b5bb86d5735
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-04-11 07:12:02 +00:00
Alessandro Portale
7d56d89f25 ImageView: Modernize
modernize-*

Change-Id: I7fcffa4b455355cbcdc91f7e671e0a88f1091042
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2018-11-12 17:10:11 +00:00
Orgad Shaneh
1486359251 Core: Change IEditor::document() to const
All the implementations are const.

Change-Id: Ib9753fe764dd482d4f4392eec70878d42edc737a
Reviewed-by: hjk <hjk@qt.io>
2018-09-26 06:20:51 +00:00
Robert Loehning
0374549b1e ImageView: Fix brace in string
Change-Id: I08c0b74930cccea4674ea559c64de9fff8cd1791
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-07-13 12:06:38 +00:00
hjk
afef329c10 ImageView: Suppress a warning if SVG is not available
Change-Id: Ic61c61ec9f9c80c930c361e71c4d4b374aa39906
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-04-23 11:45:04 +00:00
Razi Alavizadeh
437199acd8 Plugins: Re-categorize plugins which are in "Qt Creator" category
Category of DiffEditor, ImageViewer, Macros and UpdateInfo
  was removed, i.e., they were moved to "Utilities" category.

Category of other plugins that were in "Qt Creator" category,
  changed to "Core".

By this patch, forks of QtCreator don't need to change *.json.in files locally.

Change-Id: I243c6b1831c0b880d32b2118db71f0b281590b7b
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2018-03-20 15:31:49 +00:00
Friedemann Kleint
cbed562175 ImageViewer: Fix QBS build after adding the SVG multiexport feature
Amends cd85d3aba5.

Change-Id: I8acdb94ee4b1f6a30aee2644230b4b9e297a53fb
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2018-02-14 09:51:22 +00:00
Friedemann Kleint
cd85d3aba5 Add SVG multi export
Add a second SVG export option that allows for exporting
a series of icons of various size in one go. A dialog is shown
that allows for entering a file name pattern with place holders
and a list of sizes.

Change-Id: Ic644a9d402aa44af5899c29cf83051fdd7bba3d1
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Diana de Sousa <diana.desousa@theqtcompany.com>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2018-02-14 09:37:16 +00:00
hjk
231b4329df ImageViewer: Remove unneeded use of global object pool
Plus some code cosmetics.

Change-Id: I4e10f1900a5a06bb37bc2d20f3dd776c7534011e
Reviewed-by: Denis Mingulov <denis@mingulov.com>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2018-02-08 08:22:59 +00:00
Friedemann Kleint
9a950e5a89 Image viewer: Add include <QAction>
Fix broken build (likely introduced by
e1d2d35c20).

Change-Id: I34024e437d4d74ebe4f712718a66cedca8a4b7ae
Reviewed-by: hjk <hjk@qt.io>
2018-02-06 07:40:28 +00:00
Eike Ziller
e1d2d35c20 Unify zooming actions of image viewer and model editor
Change-Id: I5761ab579beda5b2cd0b725869ed216cb97e900c
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2018-02-05 10:42:25 +00:00
Tobias Hunger
c330cf0679 Replace manual signal blocking/unblocking with QSignalBlocker
Change-Id: Ibb59fab4e37d045e506c5a8172b6f5cbb955b028
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2017-10-04 09:35:06 +00:00
Ulf Hermann
47886969cc Drop unused variables and lambda captures
Also, add context to connect() expressions where we are or were
capturing "this".

Change-Id: I6e006ba6f83d532478018550d148ee93eca59605
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: hjk <hjk@qt.io>
2017-09-08 09:06:53 +00:00
Eike Ziller
04da881268 Fix copyright year in plugin info, --version, and macOS info
By using the new QTCREATOR_COPYRIGHT_YEAR variable

Task-number: QTCREATORBUG-18612
Change-Id: I3bcf0319660d210436d3130c00f43325c460a66c
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2017-08-24 11:23:40 +00:00
Eike Ziller
e8e46ab553 Plugins: Fix that mimetype definition was not valid JSON
JSON officially does not support multiline strings, so we should use
the same mechanism that we already use for the plugin description
(i.e. additionally support arrays of strings which are interpreted
as lines).
This just happens to work because Qt's JSON parser eats it without
choking.

Change-Id: I25ef04600b209775c5a7af916c687fda4a8b1a4d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-07-25 06:00:49 +00:00
Orgad Shaneh
b57372f2b5 Replace include guards with #pragma once
Change-Id: Ic36cf0e9cac61d4d9a7e4434192944f5301b8aaa
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2017-06-28 08:07:56 +00:00