[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/extragear/graphics/kipi-plugins/gpssync2
From: Michael Georg Hansen <mike () mghansen ! de>
Date: 2010-06-03 21:12:09
Message-ID: 20100603211209.729BDAC8CB () svn ! kde ! org
[Download RAW message or body]
SVN commit 1134303 by mghansen:
Undo/redo names now include the name of the object to which the images were snapped.
M +44 -13 gpsbookmarkowner.cpp
M +11 -4 gpsbookmarkowner.h
M +7 -2 gpssyncdialog.cpp
M +1 -1 searchbackend.cpp
M +45 -13 searchwidget.cpp
M +12 -4 searchwidget.h
--- branches/extragear/graphics/kipi-plugins/gpssync2/gpsbookmarkowner.cpp \
#1134302:1134303 @@ -36,6 +36,8 @@
// local includes
#include "inputboxnocancel.h"
+#include "gpsundocommand.h"
+#include "kipiimagemodel.h"
namespace KIPIGPSSyncPlugin
{
@@ -64,7 +66,7 @@
QString lastTitle;
};
-GPSBookmarkOwner::GPSBookmarkOwner(QWidget* const parent)
+GPSBookmarkOwner::GPSBookmarkOwner(KipiImageModel* const kipiImageModel, QWidget* \
const parent) : d(new GPSBookmarkOwnerPrivate())
{
d->parent = parent;
@@ -77,7 +79,7 @@
d->bookmarkMenu = new KMenu(parent);
d->bookmarkMenuController = new KBookmarkMenu(d->bookmarkManager, this, \
d->bookmarkMenu, d->actionCollection);
- d->bookmarkModelHelper = new GPSBookmarkModelHelper(d->bookmarkManager, this);
+ d->bookmarkModelHelper = new GPSBookmarkModelHelper(d->bookmarkManager, \
kipiImageModel, this); }
GPSBookmarkOwner::~GPSBookmarkOwner()
@@ -170,6 +172,7 @@
QStandardItemModel* model;
KBookmarkManager* bookmarkManager;
+ KipiImageModel* kipiImageModel;
QPixmap pixmap;
bool visible;
@@ -177,11 +180,12 @@
};
-GPSBookmarkModelHelper::GPSBookmarkModelHelper(KBookmarkManager* const \
bookmarkManager, QObject* const parent) \
+GPSBookmarkModelHelper::GPSBookmarkModelHelper(KBookmarkManager* const \
bookmarkManager, KipiImageModel* const kipiImageModel, QObject* const parent) : \
WMWModelHelper(parent), d(new GPSBookmarkModelHelperPrivate()) {
d->model = new QStandardItemModel(this);
d->bookmarkManager = bookmarkManager;
+ d->kipiImageModel = kipiImageModel;
const KUrl markerUrl = KStandardDirs::locate("data", \
"gpssync2/bookmarks-marker.png"); d->pixmap = QPixmap(markerUrl.toLocalFile());
@@ -247,6 +251,7 @@
if (okay)
{
QStandardItem* const item = new QStandardItem();
+ item->setData(currentBookmark.text(), Qt::DisplayRole);
item->setData(QVariant::fromValue(coordinates), \
GPSBookmarkModelHelper::CoordinatesRole);
model->appendRow(item);
@@ -270,26 +275,52 @@
return d->bookmarkModelHelper;
}
-bool GPSBookmarkModelHelper::visible() const
-{
- return d->visible;
-}
-
void GPSBookmarkModelHelper::setVisible(const bool state)
{
d->visible = state;
emit(signalVisibilityChanged());
}
-bool GPSBookmarkModelHelper::snaps() const
-{
- return true;
-}
-
void GPSBookmarkOwner::setPositionAndTitle(const WMW2::WMWGeoCoordinate& \
coordinates, const QString& title) {
d->lastCoordinates = coordinates;
d->lastTitle = title;
}
+WMW2::WMWModelHelper::Flags GPSBookmarkModelHelper::modelFlags() const
+{
+ return FlagSnaps|(d->visible?FlagVisible:FlagNull);
+}
+
+WMW2::WMWModelHelper::Flags GPSBookmarkModelHelper::itemFlags(const QModelIndex& \
index) const +{
+ return FlagVisible|FlagSnaps;
+}
+
+void GPSBookmarkModelHelper::snapItemsTo(const QModelIndex& targetIndex, const \
QList<QModelIndex>& snappedIndices) +{
+ GPSUndoCommand* const undoCommand = new GPSUndoCommand();
+
+ WMW2::WMWGeoCoordinate targetCoordinates;
+ if (!itemCoordinates(targetIndex, &targetCoordinates))
+ return;
+
+ for (int i=0; i<snappedIndices.count(); ++i)
+ {
+ const QPersistentModelIndex itemIndex = snappedIndices.at(i);
+ GPSImageItem* const item = \
static_cast<GPSImageItem*>(d->kipiImageModel->itemFromIndex(itemIndex)); + \
const GPSDataContainer oldData = item->gpsData(); + GPSDataContainer newData = \
oldData; + newData.setCoordinates(targetCoordinates);
+ item->setGPSData(newData);
+
+ undoCommand->addUndoInfo(GPSUndoCommand::UndoInfo(itemIndex, oldData, \
newData)); + }
+ kDebug()<<targetIndex.data(Qt::DisplayRole).toString();
+ undoCommand->setText(i18np("1 image snapped to %2",
+ "%1 images snapped to %2", snappedIndices.count(), \
targetIndex.data(Qt::DisplayRole).toString())); +
+ emit(signalUndoCommand(undoCommand));
+}
+
} // namespace KIPIGPSSyncPlugin
--- branches/extragear/graphics/kipi-plugins/gpssync2/gpsbookmarkowner.h \
#1134302:1134303 @@ -36,6 +36,8 @@
namespace KIPIGPSSyncPlugin
{
+class KipiImageModel;
+class GPSUndoCommand;
class GPSBookmarkModelHelperPrivate;
class GPSBookmarkModelHelper : public WMW2::WMWModelHelper
{
@@ -46,21 +48,26 @@
CoordinatesRole = Qt::UserRole + 1
};
- GPSBookmarkModelHelper(KBookmarkManager* const bookmarkManager, QObject* const \
parent = 0); + GPSBookmarkModelHelper(KBookmarkManager* const bookmarkManager, \
KipiImageModel* const kipiImageModel, QObject* const parent = 0); virtual \
~GPSBookmarkModelHelper();
virtual QAbstractItemModel* model() const;
virtual QItemSelectionModel* selectionModel() const;
virtual bool itemCoordinates(const QModelIndex& index, WMW2::WMWGeoCoordinate* \
const coordinates) const;
virtual QPixmap itemIcon(const QModelIndex& index, QPoint* const offset) const;
- virtual bool visible() const;
- virtual bool snaps() const;
+ virtual Flags modelFlags() const;
+ virtual Flags itemFlags(const QModelIndex& index) const;
+ virtual void snapItemsTo(const QModelIndex& targetIndex, const \
QList<QModelIndex>& snappedIndices);
void setVisible(const bool state);
private Q_SLOTS:
void slotUpdateBookmarksModel();
+
+Q_SIGNALS:
+ void signalUndoCommand(GPSUndoCommand* undoCommand);
+
private:
GPSBookmarkModelHelperPrivate* const d;
};
@@ -71,7 +78,7 @@
Q_OBJECT
public:
- GPSBookmarkOwner(QWidget* const parent);
+ GPSBookmarkOwner(KipiImageModel* const kipiImageModel, QWidget* const parent);
virtual ~GPSBookmarkOwner();
virtual bool supportsTabs() const;
--- branches/extragear/graphics/kipi-plugins/gpssync2/gpssyncdialog.cpp \
#1134302:1134303 @@ -194,7 +194,7 @@
d->representativeChooser = new GPSSyncWMWRepresentativeChooser(d->imageModel, \
this);
d->undoStack = new KUndoStack(this);
- d->bookmarkOwner = new GPSBookmarkOwner(this);
+ d->bookmarkOwner = new GPSBookmarkOwner(d->imageModel, this);
d->actionBookmarkVisibility = new KAction(this);
d->actionBookmarkVisibility->setIcon(SmallIcon("bookmarks"));
@@ -331,7 +331,7 @@
d->rgWidget = new GPSReverseGeocodingWidget(d->imageModel, d->selectionModel, \
d->stackedWidget); d->stackedWidget->addWidget(d->rgWidget);
- d->searchWidget = new SearchWidget(d->mapWidget, d->bookmarkOwner, \
d->stackedWidget); + d->searchWidget = new SearchWidget(d->mapWidget, \
d->bookmarkOwner, d->imageModel, d->stackedWidget); \
d->mapWidget->addUngroupedModel(d->searchWidget->getModelHelper()); \
d->stackedWidget->addWidget(d->searchWidget);
@@ -392,6 +392,8 @@
connect(d->rgWidget, SIGNAL(signalUndoCommand(GPSUndoCommand*)),
this, SLOT(slotGPSUndoCommand(GPSUndoCommand*)));
+ connect(d->searchWidget, SIGNAL(signalUndoCommand(GPSUndoCommand*)),
+ this, SLOT(slotGPSUndoCommand(GPSUndoCommand*)));
connect(d->listViewContextMenu, SIGNAL(signalUndoCommand(GPSUndoCommand*)),
this, SLOT(slotGPSUndoCommand(GPSUndoCommand*)));
@@ -402,6 +404,9 @@
connect(d->tabBar, SIGNAL(currentChanged(int)),
this, SLOT(slotCurrentTabChanged(int)));
+ connect(d->bookmarkOwner->bookmarkModelHelper(), \
SIGNAL(signalUndoCommand(GPSUndoCommand*)), + this, \
SLOT(slotGPSUndoCommand(GPSUndoCommand*))); +
readSettings();
}
--- branches/extragear/graphics/kipi-plugins/gpssync2/searchbackend.cpp \
#1134302:1134303 @@ -257,7 +257,7 @@
QList<QPair<QString, QString> > SearchBackend::getBackends() const
{
QList<QPair<QString, QString> > resultList;
- resultList << QPair<QString, QString>(i18n("geonames.org"), "geonames.org");
+ resultList << QPair<QString, QString>(i18n("GeoNames"), "geonames.org");
resultList << QPair<QString, QString>(i18n("OSM"), "osm");
return resultList;
--- branches/extragear/graphics/kipi-plugins/gpssync2/searchwidget.cpp \
#1134302:1134303 @@ -48,6 +48,8 @@
#include <worldmapwidget2/worldmapwidget2.h>
#include "gpssync2_common.h"
#include "gpsbookmarkowner.h"
+#include "gpsundocommand.h"
+#include "kipiimagemodel.h"
namespace KIPIGPSSyncPlugin
{
@@ -64,6 +66,7 @@
WMW2::WorldMapWidget2* mapWidget;
GPSBookmarkOwner* gpsBookmarkOwner;
+ KipiImageModel* kipiImageModel;
KLineEdit* searchTermLineEdit;
QPushButton* searchButton;
SearchBackend* searchBackend;
@@ -84,16 +87,17 @@
KAction* actionBookmark;
};
-SearchWidget::SearchWidget(WMW2::WorldMapWidget2* const mapWidget, GPSBookmarkOwner* \
const gpsBookmarkOwner, QWidget* parent) \
+SearchWidget::SearchWidget(WMW2::WorldMapWidget2* const mapWidget, GPSBookmarkOwner* \
const gpsBookmarkOwner, KipiImageModel* const kipiImageModel, QWidget* parent) : \
QWidget(parent), d(new SearchWidgetPrivate()) {
d->mapWidget = mapWidget;
d->gpsBookmarkOwner = gpsBookmarkOwner;
+ d->kipiImageModel = kipiImageModel;
d->searchBackend = new SearchBackend(this);
d->searchResultsModel = new SearchResultModel(this);
d->searchResultsSelectionModel = new QItemSelectionModel(d->searchResultsModel);
d->searchResultsModel->setSelectionModel(d->searchResultsSelectionModel);
- d->searchResultModelHelper = new SearchResultModelHelper(d->searchResultsModel, \
d->searchResultsSelectionModel, this); + d->searchResultModelHelper = new \
SearchResultModelHelper(d->searchResultsModel, d->searchResultsSelectionModel, \
d->kipiImageModel, this);
d->mainVBox = new QVBoxLayout(this);
setLayout(d->mainVBox);
@@ -178,6 +182,9 @@
connect(d->actionCopyCoordinates, SIGNAL(triggered(bool)),
this, SLOT(slotCopyCoordinates()));
+ connect(d->searchResultModelHelper, SIGNAL(signalUndoCommand(GPSUndoCommand*)),
+ this, SIGNAL(signalUndoCommand(GPSUndoCommand*)));
+
d->treeView->installEventFilter(this);
slotUpdateUIState();
@@ -381,14 +388,16 @@
SearchResultModel* model;
QItemSelectionModel* selectionModel;
+ KipiImageModel* imageModel;
bool visible;
};
-SearchResultModelHelper::SearchResultModelHelper(SearchResultModel* const \
resultModel, QItemSelectionModel* const selectionModel, QObject* const parent) \
+SearchResultModelHelper::SearchResultModelHelper(SearchResultModel* const \
resultModel, QItemSelectionModel* const selectionModel, KipiImageModel* const \
imageModel, QObject* const parent) : WMW2::WMWModelHelper(parent), d(new \
SearchResultModelHelperPrivate()) {
d->model = resultModel;
d->selectionModel = selectionModel;
+ d->imageModel = imageModel;
}
SearchResultModelHelper::~SearchResultModelHelper()
@@ -420,16 +429,6 @@
return d->model->getMarkerIcon(index, offset);
}
-bool SearchResultModelHelper::visible() const
-{
- return d->visible;
-}
-
-bool SearchResultModelHelper::snaps() const
-{
- return true;
-}
-
SearchResultModel::SearchResultItem SearchResultModel::resultItem(const QModelIndex& \
index) const {
return d->searchResults.at(index.row());
@@ -576,4 +575,37 @@
}
}
+WMW2::WMWModelHelper::Flags SearchResultModelHelper::modelFlags() const
+{
+ return FlagSnaps|(d->visible?FlagVisible:FlagNull);
+}
+
+WMW2::WMWModelHelper::Flags SearchResultModelHelper::itemFlags(const QModelIndex& \
index) const +{
+ return FlagVisible|FlagSnaps;
+}
+
+void SearchResultModelHelper::snapItemsTo(const QModelIndex& targetIndex, const \
QList<QModelIndex>& snappedIndices) +{
+ GPSUndoCommand* const undoCommand = new GPSUndoCommand();
+
+ SearchResultModel::SearchResultItem targetItem = \
d->model->resultItem(targetIndex); + const WMW2::WMWGeoCoordinate& \
targetCoordinates = targetItem.result.coordinates; + for (int i=0; \
i<snappedIndices.count(); ++i) + {
+ const QPersistentModelIndex itemIndex = snappedIndices.at(i);
+ GPSImageItem* const item = \
static_cast<GPSImageItem*>(d->imageModel->itemFromIndex(itemIndex)); + const \
GPSDataContainer oldData = item->gpsData(); + GPSDataContainer newData = \
oldData; + newData.setCoordinates(targetCoordinates);
+ item->setGPSData(newData);
+
+ undoCommand->addUndoInfo(GPSUndoCommand::UndoInfo(itemIndex, oldData, \
newData)); + }
+ undoCommand->setText(i18np("1 image snapped to %2",
+ "%1 images snapped to %2", snappedIndices.count(), \
targetItem.result.name)); +
+ emit(signalUndoCommand(undoCommand));
+}
+
} /* KIPIGPSSyncPlugin */
--- branches/extragear/graphics/kipi-plugins/gpssync2/searchwidget.h #1134302:1134303
@@ -36,6 +36,7 @@
{
class GPSBookmarkOwner;
+class GPSUndoCommand;
class SearchResultItem;
class SearchResultModelPrivate;
class SearchResultModel : public QAbstractItemModel
@@ -78,18 +79,22 @@
{
Q_OBJECT
public:
- SearchResultModelHelper(SearchResultModel* const resultModel, \
QItemSelectionModel* const selectionModel, QObject* const parent = 0); + \
SearchResultModelHelper(SearchResultModel* const resultModel, QItemSelectionModel* \
const selectionModel, KipiImageModel* const imageModel, QObject* const parent = 0); \
~SearchResultModelHelper();
virtual QAbstractItemModel* model() const;
virtual QItemSelectionModel* selectionModel() const;
virtual bool itemCoordinates(const QModelIndex& index, WMW2::WMWGeoCoordinate* \
const coordinates) const;
virtual QPixmap itemIcon(const QModelIndex& index, QPoint* const offset) const;
- virtual bool visible() const;
- virtual bool snaps() const;
+ virtual Flags modelFlags() const;
+ virtual Flags itemFlags(const QModelIndex& index) const;
+ virtual void snapItemsTo(const QModelIndex& targetIndex, const \
QList<QModelIndex>& snappedIndices);
void setVisibility(const bool state);
+Q_SIGNALS:
+ void signalUndoCommand(GPSUndoCommand* undoCommand);
+
private:
SearchResultModelHelperPrivate* const d;
};
@@ -100,7 +105,7 @@
Q_OBJECT
public:
- SearchWidget(WMW2::WorldMapWidget2* const mapWidget, GPSBookmarkOwner* const \
gpsBookmarkOwner, QWidget* parent = 0); + SearchWidget(WMW2::WorldMapWidget2* \
const mapWidget, GPSBookmarkOwner* const gpsBookmarkOwner, KipiImageModel* const \
kipiImageModel, QWidget* parent = 0); ~SearchWidget();
WMW2::WMWModelHelper* getModelHelper();
@@ -119,6 +124,9 @@
protected:
virtual bool eventFilter(QObject *watched, QEvent *event);
+Q_SIGNALS:
+ void signalUndoCommand(GPSUndoCommand* undoCommand);
+
private:
SearchWidgetPrivate* const d;
};
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic