From e7e245fe25d7f580c4aa1f48bc865428ee611ffa Mon Sep 17 00:00:00 2001
From: mailchuck
Date: Thu, 26 Nov 2015 02:37:07 +0100
Subject: [PATCH] OpenCL GUI settings
---
src/bitmessageqt/__init__.py | 35 ++++++++++++++++++-----------------
src/bitmessageqt/settings.py | 7 +++++++
2 files changed, 25 insertions(+), 17 deletions(-)
diff --git a/src/bitmessageqt/__init__.py b/src/bitmessageqt/__init__.py
index 6d17089c..4b9c5f33 100644
--- a/src/bitmessageqt/__init__.py
+++ b/src/bitmessageqt/__init__.py
@@ -56,23 +56,11 @@ import subprocess
import datetime
from helper_sql import *
import l10n
-
-try:
- from PyQt4 import QtCore, QtGui
- from PyQt4.QtCore import *
- from PyQt4.QtGui import *
- from PyQt4.QtNetwork import QLocalSocket, QLocalServer
-
-except Exception as err:
- print 'PyBitmessage requires PyQt unless you want to run it as a daemon and interact with it using the API. You can download it from http://www.riverbankcomputing.com/software/pyqt/download or by searching Google for \'PyQt Download\' (without quotes).'
- print 'Error message:', err
- sys.exit()
-
-try:
- _encoding = QtGui.QApplication.UnicodeUTF8
-except AttributeError:
- print 'QtGui.QApplication.UnicodeUTF8 error:', err
-
+import openclpow
+import types
+from utils import *
+from collections import OrderedDict
+from account import *
def _translate(context, text):
return QtGui.QApplication.translate(context, text)
@@ -2643,6 +2631,9 @@ class MyForm(settingsmixin.SMainWindow):
shared.config.set('bitmessagesettings', 'defaultpayloadlengthextrabytes', str(int(float(
self.settingsDialogInstance.ui.lineEditSmallMessageDifficulty.text()) * shared.networkDefaultPayloadLengthExtraBytes)))
+ if openclpow.has_opencl() and self.settingsDialogInstance.ui.checkBoxOpenCL.isChecked != shared.safeConfigGetBoolean("bitmessagesettings", "opencl"):
+ shared.config.set('bitmessagesettings', 'opencl', str(self.settingsDialogInstance.ui.checkBoxOpenCL.isChecked))
+
acceptableDifficultyChanged = False
if float(self.settingsDialogInstance.ui.lineEditMaxAcceptableTotalDifficulty.text()) >= 1 or float(self.settingsDialogInstance.ui.lineEditMaxAcceptableTotalDifficulty.text()) == 0:
@@ -4170,6 +4161,16 @@ class settingsDialog(QtGui.QDialog):
self.ui.lineEditMaxAcceptableSmallMessageDifficulty.setText(str((float(shared.config.getint(
'bitmessagesettings', 'maxacceptablepayloadlengthextrabytes')) / shared.networkDefaultPayloadLengthExtraBytes)))
+ # OpenCL
+ if openclpow.has_opencl():
+ self.ui.checkBoxOpenCL.setEnabled(True)
+ else:
+ self.ui.checkBoxOpenCL.setEnabled(False)
+ if shared.safeConfigGetBoolean("bitmessagesettings", "opencl"):
+ self.ui.checkBoxOpenCL.setChecked(True)
+ else:
+ self.ui.checkBoxOpenCL.setChecked(False)
+
# Namecoin integration tab
nmctype = shared.config.get('bitmessagesettings', 'namecoinrpctype')
self.ui.lineEditNamecoinHost.setText(str(
diff --git a/src/bitmessageqt/settings.py b/src/bitmessageqt/settings.py
index 4a1dfc7c..efdfc1b7 100644
--- a/src/bitmessageqt/settings.py
+++ b/src/bitmessageqt/settings.py
@@ -308,6 +308,12 @@ class Ui_settingsDialog(object):
self.gridLayout_7.addWidget(self.lineEditMaxAcceptableSmallMessageDifficulty, 2, 2, 1, 1)
spacerItem8 = QtGui.QSpacerItem(20, 147, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
self.gridLayout_7.addItem(spacerItem8, 3, 1, 1, 1)
+ self.labelOpenCL = QtGui.QLabel(self.tabMaxAcceptableDifficulty)
+ self.labelOpenCL.setObjectName(_fromUtf8("labelOpenCL"))
+ self.gridLayout_7.addWidget(self.labelOpenCL, 4, 0, 1, 1)
+ self.checkBoxOpenCL = QtGui.QCheckBox(self.tabMaxAcceptableDifficulty)
+ self.checkBoxOpenCL.setObjectName = (_fromUtf8("checkBoxOpenCL"))
+ self.gridLayout_7.addWidget(self.checkBoxOpenCL, 4, 1, 1, 1)
self.tabWidgetSettings.addTab(self.tabMaxAcceptableDifficulty, _fromUtf8(""))
self.tabNamecoin = QtGui.QWidget()
self.tabNamecoin.setObjectName(_fromUtf8("tabNamecoin"))
@@ -481,6 +487,7 @@ class Ui_settingsDialog(object):
self.label_13.setText(_translate("settingsDialog", "Maximum acceptable total difficulty:", None))
self.label_14.setText(_translate("settingsDialog", "Maximum acceptable small message difficulty:", None))
self.tabWidgetSettings.setTabText(self.tabWidgetSettings.indexOf(self.tabMaxAcceptableDifficulty), _translate("settingsDialog", "Max acceptable difficulty", None))
+ self.labelOpenCL.setText(_translate("settingsDialog", "Hardware GPU acceleration (OpenCL)", None))
self.label_16.setText(_translate("settingsDialog", "
Bitmessage can utilize a different Bitcoin-based program called Namecoin to make addresses human-friendly. For example, instead of having to tell your friend your long Bitmessage address, you can simply tell him to send a message to test.
(Getting your own Bitmessage address into Namecoin is still rather difficult).
Bitmessage can use either namecoind directly or a running nmcontrol instance.
", None))
self.label_17.setText(_translate("settingsDialog", "Host:", None))
self.label_18.setText(_translate("settingsDialog", "Port:", None))