aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLuke Dashjr <luke-jr+git@utopios.org>2012-04-06 16:34:34 -0400
committerLuke Dashjr <luke-jr+git@utopios.org>2012-04-06 16:34:34 -0400
commit892fcaf291cb9fc0f9efd4244f01b6b6529409ba (patch)
tree652c768a2961fc49988a6e7c1418841c05e8faaf /src
parent0d10cb7a1f6314760ef8895490e5c1042c3549b1 (diff)
parentbf1f995c4c968f4325ac05474fcfd87924d62e36 (diff)
downloadbitcoin-892fcaf291cb9fc0f9efd4244f01b6b6529409ba.tar.xz
Merge branch '0.5.0.x' into 0.5.x
Conflicts: src/qt/notificator.h
Diffstat (limited to 'src')
-rw-r--r--src/qt/bitcoingui.cpp8
-rw-r--r--src/qt/guiutil.cpp20
-rw-r--r--src/qt/guiutil.h8
-rw-r--r--src/qt/notificator.cpp15
-rw-r--r--src/qt/notificator.h3
-rw-r--r--src/qt/sendcoinsdialog.cpp8
-rw-r--r--src/qt/sendcoinsdialog.h4
7 files changed, 36 insertions, 30 deletions
diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp
index be60838171..0111ebbc9d 100644
--- a/src/qt/bitcoingui.cpp
+++ b/src/qt/bitcoingui.cpp
@@ -659,7 +659,7 @@ void BitcoinGUI::gotoSendCoinsPage()
void BitcoinGUI::dragEnterEvent(QDragEnterEvent *event)
{
- // Accept only URLs
+ // Accept only URIs
if(event->mimeData()->hasUrls())
event->acceptProposedAction();
}
@@ -669,10 +669,10 @@ void BitcoinGUI::dropEvent(QDropEvent *event)
if(event->mimeData()->hasUrls())
{
gotoSendCoinsPage();
- QList<QUrl> urls = event->mimeData()->urls();
- foreach(const QUrl &url, urls)
+ QList<QUrl> uris = event->mimeData()->urls();
+ foreach(const QUrl &uri, uris)
{
- sendCoinsPage->handleURL(&url);
+ sendCoinsPage->handleURI(&uri);
}
}
diff --git a/src/qt/guiutil.cpp b/src/qt/guiutil.cpp
index d1490c8f70..f5e6e0a545 100644
--- a/src/qt/guiutil.cpp
+++ b/src/qt/guiutil.cpp
@@ -47,16 +47,16 @@ void GUIUtil::setupAmountWidget(QLineEdit *widget, QWidget *parent)
widget->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
}
-bool GUIUtil::parseBitcoinURL(const QUrl *url, SendCoinsRecipient *out)
+bool GUIUtil::parseBitcoinURI(const QUrl *uri, SendCoinsRecipient *out)
{
- if(url->scheme() != QString("bitcoin"))
+ if(uri->scheme() != QString("bitcoin"))
return false;
SendCoinsRecipient rv;
- rv.address = url->path();
- rv.label = url->queryItemValue("label");
+ rv.address = uri->path();
+ rv.label = uri->queryItemValue("label");
- QString amount = url->queryItemValue("amount");
+ QString amount = uri->queryItemValue("amount");
if(amount.isEmpty())
{
rv.amount = 0;
@@ -75,18 +75,18 @@ bool GUIUtil::parseBitcoinURL(const QUrl *url, SendCoinsRecipient *out)
return true;
}
-bool GUIUtil::parseBitcoinURL(QString url, SendCoinsRecipient *out)
+bool GUIUtil::parseBitcoinURI(QString uri, SendCoinsRecipient *out)
{
// Convert bitcoin:// to bitcoin:
//
// Cannot handle this later, because bitcoin:// will cause Qt to see the part after // as host,
// which will lowercase it (and thus invalidate the address).
- if(url.startsWith("bitcoin://"))
+ if(uri.startsWith("bitcoin://"))
{
- url.replace(0, 10, "bitcoin:");
+ uri.replace(0, 10, "bitcoin:");
}
- QUrl urlInstance(url);
- return parseBitcoinURL(&urlInstance, out);
+ QUrl uriInstance(uri);
+ return parseBitcoinURI(&uriInstance, out);
}
QString GUIUtil::getSaveFileName(QWidget *parent, const QString &caption,
diff --git a/src/qt/guiutil.h b/src/qt/guiutil.h
index a7eee0990b..7e2b006d92 100644
--- a/src/qt/guiutil.h
+++ b/src/qt/guiutil.h
@@ -28,10 +28,10 @@ public:
static void setupAddressWidget(QLineEdit *widget, QWidget *parent);
static void setupAmountWidget(QLineEdit *widget, QWidget *parent);
- // Parse "bitcoin:" URL into recipient object, return true on succesful parsing
- // See Bitcoin URL definition discussion here: https://bitcointalk.org/index.php?topic=33490.0
- static bool parseBitcoinURL(const QUrl *url, SendCoinsRecipient *out);
- static bool parseBitcoinURL(QString url, SendCoinsRecipient *out);
+ // Parse "bitcoin:" URI into recipient object, return true on succesful parsing
+ // See Bitcoin URI definition discussion here: https://bitcointalk.org/index.php?topic=33490.0
+ static bool parseBitcoinURI(const QUrl *, SendCoinsRecipient *out);
+ static bool parseBitcoinURI(QString uri, SendCoinsRecipient *out);
/** Get save file name, mimics QFileDialog::getSaveFileName, except that it appends a default suffix
when no suffix is provided by the user.
diff --git a/src/qt/notificator.cpp b/src/qt/notificator.cpp
index a2314caa47..e668079536 100644
--- a/src/qt/notificator.cpp
+++ b/src/qt/notificator.cpp
@@ -52,10 +52,13 @@ Notificator::Notificator(const QString &programName, QSystemTrayIcon *trayicon,
OSStatus status = LSGetApplicationForInfo(kLSUnknownType, kLSUnknownCreator, CFSTR("growlTicket"), kLSRolesAll, 0, &cfurl);
if (status != kLSApplicationNotFoundErr) {
CFBundleRef bundle = CFBundleCreate(0, cfurl);
- CFRelease(cfurl);
if (CFStringCompare(CFBundleGetIdentifier(bundle), CFSTR("com.Growl.GrowlHelperApp"), kCFCompareCaseInsensitive | kCFCompareBackwards) == kCFCompareEqualTo) {
- mode = Growl;
+ if (CFStringHasSuffix(CFURLGetString(cfurl), CFSTR("/Growl.app/")))
+ mode = Growl13;
+ else
+ mode = Growl12;
}
+ CFRelease(cfurl);
CFRelease(bundle);
}
#endif
@@ -226,7 +229,7 @@ void Notificator::notifySystray(Class cls, const QString &title, const QString &
void Notificator::notifyGrowl(Class cls, const QString &title, const QString &text, const QIcon &icon)
{
const QString script(
- "tell application \"GrowlHelperApp\"\n"
+ "tell application \"%5\"\n"
" set the allNotificationsList to {\"Notification\"}\n" // -- Make a list of all the notification types (all)
" set the enabledNotificationsList to {\"Notification\"}\n" // -- Make a list of the notifications (enabled)
" register as application \"%1\" all notifications allNotificationsList default notifications enabledNotificationsList\n" // -- Register our script with Growl
@@ -265,7 +268,8 @@ void Notificator::notifyGrowl(Class cls, const QString &title, const QString &te
QString quotedTitle(title), quotedText(text);
quotedTitle.replace("\\", "\\\\").replace("\"", "\\");
quotedText.replace("\\", "\\\\").replace("\"", "\\");
- qt_mac_execute_apple_script(script.arg(notificationApp, quotedTitle, quotedText, notificationIcon), 0);
+ QString growlApp(this->mode == Notificator::Growl13 ? "Growl" : "GrowlHelperApp");
+ qt_mac_execute_apple_script(script.arg(notificationApp, quotedTitle, quotedText, notificationIcon, growlApp), 0);
}
#endif
@@ -282,7 +286,8 @@ void Notificator::notify(Class cls, const QString &title, const QString &text, c
notifySystray(cls, title, text, icon, millisTimeout);
break;
#ifdef Q_WS_MAC
- case Growl:
+ case Growl12:
+ case Growl13:
notifyGrowl(cls, title, text, icon);
break;
#endif
diff --git a/src/qt/notificator.h b/src/qt/notificator.h
index 2d83013a7f..0271c26f48 100644
--- a/src/qt/notificator.h
+++ b/src/qt/notificator.h
@@ -49,7 +49,8 @@ private:
None, /**< Ignore informational notifications, and show a modal pop-up dialog for Critical notifications. */
Freedesktop, /**< Use DBus org.freedesktop.Notifications */
QSystemTray, /**< Use QSystemTray::showMessage */
- Growl /**< Use the Growl notification system (Mac only) */
+ Growl12, /**< Use the Growl 1.2 notification system (Mac only) */
+ Growl13 /**< Use the Growl 1.3 notification system (Mac only) */
};
QString programName;
Mode mode;
diff --git a/src/qt/sendcoinsdialog.cpp b/src/qt/sendcoinsdialog.cpp
index e465b4141a..657761515b 100644
--- a/src/qt/sendcoinsdialog.cpp
+++ b/src/qt/sendcoinsdialog.cpp
@@ -255,20 +255,20 @@ void SendCoinsDialog::pasteEntry(const SendCoinsRecipient &rv)
}
-void SendCoinsDialog::handleURL(const QUrl *url)
+void SendCoinsDialog::handleURI(const QUrl *uri)
{
SendCoinsRecipient rv;
- if(!GUIUtil::parseBitcoinURL(url, &rv))
+ if(!GUIUtil::parseBitcoinURI(uri, &rv))
{
return;
}
pasteEntry(rv);
}
-void SendCoinsDialog::handleURL(const QString &url)
+void SendCoinsDialog::handleURI(const QString &uri)
{
SendCoinsRecipient rv;
- if(!GUIUtil::parseBitcoinURL(url, &rv))
+ if(!GUIUtil::parseBitcoinURI(uri, &rv))
{
return;
}
diff --git a/src/qt/sendcoinsdialog.h b/src/qt/sendcoinsdialog.h
index 53d05b96a7..79125766e3 100644
--- a/src/qt/sendcoinsdialog.h
+++ b/src/qt/sendcoinsdialog.h
@@ -30,8 +30,8 @@ public:
QWidget *setupTabChain(QWidget *prev);
void pasteEntry(const SendCoinsRecipient &rv);
- void handleURL(const QUrl *url);
- void handleURL(const QString &url);
+ void handleURI(const QUrl *uri);
+ void handleURI(const QString &uri);
public slots:
void clear();