Commit Graph

1344 Commits

Author SHA1 Message Date
412e175f27 Translation updates
Added a RetranslateMixin. Since PyQT does not support automated language
changes of UI files (like the C++ QT does), this implements something
similar. It assumes that the UI file has the same name as the class, but
lowercase.

Added RetraslateMixin to the new blacklist and networkstatus interfaces.
2016-05-02 15:00:25 +02:00
ecfa18b1c6 Change UI loading for frozen 2016-05-02 15:00:25 +02:00
8b605a874a Translation updates
- add missing files into translation definition
- refresh english strings
- change context for "networkstatus"
2016-05-02 15:00:25 +02:00
0f267c94c7 Translations update
- added Danish translation (thanks @mirrorwish)
- added English translation (to serve as a source for other
  translations)
2016-05-02 15:00:25 +02:00
491579c368 Translations update source files 2016-05-02 15:00:25 +02:00
mirrorwish
554627dd92 Refactor Inventory 2016-05-02 15:00:25 +02:00
mirrorwish
7800272d3a Refactor Blacklist tab 2016-05-02 15:00:25 +02:00
mirrorwish
337cf93b4b Fix byte formatting 2016-05-02 15:00:25 +02:00
24ae23946b Translations config file update 2016-05-02 15:00:25 +02:00
mirrorwish
69aa618890 Combine all translation project files into one 2016-05-02 15:00:24 +02:00
mirrorwish
a23022b2db Refactor Network Status tab 2016-05-02 15:00:24 +02:00
mirrorwish
64fce79321 Refactor status icon 2016-05-02 15:00:24 +02:00
mailchuck
4f56e49a30 Unread count refresh updates 2016-05-02 15:00:24 +02:00
mailchuck
66824c32d1 sqlExecute now returns rowcount
This allows tracking of how many rows were changed, for example for
UPDATE, DELETE, INSERT.
2016-05-02 15:00:24 +02:00
mailchuck
8172fce730 Typos 2016-05-02 15:00:24 +02:00
mailchuck
a63f9054f4 Global Sent fix 2016-05-02 15:00:24 +02:00
mailchuck
0ab0e6757a Restrict pending parallel requests on proxy
This saves some network resources if using Tor, for example.
2016-05-02 15:00:24 +02:00
1b50f3898a UPnP fixes:
- external port iterator fix
- error handler fix
2016-05-02 15:00:24 +02:00
mailchuck
a1b44aab44 UPnP fixes
- UPnP handles errors better
- it tries to bind external interface (previously sometimes it searched
on 127.0.0.1 resulting in no routers being detected)
2016-05-02 15:00:24 +02:00
e03803e4e8 Translations update
Updated translation source files
2016-05-02 15:00:24 +02:00
f8dcb965ea Grammar fix
- Fixes #179
- Thanks to @Erkan-Yilmaz
2016-05-02 15:00:24 +02:00
d63ecfc566 Translation update
- typos
- updated German translation
- Fixes Bitmessage#844
2016-05-02 15:00:24 +02:00
3fcaa47232 Ack received translation typo
Fixes Bitmessage#644
2016-05-02 15:00:24 +02:00
143abe3c34 Preliminary Tor hidden service support 2016-05-02 15:00:24 +02:00
c5363c3c5e Add bitcoin URI handler for message viewer 2016-05-02 15:00:24 +02:00
2e47ab0cd2 Keyboard modifiers with quick navigation
The quick navigation key disrupted keybindings with keyboard modifiers,
like Ctrl-C for copy. This restricts the quick navigation only where no
keyboard modifiers are active.

Fixes #184
2016-05-02 15:00:24 +02:00
a30d5af948 Global Sent and Trash folders 2016-05-02 15:00:24 +02:00
mailchuck
8d8cfe8555 More unicode fixes
Addresses #180
2016-05-02 15:00:24 +02:00
mailchuck
da036c6b6b UTF fixes
Label edits now accept and save utf8 characters.
Addresses #180
Still need to check how it behaves on invalid chars.
2016-05-02 15:00:24 +02:00
mailchuck
47bc85f0b6 Sent folder in chans extended
Previously, it only showed message sent to the selected chan address.
Now it shows both those sent to and sent from the chan address.

Fixes #181
2016-05-02 15:00:24 +02:00
mailchuck
d8aa484b8c Email gateway interface usability improvements
- don't allow status request / settings unless registered already
- if registered, status request is the default selected option

Fixes #182
2016-05-02 15:00:24 +02:00
mailchuck
2adafdaadc Improved URI detector 2016-05-02 15:00:24 +02:00
mailchuck
ed5c8a01ef loadResource incorrect parameters 2016-05-02 15:00:24 +02:00
mailchuck
a79f6cce3b Clipboard copy unicode
Copying unicode subjects to clipboard didn't work.

Fixes #183
2016-05-02 15:00:24 +02:00
113ceb0868 Email links "From"
Clicking email links now sets "From" based on the message the link is
in.
2016-05-02 15:00:24 +02:00
af193a1bca Keybindings
- delete key now works when message body is focused as well
- N for next message (down)
- P for previous message (up)
- R for reply
- C for compose
- F for find
- Find is now dynamic if the search text is least 3 characters long

Fixes Bitmessage#655
Addresses #155
2016-05-02 15:00:24 +02:00
9e2ae4eeb5 Allow close to tray
PyBitmessage can now close to tray. Even though the main code was there,
the UI and config variable were missing.

Fixes Bitmessage#564
2016-05-02 15:00:24 +02:00
b3b69b1eac deleteRowFromMessagelist implementation
Rows are deleted from a message list in multiple places, and this is an
attempt to refactor it so that it is done in one function. It's not used
anywhere yet.
2016-05-02 15:00:24 +02:00
976af4b3cd Empty resource loader for messageview
MessageView does not currently load external resources (QTextBrowser by
default interprets all external resources as local file names and tries
to load them like that. This can, in the future, be implemented. For
example, if SOCKS (Tor) is used, the resource could be loaded through
the SOCKS too.

This commit is a skeleton for it that does not actually do anything and
can be filled with an implementation that does the loading.
2016-05-02 15:00:24 +02:00
96a1726426 Clickable email and http links in plain text
Email addresses and URIs are now clickable when viewing a message in
plain text mode. Clicking an email address moves to the Send tab, while
clicking an URI has the same result as clicking an URI in html mode, it
will ask for confirmation before opening it in external handler.
2016-05-02 15:00:24 +02:00
f27ca0d3d6 HTML parser updates
HTML parser wasn't correctly handling img tags.
Now it also by defaults disabled external schemas to prevent
deanonymisation (even though the renderer actually doesn't support
external schemas at the moment)

Addresses #178
2016-05-02 15:00:24 +02:00
b202ac6fab Do not allow port 0
Attackers injected node addresses with port 0 into the network. Port 0
is unusable on many OSes and can't be listened on. PyBitmessage won't
accept nodes that have port 0 anymore.
2016-05-02 15:00:24 +02:00
9239813ebb Constant time decryption
Always try to decrypt with all keys.
2016-05-02 15:00:24 +02:00
4c2ce7208c Sleep on invalid getdata
- postpone initial sleep until the first getdata is received
- also sleep when received a getdata request for an object that hasn't
been advertised to the other node yet
2016-05-02 15:00:24 +02:00
1a92db54c9 Process gateway registration rejections
A message from gateway registration addres regarding registration
rejection is processed and a dialog displayed to get a new email
address.

Fixes #14
2016-05-02 15:00:24 +02:00
6b8f255a60 Email gateway updates
- settings option available
- reduce max TTL to 2 days
2016-05-02 15:00:24 +02:00
2b6bffc7ff Email gateway account status query
- addresses #14
2016-05-02 15:00:24 +02:00
db84d699db Search improvements
- selecting a new folder will apply search
- newly arrived message will consider search
- fixes #166
2016-05-02 15:00:24 +02:00
218bdf38e1 Better error reporting for log config
Fixes #174
2016-05-02 15:00:24 +02:00
ab974abce0 Sent message status on ACK
Fixes #176
2016-05-02 15:00:24 +02:00
8f5d305242 Mitigate active internal intersection attack
There was a report that by quickly asking a large number of nodes if
they have an ACK object (which the attacker knows but it is injected
into the network by the recipient of the message), it can estimate how
an object propagates through the network, and eventually pinpoint an
originating IP address of the injection, i.e. the IP address of the
message recipient.

This patch mitigates against it by stalling when asked for a nonexisting
object (so that the attacker can't spam requests), and also upon
connection before sending its own inventory list (so that reconnecting
won't help the attacker). It estimates how long a short message takes to
propagate through the network based on how many nodes are in a stream
and bases the stalling time on that. Currently that is about 15 seconds.
Initial connection delay takes into account the time that already passed
since the connection was established.

This basically gives the attacker one shot per a combination of his own
nodes and the nodes he can connect to, and thus makes the attack much
more difficult to succeed.
2016-05-02 15:00:24 +02:00
f43e01ed0e Don't send ACK on subscribed chans
If somehow you manage to send a message that includes an ACK part into a
chan, the subscribers would send the ACK back. This shouldn't happen.
2016-05-02 15:00:23 +02:00
40f0ff381e blacklist rendering edit fix
Editing of blacklist labels affected the rerendering, because it emits
the changed signal too, and it caused an exception because the address
field was missing at that time. This works around both.
2016-05-02 15:00:23 +02:00
0bd89103a7 Don't send unnecessary ACKs
In some situations, it's not necessary to send an ACK. For example, when
the sender is blacklisted, when the message has no content, or when the
address has ACK sending disabled.

Also it's not necessary to rebroadcast empty messages into a mailing
list.
2016-05-02 15:00:23 +02:00
mirrorwish
80c174e417 Save changes to blacklist labels
Fixes mailchuck/PyBitmessage#175

Signed-off-by: Peter Surda <surda@economicsofbitcoin.com>
2016-05-02 15:00:23 +02:00
mailchuck
bcae62938a Unused variable 2016-05-02 15:00:23 +02:00
mailchuck
24a2deed8f Cleanup lockfile on exit
singleton.py design was broken.
Fixed Bitmessage#775
2016-05-02 15:00:23 +02:00
mailchuck
4f26bf1059 private IP range checks
When advertising nodes and when establishing connections, private IP
range checks were not done. This could cause private IPs to be
advertised across the network. Also, some of the checks weren't
IPv6-aware.
Fixes Bitmessage#768
2016-05-02 15:00:23 +02:00
mailchuck
47f1c0c267 Thread names for IPv6
Thread names for IPv6 contained ":". This caused problems in log
parsers.
2016-05-02 15:00:23 +02:00
mailchuck
89752faceb Newly arrives messages sorting
There could be cases where newly arrives message is not added correctly.
It won't necessarily go to the top, that depends on the sort.
2016-05-02 15:00:23 +02:00
mailchuck
3bde549e5c Version bump for 0.5.7 2016-05-02 15:00:23 +02:00
mailchuck
185d212cb2 Unread count refresh on change 2016-05-02 15:00:23 +02:00
mailchuck
8f1e753cf0 Typo 2016-05-02 15:00:23 +02:00
mailchuck
140b3ddbb8 Test cleanup
Safer this way
2016-05-02 15:00:23 +02:00
mailchuck
66e1a26b33 Popup menu on folders
There are no functions associated with it but sometimes it popped up so
disable it.
2016-05-02 15:00:23 +02:00
mailchuck
7c99899248 updateText was deleted so no need to call it 2016-05-02 15:00:23 +02:00
mailchuck
2dc230db90 Tree rerendering cleanup
Fixes #76
2016-05-02 15:00:23 +02:00
mailchuck
1cc4fac7f4 Unread count cleanup
Addresses #128
2016-05-02 15:00:23 +02:00
mailchuck
f5187e16a0 BlackWhitelist rerendering
It used to show entries with no address.
Fixes #170
2016-05-02 15:00:23 +02:00
mailchuck
aae5b713b1 Disabling subscriptions should rerender addressbook
Addresses #76
2016-05-02 15:00:23 +02:00
mailchuck
4e4da254fa Addressbook / Tree / Messagelist rendering
Some changes that didn't propagate correctly before now do.
Addresses #76
2016-05-02 15:00:23 +02:00
mailchuck
f159133f14 TreeWidget and Addressbook editing propagation
If you change, add or remove an item in a treewidget or addressbook,
messagelists will now autoupdate labels, and sender comboboxes will also
update if applicable.
Fixes #69
2016-05-02 15:00:23 +02:00
mailchuck
e6c379cca6 Scroll/zoom in message composing widget
Fixes #169
2016-05-02 15:00:23 +02:00
mailchuck
a4c48228fc Messagelist subscription color
Fixes Bitmessage#842
2016-05-02 15:00:23 +02:00
mailchuck
484bdb0782 Quoting fixes
Message compose sometimes misinterpreted quoted message as HTML, causing
rendering screwups. Since we don't support HTML composing, we will treat
all quoted messages as plain text.
2016-05-02 15:00:23 +02:00
mailchuck
2597ac63f6 Zooming info percent based an single step
Zooming in message body view / compose works in single steps
irrespective of wheel sensitivity, and info about zoom level is
displayed in percent rather than font pixel size.
2016-05-02 15:00:23 +02:00
mailchuck
d36d6f300e Message body display handling of spaces
After the changes in the message body renderer, spaces were not
correctly handled. Fixes #168
2016-05-02 15:00:23 +02:00
mailchuck
056512a715 Sent folder new message selection fix
Fixes Bitmessage#838
2016-05-02 15:00:23 +02:00
mailchuck
9353e8eff7 Message editor updates
- Does not allow changing fonts (it's ignored once it's sent anyway),
fixes #167
- Allows zooming, fixes #163
2016-05-02 15:00:23 +02:00
mailchuck
32b0d24be2 singleWorker shutdown fix
if singleWorker crashed, the thread couldn't be joined. This both makes
it so that it doesn't crash, as well as reorders the shutdown sequence
so that it is less likely to be triggered.
Fixes Bitmessage#549
2016-05-02 15:00:23 +02:00
mailchuck
ec4a16b388 objectProcessorQueue fixes
- it didn't shutdown correctly
- it didn't handle exception correctly (however, if I understand
correctly, this will never be triggered if using blocking get, so it
doesn't affect PyBitmessage)
- flushing size check changed from 1 to 0 (I don't know why it was 1)
2016-05-02 15:00:23 +02:00
47f0df6c0b Object processor queue class
Previous commit didn't include the class. This class takes care of queue
size monitoring so that the system doesn't run out of memory.
2016-05-02 15:00:23 +02:00
e4f31d25fc Flood mitigation optimisation
Flood mitigation was done both in the ObjectProcessorQueue as well as
receiveData threads. This patch removes the mitigation in receiveData
threads and cleans up the one in the ObjectProcessorQueue
2016-05-02 15:00:23 +02:00
mailchuck
2043d796dd Typo 2016-05-02 15:00:23 +02:00
mailchuck
a0da175d45 Typo 2016-05-02 15:00:23 +02:00
mailchuck
c137e334d2 OpenSSL version for support contact form 2016-05-02 15:00:23 +02:00
mailchuck
dc34c00f38 Improve OpenSSL library finder 2016-05-02 15:00:23 +02:00
mailchuck
b7e24fab4a DLL path fix in frozen mode
Addresses #152
2016-05-02 15:00:23 +02:00
mailchuck
6a965cd31a Don't test for Qt in daemon mode
Initialisation of the daemon variable was missing at launch.

Fixes #161
2016-05-02 15:00:23 +02:00
itsexe
72f9e29931 fixed some spelling errors 2016-05-02 15:00:23 +02:00
mailchuck
98fab9c568 Message body focus on reply
Fixes #156
2016-05-02 15:00:23 +02:00
mailchuck
43a765515a Remember current search
@rainulf  What's the reasoning behind resetting the search?

Fixes #155
2016-05-02 15:00:23 +02:00
mailchuck
b699475906 Clicks in empty message shouldn't produce an error 2016-05-02 15:00:23 +02:00
mailchuck
46494dc3e6 "All accounts" can't be renamed
Minor error
2016-05-02 15:00:23 +02:00
mailchuck
f4c2cc5160 Unicode
- subject on replies was not parsed correctly (or should I say was
parsed more than necessary)
- unicode can handle invalid characters without needing a special
function

Fixes #164
2016-05-02 15:00:23 +02:00
mailchuck
962c36e122 Allow zooming of message body
Uses default system zoom settings (Ctrl-Wheel).
Fixes #163
2016-05-02 15:00:23 +02:00
mailchuck
4033b945ee UPnP status bar update fix 2016-05-02 15:00:23 +02:00
mailchuck
1b36da9327 Save UPnP port
Fixes #129
2016-05-02 15:00:23 +02:00
mailchuck
27874df45f Typo (missing) 2016-05-02 15:00:23 +02:00
mailchuck
3f2108b36f Typo 2016-05-02 15:00:23 +02:00
mailchuck
e5675987a7 Fix frozen localisation (OSX)
Fixes Bitmessage#737
2016-05-02 15:00:23 +02:00
mailchuck
d7ff86705e Fix frozen localisation
Addresses Bitmessage#737
2016-05-02 15:00:23 +02:00
mailchuck
6f74ffc265 Mac OSX portable mode path
Fixes #150
2016-05-02 15:00:23 +02:00
mailchuck
3b30afea29 Messagelist subject class
Messagelist subjects now are their own class. Fixes #153
Also fixes replies/clipboard for gatewayed messages.
2016-05-02 15:00:22 +02:00
mailchuck
d6ec2a2b8d Version bump 2016-05-02 15:00:22 +02:00
mailchuck
0f24fe5a0c Missing import 2016-05-02 15:00:22 +02:00
mailchuck
4647fcb876 Disable label rerendering in messagelist
It's broken and just consumes resources. I'll fix it separately.
2016-05-02 15:00:22 +02:00
mailchuck
e650cff42d (Un)read messagelist items
Previous commits broke them, now it renders correctly again.
2016-05-02 15:00:22 +02:00
mailchuck
4b63c4c086 Address Qt.UserData fix
The previous commit broke places where UserData was read from the
mesagelist line, because it's now a string rather than a QVariant. This
actually simplifies things.
2016-05-02 15:00:22 +02:00
mailchuck
879a6f1d68 Messagelist loads faster
Addresses #149. About 5 times faster.
2016-05-02 15:00:22 +02:00
mailchuck
0b4c57a516 Entries missing in messagelist 2016-05-02 15:00:22 +02:00
mailchuck
a8053195ea Fix cdecl/stdcall DLL detection
Fixes #146
2016-05-02 15:00:22 +02:00
69494594d5 Main Window raising fixes
On OSX and linux, the tray icon now raises window.

Starting a new instance should raise the window too, but it may not work
on linux (on my Ubuntu it just flashes the icon)

Fixes Bitmessage#743
2016-05-02 15:00:22 +02:00
mailchuck
ff207c1b56 Portable mode fix
The option should not be available if the directory with the executable
is not writable, such as when running from a dmg on OSX.
2016-05-02 15:00:22 +02:00
mailchuck
4dbd444053 Logging fix 2016-05-02 15:00:22 +02:00
mailchuck
ea37913ff1 Html parser fixes
Raw mode improved, avoid HTML parser entirely and just replaces some
strings.
2016-05-02 15:00:22 +02:00
mailchuck
07cee7209b Contact support fixes
- typos & formatting
- OS detection crash fixes
2016-05-02 15:00:22 +02:00
d0b9d75ce1 Fix contact support unix detection 2016-05-02 15:00:22 +02:00
mailchuck
4049662a3a Contact support updates
Yes/No -> True/False
Add Portable mode
2016-05-02 15:00:22 +02:00
mailchuck
3e956509b2 Add PyBitmessage version to contact support 2016-05-02 15:00:22 +02:00
mailchuck
8359b8b202 Contact support user interface
Fixes #25
2016-05-02 15:00:22 +02:00
mailchuck
a727847e55 Addresses can be configured not to send acks
Manually by specifying "dontsendack" = true in the address section
2016-05-02 15:00:22 +02:00
mailchuck
4c8ba431e5 Add to blacklist from "All accounts"
It didn't work before
2016-05-02 15:00:22 +02:00
mailchuck
17d045da10 Sensible default maximum difficulty
Fixes #144
2016-05-02 15:00:22 +02:00
mailchuck
1f525da1ff Link follow warning
The message box should be a warning rather than a simple question.
2016-05-02 15:00:22 +02:00
mailchuck
eb35f35b83 Add system translations
Items like dialog box buttons were not localised. This loads the default
qt localisation, and also unloads the old localisation on locale change.
Still needs to be adjusted for frozen.

Addresses Bitmessage#737
2016-05-02 15:00:22 +02:00
mailchuck
7ef94b446d Lazy rendering of message contents
Message will render as user is scrolling down. This prevents interface
freezes on long messages (such as inline img in text mode). Fixes
Bitmessage##366

Also a minor fix in text mode rendering.
2016-05-02 15:00:22 +02:00
mailchuck
6557681a6c Message has safe link opening
Links in message body (if in HTML mode) now open, but it asks for a
confirmation in a dialog box.

Fixes #27
2016-05-02 15:00:22 +02:00
mailchuck
751f9108d8 HTML detector and switcher
HTML messages are detected and if present, the top of the message
textedit displays a clickable area that switches HTML rendering on and
off.

Fixes #13
2016-05-02 15:00:22 +02:00
mailchuck
8ff5bf0464 Channel reply enhancement
When replying to a message sent to a chan, now you can choose if you
want to reply to chan or sender. Fixed #9
2016-05-02 15:00:22 +02:00
mailchuck
4e32125ca3 Copy to clipboard in messagelists
Fixes #142
2016-05-02 15:00:22 +02:00
mailchuck
e2fb34e2fb More portable mode fixes 2016-05-02 15:00:22 +02:00
mailchuck
242c8fa9c2 More portable mode fixes 2016-05-02 15:00:22 +02:00
mailchuck
8136b022bc Typos
Still regarding portable mode path fixes
2016-05-02 15:00:22 +02:00
mailchuck
5a45d7dd8f Portable mode fixes
Fixes Bitmessage#379, Bitmessage#341
2016-05-02 15:00:22 +02:00
mailchuck
4f6fd07424 Joining chans interface freeze
Fixes #137
2016-05-02 15:00:22 +02:00
538642f236 Label for blacklisting sender fix
It wasn't properly utf-8-ied.
2016-05-02 15:00:22 +02:00
bdfaa90ecb Auto-register for email gateway if necessary
If attempting to send to an email address from an unregistered
account, auto-send registration to mailchuck.
Use label if possible, otherwise random 12 characater address

Fixes #131
2016-05-02 15:00:22 +02:00
082eb823bb New message appears if viewing account root
Fixes #132
2016-05-02 15:00:22 +02:00
mailchuck
d72e5647f4 Fix wrong account type initialiser
Addresses #14
2016-05-02 15:00:22 +02:00
mailchuck
27b8891ab4 Test commit policy commit 2016-05-02 15:00:22 +02:00
mailchuck
a5456f792c Fix Addressbook context menu delete 2016-05-02 15:00:22 +02:00
mailchuck
41ac1b89d1 Frozen SMP re-disable try 2 2016-05-02 15:00:22 +02:00
mailchuck
549d91dc68 Re-disable windows SMP frozen support
The recommended workaround didn't work.
2016-05-02 15:00:22 +02:00
mailchuck
1625306be3 Version bump 2016-05-02 15:00:22 +02:00
mailchuck
bccc2406a2 Fix double unread count in tray icon 2016-05-02 15:00:22 +02:00
mailchuck
d54b22bb89 Initialise inventorySets earlier
In corner cases, they may be referenced before they are populated.
Probably fixes Bitmessage#530
2016-05-02 15:00:22 +02:00
mailchuck
52fe7105a9 Allow bootstrap from a Tor hidden service
I run a modified node as a Tor hidden service for bootstrapping node
addresses, and PyBitmessage can now connect to it.
2016-05-02 15:00:22 +02:00
mailchuck
27c187283b Unify messagelist rendering
also some minor fixes
2016-05-02 15:00:22 +02:00
mailchuck
a3b13b70e2 Add BROADCAST type
also improve sorting
2016-05-02 15:00:22 +02:00