Code Monkey home page Code Monkey logo

communi-desktop's Introduction

communi-desktop's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

communi-desktop's Issues

Very rare network-in-limbo problem

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?

Broken nick highlight

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 :(

Activity counter in windows should not reset while the window switch dialog is open

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?

Window closing blocked

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.

Sent messages stay gray even if the server acked

[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..

Shortcuts cheat sheet

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.

Tab completion for /topic

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.

Sound notifications

Communi should have (configurable) sound notifications together with the system tray alert.

Links containing periods are broken

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.

Provide a way to use a slash at the start of a message

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

Key binding/command to quickly hop to a window

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.

UserModel goes sometimes out of sync

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.

Alter channel topics graphically

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?

Implement themes

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.

Don't constantly repeat duplicate away messages

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)

Missing reconnect button

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.

Overlay-related crash

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

Split views

Make it possible to split the view horizontally and/or vertically in the similar way than for example Qt Creator does.

Quassel support

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.

ZNC playback

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.

Wrong global notice sender

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!

Advanced settings page

Something where all the configuration parameters can be dumped:

  • auto-reconnect delay
  • interval to ignore consequent away-replies
  • ...

Shortest matching nick highlighted

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]".

ZNC playback notices delivered to wrong view

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.

Command aliases

/j -> /join
/cs -> /msg nickserv $*
/ns -> /msg nickserv $*
...

Message send acknowledgements

<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 ;)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.