communi / communi-desktop Goto Github PK
View Code? Open in Web Editor NEWAn IRC client for desktop environments
Home Page: https://communi.github.io/
License: BSD 3-Clause "New" or "Revised" License
An IRC client for desktop environments
Home Page: https://communi.github.io/
License: BSD 3-Clause "New" or "Revised" License
The repository now lives at http://github.com/communi/libcommuni.
Network Awareness in Windows Vista and Windows 7
http://msdn.microsoft.com/en-us/library/ee264321(v=vs.85).aspx
INetworkListManager interface
http://msdn.microsoft.com/en-us/library/aa370769(v=vs.85).aspx
INetworkListManager::get_IsConnectedToInternet method
http://msdn.microsoft.com/en-us/library/aa965309(v=vs.85).aspx
Very occasionally, a network will disconnect, seemingly try reconnect (at least, the spinner shows), but won't reconnect.
Right clicking and attempting to disconnect etc won't work.
On the console:
QAbstractSocket::connectToHost() called when already looking up or connecting/connected to "xxx"
QAbstractSocket::connectToHost() called when already looking up or connecting/connected to "xxx"
Is there some timeout implemented on outgoing connections?
There's a user called "strong" on #fedora. The result is quite funky:
[12:38:20] <crised> strong>Roobarbstrong>: Only have video in embedded video card monitor now :(
[12:39:27] ! Yemmi ([email protected]) joined #fedora
[12:39:54] ! trajan (~trajan@unaffiliated/trajan) has quit (Ping timeout: 276 seconds)
[12:40:13] <Roobarb> strong>crisedstrong>: I'm not sure then - its been years since I wanted to have different video cards
[12:40:33] <crised> strong>Roobarbstrong>: ok :(
The lovely new Ctrl+S binding works great. There's just one problem.
If I have many channels starting with, let's say, #qt, and I want to go to #qt-labs, I type #qt. The binding switches me to #qt first, which is acceptable, but it resets the activity count for that window when I'm not really reading it, but "in transit" to my final destination.
Suggestion: Delay resetting the activity until the dialog is closed?
One should get back to the same view after restarting the app.
Due to the waits in ~Session(). The more connections, the more visible the problem is. It should let the window close asap, and take care of closing/deleting/waiting the connections in the background and then finally quit the application when done.
[18:25:58] <w00t> jpnurmi: so I saw an instance of message stays grey on freenode now
[18:26:17] <w00t> the PING was immediately sent, and a PONG immediately recieved
[18:27:27] <w00t> -> "PRIVMSG #xxxx :yyyy: all done"
[18:27:27] <w00t> -> "PING _communi_msg_#xxxx_18"
[18:27:27] <w00t> ":sendak.freenode.net PONG sendak.freenode.net :_communi_msg_#xxxx_18"
[18:27:27] <w00t> ":[email protected] PRIVMSG #xxxx :thanks"
[18:27:50] <w00t> my "all done" is still greyed out, his thanks is after it and black
[18:28:09] <w00t> so i don't think networking is the problem..
It is nice to e.g. be able to say "so and so is talking in #foobar", but it'd be even nicer if we could tab complete these :)
It could be a "what's this" type of action next to the "about" and "settings" buttons, popping up a typical what's this tooltip with shortcuts listed and explained.
One nice feature from irssi. when you /topic in the current channel, and press tab immediately after (i.e. "/topic "), it fills in the current topic. Useful if you're appending something to the end.
Communi should have (configurable) sound notifications together with the system tray alert.
For instance, the links github uses when there are multiple commits:
[19:04:17] [communi-desktop] [communi-desktop] jpnurmi pushed 2 new commits to master: 257ca91...8832bfe <- everything after the first . is unclickable
This is actually a bug in communi, but the highlighting on the link is also funky, so I'll file it here.
When entering commands, / is used to denote a command. Sometimes (like when instructing someone else), you want to start your message with a /.
irssi (for instance) allows this by adding an empty space after the first slash, e.g:
/ /msg foo bar
would send:
PRIVMSG :/msg foo bar
Disabled text color is the same as the background -> invisible items.
I currently have 96 windows open. Switching to a specific window I need to talk to is a bit annoying when it's at the opposite end of the treeview to where I currently am. It would be nice to be able to have some way to get there easily.
User related messages are sometimes missing or shown on wrong channel(s). Apparently the UserModel goes out of sync since that is used to determine which views receive user related messages.
Sometimes it's nice to be able to correct an incorrect topic while you're looking at it at the top of the window. I've caught myself once or twice double clicking it and expecting it to become editable -- this isn't particularly intuitive, but perhaps we should add a button or some way to alter it up there?
When using the keyboard, it's handy to be able to scroll through scrollback :)
NetworkManager D-Bus Reference Manual
http://projects.gnome.org/NetworkManager/developers/api/09
Perhaps such settings:
highlights.someKeyword: true
highlights.anotherKeyword: false
...
Perhaps using a background color for the text block...
Changing focus on a /msg is a bad idea when a network gets spammed (for instance) - I was witness to this last night, and had to close around 150 windows (and basically couldn't type anything until it was over)
First of all, all the various colors sprinkled around the code base should be collected to a single place. Secondly, some people prefer dark themes, so it would be nice to be able to choose between predefined light and dark themes in the settings wizard.
When talking to someone who is away, their away message is repeated for every one of your messages. This is redundant.
A more sensible behaviour would be: don't repeat the away message if it hasn't changed for this nick!user@host, and if we have already shown the away message in the previous 30[0] minutes.
[0]: number picked out of a hat
e.g:
[17:07:01] ok.. firmware downloaded
[17:07:01] ! xxx is away (Sono occupato)
[17:07:11] db doesn't seem to want to do anything useful though
[17:07:11] ! xxx is away (Sono occupato)
[17:07:36] ah
[17:07:36] ! xxx is away (Sono occupato)
[17:07:37] now maybe
[17:07:38] ! xxx is away (Sono occupato)
The overlay that appears when disconnected, doesn't work at all with multiple networks/sessions. It's not shown/hidden as appropriate while switching between views belonging to different networks/sessions.
Reproduction steps: close all connections, try create a new one:
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 QtGui 0x0000000100318c00 QWidget::setParent(QWidget_) + 12
1 com.yourcompany.Communi 0x000000010001d64c MainWindow::updateOverlay() + 134 (mainwindow.cpp:355)
2 com.yourcompany.Communi 0x0000000100020504 MainWindow::connectToImpl(ConnectionInfo const&) + 776 (mainwindow.cpp:168)
3 com.yourcompany.Communi 0x0000000100020e21 MainWindow::connectTo(ConnectionInfo const&) + 347 (mainwindow.cpp:150)
4 com.yourcompany.Communi 0x00000001000210b9 MainWindow::connectTo(QString const&, unsigned short, QString const&, QString const&) + 197 (mainwindow.cpp:139)
5 com.yourcompany.Communi 0x00000001000d177e MainWindow::qt_static_metacall(QObject_, QMetaObject::Call, int, void**) + 1074 (moc_mainwindow.cpp:90)
6 QtCore 0x0000000100f81bd1 QMetaObject::activate(QObject_, QMetaObject const_, int, void**) + 2001
7 com.yourcompany.Communi 0x00000001000d1105 HomePage::connectRequested() + 59 (moc_homepage.cpp:98)
8 com.yourcompany.Communi 0x00000001000d0f3e HomePage::qt_static_metacall(QObject_, QMetaObject::Call, int, void__) + 122 (moc_homepage.cpp:53)
9 QtCore 0x0000000100f81bd1 QMetaObject::activate(QObject_, QMetaObject const_, int, void__) + 2001
10 QtGui 0x000000010089b895 QAbstractButton::clicked(bool) + 49
11 QtGui 0x000000010060796e QAbstractButtonPrivate::emitClicked() + 50
12 QtGui 0x000000010060868a QAbstractButtonPrivate::click() + 230
13 QtGui 0x000000010060884c QAbstractButton::mouseReleaseEvent(QMouseEvent_) + 106
14 QtGui 0x0000000100312730 QWidget::event(QEvent_) + 330
15 QtGui 0x0000000100607936 QAbstractButton::event(QEvent_) + 220
16 QtGui 0x0000000100697a52 QPushButton::event(QEvent_) + 170
17 QtGui 0x000000010062789f QCommandLinkButton::event(QEvent_) + 9
18 QtGui 0x00000001002c3eb8 QApplicationPrivate::notify_helper(QObject_, QEvent_) + 304
19 QtGui 0x00000001002c4908 QApplication::notify(QObject_, QEvent_) + 2602
20 QtCore 0x0000000100f6c3f2 QCoreApplication::notifyInternal(QObject_, QEvent_) + 104
21 QtGui 0x00000001002cc61e QApplicationPrivate::sendMouseEvent(QWidget_, QMouseEvent_, QWidget_, QWidget_, QWidget*, QPointer&, bool) + 432
22 QtGui 0x000000010027b271 qt_mac_handleMouseEvent(NSEvent, QEvent::Type, Qt::MouseButton, QWidget*, bool) + 993
23 com.apple.AppKit 0x00007fff916dd6d6 -[NSWindow sendEvent:] + 7053
24 QtGui 0x0000000100272ab2 -[QCocoaWindow sendEvent:] + 114
25 com.apple.AppKit 0x00007fff916d9744 -[NSApplication sendEvent:] + 5761
26 QtGui 0x0000000100276342 -[QNSApplication sendEvent:] + 82
27 com.apple.AppKit 0x00007fff915ef2fa -[NSApplication run] + 636
28 QtGui 0x000000010027f570 QEventDispatcherMac::processEvents(QFlagsQEventLoop::ProcessEventsFlag) + 840
29 QtCore 0x0000000100f69818 QEventLoop::exec(QFlagsQEventLoop::ProcessEventsFlag) + 394
30 QtCore 0x0000000100f6cb43 QCoreApplication::exec() + 175
31 com.yourcompany.Communi 0x0000000100018ba1 main + 2081 (main.cpp:57)
32 com.yourcompany.Communi 0x0000000100003d44 start + 52
Looks like the Overlay is already deleted due to being parented to tabWidget
Make it possible to split the view horizontally and/or vertically in the similar way than for example Qt Creator does.
Format channels as links (alike nicks).
Moved from: communi/communi#28
Communi should support connecting to Quassel Core. Quassel Core maintains server connections with support for multiple client connections. Quassel uses a custom protocol instead of the IRC protocol as typical IRC bouncers/proxies. The Quassel protocol is not documented and thus needs to be reverse-engineered. A thin Qt-based libquasselproto that abstracts the protocol would be ideal. See โhttp://quassel-irc.org/ for more info.
The enablers (namely IrcProtocol) have been added to libcommuni. The rest is done on communi-desktop's side.
Teach Communi to deal with ZNC buffer playback (timestamp parsing and so on), buffextras, and some of the other nice bits.
[09:14:53] <***> Buffer Playback...
[09:14:53] <qt_gerrit> [10:08:43] [qtbase/dev]: QMacStyle: enable transient scrollbars for the desktop components updated to v3 by jpnurmi - https://codereview.qt-project.org/45857
...
[09:14:53] <***> Playback Complete.
If messages were not confirmed as delivered, send them when we reconnect.
The sender was $$* for the following notice:
[23:29:53] [tomaw] [Global Notice] Hi all. We're just completing some administrative tasks after services extended tea break. They'll return shortly. Sorry for the outage!
Something where all the configuration parameters can be dumped:
Indicate what kind of error happened... for example:
[ERROR] Remote host closed the connection
Consider the following message:
[00:00:00] <foobar> foobar[home]: hola
Ie. when there are users foobar and foobar[home] on the same channel, "foobar" gets highlighted instead of "foobar[home]".
For example the following messages were delivered to #znc:
[23:35:23] [ChanServ] [23:35:07] [#communi] Welcome to the Communi development lounge. Communi for MeeGo/Symbian users are kindly asked to submit a review in Nokia Store.
[23:35:23] [ChanServ] [23:35:07] [#maui-project] Welcome to the channel of the Maui project!
[23:35:23] [ChanServ] [23:35:07] [#qt] Here are the rules for #qt: (1) Don't just join, ask, and quit - stay around and answer questions yourself! (2) Be patient, people may not see your question right away.
[23:35:23] [ChanServ] [23:35:07] [#qt-labs] Welcome to the Qt developers public hideout. Qt Project Approvers will have Voice status, so they should be easy to pinpoint in the crowd. Please do not paste large blocks of code in the channel, but rather use a pastebin site.
/j -> /join
/cs -> /msg nickserv $*
/ns -> /msg nickserv $*
...
<w00t> send a specific type of CTCP PING to yourself, once you get the reply, you know that all messages sent since that have been sent and recieved (or errors recieved) by the server
<w00t> color the messages sent-but-not-acknowledged as grey or something
<w00t> I thought this up just now when I disconnected from freenode (yet again, Qt or openssl or something on here *has* to be broken)
<w00t> I had a bunch of pending sent messages to someone
<w00t> and it took like 5 minutes to notice the disconnect
<w00t> so I had to ask what the last thing he saw was ;)
It always seems to indicate "0" when there's an active alert.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.