Merge pull request #357 from camconn/master
made generate.sh readable, and added icons and shortcuts to the menubar
This commit is contained in:
commit
22661a14c1
101
INSTALL.md
Normal file
101
INSTALL.md
Normal file
|
@ -0,0 +1,101 @@
|
||||||
|
#PyBitmessage Installation Instructions
|
||||||
|
|
||||||
|
For an up-to-date version of these instructions, please visit the
|
||||||
|
[Bitmessage Wiki](https://bitmessage.org/wiki/Compiling_instructions).
|
||||||
|
|
||||||
|
PyBitmessage can be run either straight from source or from an installed
|
||||||
|
packaged.
|
||||||
|
|
||||||
|
##Dependencies
|
||||||
|
Before running PyBitmessage, make sure you have all the needed dependencies
|
||||||
|
installed on your system.
|
||||||
|
|
||||||
|
Here's a list of dependencies needed for PyBitmessage
|
||||||
|
- python2.7
|
||||||
|
- python2-qt4 (python-qt4 on Debian/Ubuntu)
|
||||||
|
- openssl
|
||||||
|
- (Fedora & Redhat only) openssl-compat-bitcoin-libs
|
||||||
|
|
||||||
|
##Running PyBitmessage
|
||||||
|
PyBitmessage can be run two ways: straight from source or via a package which
|
||||||
|
is installed on your system. Since PyBitmessage is Beta, it is best to run
|
||||||
|
PyBitmessage from source, so that you may update as needed.
|
||||||
|
|
||||||
|
####Updating
|
||||||
|
To update PyBitmessage from source (Linux/OS X), you can do these easy steps:
|
||||||
|
```
|
||||||
|
cd PyBitmessage/src/
|
||||||
|
git fetch --all
|
||||||
|
git reset --hard origin/master
|
||||||
|
python bitmessagemain.py
|
||||||
|
```
|
||||||
|
Viola! Bitmessage is updated!
|
||||||
|
|
||||||
|
####Linux
|
||||||
|
To run PyBitmessage from the command-line, you must download the source, then
|
||||||
|
run `src/bitmessagemain.py`.
|
||||||
|
```
|
||||||
|
git clone git://github.com/Bitmessage/PyBitmessage.git
|
||||||
|
cd PyBitmessage/ && python src/bitmessagemain.py
|
||||||
|
```
|
||||||
|
|
||||||
|
That's it! *Honestly*!
|
||||||
|
|
||||||
|
####Windows
|
||||||
|
In Windows you can download an executable for Bitmessage
|
||||||
|
[here](https://bitmessage.org/download/windows/Bitmessage.exe).
|
||||||
|
|
||||||
|
However, if you would like to run PyBitmessage via Python in Windows, you can
|
||||||
|
go [here](https://bitmessage.org/wiki/Compiling_instructions#Windows) for
|
||||||
|
information on how to do so.
|
||||||
|
|
||||||
|
####OS X
|
||||||
|
First off, install Homebrew.
|
||||||
|
```
|
||||||
|
ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
|
||||||
|
```
|
||||||
|
|
||||||
|
Now, install the required dependencies
|
||||||
|
```
|
||||||
|
sudo port install python27 py27-pyqt4 openssl
|
||||||
|
sudo port install git-core +svn +doc +bash_completion +gitweb
|
||||||
|
```
|
||||||
|
|
||||||
|
Download and run PyBitmessage:
|
||||||
|
```
|
||||||
|
git clone git://github.com/Bitmessage/PyBitmessage.git
|
||||||
|
cd PyBitmessage && python src/bitmessagemain.py
|
||||||
|
```
|
||||||
|
|
||||||
|
##Creating a package for installation
|
||||||
|
If you really want, you can make a package for PyBitmessage which you may
|
||||||
|
install yourself or distribute to friends. This isn't reccomended, since
|
||||||
|
PyBitmessage is in Beta, and subject to frequent change.
|
||||||
|
|
||||||
|
####Linux
|
||||||
|
|
||||||
|
First off, since PyBitmessage uses something nifty called
|
||||||
|
[packagemonkey](https://github.com/fuzzgun/packagemonkey), go ahead and get
|
||||||
|
that installed. You may have to build it from source.
|
||||||
|
|
||||||
|
Next, edit the generate.sh script. To your liking.
|
||||||
|
|
||||||
|
Now, run the appropriate script for the type of package you'd like to make
|
||||||
|
```
|
||||||
|
arch.sh - create a package for Arch Linux
|
||||||
|
debian.sh - create a package for Debian/Ubuntu
|
||||||
|
ebuild.sh - create a package for Gentoo
|
||||||
|
osx.sh - create a package for OS X
|
||||||
|
puppy.sh - create a package for Puppy Linux
|
||||||
|
rpm.sh - create a RPM package
|
||||||
|
slack.sh - create a package for Slackware
|
||||||
|
```
|
||||||
|
|
||||||
|
####OS X
|
||||||
|
Please refer to
|
||||||
|
[this page](https://bitmessage.org/forum/index.php/topic,2761.0.html) on the
|
||||||
|
forums for instructions on how to create a package on OS X.
|
||||||
|
|
||||||
|
Please note that some versions of OS X don't work.
|
||||||
|
###Windows
|
||||||
|
#TODO: Create Windows package creation instructions
|
27
generate.sh
27
generate.sh
|
@ -4,4 +4,29 @@
|
||||||
|
|
||||||
rm -f Makefile rpmpackage/*.spec
|
rm -f Makefile rpmpackage/*.spec
|
||||||
|
|
||||||
packagemonkey -n "PyBitmessage" --version "0.3.5" --dir "." -l "mit" -e "Bob Mottram (4096 bits) <bob@robotics.uk.to>" --brief "Send encrypted messages" --desc "Bitmessage is a P2P communications protocol used to send encrypted messages to another person or to many subscribers. It is decentralized and trustless, meaning that you need-not inherently trust any entities like root certificate authorities. It uses strong authentication which means that the sender of a message cannot be spoofed, and it aims to hide \"non-content\" data, like the sender and receiver of messages, from passive eavesdroppers like those running warrantless wiretapping programs." --homepage "https://github.com/Bitmessage/PyBitmessage" --section "mail" --categories "Office/Email" --dependsdeb "python (>= 2.7.0), openssl, python-qt4, libqt4-dev (>= 4.8.0), python-qt4-dev, sqlite3, libsqlite3-dev, gst123" --dependsrpm "python, PyQt4, openssl-compat-bitcoin-libs, gst123" --mainscript "bitmessagemain.py" --librarypath "/opt/openssl-compat-bitcoin/lib/" --suggestsdeb "libmessaging-menu-dev" --dependspuppy "openssl, python-qt4, sqlite3, sqlite3-dev, python-openssl, python-sip, gst123" --dependsarch "python2, qt4, python2-pyqt4, sqlite, openssl, gst123" --suggestsarch "python2-gevent" --pythonversion 2 --dependsebuild "dev-libs/openssl, dev-python/PyQt4[${PYTHON_USEDEP}]" --buildebuild "\${PYTHON_DEPS}" --pythonreq "sqlite" --repository "https://github.com/Bitmessage/PyBitmessage.git"
|
packagemonkey -n "PyBitmessage" --version "0.3.5" --dir "." -l "mit" \
|
||||||
|
-e "Bob Mottram (4096 bits) <bob@robotics.uk.to>" \
|
||||||
|
--brief "Send encrypted messages" \
|
||||||
|
--desc "Bitmessage is a P2P communications protocol used to send " \
|
||||||
|
"encrypted messages to another person or to many subscribers. It is " \
|
||||||
|
"decentralized and trustless, meaning that you need-not inherently" \
|
||||||
|
"trust any entities like root certificate authorities. It uses strong " \
|
||||||
|
"authentication which means that the sender of a message cannot be" \
|
||||||
|
"spoofed, and it aims to hide \"non-content\" data, like the sender and " \
|
||||||
|
"receiver of messages, from passive eavesdroppers like those running " \
|
||||||
|
"warrantless wiretapping programs." \
|
||||||
|
--homepage "https://github.com/Bitmessage/PyBitmessage" --section "mail" \
|
||||||
|
--categories "Office/Email" \
|
||||||
|
--dependsdeb "python (>= 2.7.0), openssl, python-qt4, libqt4-dev " \
|
||||||
|
"(>= 4.8.0), python-qt4-dev, sqlite3, libsqlite3-dev, gst123" \
|
||||||
|
--dependsrpm "python, PyQt4, openssl-compat-bitcoin-libs, gst123" \
|
||||||
|
--mainscript "bitmessagemain.py" \
|
||||||
|
--librarypath "/opt/openssl-compat-bitcoin/lib/" \
|
||||||
|
--suggestsdeb "libmessaging-menu-dev" \
|
||||||
|
--dependspuppy "openssl, python-qt4, sqlite3, sqlite3-dev, " \
|
||||||
|
"python-openssl, python-sip, gst123" \
|
||||||
|
--dependsarch "python2, qt4, python2-pyqt4, sqlite, openssl, gst123" \
|
||||||
|
--suggestsarch "python2-gevent" --pythonversion 2 \
|
||||||
|
--dependsebuild "dev-libs/openssl, dev-python/PyQt4[${PYTHON_USEDEP}]" \
|
||||||
|
--buildebuild "\${PYTHON_DEPS}" --pythonreq "sqlite" \
|
||||||
|
--repository "https://github.com/Bitmessage/PyBitmessage.git"
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
|
|
||||||
# Form implementation generated from reading ui file 'bitmessageui.ui'
|
# Form implementation generated from reading ui file 'bitmessageui.ui'
|
||||||
#
|
#
|
||||||
# Created: Sun Jul 21 17:50:02 2013
|
# Created: Thu Aug 1 00:22:41 2013
|
||||||
# by: PyQt4 UI code generator 4.10.2
|
# by: PyQt4 UI code generator 4.10
|
||||||
#
|
#
|
||||||
# WARNING! All changes made in this file will be lost!
|
# WARNING! All changes made in this file will be lost!
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ except AttributeError:
|
||||||
class Ui_MainWindow(object):
|
class Ui_MainWindow(object):
|
||||||
def setupUi(self, MainWindow):
|
def setupUi(self, MainWindow):
|
||||||
MainWindow.setObjectName(_fromUtf8("MainWindow"))
|
MainWindow.setObjectName(_fromUtf8("MainWindow"))
|
||||||
MainWindow.resize(795, 561)
|
MainWindow.resize(775, 598)
|
||||||
icon = QtGui.QIcon()
|
icon = QtGui.QIcon()
|
||||||
icon.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/can-icon-24px.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
icon.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/can-icon-24px.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
||||||
MainWindow.setWindowIcon(icon)
|
MainWindow.setWindowIcon(icon)
|
||||||
|
@ -422,7 +422,7 @@ class Ui_MainWindow(object):
|
||||||
self.gridLayout.addWidget(self.tabWidget, 0, 0, 1, 1)
|
self.gridLayout.addWidget(self.tabWidget, 0, 0, 1, 1)
|
||||||
MainWindow.setCentralWidget(self.centralwidget)
|
MainWindow.setCentralWidget(self.centralwidget)
|
||||||
self.menubar = QtGui.QMenuBar(MainWindow)
|
self.menubar = QtGui.QMenuBar(MainWindow)
|
||||||
self.menubar.setGeometry(QtCore.QRect(0, 0, 795, 18))
|
self.menubar.setGeometry(QtCore.QRect(0, 0, 775, 21))
|
||||||
self.menubar.setObjectName(_fromUtf8("menubar"))
|
self.menubar.setObjectName(_fromUtf8("menubar"))
|
||||||
self.menuFile = QtGui.QMenu(self.menubar)
|
self.menuFile = QtGui.QMenu(self.menubar)
|
||||||
self.menuFile.setObjectName(_fromUtf8("menuFile"))
|
self.menuFile.setObjectName(_fromUtf8("menuFile"))
|
||||||
|
@ -440,20 +440,36 @@ class Ui_MainWindow(object):
|
||||||
self.actionManageKeys = QtGui.QAction(MainWindow)
|
self.actionManageKeys = QtGui.QAction(MainWindow)
|
||||||
self.actionManageKeys.setCheckable(False)
|
self.actionManageKeys.setCheckable(False)
|
||||||
self.actionManageKeys.setEnabled(True)
|
self.actionManageKeys.setEnabled(True)
|
||||||
|
icon = QtGui.QIcon.fromTheme(_fromUtf8("dialog-password"))
|
||||||
|
self.actionManageKeys.setIcon(icon)
|
||||||
self.actionManageKeys.setObjectName(_fromUtf8("actionManageKeys"))
|
self.actionManageKeys.setObjectName(_fromUtf8("actionManageKeys"))
|
||||||
self.actionExit = QtGui.QAction(MainWindow)
|
self.actionExit = QtGui.QAction(MainWindow)
|
||||||
|
icon = QtGui.QIcon.fromTheme(_fromUtf8("application-exit"))
|
||||||
|
self.actionExit.setIcon(icon)
|
||||||
self.actionExit.setObjectName(_fromUtf8("actionExit"))
|
self.actionExit.setObjectName(_fromUtf8("actionExit"))
|
||||||
self.actionHelp = QtGui.QAction(MainWindow)
|
self.actionHelp = QtGui.QAction(MainWindow)
|
||||||
|
icon = QtGui.QIcon.fromTheme(_fromUtf8("help-contents"))
|
||||||
|
self.actionHelp.setIcon(icon)
|
||||||
self.actionHelp.setObjectName(_fromUtf8("actionHelp"))
|
self.actionHelp.setObjectName(_fromUtf8("actionHelp"))
|
||||||
self.actionAbout = QtGui.QAction(MainWindow)
|
self.actionAbout = QtGui.QAction(MainWindow)
|
||||||
|
icon = QtGui.QIcon.fromTheme(_fromUtf8("help-about"))
|
||||||
|
self.actionAbout.setIcon(icon)
|
||||||
self.actionAbout.setObjectName(_fromUtf8("actionAbout"))
|
self.actionAbout.setObjectName(_fromUtf8("actionAbout"))
|
||||||
self.actionSettings = QtGui.QAction(MainWindow)
|
self.actionSettings = QtGui.QAction(MainWindow)
|
||||||
|
icon = QtGui.QIcon.fromTheme(_fromUtf8("document-properties"))
|
||||||
|
self.actionSettings.setIcon(icon)
|
||||||
self.actionSettings.setObjectName(_fromUtf8("actionSettings"))
|
self.actionSettings.setObjectName(_fromUtf8("actionSettings"))
|
||||||
self.actionRegenerateDeterministicAddresses = QtGui.QAction(MainWindow)
|
self.actionRegenerateDeterministicAddresses = QtGui.QAction(MainWindow)
|
||||||
|
icon = QtGui.QIcon.fromTheme(_fromUtf8("view-refresh"))
|
||||||
|
self.actionRegenerateDeterministicAddresses.setIcon(icon)
|
||||||
self.actionRegenerateDeterministicAddresses.setObjectName(_fromUtf8("actionRegenerateDeterministicAddresses"))
|
self.actionRegenerateDeterministicAddresses.setObjectName(_fromUtf8("actionRegenerateDeterministicAddresses"))
|
||||||
self.actionDeleteAllTrashedMessages = QtGui.QAction(MainWindow)
|
self.actionDeleteAllTrashedMessages = QtGui.QAction(MainWindow)
|
||||||
|
icon = QtGui.QIcon.fromTheme(_fromUtf8("user-trash"))
|
||||||
|
self.actionDeleteAllTrashedMessages.setIcon(icon)
|
||||||
self.actionDeleteAllTrashedMessages.setObjectName(_fromUtf8("actionDeleteAllTrashedMessages"))
|
self.actionDeleteAllTrashedMessages.setObjectName(_fromUtf8("actionDeleteAllTrashedMessages"))
|
||||||
self.actionJoinChan = QtGui.QAction(MainWindow)
|
self.actionJoinChan = QtGui.QAction(MainWindow)
|
||||||
|
icon = QtGui.QIcon.fromTheme(_fromUtf8("contact-new"))
|
||||||
|
self.actionJoinChan.setIcon(icon)
|
||||||
self.actionJoinChan.setObjectName(_fromUtf8("actionJoinChan"))
|
self.actionJoinChan.setObjectName(_fromUtf8("actionJoinChan"))
|
||||||
self.menuFile.addAction(self.actionManageKeys)
|
self.menuFile.addAction(self.actionManageKeys)
|
||||||
self.menuFile.addAction(self.actionDeleteAllTrashedMessages)
|
self.menuFile.addAction(self.actionDeleteAllTrashedMessages)
|
||||||
|
@ -523,8 +539,8 @@ class Ui_MainWindow(object):
|
||||||
self.textEditMessage.setHtml(_translate("MainWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
|
self.textEditMessage.setHtml(_translate("MainWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
|
||||||
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
|
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
|
||||||
"p, li { white-space: pre-wrap; }\n"
|
"p, li { white-space: pre-wrap; }\n"
|
||||||
"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:9pt; font-weight:400; font-style:normal;\">\n"
|
"</style></head><body style=\" font-family:\'Ubuntu\'; font-size:9pt; font-weight:400; font-style:normal;\">\n"
|
||||||
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p></body></html>", None))
|
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'MS Shell Dlg 2\';\"><br /></p></body></html>", None))
|
||||||
self.label.setText(_translate("MainWindow", "To:", None))
|
self.label.setText(_translate("MainWindow", "To:", None))
|
||||||
self.label_2.setText(_translate("MainWindow", "From:", None))
|
self.label_2.setText(_translate("MainWindow", "From:", None))
|
||||||
self.radioButtonBroadcast.setText(_translate("MainWindow", "Broadcast to everyone who is subscribed to your address", None))
|
self.radioButtonBroadcast.setText(_translate("MainWindow", "Broadcast to everyone who is subscribed to your address", None))
|
||||||
|
@ -597,7 +613,9 @@ class Ui_MainWindow(object):
|
||||||
self.actionImport_keys.setText(_translate("MainWindow", "Import keys", None))
|
self.actionImport_keys.setText(_translate("MainWindow", "Import keys", None))
|
||||||
self.actionManageKeys.setText(_translate("MainWindow", "Manage keys", None))
|
self.actionManageKeys.setText(_translate("MainWindow", "Manage keys", None))
|
||||||
self.actionExit.setText(_translate("MainWindow", "Quit", None))
|
self.actionExit.setText(_translate("MainWindow", "Quit", None))
|
||||||
|
self.actionExit.setShortcut(_translate("MainWindow", "Ctrl+Q", None))
|
||||||
self.actionHelp.setText(_translate("MainWindow", "Help", None))
|
self.actionHelp.setText(_translate("MainWindow", "Help", None))
|
||||||
|
self.actionHelp.setShortcut(_translate("MainWindow", "F1", None))
|
||||||
self.actionAbout.setText(_translate("MainWindow", "About", None))
|
self.actionAbout.setText(_translate("MainWindow", "About", None))
|
||||||
self.actionSettings.setText(_translate("MainWindow", "Settings", None))
|
self.actionSettings.setText(_translate("MainWindow", "Settings", None))
|
||||||
self.actionRegenerateDeterministicAddresses.setText(_translate("MainWindow", "Regenerate deterministic addresses", None))
|
self.actionRegenerateDeterministicAddresses.setText(_translate("MainWindow", "Regenerate deterministic addresses", None))
|
||||||
|
|
|
@ -6,8 +6,8 @@
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>795</width>
|
<width>775</width>
|
||||||
<height>561</height>
|
<height>598</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
|
@ -257,8 +257,8 @@
|
||||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||||
p, li { white-space: pre-wrap; }
|
p, li { white-space: pre-wrap; }
|
||||||
</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:9pt; font-weight:400; font-style:normal;">
|
</style></head><body style=" font-family:'Ubuntu'; font-size:9pt; font-weight:400; font-style:normal;">
|
||||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html></string>
|
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2';"><br /></p></body></html></string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
@ -1010,8 +1010,8 @@ p, li { white-space: pre-wrap; }
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>795</width>
|
<width>775</width>
|
||||||
<height>18</height>
|
<height>21</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QMenu" name="menuFile">
|
<widget class="QMenu" name="menuFile">
|
||||||
|
@ -1061,41 +1061,87 @@ p, li { white-space: pre-wrap; }
|
||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset theme="dialog-password">
|
||||||
|
<normaloff/>
|
||||||
|
</iconset>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Manage keys</string>
|
<string>Manage keys</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
<action name="actionExit">
|
<action name="actionExit">
|
||||||
|
<property name="icon">
|
||||||
|
<iconset theme="application-exit">
|
||||||
|
<normaloff/>
|
||||||
|
</iconset>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Quit</string>
|
<string>Quit</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="shortcut">
|
||||||
|
<string>Ctrl+Q</string>
|
||||||
|
</property>
|
||||||
</action>
|
</action>
|
||||||
<action name="actionHelp">
|
<action name="actionHelp">
|
||||||
|
<property name="icon">
|
||||||
|
<iconset theme="help-contents">
|
||||||
|
<normaloff/>
|
||||||
|
</iconset>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Help</string>
|
<string>Help</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="shortcut">
|
||||||
|
<string>F1</string>
|
||||||
|
</property>
|
||||||
</action>
|
</action>
|
||||||
<action name="actionAbout">
|
<action name="actionAbout">
|
||||||
|
<property name="icon">
|
||||||
|
<iconset theme="help-about">
|
||||||
|
<normaloff/>
|
||||||
|
</iconset>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>About</string>
|
<string>About</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
<action name="actionSettings">
|
<action name="actionSettings">
|
||||||
|
<property name="icon">
|
||||||
|
<iconset theme="document-properties">
|
||||||
|
<normaloff/>
|
||||||
|
</iconset>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Settings</string>
|
<string>Settings</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
<action name="actionRegenerateDeterministicAddresses">
|
<action name="actionRegenerateDeterministicAddresses">
|
||||||
|
<property name="icon">
|
||||||
|
<iconset theme="view-refresh">
|
||||||
|
<normaloff/>
|
||||||
|
</iconset>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Regenerate deterministic addresses</string>
|
<string>Regenerate deterministic addresses</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
<action name="actionDeleteAllTrashedMessages">
|
<action name="actionDeleteAllTrashedMessages">
|
||||||
|
<property name="icon">
|
||||||
|
<iconset theme="user-trash">
|
||||||
|
<normaloff/>
|
||||||
|
</iconset>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Delete all trashed messages</string>
|
<string>Delete all trashed messages</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
<action name="actionJoinChan">
|
<action name="actionJoinChan">
|
||||||
|
<property name="icon">
|
||||||
|
<iconset theme="contact-new">
|
||||||
|
<normaloff/>
|
||||||
|
</iconset>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Join / Create chan</string>
|
<string>Join / Create chan</string>
|
||||||
</property>
|
</property>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user