(k)ubuntu 10.04+ notification support (based on @zwierzak his code)
This commit is contained in:
@@ -20,6 +20,7 @@
|
||||
#include "bitcoinunits.h"
|
||||
#include "guiconstants.h"
|
||||
#include "askpassphrasedialog.h"
|
||||
#include "notificator.h"
|
||||
|
||||
#include <QApplication>
|
||||
#include <QMainWindow>
|
||||
@@ -51,7 +52,8 @@ BitcoinGUI::BitcoinGUI(QWidget *parent):
|
||||
walletModel(0),
|
||||
encryptWalletAction(0),
|
||||
changePassphraseAction(0),
|
||||
trayIcon(0)
|
||||
trayIcon(0),
|
||||
notificator(0)
|
||||
{
|
||||
resize(850, 550);
|
||||
setWindowTitle(tr("Bitcoin Wallet"));
|
||||
@@ -287,6 +289,8 @@ void BitcoinGUI::createTrayIcon()
|
||||
connect(trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)),
|
||||
this, SLOT(trayIconActivated(QSystemTrayIcon::ActivationReason)));
|
||||
trayIcon->show();
|
||||
|
||||
notificator = new Notificator(tr("bitcoin-qt"), trayIcon);
|
||||
}
|
||||
|
||||
void BitcoinGUI::trayIconActivated(QSystemTrayIcon::ActivationReason reason)
|
||||
@@ -394,18 +398,7 @@ void BitcoinGUI::setNumBlocks(int count)
|
||||
void BitcoinGUI::error(const QString &title, const QString &message)
|
||||
{
|
||||
// Report errors from network/worker thread
|
||||
if(trayIcon->supportsMessages())
|
||||
{
|
||||
// Show as "balloon" message if possible
|
||||
trayIcon->showMessage(title, message, QSystemTrayIcon::Critical);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Fall back to old fashioned popup dialog if not
|
||||
QMessageBox::critical(this, title,
|
||||
message,
|
||||
QMessageBox::Ok, QMessageBox::Ok);
|
||||
}
|
||||
notificator->notify(Notificator::Critical, title, message);
|
||||
}
|
||||
|
||||
void BitcoinGUI::changeEvent(QEvent *e)
|
||||
@@ -453,8 +446,6 @@ void BitcoinGUI::askFee(qint64 nFeeRequired, bool *payFee)
|
||||
|
||||
void BitcoinGUI::incomingTransaction(const QModelIndex & parent, int start, int end)
|
||||
{
|
||||
if(start == end)
|
||||
return;
|
||||
TransactionTableModel *ttm = walletModel->getTransactionTableModel();
|
||||
qint64 amount = ttm->index(start, TransactionTableModel::Amount, parent)
|
||||
.data(Qt::EditRole).toULongLong();
|
||||
@@ -468,14 +459,21 @@ void BitcoinGUI::incomingTransaction(const QModelIndex & parent, int start, int
|
||||
.data().toString();
|
||||
QString address = ttm->index(start, TransactionTableModel::ToAddress, parent)
|
||||
.data().toString();
|
||||
QIcon icon = qvariant_cast<QIcon>(ttm->index(start,
|
||||
TransactionTableModel::ToAddress, parent)
|
||||
.data(Qt::DecorationRole));
|
||||
|
||||
trayIcon->showMessage((amount)<0 ? tr("Sent transaction") :
|
||||
tr("Incoming transaction"),
|
||||
tr("Date: ") + date + "\n" +
|
||||
tr("Amount: ") + BitcoinUnits::formatWithUnit(walletModel->getOptionsModel()->getDisplayUnit(), amount, true) + "\n" +
|
||||
tr("Type: ") + type + "\n" +
|
||||
tr("Address: ") + address + "\n",
|
||||
QSystemTrayIcon::Information);
|
||||
notificator->notify(Notificator::Information,
|
||||
(amount)<0 ? tr("Sent transaction") :
|
||||
tr("Incoming transaction"),
|
||||
tr("Date: %1\n"
|
||||
"Amount: %2\n"
|
||||
"Type: %3\n"
|
||||
"Address: %4\n")
|
||||
.arg(date)
|
||||
.arg(BitcoinUnits::formatWithUnit(walletModel->getOptionsModel()->getDisplayUnit(), amount, true))
|
||||
.arg(type)
|
||||
.arg(address), icon);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user