[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/extragear/graphics
From: Michael Georg Hansen <mike () mghansen ! de>
Date: 2010-08-28 16:35:19
Message-ID: 20100828163519.52184AC86C () svn ! kde ! org
[Download RAW message or body]
SVN commit 1169198 by mghansen:
Make the sticky mode work in the image properties.
M +10 -1 digikam/libs/imageproperties/imagepropertiesgpstab.cpp
M +8 -0 libkmap/libkmap/kmap_primitives.h
M +64 -2 libkmap/libkmap/kmap_widget.cpp
M +6 -0 libkmap/libkmap/kmap_widget.h
--- branches/extragear/graphics/digikam/libs/imageproperties/imagepropertiesgpstab.cpp \
#1169197:1169198 @@ -122,6 +122,8 @@
d->map = new KMap::KMapWidget(mapPanel);
d->map->setAvailableMouseModes(KMap::MouseModePan|KMap::MouseModeZoom);
d->map->setVisibleMouseModes(KMap::MouseModePan|KMap::MouseModeZoom);
+ d->map->setEnabledExtraActions(KMap::ExtraActionSticky);
+ d->map->setVisibleExtraActions(KMap::ExtraActionSticky);
vlay2->addWidget(d->map);
vlay2->setMargin(0);
vlay2->setSpacing(0);
@@ -361,7 +363,7 @@
{
setEnabled(false);
}
- else if (list.count() >= 1)
+ else if (list.count() == 1)
{
if (!list.first().hasAltitude)
d->altitude->setText("Undefined");
@@ -387,6 +389,13 @@
ImageGPSItem* const currentImageGPSItem = new \
ImageGPSItem(d->gpsInfoList.at(i)); d->itemModel->appendRow(currentImageGPSItem);
}
+
+ if (!d->map->getStickyModeState())
+ {
+ // TODO: adjust the zoom and map boundaries to show all images
+ const GPSInfo firstInfo = d->gpsInfoList.first();
+ d->map->setCenter(KMap::GeoCoordinates(firstInfo.latitude, \
firstInfo.longitude)); }
+}
} // namespace Digikam
--- branches/extragear/graphics/libkmap/libkmap/kmap_primitives.h #1169197:1169198
@@ -87,6 +87,14 @@
Q_DECLARE_FLAGS(MouseModes, MouseMode)
Q_DECLARE_OPERATORS_FOR_FLAGS(MouseModes);
+enum ExtraAction
+{
+ ExtraActionSticky = 1
+};
+
+Q_DECLARE_FLAGS(ExtraActions, ExtraAction)
+Q_DECLARE_OPERATORS_FOR_FLAGS(ExtraActions);
+
enum DisplayedRectangles
{
SelectionRectangle = 0,
--- branches/extragear/graphics/libkmap/libkmap/kmap_widget.cpp #1169197:1169198
@@ -164,7 +164,11 @@
activeState(false),
hasSelection(false),
availableMouseModes(0),
- visibleMouseModes(0)
+ visibleMouseModes(0),
+ availableExtraActions(0),
+ visibleExtraActions(0),
+ actionStickyMode(0),
+ buttonStickyMode(0)
{
}
@@ -238,6 +242,11 @@
bool hasSelection;
MouseModes availableMouseModes;
MouseModes visibleMouseModes;
+
+ ExtraActions availableExtraActions;
+ ExtraActions visibleExtraActions;
+ KAction* actionStickyMode;
+ QToolButton* buttonStickyMode;
};
KMapWidget::KMapWidget(QWidget* const parent)
@@ -358,6 +367,12 @@
d->actionSetSelectThumbnailMode->setToolTip(i18n("Select images"));
d->actionSetSelectThumbnailMode->setIcon(SmallIcon("edit-select"));
+ d->actionStickyMode = new KAction(this);
+ d->actionStickyMode->setCheckable(true);
+ d->actionStickyMode->setToolTip(i18n("Lock the map position"));
+ connect(d->actionStickyMode, SIGNAL(triggered(const bool)),
+ this, SLOT(slotStickyModeChanged()));
+
// TODO: for later actions
// action->setToolTip(i18n("Zoom into a group"));
// action->setIcon(SmallIcon("page-zoom"));
@@ -404,7 +419,6 @@
connect(d->actionRemoveCurrentSelection, SIGNAL(triggered()),
this, SLOT(slotRemoveCurrentSelection()));
-
}
void KMapWidget::createActionsForBackendSelection()
@@ -678,6 +692,10 @@
group->writeEntry("Grouping Radius", d->groupingRadius);
group->writeEntry("Edit Grouping Radius", d->editGroupingRadius);
group->writeEntry("In Edit Mode", s->inEditMode);
+ if (d->visibleExtraActions.testFlag(ExtraActionSticky))
+ {
+ group->writeEntry("Sticky Mode State", d->actionStickyMode->isChecked());
+ }
for (int i=0; i<d->loadedBackends.size(); ++i)
{
@@ -722,6 +740,7 @@
d->loadedBackends.at(i)->readSettingsFromGroup(group);
}
+ d->actionStickyMode->setChecked(group->readEntry("Sticky Mode State", \
d->actionStickyMode->isChecked())); slotUpdateActionsEnabled();
}
@@ -845,9 +864,13 @@
d->setSelectThumbnailMode = new QToolButton(d->mouseModesHolder);
d->setSelectThumbnailMode->setDefaultAction(d->actionSetSelectThumbnailMode);
+ d->buttonStickyMode = new QToolButton(d->controlWidget);
+ d->buttonStickyMode->setDefaultAction(d->actionStickyMode);
+
d->hBoxForAdditionalControlWidgetItems = new KHBox(d->controlWidget);
setVisibleMouseModes(d->visibleMouseModes);
+ setVisibleExtraActions(d->visibleExtraActions);
// add stretch after the controls:
QHBoxLayout* const hBoxLayout = \
reinterpret_cast<QHBoxLayout*>(d->controlWidget->layout()); @@ -892,6 +915,9 @@
d->actionSetFilterMode->setEnabled(d->availableMouseModes.testFlag(MouseModeFilter));
d->actionRemoveFilterMode->setEnabled(d->availableMouseModes.testFlag(MouseModeFilter));
d->actionSetSelectThumbnailMode->setEnabled(d->availableMouseModes.testFlag(MouseModeSelectThumbnail));
+
+ d->actionStickyMode->setEnabled(d->availableExtraActions.testFlag(ExtraActionSticky));
+ d->actionStickyMode->setIcon(SmallIcon(d->actionStickyMode->isChecked()?"object-locked":"object-unlocked"));
}
void KMapWidget::slotChangeBackend(QAction* action)
@@ -2323,5 +2349,41 @@
d->availableMouseModes = mouseModes;
}
+bool KMapWidget::getStickyModeState() const
+{
+ return d->actionStickyMode->isChecked();
+}
+
+void KMapWidget::setStickyModeState(const bool state)
+{
+ d->actionStickyMode->setChecked(state);
+ slotUpdateActionsEnabled();
+}
+
+void KMapWidget::setVisibleExtraActions(const ExtraActions actions)
+{
+ d->visibleExtraActions = actions;
+
+ if (d->buttonStickyMode)
+ {
+ d->buttonStickyMode->setVisible(actions.testFlag(ExtraActionSticky));
+ }
+
+ slotUpdateActionsEnabled();
+}
+
+void KMapWidget::setEnabledExtraActions(const ExtraActions actions)
+{
+ d->availableExtraActions = actions;
+
+ slotUpdateActionsEnabled();
+}
+
+void KMapWidget::slotStickyModeChanged()
+{
+ slotUpdateActionsEnabled();
+ emit(signalStickyModeChanged());
+}
+
} /* namespace KMap */
--- branches/extragear/graphics/libkmap/libkmap/kmap_widget.h #1169197:1169198
@@ -122,6 +122,10 @@
bool getSelectionStatus() const;
void setActive(const bool state);
bool getActiveState();
+ bool getStickyModeState() const;
+ void setStickyModeState(const bool state);
+ void setVisibleExtraActions(const ExtraActions actions);
+ void setEnabledExtraActions(const ExtraActions actions);
public Q_SLOTS:
@@ -140,6 +144,7 @@
void slotRemoveCurrentSelection();
void slotRemoveCurrentFilter();
void stopThumbnailTimer();
+ void slotStickyModeChanged();
Q_SIGNALS:
@@ -149,6 +154,7 @@
void signalNewSelectionFromMap();
void signalRemoveCurrentSelection();
void signalRemoveCurrentFilter();
+ void signalStickyModeChanged();
public:
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic