53 Public method to load the identity data. |
53 Public method to load the identity data. |
54 |
54 |
55 @param settings reference to the settings object (QSettings) |
55 @param settings reference to the settings object (QSettings) |
56 """ |
56 """ |
57 self.__realName = settings.value("RealName", "") |
57 self.__realName = settings.value("RealName", "") |
58 self.__nickNames = Preferences.toList(settings.value("NickNames"), []) |
58 self.__nickNames = Preferences.toList(settings.value("NickNames", [])) |
59 self.__serviceName = settings.value("ServiceName", "") |
59 self.__serviceName = settings.value("ServiceName", "") |
60 self.__password = settings.value("Password", "") |
60 self.__password = settings.value("Password", "") |
61 |
61 |
62 def getName(self): |
62 def getName(self): |
63 """ |
63 """ |
182 """ |
182 """ |
183 Public method to save the server data. |
183 Public method to save the server data. |
184 |
184 |
185 @param settings reference to the settings object (QSettings) |
185 @param settings reference to the settings object (QSettings) |
186 """ |
186 """ |
187 # no need to save the server name because that is the group key |
187 settings.setValue("Name", self.__server) |
188 settings.setValue("Port", self.__port) |
188 settings.setValue("Port", self.__port) |
189 settings.setValue("SSL", self.__ssl) |
189 settings.setValue("SSL", self.__ssl) |
190 settings.setValue("Password", self.__password) |
190 settings.setValue("Password", self.__password) |
191 |
191 |
192 def load(self, settings): |
192 def load(self, settings): |
193 """ |
193 """ |
194 Public method to load the server data. |
194 Public method to load the server data. |
195 |
195 |
196 @param settings reference to the settings object (QSettings) |
196 @param settings reference to the settings object (QSettings) |
197 """ |
197 """ |
|
198 self.__server = settings.value("Name", "") |
198 self.__port = int(settings.value("Port", IrcServer.DefaultPort)) |
199 self.__port = int(settings.value("Port", IrcServer.DefaultPort)) |
199 self.__ssl = Preferences.toBool(settings.value("SSL", False)) |
200 self.__ssl = Preferences.toBool(settings.value("SSL", False)) |
200 self.__password = settings.value("Password", "") |
201 self.__password = settings.value("Password", "") |
201 |
202 |
202 def getName(self): |
203 def getName(self): |
287 Public method to load the network data. |
296 Public method to load the network data. |
288 |
297 |
289 @param settings reference to the settings object (QSettings) |
298 @param settings reference to the settings object (QSettings) |
290 """ |
299 """ |
291 self.__key = settings.value("Key", "") |
300 self.__key = settings.value("Key", "") |
292 self.__autoJoin = Preferences.toBool(settings.value("AutoJoin"), False) |
301 self.__autoJoin = Preferences.toBool(settings.value("AutoJoin", False)) |
293 |
302 |
294 def getName(self): |
303 def getName(self): |
295 """ |
304 """ |
296 Public method to get the channel name. |
305 Public method to get the channel name. |
297 |
306 |
346 """ |
355 """ |
347 super().__init__() |
356 super().__init__() |
348 |
357 |
349 self.__name = name |
358 self.__name = name |
350 self.__identity = "" |
359 self.__identity = "" |
351 self.__servers = {} |
360 self.__server = None |
352 self.__channels = {} |
361 self.__channels = {} |
|
362 self.__autoConnect = False |
353 |
363 |
354 def save(self, settings): |
364 def save(self, settings): |
355 """ |
365 """ |
356 Public method to save the network data. |
366 Public method to save the network data. |
357 |
367 |
358 @param settings reference to the settings object (QSettings) |
368 @param settings reference to the settings object (QSettings) |
359 """ |
369 """ |
360 # no need to save the network name because that is the group key |
370 # no need to save the network name because that is the group key |
361 settings.setValue("Identity", self.__identity) |
371 settings.setValue("Identity", self.__identity) |
362 |
372 settings.setValue("AutoConnect", self.__autoConnect) |
363 settings.beginGroup("Servers") |
373 |
364 for key in self.__servers: |
374 settings.beginGroup("Server") |
365 settings.beginGroup(key) |
375 self.__server.save(settings) |
366 self.__servers[key].save(settings) |
|
367 settings.endGroup() |
|
368 settings.endGroup() |
376 settings.endGroup() |
369 |
377 |
370 settings.beginGroup("Channels") |
378 settings.beginGroup("Channels") |
371 for key in self.__channels: |
379 for key in self.__channels: |
372 settings.beginGroup(key) |
380 settings.beginGroup(key) |
379 Public method to load the network data. |
387 Public method to load the network data. |
380 |
388 |
381 @param settings reference to the settings object (QSettings) |
389 @param settings reference to the settings object (QSettings) |
382 """ |
390 """ |
383 self.__identity = settings.value("Identity", "") |
391 self.__identity = settings.value("Identity", "") |
384 |
392 self.__autoConnect = Preferences.toBool(settings.value("AutoConnect", False)) |
385 settings.beginGroup("Servers") |
393 |
386 for key in settings.childKeys(): |
394 settings.beginGroup("Server") |
387 self.__servers[key] = IrcServer(key) |
395 self.__server = IrcServer("") |
388 settings.beginGroup(key) |
396 self.__server.load(settings) |
389 self.__servers[key].load(settings) |
|
390 settings.endGroup() |
|
391 settings.endGroup() |
397 settings.endGroup() |
392 |
398 |
393 settings.beginGroup("Channels") |
399 settings.beginGroup("Channels") |
394 for key in self.__channels: |
400 for key in settings.childGroups(): |
395 self.__channels[key] = IrcChannel(key) |
401 self.__channels[key] = IrcChannel(key) |
396 settings.beginGroup(key) |
402 settings.beginGroup(key) |
397 self.__channels[key].load(settings) |
403 self.__channels[key].load(settings) |
398 settings.endGroup() |
404 settings.endGroup() |
399 settings.endGroup() |
405 settings.endGroup() |
420 |
426 |
421 @return identity name (string) |
427 @return identity name (string) |
422 """ |
428 """ |
423 return self.__identity |
429 return self.__identity |
424 |
430 |
425 def setServers(self, servers): |
431 def getServerName(self): |
426 """ |
432 """ |
427 Public method to set the list of servers. |
433 Public method to get the server name. |
428 |
434 |
429 @param servers list of servers for the network (list of IrcServer) |
435 @return server name (string) |
430 """ |
436 """ |
431 self.__servers = {} |
437 if self.__server: |
432 for server in servers: |
438 return self.__server.getName() |
433 self.__servers[server.getName()] = server |
439 else: |
434 |
440 return "" |
435 def getServers(self): |
441 |
436 """ |
442 def getServer(self): |
437 Public method to get the servers. |
443 """ |
438 |
444 Public method to get the server object. |
439 @return list of servers for the network (list of IrcServer) |
445 |
440 """ |
|
441 return list(self.__servers.values()) |
|
442 |
|
443 def getServerNames(self): |
|
444 """ |
|
445 Public method to get a list of all known server names. |
|
446 |
|
447 @return list of server names (list of string) |
|
448 """ |
|
449 return list(sorted(self.__servers.keys())) |
|
450 |
|
451 def getServer(self, name): |
|
452 """ |
|
453 Public method to get a server object. |
|
454 |
|
455 @param name name of the server to get (string) |
|
456 @return reference to the server (IrcServer) |
446 @return reference to the server (IrcServer) |
457 """ |
447 """ |
458 if name in self.__servers: |
448 return self.__server |
459 return self.__servers[name] |
|
460 else: |
|
461 return None |
|
462 |
449 |
463 def setServer(self, server): |
450 def setServer(self, server): |
464 """ |
451 """ |
465 Public method to set a server. |
452 Public method to set the server. |
466 |
453 |
467 @param server server object to set (IrcServer) |
454 @param server server object to set (IrcServer) |
468 """ |
455 """ |
469 serverName = server.getName() |
456 self.__server = server |
470 if serverName in self.__servers: |
|
471 self.__servers[serverName] = server |
|
472 |
|
473 def addServer(self, server): |
|
474 """ |
|
475 Public method to add a server. |
|
476 |
|
477 @param server server object to add (IrcServer) |
|
478 """ |
|
479 serverName = server.getName() |
|
480 if serverName not in self.__servers: |
|
481 self.__servers[serverName] = server |
|
482 |
457 |
483 def setChannels(self, channels): |
458 def setChannels(self, channels): |
484 """ |
459 """ |
485 Public method to set the list of channels. |
460 Public method to set the list of channels. |
486 |
461 |
545 @param channelName name of the channel to be deleted (string) |
520 @param channelName name of the channel to be deleted (string) |
546 """ |
521 """ |
547 if channelName in self.__channels: |
522 if channelName in self.__channels: |
548 del self.__channels[channelName] |
523 del self.__channels[channelName] |
549 |
524 |
|
525 def setAutoConnect(self, enable): |
|
526 """ |
|
527 Public method to set the auto connect flag. |
|
528 |
|
529 @param enable flag indicate to connect to the network at start-up. |
|
530 """ |
|
531 self.__autoConnect = enable |
|
532 |
|
533 def autoConnect(self): |
|
534 """ |
|
535 Public method to check, if the network should be connected to at start-up. |
|
536 |
|
537 @return flag indicating an auto connect (boolean) |
|
538 """ |
|
539 return self.__autoConnect |
|
540 |
550 @classmethod |
541 @classmethod |
551 def createDefaultNetwork(cls): |
542 def createDefaultNetwork(cls): |
552 """ |
543 """ |
553 Class method to create the default network. |
544 Class method to create the default network. |
554 |
545 |
561 |
552 |
562 # server |
553 # server |
563 serverName = "chat.freenode.net" |
554 serverName = "chat.freenode.net" |
564 server = IrcServer(serverName) |
555 server = IrcServer(serverName) |
565 server.setPort(8001) |
556 server.setPort(8001) |
566 network.addServer(server) |
557 network.setServer(server) |
567 |
558 |
568 # channel |
559 # channel |
569 channel = IrcChannel("#eric-ide") |
560 channel = IrcChannel("#eric-ide") |
570 channel.setAutoJoin(False) |
561 channel.setAutoJoin(False) |
571 network.addChannel(channel) |
562 network.addChannel(channel) |
|
563 |
|
564 # auto connect |
|
565 network.setAutoConnect(False) |
572 |
566 |
573 return network |
567 return network |
574 |
568 |
575 |
569 |
576 class IrcNetworkManager(QObject): |
570 class IrcNetworkManager(QObject): |
645 # load IRC data |
639 # load IRC data |
646 self.__settings.beginGroup("IRC") |
640 self.__settings.beginGroup("IRC") |
647 |
641 |
648 # identities |
642 # identities |
649 self.__settings.beginGroup("Identities") |
643 self.__settings.beginGroup("Identities") |
650 for key in self.__settings.childKeys(): |
644 for key in self.__settings.childGroups(): |
651 self.__identities[key] = IrcIdentity(key) |
645 self.__identities[key] = IrcIdentity(key) |
652 self.__settings.beginGroup(key) |
646 self.__settings.beginGroup(key) |
653 self.__identities[key].load(self.__settings) |
647 self.__identities[key].load(self.__settings) |
654 self.__settings.endGroup() |
648 self.__settings.endGroup() |
655 self.__settings.endGroup() |
649 self.__settings.endGroup() |
656 |
650 |
657 # networks |
651 # networks |
658 self.__settings.beginGroup("Networks") |
652 self.__settings.beginGroup("Networks") |
659 for key in self.__settings.childKeys(): |
653 for key in self.__settings.childGroups(): |
660 self.__networks[key] = IrcNetwork(key) |
654 self.__networks[key] = IrcNetwork(key) |
661 self.__settings.beginGroup(key) |
655 self.__settings.beginGroup(key) |
662 self.__networks[key].load(self.__settings) |
656 self.__networks[key].load(self.__settings) |
663 self.__settings.endGroup() |
657 self.__settings.endGroup() |
664 self.__settings.endGroup() |
658 self.__settings.endGroup() |
665 |
659 |
666 self.__settings.endGroup() |
660 self.__settings.endGroup() |
667 |
661 |
668 if not self.__identities or \ |
662 if not self.__identities or \ |
669 not self.__servers or \ |
|
670 not self.__networks: |
663 not self.__networks: |
671 # data structures got corrupted; load defaults |
664 # data structures got corrupted; load defaults |
672 self.__loadDefaults() |
665 self.__loadDefaults() |
673 |
666 |
674 if IrcIdentity.DefaultIdentityName not in self.__identities: |
667 if IrcIdentity.DefaultIdentityName not in self.__identities: |