------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the
assignee.
http://bug
s.kde.org/show_bug.cgi?id=140131
------- Additional Comments From caulier.gilles gmail com
2007-04-08 16:17 -------
SVN commit 651581 by cgilles:
digiKam from trunk : Image preview mode is abble to use
CTRL+ and CTRL- to zoom in/out into image.
Increase/Decrease Thumbs Size actions from View menu of
Album GUI are now renamed Zoom In/Out
Code simplification and factorized between
albumwidgetstack/imagepreviewview.
CCBUGS: 140131
M +25 -3 albumwidgetstack.cpp
M +5 -0 albumwidgetstack.h
M +26 -40 digikamapp.cpp
M +0 -1 digikamapp.h
M +5 -5 digikamui.rc
M +60 -21 digikamview.cpp
M +5 -4 digikamview.h
M +2 -8 imagepreviewview.cpp
M +1 -0 imagepreviewview.h
M +2 -1 imagepreviewwidget.cpp
M +0 -3 imagepreviewwidget.h
---
trunk/extragear/graphics/digikam/digikam/albumwidgetstack.cp
p #651580:651581
-179,12 +179,14
{
d->albumIconView->setFocus();
setPreviewItem();
+ raiseWidget(mode);
emit signalToggledToPreviewMode(false);
}
- else
+ else
+ {
+ raiseWidget(mode);
emit signalToggledToPreviewMode(true);
-
- raiseWidget(mode);
+ }
}
void AlbumWidgetStack::slotPreviewLoaded()
-206,4 +208,24
d->imagePreviewView->reload();
}
+void AlbumWidgetStack::increaseZoom()
+{
+ d->imagePreviewView->slotIncreaseZoom();
+}
+
+void AlbumWidgetStack::decreaseZoom()
+{
+ d->imagePreviewView->slotDecreaseZoom();
+}
+
+bool AlbumWidgetStack::maxZoom()
+{
+ return d->imagePreviewView->maxZoom();
+}
+
+bool AlbumWidgetStack::minZoom()
+{
+ return d->imagePreviewView->minZoom();
+}
+
} // namespace Digikam
---
trunk/extragear/graphics/digikam/digikam/albumwidgetstack.h
#651580:651581
-67,6 +67,11
void setPreviewItem(ImageInfo* info=0, ImageInfo
*previous=0, ImageInfo *next=0);
int previewMode(void);
void setPreviewMode(int mode);
+
+ void increaseZoom();
+ void decreaseZoom();
+ bool maxZoom();
+ bool minZoom();
signals:
--- trunk/extragear/graphics/digikam/digikam/digikamapp.cpp
#651580:651581
-360,7 +360,7
connect(d->thumbSizeSlider,
SIGNAL(valueChanged(int)),
this, SLOT(slotThumbSizeTimer(int)));
- connect(d->view,
SIGNAL(signalThumbSizeChanged(int)),
+ connect(d->view, SIGNAL(signalZoomChanged(int)),
this, SLOT(slotThumbSizeChanged(int)));
connect(d->view, SIGNAL(signalTogglePreview(bool)),
-757,25 +757,21
//
-----------------------------------------------------------
- d->thumbSizePlusAction = new
KAction(i18n("Increase Thumbnail Size"),
+ d->thumbSizePlusAction = new KAction(i18n("Zoom
in"),
"viewmag+",
CTRL+Key_Plus,
d->view,
-
SLOT(slotThumbSizePlus()),
+ SLOT(slotZoomIn()),
actionCollection(),
-
"album_thumbSizeIncrease");
-
d->thumbSizePlusAction->setWhatsThis(i18n("This
option allows you to increase "
- "the
Album thumbnails size."));
+
"album_zoomin");
- d->thumbSizeMinusAction = new
KAction(i18n("Decrease Thumbnail Size"),
+ d->thumbSizeMinusAction = new
KAction(i18n("Zoom out"),
"viewmag-",
CTRL+Key_Minus,
d->view,
-
SLOT(slotThumbSizeMinus()),
+ SLOT(slotZoomOut()),
actionCollection(),
-
"album_thumbSizeDecrease");
-
d->thumbSizeMinusAction->setWhatsThis(i18n("This
option allows you to decrease "
- "the
Album thumbnails size."));
+
"album_zoomout");
#if KDE_IS_VERSION(3,2,0)
d->fullScreenAction = KStdAction::fullScreen(this,
SLOT(slotToggleFullScreen()),
-1796,28 +1792,6
KApplication::kApplication()->invokeBrowser("http://www.d
igikam.org/?q=donation");
}
-void DigikamApp::toggledToPreviewMode(bool t)
-{
- // NOTE: if 't' is true, we are in Preview Mode, else
we are in AlbumView Mode
-
- // This is require if ESC is pressed to go out of
Preview Mode.
- // imagePreviewAction is handled by F3 key only.
- d->imagePreviewAction->setChecked(t);
-
- // Here, we will toggle some menu actions depending of
current Mode.
-
- // Select menu.
- d->selectAllAction->setEnabled(!t);
- d->selectNoneAction->setEnabled(!t);
- d->selectInvertAction->setEnabled(!t);
-
- // View menu
- d->thumbSizePlusAction->setEnabled(!t);
- d->thumbSizeMinusAction->setEnabled(!t);
- d->albumSortAction->setEnabled(!t);
- d->imageSortAction->setEnabled(!t);
-}
-
void DigikamApp::slotThumbSizeTimer(int size)
{
d->thumbSizeTracker->setText(i18n("Thumbnail
size: %1").arg(size));
-1847,14 +1821,26
d->thumbSizeSlider->blockSignals(false);
}
-void DigikamApp::slotTooglePreview(bool b)
+void DigikamApp::slotTooglePreview(bool t)
{
- d->thumbSizeSlider->setEnabled(!b);
- // TODO : enable/disable the menu actions accordinly
with the current mode.
- // For ex., in Image Preview mode:
- // - disable Thumbs size +/-
- // - diable thumbs selection.
- // etc.
+ // NOTE: if 't' is true, we are in Preview Mode, else
we are in AlbumView Mode
+
+ d->thumbSizeSlider->setEnabled(!t);
+
+ // This is require if ESC is pressed to go out of
Preview Mode.
+ // imagePreviewAction is handled by F3 key only.
+ d->imagePreviewAction->setChecked(t);
+
+ // Here, we will toggle some menu actions depending of
current Mode.
+
+ // Select menu.
+ d->selectAllAction->setEnabled(!t);
+ d->selectNoneAction->setEnabled(!t);
+ d->selectInvertAction->setEnabled(!t);
+
+ // View menu
+ d->albumSortAction->setEnabled(!t);
+ d->imageSortAction->setEnabled(!t);
}
} // namespace Digikam
--- trunk/extragear/graphics/digikam/digikam/digikamapp.h
#651580:651581
-77,7 +77,6
void enableThumbSizeMinusAction(bool val);
void enableAlbumBackwardHistory(bool enable);
void enableAlbumForwardHistory(bool enable);
- void toggledToPreviewMode(bool t);
signals:
--- trunk/extragear/graphics/digikam/digikam/digikamui.rc
#651580:651581
-1,5 +1,5
<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
-<kpartgui version="21"
name="digikam" >
+<kpartgui version="22"
name="digikam" >
<MenuBar>
-62,8 +62,8
<Action name="full_screen" />
<Action name="slideshow" />
<Separator/>
- <Action name="album_thumbSizeIncrease"
/>
- <Action name="album_thumbSizeDecrease"
/>
+ <Action name="album_zoomin" />
+ <Action name="album_zoomout" />
<Separator />
<Action name="album_sort" />
<Action name="image_sort" />
-123,8 +123,8
<Action name="image_edit" />
<Action name="image_rename" />
<Separator/>
- <Action name="album_thumbSizeIncrease"
/>
- <Action name="album_thumbSizeDecrease"
/>
+ <Action name="album_zoomin" />
+ <Action name="album_zoomout" />
<Separator/>
<Action name="full_screen" />
<Action name="slideshow" />
--- trunk/extragear/graphics/digikam/digikam/digikamview.cpp
#651580:651581
-711,37 +711,74
emit signalNoCurrentItem();
- d->parent->enableThumbSizeMinusAction(true);
- d->parent->enableThumbSizePlusAction(true);
+ d->iconView->setThumbnailSize(size);
- if (size == ThumbnailSize::Huge)
- d->parent->enableThumbSizePlusAction(false);
+ toogleZoomActions();
- if (size == ThumbnailSize::Small)
-
d->parent->enableThumbSizeMinusAction(false);
-
- d->iconView->setThumbnailSize(size);
-
AlbumSettings* settings = AlbumSettings::instance();
if (!settings)
return;
settings->setDefaultIconSize(size);
}
-void DigikamView::slotThumbSizePlus()
+void DigikamView::toogleZoomActions()
{
- int newSize = d->iconView->thumbnailSize().size()
+ ThumbnailSize::Step;
- setThumbSize(newSize);
- emit signalThumbSizeChanged(newSize);
+ if (d->albumWidgetStack->previewMode() ==
AlbumWidgetStack::PreviewImageMode)
+ {
+ d->parent->enableThumbSizeMinusAction(true);
+ d->parent->enableThumbSizePlusAction(true);
+
+ if (d->albumWidgetStack->maxZoom())
+
d->parent->enableThumbSizePlusAction(false);
+
+ if (d->albumWidgetStack->minZoom())
+
d->parent->enableThumbSizeMinusAction(false);
+ }
+ else if (d->albumWidgetStack->previewMode() ==
AlbumWidgetStack::PreviewAlbumMode)
+ {
+ int size =
d->iconView->thumbnailSize().size();
+
+ d->parent->enableThumbSizeMinusAction(true);
+ d->parent->enableThumbSizePlusAction(true);
+
+ if (size == ThumbnailSize::Huge)
+
d->parent->enableThumbSizePlusAction(false);
+
+ if (size == ThumbnailSize::Small)
+
d->parent->enableThumbSizeMinusAction(false);
+ }
}
-void DigikamView::slotThumbSizeMinus()
+void DigikamView::slotZoomIn()
{
- int newSize = d->iconView->thumbnailSize().size()
- ThumbnailSize::Step;
- setThumbSize(newSize);
- emit signalThumbSizeChanged(newSize);
+ if (d->albumWidgetStack->previewMode() ==
AlbumWidgetStack::PreviewAlbumMode)
+ {
+ int newSize =
d->iconView->thumbnailSize().size() +
ThumbnailSize::Step;
+ setThumbSize(newSize);
+ emit signalZoomChanged(newSize);
+ }
+ else if (d->albumWidgetStack->previewMode() ==
AlbumWidgetStack::PreviewImageMode)
+ {
+ d->albumWidgetStack->increaseZoom();
+ toogleZoomActions();
+ }
}
+void DigikamView::slotZoomOut()
+{
+ if (d->albumWidgetStack->previewMode() ==
AlbumWidgetStack::PreviewAlbumMode)
+ {
+ int newSize =
d->iconView->thumbnailSize().size() -
ThumbnailSize::Step;
+ setThumbSize(newSize);
+ emit signalZoomChanged(newSize);
+ }
+ else if (d->albumWidgetStack->previewMode() ==
AlbumWidgetStack::PreviewImageMode)
+ {
+ d->albumWidgetStack->decreaseZoom();
+ toogleZoomActions();
+ }
+}
+
void DigikamView::slotAlbumPropsEdit()
{
d->folderView->albumEdit();
-867,24 +904,26
{
// We will go to ImagePreview Mode.
ImageInfo *previousInfo=0, *nextInfo=0;
+
if (iconItem->prevItem())
previousInfo =
static_cast<AlbumIconItem*>(iconItem->prevItem())-&
gt;imageInfo();
+
if (iconItem->nextItem())
nextInfo =
static_cast<AlbumIconItem*>(iconItem->nextItem())-&
gt;imageInfo();
+
d->albumWidgetStack->setPreviewItem(iconItem->image
Info(), previousInfo, nextInfo);
- emit signalTogglePreview(true);
}
else
{
// We go back to AlbumView Mode.
d->albumWidgetStack->setPreviewMode(
AlbumWidgetStack::PreviewAlbumMode );
- emit signalTogglePreview(false);
}
}
-void DigikamView::slotToggledToPreviewMode(bool t)
+void DigikamView::slotToggledToPreviewMode(bool b)
{
- d->parent->toggledToPreviewMode(t);
+ toogleZoomActions();
+ emit signalTogglePreview(b);
}
void DigikamView::slotImageEdit()
--- trunk/extragear/graphics/digikam/digikam/digikamview.h
#651580:651581
-72,14 +72,14
void signalNoCurrentItem();
void signalProgressBarMode(int, const QString&);
void signalProgressValue(int);
- void signalThumbSizeChanged(int);
+ void signalZoomChanged(int);
void signalTogglePreview(bool);
public slots:
// View Action slots
- void slotThumbSizePlus();
- void slotThumbSizeMinus();
+ void slotZoomIn();
+ void slotZoomOut();
void slotSlideShowAll();
void slotSlideShowSelection();
void slotSlideShowRecursive();
-136,6 +136,7
private:
+ void toogleZoomActions();
void setupConnections();
void loadViewState();
void saveViewState();
-152,7 +153,6
void slotImageSelected();
void slotTogglePreviewMode(AlbumIconItem *iconItem=0);
- void slotToggledToPreviewMode(bool);
void slotDispatchImageSelected();
void slotImageCopyResult(KIO::Job* job);
void slotItemsInfoFromAlbums(const
ImageInfoList&);
-164,6 +164,7
void slotNextItem(void);
void slotLastItem(void);
+ void slotToggledToPreviewMode(bool);
void slotEscapePreview();
void slotCancelSlideShow();
---
trunk/extragear/graphics/digikam/digikam/imagepreviewview.cp
p #651580:651581
-97,12 +97,6
//
------------------------------------------------------------
----
- connect(this, SIGNAL(signalPreviewComplete()),
- this, SIGNAL(signalPreviewLoaded()));
-
- connect(this, SIGNAL(signalPreviewFailed()),
- this, SIGNAL(signalPreviewLoaded()));
-
connect(this, SIGNAL(signalShowNextImage()),
this, SIGNAL(signalNextItem()));
-179,7 +173,7
if (preview.isNull())
{
- emit signalPreviewFailed();
+ emit signalPreviewLoaded();
QPixmap pix(visibleWidth(), visibleHeight());
pix.fill(ThemeEngine::instance()->baseColor());
QPainter p(&pix);
-194,7 +188,7
}
else
{
- emit signalPreviewComplete();
+ emit signalPreviewLoaded();
setImage(preview);
}
---
trunk/extragear/graphics/digikam/digikam/imagepreviewview.h
#651580:651581
-57,6 +57,7
signals:
+ void signalPreviewStarted();
void signalNextItem();
void signalPrevItem();
void signalDeleteItem();
---
trunk/extragear/graphics/digikam/digikam/imagepreviewwidget.
cpp #651580:651581
-270,6 +270,7
sw = step;
sh = step;
+ // Fast smooth scale method from
Antonio.
QImage img =
FastScale::fastScaleQImage(d->preview.copy(sx, sy, sw,
sh),
d->tileSize, d->tileSize);
bitBlt(pix, 0, 0, &img, 0, 0);
-381,7 +382,7
return;
}
- QScrollView::contentsWheelEvent(e);
+ QScrollView::contentsWheelEvent(e);*/
}
bool ImagePreviewWidget::maxZoom()
---
trunk/extragear/graphics/digikam/digikam/imagepreviewwidget.
h #651580:651581
-61,9 +61,6
void signalLeftButtonClicked();
void signalShowNextImage();
void signalShowPrevImage();
- void signalPreviewStarted();
- void signalPreviewComplete();
- void signalPreviewFailed();
public slots:
_______________________________________________
Digikam-devel mailing list
Digikam-devel kde.org
h
ttps://mail.kde.org/mailman/listinfo/digikam-devel
|