diff options
author | Matúš Kukan <matus.kukan@collabora.com> | 2013-11-21 15:23:09 +0100 |
---|---|---|
committer | Matúš Kukan <matus.kukan@collabora.com> | 2013-11-28 20:40:36 +0100 |
commit | 47bc56725a37834888680986844b5d7630a6581d (patch) | |
tree | ab7891d0d074934859314a8a7105d7242291f87c /sc/source/ui/inc/datastream.hxx | |
parent | 4cbc3d855529737bf8ce37a3c98dbbcc6b17f09e (diff) |
Rework data streams to be more like file links (ScAreaLink).
By inheriting from sfx2::SvBaseLink and storing in sfx2::LinkManager we can
have more data streams and see / remove them in Edit -> Links... dialog.
Also rename to DataStream to avoid confusion.
Change-Id: I9c3b89020324af7be082f9e6e1cd479aeb72fe81
Diffstat (limited to 'sc/source/ui/inc/datastream.hxx')
-rw-r--r-- | sc/source/ui/inc/datastream.hxx | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/sc/source/ui/inc/datastream.hxx b/sc/source/ui/inc/datastream.hxx new file mode 100644 index 000000000000..6da62c9cd41e --- /dev/null +++ b/sc/source/ui/inc/datastream.hxx @@ -0,0 +1,68 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include <sal/config.h> + +#include <rtl/ref.hxx> +#include <rtl/ustring.hxx> +#include <sfx2/lnkbase.hxx> + +#include <boost/noncopyable.hpp> +#include <boost/scoped_ptr.hpp> +#include <vector> + +namespace datastreams { + class CallerThread; + class ReaderThread; +} +class ScDocShell; +class ScDocument; +class ScRange; +class Window; + +typedef std::vector<OString> LinesList; + +class DataStream : boost::noncopyable, public sfx2::SvBaseLink +{ + OString ConsumeLine(); + void Decode(const OUString& rURL, const OUString& rRange, const OUString& rMove); + void MoveData(); + +public: + enum MoveEnum { NO_MOVE, RANGE_DOWN, MOVE_DOWN, MOVE_UP }; + + static void Set(ScDocShell *pShell, const OUString& rURL, + const OUString& rRange, sal_Int32 nLimit, const OUString& rMove); + + DataStream(ScDocShell *pShell, const OUString& rURL, + const OUString& rRange, sal_Int32 nLimit, const OUString& rMove); + virtual ~DataStream() SAL_OVERRIDE; + virtual void Edit(Window* , const Link& ) SAL_OVERRIDE; + + bool ImportData(); + void Start(); + void Stop(); + +private: + ScDocShell *mpScDocShell; + ScDocument *mpScDocument; + MoveEnum meMove; + bool mbRunning; + bool mbIsUndoEnabled; + bool mbValuesInLine; + LinesList *mpLines; + size_t mnLinesCount; + boost::scoped_ptr<ScRange> mpRange; + boost::scoped_ptr<ScRange> mpStartRange; + boost::scoped_ptr<ScRange> mpEndRange; + rtl::Reference<datastreams::CallerThread> mxThread; + rtl::Reference<datastreams::ReaderThread> mxReaderThread; +}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |