[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-doc-english
Subject: [kde-doc-english] [gwenview] /: Allow different ways to handle zoom and position between images
From: Aurélien Gâteau <agateau () kde ! org>
Date: 2014-08-07 16:27:32
Message-ID: E1XFQXM-0007Ia-N2 () scm ! kde ! org
[Download RAW message or body]
Git commit 5572aded5dfedd7219138166c26b9d01cadebe84 by Aurélien Gâteau, \
on behalf of John Zaitseff. Committed on 07/08/2014 at 16:24.
Pushed by gateau into branch 'master'.
Allow different ways to handle zoom and position between images
(Taken from bug #337262 )
Over the years, there has been much discussion about whether the zoom and \
position should be kept the same between images (see, for example, bug \
293103, which I submitted, or bugs 291759, 294915, 321122, 327889, 331412, \
334530, 337037 --- there may be more!). I have even submitted a patch \
(with bug 293103) which was applied in modified form---thanks! However, it \
has been subsequently broken...
I have come to realise that there are THREE main ways people like to have \
the zoom and position settings applied to successive images:
1. Each image should be opened in Zoom to Fit mode, even if the previous \
image was zoomed in or out and was panned to a different position. This is \
Aurélien Gâteau's preferred mode of operation: call it Autofit zoom mode.
2. The zoom and position settings should be shared across all images. New \
images should be opened with the previous image's settings. If you go back \
to a previous image (from image B to image A, previously opened), image A's \
settings should be updated to be those of image B. This allows you to set \
zoom and position on an image, then go back and forward to the previous and \
next image while retaining the settings. This is MY preferred mode of \
operation: call it Shared mode.
3. Each image should remember its own zoom and position settings. New \
images should be opened with the previous image's position and zoom, but if \
you then change image B's zoom/position, this is NOT passed back to image \
A, if you go back to that image. This is Abhinav Gangwar's preferred mode \
of operation, and is what LockZoom implements in Gwenview: call it \
Individual mode.
I think people don't mind Autofit being the default, as long as it can be \
changed. At the moment, doing so is very non-obvious, and the Shared mode \
of operation simply does not exist (as of 12th February 2014).
I am submitting a patch that does the following:
1. Create a config file option "ZoomMode" with ZoomMode::Autofit, \
ZoomMode::Shared and ZoomMode::Individual being the choices (Autofit is the \
default, per Aurélien's preferences).
2. Remove the now-obsolete ShowLockZoomButton and LockZoom config options.
3. Remove the Lock Zoom button: it is not visible in Autofit mode anyway, \
and when a user wants the other modes, they want it on ALL the time, not \
just some of the time! Besides, it clutters up the interface :-)
4. Set the zoom and position settings for each image depending on the \
ZoomMode selected.
5. Add a group of three Zoom Mode radio buttons to the Image Settings \
configuration dialog page: "Autofit each image", "Shared zoom and position" \
and "Individual (per-image) zoom and position". I think adding these radio \
buttons is the most elegant way for users to change this setting, given how \
non-obvious the current method is (as can be seen by the continual stream \
of bug reports!).
REVIEW: 119549
BUG: 337262
M +7 -0 app/configdialog.cpp
M +181 -45 app/imageviewconfigpage.ui
M +0 -1 app/kipiinterface.h
M +7 -12 app/viewmainpage.cpp
M +1 -2 cmake/FindLCMS2.cmake
M +0 -1 devdoc/CONTRIBUTING.md
M +19 -19 doc/index.docbook
M +0 -1 lib/archiveutils.h
M +1 -1 lib/cms/iccjpeg.c
M +5 -1 lib/documentview/documentview.cpp
M +19 -9 lib/gwenviewconfig.kcfg
A +49 -0 lib/zoommode.h [License: GPL (v2)]
M +0 -29 lib/zoomwidget.cpp
M +0 -6 lib/zoomwidget.h
M +0 -1 part/gvpart.rc
http://commits.kde.org/gwenview/5572aded5dfedd7219138166c26b9d01cadebe84
diff --git a/app/configdialog.cpp b/app/configdialog.cpp
index a582695..8027a0f 100644
--- a/app/configdialog.cpp
+++ b/app/configdialog.cpp
@@ -41,6 +41,7 @@ struct ConfigDialogPrivate
InvisibleButtonGroup* mAlphaBackgroundModeGroup;
InvisibleButtonGroup* mWheelBehaviorGroup;
InvisibleButtonGroup* mAnimationMethodGroup;
+ InvisibleButtonGroup* mZoomModeGroup;
InvisibleButtonGroup* mThumbnailBarOrientationGroup;
Ui_GeneralConfigPage mGeneralConfigPage;
Ui_ImageViewConfigPage mImageViewConfigPage;
@@ -92,6 +93,12 @@ ConfigDialog::ConfigDialog(QWidget* parent)
d->mAnimationMethodGroup->addButton(d->mImageViewConfigPage.softwareAnimationRadioButton, \
int(DocumentView::SoftwareAnimation));
d->mAnimationMethodGroup->addButton(d->mImageViewConfigPage.noAnimationRadioButton, \
int(DocumentView::NoAnimation));
+ d->mZoomModeGroup = new InvisibleButtonGroup(widget);
+ d->mZoomModeGroup->setObjectName(QLatin1String("kcfg_ZoomMode"));
+ d->mZoomModeGroup->addButton(d->mImageViewConfigPage.autofitZoomModeRadioButton, \
int(ZoomMode::Autofit)); + \
d->mZoomModeGroup->addButton(d->mImageViewConfigPage.keepSameZoomModeRadioButton, \
int(ZoomMode::KeepSame)); + \
d->mZoomModeGroup->addButton(d->mImageViewConfigPage.individualZoomModeRadioButton, \
int(ZoomMode::Individual)); +
d->mThumbnailBarOrientationGroup = new InvisibleButtonGroup(widget);
d->mThumbnailBarOrientationGroup->setObjectName(QLatin1String("kcfg_ThumbnailBarOrientation"));
d->mThumbnailBarOrientationGroup->addButton(d->mImageViewConfigPage.horizontalRadioButton, \
int(Qt::Horizontal));
diff --git a/app/imageviewconfigpage.ui b/app/imageviewconfigpage.ui
index f5e1e5a..5a95cc1 100644
--- a/app/imageviewconfigpage.ui
+++ b/app/imageviewconfigpage.ui
@@ -6,13 +6,13 @@
<rect>
<x>0</x>
<y>0</y>
- <width>400</width>
- <height>385</height>
+ <width>500</width>
+ <height>600</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
- <widget class="QLabel" name="label_7">
+ <widget class="QLabel" name="label_1">
<property name="text">
<string>Transparent background:</string>
</property>
@@ -25,7 +25,7 @@
</widget>
</item>
<item row="0" column="1">
- <layout class="QHBoxLayout">
+ <layout class="QHBoxLayout" name="horizontalLayout_1">
<property name="spacing">
<number>6</number>
</property>
@@ -43,7 +43,7 @@
</widget>
</item>
<item>
- <spacer>
+ <spacer name="horizontalSpacer_1">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
@@ -58,7 +58,7 @@
</layout>
</item>
<item row="1" column="1">
- <layout class="QHBoxLayout" name="_2">
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
<property name="spacing">
<number>6</number>
</property>
@@ -83,7 +83,7 @@
</widget>
</item>
<item>
- <spacer>
+ <spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
@@ -98,7 +98,7 @@
</layout>
</item>
<item row="2" column="1">
- <spacer name="verticalSpacer_2">
+ <spacer name="verticalSpacer_1">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
@@ -114,7 +114,7 @@
</spacer>
</item>
<item row="3" column="0">
- <widget class="QLabel" name="label_8">
+ <widget class="QLabel" name="label_2">
<property name="text">
<string>Mouse wheel behavior:</string>
</property>
@@ -127,7 +127,7 @@
</widget>
</item>
<item row="3" column="1">
- <layout class="QHBoxLayout" name="horizontalLayout">
+ <layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QRadioButton" name="mouseWheelScrollRadioButton">
<property name="text">
@@ -139,7 +139,7 @@
</widget>
</item>
<item>
- <spacer name="horizontalSpacer">
+ <spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
@@ -154,7 +154,7 @@
</layout>
</item>
<item row="4" column="1">
- <layout class="QHBoxLayout" name="horizontalLayout_2">
+ <layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QRadioButton" name="mouseWheelBrowseRadioButton">
<property name="text">
@@ -163,7 +163,7 @@
</widget>
</item>
<item>
- <spacer name="horizontalSpacer_2">
+ <spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
@@ -178,7 +178,7 @@
</layout>
</item>
<item row="5" column="1">
- <spacer name="verticalSpacer">
+ <spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
@@ -193,8 +193,112 @@
</property>
</spacer>
</item>
+ <item row="6" column="0">
+ <widget class="QLabel" name="label_3">
+ <property name="text">
+ <string>Zoom mode:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ <property name="buddy">
+ <cstring>autofitZoomModeRadioButton</cstring>
+ </property>
+ </widget>
+ </item>
<item row="6" column="1">
- <layout class="QHBoxLayout" name="horizontalLayout_3">
+ <layout class="QHBoxLayout" name="horizontalLayout_5">
+ <item>
+ <widget class="QRadioButton" name="autofitZoomModeRadioButton">
+ <property name="text">
+ <string>Autofit each image</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer_5">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ <item row="7" column="1">
+ <layout class="QHBoxLayout" name="horizontalLayout_6">
+ <item>
+ <widget class="QRadioButton" name="keepSameZoomModeRadioButton">
+ <property name="text">
+ <string>Keep same zoom and position</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer_6">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ <item row="8" column="1">
+ <layout class="QHBoxLayout" name="horizontalLayout_7">
+ <item>
+ <widget class="QRadioButton" name="individualZoomModeRadioButton">
+ <property name="text">
+ <string>Per image zoom and position</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer_7">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ <item row="9" column="1">
+ <spacer name="verticalSpacer_3">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Fixed</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>207</width>
+ <height>17</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="10" column="1">
+ <layout class="QHBoxLayout" name="horizontalLayout_8">
<item>
<widget class="QCheckBox" name="kcfg_EnlargeSmallerImages">
<property name="text">
@@ -203,7 +307,7 @@
</widget>
</item>
<item>
- <spacer name="horizontalSpacer_3">
+ <spacer name="horizontalSpacer_8">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
@@ -217,7 +321,7 @@
</item>
</layout>
</item>
- <item row="7" column="1">
+ <item row="11" column="1">
<spacer name="verticalSpacer_4">
<property name="orientation">
<enum>Qt::Vertical</enum>
@@ -233,8 +337,8 @@
</property>
</spacer>
</item>
- <item row="8" column="0">
- <widget class="QLabel" name="label_3">
+ <item row="12" column="0">
+ <widget class="QLabel" name="label_4">
<property name="text">
<string>Animations:</string>
</property>
@@ -246,7 +350,7 @@
</property>
</widget>
</item>
- <item row="8" column="1">
+ <item row="12" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_9">
<item>
<widget class="QRadioButton" name="glAnimationRadioButton">
@@ -259,7 +363,7 @@
</widget>
</item>
<item>
- <spacer name="horizontalSpacer_7">
+ <spacer name="horizontalSpacer_9">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
@@ -273,8 +377,8 @@
</item>
</layout>
</item>
- <item row="9" column="1">
- <layout class="QHBoxLayout" name="horizontalLayout_8">
+ <item row="13" column="1">
+ <layout class="QHBoxLayout" name="horizontalLayout_10">
<item>
<widget class="QRadioButton" name="softwareAnimationRadioButton">
<property name="text">
@@ -283,7 +387,7 @@
</widget>
</item>
<item>
- <spacer name="horizontalSpacer_8">
+ <spacer name="horizontalSpacer_10">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
@@ -297,8 +401,8 @@
</item>
</layout>
</item>
- <item row="10" column="1">
- <layout class="QHBoxLayout" name="horizontalLayout_7">
+ <item row="14" column="1">
+ <layout class="QHBoxLayout" name="horizontalLayout_11">
<item>
<widget class="QRadioButton" name="noAnimationRadioButton">
<property name="text">
@@ -307,7 +411,7 @@
</widget>
</item>
<item>
- <spacer name="horizontalSpacer_9">
+ <spacer name="horizontalSpacer_11">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
@@ -321,15 +425,47 @@
</item>
</layout>
</item>
- <item row="11" column="0">
- <widget class="QLabel" name="label_2">
+ <item row="15" column="1">
+ <spacer name="verticalSpacer_5">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Fixed</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>204</width>
+ <height>17</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="16" column="0">
+ <widget class="QLabel" name="label_5">
<property name="text">
<string><b>Thumbnail Bar</b></string>
</property>
</widget>
</item>
- <item row="12" column="0">
- <widget class="QLabel" name="label_9">
+ <item row="17" column="1">
+ <spacer name="verticalSpacer_6">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Fixed</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>204</width>
+ <height>12</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="18" column="0">
+ <widget class="QLabel" name="label_6">
<property name="text">
<string>Orientation:</string>
</property>
@@ -341,8 +477,8 @@
</property>
</widget>
</item>
- <item row="12" column="1">
- <layout class="QHBoxLayout" name="horizontalLayout_4">
+ <item row="18" column="1">
+ <layout class="QHBoxLayout" name="horizontalLayout_12">
<item>
<widget class="QRadioButton" name="horizontalRadioButton">
<property name="text">
@@ -351,7 +487,7 @@
</widget>
</item>
<item>
- <spacer name="horizontalSpacer_4">
+ <spacer name="horizontalSpacer_12">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
@@ -365,8 +501,8 @@
</item>
</layout>
</item>
- <item row="13" column="1">
- <layout class="QHBoxLayout" name="horizontalLayout_5">
+ <item row="19" column="1">
+ <layout class="QHBoxLayout" name="horizontalLayout_13">
<item>
<widget class="QRadioButton" name="verticalRadioButton">
<property name="text">
@@ -375,7 +511,7 @@
</widget>
</item>
<item>
- <spacer name="horizontalSpacer_5">
+ <spacer name="horizontalSpacer_13">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
@@ -389,8 +525,8 @@
</item>
</layout>
</item>
- <item row="14" column="0">
- <widget class="QLabel" name="label">
+ <item row="20" column="0">
+ <widget class="QLabel" name="label_7">
<property name="text">
<string>Row count:</string>
</property>
@@ -402,8 +538,8 @@
</property>
</widget>
</item>
- <item row="14" column="1">
- <layout class="QHBoxLayout" name="horizontalLayout_6">
+ <item row="20" column="1">
+ <layout class="QHBoxLayout" name="horizontalLayout_14">
<item>
<widget class="KIntSpinBox" name="kcfg_ThumbnailBarRowCount">
<property name="minimum">
@@ -415,7 +551,7 @@
</widget>
</item>
<item>
- <spacer name="horizontalSpacer_6">
+ <spacer name="horizontalSpacer_14">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
@@ -429,15 +565,15 @@
</item>
</layout>
</item>
- <item row="15" column="1">
- <spacer name="verticalSpacer_3">
+ <item row="21" column="1">
+ <spacer name="verticalSpacer_7">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
- <height>62</height>
+ <height>60</height>
</size>
</property>
</spacer>
diff --git a/app/kipiinterface.h b/app/kipiinterface.h
index 45fb03b..d2a9e23 100644
--- a/app/kipiinterface.h
+++ b/app/kipiinterface.h
@@ -116,4 +116,3 @@ private:
} // namespace
#endif /* KIPIINTERFACE_H */
-
diff --git a/app/viewmainpage.cpp b/app/viewmainpage.cpp
index 7caf099..439ccd6 100644
--- a/app/viewmainpage.cpp
+++ b/app/viewmainpage.cpp
@@ -58,6 +58,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, \
Boston, MA 02110-1301, USA. #include <lib/statusbartoolbutton.h>
#include <lib/thumbnailview/thumbnailbarview.h>
#include <lib/zoomwidget.h>
+#include <lib/zoommode.h>
namespace Gwenview
{
@@ -163,6 +164,7 @@ struct ViewMainPagePrivate
bool mFullScreenMode;
bool mCompareMode;
bool mThumbnailBarVisibleBeforeFullScreen;
+ ZoomMode::Enum mZoomMode;
void setupThumbnailBar()
{
@@ -489,20 +491,13 @@ void ViewMainPage::loadConfig()
d->mThumbnailBar->setUpdatesEnabled(true);
}
- if (GwenviewConfig::showLockZoomButton()) {
- d->mZoomWidget->setZoomLocked(GwenviewConfig::lockZoom());
- } else {
- d->mZoomWidget->setLockZoomButtonVisible(false);
- }
+ d->mZoomMode = GwenviewConfig::zoomMode();
}
void ViewMainPage::saveConfig()
{
d->saveSplitterConfig();
GwenviewConfig::setThumbnailBarIsVisible(d->mToggleThumbnailBarAction->isChecked());
- if (GwenviewConfig::showLockZoomButton()) {
- GwenviewConfig::setLockZoom(d->mZoomWidget->isZoomLocked());
- }
}
void ViewMainPage::setThumbnailBarVisibility(bool visible)
@@ -638,11 +633,11 @@ void ViewMainPage::openUrls(const KUrl::List& \
allUrls, const KUrl& currentUrl) if (!d->mDocumentViews.isEmpty()) {
d->mDocumentViewContainer->updateSetup(d->mDocumentViews.last());
}
- if (!d->mDocumentViews.isEmpty() && d->mZoomWidget->isZoomLocked()) {
- setup = d->mDocumentViews.last()->setup();
- } else {
+ if (d->mDocumentViews.isEmpty() || d->mZoomMode == ZoomMode::Autofit) \
{ setup.valid = true;
setup.zoomToFit = true;
+ } else {
+ setup = d->mDocumentViews.last()->setup();
}
// Destroy views which show urls we don't care about, remove from \
"urls" the // urls which already have a view.
@@ -687,7 +682,7 @@ void ViewMainPage::openUrls(const KUrl::List& allUrls, \
const KUrl& currentUrl) KUrl url = it.key();
DocumentView* view = it.value();
DocumentView::Setup savedSetup = \
d->mDocumentViewContainer->savedSetup(url);
- view->openUrl(url, savedSetup.valid ? savedSetup : setup);
+ view->openUrl(url, d->mZoomMode == ZoomMode::Individual && \
savedSetup.valid ? savedSetup : setup); \
d->mActivityResources.value(view)->setUri(url); }
diff --git a/cmake/FindLCMS2.cmake b/cmake/FindLCMS2.cmake
index cc17e9f..53231ed 100644
--- a/cmake/FindLCMS2.cmake
+++ b/cmake/FindLCMS2.cmake
@@ -30,7 +30,7 @@ find_path(LCMS2_INCLUDE_DIR lcms2.h
)
find_library(LCMS2_LIBRARIES NAMES lcms2 liblcms2 lcms-2 liblcms-2
- PATHS
+ PATHS
${PC_LCMS2_LIBDIR}
${PC_LCMS2_LIBRARY_DIRS}
PATH_SUFFIXES lcms2
@@ -69,4 +69,3 @@ else()
endif()
mark_as_advanced(LCMS2_INCLUDE_DIR LCMS2_LIBRARIES LCMS2_VERSION)
-
diff --git a/devdoc/CONTRIBUTING.md b/devdoc/CONTRIBUTING.md
index ffdb7f7..2efc8f2 100644
--- a/devdoc/CONTRIBUTING.md
+++ b/devdoc/CONTRIBUTING.md
@@ -43,4 +43,3 @@ is required to make it easy to rollback the merge if need \
be. git merge --no-ff origin/KDE/4.x
# Check merge is correct
git push
-
diff --git a/doc/index.docbook b/doc/index.docbook
index d3266b8..4509f67 100644
--- a/doc/index.docbook
+++ b/doc/index.docbook
@@ -52,7 +52,7 @@
<keyword>picture</keyword>
</keywordset>
</bookinfo>
-<!--FIXME Read devels blog on http://agateau.com/
+<!--FIXME Read devels blog on http://agateau.com/
-->
<chapter id="introduction">
<title>Introduction</title>
@@ -64,8 +64,8 @@
&kappname; is a fast and easy to use image and video viewer for KDE.
</para>
- <para>
-Gwenview features two main modes: Browse and View. Both modes can be used
+ <para>
+Gwenview features two main modes: Browse and View. Both modes can be used
in a normal application window and Full Screen. Browse Mode
lets you navigate through your computer showing thumbnails of your images, \
View Mode lets you view images one at a time, and Full Screen lets you \
make quick @@ -81,7 +81,7 @@ with an alpha channel (transparency) as well \
as animations.</para> images. Lossless JPEG transforms such as rotations \
and mirroring are also supported.</para>
<para>&kappname; can read embedded color profiles from PNG and JPEG files.
-It can use the image color profile together with the display color profile \
+It can use the image color profile together with the display color \
profile to output correct colors on the screen.</para>
</sect1>
@@ -198,12 +198,12 @@ on your images. For more information, see the
<para>
Moving the mouse over an image shows buttons to select or rotate the image \
as well as
-a button to enter Fullscreen Mode.
+a button to enter Fullscreen Mode.
Modified images are indicated by an icon down right, click it to save the \
changed image. Clicking on an image takes you into View
Mode. You may select multiple images and switch to View Mode to view them \
side-by-side.</para>
-<para>The slider at the bottom right allows you to change the size of the \
images. +<para>The slider at the bottom right allows you to change the \
size of the images. You can also filter the images by filename, date, tag \
or rating using the box on the lower left. The toolbar appears in both \
Browse mode as well as View mode and contains the most commonly used \
actions. </para> @@ -264,12 +264,12 @@ button are next to the zoom slider \
and are two preset zoom levels. The of the window, and the \
<guibutton>100%</guibutton> button zooms the image to the actual pixel \
size. The shortcut <keycap>F</keycap> toggles between both view \
modes.</para>
-<para>When an image is in zoom-to-fit mode, you can go to the previous and \
next
-image with the arrow keys. When you zoom in, arrow keys are used to scroll \
the image. +<para>When an image is in zoom-to-fit mode, you can go to the \
previous and next +image with the arrow keys. When you zoom in, arrow keys \
are used to scroll the image. This is very similar to the behavior \
provided by phones or digital cameras.</para>
-<para>When an image is zoomed in, a bird-eye view appears and lets you \
scroll
-the image using the mouse and the arrow keys. The bird-eye view \
automatically hides +<para>When an image is zoomed in, a bird-eye view \
appears and lets you scroll +the image using the mouse and the arrow keys. \
The bird-eye view automatically hides itself after a short delay, showing \
back only while zooming or scrolling.</para>
<tip><para>You can start directly in View mode by starting &kappname; from \
a @@ -329,7 +329,7 @@ button on the toolbar, or by
<sect2>
<title>Browse Mode Full Screen</title>
-<para>In Browse Mode you can switch to fullscreen also by clicking on the \
button that +<para>In Browse Mode you can switch to fullscreen also by \
clicking on the button that appears when you move the mouse over the \
thumbnails. </para>
<screenshot>
@@ -340,9 +340,9 @@ appears when you move the mouse over the thumbnails.
</imageobject>
</mediaobject>
</screenshot>
-<para>Going fullscreen while browsing gives you a more immersive \
experience while
-you go through your pictures. It is quite nice on your regular computer, \
but makes
-even more sense when you connect your laptop to the big TV in the living \
room to show +<para>Going fullscreen while browsing gives you a more \
immersive experience while +you go through your pictures. It is quite nice \
on your regular computer, but makes +even more sense when you connect your \
laptop to the big TV in the living room to show pictures to your guests.
</para>
</sect2>
@@ -410,8 +410,8 @@ not appear by default in Browse Mode. Its appearance \
can be toggled using <guimenu>View</guimenu>
<guimenuitem>Sidebar</guimenuitem>
</menuchoice>
-or using the <guiicon>▮←</guiicon> / <guiicon>▮→</guiicon> button \
at the left side
-of the statusbar. When clicked it collapses or expands the sidebar.
+or using the <guiicon>▮←</guiicon> / <guiicon>▮→</guiicon> button \
at the left side +of the statusbar. When clicked it collapses or expands \
the sidebar. The sidebar contains several tabs:</para>
<variablelist>
@@ -456,7 +456,7 @@ in the &kde; Device Notifier after connecting a \
supported device.</para>
<para>When you plug in a device the &kappname; importer recursively lists \
all images and videos. </para>
-<para>This is not always what you expect, ⪚ plugging a smartphone you \
do not want to list all medias +<para>This is not always what you expect, \
⪚ plugging a smartphone you do not want to list all medias of the \
device; but only the pictures you took, which are usually in a special \
subfolder. </para>
@@ -468,8 +468,8 @@ of the device; but only the pictures you took, which \
are usually in a special su </imageobject>
</mediaobject>
</screenshot>
-<para>It is possible to select the root folder to list, and &kappname; \
Importer will remember the
-last root folder for each device. This way, next time you plug a device \
in, only the relevant +<para>It is possible to select the root folder to \
list, and &kappname; Importer will remember the +last root folder for each \
device. This way, next time you plug a device in, only the relevant \
pictures and videos should be listed. </para>
diff --git a/lib/archiveutils.h b/lib/archiveutils.h
index db79771..b1b047f 100644
--- a/lib/archiveutils.h
+++ b/lib/archiveutils.h
@@ -58,4 +58,3 @@ GWENVIEWLIB_EXPORT QString protocolForMimeType(const \
QString& mimeType);
} // namespace Gwenview
#endif
-
diff --git a/lib/cms/iccjpeg.c b/lib/cms/iccjpeg.c
index 1f6c4b1..7cbec5e 100644
--- a/lib/cms/iccjpeg.c
+++ b/lib/cms/iccjpeg.c
@@ -12,7 +12,7 @@
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
- *
+ *
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
* KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
* WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
diff --git a/lib/documentview/documentview.cpp \
b/lib/documentview/documentview.cpp index 1ab8bbb..0b8d201 100644
--- a/lib/documentview/documentview.cpp
+++ b/lib/documentview/documentview.cpp
@@ -146,7 +146,11 @@ struct DocumentViewPrivate
q->adapterChanged();
q->positionChanged();
if (adapter->canZoom()) {
- q->zoomToFitChanged(adapter->zoomToFit());
+ if (adapter->zoomToFit()) {
+ q->zoomToFitChanged(true);
+ } else {
+ q->zoomChanged(adapter->zoom());
+ }
}
if (adapter->rasterImageView()) {
QObject::connect(adapter->rasterImageView(), \
SIGNAL(currentToolChanged(AbstractRasterImageViewTool*)),
diff --git a/lib/gwenviewconfig.kcfg b/lib/gwenviewconfig.kcfg
index 92d39f7..96925df 100644
--- a/lib/gwenviewconfig.kcfg
+++ b/lib/gwenviewconfig.kcfg
@@ -6,6 +6,7 @@
http://www.kde.org/standards/kcfg/1.0/kcfg.xsd">
<kcfgfile name="gwenviewrc"/>
<include>lib/sorting.h</include>
+ <include>lib/zoommode.h</include>
<include>lib/mousewheelbehavior.h</include>
<include>lib/documentview/documentview.h</include>
<include>lib/documentview/rasterimageview.h</include>
@@ -129,14 +130,24 @@
<default>DocumentView::SoftwareAnimation</default>
</entry>
- <entry name="ShowLockZoomButton" type="Bool">
- <default>false</default>
- </entry>
-
- <entry name="LockZoom" type="Bool">
- <default>false</default>
- <whatsthis>Defines what happens when going to image B after \
having zoomed an area of image A.
- When true: zoom and position is kept. When false: image B \
is zoomed out to fit the screen.</whatsthis> + <entry \
name="ZoomMode" type="Enum"> + <choices \
name="Gwenview::ZoomMode::Enum"> + <choice \
name="ZoomMode::Autofit"/> + <choice \
name="ZoomMode::KeepSame"/> + <choice \
name="ZoomMode::Individual"/> + </choices>
+ <default>ZoomMode::Autofit</default>
+ <whatsthis>Defines what happens when going to image B after
+ having zoomed in on an area of image A. If set to Autofit,
+ image B is zoomed out to fit the screen. If set to KeepSame,
+ all images share the same zoom and position: image B is set
+ to the same zoom parameters as image A (and if these are
+ changed, image A will then be displayed with the updated zoom
+ and position). If set to Individual, all images remember
+ their own zoom and position: image B is initially set to the
+ same zoom parameters as image A, but will then remember its
+ own zoom and position (if these are changed, image A will NOT
+ be displayed with the updated zoom and position).</whatsthis>
</entry>
</group>
@@ -251,4 +262,3 @@
</group>
</kcfg>
-
diff --git a/lib/zoommode.h b/lib/zoommode.h
new file mode 100644
index 0000000..ed9cbba
--- /dev/null
+++ b/lib/zoommode.h
@@ -0,0 +1,49 @@
+// vim: set tabstop=4 shiftwidth=4 expandtab:
+/*
+Gwenview: an image viewer
+Copyright 2008 Aurélien Gâteau <agateau@kde.org>
+Copyright 2014 John Zaitseff <J.Zaitseff@zap.org.au>
+
+This program is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 2 of the License, or (at your
+option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Cambridge, MA 02110-1301, USA.
+
+*/
+#ifndef ZOOMMODE_H
+#define ZOOMMODE_H
+
+// Qt
+
+// KDE
+
+// Local
+
+namespace Gwenview
+{
+
+namespace ZoomMode
+{
+/**
+ * This enum represents the different zoom modes.
+ */
+enum Enum {
+ Autofit,
+ KeepSame,
+ Individual
+};
+
+} // namespace ZoomMode
+
+} // namespace Gwenview
+
+#endif /* ZOOMMODE_H */
diff --git a/lib/zoomwidget.cpp b/lib/zoomwidget.cpp
index da66a56..7ca8aa6 100644
--- a/lib/zoomwidget.cpp
+++ b/lib/zoomwidget.cpp
@@ -67,8 +67,6 @@ struct ZoomWidgetPrivate
QAction* mZoomToFitAction;
QAction* mActualSizeAction;
- QToolButton* mLockZoomButton;
-
bool mZoomUpdatedBySlider;
void emitZoomChanged()
@@ -113,12 +111,6 @@ ZoomWidget::ZoomWidget(QWidget* parent)
d->mZoomSlider->slider()->setPageStep(3 * int(PRECISION));
connect(d->mZoomSlider->slider(), SIGNAL(actionTriggered(int)), \
SLOT(slotZoomSliderActionTriggered()));
- d->mLockZoomButton = new QToolButton;
- d->mLockZoomButton->setAutoRaise(true);
- d->mLockZoomButton->setCheckable(true);
- updateLockZoomButton();
- connect(d->mLockZoomButton, SIGNAL(toggled(bool)), \
SLOT(updateLockZoomButton()));
-
// Layout
QHBoxLayout* layout = new QHBoxLayout(this);
layout->setMargin(0);
@@ -127,7 +119,6 @@ ZoomWidget::ZoomWidget(QWidget* parent)
layout->addWidget(d->mActualSizeButton);
layout->addWidget(d->mZoomSlider);
layout->addWidget(d->mZoomLabel);
- layout->addWidget(d->mLockZoomButton);
}
ZoomWidget::~ZoomWidget()
@@ -190,24 +181,4 @@ void ZoomWidget::setMaximumZoom(qreal zoom)
d->mZoomSlider->setMaximum(sliderValueForZoom(zoom));
}
-bool ZoomWidget::isZoomLocked() const
-{
- return d->mLockZoomButton->isVisible() && \
d->mLockZoomButton->isChecked();
-}
-
-void ZoomWidget::setZoomLocked(bool locked)
-{
- d->mLockZoomButton->setChecked(locked);
-}
-
-void ZoomWidget::setLockZoomButtonVisible(bool visible)
-{
- d->mLockZoomButton->setVisible(visible);
-}
-
-void ZoomWidget::updateLockZoomButton()
-{
- d->mLockZoomButton->setIcon(KIcon(d->mLockZoomButton->isChecked() ? \
"object-locked" : "object-unlocked"));
-}
-
} // namespace
diff --git a/lib/zoomwidget.h b/lib/zoomwidget.h
index b181f5a..d5de70b 100644
--- a/lib/zoomwidget.h
+++ b/lib/zoomwidget.h
@@ -45,11 +45,6 @@ public:
void setActions(QAction* zoomToFitAction, QAction* actualSizeAction, \
QAction* zoomInAction, QAction* zoomOutAction);
- bool isZoomLocked() const;
- void setZoomLocked(bool);
-
- void setLockZoomButtonVisible(bool);
-
public Q_SLOTS:
void setZoom(qreal zoom);
@@ -61,7 +56,6 @@ Q_SIGNALS:
private Q_SLOTS:
void slotZoomSliderActionTriggered();
- void updateLockZoomButton();
private:
friend struct ZoomWidgetPrivate;
diff --git a/part/gvpart.rc b/part/gvpart.rc
index 35703a7..7af31d6 100644
--- a/part/gvpart.rc
+++ b/part/gvpart.rc
@@ -19,4 +19,3 @@
<Action name="view_zoom_out"/>
</ToolBar>
</kpartgui>
-
_______________________________________________
kde-doc-english mailing list
kde-doc-english@kde.org
https://mail.kde.org/mailman/listinfo/kde-doc-english
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic