refactor: IClipboard::EFormat => enum class Clipboard::Format

This commit is contained in:
sithlord48 2025-07-30 08:19:15 -04:00 committed by Nick Bolton
parent 943141d65c
commit 8977d70dd9
39 changed files with 164 additions and 156 deletions

View file

@ -27,7 +27,7 @@ bool Clipboard::empty()
}
// clear all data
for (int32_t index = 0; index < kNumFormats; ++index) {
for (int32_t index = 0; index < static_cast<int>(Format::TotalFormats); ++index) {
m_data[index] = "";
m_added[index] = false;
}
@ -41,7 +41,7 @@ bool Clipboard::empty()
return true;
}
void Clipboard::add(EFormat format, const std::string &data)
void Clipboard::add(Format format, const std::string &data)
{
if (!m_open) {
LOG_WARN("cannot add to clipboard, not open");
@ -53,8 +53,9 @@ void Clipboard::add(EFormat format, const std::string &data)
return;
}
m_data[format] = data;
m_added[format] = true;
const auto formatID = static_cast<int>(format);
m_data[formatID] = data;
m_added[formatID] = true;
}
bool Clipboard::open(Time time) const
@ -83,22 +84,22 @@ Clipboard::Time Clipboard::getTime() const
return m_timeOwned;
}
bool Clipboard::has(EFormat format) const
bool Clipboard::has(Format format) const
{
if (!m_open) {
LOG_WARN("cannot check for clipboard format, not open");
return false;
}
return m_added[format];
return m_added[static_cast<int>(format)];
}
std::string Clipboard::get(EFormat format) const
std::string Clipboard::get(Format format) const
{
if (!m_open) {
LOG_WARN("cannot get clipboard format, not open");
return "";
}
return m_data[format];
return m_data[static_cast<int>(format)];
}
void Clipboard::unmarshall(const std::string &data, Time time)

View file

@ -44,18 +44,18 @@ public:
// IClipboard overrides
bool empty() final;
void add(EFormat, const std::string &data) override;
void add(Format, const std::string &data) override;
bool open(Time) const final;
void close() const override;
Time getTime() const override;
bool has(EFormat) const override;
std::string get(EFormat) const override;
bool has(Format) const override;
std::string get(Format) const override;
private:
mutable bool m_open = false;
mutable Time m_time;
bool m_owner = false;
Time m_timeOwned;
bool m_added[kNumFormats] = {false, false, false};
std::string m_data[kNumFormats] = {"", "", ""};
bool m_added[static_cast<int>(Format::TotalFormats)] = {false, false, false};
std::string m_data[static_cast<int>(Format::TotalFormats)] = {"", "", ""};
};

View file

@ -30,7 +30,7 @@ void IClipboard::unmarshall(IClipboard *clipboard, const std::string_view &data,
// read each format
for (uint32_t i = 0; i < numFormats; ++i) {
// get the format id
auto format = static_cast<IClipboard::EFormat>(readUInt32(index));
auto format = static_cast<IClipboard::Format>(readUInt32(index));
index += 4;
// get the size of the format data
@ -40,7 +40,7 @@ void IClipboard::unmarshall(IClipboard *clipboard, const std::string_view &data,
// save the data if it's a known format. if either the client
// or server supports more clipboard formats than the other
// then one of them will get a format >= kNumFormats here.
if (format < IClipboard::kNumFormats) {
if (format < IClipboard::Format::TotalFormats) {
clipboard->add(format, std::string(index, size));
}
index += size;
@ -63,19 +63,19 @@ std::string IClipboard::marshall(const IClipboard *clipboard)
assert(clipboard != nullptr);
std::string data;
static const auto totalClipboardFormats = static_cast<int>(Format::TotalFormats);
std::vector<std::string> formatData;
formatData.resize(IClipboard::kNumFormats);
formatData.resize(totalClipboardFormats);
// FIXME -- use current time
if (clipboard->open(0)) {
// compute size of marshalled data
uint32_t size = 4;
uint32_t numFormats = 0;
for (uint32_t format = 0; format != IClipboard::kNumFormats; ++format) {
if (clipboard->has(static_cast<IClipboard::EFormat>(format))) {
for (uint32_t format = 0; format != totalClipboardFormats; ++format) {
if (clipboard->has(static_cast<IClipboard::Format>(format))) {
++numFormats;
formatData[format] = clipboard->get(static_cast<IClipboard::EFormat>(format));
formatData[format] = clipboard->get(static_cast<IClipboard::Format>(format));
size += 4 + 4 + (uint32_t)formatData[format].size();
}
}
@ -85,8 +85,8 @@ std::string IClipboard::marshall(const IClipboard *clipboard)
// marshall the data
writeUInt32(&data, numFormats);
for (uint32_t format = 0; format != IClipboard::kNumFormats; ++format) {
if (clipboard->has(static_cast<IClipboard::EFormat>(format))) {
for (uint32_t format = 0; format != totalClipboardFormats; ++format) {
if (clipboard->has(static_cast<IClipboard::Format>(format))) {
writeUInt32(&data, format);
writeUInt32(&data, (uint32_t)formatData[format].size());
data += formatData[format];
@ -115,8 +115,8 @@ bool IClipboard::copy(IClipboard *dst, const IClipboard *src, Time time)
if (src->open(time)) {
if (dst->open(time)) {
if (dst->empty()) {
for (int32_t format = 0; format != IClipboard::kNumFormats; ++format) {
auto eFormat = (IClipboard::EFormat)format;
for (int32_t format = 0; format != static_cast<int>(Format::TotalFormats); ++format) {
auto eFormat = (IClipboard::Format)format;
if (src->has(eFormat)) {
dst->add(eFormat, src->get(eFormat));
}

View file

@ -46,12 +46,12 @@ public:
HTML fragment (but not necessarily a complete HTML document).
Newlines are LF.
*/
enum EFormat
enum class Format
{
kText, //!< Text format, UTF-8, newline is LF
kHTML, //!< HTML format, HTML fragment, UTF-8, newline is LF
kBitmap, //!< Bitmap format, BMP 24/32bpp, BI_RGB
kNumFormats //!< The number of clipboard formats
Text, //!< Text format, UTF-8, newline is LF
HTML, //!< HTML format, HTML fragment, UTF-8, newline is LF
Bitmap, //!< Bitmap format, BMP 24/32bpp, BI_RGB
TotalFormats //!< The number of clipboard formats supported
};
//! @name manipulators
@ -71,7 +71,7 @@ public:
Add data in the given format to the clipboard. May only be
called after a successful empty().
*/
virtual void add(EFormat, const std::string &data) = 0;
virtual void add(Format, const std::string &data) = 0;
//@}
//! @name accessors
@ -109,7 +109,7 @@ public:
Return true iff the clipboard contains data in the given
format. Must be called between a successful open() and close().
*/
virtual bool has(EFormat) const = 0;
virtual bool has(Format) const = 0;
//! Get data
/*!
@ -117,7 +117,7 @@ public:
if there is no data in that format. Must be called between
a successful open() and close().
*/
virtual std::string get(EFormat) const = 0;
virtual std::string get(Format) const = 0;
//! Marshall clipboard data
/*!

View file

@ -83,7 +83,7 @@ bool MSWindowsClipboard::empty()
return true;
}
void MSWindowsClipboard::add(EFormat format, const std::string &data)
void MSWindowsClipboard::add(Format format, const std::string &data)
{
// exit early if there is no data to prevent spurious "failed to convert clipboard data" errors
if (data.empty()) {
@ -139,7 +139,7 @@ IClipboard::Time MSWindowsClipboard::getTime() const
return m_time;
}
bool MSWindowsClipboard::has(EFormat format) const
bool MSWindowsClipboard::has(Format format) const
{
for (ConverterList::const_iterator index = m_converters.begin(); index != m_converters.end(); ++index) {
IMSWindowsClipboardConverter *converter = *index;
@ -152,7 +152,7 @@ bool MSWindowsClipboard::has(EFormat format) const
return false;
}
std::string MSWindowsClipboard::get(EFormat format) const
std::string MSWindowsClipboard::get(Format format) const
{
// find the converter for the first clipboard format we can handle
IMSWindowsClipboardConverter *converter = nullptr;

View file

@ -46,19 +46,19 @@ public:
// IClipboard overrides
bool empty() override;
void add(EFormat, const std::string &data) override;
void add(Format, const std::string &data) override;
bool open(Time) const override;
void close() const override;
Time getTime() const override;
bool has(EFormat) const override;
std::string get(EFormat) const override;
bool has(Format) const override;
std::string get(Format) const override;
void setFacade(IMSWindowsClipboardFacade &facade);
private:
void clearConverters();
UINT convertFormatToWin32(EFormat) const;
UINT convertFormatToWin32(Format) const;
HANDLE convertTextToWin32(const std::string &data) const;
std::string convertTextFromWin32(HANDLE) const;
@ -86,7 +86,7 @@ public:
// accessors
// return the clipboard format this object converts from/to
virtual IClipboard::EFormat getFormat() const = 0;
virtual IClipboard::Format getFormat() const = 0;
// return the atom representing the win32 clipboard format that
// this object converts from/to

View file

@ -11,9 +11,9 @@
// MSWindowsClipboardAnyTextConverter
//
IClipboard::EFormat MSWindowsClipboardAnyTextConverter::getFormat() const
IClipboard::Format MSWindowsClipboardAnyTextConverter::getFormat() const
{
return IClipboard::kText;
return IClipboard::Format::Text;
}
HANDLE

View file

@ -17,7 +17,7 @@ public:
~MSWindowsClipboardAnyTextConverter() override = default;
// IMSWindowsClipboardConverter overrides
IClipboard::EFormat getFormat() const override;
IClipboard::Format getFormat() const override;
UINT getWin32Format() const override = 0;
HANDLE fromIClipboard(const std::string &) const override;
std::string toIClipboard(HANDLE) const override;

View file

@ -13,9 +13,9 @@
// MSWindowsClipboardBitmapConverter
//
IClipboard::EFormat MSWindowsClipboardBitmapConverter::getFormat() const
IClipboard::Format MSWindowsClipboardBitmapConverter::getFormat() const
{
return IClipboard::kBitmap;
return IClipboard::Format::Bitmap;
}
UINT MSWindowsClipboardBitmapConverter::getWin32Format() const

View file

@ -17,7 +17,7 @@ public:
~MSWindowsClipboardBitmapConverter() override = default;
// IMSWindowsClipboardConverter overrides
IClipboard::EFormat getFormat() const override;
IClipboard::Format getFormat() const override;
UINT getWin32Format() const override;
HANDLE fromIClipboard(const std::string &) const override;
std::string toIClipboard(HANDLE) const override;

View file

@ -18,9 +18,9 @@ MSWindowsClipboardHTMLConverter::MSWindowsClipboardHTMLConverter()
m_format = RegisterClipboardFormat("HTML Format");
}
IClipboard::EFormat MSWindowsClipboardHTMLConverter::getFormat() const
IClipboard::Format MSWindowsClipboardHTMLConverter::getFormat() const
{
return IClipboard::kHTML;
return IClipboard::Format::HTML;
}
UINT MSWindowsClipboardHTMLConverter::getWin32Format() const

View file

@ -17,7 +17,7 @@ public:
~MSWindowsClipboardHTMLConverter() override = default;
// IMSWindowsClipboardConverter overrides
IClipboard::EFormat getFormat() const override;
IClipboard::Format getFormat() const override;
UINT getWin32Format() const override;
protected:

View file

@ -76,17 +76,17 @@ bool OSXClipboard::synchronize()
return false;
}
void OSXClipboard::add(EFormat format, const std::string &data)
void OSXClipboard::add(Format format, const std::string &data)
{
if (m_pboard == nullptr)
return;
LOG((CLOG_DEBUG "add %d bytes to clipboard format: %d", data.size(), format));
if (format == IClipboard::kText) {
if (format == IClipboard::Format::Text) {
LOG((CLOG_DEBUG "format of data to be added to clipboard was kText"));
} else if (format == IClipboard::kBitmap) {
} else if (format == IClipboard::Format::Bitmap) {
LOG((CLOG_DEBUG "format of data to be added to clipboard was kBitmap"));
} else if (format == IClipboard::kHTML) {
} else if (format == IClipboard::Format::HTML) {
LOG((CLOG_DEBUG "format of data to be added to clipboard was kHTML"));
}
@ -132,7 +132,7 @@ IClipboard::Time OSXClipboard::getTime() const
return m_time;
}
bool OSXClipboard::has(EFormat format) const
bool OSXClipboard::has(Format format) const
{
if (m_pboard == nullptr)
return false;
@ -157,7 +157,7 @@ bool OSXClipboard::has(EFormat format) const
return false;
}
std::string OSXClipboard::get(EFormat format) const
std::string OSXClipboard::get(Format format) const
{
CFStringRef type;
PasteboardItemID item;

View file

@ -26,12 +26,12 @@ public:
// IClipboard overrides
bool empty() override;
void add(EFormat, const std::string &data) override;
void add(Format, const std::string &data) override;
bool open(Time) const override;
void close() const override;
Time getTime() const override;
bool has(EFormat) const override;
std::string get(EFormat) const override;
bool has(Format) const override;
std::string get(Format) const override;
bool synchronize();
@ -60,7 +60,7 @@ public:
/*!
Return the clipboard format this object converts from/to.
*/
virtual IClipboard::EFormat getFormat() const = 0;
virtual IClipboard::Format getFormat() const = 0;
//! returns the scrap flavor type that this object converts from/to
virtual CFStringRef getOSXFormat() const = 0;

View file

@ -8,9 +8,9 @@
#include "platform/OSXClipboardAnyBitmapConverter.h"
#include <algorithm>
IClipboard::EFormat OSXClipboardAnyBitmapConverter::getFormat() const
IClipboard::Format OSXClipboardAnyBitmapConverter::getFormat() const
{
return IClipboard::kBitmap;
return IClipboard::Format::Bitmap;
}
std::string OSXClipboardAnyBitmapConverter::fromIClipboard(const std::string &data) const

View file

@ -17,7 +17,7 @@ public:
~OSXClipboardAnyBitmapConverter() override = default;
// IOSXClipboardConverter overrides
IClipboard::EFormat getFormat() const override;
IClipboard::Format getFormat() const override;
CFStringRef getOSXFormat() const override = 0;
std::string fromIClipboard(const std::string &) const override;
std::string toIClipboard(const std::string &) const override;

View file

@ -13,9 +13,9 @@
// OSXClipboardAnyTextConverter
//
IClipboard::EFormat OSXClipboardAnyTextConverter::getFormat() const
IClipboard::Format OSXClipboardAnyTextConverter::getFormat() const
{
return IClipboard::kText;
return IClipboard::Format::Text;
}
std::string OSXClipboardAnyTextConverter::fromIClipboard(const std::string &data) const

View file

@ -17,7 +17,7 @@ public:
~OSXClipboardAnyTextConverter() override = default;
// IOSXClipboardConverter overrides
IClipboard::EFormat getFormat() const override;
IClipboard::Format getFormat() const override;
std::string fromIClipboard(const std::string &) const override;
std::string toIClipboard(const std::string &) const override;
CFStringRef getOSXFormat() const override = 0;

View file

@ -48,9 +48,9 @@ static void toLE(uint8_t *&dst, uint32_t src)
dst += 4;
}
IClipboard::EFormat OSXClipboardBMPConverter::getFormat() const
IClipboard::Format OSXClipboardBMPConverter::getFormat() const
{
return IClipboard::kBitmap;
return IClipboard::Format::Bitmap;
}
CFStringRef OSXClipboardBMPConverter::getOSXFormat() const

View file

@ -17,7 +17,7 @@ public:
~OSXClipboardBMPConverter() override = default;
// IMSWindowsClipboardConverter overrides
IClipboard::EFormat getFormat() const override;
IClipboard::Format getFormat() const override;
CFStringRef getOSXFormat() const override;
// OSXClipboardAnyBMPConverter overrides

View file

@ -9,9 +9,9 @@
#include "base/Unicode.h"
IClipboard::EFormat OSXClipboardHTMLConverter::getFormat() const
IClipboard::Format OSXClipboardHTMLConverter::getFormat() const
{
return IClipboard::kHTML;
return IClipboard::Format::HTML;
}
CFStringRef OSXClipboardHTMLConverter::getOSXFormat() const

View file

@ -17,7 +17,7 @@ public:
~OSXClipboardHTMLConverter() override = default;
// IMSWindowsClipboardConverter overrides
IClipboard::EFormat getFormat() const override;
IClipboard::Format getFormat() const override;
CFStringRef getOSXFormat() const override;
protected:

View file

@ -147,7 +147,7 @@ bool XWindowsClipboard::addSimpleRequest(Window requestor, Atom target, ::Time t
} else {
const IXWindowsClipboardConverter *converter = getConverter(target);
if (converter != nullptr) {
IClipboard::EFormat clipboardFormat = converter->getFormat();
const auto clipboardFormat = static_cast<int>(converter->getFormat());
if (m_added[clipboardFormat]) {
try {
data = converter->fromIClipboard(m_data[clipboardFormat]);
@ -262,15 +262,16 @@ bool XWindowsClipboard::empty()
return true;
}
void XWindowsClipboard::add(EFormat format, const std::string &data)
void XWindowsClipboard::add(Format format, const std::string &data)
{
assert(m_open);
assert(m_owner);
LOG((CLOG_DEBUG "add %d bytes to clipboard %d format: %d", data.size(), m_id, format));
m_data[format] = data;
m_added[format] = true;
const auto formatID = static_cast<int>(format);
m_data[formatID] = data;
m_added[formatID] = true;
// FIXME -- set motif clipboard item?
}
@ -333,20 +334,20 @@ IClipboard::Time XWindowsClipboard::getTime() const
return m_timeOwned;
}
bool XWindowsClipboard::has(EFormat format) const
bool XWindowsClipboard::has(Format format) const
{
assert(m_open);
fillCache();
return m_added[format];
return m_added[static_cast<int>(format)];
}
std::string XWindowsClipboard::get(EFormat format) const
std::string XWindowsClipboard::get(Format format) const
{
assert(m_open);
fillCache();
return m_data[format];
return m_data[static_cast<int>(format)];
}
void XWindowsClipboard::clearConverters()
@ -372,8 +373,8 @@ IXWindowsClipboardConverter *XWindowsClipboard::getConverter(Atom target, bool o
}
// optionally skip already handled targets
if (onlyIfNotAdded && m_added[converter->getFormat()]) {
LOG((CLOG_DEBUG1 " skipping handled format %d", converter->getFormat()));
if (const auto formatID = static_cast<int>(converter->getFormat()); onlyIfNotAdded && m_added[formatID]) {
LOG((CLOG_DEBUG1 " skipping handled format %d", formatID));
return nullptr;
}
@ -415,7 +416,7 @@ void XWindowsClipboard::doClearCache()
{
m_checkCache = false;
m_cached = false;
for (int32_t index = 0; index < kNumFormats; ++index) {
for (int32_t index = 0; index < static_cast<int>(Format::TotalFormats); ++index) {
m_data[index] = "";
m_added[index] = false;
}
@ -468,9 +469,10 @@ void XWindowsClipboard::icccmFillCache()
// preference).
for (ConverterList::const_iterator index = m_converters.begin(); index != m_converters.end(); ++index) {
const IXWindowsClipboardConverter *converter = *index;
const auto formatID = static_cast<int>(converter->getFormat());
// skip already handled targets
if (m_added[converter->getFormat()]) {
if (m_added[formatID]) {
continue;
}
@ -501,11 +503,10 @@ void XWindowsClipboard::icccmFillCache()
}
// add to clipboard and note we've done it
IClipboard::EFormat format = converter->getFormat();
m_data[format] = converter->toIClipboard(targetData);
m_added[format] = true;
m_data[formatID] = converter->toIClipboard(targetData);
m_added[formatID] = true;
LOG(
(CLOG_DEBUG "added format %d for target %s (%u %s)", format,
(CLOG_DEBUG "added format %d for target %s (%u %s)", formatID,
XWindowsUtil::atomToString(m_display, target).c_str(), targetData.size(),
targetData.size() == 1 ? "byte" : "bytes")
);
@ -693,9 +694,10 @@ void XWindowsClipboard::motifFillCache()
// preference).
for (ConverterList::const_iterator index = m_converters.begin(); index != m_converters.end(); ++index) {
const IXWindowsClipboardConverter *converter = *index;
const auto formatID = static_cast<int>(converter->getFormat());
// skip already handled targets
if (m_added[converter->getFormat()]) {
if (m_added[formatID]) {
continue;
}
@ -719,9 +721,8 @@ void XWindowsClipboard::motifFillCache()
}
// add to clipboard and note we've done it
IClipboard::EFormat format = converter->getFormat();
m_data[format] = converter->toIClipboard(targetData);
m_added[format] = true;
m_data[formatID] = converter->toIClipboard(targetData);
m_added[formatID] = true;
LOG((CLOG_DEBUG "added format %d for target %s", format, XWindowsUtil::atomToString(m_display, target).c_str()));
}
}
@ -1123,7 +1124,7 @@ Atom XWindowsClipboard::getTargetsData(std::string &data, int *format) const
const IXWindowsClipboardConverter *converter = *index;
// skip formats we don't have
if (m_added[converter->getFormat()]) {
if (m_added[static_cast<int>(converter->getFormat())]) {
XWindowsUtil::appendAtomData(data, converter->getAtom());
}
}

View file

@ -77,12 +77,12 @@ public:
// IClipboard overrides
bool empty() override;
void add(EFormat, const std::string &data) override;
void add(Format, const std::string &data) override;
bool open(Time) const override;
void close() const override;
Time getTime() const override;
bool has(EFormat) const override;
std::string get(EFormat) const override;
bool has(Format) const override;
std::string get(Format) const override;
private:
// remove all converters from our list
@ -95,7 +95,7 @@ private:
IXWindowsClipboardConverter *getConverter(Atom target, bool onlyIfNotAdded = false) const;
// convert target atom to clipboard format
EFormat getFormat(Atom target) const;
Format getFormat(Atom target) const;
// add a non-MULTIPLE request. does not verify that the selection
// was owned at the given time. returns true if the conversion
@ -296,8 +296,8 @@ private:
mutable bool m_checkCache;
bool m_cached;
Time m_cacheTime;
bool m_added[kNumFormats];
std::string m_data[kNumFormats];
bool m_added[static_cast<int>(IClipboard::Format::TotalFormats)];
std::string m_data[static_cast<int>(IClipboard::Format::TotalFormats)];
// conversion request replies
ReplyMap m_replies;
@ -336,7 +336,7 @@ public:
/*!
Return the clipboard format this object converts from/to.
*/
virtual IClipboard::EFormat getFormat() const = 0;
virtual IClipboard::Format getFormat() const = 0;
//! Get X11 format atom
/*!

View file

@ -74,9 +74,9 @@ static inline uint32_t fromLEU32(const uint8_t *data)
// XWindowsClipboardAnyBitmapConverter
//
IClipboard::EFormat XWindowsClipboardAnyBitmapConverter::getFormat() const
IClipboard::Format XWindowsClipboardAnyBitmapConverter::getFormat() const
{
return IClipboard::kBitmap;
return IClipboard::Format::Bitmap;
}
int XWindowsClipboardAnyBitmapConverter::getDataSize() const

View file

@ -17,7 +17,7 @@ public:
~XWindowsClipboardAnyBitmapConverter() override = default;
// IXWindowsClipboardConverter overrides
IClipboard::EFormat getFormat() const override;
IClipboard::Format getFormat() const override;
Atom getAtom() const override = 0;
int getDataSize() const override;
std::string fromIClipboard(const std::string &) const override;

View file

@ -57,9 +57,9 @@ XWindowsClipboardBMPConverter::XWindowsClipboardBMPConverter(Display *display)
// do nothing
}
IClipboard::EFormat XWindowsClipboardBMPConverter::getFormat() const
IClipboard::Format XWindowsClipboardBMPConverter::getFormat() const
{
return IClipboard::kBitmap;
return IClipboard::Format::Bitmap;
}
Atom XWindowsClipboardBMPConverter::getAtom() const

View file

@ -17,7 +17,7 @@ public:
~XWindowsClipboardBMPConverter() override = default;
// IXWindowsClipboardConverter overrides
IClipboard::EFormat getFormat() const override;
IClipboard::Format getFormat() const override;
Atom getAtom() const override;
int getDataSize() const override;
std::string fromIClipboard(const std::string &) const override;

View file

@ -19,9 +19,9 @@ XWindowsClipboardHTMLConverter::XWindowsClipboardHTMLConverter(Display *display,
// do nothing
}
IClipboard::EFormat XWindowsClipboardHTMLConverter::getFormat() const
IClipboard::Format XWindowsClipboardHTMLConverter::getFormat() const
{
return IClipboard::kHTML;
return IClipboard::Format::HTML;
}
Atom XWindowsClipboardHTMLConverter::getAtom() const

View file

@ -20,7 +20,7 @@ public:
~XWindowsClipboardHTMLConverter() override = default;
// IXWindowsClipboardConverter overrides
IClipboard::EFormat getFormat() const override;
IClipboard::Format getFormat() const override;
Atom getAtom() const override;
int getDataSize() const override;
std::string fromIClipboard(const std::string &) const override;

View file

@ -19,9 +19,9 @@ XWindowsClipboardTextConverter::XWindowsClipboardTextConverter(Display *display,
// do nothing
}
IClipboard::EFormat XWindowsClipboardTextConverter::getFormat() const
IClipboard::Format XWindowsClipboardTextConverter::getFormat() const
{
return IClipboard::kText;
return IClipboard::Format::Text;
}
Atom XWindowsClipboardTextConverter::getAtom() const

View file

@ -20,7 +20,7 @@ public:
~XWindowsClipboardTextConverter() override = default;
// IXWindowsClipboardConverter overrides
IClipboard::EFormat getFormat() const override;
IClipboard::Format getFormat() const override;
Atom getAtom() const override;
int getDataSize() const override;
std::string fromIClipboard(const std::string &) const override;

View file

@ -19,9 +19,9 @@ XWindowsClipboardUCS2Converter::XWindowsClipboardUCS2Converter(Display *display,
// do nothing
}
IClipboard::EFormat XWindowsClipboardUCS2Converter::getFormat() const
IClipboard::Format XWindowsClipboardUCS2Converter::getFormat() const
{
return IClipboard::kText;
return IClipboard::Format::Text;
}
Atom XWindowsClipboardUCS2Converter::getAtom() const

View file

@ -20,7 +20,7 @@ public:
~XWindowsClipboardUCS2Converter() override = default;
// IXWindowsClipboardConverter overrides
IClipboard::EFormat getFormat() const override;
IClipboard::Format getFormat() const override;
Atom getAtom() const override;
int getDataSize() const override;
std::string fromIClipboard(const std::string &) const override;

View file

@ -20,9 +20,9 @@ XWindowsClipboardUTF8Converter::XWindowsClipboardUTF8Converter(Display *display,
// do nothing
}
IClipboard::EFormat XWindowsClipboardUTF8Converter::getFormat() const
IClipboard::Format XWindowsClipboardUTF8Converter::getFormat() const
{
return IClipboard::kText;
return IClipboard::Format::Text;
}
Atom XWindowsClipboardUTF8Converter::getAtom() const

View file

@ -20,7 +20,7 @@ public:
~XWindowsClipboardUTF8Converter() override = default;
// IXWindowsClipboardConverter overrides
IClipboard::EFormat getFormat() const override;
IClipboard::Format getFormat() const override;
Atom getAtom() const override;
int getDataSize() const override;
std::string fromIClipboard(const std::string &) const override;

View file

@ -37,26 +37,28 @@ void ClipboardTests::basicFunction()
void ClipboardTests::basicText()
{
using enum IClipboard::Format;
Clipboard clipboard;
QVERIFY(clipboard.open(0));
QVERIFY(!clipboard.has(Clipboard::kText));
QCOMPARE(clipboard.get(IClipboard::kText), "");
QVERIFY(!clipboard.has(Text));
QCOMPARE(clipboard.get(Text), "");
clipboard.add(Clipboard::kText, kTestString1);
QVERIFY(clipboard.has(Clipboard::kText));
QCOMPARE(clipboard.get(IClipboard::kText), kTestString1);
clipboard.add(Text, kTestString1);
QVERIFY(clipboard.has(Text));
QCOMPARE(clipboard.get(Text), kTestString1);
std::string actual = clipboard.marshall();
// string contains other data, but 8th char should be kText.
QCOMPARE(IClipboard::kText, actual[7]);
QCOMPARE(static_cast<char>(Text), actual.at(7));
QCOMPARE((int)actual[11], kTestString1.length());
// // marshall closes the clipboard
QVERIFY(clipboard.open(0));
QVERIFY(clipboard.empty());
clipboard.add(Clipboard::kText, kTestString2);
QCOMPARE(clipboard.get(IClipboard::kText), kTestString2);
clipboard.add(Text, kTestString2);
QCOMPARE(clipboard.get(Text), kTestString2);
clipboard.close();
}
@ -71,7 +73,7 @@ void ClipboardTests::longerText()
Clipboard clipboard;
clipboard.open(0);
clipboard.add(IClipboard::kText, text);
clipboard.add(IClipboard::Format::Text, text);
clipboard.close();
std::string actual = clipboard.marshall();
@ -94,21 +96,21 @@ void ClipboardTests::htmlText()
{
Clipboard clipboard;
clipboard.open(0);
clipboard.add(IClipboard::kHTML, kTestString1);
clipboard.add(IClipboard::Format::HTML, kTestString1);
clipboard.close();
std::string actual = clipboard.marshall();
// string contains other data, but 8th char should be kHTML.
QCOMPARE(IClipboard::kHTML, (int)actual[7]);
QCOMPARE(static_cast<int>(IClipboard::Format::HTML), static_cast<int>(actual.at(7)));
}
void ClipboardTests::dualText()
{
Clipboard clipboard;
clipboard.open(0);
clipboard.add(IClipboard::kText, kTestString1);
clipboard.add(IClipboard::kHTML, kTestString2);
clipboard.add(IClipboard::Format::Text, kTestString1);
clipboard.add(IClipboard::Format::HTML, kTestString2);
clipboard.close();
std::string actual = clipboard.marshall();
@ -125,7 +127,7 @@ void ClipboardTests::marshalText()
{
Clipboard clipboard;
clipboard.open(0);
clipboard.add(IClipboard::kText, kTestString1);
clipboard.add(IClipboard::Format::Text, kTestString1);
clipboard.close();
std::string actual = clipboard.marshall();
@ -144,7 +146,7 @@ void ClipboardTests::unMarshalText()
clipboard.unmarshall(data, 0);
clipboard.open(0);
QVERIFY(!clipboard.has(IClipboard::kText));
QVERIFY(!clipboard.has(IClipboard::Format::Text));
clipboard.close();
}
@ -167,7 +169,7 @@ void ClipboardTests::unMarshalLongerText()
data += (char)0;
data += (char)0;
data += (char)0;
data += (char)IClipboard::kText;
data += (char)IClipboard::Format::Text;
data += (char)0; // 287 >> 24 = 287 / (256^3) = 0
data += (char)0; // 287 >> 16 = 287 / (256^2) = 0
data += (char)1; // 287 >> 8 = 287 / (256^1) = 1(.121)
@ -176,7 +178,7 @@ void ClipboardTests::unMarshalLongerText()
clipboard.unmarshall(data, 0);
clipboard.open(0);
QCOMPARE(clipboard.get(IClipboard::kText), text);
QCOMPARE(clipboard.get(IClipboard::Format::Text), text);
clipboard.close();
}
@ -191,7 +193,7 @@ void ClipboardTests::unMarshalTextAndHtml()
data += (char)0;
data += (char)0;
data += (char)0;
data += (char)IClipboard::kText;
data += (char)IClipboard::Format::Text;
data += (char)0;
data += (char)0;
data += (char)0;
@ -200,7 +202,7 @@ void ClipboardTests::unMarshalTextAndHtml()
data += (char)0;
data += (char)0;
data += (char)0;
data += (char)IClipboard::kHTML;
data += (char)IClipboard::Format::HTML;
data += (char)0;
data += (char)0;
data += (char)0;
@ -209,8 +211,8 @@ void ClipboardTests::unMarshalTextAndHtml()
clipboard.unmarshall(data, 0);
clipboard.open(0);
QCOMPARE(clipboard.get(IClipboard::kText), kTestString1);
QCOMPARE(clipboard.get(IClipboard::kHTML), kTestString2);
QCOMPARE(clipboard.get(IClipboard::Format::Text), kTestString1);
QCOMPARE(clipboard.get(IClipboard::Format::HTML), kTestString2);
clipboard.close();
}
@ -218,14 +220,14 @@ void ClipboardTests::equalClipboards()
{
Clipboard clipboard1;
clipboard1.open(0);
clipboard1.add(Clipboard::kText, kTestString1);
clipboard1.add(IClipboard::Format::Text, kTestString1);
clipboard1.close();
Clipboard clipboard2;
Clipboard::copy(&clipboard2, &clipboard1);
clipboard2.open(0);
QCOMPARE(clipboard2.get(Clipboard::kText), kTestString1);
QCOMPARE(clipboard2.get(IClipboard::Format::Text), kTestString1);
clipboard2.close();
}

View file

@ -45,9 +45,9 @@ void MSWindowsClipboardTests::emptySingleFormat()
MSWindowsClipboard clipboard(NULL);
QVERIFY(clipboard.open(0));
clipboard.add(MSWindowsClipboard::kText, m_testString);
clipboard.add(IClipboard::Format::Text, m_testString);
QVERIFY(clipboard.empty());
QVERIFY(!clipboard.has(MSWindowsClipboard::kText));
QVERIFY(!clipboard.has(IClipboard::Format::Text));
}
void MSWindowsClipboardTests::addValue()
@ -55,19 +55,21 @@ void MSWindowsClipboardTests::addValue()
MSWindowsClipboard clipboard(NULL);
QVERIFY(clipboard.open(0));
clipboard.add(IClipboard::kText, m_testString);
QCOMPARE(clipboard.get(IClipboard::kText), m_testString);
clipboard.add(IClipboard::Format::Text, m_testString);
QCOMPARE(clipboard.get(IClipboard::Format::Text), m_testString);
}
void MSWindowsClipboardTests::replaceValue()
{
using enum IClipboard::Format;
MSWindowsClipboard clipboard(NULL);
QVERIFY(clipboard.open(0));
clipboard.add(IClipboard::kText, m_testString);
clipboard.add(IClipboard::kText, m_testString2);
clipboard.add(Text, m_testString);
clipboard.add(Text, m_testString2);
QCOMPARE(clipboard.get(IClipboard::kText), m_testString2);
QCOMPARE(clipboard.get(Text), m_testString2);
}
void MSWindowsClipboardTests::openTimeIsOne()
@ -106,8 +108,8 @@ void MSWindowsClipboardTests::has_withFormatAdded()
QVERIFY(clipboard.open(0));
QVERIFY(clipboard.empty());
clipboard.add(IClipboard::kText, m_testString);
QVERIFY(clipboard.has(IClipboard::kText));
clipboard.add(IClipboard::Format::Text, m_testString);
QVERIFY(clipboard.has(IClipboard::Format::Text));
}
void MSWindowsClipboardTests::has_withNoFormatAdded()
@ -115,7 +117,7 @@ void MSWindowsClipboardTests::has_withNoFormatAdded()
MSWindowsClipboard clipboard(NULL);
QVERIFY(clipboard.open(0));
QVERIFY(clipboard.empty());
QCOMPARE(clipboard.get(IClipboard::kText), "");
QCOMPARE(clipboard.get(IClipboard::Format::Text), "");
}
void MSWindowsClipboardTests::getNonEmptyText()
@ -124,8 +126,8 @@ void MSWindowsClipboardTests::getNonEmptyText()
QVERIFY(clipboard.open(0));
QVERIFY(clipboard.empty());
clipboard.add(IClipboard::kText, m_testString);
QCOMPARE(clipboard.get(IClipboard::kText), m_testString);
clipboard.add(IClipboard::Format::Text, m_testString);
QCOMPARE(clipboard.get(IClipboard::Format::Text), m_testString);
}
void MSWindowsClipboardTests::isOwnedByDeskflow()

View file

@ -21,17 +21,19 @@ void OSXClipboardTests::open()
void OSXClipboardTests::singleFormat()
{
using enum IClipboard::Format;
OSXClipboard clipboard;
QVERIFY(clipboard.empty());
clipboard.add(OSXClipboard::kText, m_testString);
QVERIFY(clipboard.has(OSXClipboard::kText));
QCOMPARE(clipboard.get(OSXClipboard::kText), m_testString);
clipboard.add(Text, m_testString);
QVERIFY(clipboard.has(Text));
QCOMPARE(clipboard.get(Text), m_testString);
}
void OSXClipboardTests::formatConvert_UTF8()
{
OSXClipboardUTF8Converter converter;
QCOMPARE(IClipboard::kText, converter.getFormat());
QCOMPARE(IClipboard::Format::Text, converter.getFormat());
QCOMPARE(converter.getOSXFormat(), CFSTR("public.utf8-plain-text"));
QCOMPARE(converter.fromIClipboard("test data\n"), "test data\r");
QCOMPARE(converter.toIClipboard("test data\r"), "test data\n");