diff options
author | Doug <doug@bitcoinarmory.com> | 2014-07-30 16:04:40 -0400 |
---|---|---|
committer | Doug <doug@bitcoinarmory.com> | 2014-07-30 16:04:40 -0400 |
commit | bd0aa105198d3cc12751dc4645877af70cac6258 (patch) | |
tree | 6f311a24424b87de92ade3231d514bfb037a5ef6 /src/qt | |
parent | 1de2992e0786f4de0f0cae10eb27a3b69ec6e3de (diff) |
Replace the temporary file hack currently used to change Bitcoin-Qt's dock icon (OS X) with a buffer-based solution.
Diffstat (limited to 'src/qt')
-rw-r--r-- | src/qt/macdockiconhandler.mm | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/qt/macdockiconhandler.mm b/src/qt/macdockiconhandler.mm index 74fb64ace3..a2ff148d9d 100644 --- a/src/qt/macdockiconhandler.mm +++ b/src/qt/macdockiconhandler.mm @@ -6,7 +6,7 @@ #include <QImageWriter> #include <QMenu> -#include <QTemporaryFile> +#include <QBuffer> #include <QWidget> #undef slots @@ -95,14 +95,14 @@ void MacDockIconHandler::setIcon(const QIcon &icon) QSize size = icon.actualSize(QSize(128, 128)); QPixmap pixmap = icon.pixmap(size); - // write temp file hack (could also be done through QIODevice [memory]) - QTemporaryFile notificationIconFile; - if (!pixmap.isNull() && notificationIconFile.open()) { - QImageWriter writer(¬ificationIconFile, "PNG"); + // Write image into a R/W buffer from raw pixmap, then save the image. + QBuffer notificationBuffer; + if (!pixmap.isNull() && notificationBuffer.open(QIODevice::ReadWrite)) { + QImageWriter writer(¬ificationBuffer, "PNG"); if (writer.write(pixmap.toImage())) { - const char *cString = notificationIconFile.fileName().toUtf8().data(); - NSString *macString = [NSString stringWithCString:cString encoding:NSUTF8StringEncoding]; - image = [[NSImage alloc] initWithContentsOfFile:macString]; + NSData* macImgData = [NSData dataWithBytes:notificationBuffer.buffer().data() + length:notificationBuffer.buffer().size()]; + image = [[NSImage alloc] initWithData:macImgData]; } } |