[Konversation-devel] [Bug 99054] option to start konvi from cli,
specifying server, channel and nick
ismail cartman donmez
ismail at kde.org.tr
Sat May 14 14:17:42 CEST 2005
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
http://bugs.kde.org/show_bug.cgi?id=99054
ismail kde org tr changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED
------- Additional Comments From ismail kde org tr 2005-05-14 14:17 -------
SVN commit 413713 by cartman:
Provide complete command line argument system
FEATURE:99054
M +24 -4 trunk/extragear/network/konversation/src/konversationapplication.cpp
M +17 -0 trunk/extragear/network/konversation/src/konversationapplication.h
M +18 -1 trunk/extragear/network/konversation/src/main.cpp
--- trunk/extragear/network/konversation/src/konversationapplication.cpp #413712:413713
@ -51,10 +51,12 @
quickConnectDialog = 0;
colorOffSet = 0;
m_demoteInProgress = false;
+ m_connectDelayed=false;
demoteTimer = new QTimer(this);
connect(demoteTimer,SIGNAL(timeout()),this,SLOT(autoDemoteAllNicks()) );
demoteTimer->start(5*60*1000,false);
+
}
KonversationApplication::~KonversationApplication()
@ -67,6 +69,19 @
delete identDCOP;
}
+void KonversationApplication::delayedConnectToServer(const QString& hostname, const QString& port, const QString& channel,
+ const QString& nick, const QString& password,
+ const bool& useSSL)
+{
+ m_hostName=hostname;
+ m_port=port;
+ m_channel=channel;
+ m_nick=nick;
+ m_password=password;
+ m_useSSL=useSSL;
+ m_connectDelayed=true;
+}
+
int KonversationApplication::newInstance()
{
if(!mainWindow) {
@ -135,11 +150,16 @
// handle autoconnect on startup
Konversation::ServerGroupList serverGroups = preferences.serverGroupList();
- for(Konversation::ServerGroupList::iterator it = serverGroups.begin(); it != serverGroups.end(); ++it) {
- if((*it)->autoConnectEnabled()) {
- connectToServer((*it)->id());
+ if(!m_connectDelayed)
+ {
+ for(Konversation::ServerGroupList::iterator it = serverGroups.begin(); it != serverGroups.end(); ++it) {
+ if((*it)->autoConnectEnabled()) {
+ connectToServer((*it)->id());
+ }
+ }
}
- }
+ else
+ quickConnectToServer(m_hostName, m_port, m_channel, m_nick, m_password, m_useSSL);
// prepare dcop interface
dcopObject = new KonvDCOP;
--- trunk/extragear/network/konversation/src/konversationapplication.h #413712:413713
@ -128,6 +128,14 @
int newInstance();
+ void delayedConnectToServer(const QString& hostName,
+ const QString& port = "6667",
+ const QString& channel="",
+ const QString& nick = KonversationApplication::preferences.getNickname(0),
+ const QString& password="",
+ const bool& useSSL=FALSE
+ );
+
signals:
void catchUrl(const QString& who,const QString& url);
void prefsChanged();
@ -193,6 +201,15 @
bool m_demoteInProgress;
QTimer* demoteTimer;
QMap<QString,uint> karmaMap;
+
+ // For command line arguments
+ QString m_hostName;
+ QString m_port;
+ QString m_channel;
+ QString m_nick;
+ QString m_password;
+ bool m_useSSL;
+ bool m_connectDelayed;
};
#endif
--- trunk/extragear/network/konversation/src/main.cpp #413712:413713
@ -34,6 +34,17 @
static const char* shortDescription=I18N_NOOP("A user friendly IRC client");
+static const KCmdLineOptions options[] =
+ {
+ { "server <server>", I18N_NOOP("Server to connect"), 0 },
+ { "port <port>", I18N_NOOP("Port to use, default is 6667"), "6667"},
+ { "channel <channel>", I18N_NOOP("Channel to join after connection"), ""},
+ { "nick <nickname>", I18N_NOOP("Nickname to use"),""},
+ { "password <password>", I18N_NOOP("Password for connection"),""},
+ { "ssl", I18N_NOOP("Use SSL for connection"),"false"},
+ KCmdLineLastOption
+ };
+
int main(int argc, char* argv[])
{
KAboutData aboutData("konversation",
@ -73,14 +84,20 @
aboutData.addCredit("Ruud Nabben",I18N_NOOP("Option to enable IRC color filtering"),"r.nabben gawab com");
KCmdLineArgs::init(argc,argv,&aboutData);
- KonversationApplication::addCmdLineOptions();
+ KCmdLineArgs::addCmdLineOptions(options);
KApplication::addCmdLineOptions();
if(!KUniqueApplication::start()) {
return 0;
}
+ KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
KonversationApplication app;
+ if(args->isSet("server"))
+ app.delayedConnectToServer(args->getOption("server"), args->getOption("port"),
+ args->getOption("channel"), args->getOption("nick"),
+ args->getOption("password"), args->isSet("ssl"));
+
return app.exec();
}
More information about the Konversation-devel
mailing list