summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'SwifTools')
-rw-r--r--SwifTools/Dock/Dock.h6
-rw-r--r--SwifTools/Dock/MacOSXDock.h4
-rw-r--r--SwifTools/Dock/MacOSXDock.mm4
-rw-r--r--SwifTools/Dock/NullDock.h6
-rw-r--r--SwifTools/Dock/WindowsDock.h4
-rw-r--r--SwifTools/Idle/MacOSXIdleQuerier.cpp11
-rw-r--r--SwifTools/MacOSXChecker.mm6
-rw-r--r--SwifTools/SpellParser.cpp11
8 files changed, 32 insertions, 20 deletions
diff --git a/SwifTools/Dock/Dock.h b/SwifTools/Dock/Dock.h
index 6120445..362aabc 100644
--- a/SwifTools/Dock/Dock.h
+++ b/SwifTools/Dock/Dock.h
@@ -1,18 +1,20 @@
/*
- * Copyright (c) 2010 Isode Limited.
+ * Copyright (c) 2010-2018 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#pragma once
+#include <cstddef>
+
namespace Swift {
class Dock {
public:
virtual ~Dock();
- virtual void setNumberOfPendingMessages(int i) = 0;
+ virtual void setNumberOfPendingMessages(size_t i) = 0;
};
}
diff --git a/SwifTools/Dock/MacOSXDock.h b/SwifTools/Dock/MacOSXDock.h
index 6b33506..ef85a88 100644
--- a/SwifTools/Dock/MacOSXDock.h
+++ b/SwifTools/Dock/MacOSXDock.h
@@ -1,21 +1,21 @@
/*
- * Copyright (c) 2010 Isode Limited.
+ * Copyright (c) 2010-2018 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#pragma once
#include <SwifTools/Dock/Dock.h>
namespace Swift {
class CocoaApplication;
class MacOSXDock : public Dock {
public:
MacOSXDock(CocoaApplication* application);
- virtual void setNumberOfPendingMessages(int i);
+ virtual void setNumberOfPendingMessages(size_t i);
};
}
diff --git a/SwifTools/Dock/MacOSXDock.mm b/SwifTools/Dock/MacOSXDock.mm
index 5c7207c..3935ac0 100644
--- a/SwifTools/Dock/MacOSXDock.mm
+++ b/SwifTools/Dock/MacOSXDock.mm
@@ -1,29 +1,29 @@
/*
- * Copyright (c) 2015-2016 Isode Limited.
+ * Copyright (c) 2015-2018 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <SwifTools/Dock/MacOSXDock.h>
#include <boost/lexical_cast.hpp>
#include <AppKit/AppKit.h>
#include <Cocoa/Cocoa.h>
#include <Swiften/Base/String.h>
namespace Swift {
MacOSXDock::MacOSXDock(CocoaApplication*) {
}
-void MacOSXDock::setNumberOfPendingMessages(int i) {
+void MacOSXDock::setNumberOfPendingMessages(size_t i) {
std::string label(i > 0 ? boost::lexical_cast<std::string>(i) : "");
NSString *labelString = [[NSString alloc] initWithUTF8String: label.c_str()];
[[NSApp dockTile] setBadgeLabel: labelString];
[labelString release];
[NSApp requestUserAttention: NSInformationalRequest];
}
}
diff --git a/SwifTools/Dock/NullDock.h b/SwifTools/Dock/NullDock.h
index 9f3c554..137ba03 100644
--- a/SwifTools/Dock/NullDock.h
+++ b/SwifTools/Dock/NullDock.h
@@ -1,19 +1,21 @@
/*
- * Copyright (c) 2010 Isode Limited.
+ * Copyright (c) 2010-2018 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#pragma once
+#include <cstddef>
+
#include <SwifTools/Dock/Dock.h>
namespace Swift {
class NullDock : public Dock {
public:
NullDock() {}
- virtual void setNumberOfPendingMessages(int) {
+ virtual void setNumberOfPendingMessages(size_t) {
}
};
}
diff --git a/SwifTools/Dock/WindowsDock.h b/SwifTools/Dock/WindowsDock.h
index fc10a48..f9a9dae 100644
--- a/SwifTools/Dock/WindowsDock.h
+++ b/SwifTools/Dock/WindowsDock.h
@@ -1,30 +1,30 @@
/*
- * Copyright (c) 2010-2016 Isode Limited.
+ * Copyright (c) 2010-2018 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#pragma once
#include <boost/lexical_cast.hpp>
#include <QSystemTrayIcon>
#include <SwifTools/Dock/Dock.h>
#include <SwifTools/Notifier/Notifier.h>
namespace Swift {
class WindowsDock : public Dock {
public:
WindowsDock(QSystemTrayIcon* tray, Notifier* notifier) : tray(tray), notifier(notifier) {}
- virtual void setNumberOfPendingMessages(int i) {
+ virtual void setNumberOfPendingMessages(size_t i) {
if (notifier->isAvailable()) {
return;
}
if (i > 0) {
std::string message = boost::lexical_cast<std::string>(i) + " new message";
if (i > 1) {
message += "s";
}
diff --git a/SwifTools/Idle/MacOSXIdleQuerier.cpp b/SwifTools/Idle/MacOSXIdleQuerier.cpp
index 6d6780b..89fa050 100644
--- a/SwifTools/Idle/MacOSXIdleQuerier.cpp
+++ b/SwifTools/Idle/MacOSXIdleQuerier.cpp
@@ -1,21 +1,23 @@
/*
- * Copyright (c) 2010 Isode Limited.
+ * Copyright (c) 2010-2018 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <SwifTools/Idle/MacOSXIdleQuerier.h>
#pragma GCC diagnostic ignored "-Wold-style-cast"
#include <cassert>
#include <iostream>
+#include <limits>
+
#include <boost/numeric/conversion/cast.hpp>
#include <CoreFoundation/CoreFoundation.h>
namespace Swift {
MacOSXIdleQuerier::MacOSXIdleQuerier() : ioService(0) {
mach_port_t masterPort;
IOMasterPort(MACH_PORT_NULL, &masterPort);
ioService = IOServiceGetMatchingService(masterPort, IOServiceMatching("IOHIDSystem"));
@@ -23,13 +25,18 @@ MacOSXIdleQuerier::MacOSXIdleQuerier() : ioService(0) {
}
int MacOSXIdleQuerier::getIdleTimeSeconds() {
CFTypeRef property = IORegistryEntryCreateCFProperty(ioService, CFSTR("HIDIdleTime"), kCFAllocatorDefault, 0);
uint64_t idle = 0;
bool result = CFNumberGetValue((CFNumberRef)property, kCFNumberSInt64Type, &idle);
assert(result);
(void) result;
CFRelease(property);
- return boost::numeric_cast<int>(idle / 1000000000);
+ try {
+ return boost::numeric_cast<int>(idle / 1000000000);
+ }
+ catch (const boost::numeric::bad_numeric_cast&) {
+ return std::numeric_limits<int>::max();
+ }
}
}
diff --git a/SwifTools/MacOSXChecker.mm b/SwifTools/MacOSXChecker.mm
index aefe3e7..afaa87c 100644
--- a/SwifTools/MacOSXChecker.mm
+++ b/SwifTools/MacOSXChecker.mm
@@ -1,30 +1,32 @@
/*
* Copyright (c) 2013 Tobias Markmann
* Licensed under the Simplified BSD license.
* See Documentation/Licenses/BSD-simplified.txt for more information.
*/
/*
- * Copyright (c) 2015-2016 Isode Limited.
+ * Copyright (c) 2015-2017 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <SwifTools/MacOSXChecker.h>
#include <algorithm>
#include <cassert>
#include <boost/algorithm/string.hpp>
#include <AppKit/AppKit.h>
+#include <SwifTools/Cocoa/CocoaUtil.h>
+
namespace Swift {
MacOSXChecker::MacOSXChecker() {
NSSpellChecker* spellChecker = [NSSpellChecker sharedSpellChecker];
[spellChecker setAutomaticallyIdentifiesLanguages:YES];
}
MacOSXChecker::~MacOSXChecker() {
}
@@ -48,19 +50,19 @@ std::string MacOSXChecker::activeLanguage() const {
std::vector<std::string> MacOSXChecker::supportedLanguages() const {
assert(false);
}
void MacOSXChecker::getSuggestions(const std::string& word, std::vector<std::string>& list) {
NSSpellChecker* spellChecker = [NSSpellChecker sharedSpellChecker];
NSString* wordString = [[NSString alloc] initWithUTF8String: word.c_str()];
NSArray* suggestions = [spellChecker guessesForWordRange:NSMakeRange(0, [wordString length]) inString:wordString language:nil inSpellDocumentWithTag:0];
for(unsigned int i = 0; i < [suggestions count]; ++i) {
- list.push_back(std::string([[suggestions objectAtIndex:i] UTF8String]));
+ list.push_back(ns2StdString([suggestions objectAtIndex:i]));
}
[wordString release];
}
void MacOSXChecker::checkFragment(const std::string& fragment, PositionPairList& misspelledPositions) {
NSSpellChecker* spellChecker = [NSSpellChecker sharedSpellChecker];
size_t nextLocation = 0;
NSRange range;
NSString *fragmentString = [[NSString alloc] initWithUTF8String: fragment.c_str()];
diff --git a/SwifTools/SpellParser.cpp b/SwifTools/SpellParser.cpp
index 5bafa6e..e449b45 100644
--- a/SwifTools/SpellParser.cpp
+++ b/SwifTools/SpellParser.cpp
@@ -1,27 +1,26 @@
/*
* Copyright (c) 2011-2013 Vlad Voicu
* Licensed under the Simplified BSD license.
* See Documentation/Licenses/BSD-simplified.txt for more information.
*/
/*
- * Copyright (c) 2016 Isode Limited.
+ * Copyright (c) 2016-2018 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <SwifTools/SpellParser.h>
#include <string>
#include <boost/bind.hpp>
-#include <boost/numeric/conversion/cast.hpp>
#include <boost/ref.hpp>
#include <boost/spirit/include/lex_lexertl.hpp>
namespace lex = boost::spirit::lex;
namespace Swift {
template <typename Lexer>
struct word_count_tokens : lex::lexer<Lexer>
@@ -41,26 +40,26 @@ struct word_count_tokens : lex::lexer<Lexer>
struct counter
{
typedef bool result_type;
// the function operator gets called for each of the matched tokens
template <typename Token>
bool operator()(Token const& t, PositionPairList& wordPositions, std::size_t& position) const
{
switch (t.id()) {
case ID_WWW:
- position += boost::numeric_cast<size_t>(t.value().size());
+ position += static_cast<std::size_t>(t.value().size());
break;
case ID_HTTP:
- position += boost::numeric_cast<size_t>(t.value().size());
+ position += static_cast<std::size_t>(t.value().size());
break;
case ID_WORD: // matched a word
- wordPositions.push_back(boost::tuples::make_tuple(position, position + boost::numeric_cast<size_t>(t.value().size())));
- position += boost::numeric_cast<size_t>(t.value().size());
+ wordPositions.push_back(boost::tuples::make_tuple(position, position + static_cast<std::size_t>(t.value().size())));
+ position += static_cast<std::size_t>(t.value().size());
break;
case ID_CHAR: // match a simple char
++position;
break;
}
return true; // always continue to tokenize
}
};