Giter VIP home page Giter VIP logo

communi's Introduction

communi's People

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar

communi's Issues

IrcSessionPrivate::_q_error() is too verbose

IrcSessionPrivate::_q_error() has an unconditional qWarning() call showing the socket error, this produces noise after the client sends a QUIT command and the server closes the remote connection.
The call should either be guarded, similar to the qDebug() calls, check for specific errors (I don't think this is the right approach), or just removed, as the client code can just connect to the socketError() signal.

Hardcoded channel types

Communi has hardcoded channel types: '#' and '&'. This is incorrect as different IRC networks support different channel types. The supported channel types are sent via RPL_ISUPPORT message's CHANTYPES attribute.

Implement "combined" (numeric) messages

For example, ability to receive RPL_MOTDSTART...RPL_MOTD...RPL_ENDOFMOTD as a single message.

class IrcMotdMessage : public IrcMessage
{
public:
    QString motd(char delimiter = '\n');
}

Open questions:

  • What should IrcMessage::command contain? MOTD?
  • What should IrcMessage::parameters contain? The lines?
  • IrcMessage::timeStamp from RPL_MOTDSTART or RPL_ENDOFMOTD?

Examples: 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.

invalid desktop file

Hi

while installing communi my gentoo system complains

  • /usr/share/applications/communi.desktop: error: value "Internet;Network" for string list key "Categories" in group "Desktop Entry" does not have a semicolon (';') as trailing character
  • /usr/share/applications/communi.desktop: warning: key "Encoding" in group "Desktop Entry" is deprecated

Communi reconnects to the psyBNC server every 2 minutes

Prerequisites:

(Harmattan PR1.2 installed - no idea if this is relevant)
communi 1.1.0-4 installed
psyBNC configured and connected to an IRC server
Internet connection active

Steps to reproduce:

  1. Start Communi
  2. Press + to define an IRC server which is a psyBNC bouncer
  3. Fill in server details
  4. Press OK to connect to the psyBNC bouncer
  5. Tap on an IRC channel or the name of the server
  6. Use the application for 5 minutes (just observing is enough)

Expected behavior:

Communi stays connected to the psyBNC server and does not reconnect every 2 minutes

Actual behavior:

Communi reconnects to the psyBNC server every 2 minutes

Option to disable auto-connect on application start

I have too many channels added to Communi and i don't want to connect to all of them when application starts. Could you please make it so Communi won't connect to IRC servers from witch i specifically disconnected during previous program run?

Also, It would be good if "Part" button won't delete channels from Communi, so i can have an option to delete them by myself if i want. And i assume that "auto-connect on application start" feature also shouldn't work on parted channels.

The virtual keyboard does not appear on tapping the speech bubble on Harmattan PR1.2

Prerequisites:

Harmattan PR1.2 installed
communi 1.1.0-4 installed
Internet connection active

Steps to reproduce:

  1. Start Communi
  2. Press + to define an IRC server
  3. Fill in server details
  4. Press OK to connect to the server
  5. Tap on an IRC channel
  6. Tap on the "send message" symbol on the bottom right corner (speech bubble)
  7. Swipe the window away horizontally from above the virtual keyboard
  8. Swipe to the Recents (application switcher) view in home screen
  9. Tap on the Communi window thumbnail
  10. Tap on the "send message" symbol on the bottom right corner (speech bubble)

Expected behavior:

The virtual keyboard automatically reappears after step 9. If it would not, it should reappear after step 10.

Actual behavior:

With Harmattan PR1.2, the virtual keyboard does not automatically reappear after step 9. Nothing happens after step 10 - the button does not react at all.

Quassel support

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.

Missing operators

Missing at least QDebug and comparison (perhaps also QDataStream?) operators from the following classes: IrcPalette, IrcTextFormat & IrcSender

Desktop: embedding instructions

Write a wiki page with instructions for embedding parts of the desktop example to an application that wants to have IRC support.

Communi prints the WHO list output in the current window if some other client connected to the same psyBNC instance requests it

  1. Set up psyBNC and connect it to an IRC server (IRCnet in my case)
  2. Connect to the psyBNC instance using Pidgin
  3. Join a few channels
  4. Connect to the psyBNC instance using Communi
  5. Open a channel view in Communi
  6. Wait for ~10 minutes

Expected outcome:
The channel view won't get flooded by the WHO output of all channels every 5 minutes

Actual outcome:
The channel view gets flooded by the WHO output of all channels every 5 minutes

It seems that pidgin requests WHO for all channels every 5 minutes. Communi shouldn't get confused by this and print the WHO output to the current view if it hasn't requested it but either ignore it or refresh the participant list of each channel with this data.

MeeGo: indicate connection error in the channel/query view

Currently connection statuses are only indicated in MainPage. Sometimes a connection might have been lost in the background, but ChatPage does not indicate that. It is very inconvenient and annoying to have to go back to MainPage in order to see the connection status => indicate at least connection errors in ChatPage.

IrcUtil needs better colors

First of all, the default colors should be made much smoother. Desaturate or something... the default colors are pretty 90's and especially the yellow color is awful on top of the default white background. Secondly, it should be made possible to customize the colors if desired.

Communi 1.1.8 Debian control file does not define required fields

http://harmattan-dev.nokia.com/docs/library/html/guide/html/Developer_Library_Reference_documentation_Harmattan_Appendix_to_the_Debian_Policy_Manual.html

lists the keys that need to be defined in the Debian control file. In the case of Communi the following are missing:

XB-Maemo-Flags: visible
XB-MeeGo-Desktop-Entry-Filename: communi_harmattan
XB-MeeGo-Desktop-Entry:
[Desktop Entry]
Type=Application
Name=Communi
Icon=/usr/share/icons/hicolor/80x80/apps/communi80.png

Without these the installation progress of the package will not be shown correctly during installation and upgrades. Please add them to the control file.

User lists in messageview

Hello,

I'm trying to implement messageview to show a userlist in the right side (like pidgin does).

  1. I added a listview in messageview.ui (listUserList) and set its visible state to false when messageview loads.
  2. Then to make it visible on chanel only, i modified the addUser method
void MessageView::addUser(const QString& user)
{
    d.listUserList->setVisible(true);


    // TODO: this is far from optimal
    QStringList users = d.userModel->stringList();

    users.append(user);

    qSort(users.begin(), users.end(), nameLessThan );
    d.listUserList->setModel(d.userModel);

    d.userModel->setStringList(users);

}

Like this I get the list of users in the listUserList QListView but it doesn't respect the order because the appended user doesn't have "@" or "+" etc..., it is just sorted alphabetically.

Can you help me how to get the user list in the right order?

Later on I should be able to connect the userlist item (doubleClicked) to open a new query tab.

Thank you

MeeGo: automatic scrolling is too intrusive

It is hard to scroll the backlog, because whenever a new message arrives, it jumps to the end. Currently it only checks if Flickable.moving is true and then won't jump. However, this is not good enough when reading a long backlog. Perhaps it should check if the current scrolling position is at the end (allow a small delta, though) and only scroll in that case => basically the same thing than QTextEdit::append() does.

IRCv3 extensions support

http://ircv3.atheme.org/

v3.1 base extensions

  • capability negotiation
  • multi-prefix
  • sasl

v3.1 optional extensions

  • account-notify
  • away-notify Extension
  • extended-join Extension
  • tls Extension

v3.2 base extensions

  • message tags

v3.2 optional extensions

  • server-time
  • metadata

IrcSessionPrivate::processLine() should not respond to CTCP requests

Currently IrcSessionPrivate::processLine() automatically responds to CTCP PING, TIME, and VERSION requests, then emits the IrcSession::messageReceived() signal. If the client code can not override any of these replies, it can't disable responding to CTCPs, and it can't change any of the information automatically sent in response to these requests.
I think the best solution to this would be a property that enables/disables these automatic responses, and possibly another property to store the (possibly custom) value for the VERSION reply.

Docs: cleanup brief descriptions

Just like in Qt docs, remove the useless "The IrcXxx class..." prefixes and rather start with "Provides..." or so, to keep the brief descriptions shorter.

Implement message filters

class IrcMessageFilter
{
    virtual ~IrcMessageFilter() { }
    virtual bool filterMessage(IrcMessage* message) = 0;
};
  • IrcSession::installMessageFilter(IrcMessageFilter*)
  • IrcSession::removeMessageFilter(IrcMessageFilter*)

Implement IrcChannelModel::SortMode

Q_PROPERTY(SortMode sortMode READ sortMode WRITE setSortMode NOTIFY sortModeChanged)
Q_ENUMS(DataRole SortMode)
enum SortMode { Unsorted, Activity, Alphabetical };

Static codec plugins

Add a configure option for building the codec plugins as static, to make deployment easier.

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.