|
 |
a9add1 |
From aff2d164a982917c57be5e8a18c6c1366b836c09 Mon Sep 17 00:00:00 2001
|
|
 |
a9add1 |
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
|
 |
a9add1 |
Date: Fri, 28 Aug 2015 15:13:41 +0100
|
|
 |
a9add1 |
Subject: [PATCH] time stamp object selections and use newest as ref for
|
|
 |
a9add1 |
equalization
|
|
 |
a9add1 |
|
|
 |
a9add1 |
Change-Id: I1bf22ddbaf263b240288f70d03d6949611f86b69
|
|
 |
a9add1 |
---
|
|
 |
a9add1 |
include/svx/svdmark.hxx | 8 ++++++++
|
|
 |
a9add1 |
svx/source/svdraw/svdedtv2.cxx | 18 ++++++++++++++++--
|
|
 |
a9add1 |
svx/source/svdraw/svdmark.cxx | 12 +++++++++---
|
|
 |
a9add1 |
3 files changed, 33 insertions(+), 5 deletions(-)
|
|
 |
a9add1 |
|
|
 |
a9add1 |
diff --git a/include/svx/svdmark.hxx b/include/svx/svdmark.hxx
|
|
 |
a9add1 |
index cba0a75..aee9dd7 100644
|
|
 |
a9add1 |
--- a/include/svx/svdmark.hxx
|
|
 |
a9add1 |
+++ b/include/svx/svdmark.hxx
|
|
 |
a9add1 |
@@ -42,7 +42,10 @@ typedef std::set<sal_uInt16> SdrUShortCont;
|
|
 |
a9add1 |
// Everything a View needs to know about a selected object
|
|
 |
a9add1 |
class SVX_DLLPUBLIC SdrMark : public sdr::ObjectUser
|
|
 |
a9add1 |
{
|
|
 |
a9add1 |
+private:
|
|
 |
a9add1 |
+ void setTime();
|
|
 |
a9add1 |
protected:
|
|
 |
a9add1 |
+ sal_Int64 mnTimeStamp;
|
|
 |
a9add1 |
SdrObject* mpSelectedSdrObject; // the selected object
|
|
 |
a9add1 |
SdrPageView* mpPageView;
|
|
 |
a9add1 |
SdrUShortCont* mpPoints; // Selected Points
|
|
 |
a9add1 |
@@ -145,6 +148,11 @@ public:
|
|
 |
a9add1 |
|
|
 |
a9add1 |
return mpGluePoints;
|
|
 |
a9add1 |
}
|
|
 |
a9add1 |
+
|
|
 |
a9add1 |
+ sal_Int64 getTimeStamp() const
|
|
 |
a9add1 |
+ {
|
|
 |
a9add1 |
+ return mnTimeStamp;
|
|
 |
a9add1 |
+ }
|
|
 |
a9add1 |
};
|
|
 |
a9add1 |
|
|
 |
a9add1 |
class SVX_DLLPUBLIC SdrMarkList
|
|
 |
a9add1 |
diff --git a/svx/source/svdraw/svdedtv2.cxx b/svx/source/svdraw/svdedtv2.cxx
|
|
 |
a9add1 |
index 719355d..090efa7 100644
|
|
 |
a9add1 |
--- a/svx/source/svdraw/svdedtv2.cxx
|
|
 |
a9add1 |
+++ b/svx/source/svdraw/svdedtv2.cxx
|
|
 |
a9add1 |
@@ -1181,7 +1181,19 @@ void SdrEditView::EqualizeMarkedObjects(bool bWidth)
|
|
 |
a9add1 |
if (nMarked < 2)
|
|
 |
a9add1 |
return;
|
|
 |
a9add1 |
|
|
 |
a9add1 |
- SdrObject* pLastSelectedObj = rMarkList.GetMark(nMarked-1)->GetMarkedSdrObj();
|
|
 |
a9add1 |
+ size_t nLastSelected = 0;
|
|
 |
a9add1 |
+ sal_Int64 nLastSelectedTime = rMarkList.GetMark(0)->getTimeStamp();
|
|
 |
a9add1 |
+ for (size_t a = 1; a < nMarked; ++a)
|
|
 |
a9add1 |
+ {
|
|
 |
a9add1 |
+ sal_Int64 nCandidateTime = rMarkList.GetMark(a)->getTimeStamp();
|
|
 |
a9add1 |
+ if (nCandidateTime > nLastSelectedTime)
|
|
 |
a9add1 |
+ {
|
|
 |
a9add1 |
+ nLastSelectedTime = nCandidateTime;
|
|
 |
a9add1 |
+ nLastSelected = a;
|
|
 |
a9add1 |
+ }
|
|
 |
a9add1 |
+ }
|
|
 |
a9add1 |
+
|
|
 |
a9add1 |
+ SdrObject* pLastSelectedObj = rMarkList.GetMark(nLastSelected)->GetMarkedSdrObj();
|
|
 |
a9add1 |
Size aLastRectSize(pLastSelectedObj->GetLogicRect().GetSize());
|
|
 |
a9add1 |
|
|
 |
a9add1 |
const bool bUndo = IsUndoEnabled();
|
|
 |
a9add1 |
@@ -1189,8 +1201,10 @@ void SdrEditView::EqualizeMarkedObjects(bool bWidth)
|
|
 |
a9add1 |
if (bUndo)
|
|
 |
a9add1 |
BegUndo();
|
|
 |
a9add1 |
|
|
 |
a9add1 |
- for (size_t a = 0; a < nMarked-1; ++a)
|
|
 |
a9add1 |
+ for (size_t a = 0; a < nMarked; ++a)
|
|
 |
a9add1 |
{
|
|
 |
a9add1 |
+ if (a == nLastSelected)
|
|
 |
a9add1 |
+ continue;
|
|
 |
a9add1 |
SdrMark* pM = rMarkList.GetMark(a);
|
|
 |
a9add1 |
SdrObject* pObj = pM->GetMarkedSdrObj();
|
|
 |
a9add1 |
Rectangle aLogicRect(pObj->GetLogicRect());
|
|
 |
a9add1 |
diff --git a/svx/source/svdraw/svdmark.cxx b/svx/source/svdraw/svdmark.cxx
|
|
 |
a9add1 |
index 7ddde61..8b7f3e09c 100644
|
|
 |
a9add1 |
--- a/svx/source/svdraw/svdmark.cxx
|
|
 |
a9add1 |
+++ b/svx/source/svdraw/svdmark.cxx
|
|
 |
a9add1 |
@@ -38,8 +38,12 @@
|
|
 |
a9add1 |
#include <svl/SfxBroadcaster.hxx>
|
|
 |
a9add1 |
#include <svx/svdoedge.hxx>
|
|
 |
a9add1 |
|
|
 |
a9add1 |
-
|
|
 |
a9add1 |
-
|
|
 |
a9add1 |
+void SdrMark::setTime()
|
|
 |
a9add1 |
+{
|
|
 |
a9add1 |
+ TimeValue aNow;
|
|
 |
a9add1 |
+ osl_getSystemTime(&aNow);
|
|
 |
a9add1 |
+ mnTimeStamp = sal_Int64(aNow.Seconds) * 1000000000L + aNow.Nanosec;
|
|
 |
a9add1 |
+}
|
|
 |
a9add1 |
|
|
 |
a9add1 |
SdrMark::SdrMark(SdrObject* pNewObj, SdrPageView* pNewPageView)
|
|
 |
a9add1 |
: mpSelectedSdrObject(pNewObj),
|
|
 |
a9add1 |
@@ -55,10 +59,12 @@ SdrMark::SdrMark(SdrObject* pNewObj, SdrPageView* pNewPageView)
|
|
 |
a9add1 |
{
|
|
 |
a9add1 |
mpSelectedSdrObject->AddObjectUser( *this );
|
|
 |
a9add1 |
}
|
|
 |
a9add1 |
+ setTime();
|
|
 |
a9add1 |
}
|
|
 |
a9add1 |
|
|
 |
a9add1 |
SdrMark::SdrMark(const SdrMark& rMark)
|
|
 |
a9add1 |
: ObjectUser(),
|
|
 |
a9add1 |
+ mnTimeStamp(0),
|
|
 |
a9add1 |
mpSelectedSdrObject(0L),
|
|
 |
a9add1 |
mpPageView(0L),
|
|
 |
a9add1 |
mpPoints(0L),
|
|
 |
a9add1 |
@@ -117,10 +123,10 @@ void SdrMark::SetMarkedSdrObj(SdrObject* pNewObj)
|
|
 |
a9add1 |
}
|
|
 |
a9add1 |
}
|
|
 |
a9add1 |
|
|
 |
a9add1 |
-
|
|
 |
a9add1 |
SdrMark& SdrMark::operator=(const SdrMark& rMark)
|
|
 |
a9add1 |
{
|
|
 |
a9add1 |
SetMarkedSdrObj(rMark.mpSelectedSdrObject);
|
|
 |
a9add1 |
+ mnTimeStamp = rMark.mnTimeStamp;
|
|
 |
a9add1 |
mpPageView = rMark.mpPageView;
|
|
 |
a9add1 |
mbCon1 = rMark.mbCon1;
|
|
 |
a9add1 |
mbCon2 = rMark.mbCon2;
|
|
 |
a9add1 |
--
|
|
 |
a9add1 |
2.4.0
|
|
 |
a9add1 |
|