From 241f847411e8d94f1295f75e5fa5bef6534fecc5 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 | 14 ++++++++++++++
src/bitmessageqt/settings.py | 7 +++++++
2 files changed, 21 insertions(+)
diff --git a/src/bitmessageqt/__init__.py b/src/bitmessageqt/__init__.py
index aefc1990..16dea82c 100644
--- a/src/bitmessageqt/__init__.py
+++ b/src/bitmessageqt/__init__.py
@@ -57,6 +57,7 @@ import subprocess
import datetime
from helper_sql import *
import l10n
+import openclpow
import types
from utils import *
from collections import OrderedDict
@@ -2631,6 +2632,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:
@@ -4158,6 +4162,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))