From 690dd7a33ddc90678367d73adf313533536e10f2 Mon Sep 17 00:00:00 2001 From: Alexey Sokolov Date: Fri, 29 Apr 2016 23:57:30 +0100 Subject: Apply clang-format --- src/kvilib/config/KviBuildInfo.cpp | 36 +- src/kvilib/config/kvi_debug.h | 194 +- src/kvilib/config/kvi_defaults.h | 4 +- src/kvilib/config/kvi_fileextensions.h | 28 +- src/kvilib/config/kvi_settings.h | 173 +- src/kvilib/config/kvi_shortcuts.h | 78 +- src/kvilib/config/kvi_sourcesdate.h | 8 +- src/kvilib/core/KviCString.cpp | 2002 +- src/kvilib/core/KviCString.h | 386 +- src/kvilib/core/KviError.cpp | 254 +- src/kvilib/core/KviError.h | 243 +- src/kvilib/core/KviHeapObject.cpp | 61 +- src/kvilib/core/KviHeapObject.h | 44 +- src/kvilib/core/KviMemory.cpp | 174 +- src/kvilib/core/KviMemory.h | 82 +- src/kvilib/core/KviPointerHashTable.h | 319 +- src/kvilib/core/KviPointerList.h | 200 +- src/kvilib/core/KviQString.cpp | 236 +- src/kvilib/core/KviQString.h | 10 +- src/kvilib/core/KviShortcut.cpp | 3 +- src/kvilib/core/KviShortcut.h | 3 +- src/kvilib/core/kvi_inttypes.h | 127 +- src/kvilib/ext/KviAnimatedPixmap.cpp | 35 +- src/kvilib/ext/KviAnimatedPixmap.h | 23 +- src/kvilib/ext/KviAnimatedPixmapCache.cpp | 88 +- src/kvilib/ext/KviAnimatedPixmapCache.h | 80 +- src/kvilib/ext/KviCommandFormatter.cpp | 43 +- src/kvilib/ext/KviCommandFormatter.h | 2 +- src/kvilib/ext/KviConfigurationFile.cpp | 451 +- src/kvilib/ext/KviConfigurationFile.h | 135 +- src/kvilib/ext/KviCryptEngine.cpp | 49 +- src/kvilib/ext/KviCryptEngine.h | 157 +- src/kvilib/ext/KviCryptEngineDescription.h | 29 +- src/kvilib/ext/KviCryptEngineManager.cpp | 94 +- src/kvilib/ext/KviCryptEngineManager.h | 42 +- src/kvilib/ext/KviDataBuffer.cpp | 48 +- src/kvilib/ext/KviDataBuffer.h | 18 +- src/kvilib/ext/KviDbusAdaptor.cpp | 3 +- src/kvilib/ext/KviDbusAdaptor.h | 20 +- src/kvilib/ext/KviDebugContext.cpp | 15 +- src/kvilib/ext/KviDebugContext.h | 5 +- src/kvilib/ext/KviMediaManager.cpp | 237 +- src/kvilib/ext/KviMediaManager.h | 11 +- src/kvilib/ext/KviMediaType.h | 2 +- src/kvilib/ext/KviMessageTypeSettings.cpp | 12 +- src/kvilib/ext/KviMessageTypeSettings.h | 44 +- src/kvilib/ext/KviMiscUtils.cpp | 2 +- src/kvilib/ext/KviNickColors.cpp | 69 +- src/kvilib/ext/KviNickColors.h | 4 +- src/kvilib/ext/KviOggIrcText.h | 71 +- src/kvilib/ext/KviOggTheoraDecoder.cpp | 240 +- src/kvilib/ext/KviOggTheoraDecoder.h | 72 +- src/kvilib/ext/KviOggTheoraEncoder.cpp | 259 +- src/kvilib/ext/KviOggTheoraEncoder.h | 49 +- src/kvilib/ext/KviOggTheoraGeometry.h | 12 +- src/kvilib/ext/KviParameterList.cpp | 90 +- src/kvilib/ext/KviParameterList.h | 39 +- src/kvilib/ext/KviPixmap.cpp | 32 +- src/kvilib/ext/KviPixmap.h | 17 +- src/kvilib/ext/KviPixmapUtils.cpp | 56 +- src/kvilib/ext/KviPixmapUtils.h | 4 +- src/kvilib/ext/KviProxy.cpp | 46 +- src/kvilib/ext/KviProxy.h | 57 +- src/kvilib/ext/KviProxyDataBase.cpp | 126 +- src/kvilib/ext/KviProxyDataBase.h | 18 +- src/kvilib/ext/KviRegisteredChannel.cpp | 2 +- src/kvilib/ext/KviRegisteredChannel.h | 21 +- src/kvilib/ext/KviRegisteredChannelDataBase.cpp | 66 +- src/kvilib/ext/KviRegisteredChannelDataBase.h | 8 +- src/kvilib/ext/KviRegisteredUser.cpp | 105 +- src/kvilib/ext/KviRegisteredUser.h | 54 +- src/kvilib/ext/KviRegisteredUserDataBase.cpp | 212 +- src/kvilib/ext/KviRegisteredUserDataBase.h | 51 +- src/kvilib/ext/KviRegisteredUserGroup.h | 5 +- src/kvilib/ext/KviRegisteredUserMask.h | 14 +- src/kvilib/ext/KviRuntimeInfo.cpp | 778 +- src/kvilib/ext/KviSharedFile.h | 28 +- src/kvilib/ext/KviSharedFilesManager.cpp | 135 +- src/kvilib/ext/KviSharedFilesManager.h | 20 +- src/kvilib/ext/KviStringConversion.cpp | 62 +- src/kvilib/ext/KviStringConversion.h | 51 +- src/kvilib/ext/KviXlib.h | 106 +- src/kvilib/file/KviFile.cpp | 92 +- src/kvilib/file/KviFile.h | 17 +- src/kvilib/file/KviFileUtils.cpp | 121 +- src/kvilib/file/KviFileUtils.h | 20 +- src/kvilib/file/KviPackageIOEngine.cpp | 25 +- src/kvilib/file/KviPackageIOEngine.h | 22 +- src/kvilib/file/KviPackageReader.cpp | 121 +- src/kvilib/file/KviPackageReader.h | 6 +- src/kvilib/file/KviPackageWriter.cpp | 140 +- src/kvilib/file/KviPackageWriter.h | 6 - src/kvilib/irc/KviAvatar.cpp | 30 +- src/kvilib/irc/KviAvatar.h | 35 +- src/kvilib/irc/KviAvatarCache.cpp | 71 +- src/kvilib/irc/KviAvatarCache.h | 9 +- src/kvilib/irc/KviControlCodes.cpp | 72 +- src/kvilib/irc/KviControlCodes.h | 69 +- src/kvilib/irc/KviIdentityProfile.cpp | 14 +- src/kvilib/irc/KviIdentityProfile.h | 14 +- src/kvilib/irc/KviIdentityProfileSet.cpp | 60 +- src/kvilib/irc/KviIdentityProfileSet.h | 20 +- src/kvilib/irc/KviIrcMask.cpp | 156 +- src/kvilib/irc/KviIrcMask.h | 16 +- src/kvilib/irc/KviIrcNetwork.cpp | 68 +- src/kvilib/irc/KviIrcNetwork.h | 70 +- src/kvilib/irc/KviIrcServer.cpp | 179 +- src/kvilib/irc/KviIrcServer.h | 117 +- src/kvilib/irc/KviIrcServerDataBase.cpp | 166 +- src/kvilib/irc/KviIrcServerDataBase.h | 40 +- src/kvilib/irc/KviIrcServerReconnectInfo.cpp | 10 +- src/kvilib/irc/KviIrcServerReconnectInfo.h | 13 +- src/kvilib/irc/KviIrcUserDataBase.cpp | 50 +- src/kvilib/irc/KviIrcUserDataBase.h | 8 +- src/kvilib/irc/KviIrcUserEntry.cpp | 38 +- src/kvilib/irc/KviIrcUserEntry.h | 125 +- src/kvilib/irc/KviNickServRule.cpp | 28 +- src/kvilib/irc/KviNickServRule.h | 63 +- src/kvilib/irc/KviNickServRuleSet.cpp | 76 +- src/kvilib/irc/KviNickServRuleSet.h | 28 +- src/kvilib/irc/KviUserIdentity.cpp | 41 +- src/kvilib/irc/KviUserIdentity.h | 41 +- src/kvilib/irc/KviUserIdentityManager.cpp | 28 +- src/kvilib/irc/KviUserIdentityManager.h | 12 +- src/kvilib/locale/KviLocale.cpp | 225 +- src/kvilib/locale/KviLocale.h | 46 +- src/kvilib/locale/KviMessageCatalogue.cpp | 65 +- src/kvilib/locale/KviMessageCatalogue.h | 7 +- src/kvilib/locale/KviTranslationEntry.cpp | 4 +- src/kvilib/locale/KviTranslationEntry.h | 8 +- src/kvilib/locale/KviTranslator.cpp | 2 +- src/kvilib/locale/KviTranslator.h | 3 +- src/kvilib/net/KviDnsResolver.cpp | 242 +- src/kvilib/net/KviDnsResolver.h | 65 +- src/kvilib/net/KviDnsResolverNew.cpp | 28 +- src/kvilib/net/KviDnsResolverNew.h | 10 +- src/kvilib/net/KviHttpRequest.cpp | 280 +- src/kvilib/net/KviHttpRequest.h | 121 +- src/kvilib/net/KviNetUtils.cpp | 619 +- src/kvilib/net/KviNetUtils.h | 73 +- src/kvilib/net/KviNetworkAccessManager.h | 5 +- src/kvilib/net/KviSASL.cpp | 13 +- src/kvilib/net/KviSSL.cpp | 609 +- src/kvilib/net/KviSSL.h | 144 +- src/kvilib/net/KviUrl.cpp | 15 +- src/kvilib/net/KviUrl.h | 27 +- src/kvilib/net/kvi_socket.cpp | 1 - src/kvilib/net/kvi_socket.h | 135 +- src/kvilib/net/kvi_sockettype.h | 12 +- src/kvilib/system/KviByteOrder.h | 53 +- src/kvilib/system/KviEnvironment.cpp | 60 +- src/kvilib/system/KviEnvironment.h | 9 +- src/kvilib/system/KviThread.cpp | 278 +- src/kvilib/system/KviThread.h | 291 +- src/kvilib/system/KviTimeUtils.cpp | 85 +- src/kvilib/system/KviTimeUtils.h | 36 +- src/kvilib/system/kvi_stdarg.h | 7 +- src/kvilib/tal/KviTalApplication.cpp | 22 +- src/kvilib/tal/KviTalApplication.h | 10 +- src/kvilib/tal/KviTalFileDialog.cpp | 35 +- src/kvilib/tal/KviTalFileDialog.h | 34 +- src/kvilib/tal/KviTalGroupBox.cpp | 24 +- src/kvilib/tal/KviTalGroupBox.h | 27 +- src/kvilib/tal/KviTalHBox.cpp | 14 +- src/kvilib/tal/KviTalHBox.h | 2 + .../tal/KviTalIconAndRichTextItemDelegate.cpp | 42 +- src/kvilib/tal/KviTalIconAndRichTextItemDelegate.h | 17 +- src/kvilib/tal/KviTalListWidget.cpp | 90 +- src/kvilib/tal/KviTalListWidget.h | 55 +- src/kvilib/tal/KviTalMainWindow.cpp | 25 +- src/kvilib/tal/KviTalMainWindow.h | 1 - src/kvilib/tal/KviTalMenuBar.cpp | 25 +- src/kvilib/tal/KviTalMenuBar.h | 1 - src/kvilib/tal/KviTalTabDialog.cpp | 24 +- src/kvilib/tal/KviTalTabDialog.h | 8 +- src/kvilib/tal/KviTalTableWidget.cpp | 6 +- src/kvilib/tal/KviTalTableWidget.h | 18 +- src/kvilib/tal/KviTalToolTip.cpp | 27 +- src/kvilib/tal/KviTalToolTip.h | 15 +- src/kvilib/tal/KviTalVBox.cpp | 10 +- src/kvilib/tal/KviTalVBox.h | 3 + src/kvilib/tal/KviTalWizard.cpp | 206 +- src/kvilib/tal/KviTalWizard.h | 24 +- src/kvirc/kernel/KviAction.cpp | 192 +- src/kvirc/kernel/KviAction.h | 102 +- src/kvirc/kernel/KviActionManager.cpp | 113 +- src/kvirc/kernel/KviActionManager.h | 62 +- src/kvirc/kernel/KviApplication.cpp | 669 +- src/kvirc/kernel/KviApplication.h | 220 +- src/kvirc/kernel/KviApplication_filesystem.cpp | 480 +- src/kvirc/kernel/KviApplication_setup.cpp | 459 +- src/kvirc/kernel/KviAsynchronousConnectionData.cpp | 4 +- src/kvirc/kernel/KviAsynchronousConnectionData.h | 30 +- src/kvirc/kernel/KviCaster.h | 22 +- src/kvirc/kernel/KviCoreActions.cpp | 1224 +- src/kvirc/kernel/KviCoreActions.h | 46 +- src/kvirc/kernel/KviCustomToolBarDescriptor.cpp | 86 +- src/kvirc/kernel/KviCustomToolBarDescriptor.h | 40 +- src/kvirc/kernel/KviCustomToolBarManager.cpp | 83 +- src/kvirc/kernel/KviCustomToolBarManager.h | 28 +- src/kvirc/kernel/KviDefaultScript.cpp | 215 +- src/kvirc/kernel/KviDefaultScript.h | 37 +- src/kvirc/kernel/KviFileTransfer.cpp | 30 +- src/kvirc/kernel/KviFileTransfer.h | 31 +- src/kvirc/kernel/KviHtmlGenerator.cpp | 84 +- src/kvirc/kernel/KviHtmlGenerator.h | 3 +- src/kvirc/kernel/KviIconManager.cpp | 2188 +- src/kvirc/kernel/KviIconManager.h | 720 +- src/kvirc/kernel/KviInternalCommand.cpp | 47 +- src/kvirc/kernel/KviIpcSentinel.cpp | 501 +- src/kvirc/kernel/KviIpcSentinel.h | 59 +- src/kvirc/kernel/KviIrcConnection.cpp | 474 +- src/kvirc/kernel/KviIrcConnection.h | 122 +- .../kernel/KviIrcConnectionAntiCtcpFloodData.cpp | 2 - .../kernel/KviIrcConnectionAntiCtcpFloodData.h | 16 +- src/kvirc/kernel/KviIrcConnectionAsyncData.h | 16 +- .../kernel/KviIrcConnectionAsyncWhoisData.cpp | 8 +- src/kvirc/kernel/KviIrcConnectionAsyncWhoisData.h | 5 +- .../KviIrcConnectionNetsplitDetectorData.cpp | 2 - .../kernel/KviIrcConnectionNetsplitDetectorData.h | 14 +- src/kvirc/kernel/KviIrcConnectionRequestQueue.cpp | 66 +- src/kvirc/kernel/KviIrcConnectionRequestQueue.h | 11 +- src/kvirc/kernel/KviIrcConnectionServerInfo.cpp | 2053 +- src/kvirc/kernel/KviIrcConnectionServerInfo.h | 85 +- src/kvirc/kernel/KviIrcConnectionStateData.cpp | 21 +- src/kvirc/kernel/KviIrcConnectionStateData.h | 95 +- src/kvirc/kernel/KviIrcConnectionStatistics.cpp | 3 - src/kvirc/kernel/KviIrcConnectionStatistics.h | 11 +- src/kvirc/kernel/KviIrcConnectionTarget.cpp | 14 +- src/kvirc/kernel/KviIrcConnectionTarget.h | 22 +- .../kernel/KviIrcConnectionTargetResolver.cpp | 280 +- src/kvirc/kernel/KviIrcConnectionTargetResolver.h | 55 +- src/kvirc/kernel/KviIrcConnectionUserInfo.cpp | 18 +- src/kvirc/kernel/KviIrcConnectionUserInfo.h | 77 +- src/kvirc/kernel/KviIrcContext.cpp | 255 +- src/kvirc/kernel/KviIrcContext.h | 78 +- src/kvirc/kernel/KviIrcDataStreamMonitor.cpp | 5 +- src/kvirc/kernel/KviIrcDataStreamMonitor.h | 5 +- src/kvirc/kernel/KviIrcLink.cpp | 152 +- src/kvirc/kernel/KviIrcLink.h | 42 +- src/kvirc/kernel/KviIrcSocket.cpp | 550 +- src/kvirc/kernel/KviIrcSocket.h | 97 +- src/kvirc/kernel/KviIrcUrl.cpp | 197 +- src/kvirc/kernel/KviIrcUrl.h | 33 +- src/kvirc/kernel/KviLagMeter.cpp | 120 +- src/kvirc/kernel/KviLagMeter.h | 31 +- src/kvirc/kernel/KviMain.cpp | 282 +- src/kvirc/kernel/KviNotifyList.cpp | 428 +- src/kvirc/kernel/KviNotifyList.h | 65 +- src/kvirc/kernel/KviOptions.cpp | 2025 +- src/kvirc/kernel/KviOptions.h | 1001 +- src/kvirc/kernel/KviSSLMaster.cpp | 489 +- src/kvirc/kernel/KviSSLMaster.h | 9 +- src/kvirc/kernel/KviTextIconManager.cpp | 116 +- src/kvirc/kernel/KviTextIconManager.h | 29 +- src/kvirc/kernel/KviTheme.cpp | 122 +- src/kvirc/kernel/KviTheme.h | 70 +- src/kvirc/kernel/KviUserAction.cpp | 3 +- src/kvirc/kernel/KviUserInput.cpp | 45 +- src/kvirc/kernel/kvi_out.h | 1 - src/kvirc/kvs/KviKvs.cpp | 20 +- src/kvirc/kvs/KviKvs.h | 21 +- src/kvirc/kvs/KviKvsAction.cpp | 86 +- src/kvirc/kvs/KviKvsAction.h | 44 +- src/kvirc/kvs/KviKvsAliasManager.cpp | 37 +- src/kvirc/kvs/KviKvsAliasManager.h | 28 +- src/kvirc/kvs/KviKvsArray.cpp | 49 +- src/kvirc/kvs/KviKvsArray.h | 12 +- src/kvirc/kvs/KviKvsArrayCast.cpp | 2 - src/kvirc/kvs/KviKvsArrayCast.h | 22 +- src/kvirc/kvs/KviKvsAsyncDnsOperation.cpp | 45 +- src/kvirc/kvs/KviKvsAsyncDnsOperation.h | 3 +- src/kvirc/kvs/KviKvsAsyncOperation.cpp | 6 +- src/kvirc/kvs/KviKvsAsyncOperation.h | 8 +- src/kvirc/kvs/KviKvsCallbackObject.cpp | 23 +- src/kvirc/kvs/KviKvsCallbackObject.h | 34 +- src/kvirc/kvs/KviKvsCoreCallbackCommands.cpp | 258 +- src/kvirc/kvs/KviKvsCoreCallbackCommands.h | 21 +- src/kvirc/kvs/KviKvsCoreFunctions.cpp | 208 +- src/kvirc/kvs/KviKvsCoreFunctions.h | 13 +- src/kvirc/kvs/KviKvsCoreFunctions_af.cpp | 279 +- src/kvirc/kvs/KviKvsCoreFunctions_gl.cpp | 217 +- src/kvirc/kvs/KviKvsCoreFunctions_mr.cpp | 117 +- src/kvirc/kvs/KviKvsCoreFunctions_sz.cpp | 144 +- src/kvirc/kvs/KviKvsCoreSimpleCommands.cpp | 220 +- src/kvirc/kvs/KviKvsCoreSimpleCommands.h | 22 +- src/kvirc/kvs/KviKvsCoreSimpleCommands_af.cpp | 418 +- src/kvirc/kvs/KviKvsCoreSimpleCommands_gl.cpp | 130 +- src/kvirc/kvs/KviKvsCoreSimpleCommands_mr.cpp | 321 +- src/kvirc/kvs/KviKvsCoreSimpleCommands_sz.cpp | 194 +- src/kvirc/kvs/KviKvsDnsManager.cpp | 64 +- src/kvirc/kvs/KviKvsDnsManager.h | 44 +- src/kvirc/kvs/KviKvsHash.cpp | 19 +- src/kvirc/kvs/KviKvsHash.h | 6 +- src/kvirc/kvs/KviKvsKernel.cpp | 98 +- src/kvirc/kvs/KviKvsKernel.h | 112 +- src/kvirc/kvs/KviKvsModuleInterface.cpp | 100 +- src/kvirc/kvs/KviKvsModuleInterface.h | 191 +- src/kvirc/kvs/KviKvsParameterProcessor.cpp | 114 +- src/kvirc/kvs/KviKvsParameterProcessor.h | 85 +- src/kvirc/kvs/KviKvsPopupManager.cpp | 30 +- src/kvirc/kvs/KviKvsPopupManager.h | 25 +- src/kvirc/kvs/KviKvsPopupMenu.cpp | 707 +- src/kvirc/kvs/KviKvsPopupMenu.h | 217 +- src/kvirc/kvs/KviKvsProcessManager.cpp | 113 +- src/kvirc/kvs/KviKvsProcessManager.h | 47 +- src/kvirc/kvs/KviKvsRWEvaluationResult.cpp | 12 +- src/kvirc/kvs/KviKvsRWEvaluationResult.h | 18 +- src/kvirc/kvs/KviKvsReport.cpp | 102 +- src/kvirc/kvs/KviKvsReport.h | 54 +- src/kvirc/kvs/KviKvsRunTimeCall.cpp | 15 +- src/kvirc/kvs/KviKvsRunTimeCall.h | 36 +- src/kvirc/kvs/KviKvsRunTimeContext.cpp | 72 +- src/kvirc/kvs/KviKvsRunTimeContext.h | 259 +- src/kvirc/kvs/KviKvsScript.cpp | 76 +- src/kvirc/kvs/KviKvsScript.h | 56 +- src/kvirc/kvs/KviKvsScriptAddonManager.cpp | 188 +- src/kvirc/kvs/KviKvsScriptAddonManager.h | 107 +- src/kvirc/kvs/KviKvsSwitchList.cpp | 21 +- src/kvirc/kvs/KviKvsSwitchList.h | 25 +- src/kvirc/kvs/KviKvsTimerManager.cpp | 71 +- src/kvirc/kvs/KviKvsTimerManager.h | 80 +- src/kvirc/kvs/KviKvsTypes.h | 1 - src/kvirc/kvs/KviKvsUserAction.cpp | 226 +- src/kvirc/kvs/KviKvsUserAction.h | 69 +- src/kvirc/kvs/KviKvsVariant.cpp | 649 +- src/kvirc/kvs/KviKvsVariant.h | 81 +- src/kvirc/kvs/KviKvsVariantList.cpp | 1 - src/kvirc/kvs/KviKvsVariantList.h | 30 +- src/kvirc/kvs/event/KviKvsEvent.cpp | 14 +- src/kvirc/kvs/event/KviKvsEvent.h | 17 +- src/kvirc/kvs/event/KviKvsEventHandler.cpp | 20 +- src/kvirc/kvs/event/KviKvsEventHandler.h | 44 +- src/kvirc/kvs/event/KviKvsEventManager.cpp | 242 +- src/kvirc/kvs/event/KviKvsEventManager.h | 84 +- src/kvirc/kvs/event/KviKvsEventTable.cpp | 1166 +- src/kvirc/kvs/event/KviKvsEventTable.h | 297 +- src/kvirc/kvs/event/KviKvsEventTriggers.h | 391 +- src/kvirc/kvs/object/KviKvsObject.cpp | 651 +- src/kvirc/kvs/object/KviKvsObject.h | 145 +- src/kvirc/kvs/object/KviKvsObjectClass.cpp | 100 +- src/kvirc/kvs/object/KviKvsObjectClass.h | 84 +- src/kvirc/kvs/object/KviKvsObjectController.cpp | 131 +- src/kvirc/kvs/object/KviKvsObjectController.h | 28 +- src/kvirc/kvs/object/KviKvsObjectFunctionCall.h | 12 +- .../kvs/object/KviKvsObjectFunctionHandler.cpp | 8 +- src/kvirc/kvs/object/KviKvsObjectFunctionHandler.h | 22 +- .../kvs/object/KviKvsObjectFunctionHandlerImpl.cpp | 42 +- .../kvs/object/KviKvsObjectFunctionHandlerImpl.h | 51 +- src/kvirc/kvs/parser/KviKvsParser.cpp | 1513 +- src/kvirc/kvs/parser/KviKvsParser.h | 148 +- src/kvirc/kvs/parser/KviKvsParserMacros.h | 5 +- src/kvirc/kvs/parser/KviKvsParser_command.cpp | 189 +- src/kvirc/kvs/parser/KviKvsParser_comment.cpp | 20 +- src/kvirc/kvs/parser/KviKvsParser_dollar.cpp | 136 +- src/kvirc/kvs/parser/KviKvsParser_expression.cpp | 160 +- src/kvirc/kvs/parser/KviKvsParser_lside.cpp | 280 +- .../kvs/parser/KviKvsParser_specialCommands.cpp | 755 +- src/kvirc/kvs/tree/KviKvsTreeNode.h | 2 - .../kvs/tree/KviKvsTreeNodeAliasFunctionCall.cpp | 12 +- .../kvs/tree/KviKvsTreeNodeAliasFunctionCall.h | 1 + .../kvs/tree/KviKvsTreeNodeAliasSimpleCommand.cpp | 27 +- .../kvs/tree/KviKvsTreeNodeAliasSimpleCommand.h | 1 + src/kvirc/kvs/tree/KviKvsTreeNodeArrayCount.cpp | 17 +- src/kvirc/kvs/tree/KviKvsTreeNodeArrayCount.h | 1 + src/kvirc/kvs/tree/KviKvsTreeNodeArrayElement.cpp | 37 +- src/kvirc/kvs/tree/KviKvsTreeNodeArrayElement.h | 2 + .../kvs/tree/KviKvsTreeNodeArrayOrHashElement.cpp | 4 +- .../kvs/tree/KviKvsTreeNodeArrayOrHashElement.h | 3 +- .../tree/KviKvsTreeNodeArrayReferenceAssert.cpp | 25 +- .../kvs/tree/KviKvsTreeNodeArrayReferenceAssert.h | 2 +- src/kvirc/kvs/tree/KviKvsTreeNodeBase.cpp | 1 - src/kvirc/kvs/tree/KviKvsTreeNodeBase.h | 14 +- .../tree/KviKvsTreeNodeBaseObjectFunctionCall.cpp | 17 +- .../tree/KviKvsTreeNodeBaseObjectFunctionCall.h | 8 +- .../kvs/tree/KviKvsTreeNodeCallbackCommand.cpp | 9 +- src/kvirc/kvs/tree/KviKvsTreeNodeCallbackCommand.h | 7 +- src/kvirc/kvs/tree/KviKvsTreeNodeCommand.cpp | 14 +- src/kvirc/kvs/tree/KviKvsTreeNodeCommand.h | 13 +- .../kvs/tree/KviKvsTreeNodeCommandEvaluation.cpp | 6 +- .../kvs/tree/KviKvsTreeNodeCommandEvaluation.h | 5 +- .../tree/KviKvsTreeNodeCommandWithParameters.cpp | 9 +- .../kvs/tree/KviKvsTreeNodeCommandWithParameters.h | 7 +- src/kvirc/kvs/tree/KviKvsTreeNodeCompositeData.cpp | 21 +- src/kvirc/kvs/tree/KviKvsTreeNodeCompositeData.h | 9 +- src/kvirc/kvs/tree/KviKvsTreeNodeConstantData.cpp | 12 +- src/kvirc/kvs/tree/KviKvsTreeNodeConstantData.h | 10 +- .../kvs/tree/KviKvsTreeNodeCoreCallbackCommand.cpp | 17 +- .../kvs/tree/KviKvsTreeNodeCoreCallbackCommand.h | 7 +- .../kvs/tree/KviKvsTreeNodeCoreFunctionCall.cpp | 16 +- .../kvs/tree/KviKvsTreeNodeCoreFunctionCall.h | 8 +- .../kvs/tree/KviKvsTreeNodeCoreSimpleCommand.cpp | 17 +- .../kvs/tree/KviKvsTreeNodeCoreSimpleCommand.h | 6 +- src/kvirc/kvs/tree/KviKvsTreeNodeData.cpp | 23 +- src/kvirc/kvs/tree/KviKvsTreeNodeData.h | 19 +- src/kvirc/kvs/tree/KviKvsTreeNodeDataList.cpp | 16 +- src/kvirc/kvs/tree/KviKvsTreeNodeDataList.h | 8 +- src/kvirc/kvs/tree/KviKvsTreeNodeExpression.cpp | 443 +- src/kvirc/kvs/tree/KviKvsTreeNodeExpression.h | 136 +- .../kvs/tree/KviKvsTreeNodeExpressionReturn.cpp | 10 +- .../kvs/tree/KviKvsTreeNodeExpressionReturn.h | 6 +- .../tree/KviKvsTreeNodeExtendedScopeVariable.cpp | 20 +- .../kvs/tree/KviKvsTreeNodeExtendedScopeVariable.h | 7 +- src/kvirc/kvs/tree/KviKvsTreeNodeFunctionCall.cpp | 9 +- src/kvirc/kvs/tree/KviKvsTreeNodeFunctionCall.h | 8 +- .../kvs/tree/KviKvsTreeNodeGlobalVariable.cpp | 19 +- src/kvirc/kvs/tree/KviKvsTreeNodeGlobalVariable.h | 7 +- src/kvirc/kvs/tree/KviKvsTreeNodeHashCount.cpp | 27 +- src/kvirc/kvs/tree/KviKvsTreeNodeHashCount.h | 9 +- src/kvirc/kvs/tree/KviKvsTreeNodeHashElement.cpp | 58 +- src/kvirc/kvs/tree/KviKvsTreeNodeHashElement.h | 12 +- .../kvs/tree/KviKvsTreeNodeHashReferenceAssert.cpp | 39 +- .../kvs/tree/KviKvsTreeNodeHashReferenceAssert.h | 12 +- src/kvirc/kvs/tree/KviKvsTreeNodeIndirectData.cpp | 4 +- src/kvirc/kvs/tree/KviKvsTreeNodeIndirectData.h | 3 +- src/kvirc/kvs/tree/KviKvsTreeNodeInstruction.cpp | 3 +- src/kvirc/kvs/tree/KviKvsTreeNodeInstruction.h | 3 +- .../kvs/tree/KviKvsTreeNodeInstructionBlock.cpp | 11 +- .../kvs/tree/KviKvsTreeNodeInstructionBlock.h | 9 +- src/kvirc/kvs/tree/KviKvsTreeNodeLocalVariable.cpp | 19 +- src/kvirc/kvs/tree/KviKvsTreeNodeLocalVariable.h | 7 +- .../tree/KviKvsTreeNodeModuleCallbackCommand.cpp | 21 +- .../kvs/tree/KviKvsTreeNodeModuleCallbackCommand.h | 10 +- .../kvs/tree/KviKvsTreeNodeModuleFunctionCall.cpp | 20 +- .../kvs/tree/KviKvsTreeNodeModuleFunctionCall.h | 8 +- .../kvs/tree/KviKvsTreeNodeModuleSimpleCommand.cpp | 29 +- .../kvs/tree/KviKvsTreeNodeModuleSimpleCommand.h | 7 +- .../KviKvsTreeNodeMultipleParameterIdentifier.cpp | 29 +- .../KviKvsTreeNodeMultipleParameterIdentifier.h | 8 +- src/kvirc/kvs/tree/KviKvsTreeNodeObjectField.cpp | 20 +- src/kvirc/kvs/tree/KviKvsTreeNodeObjectField.h | 9 +- .../kvs/tree/KviKvsTreeNodeObjectFunctionCall.cpp | 8 +- .../kvs/tree/KviKvsTreeNodeObjectFunctionCall.h | 7 +- src/kvirc/kvs/tree/KviKvsTreeNodeOperation.cpp | 465 +- src/kvirc/kvs/tree/KviKvsTreeNodeOperation.h | 100 +- .../kvs/tree/KviKvsTreeNodeParameterCount.cpp | 8 +- src/kvirc/kvs/tree/KviKvsTreeNodeParameterCount.h | 5 +- .../kvs/tree/KviKvsTreeNodeParameterReturn.cpp | 12 +- src/kvirc/kvs/tree/KviKvsTreeNodeParameterReturn.h | 6 +- .../kvs/tree/KviKvsTreeNodeRebindingSwitch.cpp | 16 +- src/kvirc/kvs/tree/KviKvsTreeNodeRebindingSwitch.h | 6 +- src/kvirc/kvs/tree/KviKvsTreeNodeScopeOperator.cpp | 62 +- src/kvirc/kvs/tree/KviKvsTreeNodeScopeOperator.h | 25 +- src/kvirc/kvs/tree/KviKvsTreeNodeSimpleCommand.cpp | 9 +- src/kvirc/kvs/tree/KviKvsTreeNodeSimpleCommand.h | 6 +- .../KviKvsTreeNodeSingleParameterIdentifier.cpp | 19 +- .../tree/KviKvsTreeNodeSingleParameterIdentifier.h | 9 +- .../kvs/tree/KviKvsTreeNodeSpecialCommand.cpp | 10 +- src/kvirc/kvs/tree/KviKvsTreeNodeSpecialCommand.h | 5 +- .../kvs/tree/KviKvsTreeNodeSpecialCommandBreak.cpp | 6 +- .../kvs/tree/KviKvsTreeNodeSpecialCommandBreak.h | 4 +- .../kvs/tree/KviKvsTreeNodeSpecialCommandClass.cpp | 69 +- .../kvs/tree/KviKvsTreeNodeSpecialCommandClass.h | 28 +- .../tree/KviKvsTreeNodeSpecialCommandContinue.cpp | 6 +- .../tree/KviKvsTreeNodeSpecialCommandContinue.h | 4 +- .../tree/KviKvsTreeNodeSpecialCommandDefpopup.cpp | 147 +- .../tree/KviKvsTreeNodeSpecialCommandDefpopup.h | 107 +- .../kvs/tree/KviKvsTreeNodeSpecialCommandDo.cpp | 22 +- .../kvs/tree/KviKvsTreeNodeSpecialCommandDo.h | 9 +- .../kvs/tree/KviKvsTreeNodeSpecialCommandFor.cpp | 59 +- .../kvs/tree/KviKvsTreeNodeSpecialCommandFor.h | 9 +- .../tree/KviKvsTreeNodeSpecialCommandForeach.cpp | 35 +- .../kvs/tree/KviKvsTreeNodeSpecialCommandForeach.h | 13 +- .../kvs/tree/KviKvsTreeNodeSpecialCommandIf.cpp | 25 +- .../kvs/tree/KviKvsTreeNodeSpecialCommandIf.h | 9 +- .../tree/KviKvsTreeNodeSpecialCommandSwitch.cpp | 170 +- .../kvs/tree/KviKvsTreeNodeSpecialCommandSwitch.h | 43 +- .../kvs/tree/KviKvsTreeNodeSpecialCommandUnset.cpp | 17 +- .../kvs/tree/KviKvsTreeNodeSpecialCommandUnset.h | 6 +- .../kvs/tree/KviKvsTreeNodeSpecialCommandWhile.cpp | 21 +- .../kvs/tree/KviKvsTreeNodeSpecialCommandWhile.h | 9 +- src/kvirc/kvs/tree/KviKvsTreeNodeStringCase.cpp | 14 +- src/kvirc/kvs/tree/KviKvsTreeNodeStringCase.h | 9 +- src/kvirc/kvs/tree/KviKvsTreeNodeSwitchList.cpp | 38 +- src/kvirc/kvs/tree/KviKvsTreeNodeSwitchList.h | 18 +- .../tree/KviKvsTreeNodeThisObjectFunctionCall.cpp | 16 +- .../tree/KviKvsTreeNodeThisObjectFunctionCall.h | 9 +- src/kvirc/kvs/tree/KviKvsTreeNodeVariable.cpp | 4 +- src/kvirc/kvs/tree/KviKvsTreeNodeVariable.h | 4 +- .../kvs/tree/KviKvsTreeNodeVoidFunctionCall.cpp | 10 +- .../kvs/tree/KviKvsTreeNodeVoidFunctionCall.h | 5 +- src/kvirc/module/KviMexLinkFilter.cpp | 3 +- src/kvirc/module/KviMexLinkFilter.h | 3 +- src/kvirc/module/KviMexServerImport.cpp | 2 +- src/kvirc/module/KviMexServerImport.h | 3 +- src/kvirc/module/KviMexToolBar.cpp | 3 +- src/kvirc/module/KviModule.cpp | 47 +- src/kvirc/module/KviModule.h | 118 +- src/kvirc/module/KviModuleExtension.cpp | 106 +- src/kvirc/module/KviModuleExtension.h | 98 +- src/kvirc/module/KviModuleManager.cpp | 147 +- src/kvirc/module/KviModuleManager.h | 27 +- src/kvirc/sparser/KviAntiSpam.cpp | 7 +- src/kvirc/sparser/KviAntiSpam.h | 3 +- src/kvirc/sparser/KviIrcMessage.cpp | 180 +- src/kvirc/sparser/KviIrcMessage.h | 104 +- src/kvirc/sparser/KviIrcNumericCodes.h | 532 +- src/kvirc/sparser/KviIrcServerParser.cpp | 51 +- src/kvirc/sparser/KviIrcServerParser.h | 364 +- src/kvirc/sparser/KviIrcServerParser_ctcp.cpp | 947 +- .../sparser/KviIrcServerParser_literalHandlers.cpp | 1461 +- .../sparser/KviIrcServerParser_numericHandlers.cpp | 1417 +- src/kvirc/sparser/KviIrcServerParser_tables.cpp | 2009 +- src/kvirc/ui/KviActionDrawer.cpp | 36 +- src/kvirc/ui/KviActionDrawer.h | 19 +- src/kvirc/ui/KviChannelWindow.cpp | 603 +- src/kvirc/ui/KviChannelWindow.h | 268 +- src/kvirc/ui/KviColorSelectionWindow.cpp | 30 +- src/kvirc/ui/KviColorSelectionWindow.h | 5 +- src/kvirc/ui/KviConsoleWindow.cpp | 505 +- src/kvirc/ui/KviConsoleWindow.h | 88 +- src/kvirc/ui/KviCryptController.cpp | 615 +- src/kvirc/ui/KviCryptController.h | 153 +- src/kvirc/ui/KviCtcpPageDialog.cpp | 23 +- src/kvirc/ui/KviCtcpPageDialog.h | 8 +- src/kvirc/ui/KviCustomToolBar.cpp | 82 +- src/kvirc/ui/KviCustomToolBar.h | 16 +- src/kvirc/ui/KviDebugWindow.cpp | 31 +- src/kvirc/ui/KviDebugWindow.h | 9 +- src/kvirc/ui/KviDynamicToolTip.cpp | 18 +- src/kvirc/ui/KviDynamicToolTip.h | 18 +- src/kvirc/ui/KviFileDialog.cpp | 53 +- src/kvirc/ui/KviFileDialog.h | 3 +- src/kvirc/ui/KviHistoryWindow.cpp | 31 +- src/kvirc/ui/KviHistoryWindow.h | 9 +- src/kvirc/ui/KviHtmlDialog.cpp | 44 +- src/kvirc/ui/KviHtmlDialog.h | 74 +- src/kvirc/ui/KviImageDialog.cpp | 158 +- src/kvirc/ui/KviImageDialog.h | 53 +- src/kvirc/ui/KviInput.cpp | 151 +- src/kvirc/ui/KviInput.h | 26 +- src/kvirc/ui/KviInputEditor.cpp | 1048 +- src/kvirc/ui/KviInputEditor.h | 112 +- src/kvirc/ui/KviInputHistory.cpp | 20 +- src/kvirc/ui/KviInputHistory.h | 10 +- src/kvirc/ui/KviIpEditor.cpp | 211 +- src/kvirc/ui/KviIpEditor.h | 24 +- src/kvirc/ui/KviIrcToolBar.cpp | 129 +- src/kvirc/ui/KviIrcToolBar.h | 20 +- src/kvirc/ui/KviIrcView.cpp | 1236 +- src/kvirc/ui/KviIrcView.h | 191 +- src/kvirc/ui/KviIrcView_events.cpp | 548 +- src/kvirc/ui/KviIrcView_getTextLine.cpp | 680 +- src/kvirc/ui/KviIrcView_loghandling.cpp | 92 +- src/kvirc/ui/KviIrcView_private.h | 72 +- src/kvirc/ui/KviIrcView_tools.cpp | 177 +- src/kvirc/ui/KviIrcView_tools.h | 49 +- src/kvirc/ui/KviMainWindow.cpp | 421 +- src/kvirc/ui/KviMainWindow.h | 84 +- src/kvirc/ui/KviMaskEditor.cpp | 177 +- src/kvirc/ui/KviMaskEditor.h | 60 +- src/kvirc/ui/KviMenuBar.cpp | 240 +- src/kvirc/ui/KviMenuBar.h | 58 +- src/kvirc/ui/KviMessageBox.cpp | 39 +- src/kvirc/ui/KviMessageBox.h | 6 +- src/kvirc/ui/KviModeEditor.cpp | 155 +- src/kvirc/ui/KviModeEditor.h | 12 +- src/kvirc/ui/KviModeWidget.cpp | 87 +- src/kvirc/ui/KviModeWidget.h | 8 +- src/kvirc/ui/KviOptionsWidget.cpp | 386 +- src/kvirc/ui/KviOptionsWidget.h | 178 +- src/kvirc/ui/KviQueryWindow.cpp | 258 +- src/kvirc/ui/KviQueryWindow.h | 34 +- src/kvirc/ui/KviScriptButton.cpp | 28 +- src/kvirc/ui/KviScriptButton.h | 20 +- src/kvirc/ui/KviScriptEditor.cpp | 19 +- src/kvirc/ui/KviScriptEditor.h | 16 +- src/kvirc/ui/KviSelectors.cpp | 339 +- src/kvirc/ui/KviSelectors.h | 234 +- src/kvirc/ui/KviStatusBar.cpp | 174 +- src/kvirc/ui/KviStatusBar.h | 54 +- src/kvirc/ui/KviStatusBarApplet.cpp | 340 +- src/kvirc/ui/KviStatusBarApplet.h | 87 +- src/kvirc/ui/KviTextIconWindow.cpp | 58 +- src/kvirc/ui/KviTextIconWindow.h | 11 +- src/kvirc/ui/KviThemedComboBox.cpp | 36 +- src/kvirc/ui/KviThemedComboBox.h | 9 +- src/kvirc/ui/KviThemedLabel.cpp | 34 +- src/kvirc/ui/KviThemedLabel.h | 9 +- src/kvirc/ui/KviThemedLineEdit.cpp | 41 +- src/kvirc/ui/KviThemedLineEdit.h | 5 +- src/kvirc/ui/KviThemedTreeWidget.cpp | 30 +- src/kvirc/ui/KviThemedTreeWidget.h | 5 +- src/kvirc/ui/KviToolBar.cpp | 70 +- src/kvirc/ui/KviToolBar.h | 9 +- src/kvirc/ui/KviTopicWidget.cpp | 388 +- src/kvirc/ui/KviTopicWidget.h | 40 +- src/kvirc/ui/KviTrayIcon.h | 6 +- src/kvirc/ui/KviTreeWindowList.cpp | 304 +- src/kvirc/ui/KviTreeWindowList.h | 33 +- src/kvirc/ui/KviUserListView.cpp | 929 +- src/kvirc/ui/KviUserListView.h | 129 +- src/kvirc/ui/KviWebPackageManagementDialog.cpp | 92 +- src/kvirc/ui/KviWebPackageManagementDialog.h | 22 +- src/kvirc/ui/KviWindow.cpp | 386 +- src/kvirc/ui/KviWindow.h | 217 +- src/kvirc/ui/KviWindowListBase.cpp | 306 +- src/kvirc/ui/KviWindowListBase.h | 71 +- src/kvirc/ui/KviWindowStack.cpp | 36 +- src/kvirc/ui/KviWindowStack.h | 4 +- src/kvirc/ui/KviWindowToolWidget.cpp | 11 +- src/kvirc/ui/KviWindowToolWidget.h | 1 + src/modules/about/AboutDialog.cpp | 89 +- src/modules/about/AboutDialog.h | 3 +- src/modules/about/libkviabout.cpp | 36 +- src/modules/action/libkviaction.cpp | 163 +- src/modules/actioneditor/ActionEditor.cpp | 583 +- src/modules/actioneditor/ActionEditor.h | 68 +- src/modules/actioneditor/libkviactioneditor.cpp | 22 +- src/modules/addon/AddonFunctions.cpp | 138 +- src/modules/addon/AddonFunctions.h | 4 +- src/modules/addon/AddonManagementDialog.cpp | 192 +- src/modules/addon/AddonManagementDialog.h | 32 +- src/modules/addon/PackAddonDialog.cpp | 198 +- src/modules/addon/PackAddonDialog.h | 43 +- src/modules/addon/WebAddonInterfaceDialog.cpp | 20 +- src/modules/addon/WebAddonInterfaceDialog.h | 7 +- src/modules/addon/libkviaddon.cpp | 308 +- src/modules/aliaseditor/AliasEditorWindow.cpp | 819 +- src/modules/aliaseditor/AliasEditorWindow.h | 128 +- src/modules/aliaseditor/libkvialiaseditor.cpp | 25 +- src/modules/avatar/libkviavatar.cpp | 225 +- src/modules/avatar/libkviavatar.h | 11 +- src/modules/chan/libkvichan.cpp | 632 +- src/modules/channelsjoin/ChannelsJoinDialog.cpp | 134 +- src/modules/channelsjoin/ChannelsJoinDialog.h | 36 +- src/modules/channelsjoin/libkvichannelsjoin.cpp | 39 +- src/modules/classeditor/ClassEditorWindow.cpp | 834 +- src/modules/classeditor/ClassEditorWindow.h | 118 +- src/modules/classeditor/libkviclasseditor.cpp | 23 +- src/modules/codetester/CodeTesterWindow.cpp | 32 +- src/modules/codetester/CodeTesterWindow.h | 14 +- src/modules/codetester/libkvicodetester.cpp | 23 +- src/modules/config/libkviconfig.cpp | 258 +- src/modules/context/libkvicontext.cpp | 238 +- src/modules/dcc/DccBroker.cpp | 700 +- src/modules/dcc/DccBroker.h | 53 +- src/modules/dcc/DccCanvasWindow.cpp | 325 +- src/modules/dcc/DccCanvasWindow.h | 66 +- src/modules/dcc/DccChatWindow.cpp | 417 +- src/modules/dcc/DccChatWindow.h | 41 +- src/modules/dcc/DccDescriptor.cpp | 159 +- src/modules/dcc/DccDescriptor.h | 96 +- src/modules/dcc/DccDialog.cpp | 83 +- src/modules/dcc/DccDialog.h | 31 +- src/modules/dcc/DccFileTransfer.cpp | 1092 +- src/modules/dcc/DccFileTransfer.h | 174 +- src/modules/dcc/DccMarshal.cpp | 219 +- src/modules/dcc/DccMarshal.h | 47 +- src/modules/dcc/DccThread.cpp | 35 +- src/modules/dcc/DccThread.h | 18 +- src/modules/dcc/DccUtils.cpp | 38 +- src/modules/dcc/DccUtils.h | 2 +- src/modules/dcc/DccVideoWindow.cpp | 450 +- src/modules/dcc/DccVideoWindow.h | 83 +- src/modules/dcc/DccVoiceAdpcmCodec.cpp | 131 +- src/modules/dcc/DccVoiceAdpcmCodec.h | 10 +- src/modules/dcc/DccVoiceCodec.cpp | 138 +- src/modules/dcc/DccVoiceCodec.h | 26 +- src/modules/dcc/DccVoiceGsmCodec.cpp | 189 +- src/modules/dcc/DccVoiceGsmCodec.h | 45 +- src/modules/dcc/DccVoiceWindow.cpp | 493 +- src/modules/dcc/DccVoiceWindow.h | 85 +- src/modules/dcc/DccWindow.cpp | 12 +- src/modules/dcc/DccWindow.h | 18 +- src/modules/dcc/canvaswidget.cpp | 2469 +- src/modules/dcc/canvaswidget.h | 555 +- src/modules/dcc/libkvidcc.cpp | 856 +- src/modules/dcc/requests.cpp | 733 +- src/modules/dialog/libkvidialog.cpp | 421 +- src/modules/dialog/libkvidialog.h | 87 +- src/modules/editor/ScriptEditorImplementation.cpp | 511 +- src/modules/editor/ScriptEditorImplementation.h | 52 +- src/modules/editor/libkvieditor.cpp | 28 +- src/modules/eventeditor/EventEditorWindow.cpp | 292 +- src/modules/eventeditor/EventEditorWindow.h | 62 +- src/modules/eventeditor/libkvieventeditor.cpp | 22 +- src/modules/file/libkvifile.cpp | 475 +- .../filetransferwindow/FileTransferWindow.cpp | 506 +- .../filetransferwindow/FileTransferWindow.h | 68 +- .../libkvifiletransferwindow.cpp | 33 +- src/modules/fish/libkvifish.cpp | 426 +- src/modules/help/HelpIndex.cpp | 949 +- src/modules/help/HelpIndex.h | 144 +- src/modules/help/HelpWidget.cpp | 102 +- src/modules/help/HelpWidget.h | 51 +- src/modules/help/HelpWindow.cpp | 247 +- src/modules/help/HelpWindow.h | 55 +- src/modules/help/libkvihelp.cpp | 112 +- src/modules/http/HttpFileTransfer.cpp | 261 +- src/modules/http/HttpFileTransfer.h | 63 +- src/modules/http/libkvihttp.cpp | 128 +- src/modules/ident/libkviident.cpp | 324 +- src/modules/ident/libkviident.h | 41 +- src/modules/iograph/libkviiograph.cpp | 112 +- src/modules/iograph/libkviiograph.h | 16 +- src/modules/lamerizer/libkvilamerizer.cpp | 291 +- src/modules/lamerizer/libkvilamerizer.h | 32 +- src/modules/language/detector.cpp | 36646 +++++++++---------- src/modules/language/detector.h | 4 +- src/modules/language/libkvilanguage.cpp | 53 +- src/modules/links/LinksWindow.cpp | 384 +- src/modules/links/LinksWindow.h | 34 +- src/modules/links/libkvilinks.cpp | 32 +- src/modules/list/ListWindow.cpp | 227 +- src/modules/list/ListWindow.h | 41 +- src/modules/list/libkvilist.cpp | 30 +- src/modules/log/libkvilog.cpp | 93 +- src/modules/logview/LogFile.cpp | 43 +- src/modules/logview/LogFile.h | 38 +- src/modules/logview/LogViewWidget.cpp | 42 +- src/modules/logview/LogViewWidget.h | 9 +- src/modules/logview/LogViewWindow.cpp | 286 +- src/modules/logview/LogViewWindow.h | 58 +- src/modules/logview/libkvilogview.cpp | 36 +- src/modules/mask/libkvimask.cpp | 51 +- src/modules/math/libkvimath.cpp | 143 +- src/modules/mediaplayer/MpAmipInterface.cpp | 170 +- src/modules/mediaplayer/MpAmipInterface.h | 91 +- src/modules/mediaplayer/MpInterface.cpp | 63 +- src/modules/mediaplayer/MpInterface.h | 117 +- src/modules/mediaplayer/MpMp3.cpp | 375 +- src/modules/mediaplayer/MpMp3.h | 68 +- src/modules/mediaplayer/MpMprisInterface.cpp | 412 +- src/modules/mediaplayer/MpMprisInterface.h | 220 +- src/modules/mediaplayer/MpWinampInterface.cpp | 198 +- src/modules/mediaplayer/MpWinampInterface.h | 81 +- src/modules/mediaplayer/MpXmmsInterface.cpp | 191 +- src/modules/mediaplayer/MpXmmsInterface.h | 89 +- src/modules/mediaplayer/libkvimediaplayer.cpp | 455 +- src/modules/mediaplayer/winamp.cpp | 46 +- src/modules/mircimport/libkvimircimport.cpp | 165 +- src/modules/mircimport/libkvimircimport.h | 21 +- src/modules/my/Idle.cpp | 33 +- src/modules/my/Idle.h | 5 +- src/modules/my/Idle_mac.cpp | 251 +- src/modules/my/Idle_win.cpp | 143 +- src/modules/my/Idle_x11.cpp | 131 +- src/modules/my/libkvimy.cpp | 93 +- src/modules/notifier/NotifierMessage.cpp | 12 +- src/modules/notifier/NotifierMessage.h | 13 +- src/modules/notifier/NotifierSettings.h | 55 +- src/modules/notifier/NotifierWindow.cpp | 391 +- src/modules/notifier/NotifierWindow.h | 78 +- src/modules/notifier/NotifierWindowBorder.cpp | 42 +- src/modules/notifier/NotifierWindowBorder.h | 58 +- src/modules/notifier/NotifierWindowTab.cpp | 82 +- src/modules/notifier/NotifierWindowTab.h | 10 +- src/modules/notifier/libkvinotifier.cpp | 71 +- src/modules/objects/KvsObject_button.cpp | 51 +- src/modules/objects/KvsObject_button.h | 14 +- src/modules/objects/KvsObject_buttonGroup.cpp | 43 +- src/modules/objects/KvsObject_buttonGroup.h | 17 +- src/modules/objects/KvsObject_checkBox.cpp | 37 +- src/modules/objects/KvsObject_checkBox.h | 18 +- src/modules/objects/KvsObject_colorDialog.cpp | 127 +- src/modules/objects/KvsObject_colorDialog.h | 23 +- src/modules/objects/KvsObject_comboBox.cpp | 191 +- src/modules/objects/KvsObject_comboBox.h | 53 +- src/modules/objects/KvsObject_dateTimeEdit.cpp | 86 +- src/modules/objects/KvsObject_dateTimeEdit.h | 20 +- src/modules/objects/KvsObject_dialog.cpp | 17 +- src/modules/objects/KvsObject_dialog.h | 4 +- src/modules/objects/KvsObject_dockWindow.cpp | 73 +- src/modules/objects/KvsObject_dockWindow.h | 4 +- src/modules/objects/KvsObject_file.cpp | 321 +- src/modules/objects/KvsObject_file.h | 53 +- src/modules/objects/KvsObject_ftp.cpp | 234 +- src/modules/objects/KvsObject_ftp.h | 45 +- src/modules/objects/KvsObject_groupBox.cpp | 108 +- src/modules/objects/KvsObject_groupBox.h | 38 +- src/modules/objects/KvsObject_hBox.cpp | 86 +- src/modules/objects/KvsObject_hBox.h | 15 +- src/modules/objects/KvsObject_http.cpp | 511 +- src/modules/objects/KvsObject_http.h | 73 +- src/modules/objects/KvsObject_label.cpp | 95 +- src/modules/objects/KvsObject_label.h | 31 +- src/modules/objects/KvsObject_layout.cpp | 194 +- src/modules/objects/KvsObject_layout.h | 22 +- src/modules/objects/KvsObject_lcd.cpp | 84 +- src/modules/objects/KvsObject_lcd.h | 23 +- src/modules/objects/KvsObject_lineEdit.cpp | 245 +- src/modules/objects/KvsObject_lineEdit.h | 82 +- src/modules/objects/KvsObject_list.cpp | 131 +- src/modules/objects/KvsObject_list.h | 39 +- src/modules/objects/KvsObject_listWidget.cpp | 482 +- src/modules/objects/KvsObject_listWidget.h | 68 +- src/modules/objects/KvsObject_mainWindow.cpp | 27 +- src/modules/objects/KvsObject_mainWindow.h | 8 +- src/modules/objects/KvsObject_memoryBuffer.cpp | 62 +- src/modules/objects/KvsObject_memoryBuffer.h | 17 +- src/modules/objects/KvsObject_menuBar.cpp | 14 +- src/modules/objects/KvsObject_menuBar.h | 6 +- src/modules/objects/KvsObject_multiLineEdit.cpp | 374 +- src/modules/objects/KvsObject_multiLineEdit.h | 104 +- src/modules/objects/KvsObject_painter.cpp | 1738 +- src/modules/objects/KvsObject_painter.h | 154 +- src/modules/objects/KvsObject_pixmap.cpp | 576 +- src/modules/objects/KvsObject_pixmap.h | 64 +- src/modules/objects/KvsObject_popupMenu.cpp | 190 +- src/modules/objects/KvsObject_popupMenu.h | 28 +- src/modules/objects/KvsObject_process.cpp | 102 +- src/modules/objects/KvsObject_process.h | 37 +- src/modules/objects/KvsObject_progressBar.cpp | 42 +- src/modules/objects/KvsObject_progressBar.h | 18 +- src/modules/objects/KvsObject_radioButton.cpp | 42 +- src/modules/objects/KvsObject_radioButton.h | 15 +- src/modules/objects/KvsObject_slider.cpp | 122 +- src/modules/objects/KvsObject_slider.h | 36 +- src/modules/objects/KvsObject_socket.cpp | 342 +- src/modules/objects/KvsObject_socket.h | 56 +- src/modules/objects/KvsObject_spinBox.cpp | 94 +- src/modules/objects/KvsObject_spinBox.h | 34 +- src/modules/objects/KvsObject_sql.cpp | 376 +- src/modules/objects/KvsObject_sql.h | 42 +- src/modules/objects/KvsObject_tabWidget.cpp | 262 +- src/modules/objects/KvsObject_tabWidget.h | 40 +- src/modules/objects/KvsObject_tableWidget.cpp | 535 +- src/modules/objects/KvsObject_tableWidget.h | 102 +- src/modules/objects/KvsObject_textBrowser.cpp | 44 +- src/modules/objects/KvsObject_textBrowser.h | 20 +- src/modules/objects/KvsObject_toolBar.cpp | 25 +- src/modules/objects/KvsObject_toolBar.h | 14 +- src/modules/objects/KvsObject_toolButton.cpp | 148 +- src/modules/objects/KvsObject_toolButton.h | 45 +- src/modules/objects/KvsObject_trayIcon.cpp | 138 +- src/modules/objects/KvsObject_trayIcon.h | 23 +- src/modules/objects/KvsObject_treeWidget.cpp | 394 +- src/modules/objects/KvsObject_treeWidget.h | 80 +- src/modules/objects/KvsObject_treeWidgeteItem.cpp | 202 +- src/modules/objects/KvsObject_treeWidgeteItem.h | 46 +- src/modules/objects/KvsObject_vBox.cpp | 126 +- src/modules/objects/KvsObject_vBox.h | 14 +- src/modules/objects/KvsObject_webView.cpp | 898 +- src/modules/objects/KvsObject_webView.h | 58 +- src/modules/objects/KvsObject_widget.cpp | 1146 +- src/modules/objects/KvsObject_widget.h | 108 +- src/modules/objects/KvsObject_window.cpp | 62 +- src/modules/objects/KvsObject_window.h | 27 +- src/modules/objects/KvsObject_wizard.cpp | 195 +- src/modules/objects/KvsObject_wizard.h | 41 +- src/modules/objects/KvsObject_workspace.cpp | 108 +- src/modules/objects/KvsObject_workspace.h | 28 +- src/modules/objects/KvsObject_wrapper.cpp | 94 +- src/modules/objects/KvsObject_wrapper.h | 14 +- src/modules/objects/KvsObject_xmlreader.cpp | 100 +- src/modules/objects/KvsObject_xmlreader.h | 7 +- src/modules/objects/libkviobjects.cpp | 282 +- src/modules/objects/object_macros.h | 114 +- src/modules/objects/qtftp/qftp.cpp | 2309 +- src/modules/objects/qtftp/qftp.h | 437 +- src/modules/objects/qtftp/qurlinfo.cpp | 416 +- src/modules/objects/qtftp/qurlinfo.h | 114 +- src/modules/objects/qthttp/qhttp.cpp | 2876 +- src/modules/objects/qthttp/qhttp.h | 332 +- src/modules/objects/qthttp/qhttpauthenticator.cpp | 1675 +- src/modules/objects/qthttp/qhttpauthenticator_p.h | 128 +- src/modules/objects/qthttp/qringbuffer_p.h | 818 +- src/modules/options/OptionsDialog.cpp | 314 +- src/modules/options/OptionsDialog.h | 49 +- src/modules/options/OptionsInstanceManager.cpp | 5309 ++- src/modules/options/OptionsInstanceManager.h | 33 +- src/modules/options/OptionsWidgetContainer.cpp | 44 +- src/modules/options/OptionsWidgetContainer.h | 13 +- .../OptionsWidget_alertsAndHighlighting.cpp | 85 +- .../options/OptionsWidget_alertsAndHighlighting.h | 5 +- src/modules/options/OptionsWidget_antiSpam.cpp | 18 +- src/modules/options/OptionsWidget_antiSpam.h | 2 +- src/modules/options/OptionsWidget_avatar.cpp | 142 +- src/modules/options/OptionsWidget_avatar.h | 1 - src/modules/options/OptionsWidget_away.cpp | 26 +- src/modules/options/OptionsWidget_away.h | 11 +- src/modules/options/OptionsWidget_channel.cpp | 153 +- src/modules/options/OptionsWidget_channel.h | 2 + src/modules/options/OptionsWidget_connection.cpp | 271 +- src/modules/options/OptionsWidget_connection.h | 2 +- src/modules/options/OptionsWidget_ctcp.cpp | 43 +- src/modules/options/OptionsWidget_ctcp.h | 1 - .../options/OptionsWidget_ctcpFloodProtection.cpp | 48 +- .../options/OptionsWidget_ctcpFloodProtection.h | 2 +- src/modules/options/OptionsWidget_dcc.cpp | 486 +- src/modules/options/OptionsWidget_general.cpp | 12 +- src/modules/options/OptionsWidget_identity.cpp | 640 +- src/modules/options/OptionsWidget_identity.h | 112 +- src/modules/options/OptionsWidget_ignore.cpp | 19 +- src/modules/options/OptionsWidget_ignore.h | 1 + src/modules/options/OptionsWidget_input.cpp | 120 +- src/modules/options/OptionsWidget_input.h | 6 +- .../options/OptionsWidget_interfaceFeatures.cpp | 37 +- src/modules/options/OptionsWidget_irc.cpp | 41 +- src/modules/options/OptionsWidget_irc.h | 1 - src/modules/options/OptionsWidget_ircOutput.cpp | 73 +- src/modules/options/OptionsWidget_ircOutput.h | 3 +- src/modules/options/OptionsWidget_ircView.cpp | 144 +- src/modules/options/OptionsWidget_ircView.h | 4 +- src/modules/options/OptionsWidget_lag.cpp | 54 +- src/modules/options/OptionsWidget_logging.cpp | 44 +- src/modules/options/OptionsWidget_mediaTypes.cpp | 158 +- src/modules/options/OptionsWidget_mediaTypes.h | 30 +- src/modules/options/OptionsWidget_message.cpp | 405 +- src/modules/options/OptionsWidget_message.h | 53 +- src/modules/options/OptionsWidget_nickserv.cpp | 277 +- src/modules/options/OptionsWidget_nickserv.h | 26 +- src/modules/options/OptionsWidget_notifier.cpp | 176 +- src/modules/options/OptionsWidget_notifier.h | 6 +- src/modules/options/OptionsWidget_notify.cpp | 58 +- src/modules/options/OptionsWidget_protection.cpp | 2 +- src/modules/options/OptionsWidget_proxy.cpp | 146 +- src/modules/options/OptionsWidget_proxy.h | 42 +- src/modules/options/OptionsWidget_query.cpp | 124 +- src/modules/options/OptionsWidget_servers.cpp | 1263 +- src/modules/options/OptionsWidget_servers.h | 195 +- src/modules/options/OptionsWidget_sound.cpp | 118 +- src/modules/options/OptionsWidget_sound.h | 5 +- src/modules/options/OptionsWidget_textEncoding.cpp | 111 +- src/modules/options/OptionsWidget_textEncoding.h | 4 +- src/modules/options/OptionsWidget_textIcons.cpp | 140 +- src/modules/options/OptionsWidget_textIcons.h | 27 +- src/modules/options/OptionsWidget_theme.cpp | 188 +- src/modules/options/OptionsWidget_theme.h | 12 +- src/modules/options/OptionsWidget_tools.cpp | 10 +- src/modules/options/OptionsWidget_topicLabel.cpp | 11 +- src/modules/options/OptionsWidget_topicLabel.h | 1 - src/modules/options/OptionsWidget_tray.cpp | 46 +- src/modules/options/OptionsWidget_tray.h | 1 + src/modules/options/OptionsWidget_uparser.cpp | 47 +- src/modules/options/OptionsWidget_urlHandlers.cpp | 122 +- src/modules/options/OptionsWidget_urlHandlers.h | 1 + src/modules/options/OptionsWidget_userList.cpp | 172 +- src/modules/options/OptionsWidget_userList.h | 11 +- src/modules/options/OptionsWidget_windowList.cpp | 189 +- src/modules/options/OptionsWidget_windowList.h | 7 +- src/modules/options/libkvioptions.cpp | 113 +- src/modules/package/libkvipackage.cpp | 99 +- src/modules/perl/libkviperl.cpp | 113 +- src/modules/perlcore/libkviperlcore.cpp | 202 +- src/modules/perlcore/perlcoreinterface.h | 21 +- src/modules/perlcore/ppport.h | 2734 +- src/modules/popup/libkvipopup.cpp | 402 +- src/modules/popupeditor/PopupEditorWindow.cpp | 826 +- src/modules/popupeditor/PopupEditorWindow.h | 122 +- src/modules/popupeditor/libkvipopupeditor.cpp | 23 +- src/modules/proxydb/libkviproxydb.cpp | 295 +- src/modules/python/libkvipython.cpp | 111 +- src/modules/pythoncore/kvircmodule.cpp | 123 +- src/modules/pythoncore/kvircmodule.h | 77 +- src/modules/pythoncore/libkvipythoncore.cpp | 97 +- src/modules/pythoncore/pythoncoreinterface.h | 21 +- src/modules/raweditor/RawEditorWindow.cpp | 252 +- src/modules/raweditor/RawEditorWindow.h | 73 +- src/modules/raweditor/libkviraweditor.cpp | 23 +- src/modules/regchan/libkviregchan.cpp | 179 +- src/modules/reguser/RegisteredUserEntryDialog.cpp | 380 +- src/modules/reguser/RegisteredUserEntryDialog.h | 70 +- src/modules/reguser/RegisteredUsersDialog.cpp | 617 +- src/modules/reguser/RegisteredUsersDialog.h | 74 +- src/modules/reguser/RegistrationWizard.cpp | 232 +- src/modules/reguser/RegistrationWizard.h | 55 +- src/modules/reguser/libkvireguser.cpp | 332 +- src/modules/rijndael/BlowFish.cpp | 639 +- src/modules/rijndael/BlowFish.h | 38 +- src/modules/rijndael/InitVectorEngine.cpp | 2 +- src/modules/rijndael/InitVectorEngine.h | 2 +- src/modules/rijndael/Rijndael.cpp | 2334 +- src/modules/rijndael/Rijndael.h | 59 +- src/modules/rijndael/UglyBase64.cpp | 57 +- src/modules/rijndael/UglyBase64.h | 2 +- src/modules/rijndael/libkvirijndael.cpp | 1007 +- src/modules/rijndael/libkvirijndael.h | 299 +- src/modules/rot13/libkvirot13.cpp | 116 +- src/modules/rot13/libkvirot13.h | 25 +- src/modules/serverdb/libkviserverdb.cpp | 592 +- src/modules/setup/SetupWizard.cpp | 721 +- src/modules/setup/SetupWizard.h | 97 +- src/modules/setup/libkvisetup.cpp | 50 +- src/modules/sharedfile/libkvisharedfile.cpp | 100 +- .../sharedfileswindow/SharedFilesWindow.cpp | 201 +- src/modules/sharedfileswindow/SharedFilesWindow.h | 36 +- .../sharedfileswindow/libkvisharedfileswindow.cpp | 30 +- src/modules/snd/libkvisnd.cpp | 684 +- src/modules/snd/libkvisnd.h | 156 +- src/modules/socketspy/SocketSpyWindow.cpp | 21 +- src/modules/socketspy/SocketSpyWindow.h | 6 +- src/modules/socketspy/libkvisocketspy.cpp | 27 +- src/modules/spaste/SlowPasteController.cpp | 54 +- src/modules/spaste/SlowPasteController.h | 20 +- src/modules/spaste/libkvispaste.cpp | 128 +- src/modules/spaste/libkvispaste.h | 5 +- src/modules/spellchecker/libkvispellchecker.cpp | 85 +- src/modules/str/libkvistr.cpp | 875 +- src/modules/system/Plugin.cpp | 119 +- src/modules/system/Plugin.h | 55 +- src/modules/system/libkvisystem.cpp | 284 +- src/modules/term/TermWidget.cpp | 234 +- src/modules/term/TermWidget.h | 95 +- src/modules/term/TermWindow.cpp | 78 +- src/modules/term/TermWindow.h | 59 +- src/modules/term/libkviterm.cpp | 42 +- src/modules/texticons/libkvitexticons.cpp | 59 +- src/modules/theme/PackThemeDialog.cpp | 216 +- src/modules/theme/PackThemeDialog.h | 35 +- src/modules/theme/SaveThemeDialog.cpp | 188 +- src/modules/theme/SaveThemeDialog.h | 21 +- src/modules/theme/ThemeFunctions.cpp | 255 +- src/modules/theme/ThemeFunctions.h | 48 +- src/modules/theme/ThemeManagementDialog.cpp | 191 +- src/modules/theme/ThemeManagementDialog.h | 27 +- src/modules/theme/WebThemeInterfaceDialog.cpp | 29 +- src/modules/theme/WebThemeInterfaceDialog.h | 10 +- src/modules/theme/libkvitheme.cpp | 159 +- src/modules/tip/libkvitip.cpp | 149 +- src/modules/tip/libkvitip.h | 20 +- src/modules/tmphighlight/libkvitmphighlight.cpp | 94 +- src/modules/toolbar/libkvitoolbar.cpp | 147 +- .../toolbareditor/CustomizeToolBarsDialog.cpp | 265 +- .../toolbareditor/CustomizeToolBarsDialog.h | 30 +- src/modules/toolbareditor/libkvitoolbareditor.cpp | 38 +- src/modules/torrent/KTorrentDbusInterface.cpp | 283 +- src/modules/torrent/KTorrentDbusInterface.h | 69 +- src/modules/torrent/StatusBarApplet.cpp | 46 +- src/modules/torrent/StatusBarApplet.h | 4 +- src/modules/torrent/TorrentInterface.cpp | 2 +- src/modules/torrent/TorrentInterface.h | 136 +- src/modules/torrent/libkvitorrent.cpp | 349 +- src/modules/trayicon/libkvitrayicon.cpp | 415 +- src/modules/trayicon/libkvitrayicon.h | 9 +- src/modules/upnp/Manager.cpp | 198 +- src/modules/upnp/Manager.h | 117 +- src/modules/upnp/RootService.cpp | 481 +- src/modules/upnp/RootService.h | 94 +- src/modules/upnp/Service.cpp | 476 +- src/modules/upnp/Service.h | 149 +- src/modules/upnp/SsdpConnection.cpp | 186 +- src/modules/upnp/SsdpConnection.h | 28 +- src/modules/upnp/WanConnectionService.cpp | 257 +- src/modules/upnp/WanConnectionService.h | 114 +- src/modules/upnp/XmlFunctions.cpp | 114 +- src/modules/upnp/XmlFunctions.h | 24 +- src/modules/upnp/igdcontrolpoint.cpp | 190 +- src/modules/upnp/igdcontrolpoint.h | 81 +- src/modules/upnp/libkviupnp.cpp | 54 +- src/modules/url/libkviurl.cpp | 419 +- src/modules/url/libkviurl.h | 47 +- src/modules/userlist/libkviuserlist.cpp | 125 +- src/modules/window/UserWindow.cpp | 27 +- src/modules/window/UserWindow.h | 9 +- src/modules/window/libkviwindow.cpp | 451 +- 1047 files changed, 102989 insertions(+), 93325 deletions(-) (limited to 'src') diff --git a/src/kvilib/config/KviBuildInfo.cpp b/src/kvilib/config/KviBuildInfo.cpp index 5e8f3c211..ed1d7b4df 100644 --- a/src/kvilib/config/KviBuildInfo.cpp +++ b/src/kvilib/config/KviBuildInfo.cpp @@ -29,8 +29,7 @@ #include -const char * feature_array[]= -{ +const char * feature_array[] = { "IRC", #ifdef COMPILE_DEBUG_MODE "Debug", @@ -123,20 +122,20 @@ namespace KviBuildInfo QString buildSystemName() { - #ifdef COMPILE_ON_WINDOWS - return QString(); - #else - return QString(KVIRC_BUILD_SYSTEM_NAME); - #endif +#ifdef COMPILE_ON_WINDOWS + return QString(); +#else + return QString(KVIRC_BUILD_SYSTEM_NAME); +#endif } QString buildSystemVersion() { - #ifdef COMPILE_ON_WINDOWS - return QString(); - #else - return QString(KVIRC_BUILD_SYSTEM_VERSION); - #endif +#ifdef COMPILE_ON_WINDOWS + return QString(); +#else + return QString(KVIRC_BUILD_SYSTEM_VERSION); +#endif } QString buildCPU() @@ -152,16 +151,18 @@ namespace KviBuildInfo QString buildCompilerFlags() { QString flags = QString(KVIRC_BUILD_COMPILER_FLAGS); - if(flags.isEmpty()) return "N/A"; - else return flags; + if(flags.isEmpty()) + return "N/A"; + else + return flags; } QString buildRevision() { QString rev; - #ifdef KVIRC_BUILD_REVISION +#ifdef KVIRC_BUILD_REVISION rev = QString(KVIRC_BUILD_REVISION); - #endif +#endif return rev; } @@ -173,7 +174,8 @@ namespace KviBuildInfo QString features() { QStringList tmp; - for(int i=0;feature_array[i];i++)tmp << QString(feature_array[i]); + for(int i = 0; feature_array[i]; i++) + tmp << QString(feature_array[i]); return QString(tmp.join(", ")); } } diff --git a/src/kvilib/config/kvi_debug.h b/src/kvilib/config/kvi_debug.h index caf2b0c35..e17114b0e 100644 --- a/src/kvilib/config/kvi_debug.h +++ b/src/kvilib/config/kvi_debug.h @@ -39,109 +39,133 @@ #ifdef __GNUC__ - #define kvi_debug(fmt,arg...) qDebug(fmt,##arg) - #define kvi_warning(fmt,arg...) qWarning(fmt,##arg) - #define kvi_fatal(fmt,arg...) do { qFatal(fmt,##arg); abort(); } while(0) - #define KVI_PRETTY_FUNCTION __PRETTY_FUNCTION__ +#define kvi_debug(fmt, arg...) qDebug(fmt, ##arg) +#define kvi_warning(fmt, arg...) qWarning(fmt, ##arg) +#define kvi_fatal(fmt, arg...) \ + do \ + { \ + qFatal(fmt, ##arg); \ + abort(); \ + } while(0) +#define KVI_PRETTY_FUNCTION __PRETTY_FUNCTION__ #else //!__GNUC__ - // assume MSVC +// assume MSVC - #define kvi_debug(fmt,...) qDebug(fmt,__VA_ARGS__) - #define kvi_warning(fmt,...) qWarning(fmt,__VA_ARGS__) - #define kvi_fatal(fmt,...) do { qFatal(fmt,__VA_ARGS__); abort(); } while(0) - #define KVI_PRETTY_FUNCTION __FUNCTION__ +#define kvi_debug(fmt, ...) qDebug(fmt, __VA_ARGS__) +#define kvi_warning(fmt, ...) qWarning(fmt, __VA_ARGS__) +#define kvi_fatal(fmt, ...) \ + do \ + { \ + qFatal(fmt, __VA_ARGS__); \ + abort(); \ + } while(0) +#define KVI_PRETTY_FUNCTION __FUNCTION__ #endif //!__GNUC__ #ifdef COMPILE_DEBUG_MODE - #define KVI_ASSERT(__condition__) \ - do { \ - if(!(__condition__)) \ - qFatal("[ASSERT FAILED] (" # __condition__ ") in %s at %s:%u",KVI_PRETTY_FUNCTION,__FILE__,__LINE__); \ - } while(0) - - #define KVI_ASSERT_MSG(__condition__,__message__) \ - do { \ - if(!(__condition__)) \ - { \ - qFatal("[ASSERT FAILED] (" # __condition__ ") in %s at %s:%u",KVI_PRETTY_FUNCTION,__FILE__,__LINE__); \ - qFatal("[ASSERT FAILED] " __message__); \ - } \ - } while(0) - - #include "KviDebugContext.h" - - // The following two macros are used to create unique variable names - // by the means of the __LINE__ builtin macro. - // The ## token paste operator must be called inside a macro and must - // precede a macro parameter. This is why we can't use directly - // - // #define UNIQUEVARIABLE int name ## __LINE__ - // - // We need something like - // - // #define PASTE(x,y) x ## y - // #define UNIQUEVARIABLE int PASTE(x,__LINE__) - // - // But this doesn't work since the specification of the token pasting operator is - // - // "If a formal parameter in a macro definition is preceded or followed by the token-pasting operator, - // the formal parameter is immediately replaced by the __unexpanded__ actual argument. Macro expansion - // is __not performed__ on the argument prior to replacement." - // - // So to actually have __LINE__ expanded we need another level of indirection - // - // #define PASTE(x,y) x ## y - // #define EXPAND_Y_AND_THEN_PASTE(x,y) PASTE(x,y) - // #define UNIQUEVARIABLE int EXPAND_Y_AND_THEN_PASTE(x,__LINE__) - - #define KVI_TRACE_HACK_TOKENPASTE_2(x,y) x ## y - #define KVI_TRACE_HACK_TOKENPASTE_1(x,y) KVI_TRACE_HACK_TOKENPASTE_2(x,y) - - #ifdef __GNUC__ - #define KVI_TRACE_FUNCTION \ - KviDebugContext KVI_TRACE_HACK_TOKENPASTE_1(ctx,__LINE__)(__PRETTY_FUNCTION__) - - #define KVI_TRACE_BLOCK(_szBlockDescription) \ - KviDebugContext KVI_TRACE_HACK_TOKENPASTE_1(ctx,__LINE__)("%s - %s",__PRETTY_FUNCTION__,_szBlockDescription) - - #define KVI_TRACE(_szFmt,arg...) KviDebugContext::trace(_szFmt,##arg) - - #else - #define KVI_TRACE_FUNCTION \ - KviDebugContext KVI_TRACE_HACK_TOKENPASTE_1(ctx,__LINE__)(__FUNCTION__) - - #define KVI_TRACE_BLOCK(_szBlockDescription) \ - KviDebugContext KVI_TRACE_HACK_TOKENPASTE_1(ctx,__LINE__)("%s - %s",__FUNCTION__,_szBlockDescription) - - #define KVI_TRACE(_szFmt,...) KviDebugContext::trace(_szFmt,__VA_ARGS__) - - #endif +#define KVI_ASSERT(__condition__) \ + do \ + { \ + if(!(__condition__)) \ + qFatal("[ASSERT FAILED] (" #__condition__ ") in %s at %s:%u", KVI_PRETTY_FUNCTION, __FILE__, __LINE__); \ + } while(0) + +#define KVI_ASSERT_MSG(__condition__, __message__) \ + do \ + { \ + if(!(__condition__)) \ + { \ + qFatal("[ASSERT FAILED] (" #__condition__ ") in %s at %s:%u", KVI_PRETTY_FUNCTION, __FILE__, __LINE__); \ + qFatal("[ASSERT FAILED] " __message__); \ + } \ + } while(0) + +#include "KviDebugContext.h" + +// The following two macros are used to create unique variable names +// by the means of the __LINE__ builtin macro. +// The ## token paste operator must be called inside a macro and must +// precede a macro parameter. This is why we can't use directly +// +// #define UNIQUEVARIABLE int name ## __LINE__ +// +// We need something like +// +// #define PASTE(x,y) x ## y +// #define UNIQUEVARIABLE int PASTE(x,__LINE__) +// +// But this doesn't work since the specification of the token pasting operator is +// +// "If a formal parameter in a macro definition is preceded or followed by the token-pasting operator, +// the formal parameter is immediately replaced by the __unexpanded__ actual argument. Macro expansion +// is __not performed__ on the argument prior to replacement." +// +// So to actually have __LINE__ expanded we need another level of indirection +// +// #define PASTE(x,y) x ## y +// #define EXPAND_Y_AND_THEN_PASTE(x,y) PASTE(x,y) +// #define UNIQUEVARIABLE int EXPAND_Y_AND_THEN_PASTE(x,__LINE__) -#else //!COMPILE_DEBUG_MODE +#define KVI_TRACE_HACK_TOKENPASTE_2(x, y) x##y +#define KVI_TRACE_HACK_TOKENPASTE_1(x, y) KVI_TRACE_HACK_TOKENPASTE_2(x, y) - #define KVI_ASSERT(__condition__) do { } while(0) - #define KVI_ASSERT_MSG(__condition__,__message__) do { } while(0) +#ifdef __GNUC__ +#define KVI_TRACE_FUNCTION \ + KviDebugContext KVI_TRACE_HACK_TOKENPASTE_1(ctx, __LINE__)(__PRETTY_FUNCTION__) - #define KVI_TRACE_FUNCTION \ - do { } while(0) +#define KVI_TRACE_BLOCK(_szBlockDescription) \ + KviDebugContext KVI_TRACE_HACK_TOKENPASTE_1(ctx, __LINE__)("%s - %s", __PRETTY_FUNCTION__, _szBlockDescription) - #define KVI_TRACE_BLOCK(_szBlockDescription) \ - do { } while(0) +#define KVI_TRACE(_szFmt, arg...) KviDebugContext::trace(_szFmt, ##arg) - #ifdef __GNUC__ - #define KVI_TRACE(_szFmt,arg...) do { } while(0) - #else - #define KVI_TRACE(_szFmt,...) do { } while(0) - #endif +#else +#define KVI_TRACE_FUNCTION \ + KviDebugContext KVI_TRACE_HACK_TOKENPASTE_1(ctx, __LINE__)(__FUNCTION__) -#endif //!COMPILE_DEBUG_MODE +#define KVI_TRACE_BLOCK(_szBlockDescription) \ + KviDebugContext KVI_TRACE_HACK_TOKENPASTE_1(ctx, __LINE__)("%s - %s", __FUNCTION__, _szBlockDescription) +#define KVI_TRACE(_szFmt, ...) KviDebugContext::trace(_szFmt, __VA_ARGS__) +#endif + +#else //!COMPILE_DEBUG_MODE +#define KVI_ASSERT(__condition__) \ + do \ + { \ + } while(0) +#define KVI_ASSERT_MSG(__condition__, __message__) \ + do \ + { \ + } while(0) + +#define KVI_TRACE_FUNCTION \ + do \ + { \ + } while(0) + +#define KVI_TRACE_BLOCK(_szBlockDescription) \ + do \ + { \ + } while(0) +#ifdef __GNUC__ +#define KVI_TRACE(_szFmt, arg...) \ + do \ + { \ + } while(0) +#else +#define KVI_TRACE(_szFmt, ...) \ + do \ + { \ + } while(0) +#endif + +#endif //!COMPILE_DEBUG_MODE #endif //_KVI_DEBUG_H_ diff --git a/src/kvilib/config/kvi_defaults.h b/src/kvilib/config/kvi_defaults.h index 853683142..48c53d094 100644 --- a/src/kvilib/config/kvi_defaults.h +++ b/src/kvilib/config/kvi_defaults.h @@ -57,9 +57,9 @@ #include "kvi_settings.h" #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - #define KVI_HOME_CONFIG_FILE_NAME "kvirc4.ini" +#define KVI_HOME_CONFIG_FILE_NAME "kvirc4.ini" #else - #define KVI_HOME_CONFIG_FILE_NAME ".kvirc4.rc" +#define KVI_HOME_CONFIG_FILE_NAME ".kvirc4.rc" #endif #define KVI_FORCE_LOCALE_FILE_NAME ".kvirc_force_locale" diff --git a/src/kvilib/config/kvi_fileextensions.h b/src/kvilib/config/kvi_fileextensions.h index 67b9933fa..22d00a0b1 100644 --- a/src/kvilib/config/kvi_fileextensions.h +++ b/src/kvilib/config/kvi_fileextensions.h @@ -57,21 +57,21 @@ */ #ifdef COMPILE_KDE_SUPPORT - #define KVI_FILTER_CONFIG "*.kvc|KVIrc Config (*.kvc)" - #define KVI_FILTER_SCRIPT "*.kvs|KVIrc Script (*.kvs)" - #define KVI_FILTER_THEME "*.kvt|KVIrc Theme (*.kvt)" - #define KVI_FILTER_ADDON "*.kva|KVIrc Addon (*.kva)" - #define KVI_FILTER_INI "*.ini|INI File (*.ini)" - #define KVI_FILTER_IMAGE "*.png *.jpg *.jpeg *.bmp *.gif *.xpm|Image File (*.png *.jpg *.jpeg *.bmp *.gif *.xpm)" - //#define KVI_FILTER_UI "*.ui|User Interface File (*.ui)" +#define KVI_FILTER_CONFIG "*.kvc|KVIrc Config (*.kvc)" +#define KVI_FILTER_SCRIPT "*.kvs|KVIrc Script (*.kvs)" +#define KVI_FILTER_THEME "*.kvt|KVIrc Theme (*.kvt)" +#define KVI_FILTER_ADDON "*.kva|KVIrc Addon (*.kva)" +#define KVI_FILTER_INI "*.ini|INI File (*.ini)" +#define KVI_FILTER_IMAGE "*.png *.jpg *.jpeg *.bmp *.gif *.xpm|Image File (*.png *.jpg *.jpeg *.bmp *.gif *.xpm)" +//#define KVI_FILTER_UI "*.ui|User Interface File (*.ui)" #else - #define KVI_FILTER_CONFIG "KVIrc Config (*.kvc)" - #define KVI_FILTER_SCRIPT "KVIrc Script (*.kvs)" - #define KVI_FILTER_THEME "KVIrc Theme (*.kvt)" - #define KVI_FILTER_ADDON "KVIrc Addon (*.kva)" - #define KVI_FILTER_INI "INI File (*.ini)" - #define KVI_FILTER_IMAGE "Image File (*.png *.jpg *.jpeg *.bmp *.gif *.xpm)" - //#define KVI_FILTER_UI "User Interface File (*.ui)" +#define KVI_FILTER_CONFIG "KVIrc Config (*.kvc)" +#define KVI_FILTER_SCRIPT "KVIrc Script (*.kvs)" +#define KVI_FILTER_THEME "KVIrc Theme (*.kvt)" +#define KVI_FILTER_ADDON "KVIrc Addon (*.kva)" +#define KVI_FILTER_INI "INI File (*.ini)" +#define KVI_FILTER_IMAGE "Image File (*.png *.jpg *.jpeg *.bmp *.gif *.xpm)" +//#define KVI_FILTER_UI "User Interface File (*.ui)" #endif //COMPILE_KDE_SUPPORT #endif //_KVI_FILEEXTENSIONS_H_ diff --git a/src/kvilib/config/kvi_settings.h b/src/kvilib/config/kvi_settings.h index aa0f7516a..49f775e87 100644 --- a/src/kvilib/config/kvi_settings.h +++ b/src/kvilib/config/kvi_settings.h @@ -51,95 +51,94 @@ // note: MINGW is a cmake-set variable #ifdef MINGW - /** +/** * \def COMPILE_ON_MINGW This flag will enable specific code for windows/mingw (cross)compilation */ - #define COMPILE_ON_MINGW - - #ifdef __KVILIB__ - #define KVILIB_API __declspec(dllexport) __attribute__((visibility("default"))) - #define KVILIB_API_TYPEDEF __declspec(dllexport) - #else - #define KVILIB_API __declspec(dllimport) __attribute__((visibility("default"))) - #define KVILIB_API_TYPEDEF __declspec(dllimport) - #endif - - #ifdef __KVIRC__ - #define KVIRC_API __declspec(dllexport) __attribute__((visibility("default"))) - #define KVIRC_API_TYPEDEF __declspec(dllexport) - #else - #define KVIRC_API __declspec(dllimport) __attribute__((visibility("default"))) - #define KVIRC_API_TYPEDEF __declspec(dllimport) - #endif +#define COMPILE_ON_MINGW + +#ifdef __KVILIB__ +#define KVILIB_API __declspec(dllexport) __attribute__((visibility("default"))) +#define KVILIB_API_TYPEDEF __declspec(dllexport) +#else +#define KVILIB_API __declspec(dllimport) __attribute__((visibility("default"))) +#define KVILIB_API_TYPEDEF __declspec(dllimport) +#endif + +#ifdef __KVIRC__ +#define KVIRC_API __declspec(dllexport) __attribute__((visibility("default"))) +#define KVIRC_API_TYPEDEF __declspec(dllexport) +#else +#define KVIRC_API __declspec(dllimport) __attribute__((visibility("default"))) +#define KVIRC_API_TYPEDEF __declspec(dllimport) +#endif // note: unofficial cmake ports defines OS2 #elif defined(OS2) - // os2 ports still uses mingw/gcc - #define COMPILE_ON_MINGW - - // visibility attribute is not supported by gcc/os2 - #ifdef __KVILIB__ - #define KVILIB_API __declspec(dllexport) - #define KVILIB_API_TYPEDEF __declspec(dllexport) - #else - #define KVILIB_API __declspec(dllimport) - #define KVILIB_API_TYPEDEF __declspec(dllimport) - #endif - - #ifdef __KVIRC__ - #define KVIRC_API __declspec(dllexport) - #define KVIRC_API_TYPEDEF __declspec(dllexport) - #else - #define KVIRC_API __declspec(dllimport) - #define KVIRC_API_TYPEDEF __declspec(dllimport) - #endif +// os2 ports still uses mingw/gcc +#define COMPILE_ON_MINGW + +// visibility attribute is not supported by gcc/os2 +#ifdef __KVILIB__ +#define KVILIB_API __declspec(dllexport) +#define KVILIB_API_TYPEDEF __declspec(dllexport) +#else +#define KVILIB_API __declspec(dllimport) +#define KVILIB_API_TYPEDEF __declspec(dllimport) +#endif + +#ifdef __KVIRC__ +#define KVIRC_API __declspec(dllexport) +#define KVIRC_API_TYPEDEF __declspec(dllexport) +#else +#define KVIRC_API __declspec(dllimport) +#define KVIRC_API_TYPEDEF __declspec(dllimport) +#endif // note: cmake defines "WIN32" but we're not using it since it includes cygwin, too // we use qt's Q_OS_WIN32 instead (and its variants) -#elif (defined(_OS_WIN32_) || defined(Q_OS_WIN32) || defined(Q_OS_WIN32_)) +#elif(defined(_OS_WIN32_) || defined(Q_OS_WIN32) || defined(Q_OS_WIN32_)) - /** +/** * \def COMPILE_ON_WINDOWS This flag will enable specific code for windows/visual studio compilation */ - #define COMPILE_ON_WINDOWS - - #ifdef __KVILIB__ - #define KVILIB_API __declspec(dllexport) - #define KVILIB_API_TYPEDEF __declspec(dllexport) - #else - #define KVILIB_API __declspec(dllimport) - #define KVILIB_API_TYPEDEF __declspec(dllimport) - #endif - - #ifdef __KVIRC__ - #define KVIRC_API __declspec(dllexport) - #define KVIRC_API_TYPEDEF __declspec(dllexport) - #else - #define KVIRC_API __declspec(dllimport) - #define KVIRC_API_TYPEDEF __declspec(dllimport) - #endif +#define COMPILE_ON_WINDOWS + +#ifdef __KVILIB__ +#define KVILIB_API __declspec(dllexport) +#define KVILIB_API_TYPEDEF __declspec(dllexport) +#else +#define KVILIB_API __declspec(dllimport) +#define KVILIB_API_TYPEDEF __declspec(dllimport) +#endif + +#ifdef __KVIRC__ +#define KVIRC_API __declspec(dllexport) +#define KVIRC_API_TYPEDEF __declspec(dllexport) +#else +#define KVIRC_API __declspec(dllimport) +#define KVIRC_API_TYPEDEF __declspec(dllimport) +#endif #else - // we failback on unix/linux variants - #define KVILIB_API __attribute__((visibility("default"))) - #define KVILIB_API_TYPEDEF +// we failback on unix/linux variants +#define KVILIB_API __attribute__((visibility("default"))) +#define KVILIB_API_TYPEDEF - #define KVIRC_API __attribute__((visibility("default"))) - #define KVIRC_API_TYPEDEF +#define KVIRC_API __attribute__((visibility("default"))) +#define KVIRC_API_TYPEDEF - // note: cmake defines "APPLE" but we're not using it since it includes legacy mac os version (pre-X) - // we use qt's Q_OS_MACX instead - #ifdef Q_OS_MACX - /** +// note: cmake defines "APPLE" but we're not using it since it includes legacy mac os version (pre-X) +// we use qt's Q_OS_MACX instead +#ifdef Q_OS_MACX +/** * \def COMPILE_ON_MAC This flag will enable specific code for mac compilation */ - #define COMPILE_ON_MAC - #endif - +#define COMPILE_ON_MAC #endif +#endif /** * \def KVI_VERSION Defines the current KVIrc version @@ -154,45 +153,45 @@ #define KVI_VERSION KVIRC_VERSION_RELEASE #ifndef KVIRC_VERSION_BRANCH - #define KVI_VERSION_BRANCH "VS_BRANCH" +#define KVI_VERSION_BRANCH "VS_BRANCH" #else - #define KVI_VERSION_BRANCH KVIRC_VERSION_BRANCH +#define KVI_VERSION_BRANCH KVIRC_VERSION_BRANCH #endif #define KVI_RELEASE_NAME KVIRC_VERSION_CODENAME // We want _GNU_SOURCE features #ifndef _GNU_SOURCE - #define _GNU_SOURCE +#define _GNU_SOURCE #endif #if defined(__GNUC__) - // gcc - #if __GNUC__ >= 3 - #define KVI_PTR2MEMBER(__x) &__x - #else - #define KVI_PTR2MEMBER(__x) &(__x) - #endif +// gcc +#if __GNUC__ >= 3 +#define KVI_PTR2MEMBER(__x) &__x +#else +#define KVI_PTR2MEMBER(__x) &(__x) +#endif #elif defined(COMPILE_ON_WINDOWS) - // Visual C++ - #define KVI_PTR2MEMBER(__x) &__x +// Visual C++ +#define KVI_PTR2MEMBER(__x) &__x #elif defined(__SUNPRO_CC) - // Sun Forte - #define KVI_PTR2MEMBER(__x) (__x) +// Sun Forte +#define KVI_PTR2MEMBER(__x) (__x) #else - // default - #define KVI_PTR2MEMBER(__x) &(__x) +// default +#define KVI_PTR2MEMBER(__x) &(__x) #endif #define KVI_DEPRECATED // Trust Qt about the current target processor endianness #if Q_BYTE_ORDER == Q_BIG_ENDIAN - #define BIG_ENDIAN_MACHINE_BYTE_ORDER +#define BIG_ENDIAN_MACHINE_BYTE_ORDER #else - #ifdef BIG_ENDIAN_MACHINE_BYTE_ORDER - #undef BIG_ENDIAN_MACHINE_BYTE_ORDER - #endif +#ifdef BIG_ENDIAN_MACHINE_BYTE_ORDER +#undef BIG_ENDIAN_MACHINE_BYTE_ORDER +#endif #endif #endif //_KVI_SETTINGS_H_ diff --git a/src/kvilib/config/kvi_shortcuts.h b/src/kvilib/config/kvi_shortcuts.h index a3a89fb1e..766e6beb1 100644 --- a/src/kvilib/config/kvi_shortcuts.h +++ b/src/kvilib/config/kvi_shortcuts.h @@ -1,5 +1,5 @@ #ifndef _KVI_SHORTCUT_CLASSFILE_H_ - #error "Do not include kvi_shortcuts.h config file directly: include KviShortcut.h class header instead." +#error "Do not include kvi_shortcuts.h config file directly: include KviShortcut.h class header instead." #endif #ifndef _KVI_SHORTCUTS_H_ #define _KVI_SHORTCUTS_H_ @@ -128,32 +128,32 @@ */ // Please keep this list ordered by shortcut key and not by name :) -#define KVI_SHORTCUTS_HELP QKeySequence::HelpContents // F1 -#define KVI_SHORTCUTS_INPUT_SELECT_ALL QKeySequence::SelectAll // Ctrl+A -#define KVI_SHORTCUTS_INPUT_BOLD QKeySequence::Bold // Ctrl+B -#define KVI_SHORTCUTS_INPUT_COPY QKeySequence::Copy // Ctrl+C -#define KVI_SHORTCUTS_WIN_SEARCH QKeySequence::Find // Ctrl+F -#define KVI_SHORTCUTS_INPUT_ICON QKeySequence::Italic // Ctrl+I <= yes we know this should be "italic" +#define KVI_SHORTCUTS_HELP QKeySequence::HelpContents // F1 +#define KVI_SHORTCUTS_INPUT_SELECT_ALL QKeySequence::SelectAll // Ctrl+A +#define KVI_SHORTCUTS_INPUT_BOLD QKeySequence::Bold // Ctrl+B +#define KVI_SHORTCUTS_INPUT_COPY QKeySequence::Copy // Ctrl+C +#define KVI_SHORTCUTS_WIN_SEARCH QKeySequence::Find // Ctrl+F +#define KVI_SHORTCUTS_INPUT_ICON QKeySequence::Italic // Ctrl+I <= yes we know this should be "italic" #define KVI_SHORTCUTS_JOIN "Ctrl+J" #define KVI_SHORTCUTS_INPUT_COLOR "Ctrl+K" #define KVI_SHORTCUTS_WIN_SCROLL_TO_LAST_READ_LINE "Ctrl+L" #define KVI_SHORTCUTS_TOGGLE_MENU_BAR "Ctrl+M" -#define KVI_SHORTCUTS_CONTEXT QKeySequence::New // Ctrl+N +#define KVI_SHORTCUTS_CONTEXT QKeySequence::New // Ctrl+N #define KVI_SHORTCUTS_INPUT_RESET "Ctrl+O" #define KVI_SHORTCUTS_INPUT_PLAINTEXT "Ctrl+P" #ifdef COMPILE_ON_MAC -# define KVI_SHORTCUTS_QUIT QString() +#define KVI_SHORTCUTS_QUIT QString() #else -# define KVI_SHORTCUTS_QUIT "Ctrl+Q" +#define KVI_SHORTCUTS_QUIT "Ctrl+Q" #endif #define KVI_SHORTCUTS_INPUT_REVERSE "Ctrl+R" #define KVI_SHORTCUTS_SERVERS "Ctrl+S" -#define KVI_SHORTCUTS_INPUT_UNDERLINE QKeySequence::Underline // Ctrl+U -#define KVI_SHORTCUTS_INPUT_PASTE QKeySequence::Paste // Ctrl+V -#define KVI_SHORTCUTS_WIN_CLOSE "Ctrl+W" // QKeySequence::Close seems to be problematic -#define KVI_SHORTCUTS_INPUT_CUT QKeySequence::Cut // Ctrl+X +#define KVI_SHORTCUTS_INPUT_UNDERLINE QKeySequence::Underline // Ctrl+U +#define KVI_SHORTCUTS_INPUT_PASTE QKeySequence::Paste // Ctrl+V +#define KVI_SHORTCUTS_WIN_CLOSE "Ctrl+W" // QKeySequence::Close seems to be problematic +#define KVI_SHORTCUTS_INPUT_CUT QKeySequence::Cut // Ctrl+X #define KVI_SHORTCUTS_INPUT_COMMANDLINE "Ctrl+Y" -#define KVI_SHORTCUTS_INPUT_UNDO QKeySequence::Undo // Ctrl+Z +#define KVI_SHORTCUTS_INPUT_UNDO QKeySequence::Undo // Ctrl+Z #define KVI_SHORTCUTS_AWAY "Ctrl+Shift+A" #define KVI_SHORTCUTS_EDITORS_TOOLBAR "Ctrl+Shift+B" #define KVI_SHORTCUTS_CONNECT "Ctrl+Shift+C" @@ -171,52 +171,52 @@ #define KVI_SHORTCUTS_THEME "Ctrl+Shift+T" #define KVI_SHORTCUTS_USERS "Ctrl+Shift+U" #define KVI_SHORTCUTS_EXEC "Ctrl+Shift+X" -#define KVI_SHORTCUTS_INPUT_REDO QKeySequence::Redo // Ctrl+Shift+Z +#define KVI_SHORTCUTS_INPUT_REDO QKeySequence::Redo // Ctrl+Shift+Z #define KVI_SHORTCUTS_WIN_PREV Qt::AltModifier + Qt::Key_Up #define KVI_SHORTCUTS_WIN_NEXT Qt::AltModifier + Qt::Key_Down -#define KVI_SHORTCUTS_WIN_NEXT_TAB Qt::ControlModifier + Qt::Key_Tab // Ctrl+Tab +#define KVI_SHORTCUTS_WIN_NEXT_TAB Qt::ControlModifier + Qt::Key_Tab // Ctrl+Tab #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) -# define KVI_SHORTCUTS_WIN_PREV_TAB Qt::ControlModifier + Qt::ShiftModifier + Qt::Key_Tab // Ctrl+Shift+Tab +#define KVI_SHORTCUTS_WIN_PREV_TAB Qt::ControlModifier + Qt::ShiftModifier + Qt::Key_Tab // Ctrl+Shift+Tab #else -# define KVI_SHORTCUTS_WIN_PREV_TAB Qt::ControlModifier + Qt::Key_Backtab // Ctrl+Shift+Tab +#define KVI_SHORTCUTS_WIN_PREV_TAB Qt::ControlModifier + Qt::Key_Backtab // Ctrl+Shift+Tab #endif #define KVI_SHORTCUTS_WIN_PREV_CONTEXT Qt::AltModifier + Qt::ShiftModifier + Qt::Key_Up #define KVI_SHORTCUTS_WIN_NEXT_CONTEXT Qt::AltModifier + Qt::ShiftModifier + Qt::Key_Down #define KVI_SHORTCUTS_WIN_PREV_HIGHLIGHT Qt::AltModifier + Qt::Key_PageUp #define KVI_SHORTCUTS_WIN_NEXT_HIGHLIGHT Qt::AltModifier + Qt::Key_PageDown -#define KVI_SHORTCUTS_WIN_PREV_PAGE QKeySequence::MoveToPreviousPage // Qt::Key_PageUp -#define KVI_SHORTCUTS_WIN_NEXT_PAGE QKeySequence::MoveToNextPage // Qt::Key_PageDown +#define KVI_SHORTCUTS_WIN_PREV_PAGE QKeySequence::MoveToPreviousPage // Qt::Key_PageUp +#define KVI_SHORTCUTS_WIN_NEXT_PAGE QKeySequence::MoveToNextPage // Qt::Key_PageDown #define KVI_SHORTCUTS_WIN_PREV_LINE Qt::ShiftModifier + Qt::Key_PageUp #define KVI_SHORTCUTS_WIN_NEXT_LINE Qt::ShiftModifier + Qt::Key_PageDown -#define KVI_SHORTCUTS_INPUT_PREV_WORD QKeySequence::MoveToPreviousWord // Qt::ControlModifier + Qt::Key_Left -#define KVI_SHORTCUTS_INPUT_NEXT_WORD QKeySequence::MoveToNextWord // Qt::ControlModifier + Qt::Key_Right -#define KVI_SHORTCUTS_INPUT_PREV_WORD_SELECT QKeySequence::SelectPreviousWord // Qt::ControlModifier + Qt::ShiftModifier + Qt::Key_Left -#define KVI_SHORTCUTS_INPUT_NEXT_WORD_SELECT QKeySequence::SelectNextWord // Qt::ControlModifier + Qt::ShiftModifier + Qt::Key_Right +#define KVI_SHORTCUTS_INPUT_PREV_WORD QKeySequence::MoveToPreviousWord // Qt::ControlModifier + Qt::Key_Left +#define KVI_SHORTCUTS_INPUT_NEXT_WORD QKeySequence::MoveToNextWord // Qt::ControlModifier + Qt::Key_Right +#define KVI_SHORTCUTS_INPUT_PREV_WORD_SELECT QKeySequence::SelectPreviousWord // Qt::ControlModifier + Qt::ShiftModifier + Qt::Key_Left +#define KVI_SHORTCUTS_INPUT_NEXT_WORD_SELECT QKeySequence::SelectNextWord // Qt::ControlModifier + Qt::ShiftModifier + Qt::Key_Right //Ctrl+: Script accelerators (see OnAccelKeyPressed) //F2-F12, Shift+(F1-F12): Script accelerators (see OnAccelKeyPressed) #define KVI_SHORTCUTS_INPUT_HISTORY Qt::ControlModifier + Qt::Key_PageUp -#define KVI_SHORTCUTS_INPUT_PREV_CHAR QKeySequence::MoveToPreviousChar // Qt::Key_Left -#define KVI_SHORTCUTS_INPUT_NEXT_CHAR QKeySequence::MoveToNextChar // Qt::Key_Right -#define KVI_SHORTCUTS_INPUT_PREV_CHAR_SELECT QKeySequence::SelectPreviousChar // Qt::ShiftModifier + Qt::Key_Left -#define KVI_SHORTCUTS_INPUT_NEXT_CHAR_SELECT QKeySequence::SelectNextChar // Qt::ShiftModifier + Qt::Key_Right -#define KVI_SHORTCUTS_INPUT_DELETE_PREV_WORD QKeySequence::DeleteStartOfWord // Qt::ControlModifier + Qt::Key_Backspace -#define KVI_SHORTCUTS_INPUT_DELETE_NEXT_WORD QKeySequence::DeleteEndOfWord // Qt::ControlModifier + Qt::Key_Delete +#define KVI_SHORTCUTS_INPUT_PREV_CHAR QKeySequence::MoveToPreviousChar // Qt::Key_Left +#define KVI_SHORTCUTS_INPUT_NEXT_CHAR QKeySequence::MoveToNextChar // Qt::Key_Right +#define KVI_SHORTCUTS_INPUT_PREV_CHAR_SELECT QKeySequence::SelectPreviousChar // Qt::ShiftModifier + Qt::Key_Left +#define KVI_SHORTCUTS_INPUT_NEXT_CHAR_SELECT QKeySequence::SelectNextChar // Qt::ShiftModifier + Qt::Key_Right +#define KVI_SHORTCUTS_INPUT_DELETE_PREV_WORD QKeySequence::DeleteStartOfWord // Qt::ControlModifier + Qt::Key_Backspace +#define KVI_SHORTCUTS_INPUT_DELETE_NEXT_WORD QKeySequence::DeleteEndOfWord // Qt::ControlModifier + Qt::Key_Delete #define KVI_SHORTCUTS_INPUT_MULTILINE Qt::AltModifier + Qt::Key_Return #define KVI_SHORTCUTS_INPUT_MULTILINE_2 Qt::AltModifier + Qt::Key_Enter #define KVI_SHORTCUTS_INPUT_SEND_PLAIN Qt::ControlModifier + Qt::Key_Return #define KVI_SHORTCUTS_INPUT_SEND_PLAIN_2 Qt::ControlModifier + Qt::Key_Enter #define KVI_SHORTCUTS_INPUT_SEND_KVS Qt::ShiftModifier + Qt::Key_Return #define KVI_SHORTCUTS_INPUT_SEND_KVS_2 Qt::ShiftModifier + Qt::Key_Enter -#define KVI_SHORTCUTS_INPUT_HOME QKeySequence::MoveToStartOfLine // Qt::Key_Home -#define KVI_SHORTCUTS_INPUT_END QKeySequence::MoveToEndOfLine // Qt::Key_End -#define KVI_SHORTCUTS_INPUT_HOME_SELECT QKeySequence::SelectStartOfLine // Qt::ShiftModifier + Qt::Key_Home -#define KVI_SHORTCUTS_INPUT_END_SELECT QKeySequence::SelectEndOfLine // Qt::ShiftModifier + Qt::Key_End -#define KVI_SHORTCUTS_INPUT_HISTORY_PREV QKeySequence::MoveToPreviousLine // Qt::Key_Up -#define KVI_SHORTCUTS_INPUT_HISTORY_NEXT QKeySequence::MoveToNextLine // Qt::Key_Down +#define KVI_SHORTCUTS_INPUT_HOME QKeySequence::MoveToStartOfLine // Qt::Key_Home +#define KVI_SHORTCUTS_INPUT_END QKeySequence::MoveToEndOfLine // Qt::Key_End +#define KVI_SHORTCUTS_INPUT_HOME_SELECT QKeySequence::SelectStartOfLine // Qt::ShiftModifier + Qt::Key_Home +#define KVI_SHORTCUTS_INPUT_END_SELECT QKeySequence::SelectEndOfLine // Qt::ShiftModifier + Qt::Key_End +#define KVI_SHORTCUTS_INPUT_HISTORY_PREV QKeySequence::MoveToPreviousLine // Qt::Key_Up +#define KVI_SHORTCUTS_INPUT_HISTORY_NEXT QKeySequence::MoveToNextLine // Qt::Key_Down #define KVI_SHORTCUTS_INPUT_ESCAPE Qt::Key_Escape #define KVI_SHORTCUTS_INPUT_DUMMY Qt::ShiftModifier + Qt::Key_Escape -#define KVI_SHORTCUTS_WIN_ZOOM_IN QKeySequence::ZoomIn // Ctrl++ -#define KVI_SHORTCUTS_WIN_ZOOM_OUT QKeySequence::ZoomOut // Ctrl+- +#define KVI_SHORTCUTS_WIN_ZOOM_IN QKeySequence::ZoomIn // Ctrl++ +#define KVI_SHORTCUTS_WIN_ZOOM_OUT QKeySequence::ZoomOut // Ctrl+- #define KVI_SHORTCUTS_WIN_ZOOM_DEFAULT Qt::ControlModifier + Qt::Key_0 #define KVI_SHORTCUTS_INPUT_CORRECT_SPELLING Qt::ControlModifier + Qt::Key_G #define KVI_SHORTCUTS_INPUT_MENU Qt::Key_Menu diff --git a/src/kvilib/config/kvi_sourcesdate.h b/src/kvilib/config/kvi_sourcesdate.h index 5454da939..8d2c0b589 100644 --- a/src/kvilib/config/kvi_sourcesdate.h +++ b/src/kvilib/config/kvi_sourcesdate.h @@ -38,11 +38,11 @@ * \def KVI_SOURCES_DATE_NUMERIC Defines the sources date */ #ifdef KVIRC_SOURCES_DATE_GIT -# define KVI_SOURCES_DATE KVIRC_SOURCES_DATE_GIT -# define KVI_SOURCES_DATE_NUMERIC KVIRC_SOURCES_DATE_GIT_HEX +#define KVI_SOURCES_DATE KVIRC_SOURCES_DATE_GIT +#define KVI_SOURCES_DATE_NUMERIC KVIRC_SOURCES_DATE_GIT_HEX #else -# define KVI_SOURCES_DATE "20160102" -# define KVI_SOURCES_DATE_NUMERIC 0x20160102 +#define KVI_SOURCES_DATE "20160102" +#define KVI_SOURCES_DATE_NUMERIC 0x20160102 #endif /** diff --git a/src/kvilib/core/KviCString.cpp b/src/kvilib/core/KviCString.cpp index e6c1208e3..d68b023ae 100644 --- a/src/kvilib/core/KviCString.cpp +++ b/src/kvilib/core/KviCString.cpp @@ -29,13 +29,13 @@ #include "KviCString.h" #include "KviMemory.h" -static char hexdigits[16] = { '0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f' }; - +static char hexdigits[16] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; kvi_wslen_t kvi_wstrlen(const kvi_wchar_t * str) { const kvi_wchar_t * ptr = str; - while(*ptr)ptr++; + while(*ptr) + ptr++; return (ptr - str); } @@ -188,19 +188,21 @@ int kvi_wvsnprintf(kvi_wchar_t *buffer,kvi_wslen_t len,const kvi_wchar_t *fmt,kv } */ -bool kvi_qstringEqualCI(const QString &s1,const QString &s2) +bool kvi_qstringEqualCI(const QString & s1, const QString & s2) { const QChar * p1 = s1.unicode(); const QChar * p2 = s2.unicode(); int l = s1.length() < s2.length() ? s1.length() : s2.length(); - while(l-- && (p1->toLower() == p2->toLower()))p1++,p2++; + while(l-- && (p1->toLower() == p2->toLower())) + p1++, p2++; - if(l==-1)return true; + if(l == -1) + return true; return false; } -bool kvi_matchStringCI(const char * exp,const char * str) +bool kvi_matchStringCI(const char * exp, const char * str) { // a // . @@ -218,18 +220,21 @@ bool kvi_matchStringCI(const char * exp,const char * str) // exp is a wildcard... afterWild = ++exp; nextStrToCheck = str + 1; - if(!(*exp))return true; // and it's the last char in the string: matches everything ahead + if(!(*exp)) + return true; // and it's the last char in the string: matches everything ahead continue; } - if(!(*str))return false; // str finished but we had something to match :( + if(!(*str)) + return false; // str finished but we had something to match :( if(tolower(*exp) == tolower(*str)) { // chars matched ++exp; ++str; - if((!(*exp)) && *str)goto check_recovery; + if((!(*exp)) && *str) + goto check_recovery; continue; } @@ -241,7 +246,7 @@ bool kvi_matchStringCI(const char * exp,const char * str) continue; } -check_recovery: + check_recovery: // chars unmatched!!! if(afterWild) { @@ -259,8 +264,7 @@ check_recovery: return (!(*str)); } - -bool kvi_matchStringCS(const char * exp,const char * str) +bool kvi_matchStringCS(const char * exp, const char * str) { // a // . @@ -278,18 +282,21 @@ bool kvi_matchStringCS(const char * exp,const char * str) // exp is a wildcard... afterWild = ++exp; nextStrToCheck = str + 1; - if(!(*exp))return true; // and it's the last char in the string: matches everything ahead + if(!(*exp)) + return true; // and it's the last char in the string: matches everything ahead continue; } - if(!(*str))return false; // str finished but we had something to match :( + if(!(*str)) + return false; // str finished but we had something to match :( if(*exp == *str) { // chars matched ++exp; ++str; - if((!(*exp)) && *str)goto check_recovery; + if((!(*exp)) && *str) + goto check_recovery; continue; } @@ -301,7 +308,7 @@ bool kvi_matchStringCS(const char * exp,const char * str) continue; } -check_recovery: + check_recovery: // chars unmatched!!! if(afterWild) { @@ -319,9 +326,7 @@ check_recovery: return (!(*str)); } - - -bool kvi_matchStringWithTerminator(const char * exp,const char * str,char terminator,const char ** r1,const char ** r2) +bool kvi_matchStringWithTerminator(const char * exp, const char * str, char terminator, const char ** r1, const char ** r2) { #define NOT_AT_END(__str) (*__str && (*__str != terminator)) @@ -343,7 +348,8 @@ bool kvi_matchStringWithTerminator(const char * exp,const char * str,char termin nextStrToCheck = str + 1; if(!(NOT_AT_END(exp))) { - while(NOT_AT_END(str))str++; + while(NOT_AT_END(str)) + str++; *r1 = exp; *r2 = str; return true; // and it's the last char in the string: matches everything ahead @@ -351,14 +357,16 @@ bool kvi_matchStringWithTerminator(const char * exp,const char * str,char termin continue; } - if(!(*str))return false; // str finished but we had something to match :( + if(!(*str)) + return false; // str finished but we had something to match :( if(tolower(*exp) == tolower(*str)) { // chars matched ++exp; ++str; - if((!(NOT_AT_END(exp))) && NOT_AT_END(str))goto check_recovery; + if((!(NOT_AT_END(exp))) && NOT_AT_END(str)) + goto check_recovery; continue; } @@ -370,7 +378,7 @@ bool kvi_matchStringWithTerminator(const char * exp,const char * str,char termin continue; } -check_recovery: + check_recovery: // chars unmatched!!! if(afterWild) { @@ -392,7 +400,7 @@ check_recovery: #undef NOT_AT_END } -bool kvi_matchWildExpr(const char *m1,const char *m2) +bool kvi_matchWildExpr(const char * m1, const char * m2) { //Matches two regular expressions containging wildcards (* and ?) @@ -414,46 +422,51 @@ bool kvi_matchWildExpr(const char *m1,const char *m2) // s1 // - if(!(m1 && m2 && (*m1)))return false; + if(!(m1 && m2 && (*m1))) + return false; const char * savePos1 = 0; const char * savePos2 = m2; while(*m1) { //loop managed by m1 (initially first mask) - if(*m1=='*') + if(*m1 == '*') { //Found a wildcard in m1 - savePos1 = ++m1; //move to the next char and save the position...this is our jolly - if(!*savePos1)return true; //last was a wildcard, matches everything ahead... - savePos2 = m2+1; //next return state for the second string - continue; //and return + savePos1 = ++m1; //move to the next char and save the position...this is our jolly + if(!*savePos1) + return true; //last was a wildcard, matches everything ahead... + savePos2 = m2 + 1; //next return state for the second string + continue; //and return } - if(!(*m2))return false; //m2 finished and we had something to match here! - if(tolower(*m1)==tolower(*m2)) + if(!(*m2)) + return false; //m2 finished and we had something to match here! + if(tolower(*m1) == tolower(*m2)) { //chars matched - m1++; //Go ahead in the two strings - m2++; // + m1++; //Go ahead in the two strings + m2++; // if((!(*m1)) && *m2 && savePos1) { //m1 finished, but m2 not yet and we have a savePosition for m1 (there was a wildcard)... //retry matching the string following the * from the savePos2 (one char ahead last time) - m1 = savePos1; //back to char after wildcard - m2 = savePos2; //back to last savePos2 - savePos2++; //next savePos2 will be next char + m1 = savePos1; //back to char after wildcard + m2 = savePos2; //back to last savePos2 + savePos2++; //next savePos2 will be next char } - } else { + } + else + { if(*m2 == '*') { //A wlidcard in the second string //Invert the game : mask1 <-> mask2 //mask2 now leads the game... - savePos1 = m1; //aux - m1 = m2; //...swap - m2 = savePos1; //...swap - savePos1 = m1; //sync save pos1 - savePos2 = m2 + 1; //sync save pos2 - continue; //...and again + savePos1 = m1; //aux + m1 = m2; //...swap + m2 = savePos1; //...swap + savePos1 = m1; //sync save pos1 + savePos2 = m2 + 1; //sync save pos2 + continue; //...and again } // m1 != m2, m1 != *, m2 != * if((*m1 == '?') || (*m2 == '?')) @@ -464,23 +477,26 @@ bool kvi_matchWildExpr(const char *m1,const char *m2) { //m1 finished, but m2 not yet and we have a savePosition for m1 (there was a wildcard)... //retry matching the string following the * from the savePos2 (one char ahead last time) - m1 = savePos1; //back to char after wildcard - m2 = savePos2; //back to last savePos2 - savePos2++; //next savePos2 will be next char + m1 = savePos1; //back to char after wildcard + m2 = savePos2; //back to last savePos2 + savePos2++; //next savePos2 will be next char } - } else { + } + else + { if(savePos1) { //Have a jolly man...allow not matching... - m1 = savePos1; //go back to char after wildcard...need to rematch... - m2 = savePos2; //back to last savePos2 - savePos2++; //and set next savePos2 - } else return false; //No previous wildcards...not matched! + m1 = savePos1; //go back to char after wildcard...need to rematch... + m2 = savePos2; //back to last savePos2 + savePos2++; //and set next savePos2 + } + else + return false; //No previous wildcards...not matched! } } } - return (!(*m2)); //m1 surely finished, so for the match, m2 must be finished too - + return (!(*m2)); //m1 surely finished, so for the match, m2 must be finished too } /* @@ -537,62 +553,67 @@ bool kvi_matchWildExprCS(const char *m1,const char *m2) } */ -bool kvi_matchWildExprWithTerminator(const char *m1,const char *m2,char terminator, - const char ** r1,const char ** r2) +bool kvi_matchWildExprWithTerminator(const char * m1, const char * m2, char terminator, + const char ** r1, const char ** r2) { - //Matches two regular expressions containging wildcards +//Matches two regular expressions containging wildcards #define NOT_AT_END(__str) (*__str && (*__str != terminator)) bool bSwapped = false; - if(!(m1 && m2 && (NOT_AT_END(m1))))return false; + if(!(m1 && m2 && (NOT_AT_END(m1)))) + return false; const char * savePos1 = 0; const char * savePos2 = m2; while(NOT_AT_END(m1)) { //loop managed by m1 (initially first mask) - if(*m1=='*') + if(*m1 == '*') { //Found a wildcard in m1 - savePos1 = ++m1; //move to the next char and save the position...this is our jolly + savePos1 = ++m1; //move to the next char and save the position...this is our jolly if(!NOT_AT_END(savePos1)) { //last was a wildcard, matches everything ahead... - while(NOT_AT_END(m2))m2++; + while(NOT_AT_END(m2)) + m2++; *r1 = bSwapped ? m2 : m1; *r2 = bSwapped ? m1 : m2; return true; } - savePos2 = m2+1; //next return state for the second string - continue; //and return + savePos2 = m2 + 1; //next return state for the second string + continue; //and return } - if(!NOT_AT_END(m2))return false; //m2 finished and we had something to match here! - if(tolower(*m1)==tolower(*m2)) + if(!NOT_AT_END(m2)) + return false; //m2 finished and we had something to match here! + if(tolower(*m1) == tolower(*m2)) { //chars matched - m1++; //Go ahead in the two strings - m2++; // + m1++; //Go ahead in the two strings + m2++; // if((!NOT_AT_END(m1)) && NOT_AT_END(m2) && savePos1) { //m1 finished, but m2 not yet and we have a savePosition for m1 (there was a wildcard)... //retry matching the string following the * from the savePos2 (one char ahead last time) - m1 = savePos1; //back to char after wildcard - m2 = savePos2; //back to last savePos2 - savePos2++; //next savePos2 will be next char + m1 = savePos1; //back to char after wildcard + m2 = savePos2; //back to last savePos2 + savePos2++; //next savePos2 will be next char } - } else { + } + else + { if(*m2 == '*') { //A wlidcard in the second string //Invert the game : mask1 <-> mask2 //mask2 now leads the game... bSwapped = !bSwapped; - savePos1 = m1; //aux - m1 = m2; //...swap - m2 = savePos1; //...swap - savePos1 = m1; //sync save pos1 - savePos2 = m2 + 1; //sync save pos2 - continue; //...and again + savePos1 = m1; //aux + m1 = m2; //...swap + m2 = savePos1; //...swap + savePos1 = m1; //sync save pos1 + savePos2 = m2 + 1; //sync save pos2 + continue; //...and again } // m1 != m2, m1 != *, m2 != * if((*m1 == '?') || (*m2 == '?')) @@ -603,77 +624,83 @@ bool kvi_matchWildExprWithTerminator(const char *m1,const char *m2,char terminat { //m1 finished, but m2 not yet and we have a savePosition for m1 (there was a wildcard)... //retry matching the string following the * from the savePos2 (one char ahead last time) - m1 = savePos1; //back to char after wildcard - m2 = savePos2; //back to last savePos2 - savePos2++; //next savePos2 will be next char + m1 = savePos1; //back to char after wildcard + m2 = savePos2; //back to last savePos2 + savePos2++; //next savePos2 will be next char } - } else { + } + else + { if(savePos1) { //Have a jolly man...allow not matching... - m1 = savePos1; //go back to char after wildcard...need to rematch... - m2 = savePos2; //back to last savePos2 - savePos2++; //and set next savePos2 - } else return false; //No previous wildcards...not matched! + m1 = savePos1; //go back to char after wildcard...need to rematch... + m2 = savePos2; //back to last savePos2 + savePos2++; //and set next savePos2 + } + else + return false; //No previous wildcards...not matched! } } } *r1 = bSwapped ? m2 : m1; *r2 = bSwapped ? m1 : m2; - return (!NOT_AT_END(m2)); //m1 surely finished, so for the match, m2 must be finished too + return (!NOT_AT_END(m2)); //m1 surely finished, so for the match, m2 must be finished too #undef NOT_AT_END } - - -const char * kvi_extractToken(KviCString &str,const char *aux_ptr,char sep) +const char * kvi_extractToken(KviCString & str, const char * aux_ptr, char sep) { KVI_ASSERT(aux_ptr); - while(*aux_ptr && (*aux_ptr == sep))aux_ptr++; - const char *p=aux_ptr; - while(*p && (*p != sep))p++; - str.m_len=p-aux_ptr; - str.m_ptr = (char *)KviMemory::reallocate(str.m_ptr,str.m_len+1); - KviMemory::copy(str.m_ptr,aux_ptr,str.m_len); - *(str.m_ptr+str.m_len)='\0'; - while(*p && (*p == sep))p++; + while(*aux_ptr && (*aux_ptr == sep)) + aux_ptr++; + const char * p = aux_ptr; + while(*p && (*p != sep)) + p++; + str.m_len = p - aux_ptr; + str.m_ptr = (char *)KviMemory::reallocate(str.m_ptr, str.m_len + 1); + KviMemory::copy(str.m_ptr, aux_ptr, str.m_len); + *(str.m_ptr + str.m_len) = '\0'; + while(*p && (*p == sep)) + p++; return p; } -const char * kvi_extractUpTo(KviCString &str,const char *aux_ptr,char sep) +const char * kvi_extractUpTo(KviCString & str, const char * aux_ptr, char sep) { KVI_ASSERT(aux_ptr); - const char *p=aux_ptr; - while(*p && (*p != sep))p++; - str.m_len=p-aux_ptr; - str.m_ptr = (char *)KviMemory::reallocate(str.m_ptr,str.m_len+1); - KviMemory::copy(str.m_ptr,aux_ptr,str.m_len); - *(str.m_ptr+str.m_len)='\0'; + const char * p = aux_ptr; + while(*p && (*p != sep)) + p++; + str.m_len = p - aux_ptr; + str.m_ptr = (char *)KviMemory::reallocate(str.m_ptr, str.m_len + 1); + KviMemory::copy(str.m_ptr, aux_ptr, str.m_len); + *(str.m_ptr + str.m_len) = '\0'; return p; } -int kvi_vsnprintf(char *buffer,int len,const char *fmt,kvi_va_list list) +int kvi_vsnprintf(char * buffer, int len, const char * fmt, kvi_va_list list) { KVI_ASSERT(fmt); KVI_ASSERT(buffer); KVI_ASSERT(len > 0); //printing 0 characters is senseless - char *p; - char *argString; + char * p; + char * argString; long argValue; unsigned long argUValue; //9999999999999999999999999999999\0 char numberBuffer[32]; //enough ? 10 is enough for 32bit unsigned int... - char *pNumBuf; + char * pNumBuf; unsigned int tmp; - - for(p=buffer ; *fmt ; ++fmt) + for(p = buffer; *fmt; ++fmt) { - if(len < 1)return (-1); //not enough space ... (in fact this could be len < 2 for the terminator) + if(len < 1) + return (-1); //not enough space ... (in fact this could be len < 2 for the terminator) //copy up to a '%' if(*fmt != '%') { @@ -686,61 +713,82 @@ int kvi_vsnprintf(char *buffer,int len,const char *fmt,kvi_va_list list) switch(*fmt) { case 's': //string - argString = kvi_va_arg(list,char *); - if(!argString)continue; + argString = kvi_va_arg(list, char *); + if(!argString) + continue; argValue = (long)strlen(argString); //check for space... - if(len <= argValue)return (-1); //not enough space for buffer and terminator - while(*argString)*p++ = *argString++; + if(len <= argValue) + return (-1); //not enough space for buffer and terminator + while(*argString) + *p++ = *argString++; len -= argValue; continue; case 'd': //signed integer - argValue = kvi_va_arg(list,int); - if(argValue < 0){ //negative integer + argValue = kvi_va_arg(list, int); + if(argValue < 0) + { //negative integer *p++ = '-'; - if(--len == 0)return (-1); + if(--len == 0) + return (-1); argValue = -argValue; //need to have it positive // most negative integer exception (avoid completely senseless (non digit) responses) - if(argValue < 0)argValue = 0; //we get -0 here + if(argValue < 0) + argValue = 0; //we get -0 here } //write the number in a temporary buffer pNumBuf = numberBuffer; - do { + do + { tmp = argValue / 10; *pNumBuf++ = argValue - (tmp * 10) + '0'; } while((argValue = tmp)); //copy now.... argUValue = pNumBuf - numberBuffer; //length of the number string - if(((uint)len) <= argUValue)return (-1); //not enough space for number and terminator - do { *p++ = *--pNumBuf; } while(pNumBuf != numberBuffer); + if(((uint)len) <= argUValue) + return (-1); //not enough space for number and terminator + do + { + *p++ = *--pNumBuf; + } while(pNumBuf != numberBuffer); len -= argUValue; continue; - case 'u': //unsigned integer - argUValue = kvi_va_arg(list,unsigned int); //many implementations place int here + case 'u': //unsigned integer + argUValue = kvi_va_arg(list, unsigned int); //many implementations place int here //write the number in a temporary buffer pNumBuf = numberBuffer; - do { + do + { tmp = argUValue / 10; *pNumBuf++ = argUValue - (tmp * 10) + '0'; } while((argUValue = tmp)); //copy now.... argValue = pNumBuf - numberBuffer; //length of the number string - if(len <= argValue)return (-1); //not enough space for number and terminator - do { *p++ = *--pNumBuf; } while(pNumBuf != numberBuffer); + if(len <= argValue) + return (-1); //not enough space for number and terminator + do + { + *p++ = *--pNumBuf; + } while(pNumBuf != numberBuffer); len -= argValue; continue; - case 'x': // hexadecimal unsigned integer - argUValue = kvi_va_arg(list,unsigned int); //many implementations place int here + case 'x': // hexadecimal unsigned integer + argUValue = kvi_va_arg(list, unsigned int); //many implementations place int here //write the number in a temporary buffer pNumBuf = numberBuffer; - do { + do + { tmp = argUValue / 16; *pNumBuf++ = hexdigits[argUValue % 16]; } while((argUValue = tmp)); //copy now.... argValue = pNumBuf - numberBuffer; //length of the number string - if(len <= argValue)return (-1); //not enough space for number and terminator - do { *p++ = *--pNumBuf; } while(pNumBuf != numberBuffer); + if(len <= argValue) + return (-1); //not enough space for number and terminator + do + { + *p++ = *--pNumBuf; + } while(pNumBuf != numberBuffer); len -= argValue; continue; case 'c': //char @@ -752,130 +800,158 @@ int kvi_vsnprintf(char *buffer,int len,const char *fmt,kvi_va_list list) // as sizeof(int) bytes value. // Is this always true ? // - *p++ = (char)kvi_va_arg(list,int); + *p++ = (char)kvi_va_arg(list, int); --len; continue; case 'Q': // QString! (this should almost never happen) { - QString * s = kvi_va_arg(list,QString *); + QString * s = kvi_va_arg(list, QString *); QByteArray cs = (*s).toUtf8(); const char * t = cs.data(); - if(!t)continue; // nothing to do + if(!t) + continue; // nothing to do //check for space... - if(len <= (int)cs.length())return (-1); //not enough space for buffer and terminator - while(*t)*p++ = *t++; + if(len <= (int)cs.length()) + return (-1); //not enough space for buffer and terminator + while(*t) + *p++ = *t++; len -= cs.length(); continue; } - default: //a normal percent - *p++ = '%'; //write it - if(--len == 0)return (-1); //not enough space for next char or terminator - if(*fmt){ //this if is just in case that we have a % at the end of the string. + default: //a normal percent + *p++ = '%'; //write it + if(--len == 0) + return (-1); //not enough space for next char or terminator + if(*fmt) + { //this if is just in case that we have a % at the end of the string. *p++ = *fmt; //and write this char --len; } continue; } } - if(len < 1)return (-1); //missing space for terminator + if(len < 1) + return (-1); //missing space for terminator *p = '\0'; - return p-buffer; + return p - buffer; } // // Nearly the same as the above function... // -int kvi_irc_vsnprintf(char *buffer,const char *fmt,kvi_va_list list,bool *bTruncated) +int kvi_irc_vsnprintf(char * buffer, const char * fmt, kvi_va_list list, bool * bTruncated) { KVI_ASSERT(fmt); KVI_ASSERT(buffer); - if( !( buffer && fmt) ) return false; - char *p; - char *argString; + if(!(buffer && fmt)) + return false; + char * p; + char * argString; long argValue; unsigned long argUValue; char numberBuffer[64]; //enough ? 10 is enough for 32bit unsigned int... - char *pNumBuf; + char * pNumBuf; unsigned int tmp; *bTruncated = false; int len = 512; - for (p=buffer ; *fmt ; ++fmt) { - if(len < 3)goto truncate; + for(p = buffer; *fmt; ++fmt) + { + if(len < 3) + goto truncate; //copy up to a '%' - if (*fmt != '%') { + if(*fmt != '%') + { *p++ = *fmt; --len; continue; } ++fmt; //skip this '%' - switch(*fmt){ + switch(*fmt) + { case 's': //string - argString = kvi_va_arg(list,char *); - if(!argString)continue; + argString = kvi_va_arg(list, char *); + if(!argString) + continue; //check for space... - while(*argString){ + while(*argString) + { *p++ = *argString++; - if(--len < 3)goto truncate; + if(--len < 3) + goto truncate; } continue; case 'Q': // QString! (this should almost never happen) { - QString * s = kvi_va_arg(list,QString *); + QString * s = kvi_va_arg(list, QString *); QByteArray cs = (*s).toUtf8(); const char * t = cs.data(); - if(!t)continue; // nothing to do + if(!t) + continue; // nothing to do while(*t) { *p++ = *t++; - if(--len < 3)goto truncate; + if(--len < 3) + goto truncate; } continue; } case 'd': //signed integer - argValue = kvi_va_arg(list,int); - if(argValue < 0){ //negative integer + argValue = kvi_va_arg(list, int); + if(argValue < 0) + { //negative integer *p++ = '-'; - if(--len < 3)goto truncate; //place just for CRLF + if(--len < 3) + goto truncate; //place just for CRLF argValue = -argValue; //need to have it positive - if(argValue < 0)argValue = 0; // -0 (hack the exception) + if(argValue < 0) + argValue = 0; // -0 (hack the exception) } //write the number in a temporary buffer pNumBuf = numberBuffer; - do { + do + { tmp = argValue / 10; *pNumBuf++ = argValue - (tmp * 10) + '0'; } while((argValue = tmp)); //copy now.... - do { + do + { *p++ = *--pNumBuf; - if(--len < 3)goto truncate; + if(--len < 3) + goto truncate; } while(pNumBuf != numberBuffer); continue; - case 'u': //unsigned integer - argUValue = kvi_va_arg(list,unsigned int); //many implementations place int here + case 'u': //unsigned integer + argUValue = kvi_va_arg(list, unsigned int); //many implementations place int here //write the number in a temporary buffer pNumBuf = numberBuffer; - do { + do + { tmp = argUValue / 10; *pNumBuf++ = argUValue - (tmp * 10) + '0'; } while((argUValue = tmp)); //copy now.... - if(--len < 3)goto truncate; //no place for digits - do { + if(--len < 3) + goto truncate; //no place for digits + do + { *p++ = *--pNumBuf; - if(--len < 3)goto truncate; + if(--len < 3) + goto truncate; } while(pNumBuf != numberBuffer); continue; case 'c': //char - *p++ = (char)kvi_va_arg(list,int); + *p++ = (char)kvi_va_arg(list, int); --len; continue; - default: //a normal percent - *p++ = '%'; //write it - if(--len < 3)goto truncate; //not enough space for next char - if(*fmt){ //this if is just in case that we have a % at the end of the string. + default: //a normal percent + *p++ = '%'; //write it + if(--len < 3) + goto truncate; //not enough space for next char + if(*fmt) + { //this if is just in case that we have a % at the end of the string. *p++ = *fmt; //and write this char --len; } @@ -885,63 +961,75 @@ int kvi_irc_vsnprintf(char *buffer,const char *fmt,kvi_va_list list,bool *bTrunc //succesfull finish KVI_ASSERT(len >= 2); *p++ = '\r'; - *p = '\n'; - return ((p-buffer)+1); + *p = '\n'; + return ((p - buffer) + 1); truncate: KVI_ASSERT(len >= 2); *bTruncated = true; *p++ = '\r'; - *p = '\n'; - return ((p-buffer)+1); + *p = '\n'; + return ((p - buffer) + 1); } #ifndef COMPILE_ix86_ASM -bool kvi_strEqualCS(const char *str1,const char *str2) +bool kvi_strEqualCS(const char * str1, const char * str2) { KVI_ASSERT(str1); KVI_ASSERT(str2); - if( !( str1 && str2 ) ) return false; - unsigned char *s1 = (unsigned char *)str1; - unsigned char *s2 = (unsigned char *)str2; - while(*s1)if(*s1++ != *s2++)return false; + if(!(str1 && str2)) + return false; + unsigned char * s1 = (unsigned char *)str1; + unsigned char * s2 = (unsigned char *)str2; + while(*s1) + if(*s1++ != *s2++) + return false; return (*s1 == *s2); } -bool kvi_strEqualCSN(const char *str1,const char *str2,int len) +bool kvi_strEqualCSN(const char * str1, const char * str2, int len) { KVI_ASSERT(str1); KVI_ASSERT(str2); KVI_ASSERT(len >= 0); - if( !( str1 && str2 && (len >= 0) ) ) return false; - unsigned char *s1 = (unsigned char *)str1; - unsigned char *s2 = (unsigned char *)str2; - while(len-- && *s1)if(*s1++ != *s2++)return false; + if(!(str1 && str2 && (len >= 0))) + return false; + unsigned char * s1 = (unsigned char *)str1; + unsigned char * s2 = (unsigned char *)str2; + while(len-- && *s1) + if(*s1++ != *s2++) + return false; return (len < 0); } #endif -bool kvi_strEqualCIN(const char *str1,const char *str2,int len) +bool kvi_strEqualCIN(const char * str1, const char * str2, int len) { KVI_ASSERT(str1); KVI_ASSERT(str2); KVI_ASSERT(len >= 0); - if( !( str1 && str2 && (len >= 0) ) ) return false; - unsigned char *s1 = (unsigned char *)str1; - unsigned char *s2 = (unsigned char *)str2; - while(len-- && *s1)if(tolower(*s1++) != tolower(*s2++))return false; + if(!(str1 && str2 && (len >= 0))) + return false; + unsigned char * s1 = (unsigned char *)str1; + unsigned char * s2 = (unsigned char *)str2; + while(len-- && *s1) + if(tolower(*s1++) != tolower(*s2++)) + return false; return (len < 0); } -bool kvi_strEqualCI(const char *str1,const char *str2) +bool kvi_strEqualCI(const char * str1, const char * str2) { KVI_ASSERT(str1); KVI_ASSERT(str2); - if( !( str1 && str2) ) return false; - unsigned char *s1 = (unsigned char *)str1; - unsigned char *s2 = (unsigned char *)str2; - while(*s1)if(tolower(*s1++) != tolower(*s2++))return false; + if(!(str1 && str2)) + return false; + unsigned char * s1 = (unsigned char *)str1; + unsigned char * s2 = (unsigned char *)str2; + while(*s1) + if(tolower(*s1++) != tolower(*s2++)) + return false; return (*s1 == *s2); } @@ -949,18 +1037,21 @@ bool kvi_strEqualCI(const char *str1,const char *str2) // return < 0 ---> str1 < str2 // return = 0 ---> str1 = str2 // return > 0 ---> str1 > str2 -int kvi_strcmpCI(const char *str1,const char *str2) +int kvi_strcmpCI(const char * str1, const char * str2) { //abcd abce KVI_ASSERT(str1); KVI_ASSERT(str2); - if( !( str1 && str2) ) return false; - unsigned char *s1 = (unsigned char *)str1; - unsigned char *s2 = (unsigned char *)str2; + if(!(str1 && str2)) + return false; + unsigned char * s1 = (unsigned char *)str1; + unsigned char * s2 = (unsigned char *)str2; int diff; unsigned char rightchar; - while(!(diff=(rightchar=tolower(*s1++)) - tolower(*s2++)))if(!rightchar)break; - return diff; //diff is nonzero or end of both was reached (it is positive if *s2 > *s1 + while(!(diff = (rightchar = tolower(*s1++)) - tolower(*s2++))) + if(!rightchar) + break; + return diff; //diff is nonzero or end of both was reached (it is positive if *s2 > *s1 } // @@ -985,42 +1076,52 @@ int kvi_strcmpCI(const char *str1,const char *str2) // return diff; //diff is nonzero or end of both was reached (it is positive if *s2 > *s1 //} -int kvi_strcmpCS(const char *str1,const char *str2) +int kvi_strcmpCS(const char * str1, const char * str2) { //abcd abce KVI_ASSERT(str1); KVI_ASSERT(str2); - if( !( str1 && str2) ) return false; - unsigned char *s1 = (unsigned char *)str1; - unsigned char *s2 = (unsigned char *)str2; + if(!(str1 && str2)) + return false; + unsigned char * s1 = (unsigned char *)str1; + unsigned char * s2 = (unsigned char *)str2; int diff; - while(!(diff=(*s1)-(*s2++)))if(!*s1++)break; - return diff; //diff is nonzero or end of both was reached (it is positive if *s2 > *s1 + while(!(diff = (*s1) - (*s2++))) + if(!*s1++) + break; + return diff; //diff is nonzero or end of both was reached (it is positive if *s2 > *s1 } -int kvi_strMatchRevCS(const char *str1, const char *str2, int index) +int kvi_strMatchRevCS(const char * str1, const char * str2, int index) { KVI_ASSERT(str1); KVI_ASSERT(str2); - if( !( str1 && str2) ) return false; - char *s1=(char *)str1; - char *s2=(char *)str2; + if(!(str1 && str2)) + return false; + char * s1 = (char *)str1; + char * s2 = (char *)str2; - int curlen=(int)strlen(str1); + int curlen = (int)strlen(str1); int diff; - if (index<0 || index >= curlen) index = curlen-1; + if(index < 0 || index >= curlen) + index = curlen - 1; - s1+=index; - while (*s2) s2++; + s1 += index; + while(*s2) + s2++; s2--; // now start comparing - while (1){ + while(1) + { /* in this case, we have str1 = "lo" and str2 = "hello" */ - if (s1= 0); m_len = len; - m_ptr = (char *)KviMemory::allocate(m_len+1); - KviMemory::copy(m_ptr,str,m_len); - *(m_ptr+m_len) = '\0'; + m_ptr = (char *)KviMemory::allocate(m_len + 1); + KviMemory::copy(m_ptr, str, m_len); + *(m_ptr + m_len) = '\0'; } -KviCString::KviCString(const char *bg,const char *end) +KviCString::KviCString(const char * bg, const char * end) { KVI_ASSERT(bg); KVI_ASSERT(end); KVI_ASSERT(bg <= end); - m_len = end-bg; - m_ptr = (char *)KviMemory::allocate(m_len +1); - KviMemory::copy(m_ptr,bg,m_len); - *(m_ptr + m_len)='\0'; + m_len = end - bg; + m_ptr = (char *)KviMemory::allocate(m_len + 1); + KviMemory::copy(m_ptr, bg, m_len); + *(m_ptr + m_len) = '\0'; } -KviCString::KviCString(KviFormatConstructorTag,const char *fmt,...) +KviCString::KviCString(KviFormatConstructorTag, const char * fmt, ...) { - m_ptr=(char *)KviMemory::allocate(256); + m_ptr = (char *)KviMemory::allocate(256); //First try kvi_va_list list; - kvi_va_start(list,fmt); + kvi_va_start(list, fmt); //print...with max 256 chars - m_len=kvi_vsnprintf(m_ptr,256,fmt,list); + m_len = kvi_vsnprintf(m_ptr, 256, fmt, list); kvi_va_end(list); //check if we failed - if(m_len < 0){ + if(m_len < 0) + { //yes, failed.... - int dummy=256; - do{ //we failed, so retry with 256 more chars - dummy+=256; + int dummy = 256; + do + { //we failed, so retry with 256 more chars + dummy += 256; //realloc - m_ptr=(char *)KviMemory::reallocate(m_ptr,dummy); + m_ptr = (char *)KviMemory::reallocate(m_ptr, dummy); //print... - kvi_va_start(list,fmt); - m_len=kvi_vsnprintf(m_ptr,dummy,fmt,list); + kvi_va_start(list, fmt); + m_len = kvi_vsnprintf(m_ptr, dummy, fmt, list); kvi_va_end(list); } while(m_len < 0); } //done... //now m_len is the length of the written string not including the terminator... //perfect! :) - m_ptr=(char *)KviMemory::reallocate(m_ptr,m_len+1); + m_ptr = (char *)KviMemory::reallocate(m_ptr, m_len + 1); } -KviCString::KviCString(const KviCString &str) +KviCString::KviCString(const KviCString & str) { KVI_ASSERT(str.m_ptr); m_len = str.m_len; - m_ptr = (char *)KviMemory::allocate(m_len+1); - KviMemory::copy(m_ptr,str.m_ptr,m_len+1); + m_ptr = (char *)KviMemory::allocate(m_len + 1); + KviMemory::copy(m_ptr, str.m_ptr, m_len + 1); } -KviCString::KviCString(const QString &str) +KviCString::KviCString(const QString & str) { QByteArray sz = str.toUtf8(); if(sz.length() > 0) { m_len = sz.length(); - m_ptr = (char *)KviMemory::allocate(m_len+1); - KviMemory::copy(m_ptr,sz.data(),m_len+1); - } else { + m_ptr = (char *)KviMemory::allocate(m_len + 1); + KviMemory::copy(m_ptr, sz.data(), m_len + 1); + } + else + { m_ptr = (char *)KviMemory::allocate(1); *m_ptr = '\0'; m_len = 0; } } -KviCString::KviCString(char c,int fillLen) +KviCString::KviCString(char c, int fillLen) { KVI_ASSERT(fillLen >= 0); m_len = fillLen; - m_ptr = (char *)KviMemory::allocate(m_len+1); - char *p=m_ptr; - while(fillLen--)*p++=c; - *p='\0'; + m_ptr = (char *)KviMemory::allocate(m_len + 1); + char * p = m_ptr; + while(fillLen--) + *p++ = c; + *p = '\0'; } - KviCString::KviCString(const kvi_wchar_t * unicode) { if(!unicode) @@ -1158,16 +1267,19 @@ KviCString::KviCString(const kvi_wchar_t * unicode) m_len = 0; m_ptr = (char *)KviMemory::allocate(1); *m_ptr = 0; - } else { + } + else + { m_len = kvi_wstrlen(unicode); m_ptr = (char *)KviMemory::allocate(m_len + 1); char * p = m_ptr; - while(*unicode)*p++ = *unicode++; + while(*unicode) + *p++ = *unicode++; *p = 0; } } -KviCString::KviCString(const kvi_wchar_t * unicode,int len) +KviCString::KviCString(const kvi_wchar_t * unicode, int len) { m_len = len; m_ptr = (char *)KviMemory::allocate(m_len + 1); @@ -1180,42 +1292,44 @@ KviCString::KviCString(const kvi_wchar_t * unicode,int len) *p = 0; } - - - KviCString::~KviCString() { KviMemory::free(m_ptr); } -KviCString & KviCString::operator=(const KviCString &str) +KviCString & KviCString::operator=(const KviCString & str) { KVI_ASSERT(str.m_ptr); KVI_ASSERT(str.m_ptr != m_ptr); m_len = str.m_len; - m_ptr = (char *)KviMemory::reallocate(m_ptr,m_len+1); - KviMemory::copy(m_ptr,str.m_ptr,m_len+1); + m_ptr = (char *)KviMemory::reallocate(m_ptr, m_len + 1); + KviMemory::copy(m_ptr, str.m_ptr, m_len + 1); return (*this); } -KviCString & KviCString::operator=(const QByteArray &str) +KviCString & KviCString::operator=(const QByteArray & str) { m_len = str.length(); - m_ptr = (char *)KviMemory::reallocate(m_ptr,m_len+1); - if(str.data())KviMemory::copy(m_ptr,str.data(),m_len+1); - else *m_ptr = 0; + m_ptr = (char *)KviMemory::reallocate(m_ptr, m_len + 1); + if(str.data()) + KviMemory::copy(m_ptr, str.data(), m_len + 1); + else + *m_ptr = 0; return (*this); } -KviCString & KviCString::operator=(const char *str) +KviCString & KviCString::operator=(const char * str) { //KVI_ASSERT(str); - if(str){ + if(str) + { m_len = (int)strlen(str); - m_ptr = (char *)KviMemory::reallocate(m_ptr,m_len+1); - KviMemory::move(m_ptr,str,m_len+1); - } else { - m_ptr = (char *)KviMemory::reallocate(m_ptr,1); + m_ptr = (char *)KviMemory::reallocate(m_ptr, m_len + 1); + KviMemory::move(m_ptr, str, m_len + 1); + } + else + { + m_ptr = (char *)KviMemory::reallocate(m_ptr, 1); *m_ptr = '\0'; m_len = 0; } @@ -1224,28 +1338,28 @@ KviCString & KviCString::operator=(const char *str) void KviCString::clear() { - m_ptr = (char *)KviMemory::reallocate(m_ptr,1); + m_ptr = (char *)KviMemory::reallocate(m_ptr, 1); *m_ptr = '\0'; m_len = 0; } - bool KviCString::hasNonWhiteSpaceData() const { const char * aux = m_ptr; while(*aux) { - if(((*aux) != ' ') && ((*aux) != '\t'))return true; + if(((*aux) != ' ') && ((*aux) != '\t')) + return true; aux++; } return false; } -void KviCString::bufferToHex(const char *buffer,int len) +void KviCString::bufferToHex(const char * buffer, int len) { KVI_ASSERT(buffer); m_len = (len * 2); - m_ptr = (char *)KviMemory::reallocate(m_ptr,m_len + 1); + m_ptr = (char *)KviMemory::reallocate(m_ptr, m_len + 1); char * aux = m_ptr; while(len) { @@ -1256,16 +1370,17 @@ void KviCString::bufferToHex(const char *buffer,int len) len--; buffer++; } - *(m_ptr+m_len) = '\0'; + *(m_ptr + m_len) = '\0'; } - - static char get_decimal_from_hex_digit_char(char dgt) { - if((dgt >= '0') && (dgt <= '9'))return (dgt - '0'); - if((dgt >= 'A') && (dgt <= 'F'))return (10 + (dgt - 'A')); - if((dgt >= 'a') && (dgt <= 'f'))return (10 + (dgt - 'a')); + if((dgt >= '0') && (dgt <= '9')) + return (dgt - '0'); + if((dgt >= 'A') && (dgt <= 'F')) + return (10 + (dgt - 'A')); + if((dgt >= 'a') && (dgt <= 'f')) + return (10 + (dgt - 'a')); return -1; } @@ -1304,12 +1419,14 @@ int KviCString::hexToBuffer(char ** buffer,bool bNullToNewlines) } */ -int KviCString::hexToBuffer(char ** buffer,bool bNullToNewlines) +int KviCString::hexToBuffer(char ** buffer, bool bNullToNewlines) { *buffer = 0; - if((m_len == 0) || (m_len & 1))return -1; // this is an error + if((m_len == 0) || (m_len & 1)) + return -1; // this is an error int len = (m_len / 2); - if(len < 1)return -1; + if(len < 1) + return -1; *buffer = (char *)KviMemory::allocate(len); char * ptr = *buffer; @@ -1336,7 +1453,9 @@ int KviCString::hexToBuffer(char ** buffer,bool bNullToNewlines) } *ptr += aux2; aux++; - if(bNullToNewlines)if(!(*ptr))*ptr = '\n'; + if(bNullToNewlines) + if(!(*ptr)) + *ptr = '\n'; ptr++; } return len; @@ -1344,15 +1463,15 @@ int KviCString::hexToBuffer(char ** buffer,bool bNullToNewlines) static const char * base64_chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; - -void KviCString::bufferToBase64(const char * buffer,int len) +void KviCString::bufferToBase64(const char * buffer, int len) { m_len = (len / 3) << 2; - if(len % 3)m_len += 4; + if(len % 3) + m_len += 4; - m_ptr = (char *)KviMemory::reallocate(m_ptr,m_len + 1); + m_ptr = (char *)KviMemory::reallocate(m_ptr, m_len + 1); - unsigned char aux1,aux2,aux3; + unsigned char aux1, aux2, aux3; char * aux_ptr = m_ptr; while(len > 2) { @@ -1374,7 +1493,7 @@ void KviCString::bufferToBase64(const char * buffer,int len) *aux_ptr++ = base64_chars[((aux1 & 0x03) << 4) | ((aux2 & 0xF0) >> 4)]; *aux_ptr++ = base64_chars[((aux2 & 0x0F) << 2)]; *aux_ptr++ = '='; - break; + break; case 1: aux1 = (unsigned char)*buffer++; aux2 = (unsigned char)*buffer++; @@ -1382,33 +1501,39 @@ void KviCString::bufferToBase64(const char * buffer,int len) *aux_ptr++ = base64_chars[((aux1 & 0x03) << 4)]; *aux_ptr++ = '='; *aux_ptr++ = '='; - break; + break; } *aux_ptr = 0; } static unsigned char get_base64_idx(char base64) { - if((base64 >= 'A') && (base64 <= 'Z'))return (base64 - 'A'); - if((base64 >= 'a') && (base64 <= 'z'))return ((base64 - 'a') + 26); - if((base64 >= '0') && (base64 <= '9'))return ((base64 - '0') + 52); - if(base64 == '+')return 62; - if(base64 == '/')return 63; - if(base64 == '=')return 64; + if((base64 >= 'A') && (base64 <= 'Z')) + return (base64 - 'A'); + if((base64 >= 'a') && (base64 <= 'z')) + return ((base64 - 'a') + 26); + if((base64 >= '0') && (base64 <= '9')) + return ((base64 - '0') + 52); + if(base64 == '+') + return 62; + if(base64 == '/') + return 63; + if(base64 == '=') + return 64; return 65; } - -int KviCString::base64ToBuffer(char ** buffer,bool) +int KviCString::base64ToBuffer(char ** buffer, bool) { *buffer = 0; - if((m_len == 0) || (m_len & 3))return -1; // this is an error + if((m_len == 0) || (m_len & 3)) + return -1; // this is an error int len = (m_len >> 2) * 3; *buffer = (char *)KviMemory::allocate(len); char * auxBuf = *buffer; - unsigned char aux1,aux2,aux3,aux4; + unsigned char aux1, aux2, aux3, aux4; char * aux_ptr = m_ptr; int newLen = len; @@ -1448,20 +1573,26 @@ int KviCString::base64ToBuffer(char ** buffer,bool) // Double padding, only one digit here *auxBuf++ = (char)((aux1 << 2) | (aux2 >> 4)); newLen -= 2; - } else { + } + else + { // Single padding, two digits here *auxBuf++ = (char)((aux1 << 2) | (aux2 >> 4)); // >> 4 is a shr, not a ror! :) *auxBuf++ = (char)((aux2 << 4) | (aux3 >> 2)); newLen -= 1; } - } else { + } + else + { if(aux3 == 64) { // error... impossible padding KviMemory::free(*buffer); *buffer = 0; return -1; - } else { + } + else + { // Ok, no padding, three digits here *auxBuf++ = (char)((aux1 << 2) | (aux2 >> 4)); *auxBuf++ = (char)((aux2 << 4) | (aux3 >> 2)); @@ -1470,11 +1601,12 @@ int KviCString::base64ToBuffer(char ** buffer,bool) } } - if(newLen != len)*buffer = (char *)KviMemory::reallocate(*buffer,newLen); + if(newLen != len) + *buffer = (char *)KviMemory::reallocate(*buffer, newLen); return newLen; } -KviCString & KviCString::setStr(const char *str,int len) +KviCString & KviCString::setStr(const char * str, int len) { if(!str) { @@ -1482,23 +1614,28 @@ KviCString & KviCString::setStr(const char *str,int len) return *this; } int alen = (int)strlen(str); - if((len < 0) || (len > alen))m_len = alen; - else m_len = len; - m_ptr = (char *)KviMemory::reallocate(m_ptr,m_len+1); - KviMemory::move(m_ptr,str,m_len); - *(m_ptr+m_len) = '\0'; + if((len < 0) || (len > alen)) + m_len = alen; + else + m_len = len; + m_ptr = (char *)KviMemory::reallocate(m_ptr, m_len + 1); + KviMemory::move(m_ptr, str, m_len); + *(m_ptr + m_len) = '\0'; return (*this); } -KviCString & KviCString::operator=(const QString &str) +KviCString & KviCString::operator=(const QString & str) { QByteArray sz = str.toUtf8(); - if(sz.length() > 0){ + if(sz.length() > 0) + { m_len = sz.length(); - m_ptr = (char *)KviMemory::reallocate(m_ptr,m_len+1); - KviMemory::copy(m_ptr,sz.data(),m_len+1); - } else { - m_ptr = (char *)KviMemory::reallocate(m_ptr,1); + m_ptr = (char *)KviMemory::reallocate(m_ptr, m_len + 1); + KviMemory::copy(m_ptr, sz.data(), m_len + 1); + } + else + { + m_ptr = (char *)KviMemory::reallocate(m_ptr, 1); *m_ptr = '\0'; m_len = 0; } @@ -1508,79 +1645,83 @@ KviCString & KviCString::operator=(const QString &str) KviCString & KviCString::operator=(char c) { m_len = 1; - m_ptr = (char *)KviMemory::reallocate(m_ptr,2); + m_ptr = (char *)KviMemory::reallocate(m_ptr, 2); *m_ptr = c; - *(m_ptr+1)='\0'; + *(m_ptr + 1) = '\0'; return (*this); } void KviCString::append(char c) { - m_ptr = (char *)KviMemory::reallocate(m_ptr,m_len+2); - *(m_ptr+m_len)=c; + m_ptr = (char *)KviMemory::reallocate(m_ptr, m_len + 2); + *(m_ptr + m_len) = c; m_len++; - *(m_ptr+m_len)='\0'; + *(m_ptr + m_len) = '\0'; } -void KviCString::append(const KviCString &str) +void KviCString::append(const KviCString & str) { KVI_ASSERT(str.m_ptr); - m_ptr = (char *)KviMemory::reallocate(m_ptr,m_len+str.m_len+1); - KviMemory::copy((m_ptr+m_len),str.m_ptr,str.m_len+1); + m_ptr = (char *)KviMemory::reallocate(m_ptr, m_len + str.m_len + 1); + KviMemory::copy((m_ptr + m_len), str.m_ptr, str.m_len + 1); m_len += str.m_len; } -void KviCString::append(const char *str) +void KviCString::append(const char * str) { - if(!str)return; + if(!str) + return; int len = (int)strlen(str); - m_ptr = (char *)KviMemory::reallocate(m_ptr,m_len+len+1); - KviMemory::copy((m_ptr+m_len),str,len+1); + m_ptr = (char *)KviMemory::reallocate(m_ptr, m_len + len + 1); + KviMemory::copy((m_ptr + m_len), str, len + 1); m_len += len; } -void KviCString::append(const QString &str) +void KviCString::append(const QString & str) { QByteArray sz = str.toUtf8(); - if(sz.length() < 1)return; - m_ptr = (char *)KviMemory::reallocate(m_ptr,m_len+sz.length()+1); - KviMemory::copy((m_ptr+m_len),sz.data(),sz.length()+1); + if(sz.length() < 1) + return; + m_ptr = (char *)KviMemory::reallocate(m_ptr, m_len + sz.length() + 1); + KviMemory::copy((m_ptr + m_len), sz.data(), sz.length() + 1); m_len += sz.length(); } -void KviCString::append(const char *str,int len) +void KviCString::append(const char * str, int len) { KVI_ASSERT(str); -// KVI_ASSERT(len <= ((int)strlen(str))); + // KVI_ASSERT(len <= ((int)strlen(str))); KVI_ASSERT(len >= 0); - m_ptr = (char *)KviMemory::reallocate(m_ptr,m_len+len+1); - KviMemory::copy((m_ptr+m_len),str,len); + m_ptr = (char *)KviMemory::reallocate(m_ptr, m_len + len + 1); + KviMemory::copy((m_ptr + m_len), str, len); m_len += len; - *(m_ptr + m_len)='\0'; + *(m_ptr + m_len) = '\0'; } -void KviCString::append(KviFormatConstructorTag,const char *fmt,...) +void KviCString::append(KviFormatConstructorTag, const char * fmt, ...) { int auxLen; - m_ptr=(char *)KviMemory::reallocate(m_ptr,m_len + 256); + m_ptr = (char *)KviMemory::reallocate(m_ptr, m_len + 256); //First try kvi_va_list list; - kvi_va_start(list,fmt); + kvi_va_start(list, fmt); //print...with max 256 chars - auxLen =kvi_vsnprintf(m_ptr + m_len,256,fmt,list); + auxLen = kvi_vsnprintf(m_ptr + m_len, 256, fmt, list); kvi_va_end(list); //check if we failed - if(auxLen < 0){ + if(auxLen < 0) + { //yes, failed.... - int dummy=256; - do{ //we failed, so retry with 256 more chars - dummy+=256; + int dummy = 256; + do + { //we failed, so retry with 256 more chars + dummy += 256; //realloc - m_ptr=(char *)KviMemory::reallocate(m_ptr,m_len + dummy); + m_ptr = (char *)KviMemory::reallocate(m_ptr, m_len + dummy); //print... - kvi_va_start(list,fmt); - auxLen=kvi_vsnprintf(m_ptr + m_len,dummy,fmt,list); + kvi_va_start(list, fmt); + auxLen = kvi_vsnprintf(m_ptr + m_len, dummy, fmt, list); kvi_va_end(list); } while(auxLen < 0); } @@ -1588,53 +1729,53 @@ void KviCString::append(KviFormatConstructorTag,const char *fmt,...) //done... //now m_len is the length of the written string not including the terminator... //perfect! :) - m_ptr=(char *)KviMemory::reallocate(m_ptr,m_len+1); + m_ptr = (char *)KviMemory::reallocate(m_ptr, m_len + 1); } -void KviCString::extractFromString(const char *begin,const char *end) +void KviCString::extractFromString(const char * begin, const char * end) { KVI_ASSERT(begin); KVI_ASSERT(end); KVI_ASSERT(end >= begin); - m_len = end-begin; - m_ptr = (char *)KviMemory::reallocate(m_ptr,m_len+1); - KviMemory::copy(m_ptr,begin,m_len); - *(m_ptr + m_len)='\0'; + m_len = end - begin; + m_ptr = (char *)KviMemory::reallocate(m_ptr, m_len + 1); + KviMemory::copy(m_ptr, begin, m_len); + *(m_ptr + m_len) = '\0'; } -void KviCString::prepend(const KviCString &str) +void KviCString::prepend(const KviCString & str) { KVI_ASSERT(str.m_ptr); KVI_ASSERT(str.m_ptr != m_ptr); - m_ptr = (char *)KviMemory::reallocate(m_ptr,m_len+str.m_len+1); - KviMemory::move((m_ptr+str.m_len),m_ptr,m_len+1); //move self - KviMemory::copy(m_ptr,str.m_ptr,str.m_len); + m_ptr = (char *)KviMemory::reallocate(m_ptr, m_len + str.m_len + 1); + KviMemory::move((m_ptr + str.m_len), m_ptr, m_len + 1); //move self + KviMemory::copy(m_ptr, str.m_ptr, str.m_len); m_len += str.m_len; } -void KviCString::prepend(const char *str) +void KviCString::prepend(const char * str) { - if(!str)return; + if(!str) + return; int len = (int)strlen(str); - m_ptr = (char *)KviMemory::reallocate(m_ptr,m_len+len+1); - KviMemory::move((m_ptr+len),m_ptr,m_len+1); //move self - KviMemory::copy(m_ptr,str,len); + m_ptr = (char *)KviMemory::reallocate(m_ptr, m_len + len + 1); + KviMemory::move((m_ptr + len), m_ptr, m_len + 1); //move self + KviMemory::copy(m_ptr, str, len); m_len += len; } -void KviCString::prepend(const char *str,int len) +void KviCString::prepend(const char * str, int len) { KVI_ASSERT(str); KVI_ASSERT(len <= ((int)strlen(str))); KVI_ASSERT(len >= 0); - m_ptr = (char *)KviMemory::reallocate(m_ptr,m_len+len+1); - KviMemory::move((m_ptr+len),m_ptr,m_len+1); //move self - KviMemory::copy(m_ptr,str,len); + m_ptr = (char *)KviMemory::reallocate(m_ptr, m_len + len + 1); + KviMemory::move((m_ptr + len), m_ptr, m_len + 1); //move self + KviMemory::copy(m_ptr, str, len); m_len += len; } -unsigned char iso88591_toUpper_map[256]= -{ +unsigned char iso88591_toUpper_map[256] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, @@ -1671,26 +1812,25 @@ unsigned char iso88591_toUpper_map[256]= void KviCString::toUpperISO88591() { - char *p=m_ptr; + char * p = m_ptr; while(*p) { - *p=(char)iso88591_toUpper_map[(unsigned char)*p]; + *p = (char)iso88591_toUpper_map[(unsigned char)*p]; p++; } } void KviCString::toUpper() { - char *p=m_ptr; + char * p = m_ptr; while(*p) { - *p=toupper(*p); + *p = toupper(*p); p++; } } -unsigned char iso88591_toLower_map[256]= -{ +unsigned char iso88591_toLower_map[256] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, @@ -1727,21 +1867,20 @@ unsigned char iso88591_toLower_map[256]= void KviCString::toLowerISO88591() { - char *p=m_ptr; + char * p = m_ptr; while(*p) { - *p=(char)iso88591_toLower_map[(unsigned char)*p]; + *p = (char)iso88591_toLower_map[(unsigned char)*p]; p++; } } - void KviCString::toLower() { - char *p=m_ptr; + char * p = m_ptr; while(*p) { - *p=tolower(*p); + *p = tolower(*p); p++; } } @@ -1781,8 +1920,9 @@ KviCString KviCString::left(int maxLen) const KviCString empty; return empty; } - if(maxLen > m_len)maxLen=m_len; - KviCString str(m_ptr,maxLen); + if(maxLen > m_len) + maxLen = m_len; + KviCString str(m_ptr, maxLen); return str; } @@ -1793,25 +1933,29 @@ KviCString KviCString::right(int maxLen) const KviCString empty; return empty; } - if(maxLen > m_len)maxLen=m_len; - KviCString str((m_ptr+(m_len-maxLen)),maxLen); + if(maxLen > m_len) + maxLen = m_len; + KviCString str((m_ptr + (m_len - maxLen)), maxLen); return str; } -KviCString KviCString::middle(int idx,int maxLen) const +KviCString KviCString::middle(int idx, int maxLen) const { KVI_ASSERT(maxLen >= 0); KVI_ASSERT(idx >= 0); - if((maxLen <= 0) || (idx < 0)){ //max len negative...invalid params + if((maxLen <= 0) || (idx < 0)) + { //max len negative...invalid params KviCString ret; return ret; } - if((maxLen + idx) <= m_len){ //valid params - KviCString str(m_ptr+idx,maxLen); + if((maxLen + idx) <= m_len) + { //valid params + KviCString str(m_ptr + idx, maxLen); return str; } - if(idx < m_len){ //string shorter than requested - KviCString str(m_ptr+idx); + if(idx < m_len) + { //string shorter than requested + KviCString str(m_ptr + idx); return str; } // idx out of bounds @@ -1819,7 +1963,7 @@ KviCString KviCString::middle(int idx,int maxLen) const return ret; } -KviCString ** KviCString::splitToArray(char sep,int max,int * realCount) const +KviCString ** KviCString::splitToArray(char sep, int max, int * realCount) const { KviCString ** strings = (KviCString **)KviMemory::allocate(sizeof(KviCString *)); int number = 0; @@ -1827,12 +1971,15 @@ KviCString ** KviCString::splitToArray(char sep,int max,int * realCount) const char * last = ptr; while((max > 0) && *ptr) { - strings = (KviCString **)KviMemory::reallocate((void *)strings,sizeof(KviCString *) * (number + 2)); + strings = (KviCString **)KviMemory::reallocate((void *)strings, sizeof(KviCString *) * (number + 2)); if(max > 1) { - while(*ptr && (*ptr != sep))ptr++; - strings[number] = new KviCString(last,ptr - last); - } else { + while(*ptr && (*ptr != sep)) + ptr++; + strings[number] = new KviCString(last, ptr - last); + } + else + { strings[number] = new KviCString(ptr); } number++; @@ -1843,7 +1990,8 @@ KviCString ** KviCString::splitToArray(char sep,int max,int * realCount) const last = ptr; } } - if(realCount)*realCount = number; + if(realCount) + *realCount = number; strings[number] = 0; return strings; } @@ -1882,11 +2030,12 @@ KviCString ** KviCString::splitToArray(const char * sep,int max,int * realCount) */ void KviCString::freeArray(KviCString ** strings) { - if(!strings)return; + if(!strings) + return; KviCString ** aux = strings; while(*aux) { - delete (*aux); // delete (KviCString *) + delete(*aux); // delete (KviCString *) aux++; } KviMemory::free(strings); @@ -1894,14 +2043,16 @@ void KviCString::freeArray(KviCString ** strings) void KviCString::freeBuffer(char * buffer) { - if(!buffer)return; + if(!buffer) + return; KviMemory::free(buffer); } -void KviCString::joinFromArray(KviCString ** strings,const char * sep,bool bLastSep) +void KviCString::joinFromArray(KviCString ** strings, const char * sep, bool bLastSep) { setLen(0); - if(!strings)return; + if(!strings) + return; while(*strings) { @@ -1909,31 +2060,37 @@ void KviCString::joinFromArray(KviCString ** strings,const char * sep,bool bLast strings++; if(*strings) { - if(sep)append(sep); - } else { - if(sep && bLastSep)append(sep); + if(sep) + append(sep); + } + else + { + if(sep && bLastSep) + append(sep); } } } -KviCString & KviCString::insert(int idx,const char *data) +KviCString & KviCString::insert(int idx, const char * data) { KVI_ASSERT(data); - if(idx <= m_len){ + if(idx <= m_len) + { int len = (int)strlen(data); - m_ptr = (char *)KviMemory::reallocate(m_ptr,m_len+len+1); - KviMemory::move(m_ptr+idx+len,m_ptr+idx,(m_len - idx)+1); - KviMemory::copy(m_ptr+idx,data,len); - m_len+=len; + m_ptr = (char *)KviMemory::reallocate(m_ptr, m_len + len + 1); + KviMemory::move(m_ptr + idx + len, m_ptr + idx, (m_len - idx) + 1); + KviMemory::copy(m_ptr + idx, data, len); + m_len += len; } return (*this); } -KviCString & KviCString::insert(int idx,char c) +KviCString & KviCString::insert(int idx, char c) { - if(idx <= m_len){ - m_ptr = (char *)KviMemory::reallocate(m_ptr,m_len+2); - KviMemory::move(m_ptr+idx+1,m_ptr+idx,(m_len - idx)+1); + if(idx <= m_len) + { + m_ptr = (char *)KviMemory::reallocate(m_ptr, m_len + 2); + KviMemory::move(m_ptr + idx + 1, m_ptr + idx, (m_len - idx) + 1); m_len++; *(m_ptr + idx) = c; } @@ -1947,7 +2104,7 @@ KviCString & KviCString::hexEncodeWithTable(const unsigned char table[256]) char * aux = m_ptr; char * begin = m_ptr; - char * n = 0; + char * n = 0; int curSize = 0; while(*aux) @@ -1955,8 +2112,8 @@ KviCString & KviCString::hexEncodeWithTable(const unsigned char table[256]) if(table[*((unsigned char *)aux)] || (*aux == '%')) { int len = aux - begin; - n = (char *)KviMemory::reallocate(n,curSize + len + 3); - KviMemory::move(n + curSize,begin,len); + n = (char *)KviMemory::reallocate(n, curSize + len + 3); + KviMemory::move(n + curSize, begin, len); curSize += len; n[curSize] = '%'; @@ -1968,13 +2125,14 @@ KviCString & KviCString::hexEncodeWithTable(const unsigned char table[256]) aux++; begin = aux; - - } else aux++; + } + else + aux++; } int len = aux - begin; - n = (char *)KviMemory::reallocate(n,curSize + len + 1); - KviMemory::move(n + curSize,begin,len); + n = (char *)KviMemory::reallocate(n, curSize + len + 1); + KviMemory::move(n + curSize, begin, len); curSize += len; n[curSize] = '\0'; @@ -1988,8 +2146,7 @@ KviCString & KviCString::hexEncodeWithTable(const unsigned char table[256]) KviCString & KviCString::hexEncodeWhiteSpace() { - static unsigned char ascii_jump_table[256]= - { + static unsigned char ascii_jump_table[256] = { // clang-format off // 000 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 // NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI @@ -2039,7 +2196,7 @@ KviCString & KviCString::hexEncodeWhiteSpace() // 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 // � � � � � � � � 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 - // clang-format on + // clang-format on }; return hexEncodeWithTable(ascii_jump_table); @@ -2051,7 +2208,7 @@ KviCString & KviCString::hexDecode(const char * pFrom) const char * aux = pFrom; const char * begin = pFrom; - char * n = 0; + char * n = 0; int curSize = 0; while(*aux) @@ -2060,8 +2217,8 @@ KviCString & KviCString::hexDecode(const char * pFrom) { // move last block int len = aux - begin; - n = (char *)KviMemory::reallocate(n,curSize + len + 1); - KviMemory::move(n + curSize,begin,len); + n = (char *)KviMemory::reallocate(n, curSize + len + 1); + KviMemory::move(n + curSize, begin, len); curSize += len; // get the hex code @@ -2072,7 +2229,9 @@ KviCString & KviCString::hexDecode(const char * pFrom) { n[curSize] = '%'; // wrong code...just a '%' curSize++; - } else { + } + else + { aux++; char theChar2 = get_decimal_from_hex_digit_char(*aux); if(theChar2 < 0) @@ -2081,7 +2240,9 @@ KviCString & KviCString::hexDecode(const char * pFrom) n[curSize] = '%'; curSize++; aux--; - } else { + } + else + { n[curSize] = (theChar * 16) + theChar2; curSize++; aux++; @@ -2089,13 +2250,14 @@ KviCString & KviCString::hexDecode(const char * pFrom) } begin = aux; - - } else aux++; + } + else + aux++; } int len = aux - begin; - n = (char *)KviMemory::reallocate(n,curSize + len + 2); - KviMemory::move(n + curSize,begin,len); + n = (char *)KviMemory::reallocate(n, curSize + len + 2); + KviMemory::move(n + curSize, begin, len); curSize += len; n[curSize] = '\0'; @@ -2106,52 +2268,56 @@ KviCString & KviCString::hexDecode(const char * pFrom) return (*this); } -KviCString & KviCString::replaceAll(const char c,const char *str) +KviCString & KviCString::replaceAll(const char c, const char * str) { int idx = findFirstIdx(c); KviCString tmp; - while(idx >= 0){ - if(idx > 0)tmp += left(idx); - cutLeft(idx+1); + while(idx >= 0) + { + if(idx > 0) + tmp += left(idx); + cutLeft(idx + 1); tmp.append(str); idx = findFirstIdx(c); } tmp.append(*this); // Now copy m_len = tmp.m_len; - m_ptr = (char *)KviMemory::reallocate(m_ptr,m_len+1); - KviMemory::copy(m_ptr,tmp.m_ptr,m_len+1); + m_ptr = (char *)KviMemory::reallocate(m_ptr, m_len + 1); + KviMemory::copy(m_ptr, tmp.m_ptr, m_len + 1); return (*this); } -KviCString & KviCString::replaceAll(const char *toFind,const char *str,bool bCaseS) +KviCString & KviCString::replaceAll(const char * toFind, const char * str, bool bCaseS) { int len = (int)strlen(toFind); - int idx = findFirstIdx(toFind,bCaseS); + int idx = findFirstIdx(toFind, bCaseS); KviCString tmp; while(idx >= 0) { - if(idx > 0)tmp += left(idx); - cutLeft(idx+len); + if(idx > 0) + tmp += left(idx); + cutLeft(idx + len); tmp.append(str); - idx = findFirstIdx(toFind,bCaseS); + idx = findFirstIdx(toFind, bCaseS); } tmp.append(*this); // Now copy m_len = tmp.m_len; - m_ptr = (char *)KviMemory::reallocate(m_ptr,m_len+1); - KviMemory::copy(m_ptr,tmp.m_ptr,m_len+1); + m_ptr = (char *)KviMemory::reallocate(m_ptr, m_len + 1); + KviMemory::copy(m_ptr, tmp.m_ptr, m_len + 1); return (*this); } -KviCString & KviCString::transliterate(const char * szToFind,const char * szReplacement) +KviCString & KviCString::transliterate(const char * szToFind, const char * szReplacement) { while(*szToFind && *szReplacement) { char * p = m_ptr; while(*p) { - if(*p == *szToFind)*p = *szReplacement; + if(*p == *szToFind) + *p = *szReplacement; ++p; } ++szToFind; @@ -2160,44 +2326,59 @@ KviCString & KviCString::transliterate(const char * szToFind,const char * szRepl return (*this); } - -int KviCString::occurrences(char c,bool caseS) const +int KviCString::occurrences(char c, bool caseS) const { - char *p = m_ptr; - int cnt=0; - if(caseS){ - while(*p){ - if(*p == c)cnt++; + char * p = m_ptr; + int cnt = 0; + if(caseS) + { + while(*p) + { + if(*p == c) + cnt++; p++; } - } else { - char b=tolower(c); - while(*p){ - if(tolower(*p) == b)cnt++; + } + else + { + char b = tolower(c); + while(*p) + { + if(tolower(*p) == b) + cnt++; p++; } } return cnt; } -int KviCString::occurrences(const char *str,bool caseS) const +int KviCString::occurrences(const char * str, bool caseS) const { KVI_ASSERT(str); - char *p = m_ptr; - int cnt=0; + char * p = m_ptr; + int cnt = 0; int len = (int)strlen(str); - if(caseS){ - while(*p){ - if(*p == *str){ - if(kvi_strEqualCSN(p,str,len))cnt++; + if(caseS) + { + while(*p) + { + if(*p == *str) + { + if(kvi_strEqualCSN(p, str, len)) + cnt++; } p++; } - } else { - while(*p){ + } + else + { + while(*p) + { char c = tolower(*str); - if(tolower(*p) == c){ - if(kvi_strEqualCIN(p,str,len))cnt++; + if(tolower(*p) == c) + { + if(kvi_strEqualCIN(p, str, len)) + cnt++; } p++; } @@ -2205,31 +2386,35 @@ int KviCString::occurrences(const char *str,bool caseS) const return cnt; } -bool KviCString::contains(char c,bool caseS) const +bool KviCString::contains(char c, bool caseS) const { - char *p = m_ptr; + char * p = m_ptr; if(caseS) { while(*p) { - if(*p == c)return true; + if(*p == c) + return true; p++; } - } else { - char b=tolower(c); + } + else + { + char b = tolower(c); while(*p) { - if(tolower(*p) == b)return true; + if(tolower(*p) == b) + return true; p++; } } return false; } -bool KviCString::contains(const char *str,bool caseS) const +bool KviCString::contains(const char * str, bool caseS) const { KVI_ASSERT(str); - char *p = m_ptr; + char * p = m_ptr; int len = (int)strlen(str); if(caseS) { @@ -2237,17 +2422,21 @@ bool KviCString::contains(const char *str,bool caseS) const { if(*p == *str) { - if(kvi_strEqualCSN(p,str,len))return true; + if(kvi_strEqualCSN(p, str, len)) + return true; } p++; } - } else { + } + else + { while(*p) { char c = tolower(*str); if(tolower(*p) == c) { - if(kvi_strEqualCIN(p,str,len))return true; + if(kvi_strEqualCIN(p, str, len)) + return true; } p++; } @@ -2255,14 +2444,13 @@ bool KviCString::contains(const char *str,bool caseS) const return false; } - KviCString & KviCString::setNum(long num) { char numberBuffer[30]; bool bNegative = false; long tmp; - char *p; - char *pNumBuf = numberBuffer; + char * p; + char * pNumBuf = numberBuffer; // somebody can explain me why -(-2147483648) = -2147483648 ? (2^31) // it is like signed char x = 128 ---> 10000000 that is signed -0 (!?) @@ -2287,34 +2475,43 @@ KviCString & KviCString::setNum(long num) // so should i use temporaneous doubles to make calculations ? - if(num < 0){ //negative integer + if(num < 0) + { //negative integer bNegative = true; num = -num; //need to have it positive - if(num < 0){ // 2^31 exception + if(num < 0) + { // 2^31 exception // We need to avoid absurd responses like ".(./),." :) num = 0; // we get a negative zero here...it is still an exception } } //write the number in a temporary buffer (at least '0') - do { + do + { tmp = num / 10; *pNumBuf++ = num - (tmp * 10) + '0'; } while((num = tmp)); //copy now.... m_len = pNumBuf - numberBuffer; //length of the number string - if(bNegative){ + if(bNegative) + { m_len++; - m_ptr = (char *)KviMemory::reallocate(m_ptr,m_len+1); - p=m_ptr; - *p++='-'; - } else { - m_ptr = (char *)KviMemory::reallocate(m_ptr,m_len+1); - p=m_ptr; - } - do { *p++ = *--pNumBuf; } while(pNumBuf != numberBuffer); - *(m_ptr + m_len)='\0'; + m_ptr = (char *)KviMemory::reallocate(m_ptr, m_len + 1); + p = m_ptr; + *p++ = '-'; + } + else + { + m_ptr = (char *)KviMemory::reallocate(m_ptr, m_len + 1); + p = m_ptr; + } + do + { + *p++ = *--pNumBuf; + } while(pNumBuf != numberBuffer); + *(m_ptr + m_len) = '\0'; return (*this); } @@ -2322,135 +2519,184 @@ KviCString & KviCString::setNum(unsigned long num) { char numberBuffer[30]; unsigned long tmp; - char *p; - char *pNumBuf = numberBuffer; + char * p; + char * pNumBuf = numberBuffer; //write the number in a temporary buffer (at least '0') - do { + do + { tmp = num / 10; *pNumBuf++ = num - (tmp * 10) + '0'; } while((num = tmp)); //copy now.... m_len = pNumBuf - numberBuffer; //length of the number string - m_ptr = (char *)KviMemory::reallocate(m_ptr,m_len+1); - p=m_ptr; - do { *p++ = *--pNumBuf; } while(pNumBuf != numberBuffer); - *(m_ptr + m_len)='\0'; + m_ptr = (char *)KviMemory::reallocate(m_ptr, m_len + 1); + p = m_ptr; + do + { + *p++ = *--pNumBuf; + } while(pNumBuf != numberBuffer); + *(m_ptr + m_len) = '\0'; return (*this); } -long long KviCString::toLongLong(bool *bOk) const +long long KviCString::toLongLong(bool * bOk) const { long long result = 0; - if(bOk)*bOk = false; - char *p=m_ptr; + if(bOk) + *bOk = false; + char * p = m_ptr; bool bNeg = false; - while(isspace(*p))p++; //skip spaces - if(*p == '-'){ + while(isspace(*p)) + p++; //skip spaces + if(*p == '-') + { bNeg = true; p++; - } else { - if(*p == '+')p++; } - if(isdigit(*p)){ //point to something interesting ? - do{ + else + { + if(*p == '+') + p++; + } + if(isdigit(*p)) + { //point to something interesting ? + do + { result = (result * 10) + (*p - '0'); p++; } while(isdigit(*p)); - if(bNeg)result = -result; - while(isspace(*p))p++; //skip trailing spaces - if(*p)return 0; //if this is not the end...die. - if(bOk)*bOk = true; + if(bNeg) + result = -result; + while(isspace(*p)) + p++; //skip trailing spaces + if(*p) + return 0; //if this is not the end...die. + if(bOk) + *bOk = true; return result; } return 0; } -unsigned long long KviCString::toULongLong(bool *bOk) const +unsigned long long KviCString::toULongLong(bool * bOk) const { unsigned long long result = 0; - if(bOk)*bOk = false; - char *p=m_ptr; - while(isspace(*p))p++; //skip spaces - if(isdigit(*p)){ //point to something interesting ? - do{ + if(bOk) + *bOk = false; + char * p = m_ptr; + while(isspace(*p)) + p++; //skip spaces + if(isdigit(*p)) + { //point to something interesting ? + do + { result = (result * 10) + (*p - '0'); p++; } while(isdigit(*p)); - while(isspace(*p))p++; //skip trailing spaces - if(*p)return 0; //if this is not the end...die. - if(bOk)*bOk = true; + while(isspace(*p)) + p++; //skip trailing spaces + if(*p) + return 0; //if this is not the end...die. + if(bOk) + *bOk = true; return result; } return 0; } -long KviCString::toLong(bool *bOk) const +long KviCString::toLong(bool * bOk) const { long result = 0; - if(bOk)*bOk = false; - char *p=m_ptr; + if(bOk) + *bOk = false; + char * p = m_ptr; bool bNeg = false; - while(isspace(*p))p++; //skip spaces - if(*p == '-'){ + while(isspace(*p)) + p++; //skip spaces + if(*p == '-') + { bNeg = true; p++; - } else { - if(*p == '+')p++; } - if(isdigit(*p)){ //point to something interesting ? - do{ + else + { + if(*p == '+') + p++; + } + if(isdigit(*p)) + { //point to something interesting ? + do + { result = (result * 10) + (*p - '0'); p++; } while(isdigit(*p)); - if(bNeg)result = -result; - while(isspace(*p))p++; //skip trailing spaces - if(*p)return 0; //if this is not the end...die. - if(bOk)*bOk = true; + if(bNeg) + result = -result; + while(isspace(*p)) + p++; //skip trailing spaces + if(*p) + return 0; //if this is not the end...die. + if(bOk) + *bOk = true; return result; } return 0; } -unsigned long KviCString::toULong(bool *bOk) const +unsigned long KviCString::toULong(bool * bOk) const { unsigned long result = 0; - if(bOk)*bOk = false; - char *p=m_ptr; - while(isspace(*p))p++; //skip spaces - if(isdigit(*p)){ //point to something interesting ? - do{ + if(bOk) + *bOk = false; + char * p = m_ptr; + while(isspace(*p)) + p++; //skip spaces + if(isdigit(*p)) + { //point to something interesting ? + do + { result = (result * 10) + (*p - '0'); p++; } while(isdigit(*p)); - while(isspace(*p))p++; //skip trailing spaces - if(*p)return 0; //if this is not the end...die. - if(bOk)*bOk = true; + while(isspace(*p)) + p++; //skip trailing spaces + if(*p) + return 0; //if this is not the end...die. + if(bOk) + *bOk = true; return result; } return 0; } -long KviCString::toLongExt(bool *bOk,int base) +long KviCString::toLongExt(bool * bOk, int base) { - if(m_len == 0){ - if(bOk)*bOk = false; + if(m_len == 0) + { + if(bOk) + *bOk = false; return 0; } char * endptr; - long result = strtol(m_ptr,&endptr,base); - if(*endptr){ + long result = strtol(m_ptr, &endptr, base); + if(*endptr) + { // must be whitespaces, otherwise there is trailing garbage inside - while(isspace(*endptr) && (*endptr))endptr++; - if(*endptr){ + while(isspace(*endptr) && (*endptr)) + endptr++; + if(*endptr) + { // still not at the end // trailing garbage not allowed - if(bOk)*bOk = false; + if(bOk) + *bOk = false; return result; } } - if(bOk)*bOk = true; + if(bOk) + *bOk = true; return result; } @@ -2474,12 +2720,15 @@ long KviCString::toLongExt(bool *bOk,int base) KviCString & KviCString::cutLeft(int len) { KVI_ASSERT(len >= 0); - if(len <= m_len){ + if(len <= m_len) + { m_len -= len; - KviMemory::move(m_ptr,m_ptr+len,m_len+1); - m_ptr = (char *)KviMemory::reallocate(m_ptr,m_len+1); - } else { - m_ptr = (char *)KviMemory::reallocate(m_ptr,1); + KviMemory::move(m_ptr, m_ptr + len, m_len + 1); + m_ptr = (char *)KviMemory::reallocate(m_ptr, m_len + 1); + } + else + { + m_ptr = (char *)KviMemory::reallocate(m_ptr, 1); *m_ptr = '\0'; m_len = 0; } @@ -2489,109 +2738,122 @@ KviCString & KviCString::cutLeft(int len) KviCString & KviCString::cutRight(int len) { KVI_ASSERT(len >= 0); - if(len <= m_len){ + if(len <= m_len) + { m_len -= len; - m_ptr = (char *)KviMemory::reallocate(m_ptr,m_len+1); - *(m_ptr +m_len)='\0'; - } else { - m_ptr = (char *)KviMemory::reallocate(m_ptr,1); + m_ptr = (char *)KviMemory::reallocate(m_ptr, m_len + 1); + *(m_ptr + m_len) = '\0'; + } + else + { + m_ptr = (char *)KviMemory::reallocate(m_ptr, 1); *m_ptr = '\0'; m_len = 0; } return (*this); } -KviCString & KviCString::cut(int idx,int len) +KviCString & KviCString::cut(int idx, int len) { KVI_ASSERT(idx >= 0); KVI_ASSERT(len >= 0); - if(idx < m_len){ + if(idx < m_len) + { // idx = 3 len = 3 m_len = 10 // 0123456789 // abcdefghij // ^ ^ // p1 p2 - char * p1 = m_ptr+idx; - if(len + idx > m_len)len = m_len - idx; - char * p2 = p1+len; - KviMemory::move(p1,p2,(m_len - (len+idx)) +1); + char * p1 = m_ptr + idx; + if(len + idx > m_len) + len = m_len - idx; + char * p2 = p1 + len; + KviMemory::move(p1, p2, (m_len - (len + idx)) + 1); m_len -= len; - m_ptr = (char *)KviMemory::reallocate(m_ptr,m_len+1); + m_ptr = (char *)KviMemory::reallocate(m_ptr, m_len + 1); } return (*this); } -KviCString & KviCString::cutToFirst(char c,bool bIncluded) +KviCString & KviCString::cutToFirst(char c, bool bIncluded) { int idx = findFirstIdx(c); - if(idx != -1)cutLeft(bIncluded ? idx + 1 : idx); + if(idx != -1) + cutLeft(bIncluded ? idx + 1 : idx); return (*this); } -KviCString KviCString::leftToFirst(char c,bool bIncluded) const +KviCString KviCString::leftToFirst(char c, bool bIncluded) const { int idx = findFirstIdx(c); - if(idx == -1)return KviCString(*this); - return KviCString(m_ptr,bIncluded ? idx + 1 : idx); + if(idx == -1) + return KviCString(*this); + return KviCString(m_ptr, bIncluded ? idx + 1 : idx); } - -KviCString KviCString::leftToLast(char c,bool bIncluded) const +KviCString KviCString::leftToLast(char c, bool bIncluded) const { int idx = findLastIdx(c); - return KviCString(m_ptr,bIncluded ? idx + 1 : idx); + return KviCString(m_ptr, bIncluded ? idx + 1 : idx); } -KviCString & KviCString::cutFromFirst(char c,bool bIncluded) +KviCString & KviCString::cutFromFirst(char c, bool bIncluded) { int idx = findFirstIdx(c); - if(idx != -1)cutRight(bIncluded ? (m_len - idx) : (m_len - (idx + 1))); + if(idx != -1) + cutRight(bIncluded ? (m_len - idx) : (m_len - (idx + 1))); return (*this); } -KviCString & KviCString::cutToLast(char c,bool bIncluded) +KviCString & KviCString::cutToLast(char c, bool bIncluded) { int idx = findLastIdx(c); - if(idx != -1)cutLeft(bIncluded ? idx + 1 : idx); + if(idx != -1) + cutLeft(bIncluded ? idx + 1 : idx); return (*this); } -KviCString & KviCString::cutFromLast(char c,bool bIncluded) +KviCString & KviCString::cutFromLast(char c, bool bIncluded) { int idx = findLastIdx(c); - if(idx != -1)cutRight(bIncluded ? (m_len - idx) : (m_len - (idx + 1))); + if(idx != -1) + cutRight(bIncluded ? (m_len - idx) : (m_len - (idx + 1))); return (*this); } -KviCString & KviCString::cutToFirst(const char *c,bool bIncluded) +KviCString & KviCString::cutToFirst(const char * c, bool bIncluded) { int len = (int)strlen(c); int idx = findFirstIdx(c); - if(idx != -1)cutLeft(bIncluded ? idx + len : idx); + if(idx != -1) + cutLeft(bIncluded ? idx + len : idx); return (*this); } -KviCString & KviCString::cutFromFirst(const char *c,bool bIncluded) +KviCString & KviCString::cutFromFirst(const char * c, bool bIncluded) { int len = (int)strlen(c); int idx = findFirstIdx(c); - if(idx != -1)cutRight(bIncluded ? (m_len - idx) : (m_len - (idx + len))); + if(idx != -1) + cutRight(bIncluded ? (m_len - idx) : (m_len - (idx + len))); return (*this); } -KviCString & KviCString::cutToLast(const char *c,bool bIncluded) +KviCString & KviCString::cutToLast(const char * c, bool bIncluded) { int len = (int)strlen(c); int idx = findLastIdx(c); - if(idx != -1)cutLeft(bIncluded ? idx + len : idx); + if(idx != -1) + cutLeft(bIncluded ? idx + len : idx); return (*this); } -KviCString & KviCString::cutFromLast(const char *c,bool bIncluded) +KviCString & KviCString::cutFromLast(const char * c, bool bIncluded) { int len = (int)strlen(c); int idx = findLastIdx(c); - if(idx != -1)cutRight(bIncluded ? (m_len - idx) : (m_len - (idx + len))); + if(idx != -1) + cutRight(bIncluded ? (m_len - idx) : (m_len - (idx + len))); return (*this); } @@ -2599,7 +2861,7 @@ KviCString & KviCString::setLen(int iLen) { KVI_ASSERT(iLen >= 0); m_len = iLen; - m_ptr = (char *)KviMemory::reallocate(m_ptr,m_len+1); + m_ptr = (char *)KviMemory::reallocate(m_ptr, m_len + 1); *(m_ptr + m_len) = '\0'; return (*this); } @@ -2607,216 +2869,263 @@ KviCString & KviCString::setLen(int iLen) KviCString & KviCString::padRight(int iLen, const char c) { KVI_ASSERT(iLen >= 0); - m_ptr = (char *)KviMemory::reallocate(m_ptr,iLen+1); + m_ptr = (char *)KviMemory::reallocate(m_ptr, iLen + 1); *(m_ptr + iLen) = '\0'; if(iLen > m_len) - KviMemory::set(m_ptr+m_len,c,iLen-m_len); + KviMemory::set(m_ptr + m_len, c, iLen - m_len); m_len = iLen; return (*this); } KviCString & KviCString::stripLeftWhiteSpace() { - char *p=m_ptr; - while(isspace(*p))p++; - m_len -= (p-m_ptr); - KviMemory::move(m_ptr,p,m_len+1); - m_ptr = (char *)KviMemory::reallocate(m_ptr,m_len+1); + char * p = m_ptr; + while(isspace(*p)) + p++; + m_len -= (p - m_ptr); + KviMemory::move(m_ptr, p, m_len + 1); + m_ptr = (char *)KviMemory::reallocate(m_ptr, m_len + 1); return (*this); } KviCString & KviCString::stripLeft(char c) { KVI_ASSERT(c != '\0'); - char *p=m_ptr; - while(*p == c)p++; - m_len -= (p-m_ptr); - KviMemory::move(m_ptr,p,m_len+1); - m_ptr = (char *)KviMemory::reallocate(m_ptr,m_len+1); + char * p = m_ptr; + while(*p == c) + p++; + m_len -= (p - m_ptr); + KviMemory::move(m_ptr, p, m_len + 1); + m_ptr = (char *)KviMemory::reallocate(m_ptr, m_len + 1); return (*this); } -bool KviCString::getToken(KviCString & str,char sep) +bool KviCString::getToken(KviCString & str, char sep) { KVI_ASSERT(str.m_ptr); KVI_ASSERT(str.m_ptr != m_ptr); - char *p=m_ptr; + char * p = m_ptr; //skip to the end - while(*p && (*p != sep))p++; + while(*p && (*p != sep)) + p++; //0123456789 //abcd xyz //^ ^ - str.m_len = p-m_ptr; - str.m_ptr = (char *)KviMemory::reallocate(str.m_ptr,str.m_len+1); - KviMemory::copy(str.m_ptr,m_ptr,str.m_len); - *(str.m_ptr + str.m_len)='\0'; - while(*p && (*p == sep))p++; - cutLeft(p-m_ptr); + str.m_len = p - m_ptr; + str.m_ptr = (char *)KviMemory::reallocate(str.m_ptr, str.m_len + 1); + KviMemory::copy(str.m_ptr, m_ptr, str.m_len); + *(str.m_ptr + str.m_len) = '\0'; + while(*p && (*p == sep)) + p++; + cutLeft(p - m_ptr); return (m_len != 0); } -bool KviCString::getLine(KviCString &str) +bool KviCString::getLine(KviCString & str) { KVI_ASSERT(str.m_ptr); KVI_ASSERT(str.m_ptr != m_ptr); - if(m_len == 0)return false; - char *p=m_ptr; + if(m_len == 0) + return false; + char * p = m_ptr; //skip to the end - while(*p && (*p != '\n'))p++; + while(*p && (*p != '\n')) + p++; //0123456789 //abcd xyz //^ ^ - str.m_len = p-m_ptr; - str.m_ptr = (char *)KviMemory::reallocate(str.m_ptr,str.m_len+1); - KviMemory::copy(str.m_ptr,m_ptr,str.m_len); - *(str.m_ptr + str.m_len)='\0'; + str.m_len = p - m_ptr; + str.m_ptr = (char *)KviMemory::reallocate(str.m_ptr, str.m_len + 1); + KviMemory::copy(str.m_ptr, m_ptr, str.m_len); + *(str.m_ptr + str.m_len) = '\0'; p++; - cutLeft(p-m_ptr); + cutLeft(p - m_ptr); return true; } KviCString KviCString::getToken(char sep) { - char *p=m_ptr; - while(*p && (*p != sep))p++; - KviCString ret(m_ptr,p); - while(*p && (*p == sep))p++; - cutLeft(p-m_ptr); + char * p = m_ptr; + while(*p && (*p != sep)) + p++; + KviCString ret(m_ptr, p); + while(*p && (*p == sep)) + p++; + cutLeft(p - m_ptr); return ret; } -KviCString & KviCString::vsprintf(const char *fmt,kvi_va_list list) +KviCString & KviCString::vsprintf(const char * fmt, kvi_va_list list) { kvi_va_list save; - kvi_va_copy(save,list); + kvi_va_copy(save, list); - m_ptr=(char *)KviMemory::reallocate(m_ptr,256); + m_ptr = (char *)KviMemory::reallocate(m_ptr, 256); //First try //print...with max 256 chars - m_len=kvi_vsnprintf(m_ptr,256,fmt,list); + m_len = kvi_vsnprintf(m_ptr, 256, fmt, list); //check if we failed if(m_len < 0) { //yes, failed.... - int dummy=256; - do { //we failed, so retry with 256 more chars - dummy+=256; + int dummy = 256; + do + { //we failed, so retry with 256 more chars + dummy += 256; //realloc - m_ptr=(char *)KviMemory::reallocate(m_ptr,dummy); + m_ptr = (char *)KviMemory::reallocate(m_ptr, dummy); //print... - kvi_va_copy(list,save); - m_len=kvi_vsnprintf(m_ptr,dummy,fmt,list); - } while (m_len < 0); + kvi_va_copy(list, save); + m_len = kvi_vsnprintf(m_ptr, dummy, fmt, list); + } while(m_len < 0); } //done... //now m_len is the length of the written string not including the terminator... //perfect! :) - m_ptr=(char *)KviMemory::reallocate(m_ptr,m_len+1); + m_ptr = (char *)KviMemory::reallocate(m_ptr, m_len + 1); kvi_va_end(save); return (*this); } -KviCString & KviCString::sprintf(const char *fmt,...) +KviCString & KviCString::sprintf(const char * fmt, ...) { - m_ptr=(char *)KviMemory::reallocate(m_ptr,256); + m_ptr = (char *)KviMemory::reallocate(m_ptr, 256); //First try kvi_va_list list; - kvi_va_start(list,fmt); + kvi_va_start(list, fmt); //print...with max 256 chars - m_len=kvi_vsnprintf(m_ptr,256,fmt,list); + m_len = kvi_vsnprintf(m_ptr, 256, fmt, list); kvi_va_end(list); //check if we failed - if(m_len < 0){ + if(m_len < 0) + { //yes, failed.... - int dummy=256; - do{ //we failed, so retry with 256 more chars - dummy+=256; + int dummy = 256; + do + { //we failed, so retry with 256 more chars + dummy += 256; //realloc - m_ptr=(char *)KviMemory::reallocate(m_ptr,dummy); + m_ptr = (char *)KviMemory::reallocate(m_ptr, dummy); //print... - kvi_va_start(list,fmt); - m_len=kvi_vsnprintf(m_ptr,dummy,fmt,list); + kvi_va_start(list, fmt); + m_len = kvi_vsnprintf(m_ptr, dummy, fmt, list); kvi_va_end(list); } while(m_len < 0); } //done... //now m_len is the length of the written string not including the terminator... //perfect! :) - m_ptr=(char *)KviMemory::reallocate(m_ptr,m_len+1); + m_ptr = (char *)KviMemory::reallocate(m_ptr, m_len + 1); return (*this); } -int KviCString::find(const char *str,int idx,bool caseS) const +int KviCString::find(const char * str, int idx, bool caseS) const { - if(idx >= m_len)return -1; - char *p=m_ptr + idx; + if(idx >= m_len) + return -1; + char * p = m_ptr + idx; int len = (int)strlen(str); - if(caseS){ - for(;;){ - while(*p && (*p != *str))p++; - if(*p){ - if(kvi_strEqualCSN(str,p,len))return (p-m_ptr); - else p++; - } else return -1; + if(caseS) + { + for(;;) + { + while(*p && (*p != *str)) + p++; + if(*p) + { + if(kvi_strEqualCSN(str, p, len)) + return (p - m_ptr); + else + p++; + } + else + return -1; } - } else { - for(;;){ + } + else + { + for(;;) + { char tmp = toupper(*str); - while(*p && (toupper(*p) != tmp))p++; - if(*p){ - if(kvi_strEqualCIN(str,p,len))return (p-m_ptr); - else p++; - } else return -1; + while(*p && (toupper(*p) != tmp)) + p++; + if(*p) + { + if(kvi_strEqualCIN(str, p, len)) + return (p - m_ptr); + else + p++; + } + else + return -1; } } } -int KviCString::find(char c,int idx) const +int KviCString::find(char c, int idx) const { - if(idx >= m_len)return -1; - char *p=m_ptr + idx; - while(*p && (*p != c))p++; - return (*p ? p-m_ptr : -1); + if(idx >= m_len) + return -1; + char * p = m_ptr + idx; + while(*p && (*p != c)) + p++; + return (*p ? p - m_ptr : -1); } - -int KviCString::findRev(const char *str,int idx,bool caseS) const +int KviCString::findRev(const char * str, int idx, bool caseS) const { - if((m_len + idx) < 0)return -1; - char *p=m_ptr + m_len + idx; + if((m_len + idx) < 0) + return -1; + char * p = m_ptr + m_len + idx; int len = (int)strlen(str); if(caseS) { for(;;) { - while((p >= m_ptr) && (*p != *str))p--; - if(p >= m_ptr){ - if(kvi_strEqualCSN(str,p,len))return (p-m_ptr); - else p--; - } else return -1; + while((p >= m_ptr) && (*p != *str)) + p--; + if(p >= m_ptr) + { + if(kvi_strEqualCSN(str, p, len)) + return (p - m_ptr); + else + p--; + } + else + return -1; } - } else { - for(;;){ + } + else + { + for(;;) + { char tmp = toupper(*str); - while((p >= m_ptr) && (toupper(*p) != tmp))p--; - if(p >= m_ptr){ - if(kvi_strEqualCIN(str,p,len))return (p-m_ptr); - else p--; - } else return -1; + while((p >= m_ptr) && (toupper(*p) != tmp)) + p--; + if(p >= m_ptr) + { + if(kvi_strEqualCIN(str, p, len)) + return (p - m_ptr); + else + p--; + } + else + return -1; } } } int KviCString::findFirstIdx(char c) const { - char *p=m_ptr; - while(*p && (*p != c))p++; - return (*p ? p-m_ptr : -1); + char * p = m_ptr; + while(*p && (*p != c)) + p++; + return (*p ? p - m_ptr : -1); } -int KviCString::findFirstIdx(const char *str,bool caseS) const +int KviCString::findFirstIdx(const char * str, bool caseS) const { // This function can't be used to search inside // multibyte encoded strings... convert your @@ -2834,25 +3143,42 @@ int KviCString::findFirstIdx(const char *str,bool caseS) const // since a single UNICODE char may use one or more bytes... KVI_ASSERT(str); - char *p=m_ptr; + char * p = m_ptr; int len = (int)strlen(str); - if(caseS){ - for(;;){ - while(*p && (*p != *str))p++; - if(*p){ - if(kvi_strEqualCSN(str,p,len))return (p-m_ptr); - else p++; - } else return -1; + if(caseS) + { + for(;;) + { + while(*p && (*p != *str)) + p++; + if(*p) + { + if(kvi_strEqualCSN(str, p, len)) + return (p - m_ptr); + else + p++; + } + else + return -1; } - } else { + } + else + { // this will NOT work for strings that aren't in the current system encoding :( - for(;;){ + for(;;) + { char tmp = toupper(*str); - while(*p && (toupper(*p) != tmp))p++; - if(*p){ - if(kvi_strEqualCIN(str,p,len))return (p-m_ptr); - else p++; - } else return -1; + while(*p && (toupper(*p) != tmp)) + p++; + if(*p) + { + if(kvi_strEqualCIN(str, p, len)) + return (p - m_ptr); + else + p++; + } + else + return -1; } } } @@ -2860,16 +3186,18 @@ int KviCString::findFirstIdx(const char *str,bool caseS) const int KviCString::findLastIdx(char c) const { //Empty string ? - if(m_len < 1)return -1; + if(m_len < 1) + return -1; //p points to the last character in the string - char *p=((m_ptr+m_len)-1); + char * p = ((m_ptr + m_len) - 1); //go back until we find a match or we run to the first char in the string. - while((*p != c) && (p > m_ptr))p--; + while((*p != c) && (p > m_ptr)) + p--; //if *p == c --> matched, else we are at the beginning of the string. - return ((*p == c)? p-m_ptr : -1); + return ((*p == c) ? p - m_ptr : -1); } -int KviCString::findLastIdx(const char *str,bool caseS) const +int KviCString::findLastIdx(const char * str, bool caseS) const { // This function can't be used to search inside // multibyte encoded strings... convert your @@ -2882,38 +3210,58 @@ int KviCString::findLastIdx(const char *str,bool caseS) const //Calc the len of the searched string int len = (int)strlen(str); //Too long ? - if(m_len < len)return -1; + if(m_len < len) + return -1; //p points to the last character in the string - char *p=((m_ptr+m_len)-1); - if(caseS){ - for(;;){ + char * p = ((m_ptr + m_len) - 1); + if(caseS) + { + for(;;) + { //go back until we find a character that mathes or we run to the first char. - while((*p != *str) && (p > m_ptr))p--; - if(*p == *str){ + while((*p != *str) && (p > m_ptr)) + p--; + if(*p == *str) + { //maybe occurrence.... - if(kvi_strEqualCSN(str,p,len))return (p-m_ptr); - else { + if(kvi_strEqualCSN(str, p, len)) + return (p - m_ptr); + else + { //Nope...continue if there is more data to check... - if(p == m_ptr)return -1; + if(p == m_ptr) + return -1; p--; } - } else return -1; //Beginning of the string + } + else + return -1; //Beginning of the string } - } else { + } + else + { // case insensitive - for(;;){ + for(;;) + { //go back until we find a character that mathes or we run to the first char. char tmp = toupper(*str); - while((toupper(*p) != tmp) && (p > m_ptr))p--; - if(toupper(*p) == tmp){ + while((toupper(*p) != tmp) && (p > m_ptr)) + p--; + if(toupper(*p) == tmp) + { //maybe occurrence.... - if(kvi_strEqualCIN(str,p,len))return (p-m_ptr); - else { + if(kvi_strEqualCIN(str, p, len)) + return (p - m_ptr); + else + { //Nope...continue if there is more data to check... - if(p == m_ptr)return -1; + if(p == m_ptr) + return -1; p--; } - } else return -1; //Beginning of the string + } + else + return -1; //Beginning of the string } } } @@ -2924,23 +3272,28 @@ KviCString & KviCString::trim() // abcd 0 // ^ ^ // left right - char *left=m_ptr; - char *right=m_ptr+m_len-1; + char * left = m_ptr; + char * right = m_ptr + m_len - 1; // skip initial spaces - while(isspace(*left))left++; - if(*left){ + while(isspace(*left)) + left++; + if(*left) + { // valid string, left points to first non-space - while((right >= left) && isspace(*right))right--; + while((right >= left) && isspace(*right)) + right--; // 0123456789 // abcd 0 // ^ ^ // left right - m_len = (right - left)+1; - KviMemory::move(m_ptr,left,m_len); - m_ptr = (char *)KviMemory::reallocate(m_ptr,m_len+1); - *(m_ptr+m_len)='\0'; - } else { - m_ptr = (char *)KviMemory::reallocate(m_ptr,1); + m_len = (right - left) + 1; + KviMemory::move(m_ptr, left, m_len); + m_ptr = (char *)KviMemory::reallocate(m_ptr, m_len + 1); + *(m_ptr + m_len) = '\0'; + } + else + { + m_ptr = (char *)KviMemory::reallocate(m_ptr, 1); *m_ptr = '\0'; m_len = 0; } @@ -2951,15 +3304,16 @@ KviCString & KviCString::stripRightWhiteSpace() { if(*m_ptr) { - char *right=m_ptr+m_len-1; - const char *start=right; + char * right = m_ptr + m_len - 1; + const char * start = right; //isspace accepts 0..255 values in MSVC - while((right >= m_ptr) && ((unsigned)(*right +1) <= 256) && isspace( *right ))right--; + while((right >= m_ptr) && ((unsigned)(*right + 1) <= 256) && isspace(*right)) + right--; if(right != start) { m_len = (right - m_ptr) + 1; - m_ptr = (char *)KviMemory::reallocate(m_ptr,m_len+1); - *(m_ptr+m_len)='\0'; + m_ptr = (char *)KviMemory::reallocate(m_ptr, m_len + 1); + *(m_ptr + m_len) = '\0'; } } return (*this); @@ -2969,14 +3323,15 @@ KviCString & KviCString::stripRight(char c) { if(*m_ptr) { - char *right=m_ptr+m_len-1; - const char *start=right; - while((right >= m_ptr) && (*right == c))right--; + char * right = m_ptr + m_len - 1; + const char * start = right; + while((right >= m_ptr) && (*right == c)) + right--; if(right != start) { m_len = (right - m_ptr) + 1; - m_ptr = (char *)KviMemory::reallocate(m_ptr,m_len+1); - *(m_ptr+m_len)='\0'; + m_ptr = (char *)KviMemory::reallocate(m_ptr, m_len + 1); + *(m_ptr + m_len) = '\0'; } } return (*this); @@ -2988,23 +3343,28 @@ KviCString & KviCString::stripSpace() // abcd 0 // ^ ^ // left right - char *left=m_ptr; - char *right=m_ptr+m_len-1; + char * left = m_ptr; + char * right = m_ptr + m_len - 1; // skip initial spaces - while((*left == ' ') || (*left == '\t'))left++; - if(*left){ + while((*left == ' ') || (*left == '\t')) + left++; + if(*left) + { // valid string, left points to first non-space - while((right >= left) && ((*right == ' ') || (*right == '\t')))right--; + while((right >= left) && ((*right == ' ') || (*right == '\t'))) + right--; // 0123456789 // abcd 0 // ^ ^ // left right - m_len = (right - left)+1; - KviMemory::move(m_ptr,left,m_len); - m_ptr = (char *)KviMemory::reallocate(m_ptr,m_len+1); - *(m_ptr+m_len)='\0'; - } else { - m_ptr = (char *)KviMemory::reallocate(m_ptr,1); + m_len = (right - left) + 1; + KviMemory::move(m_ptr, left, m_len); + m_ptr = (char *)KviMemory::reallocate(m_ptr, m_len + 1); + *(m_ptr + m_len) = '\0'; + } + else + { + m_ptr = (char *)KviMemory::reallocate(m_ptr, 1); *m_ptr = '\0'; m_len = 0; } @@ -3013,23 +3373,32 @@ KviCString & KviCString::stripSpace() bool KviCString::isNum() const { - char *p=m_ptr; - while(isspace(*p))p++; - if(*p=='-')p++; - if(!isdigit(*p))return false; - while(isdigit(*p))p++; - while(isspace(*p))p++; - return (*p=='\0'); + char * p = m_ptr; + while(isspace(*p)) + p++; + if(*p == '-') + p++; + if(!isdigit(*p)) + return false; + while(isdigit(*p)) + p++; + while(isspace(*p)) + p++; + return (*p == '\0'); } bool KviCString::isUnsignedNum() const { - char *p=m_ptr; - while(isspace(*p))p++; - if(!isdigit(*p))return false; - while(isdigit(*p))p++; - while(isspace(*p))p++; - return (*p=='\0'); + char * p = m_ptr; + while(isspace(*p)) + p++; + if(!isdigit(*p)) + return false; + while(isdigit(*p)) + p++; + while(isspace(*p)) + p++; + return (*p == '\0'); } static KviCString g_szApplicationWideEmptyString; @@ -3039,8 +3408,7 @@ KviCString & KviCString::emptyString() return g_szApplicationWideEmptyString; } - -bool KviCString::ext_contains(const char * data,const char * item,bool caseS) +bool KviCString::ext_contains(const char * data, const char * item, bool caseS) { if(item && data) { @@ -3050,21 +3418,29 @@ bool KviCString::ext_contains(const char * data,const char * item,bool caseS) { while(*data) { - while(*data && (tolower(*data) != c))data++; + while(*data && (tolower(*data) != c)) + data++; if(*data) { - if(kvi_strEqualCSN(item,data,len))return true; - else data++; + if(kvi_strEqualCSN(item, data, len)) + return true; + else + data++; } } - } else { + } + else + { while(*data) { - while(*data && (tolower(*data) != c))data++; + while(*data && (tolower(*data) != c)) + data++; if(*data) { - if(kvi_strEqualCIN(item,data,len))return true; - else data++; + if(kvi_strEqualCIN(item, data, len)) + return true; + else + data++; } } } @@ -3072,7 +3448,6 @@ bool KviCString::ext_contains(const char * data,const char * item,bool caseS) return false; } - //void KviCString::pointerToBitString(const void * ptr) //{ // m_len = (sizeof(void *) * 8); @@ -3099,9 +3474,6 @@ bool KviCString::ext_contains(const char * data,const char * item,bool caseS) // return ptr; //} - - - // static char ascii_jump_table[256]= // { // // 000 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 diff --git a/src/kvilib/core/KviCString.h b/src/kvilib/core/KviCString.h index 3adff208b..bf0e91bd5 100644 --- a/src/kvilib/core/KviCString.h +++ b/src/kvilib/core/KviCString.h @@ -31,7 +31,7 @@ #include #ifdef HAVE_STRINGS_H - #include // useless ? +#include // useless ? #endif #include @@ -42,8 +42,6 @@ #include "KviHeapObject.h" #include "kvi_stdarg.h" - - // // sigh... // IRC is not UNICODE ...(yet) :( @@ -51,49 +49,47 @@ #undef __KVI_EXTERN #ifdef _KVI_STRING_CPP_ - #define __KVI_EXTERN +#define __KVI_EXTERN #else - #define __KVI_EXTERN extern +#define __KVI_EXTERN extern #endif - -__KVI_EXTERN KVILIB_API bool kvi_qstringEqualCI(const QString &s1,const QString &s2); - +__KVI_EXTERN KVILIB_API bool kvi_qstringEqualCI(const QString & s1, const QString & s2); // Include inlined assembly implementations if required // Returns true if the string str1 is equal to str2. case sensitive. -__KVI_EXTERN KVILIB_API bool kvi_strEqualCS(const char *str1,const char *str2); +__KVI_EXTERN KVILIB_API bool kvi_strEqualCS(const char * str1, const char * str2); // Returns true if the forst len characters of string str1 are equal to str2. // case sensitive. // Note that if str1 or str2 are shorter than len characters then are considered as NOT equal! -__KVI_EXTERN KVILIB_API bool kvi_strEqualCSN(const char *str1,const char *str2,int len); +__KVI_EXTERN KVILIB_API bool kvi_strEqualCSN(const char * str1, const char * str2, int len); // no such tricks in non-asm -#define kvi_strEqualNoLocaleCI(str1,str2) kvi_strEqualCI(str1,str2) -#define kvi_strEqualNoLocaleCIN(str1,str2,len) kvi_strEqualCIN(str1,str2,len) +#define kvi_strEqualNoLocaleCI(str1, str2) kvi_strEqualCI(str1, str2) +#define kvi_strEqualNoLocaleCIN(str1, str2, len) kvi_strEqualCIN(str1, str2, len) #define kvi_strLen(str) strlen(str) // Returns true if the string str1 is equal to str2. // case insensitive. -__KVI_EXTERN KVILIB_API bool kvi_strEqualCI(const char *str1,const char *str2); +__KVI_EXTERN KVILIB_API bool kvi_strEqualCI(const char * str1, const char * str2); // Returns true if the forst len characters of string str1 are equal to str2. // case insensitive. // Note that if str1 or str2 are shorter than len characters then are considered as NOT equal! -__KVI_EXTERN KVILIB_API bool kvi_strEqualCIN(const char *str1,const char *str2,int len); +__KVI_EXTERN KVILIB_API bool kvi_strEqualCIN(const char * str1, const char * str2, int len); // My own implementations of strcmp and strncasecmp // Once I wrote it, I KNOW what they do : ALWAYS :) // Note that greater here means that comes AFTER in the alphabetic order. -__KVI_EXTERN KVILIB_API int kvi_strcmpCI(const char *str1,const char *str2); +__KVI_EXTERN KVILIB_API int kvi_strcmpCI(const char * str1, const char * str2); //__KVI_EXTERN KVILIB_API int kvi_strcmpCIN(const char *str1,const char *str2,int len); -__KVI_EXTERN KVILIB_API int kvi_strcmpCS(const char *str1,const char *str2); +__KVI_EXTERN KVILIB_API int kvi_strcmpCS(const char * str1, const char * str2); // some wide char stuff typedef kvi_u16_t kvi_wchar_t; typedef kvi_u32_t kvi_wslen_t; __KVI_EXTERN KVILIB_API kvi_wslen_t kvi_wstrlen(const kvi_wchar_t * str); -__KVI_EXTERN KVILIB_API int kvi_wvsnprintcf(kvi_wchar_t * buffer,kvi_wslen_t len,const char *fmt,kvi_va_list list); -__KVI_EXTERN KVILIB_API int kvi_wvsnprintf(kvi_wchar_t * buffer,kvi_wslen_t len,const kvi_wchar_t *fmt,kvi_va_list list); +__KVI_EXTERN KVILIB_API int kvi_wvsnprintcf(kvi_wchar_t * buffer, kvi_wslen_t len, const char * fmt, kvi_va_list list); +__KVI_EXTERN KVILIB_API int kvi_wvsnprintf(kvi_wchar_t * buffer, kvi_wslen_t len, const kvi_wchar_t * fmt, kvi_va_list list); //============================================================================= // @@ -112,7 +108,11 @@ public: // No particular reason for these two names... // It is just because I like it :) - enum KviFormatConstructorTag { Format, Sprintf }; + enum KviFormatConstructorTag + { + Format, + Sprintf + }; //============================================================================= // Constructors @@ -122,45 +122,46 @@ public: KviCString(); // Deep copy of the NULL TERMINATED string (NULL str SAFE) - KviCString(const char *str); + KviCString(const char * str); // Copy len characters from string str (NOT NULL str SAFE, str MUST be at least len chars long) - KviCString(const char *str,int len); + KviCString(const char * str, int len); // bg and end are pointers to a SINGLE string.
// A string is extracted starting from bg and ending at end (not included).
- KviCString(const char *bg,const char *end); + KviCString(const char * bg, const char * end); // Format constructor.
// tag is....yes....a dummy number used to resolve ambiguities.
// It is SAFE: will fail only if we run out of memory,
// but can handle only %s %d %u and %c. - KviCString(KviFormatConstructorTag tag,const char *fmt,...); + KviCString(KviFormatConstructorTag tag, const char * fmt, ...); // Carbon copy :)...fast - KviCString(const KviCString &str); + KviCString(const KviCString & str); // Compat with QT...
// WARNING : With QT2.x it WILL loose UNICODE data.
// Safe even if the QString is null. - KviCString(const QString &str); + KviCString(const QString & str); - KviCString(const QByteArray &str); + KviCString(const QByteArray & str); // Fill sonstructor. // Creates a string long fillLen characters filled with character c.
- KviCString(char c,int fillLen = 1); + KviCString(char c, int fillLen = 1); KviCString(const kvi_wchar_t * unicode); - KviCString(const kvi_wchar_t * unicode,int len); + KviCString(const kvi_wchar_t * unicode, int len); // just free(m_ptr) ~KviCString(); + public: //yes...public..but think it as private...:) - char *m_ptr; // pointer to allocated buffer, do not change this! - int m_len; // string data length not including the terminator + char * m_ptr; // pointer to allocated buffer, do not change this! + int m_len; // string data length not including the terminator public: //============================================================================= @@ -168,16 +169,16 @@ public: //============================================================================= // Internal data buffer - char * ptr() const { return m_ptr; }; + char * ptr() const { return m_ptr; }; // Length: fast, cached - int len() const { return m_len; }; + int len() const { return m_len; }; // I hate this operator...but sometimes it is really useful // especially in macros (KviOptions.cpp) - operator const char * () const { return m_ptr; }; + operator const char *() const { return m_ptr; }; - bool isEmpty() const { return (m_len == 0); }; - bool hasData() const { return (m_len != 0); }; + bool isEmpty() const { return (m_len == 0); }; + bool hasData() const { return (m_len != 0); }; // this is better than string = "", it does not call strlen void clear(); @@ -186,11 +187,11 @@ public: bool hasNonWhiteSpaceData() const; // Character at zero-based index : always safe! - char & at(int idx) const { return ((idx < m_len) ? m_ptr[idx] : m_ptr[m_len]); }; + char & at(int idx) const { return ((idx < m_len) ? m_ptr[idx] : m_ptr[m_len]); }; // character checks - bool lastCharIs(char ch) const { return (m_len > 0) ? (*(m_ptr + m_len - 1) == ch) : false; }; - bool firstCharIs(char ch) const { return (*m_ptr == ch); }; + bool lastCharIs(char ch) const { return (m_len > 0) ? (*(m_ptr + m_len - 1) == ch) : false; }; + bool firstCharIs(char ch) const { return (*m_ptr == ch); }; // upper and lower case copies KviCString upper() const; @@ -201,12 +202,12 @@ public: // left, right & co. // all parameters are safety-checked KviCString left(int maxLen) const; - KviCString right(int maxLen) const ; - KviCString middle(int idx,int maxLen) const; + KviCString right(int maxLen) const; + KviCString middle(int idx, int maxLen) const; - KviCString leftToFirst(char c,bool bIncluded = false) const; - KviCString leftToLast(char c,bool bIncluded = false) const; -// KviCString leftToFirst(const char * str); const; + KviCString leftToFirst(char c, bool bIncluded = false) const; + KviCString leftToLast(char c, bool bIncluded = false) const; + // KviCString leftToFirst(const char * str); const; //============================================================================= // Non-const interface (write stuff) @@ -216,31 +217,35 @@ public: KviCString & setLen(int len); // str must not be 0, but len can be anything (it is checked) - KviCString & setStr(const char *str,int len = -1); + KviCString & setStr(const char * str, int len = -1); // Like the special constructor that gets the same args. - void extractFromString(const char *begin,const char *end); + void extractFromString(const char * begin, const char * end); // Safe sprintf. This one will never write past the end of the string // It can handle only %s %d %u and %c format flags. - KviCString & sprintf(const char *fmt,...); + KviCString & sprintf(const char * fmt, ...); - KviCString & vsprintf(const char *fmt,kvi_va_list list); + KviCString & vsprintf(const char * fmt, kvi_va_list list); // append functions - void append(const KviCString &str); - void append(const QString &str); + void append(const KviCString & str); + void append(const QString & str); void append(char c); - void append(const char *str); // str CAN be 0 - void append(const char *str,int len); // str CAN NOT be 0, and MUST be at least len chars long - void append(KviFormatConstructorTag dummy,const char *fmt,...); + void append(const char * str); // str CAN be 0 + void append(const char * str, int len); // str CAN NOT be 0, and MUST be at least len chars long + void append(KviFormatConstructorTag dummy, const char * fmt, ...); // prepend stuff, same as above - void prepend(const KviCString &str); - void prepend(const char *str); // str CAN be 0 - void prepend(const char *str,int len); // str CAN NOT be 0, and MUST be at least len chars long + void prepend(const KviCString & str); + void prepend(const char * str); // str CAN be 0 + void prepend(const char * str, int len); // str CAN NOT be 0, and MUST be at least len chars long // if lastCharIs ch does nothing otherwise appends it - void ensureLastCharIs(char ch) { if(!lastCharIs(ch))append(ch); }; + void ensureLastCharIs(char ch) + { + if(!lastCharIs(ch)) + append(ch); + }; // Change THIS string to uppercase or lowercase void toUpperISO88591(); @@ -249,41 +254,67 @@ public: void toLower(); // Assignment - KviCString & operator=(const KviCString &str); // deep copy - KviCString & operator=(const char *str); // str can be NULL here - KviCString & operator=(char c); // 2 bytes allocated,m_len = 1 - KviCString & operator=(const QString &str); - KviCString & operator=(const QByteArray &str); + KviCString & operator=(const KviCString & str); // deep copy + KviCString & operator=(const char * str); // str can be NULL here + KviCString & operator=(char c); // 2 bytes allocated,m_len = 1 + KviCString & operator=(const QString & str); + KviCString & operator=(const QByteArray & str); // Append operators - KviCString & operator+=(const KviCString &str) { append(str); return (*this); }; - KviCString & operator+=(const char *str) { append(str); return (*this); }; - KviCString & operator+=(char c) { append(c); return (*this); }; - KviCString & operator+=(const QString &str) { append(str); return (*this); }; + KviCString & operator+=(const KviCString & str) + { + append(str); + return (*this); + }; + KviCString & operator+=(const char * str) + { + append(str); + return (*this); + }; + KviCString & operator+=(char c) + { + append(c); + return (*this); + }; + KviCString & operator+=(const QString & str) + { + append(str); + return (*this); + }; // Comparison - bool equalsCI(const KviCString &other) const { if(m_len != other.m_len)return false; return kvi_strEqualCI(m_ptr,other.m_ptr); }; - bool equalsCS(const KviCString &other) const { if(m_len != other.m_len)return false; return kvi_strEqualCS(m_ptr,other.m_ptr); }; - bool equalsCI(const char * other) const { return kvi_strEqualCI(m_ptr,other); }; - bool equalsCS(const char * other) const { return kvi_strEqualCS(m_ptr,other); }; - bool equalsCIN(const char * other,int len) const { return kvi_strEqualCIN(m_ptr,other,len); }; - bool equalsCSN(const char * other,int len) const { return kvi_strEqualCSN(m_ptr,other,len); }; + bool equalsCI(const KviCString & other) const + { + if(m_len != other.m_len) + return false; + return kvi_strEqualCI(m_ptr, other.m_ptr); + }; + bool equalsCS(const KviCString & other) const + { + if(m_len != other.m_len) + return false; + return kvi_strEqualCS(m_ptr, other.m_ptr); + }; + bool equalsCI(const char * other) const { return kvi_strEqualCI(m_ptr, other); }; + bool equalsCS(const char * other) const { return kvi_strEqualCS(m_ptr, other); }; + bool equalsCIN(const char * other, int len) const { return kvi_strEqualCIN(m_ptr, other, len); }; + bool equalsCSN(const char * other, int len) const { return kvi_strEqualCSN(m_ptr, other, len); }; //============================================================================= // HEX and Base64 stuff //============================================================================= // HEX transforms functions - void bufferToHex(const char *buffer,int len); + void bufferToHex(const char * buffer, int len); // Allocates the needed buffer and returns the allocated length, // returns -1 in case of error (and allocates nothing) // The string MUST contain only hex digits, and the digits MUST be in couples. (len % 2) must equal 0! // So this will fail also if there are leading or trailing spaces! - int hexToBuffer(char ** buffer,bool bNullToNewlines = false); + int hexToBuffer(char ** buffer, bool bNullToNewlines = false); // BASE64 stuff - void bufferToBase64(const char * buffer,int len); + void bufferToBase64(const char * buffer, int len); // same as hexToBuffer but obviously transforms base64 notation to binary data (len % 4) must equal 0! - int base64ToBuffer(char ** buffer,bool bNullToNewlines = false); + int base64ToBuffer(char ** buffer, bool bNullToNewlines = false); // frees a buffer allocated by hexToBuffer or base64ToBuffer static void freeBuffer(char * buffer); @@ -293,26 +324,26 @@ public: //============================================================================= // cut - KviCString & cutLeft(int len); // kills the first len characters - KviCString & cutRight(int len); // kills the last len characters - KviCString & cut(int idx,int len); - KviCString & cutToFirst(char c,bool bIncluded = true); // cuts the left part of the string up to the first character c or does nothing if the char c is not in the string - KviCString & cutToLast(char c,bool bIncluded = true); - KviCString & cutFromFirst(char c,bool bIncluded = true); - KviCString & cutFromLast(char c,bool bIncluded = true); - KviCString & cutToFirst(const char *c,bool bIncluded = true); // cuts the left part of the string up to the first character c or does nothing if the char c is not in the string - KviCString & cutToLast(const char *c,bool bIncluded = true); - KviCString & cutFromFirst(const char *c,bool bIncluded = true); - KviCString & cutFromLast(const char *c,bool bIncluded = true); + KviCString & cutLeft(int len); // kills the first len characters + KviCString & cutRight(int len); // kills the last len characters + KviCString & cut(int idx, int len); + KviCString & cutToFirst(char c, bool bIncluded = true); // cuts the left part of the string up to the first character c or does nothing if the char c is not in the string + KviCString & cutToLast(char c, bool bIncluded = true); + KviCString & cutFromFirst(char c, bool bIncluded = true); + KviCString & cutFromLast(char c, bool bIncluded = true); + KviCString & cutToFirst(const char * c, bool bIncluded = true); // cuts the left part of the string up to the first character c or does nothing if the char c is not in the string + KviCString & cutToLast(const char * c, bool bIncluded = true); + KviCString & cutFromFirst(const char * c, bool bIncluded = true); + KviCString & cutFromLast(const char * c, bool bIncluded = true); // & paste - KviCString & insert(int idx,const char *data); - KviCString & insert(int idx,char c); + KviCString & insert(int idx, const char * data); + KviCString & insert(int idx, char c); //Replaces all occurrences of char c with the string str - KviCString & replaceAll(const char c,const char *str); + KviCString & replaceAll(const char c, const char * str); //same as above but with a string - KviCString & replaceAll(const char *toFind,const char *str,bool bCaseS = true); + KviCString & replaceAll(const char * toFind, const char * str, bool bCaseS = true); - KviCString & transliterate(const char * szToFind,const char * szReplacement); + KviCString & transliterate(const char * szToFind, const char * szReplacement); // Strips whitespace characters from beginning of this string. KviCString & stripLeftWhiteSpace(); @@ -329,7 +360,7 @@ public: KviCString & stripRight(char c); // either "truncate to" or "add padding up" to iLen characters. - KviCString & padRight(int iLen, const char c='\0'); + KviCString & padRight(int iLen, const char c = '\0'); //============================================================================= // Tokenize //============================================================================= @@ -338,24 +369,24 @@ public: // and returns true if there are more tokens to extract
// Does not strip initial separators!!
// str can NOT be this string. - bool getToken(KviCString &str,char sep); + bool getToken(KviCString & str, char sep); // Does not strip initial separators!
// Can assign also to this string. KviCString getToken(char sep); // Extracts a line from the string.
// Returns false if there was no data to extract - bool getLine(KviCString &str); + bool getLine(KviCString & str); // splits this string in a null-terminated array of strings // separated by sep. - KviCString ** splitToArray(char sep,int max,int * realCount) const; + KviCString ** splitToArray(char sep, int max, int * realCount) const; //KviCString ** splitToArray(const char * sep,int max,int * realCount) const; static void freeArray(KviCString ** strings); // joins the array to this string // if sep is not 0, it is inserted between the strings // if bLastSep is true and sep is non 0, then sep is also appended at the end // of the buffer (after the last string) - void joinFromArray(KviCString ** strings,const char * sep = 0,bool bLastSep = false); + void joinFromArray(KviCString ** strings, const char * sep = 0, bool bLastSep = false); //============================================================================= // Utils @@ -366,21 +397,21 @@ public: KviCString & hexEncodeWithTable(const unsigned char table[256]); KviCString & hexEncodeWhiteSpace(); KviCString & hexDecode(const char * pFrom); - KviCString & hexDecode(){ return hexDecode(m_ptr); }; + KviCString & hexDecode() { return hexDecode(m_ptr); }; //============================================================================= // Contains / occurrence count //============================================================================= // Returns true if at least one occurrence of str is found - bool contains(const char *str,bool caseS=true) const; + bool contains(const char * str, bool caseS = true) const; // Returns true if at least one occurrence of character c is found in this string - bool contains(char c,bool caseS=true) const; + bool contains(char c, bool caseS = true) const; // Returns the number of occurrences of string str in this string.
// Overlapped matches are counted. - int occurrences(const char *str,bool caseS=true) const; + int occurrences(const char * str, bool caseS = true) const; // Returns the number of occurrences of character c in this string - int occurrences(char c,bool caseS=true) const; + int occurrences(char c, bool caseS = true) const; //============================================================================= // Find @@ -393,44 +424,44 @@ public: // Finds the first occurrence of the sub-string str in this string,
// and returns its zero-based index or -1 if the sub-string can not be found.
// str can NOT be 0 here. - int findFirstIdx(const char *str,bool caseS = true) const; + int findFirstIdx(const char * str, bool caseS = true) const; // Finds the last occurrence of the character c in this string,
// and returns its zero-based index or -1 if the character can not be found. int findLastIdx(char c) const; // Finds the last occurrence of the sub-string str in this string,
// and returns its zero-based index or -1 if the sub-string can not be found.
// str can NOT be 0 here. - int findLastIdx(const char *str,bool caseS = true) const; + int findLastIdx(const char * str, bool caseS = true) const; - int find(char c,int startIdx) const; - int find(const char * str,int startIdx,bool caseS = true) const; - int findRev(const char * str,int startIdx,bool caseS = true) const; + int find(char c, int startIdx) const; + int find(const char * str, int startIdx, bool caseS = true) const; + int findRev(const char * str, int startIdx, bool caseS = true) const; //============================================================================= // Numbers //============================================================================= // everything in base 10.... no overflow checks here - long toLong(bool *bOk=0) const; - unsigned long toULong(bool *bOk=0) const; - long long toLongLong(bool *bOk=0) const; - unsigned long long toULongLong(bool *bOk=0) const; - char toChar(bool *bOk=0) const { return (char)toLong(bOk); }; - unsigned char toUChar(bool *bOk=0) const { return (unsigned char)toULong(bOk); }; - int toInt(bool *bOk=0) const { return (int)toLong(bOk); }; - unsigned int toUInt(bool *bOk=0) const { return (unsigned int)toULong(bOk); }; - short toShort(bool *bOk=0) const { return (short)toLong(bOk); }; - unsigned short toUShort(bool *bOk=0) const { return (unsigned short)toLong(bOk); }; + long toLong(bool * bOk = 0) const; + unsigned long toULong(bool * bOk = 0) const; + long long toLongLong(bool * bOk = 0) const; + unsigned long long toULongLong(bool * bOk = 0) const; + char toChar(bool * bOk = 0) const { return (char)toLong(bOk); }; + unsigned char toUChar(bool * bOk = 0) const { return (unsigned char)toULong(bOk); }; + int toInt(bool * bOk = 0) const { return (int)toLong(bOk); }; + unsigned int toUInt(bool * bOk = 0) const { return (unsigned int)toULong(bOk); }; + short toShort(bool * bOk = 0) const { return (short)toLong(bOk); }; + unsigned short toUShort(bool * bOk = 0) const { return (unsigned short)toLong(bOk); }; KviCString & setNum(long num); KviCString & setNum(unsigned long num); - KviCString & setNum(int num) { return setNum((long)num); }; - KviCString & setNum(unsigned int num) { return setNum((unsigned long)num); }; - KviCString & setNum(short num) { return setNum((long)num); }; - KviCString & setNum(unsigned short num) { return setNum((unsigned long)num); }; - KviCString & setNum(char num) { return setNum((long)num); }; - KviCString & setNum(unsigned char num) { return setNum((unsigned long)num); }; + KviCString & setNum(int num) { return setNum((long)num); }; + KviCString & setNum(unsigned int num) { return setNum((unsigned long)num); }; + KviCString & setNum(short num) { return setNum((long)num); }; + KviCString & setNum(unsigned short num) { return setNum((unsigned long)num); }; + KviCString & setNum(char num) { return setNum((long)num); }; + KviCString & setNum(unsigned char num) { return setNum((unsigned long)num); }; // Returns true if the string contains only digits and an optional '-' character // at the beginning. @@ -440,7 +471,7 @@ public: bool isUnsignedNum() const; // special functions for multiple bases - long toLongExt(bool *bOk = 0,int base = 0); + long toLongExt(bool * bOk = 0, int base = 0); // unsigned long toULongExt(bool *bOk = 0,int base = 0); //never used // returns an empty string... @@ -461,50 +492,49 @@ public: //============================================================================= // FIXME: Should it be KviCStringExt::contains namespace ? - static bool ext_contains(const char * data,const char * item,bool caseS = true); + static bool ext_contains(const char * data, const char * item, bool caseS = true); }; // FIXME: the functions below should end in the KviCString namespace ??? - // Cool string parsing function. // It will extract the first found token from the string aux_ptr, and return // a pointer to the beginning of the next token, or end of the string. // It skips the initial sep characters! -__KVI_EXTERN KVILIB_API const char * kvi_extractToken(KviCString &str,const char *aux_ptr,char sep =' '); +__KVI_EXTERN KVILIB_API const char * kvi_extractToken(KviCString & str, const char * aux_ptr, char sep = ' '); // Does not skip the beginning separators! // Extracts data from the string up to the next separator character or the end of the string. // and returns a pointer to that separator (or string end). -__KVI_EXTERN KVILIB_API const char * kvi_extractUpTo(KviCString &str,const char *aux_ptr,char sep=' '); +__KVI_EXTERN KVILIB_API const char * kvi_extractUpTo(KviCString & str, const char * aux_ptr, char sep = ' '); // Reduced vsnprintf... // Handles %s,%c,%d,%u (%% are TWO percents here and not one.) // Returns -1 if the formatted string exceeded the buffer length. // Otherwise returns the length of the formatted buffer...(not including '\0') -__KVI_EXTERN KVILIB_API int kvi_vsnprintf(char *buffer,int len,const char *fmt,kvi_va_list list); +__KVI_EXTERN KVILIB_API int kvi_vsnprintf(char * buffer, int len, const char * fmt, kvi_va_list list); // Reduced vsnprintf: special version for irc. // Handles %s,%c,%d,%u (%% are TWO percents here and not one.) // Writes up to 510 characters and terminates the string with a CRLF // Sets bTruncated if the requested format string was too large to fit in 512 bytes // otherwise sets it to false; The buffer MUST be at least 512 bytes long. // Always returns the length of the formatted buffer...(max 512 - min 2=CRLF) -__KVI_EXTERN KVILIB_API int kvi_irc_vsnprintf(char *buffer,const char *fmt,kvi_va_list list,bool *bTruncated); +__KVI_EXTERN KVILIB_API int kvi_irc_vsnprintf(char * buffer, const char * fmt, kvi_va_list list, bool * bTruncated); // WILDCARD EXPRESSION MATCHING FUNCTIONS // Returns true if the two regular expressions with wildcards matches -__KVI_EXTERN KVILIB_API bool kvi_matchWildExpr(register const char *m1,register const char *m2); +__KVI_EXTERN KVILIB_API bool kvi_matchWildExpr(register const char * m1, register const char * m2); // Returns true if the two regular expressions with wildcards matches, case sensitive //__KVI_EXTERN bool kvi_matchWildExprCS(register const char *m1,register const char *m2); // actually unused // Same as kvi_matchWildExpr but with an additional char that acts as string terminator // If there is a match this function returns true and puts the pointers where it stopped in r1 and r2 -__KVI_EXTERN KVILIB_API bool kvi_matchWildExprWithTerminator(register const char *m1,register const char *m2,char terminator, - const char ** r1,const char ** r2); +__KVI_EXTERN KVILIB_API bool kvi_matchWildExprWithTerminator(register const char * m1, register const char * m2, char terminator, + const char ** r1, const char ** r2); // Returns true if the wildcard expression exp matches the string str -__KVI_EXTERN KVILIB_API bool kvi_matchStringCI(register const char * exp,register const char * str); +__KVI_EXTERN KVILIB_API bool kvi_matchStringCI(register const char * exp, register const char * str); #define kvi_matchString kvi_matchStringCI -__KVI_EXTERN KVILIB_API bool kvi_matchStringCS(register const char * exp,register const char * str); -__KVI_EXTERN KVILIB_API bool kvi_matchStringWithTerminator(register const char * exp,register const char * str,char terminator,const char ** r1,const char ** r2); +__KVI_EXTERN KVILIB_API bool kvi_matchStringCS(register const char * exp, register const char * str); +__KVI_EXTERN KVILIB_API bool kvi_matchStringWithTerminator(register const char * exp, register const char * str, char terminator, const char ** r1, const char ** r2); // This function works like a particular case of strncmp. // It evaluates if str2 is the terminal part of str1. @@ -516,36 +546,68 @@ __KVI_EXTERN KVILIB_API bool kvi_matchStringWithTerminator(register const char * // but "this is an experiment" // 012345678901234567890 // if we call kvi_strsubRevCS("this is an experiment","an", 9) we got a match. -__KVI_EXTERN KVILIB_API int kvi_strMatchRevCS(const char *str1, const char *str2, int index=-1); +__KVI_EXTERN KVILIB_API int kvi_strMatchRevCS(const char * str1, const char * str2, int index = -1); // KviCString comparison non-member operators -__KVI_EXTERN inline bool operator==(const KviCString &left,const KviCString &right) -{ return (left.m_len == right.m_len) ? kvi_strEqualCS(left.m_ptr,right.m_ptr) : false; } -__KVI_EXTERN inline bool operator==(const KviCString &left,const char *right) -{ return kvi_strEqualCS(left.m_ptr,right); } -__KVI_EXTERN inline bool operator==(const char *left,const KviCString &right) -{ return kvi_strEqualCS(left,right.m_ptr); } -__KVI_EXTERN inline bool operator!=(const KviCString &left,const KviCString &right) -{ return !kvi_strEqualCS(left.m_ptr,right.m_ptr); } -__KVI_EXTERN inline bool operator!=(const KviCString &left,const char *right) -{ return !kvi_strEqualCS(left.m_ptr,right); } -__KVI_EXTERN inline bool operator!=(const char *left,const KviCString &right) -{ return !kvi_strEqualCS(left,right.m_ptr); } - -__KVI_EXTERN inline KviCString operator+(const KviCString &left,const KviCString &right) -{ KviCString ret(left); ret += right; return ret; } -__KVI_EXTERN inline KviCString operator+(const KviCString &left,const char *right) -{ KviCString ret(left); ret += right; return ret; } -__KVI_EXTERN inline KviCString operator+(const char *left,const KviCString &right) -{ KviCString ret(left); ret += right; return ret; } -__KVI_EXTERN inline KviCString operator+(const KviCString &left,char right) -{ KviCString ret(left); ret += right; return ret; } -__KVI_EXTERN inline KviCString operator+(char left,const KviCString &right) -{ KviCString ret(left); ret += right; return ret; } - -inline int kvi_compare(const KviCString * p1,const KviCString * p2) +__KVI_EXTERN inline bool operator==(const KviCString & left, const KviCString & right) +{ + return (left.m_len == right.m_len) ? kvi_strEqualCS(left.m_ptr, right.m_ptr) : false; +} +__KVI_EXTERN inline bool operator==(const KviCString & left, const char * right) +{ + return kvi_strEqualCS(left.m_ptr, right); +} +__KVI_EXTERN inline bool operator==(const char * left, const KviCString & right) +{ + return kvi_strEqualCS(left, right.m_ptr); +} +__KVI_EXTERN inline bool operator!=(const KviCString & left, const KviCString & right) +{ + return !kvi_strEqualCS(left.m_ptr, right.m_ptr); +} +__KVI_EXTERN inline bool operator!=(const KviCString & left, const char * right) +{ + return !kvi_strEqualCS(left.m_ptr, right); +} +__KVI_EXTERN inline bool operator!=(const char * left, const KviCString & right) +{ + return !kvi_strEqualCS(left, right.m_ptr); +} + +__KVI_EXTERN inline KviCString operator+(const KviCString & left, const KviCString & right) +{ + KviCString ret(left); + ret += right; + return ret; +} +__KVI_EXTERN inline KviCString operator+(const KviCString & left, const char * right) +{ + KviCString ret(left); + ret += right; + return ret; +} +__KVI_EXTERN inline KviCString operator+(const char * left, const KviCString & right) +{ + KviCString ret(left); + ret += right; + return ret; +} +__KVI_EXTERN inline KviCString operator+(const KviCString & left, char right) +{ + KviCString ret(left); + ret += right; + return ret; +} +__KVI_EXTERN inline KviCString operator+(char left, const KviCString & right) +{ + KviCString ret(left); + ret += right; + return ret; +} + +inline int kvi_compare(const KviCString * p1, const KviCString * p2) { - return kvi_strcmpCI(p1->ptr(),p2->ptr()); + return kvi_strcmpCI(p1->ptr(), p2->ptr()); } #endif //_KVI_STRING_H_ diff --git a/src/kvilib/core/KviError.cpp b/src/kvilib/core/KviError.cpp index 4bf5c5158..badddc146 100644 --- a/src/kvilib/core/KviError.cpp +++ b/src/kvilib/core/KviError.cpp @@ -22,7 +22,6 @@ // //============================================================================= - #define _KVI_ERROR_CPP_ #include "KviLocale.h" @@ -31,13 +30,13 @@ #include "KviQString.h" #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - #include // for the WSAE* error codes +#include // for the WSAE* error codes #endif #include #ifdef HAVE_STRERROR - #include // for strerror() +#include // for strerror() #endif // FIXME: This stuff should basically die and be eventually replaced with some @@ -45,77 +44,76 @@ // // WARNING: getDescription() is not even thread safe... it will die in the near future -const char * g_errorTable[KviError::ErrorCount]= -{ - __tr_no_lookup("Success"), // 000: success - __tr_no_lookup("Unknown error"), // 001: unkonwnError - __tr_no_lookup("Internal error"), // 002: internalError - __tr_no_lookup("Unknown command"), // 003: unknownCommand - __tr_no_lookup("Missing closing brace"), // 004: missingClosingBrace - __tr_no_lookup("Unexpected end of command in string"), // 005: unexpectedEndInString - __tr_no_lookup("Unexpected end of command in dictionary key"), // 006: unexpectedEndInDictionaryKey - __tr_no_lookup("Switch dash without switch letter"), // 007: switchDashWithoutSwitchLetter - __tr_no_lookup("Unknown function"), // 008: unknownFunction - __tr_no_lookup("Unexpected end of command in parenthesis"), // 009: unexpectedEndInParenthesis - __tr_no_lookup("Unexpected end of command in function parameters"), // 010: unexpectedEndInFunctionParams - __tr_no_lookup("Missing variable name"), // 011: missingVariableName - __tr_no_lookup("Variable or identifier expected"), // 012: variableOrIdentifierExpected - __tr_no_lookup("Left operand is not a number"), // 013: leftOperandIsNotANumber - __tr_no_lookup("Multiple operations not supported for numeric operators"), // 014: multipleOpsNotSupportedForOperator - __tr_no_lookup("Division by zero"), // 015: divisionByZero - __tr_no_lookup("Modulo by zero"), // 016: moduloByZero - __tr_no_lookup("Right operand is not a number"), // 017: rightOperandIsNotANumber - __tr_no_lookup("Unterminated expression (missing ')' ?)"), // 018: unterminatedExpression - __tr_no_lookup("Unterminated subexpression (Parenthesis mismatch)"), // 019: unterminatedSubexpression - __tr_no_lookup("Unexpected character"), // 020: unexpectedCharacter - __tr_no_lookup("Unknown operator"), // 021: unknownOperator - __tr_no_lookup("No host to resolve"), // 022 - __tr_no_lookup("(DNS internal) Unsupported address family"), // 023 - __tr_no_lookup("Valid name but the host has no IP address"), // 024 - __tr_no_lookup("Unrecoverable nameserver error (crashed?)"), // 025 - __tr_no_lookup("DNS temporary fault (try again)"), // 026 - __tr_no_lookup("(DNS internal) Bad flags"), // 027 - __tr_no_lookup("(DNS internal) Out of memory"), // 028 - __tr_no_lookup("(DNS internal) Service not supported"), // 029 - __tr_no_lookup("Unknown node (host not found)"), // 030 - __tr_no_lookup("(DNS internal) Unsupported socket type"), // 031 - __tr_no_lookup("DNS query failed"), // 032 - __tr_no_lookup("This KVIrc executable has no IPv6 support"), // 033 - __tr_no_lookup("Host not found"), // 034 - __tr_no_lookup("(DNS internal) IPC failure (slave data corrupted)"), // 035 - __tr_no_lookup("Another connection is in progress"), // 036 - __tr_no_lookup("Invalid IP address"), // 037 - __tr_no_lookup("Socket creation failed"), // 038 - __tr_no_lookup("Failed to put the socket in non blocking mode"), // 039 - __tr_no_lookup("Bad file descriptor"), // 040 - __tr_no_lookup("Out of address space"), // 041 - __tr_no_lookup("Connection refused"), // 042 - __tr_no_lookup("Kernel networking panic"), // 043 - __tr_no_lookup("Connection timed out"), // 044 - __tr_no_lookup("Network is unreachable"), // 045 - __tr_no_lookup("Broken pipe"), // 046 - __tr_no_lookup("Invalid proxy address"), // 047 - __tr_no_lookup("Remote end has closed the connection"), // 048 - __tr_no_lookup("Invalid IRC context ID"), // 049 - __tr_no_lookup("Error loading module"), // 050 - __tr_no_lookup("No such module command"), // 051 - __tr_no_lookup("No such module function"), // 052 - __tr_no_lookup("Left operand is not a dictionary reference"), // 053 - __tr_no_lookup("Right operand is not a dictionary reference"), // 054 - __tr_no_lookup("Missing object class name"), // 055 - __tr_no_lookup("No such object class"), // 056 - __tr_no_lookup("No such object"), // 057 - __tr_no_lookup("No such object function"), // 058 - __tr_no_lookup("Invalid left operand"), // 059 - __tr_no_lookup("Not enough parameters"), // 060 - __tr_no_lookup("Integer parameter expected"), // 061 - __tr_no_lookup("Invalid parameter"), // 062 - __tr_no_lookup("No such file"), // 063 - __tr_no_lookup("Open parenthesis expected"), // 064 - __tr_no_lookup("Open brace expected"), // 065 - __tr_no_lookup("Can't kill a builtin class"), // 066 - __tr_no_lookup("The SOCKSv4 protocol lacks IPv6 support"), // 067 - __tr_no_lookup("Unrecognized proxy reply"), // 068 +const char * g_errorTable[KviError::ErrorCount] = { + __tr_no_lookup("Success"), // 000: success + __tr_no_lookup("Unknown error"), // 001: unkonwnError + __tr_no_lookup("Internal error"), // 002: internalError + __tr_no_lookup("Unknown command"), // 003: unknownCommand + __tr_no_lookup("Missing closing brace"), // 004: missingClosingBrace + __tr_no_lookup("Unexpected end of command in string"), // 005: unexpectedEndInString + __tr_no_lookup("Unexpected end of command in dictionary key"), // 006: unexpectedEndInDictionaryKey + __tr_no_lookup("Switch dash without switch letter"), // 007: switchDashWithoutSwitchLetter + __tr_no_lookup("Unknown function"), // 008: unknownFunction + __tr_no_lookup("Unexpected end of command in parenthesis"), // 009: unexpectedEndInParenthesis + __tr_no_lookup("Unexpected end of command in function parameters"), // 010: unexpectedEndInFunctionParams + __tr_no_lookup("Missing variable name"), // 011: missingVariableName + __tr_no_lookup("Variable or identifier expected"), // 012: variableOrIdentifierExpected + __tr_no_lookup("Left operand is not a number"), // 013: leftOperandIsNotANumber + __tr_no_lookup("Multiple operations not supported for numeric operators"), // 014: multipleOpsNotSupportedForOperator + __tr_no_lookup("Division by zero"), // 015: divisionByZero + __tr_no_lookup("Modulo by zero"), // 016: moduloByZero + __tr_no_lookup("Right operand is not a number"), // 017: rightOperandIsNotANumber + __tr_no_lookup("Unterminated expression (missing ')' ?)"), // 018: unterminatedExpression + __tr_no_lookup("Unterminated subexpression (Parenthesis mismatch)"), // 019: unterminatedSubexpression + __tr_no_lookup("Unexpected character"), // 020: unexpectedCharacter + __tr_no_lookup("Unknown operator"), // 021: unknownOperator + __tr_no_lookup("No host to resolve"), // 022 + __tr_no_lookup("(DNS internal) Unsupported address family"), // 023 + __tr_no_lookup("Valid name but the host has no IP address"), // 024 + __tr_no_lookup("Unrecoverable nameserver error (crashed?)"), // 025 + __tr_no_lookup("DNS temporary fault (try again)"), // 026 + __tr_no_lookup("(DNS internal) Bad flags"), // 027 + __tr_no_lookup("(DNS internal) Out of memory"), // 028 + __tr_no_lookup("(DNS internal) Service not supported"), // 029 + __tr_no_lookup("Unknown node (host not found)"), // 030 + __tr_no_lookup("(DNS internal) Unsupported socket type"), // 031 + __tr_no_lookup("DNS query failed"), // 032 + __tr_no_lookup("This KVIrc executable has no IPv6 support"), // 033 + __tr_no_lookup("Host not found"), // 034 + __tr_no_lookup("(DNS internal) IPC failure (slave data corrupted)"), // 035 + __tr_no_lookup("Another connection is in progress"), // 036 + __tr_no_lookup("Invalid IP address"), // 037 + __tr_no_lookup("Socket creation failed"), // 038 + __tr_no_lookup("Failed to put the socket in non blocking mode"), // 039 + __tr_no_lookup("Bad file descriptor"), // 040 + __tr_no_lookup("Out of address space"), // 041 + __tr_no_lookup("Connection refused"), // 042 + __tr_no_lookup("Kernel networking panic"), // 043 + __tr_no_lookup("Connection timed out"), // 044 + __tr_no_lookup("Network is unreachable"), // 045 + __tr_no_lookup("Broken pipe"), // 046 + __tr_no_lookup("Invalid proxy address"), // 047 + __tr_no_lookup("Remote end has closed the connection"), // 048 + __tr_no_lookup("Invalid IRC context ID"), // 049 + __tr_no_lookup("Error loading module"), // 050 + __tr_no_lookup("No such module command"), // 051 + __tr_no_lookup("No such module function"), // 052 + __tr_no_lookup("Left operand is not a dictionary reference"), // 053 + __tr_no_lookup("Right operand is not a dictionary reference"), // 054 + __tr_no_lookup("Missing object class name"), // 055 + __tr_no_lookup("No such object class"), // 056 + __tr_no_lookup("No such object"), // 057 + __tr_no_lookup("No such object function"), // 058 + __tr_no_lookup("Invalid left operand"), // 059 + __tr_no_lookup("Not enough parameters"), // 060 + __tr_no_lookup("Integer parameter expected"), // 061 + __tr_no_lookup("Invalid parameter"), // 062 + __tr_no_lookup("No such file"), // 063 + __tr_no_lookup("Open parenthesis expected"), // 064 + __tr_no_lookup("Open brace expected"), // 065 + __tr_no_lookup("Can't kill a builtin class"), // 066 + __tr_no_lookup("The SOCKSv4 protocol lacks IPv6 support"), // 067 + __tr_no_lookup("Unrecognized proxy reply"), // 068 __tr_no_lookup("Proxy response: auth failed: access denied"), __tr_no_lookup("Proxy response: no acceptable auth method: request rejected"), __tr_no_lookup("Proxy response: request failed"), @@ -192,43 +190,97 @@ namespace KviError #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) switch(iErrNo) { - case EBADF: return KviError::BadFileDescriptor; break; + case EBADF: + return KviError::BadFileDescriptor; + break; case WSAEINVAL: case WSAEFAULT: - case EFAULT: return KviError::OutOfAddressSpace; break; - case WSAECONNREFUSED: return KviError::ConnectionRefused; break; - case WSAENOTSOCK: return KviError::KernelNetworkingPanic; break; - case WSAETIMEDOUT: return KviError::ConnectionTimedOut; break; - case WSAENETUNREACH: return KviError::NetworkUnreachable; break; - case EPIPE: return KviError::BrokenPipe; break; - case WSAENOTCONN: return KviError::SocketNotConnected; break; - case WSAEACCES: return KviError::AccessDenied; break; - case WSAEADDRINUSE: return KviError::AddressAlreadyInUse; break; - case WSAEADDRNOTAVAIL: return KviError::CantAssignRequestedAddress; break; - case WSAEAFNOSUPPORT: return KviError::UnsupportedAddressFamily; break; - case WSAECONNRESET: return KviError::ConnectionResetByPeer; break; - case WSAEHOSTUNREACH: return KviError::HostUnreachable; break; + case EFAULT: + return KviError::OutOfAddressSpace; + break; + case WSAECONNREFUSED: + return KviError::ConnectionRefused; + break; + case WSAENOTSOCK: + return KviError::KernelNetworkingPanic; + break; + case WSAETIMEDOUT: + return KviError::ConnectionTimedOut; + break; + case WSAENETUNREACH: + return KviError::NetworkUnreachable; + break; + case EPIPE: + return KviError::BrokenPipe; + break; + case WSAENOTCONN: + return KviError::SocketNotConnected; + break; + case WSAEACCES: + return KviError::AccessDenied; + break; + case WSAEADDRINUSE: + return KviError::AddressAlreadyInUse; + break; + case WSAEADDRNOTAVAIL: + return KviError::CantAssignRequestedAddress; + break; + case WSAEAFNOSUPPORT: + return KviError::UnsupportedAddressFamily; + break; + case WSAECONNRESET: + return KviError::ConnectionResetByPeer; + break; + case WSAEHOSTUNREACH: + return KviError::HostUnreachable; + break; //case ENOBUFS: return KviError::InsufficientResources; break; // Unhandled error...pass errno to the strerror function - default: return KviError::UnknownError; break; + default: + return KviError::UnknownError; + break; } #else switch(iErrNo) { - case EBADF: return KviError::BadFileDescriptor; break; - case EFAULT: return KviError::OutOfAddressSpace; break; - case ECONNREFUSED: return KviError::ConnectionRefused; break; - case ENOTSOCK: return KviError::KernelNetworkingPanic; break; - case ETIMEDOUT: return KviError::ConnectionTimedOut; break; - case ENETUNREACH: return KviError::NetworkUnreachable; break; - case EPIPE: return KviError::BrokenPipe; break; - case ENOTCONN: return KviError::SocketNotConnected; break; - case ENOBUFS: return KviError::InsufficientResources; break; - case ECONNRESET: return KviError::ConnectionResetByPeer; break; - case EHOSTUNREACH: return KviError::HostUnreachable; break; + case EBADF: + return KviError::BadFileDescriptor; + break; + case EFAULT: + return KviError::OutOfAddressSpace; + break; + case ECONNREFUSED: + return KviError::ConnectionRefused; + break; + case ENOTSOCK: + return KviError::KernelNetworkingPanic; + break; + case ETIMEDOUT: + return KviError::ConnectionTimedOut; + break; + case ENETUNREACH: + return KviError::NetworkUnreachable; + break; + case EPIPE: + return KviError::BrokenPipe; + break; + case ENOTCONN: + return KviError::SocketNotConnected; + break; + case ENOBUFS: + return KviError::InsufficientResources; + break; + case ECONNRESET: + return KviError::ConnectionResetByPeer; + break; + case EHOSTUNREACH: + return KviError::HostUnreachable; + break; // Unhandled error...pass errno to the strerror function - default: return KviError::UnknownError; break; + default: + return KviError::UnknownError; + break; } #endif } diff --git a/src/kvilib/core/KviError.h b/src/kvilib/core/KviError.h index 57310146c..15d6a510e 100644 --- a/src/kvilib/core/KviError.h +++ b/src/kvilib/core/KviError.h @@ -44,128 +44,129 @@ namespace KviError * \enum Code * \brief Contains all error codes */ - enum Code { - Success = 0, - UnknownError = 1, - InternalError = 2, - UnknownCommand = 3, - MissingClosingBrace = 4, - UnexpectedEndInString = 5, - UnexpectedEndInDictionaryKey = 6, - SwitchDashWithoutSwitchLetter = 7, - UnknownFunction = 8, - UnexpectedEndInParenthesis = 9, - UnexpectedEndInFunctionParams = 10, - MissingVariableName = 11, - VariableOrIdentifierExpected = 12, - LeftOperandIsNotANumber = 13, - MultipleOpsNotSupportedForOperator = 14, - DivisionByZero = 15, - ModuloByZero = 16, - RightOperandIsNotANumber = 17, - UnterminatedExpression = 18, - UnterminatedSubexpression = 19, - UnexpectedCharacter = 20, - UnknownOperator = 21, - NoHostToResolve = 22, - UnsupportedAddressFamily = 23, - ValidNameButNoIpAddress = 24, - UnrecoverableNameserverError = 25, - DNSTemporaneousFault = 26, - DNSInternalErrorBadFlags = 27, - DNSInternalErrorOutOfMemory = 28, - DNSInternalErrorServiceNotSupported = 29, - DNSNoName = 30, - DNSInternalErrorUnsupportedSocketType = 31, - DNSQueryFailed = 32, - NoIPv6Support = 33, - HostNotFound = 34, - DNSInternalIPCFailure = 35, - AnotherConnectionInProgress = 36, - InvalidIpAddress = 37, - SocketCreationFailed = 38, - AsyncSocketFailed = 39, - BadFileDescriptor = 40, - OutOfAddressSpace = 41, - ConnectionRefused = 42, - KernelNetworkingPanic = 43, - ConnectionTimedOut = 44, - NetworkUnreachable = 45, - BrokenPipe = 46, - InvalidProxyAddress = 47, - RemoteEndClosedConnection = 48, - InvalidIrcContextId = 49, - ErrorInLoadingModule = 50, - NoSuchModuleCommand = 51, - NoSuchModuleFunction = 52, - LeftOperandIsNotADictionaryReference = 53, - RightOperandIsNotADictionaryReference = 54, - MissingObjectClassName = 55, - NoSuchObjectClass = 56, - NoSuchObject = 57, - NoSuchObjectFunction = 58, - InvalidLeftOperand = 59, - NotEnoughParameters = 60, - IntegerParameterExpected = 61, - InvalidParameter = 62, - NoSuchFile = 63, - OpenParenthesisExpected = 64, - OpenBraceExpected = 65, - CantKillABuiltinClass = 66, - SocksV4LacksIPv6Support = 67, - UnrecognizedProxyReply = 68, - ProxyAuthFailed = 69, - ProxyNoAcceptableAuthMethod = 70, - ProxyReply91RequestFailed = 71, - ProxyReply92IdentFailed = 72, - ProxyReply93IdentNotMatching = 73, - ProxyReply01GeneralSOCKSFailure = 74, - ProxyReply02ConnectionNotAllowed = 75, - ProxyReply03NetworkUnreachable = 76, - ProxyReply04HostUnreachable = 77, - ProxyReply05ConnectionRefused = 78, - ProxyReply06TTLExpired = 79, - ProxyReply07CommandNotSupported = 80, - ProxyReply08AddressTypeNotSupported = 81, - ProxyReply09InvalidAddress = 82, - InvalidPortNumber = 83, - SocketNotConnected = 84, - InsufficientResources = 85, - BindFailed = 86, - CantResolveLocalhost = 87, - UnsupportedImageFormat = 88, - CantOpenFileForAppending = 89, - CantOpenFileForWriting = 90, - FileIOError = 91, - AcknowledgeError = 92, - CantOpenFileForReading = 93, - CantSendAZeroSizeFile = 94, - MissingPopupName = 95, - ItemPopupOrSeparatorExpected = 96, - SelfModificationNotAllowed = 97, - FeatureNotAvailable = 98, - UnexpectedCharactersInArrayIndex = 99, - UnexpectedEndInExpression = 100, - UnexpectedEndInArrayIndex = 101, - ProxyHttpFailure = 102, + enum Code + { + Success = 0, + UnknownError = 1, + InternalError = 2, + UnknownCommand = 3, + MissingClosingBrace = 4, + UnexpectedEndInString = 5, + UnexpectedEndInDictionaryKey = 6, + SwitchDashWithoutSwitchLetter = 7, + UnknownFunction = 8, + UnexpectedEndInParenthesis = 9, + UnexpectedEndInFunctionParams = 10, + MissingVariableName = 11, + VariableOrIdentifierExpected = 12, + LeftOperandIsNotANumber = 13, + MultipleOpsNotSupportedForOperator = 14, + DivisionByZero = 15, + ModuloByZero = 16, + RightOperandIsNotANumber = 17, + UnterminatedExpression = 18, + UnterminatedSubexpression = 19, + UnexpectedCharacter = 20, + UnknownOperator = 21, + NoHostToResolve = 22, + UnsupportedAddressFamily = 23, + ValidNameButNoIpAddress = 24, + UnrecoverableNameserverError = 25, + DNSTemporaneousFault = 26, + DNSInternalErrorBadFlags = 27, + DNSInternalErrorOutOfMemory = 28, + DNSInternalErrorServiceNotSupported = 29, + DNSNoName = 30, + DNSInternalErrorUnsupportedSocketType = 31, + DNSQueryFailed = 32, + NoIPv6Support = 33, + HostNotFound = 34, + DNSInternalIPCFailure = 35, + AnotherConnectionInProgress = 36, + InvalidIpAddress = 37, + SocketCreationFailed = 38, + AsyncSocketFailed = 39, + BadFileDescriptor = 40, + OutOfAddressSpace = 41, + ConnectionRefused = 42, + KernelNetworkingPanic = 43, + ConnectionTimedOut = 44, + NetworkUnreachable = 45, + BrokenPipe = 46, + InvalidProxyAddress = 47, + RemoteEndClosedConnection = 48, + InvalidIrcContextId = 49, + ErrorInLoadingModule = 50, + NoSuchModuleCommand = 51, + NoSuchModuleFunction = 52, + LeftOperandIsNotADictionaryReference = 53, + RightOperandIsNotADictionaryReference = 54, + MissingObjectClassName = 55, + NoSuchObjectClass = 56, + NoSuchObject = 57, + NoSuchObjectFunction = 58, + InvalidLeftOperand = 59, + NotEnoughParameters = 60, + IntegerParameterExpected = 61, + InvalidParameter = 62, + NoSuchFile = 63, + OpenParenthesisExpected = 64, + OpenBraceExpected = 65, + CantKillABuiltinClass = 66, + SocksV4LacksIPv6Support = 67, + UnrecognizedProxyReply = 68, + ProxyAuthFailed = 69, + ProxyNoAcceptableAuthMethod = 70, + ProxyReply91RequestFailed = 71, + ProxyReply92IdentFailed = 72, + ProxyReply93IdentNotMatching = 73, + ProxyReply01GeneralSOCKSFailure = 74, + ProxyReply02ConnectionNotAllowed = 75, + ProxyReply03NetworkUnreachable = 76, + ProxyReply04HostUnreachable = 77, + ProxyReply05ConnectionRefused = 78, + ProxyReply06TTLExpired = 79, + ProxyReply07CommandNotSupported = 80, + ProxyReply08AddressTypeNotSupported = 81, + ProxyReply09InvalidAddress = 82, + InvalidPortNumber = 83, + SocketNotConnected = 84, + InsufficientResources = 85, + BindFailed = 86, + CantResolveLocalhost = 87, + UnsupportedImageFormat = 88, + CantOpenFileForAppending = 89, + CantOpenFileForWriting = 90, + FileIOError = 91, + AcknowledgeError = 92, + CantOpenFileForReading = 93, + CantSendAZeroSizeFile = 94, + MissingPopupName = 95, + ItemPopupOrSeparatorExpected = 96, + SelfModificationNotAllowed = 97, + FeatureNotAvailable = 98, + UnexpectedCharactersInArrayIndex = 99, + UnexpectedEndInExpression = 100, + UnexpectedEndInArrayIndex = 101, + ProxyHttpFailure = 102, CaseMatchRegexpDefaultOrBreakExpected = 103, - AccessDenied = 104, - AddressAlreadyInUse = 105, - CantAssignRequestedAddress = 106, - ConnectionResetByPeer = 107, - HostUnreachable = 108, - VariableExpected = 109, - InvalidArrayIndex = 110, - ListenFailed = 111, - NoSSLSupport = 112, - SSLError = 113, - SlashCharacterExpected = 114, - UnknownStringManipulationOperator = 115, - OperationAborted = 116, - UnexpectedToken = 117, - ScopeObjectAlreadyDefined = 118, - NoThisObject = 119, - ErrorCount = 120 + AccessDenied = 104, + AddressAlreadyInUse = 105, + CantAssignRequestedAddress = 106, + ConnectionResetByPeer = 107, + HostUnreachable = 108, + VariableExpected = 109, + InvalidArrayIndex = 110, + ListenFailed = 111, + NoSSLSupport = 112, + SSLError = 113, + SlashCharacterExpected = 114, + UnknownStringManipulationOperator = 115, + OperationAborted = 116, + UnexpectedToken = 117, + ScopeObjectAlreadyDefined = 118, + NoThisObject = 119, + ErrorCount = 120 }; /** diff --git a/src/kvilib/core/KviHeapObject.cpp b/src/kvilib/core/KviHeapObject.cpp index 420271c99..c8e504b62 100644 --- a/src/kvilib/core/KviHeapObject.cpp +++ b/src/kvilib/core/KviHeapObject.cpp @@ -22,39 +22,38 @@ // //============================================================================= - #include "KviHeapObject.h" #include "KviMemory.h" #ifdef COMPILE_ON_WINDOWS - void * KviHeapObject::operator new(size_t uSize) - { - return KviMemory::allocate(uSize); - } - - void KviHeapObject::operator delete(void * pData) - { - KviMemory::free(pData); - } - - void * KviHeapObject::operator new[](size_t uSize) - { - return KviMemory::allocate(uSize); - } - - void KviHeapObject::operator delete[](void * pData) - { - KviMemory::free(pData); - } - - // these are the debug versions... - void * KviHeapObject::operator new(size_t uSize,const char *,int) - { - return KviMemory::allocate(uSize); - } - - void KviHeapObject::operator delete(void * pData,const char *,int) - { - KviMemory::free(pData); - } +void * KviHeapObject::operator new(size_t uSize) +{ + return KviMemory::allocate(uSize); +} + +void KviHeapObject::operator delete(void * pData) +{ + KviMemory::free(pData); +} + +void * KviHeapObject::operator new[](size_t uSize) +{ + return KviMemory::allocate(uSize); +} + +void KviHeapObject::operator delete[](void * pData) +{ + KviMemory::free(pData); +} + +// these are the debug versions... +void * KviHeapObject::operator new(size_t uSize, const char *, int) +{ + return KviMemory::allocate(uSize); +} + +void KviHeapObject::operator delete(void * pData, const char *, int) +{ + KviMemory::free(pData); +} #endif diff --git a/src/kvilib/core/KviHeapObject.h b/src/kvilib/core/KviHeapObject.h index b8434cdc9..227cc0bae 100644 --- a/src/kvilib/core/KviHeapObject.h +++ b/src/kvilib/core/KviHeapObject.h @@ -35,7 +35,7 @@ // See KviHeapObject.cpp for comments on this class #ifdef COMPILE_ON_WINDOWS - /** +/** * \class KviHeapObject * * On windows we need to override new and delete operators @@ -69,62 +69,62 @@ * created from inside a module and destroyed anywhere else * and has a virtual destructor. */ - class KVILIB_API KviHeapObject - { - public: - /** +class KVILIB_API KviHeapObject +{ +public: + /** * \brief Overloading of the new operator * * \param size_t size in bytes of the memory that has to be allocated * \return void * */ - void * operator new(size_t uSize); + void * operator new(size_t uSize); - /** + /** * \brief Overloading of the delete operator * * \param pData pointer to the objet that needs to be freed * \return void */ - void operator delete(void * pData); + void operator delete(void * pData); - /** + /** * \brief Overloading of the new[] operator * * \param size_t size in bytes of the memory that has to be allocated * \return void * */ - void * operator new[](size_t uSize); + void * operator new[](size_t uSize); - /** + /** * \brief Overloading of the delete[] operator * * \param pData pointer to the objet that needs to be freed * \return void */ - void operator delete[](void * pData); + void operator delete[](void * pData); - /** + /** * \brief Overloading of the new operator (debug version) * * \param size_t size in bytes of the memory that has to be allocated * \return void * */ - void * operator new(size_t uSize,const char *,int); + void * operator new(size_t uSize, const char *, int); - /** + /** * \brief Overloading of the delete operator (debug version) * * \param pData pointer to the objet that needs to be freed * \return void */ - void operator delete(void * pData,const char *,int); - }; -#else //COMPILE_ON_WINDOWS - class KVILIB_API KviHeapObject - { - // on other platforms this crap is not necessary - }; + void operator delete(void * pData, const char *, int); +}; +#else //COMPILE_ON_WINDOWS +class KVILIB_API KviHeapObject +{ + // on other platforms this crap is not necessary +}; #endif //COMPILE_ON_WINDOWS #endif //_KVI_HEAPOBJECT_H_ diff --git a/src/kvilib/core/KviMemory.cpp b/src/kvilib/core/KviMemory.cpp index 97ca92621..f1808dbdf 100644 --- a/src/kvilib/core/KviMemory.cpp +++ b/src/kvilib/core/KviMemory.cpp @@ -28,17 +28,15 @@ // KviMemory, kvi_free and kvi_realloc are macros (see KviMemory.h) //============================================================================= - #define _KVI_MALLOC_CPP_ #include "KviMemory.h" #include #ifdef COMPILE_MEMORY_PROFILE - #include "KviPointerList.h" +#include "KviPointerList.h" #endif //COMPILE_MEMORY_PROFILE - namespace KviMemory { @@ -49,31 +47,34 @@ namespace KviMemory // Used to find memory leaks etc... // - typedef struct _KviMallocEntry { + typedef struct _KviMallocEntry + { struct _KviMallocEntry * prev; - void * pointer; - int size; - void * return_addr1; - void * return_addr2; + void * pointer; + int size; + void * return_addr1; + void * return_addr2; struct _KviMallocEntry * next; } KviMallocEntry; - int g_iMaxRequestSize = 0; - void * g_pMaxRequestReturnAddress1 = 0; - void * g_pMaxRequestReturnAddress2 = 0; - unsigned int g_iMallocCalls = 0; - unsigned int g_iReallocCalls = 0; - unsigned int g_iFreeCalls = 0; - unsigned int g_iTotalMemAllocated = 0; - unsigned int g_uAllocationPeak = 0; - KviMallocEntry * g_pEntries = 0; + int g_iMaxRequestSize = 0; + void * g_pMaxRequestReturnAddress1 = 0; + void * g_pMaxRequestReturnAddress2 = 0; + unsigned int g_iMallocCalls = 0; + unsigned int g_iReallocCalls = 0; + unsigned int g_iFreeCalls = 0; + unsigned int g_iTotalMemAllocated = 0; + unsigned int g_uAllocationPeak = 0; + KviMallocEntry * g_pEntries = 0; void * allocate(int size) { - g_iMallocCalls ++; + g_iMallocCalls++; g_iTotalMemAllocated += size; - if(g_iTotalMemAllocated > g_uAllocationPeak)g_uAllocationPeak = g_iTotalMemAllocated; - if(g_iMaxRequestSize < size){ + if(g_iTotalMemAllocated > g_uAllocationPeak) + g_uAllocationPeak = g_iTotalMemAllocated; + if(g_iMaxRequestSize < size) + { g_iMaxRequestSize = size; g_pMaxRequestReturnAddress1 = __builtin_return_address(1); g_pMaxRequestReturnAddress2 = __builtin_return_address(2); @@ -85,27 +86,33 @@ namespace KviMemory e->return_addr2 = __builtin_return_address(2); e->next = g_pEntries; e->prev = 0; - if(g_pEntries)g_pEntries->prev = e; + if(g_pEntries) + g_pEntries->prev = e; g_pEntries = e; return e->pointer; } - void * reallocate(void * ptr,int size) + void * reallocate(void * ptr, int size) { - g_iReallocCalls ++; - if(ptr == 0)return allocate(size); - if(g_iMaxRequestSize < size){ + g_iReallocCalls++; + if(ptr == 0) + return allocate(size); + if(g_iMaxRequestSize < size) + { g_iMaxRequestSize = size; g_pMaxRequestReturnAddress1 = __builtin_return_address(1); g_pMaxRequestReturnAddress2 = __builtin_return_address(2); } - KviMallocEntry *e = g_pEntries; - while(e){ - if(e->pointer == ptr){ + KviMallocEntry * e = g_pEntries; + while(e) + { + if(e->pointer == ptr) + { g_iTotalMemAllocated -= e->size; g_iTotalMemAllocated += size; - if(g_iTotalMemAllocated > g_uAllocationPeak)g_uAllocationPeak = g_iTotalMemAllocated; - e->pointer = realloc(ptr,size); + if(g_iTotalMemAllocated > g_uAllocationPeak) + g_uAllocationPeak = g_iTotalMemAllocated; + e->pointer = realloc(ptr, size); e->size = size; e->return_addr1 = __builtin_return_address(1); e->return_addr2 = __builtin_return_address(2); @@ -113,28 +120,38 @@ namespace KviMemory } e = e->next; } - fprintf(stderr,"Attempt to realloc a non-existent pointer (%p) (called from %p (%p))\n",ptr,__builtin_return_address(1),__builtin_return_address(2)); - return realloc(ptr,size); + fprintf(stderr, "Attempt to realloc a non-existent pointer (%p) (called from %p (%p))\n", ptr, __builtin_return_address(1), __builtin_return_address(2)); + return realloc(ptr, size); } void free(void * ptr) { g_iFreeCalls++; - if(ptr == 0){ - fprintf(stderr,"Attempt to free a null pointer (called from %p (%p))\n",__builtin_return_address(1),__builtin_return_address(2)); + if(ptr == 0) + { + fprintf(stderr, "Attempt to free a null pointer (called from %p (%p))\n", __builtin_return_address(1), __builtin_return_address(2)); exit(-1); } - KviMallocEntry * e= g_pEntries; - while(e){ - if(e->pointer == ptr){ + KviMallocEntry * e = g_pEntries; + while(e) + { + if(e->pointer == ptr) + { g_iTotalMemAllocated -= e->size; - if(e->prev){ - if(e == g_pEntries)fprintf(stderr,"Mem profiling internal error!\n"); + if(e->prev) + { + if(e == g_pEntries) + fprintf(stderr, "Mem profiling internal error!\n"); e->prev->next = e->next; - if(e->next)e->next->prev = e->prev; - } else { - if(e != g_pEntries)fprintf(stderr,"Mem profiling internal error!\n"); - if(e->next)e->next->prev = 0; + if(e->next) + e->next->prev = e->prev; + } + else + { + if(e != g_pEntries) + fprintf(stderr, "Mem profiling internal error!\n"); + if(e->next) + e->next->prev = 0; g_pEntries = e->next; } free(e); @@ -142,7 +159,7 @@ namespace KviMemory } e = e->next; } - fprintf(stderr,"Attempt to free a non-existent pointer (%p) (called from %p (%p))\n",ptr,__builtin_return_address(1),__builtin_return_address(2)); + fprintf(stderr, "Attempt to free a non-existent pointer (%p) (called from %p (%p))\n", ptr, __builtin_return_address(1), __builtin_return_address(2)); } void kvi_memory_profile() __attribute__((destructor)); @@ -150,57 +167,60 @@ namespace KviMemory { unsigned int countUnfreed = 0; KviMallocEntry * e = g_pEntries; - while(e){ + while(e) + { countUnfreed++; e = e->next; } - fprintf(stderr,"|====|====|====|====|====|====|====|====\n"); - fprintf(stderr,"| Memory profile for KVIrc\n"); - fprintf(stderr,"| Unfreed chunks : %d\n",countUnfreed); - fprintf(stderr,"| Total unfreed memory : %u bytes\n",g_iTotalMemAllocated); - fprintf(stderr,"|====|====|====|====|====|====|====|====\n"); - fprintf(stderr,"| Possible unfreed chunks dump:\n"); + fprintf(stderr, "|====|====|====|====|====|====|====|====\n"); + fprintf(stderr, "| Memory profile for KVIrc\n"); + fprintf(stderr, "| Unfreed chunks : %d\n", countUnfreed); + fprintf(stderr, "| Total unfreed memory : %u bytes\n", g_iTotalMemAllocated); + fprintf(stderr, "|====|====|====|====|====|====|====|====\n"); + fprintf(stderr, "| Possible unfreed chunks dump:\n"); e = g_pEntries; - while(e){ - fprintf(stderr,"|====|====|\n"); - fprintf(stderr,"| Currently unfreed chunk: %p\n",e->pointer); - fprintf(stderr,"| Size: %d\n",e->size); - fprintf(stderr,"| Caller address 1: %p\n",e->return_addr1); - fprintf(stderr,"| Caller address 2: %p\n",e->return_addr2); - if(e->size > 10)fprintf(stderr,"| Data: %.10s\n",(char*)e->pointer); - else if(e->size > 5)fprintf(stderr,"| Data: %.5s\n",(char*)e->pointer); - KviMallocEntry *toFree = e; + while(e) + { + fprintf(stderr, "|====|====|\n"); + fprintf(stderr, "| Currently unfreed chunk: %p\n", e->pointer); + fprintf(stderr, "| Size: %d\n", e->size); + fprintf(stderr, "| Caller address 1: %p\n", e->return_addr1); + fprintf(stderr, "| Caller address 2: %p\n", e->return_addr2); + if(e->size > 10) + fprintf(stderr, "| Data: %.10s\n", (char *)e->pointer); + else if(e->size > 5) + fprintf(stderr, "| Data: %.5s\n", (char *)e->pointer); + KviMallocEntry * toFree = e; e = e->next; free(toFree); } - fprintf(stderr,"|====|====|====|====|====|====|====|====\n"); - fprintf(stderr,"| Allocation peak : %u bytes\n",g_uAllocationPeak); - fprintf(stderr,"|====|====|====|====|====|====|====|====\n"); - fprintf(stderr,"| Max request size : %d bytes\n",g_iMaxRequestSize); - fprintf(stderr,"| Called from %p (%p)\n",g_pMaxRequestReturnAddress1,g_pMaxRequestReturnAddress2); - fprintf(stderr,"|====|====|====|====|====|====|====|====\n"); - fprintf(stderr,"| Malloc calls: %u\n",g_iMallocCalls); - fprintf(stderr,"| Realloc calls: %u\n",g_iReallocCalls); - fprintf(stderr,"| Free calls: %u\n",g_iFreeCalls); - fprintf(stderr,"|====|====|====|====|====|====|====|====\n"); + fprintf(stderr, "|====|====|====|====|====|====|====|====\n"); + fprintf(stderr, "| Allocation peak : %u bytes\n", g_uAllocationPeak); + fprintf(stderr, "|====|====|====|====|====|====|====|====\n"); + fprintf(stderr, "| Max request size : %d bytes\n", g_iMaxRequestSize); + fprintf(stderr, "| Called from %p (%p)\n", g_pMaxRequestReturnAddress1, g_pMaxRequestReturnAddress2); + fprintf(stderr, "|====|====|====|====|====|====|====|====\n"); + fprintf(stderr, "| Malloc calls: %u\n", g_iMallocCalls); + fprintf(stderr, "| Realloc calls: %u\n", g_iReallocCalls); + fprintf(stderr, "| Free calls: %u\n", g_iFreeCalls); + fprintf(stderr, "|====|====|====|====|====|====|====|====\n"); } #else //!COMPILE_MEMORY_PROFILE - #ifdef COMPILE_MEMORY_CHECKS +#ifdef COMPILE_MEMORY_CHECKS void outOfMemory() { //What a cool message :) - fprintf(stderr,"Virtual memory exhausted in malloc call... bye!\n"); + fprintf(stderr, "Virtual memory exhausted in malloc call... bye!\n"); exit(-1); } - #endif //COMPILE_MEMORY_CHECKS +#endif //COMPILE_MEMORY_CHECKS #endif //!COMPILE_MEMORY_PROFILE - #if 0 // The code below is unused and remains here only for historical reasons. @@ -214,7 +234,7 @@ namespace KviMemory // using virtual address manipulationtricks. 64bit architectures can move bytes in larger // chunks and there are MXX and SSE optimisations available. - #ifdef COMPILE_ix86_ASM +#ifdef COMPILE_ix86_ASM // WE WANT repnz; movsq\n"!!! @@ -361,7 +381,7 @@ namespace KviMemory return dst_ptr; //asm(" movl 8(%ebp),%eax"); <-- gcc will put that (AFTER THE OPTIMISATION PASS!) } - #endif //COMPILE_ix86_ASM +#endif //COMPILE_ix86_ASM // The next 4 functions could be optimized with the & and shift technique // used in the assembly implementations but the compilers usually @@ -586,7 +606,5 @@ namespace KviMemory return iEcx; } - #endif //0 - } diff --git a/src/kvilib/core/KviMemory.h b/src/kvilib/core/KviMemory.h index 00d19e409..9190b47a1 100644 --- a/src/kvilib/core/KviMemory.h +++ b/src/kvilib/core/KviMemory.h @@ -50,9 +50,9 @@ namespace KviMemory #ifdef COMPILE_MEMORY_PROFILE - #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - #error "This stuff should be never compiled on Windows" - #endif +#if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) +#error "This stuff should be never compiled on Windows" +#endif /** * \brief Allocates size bytes of memory @@ -69,7 +69,7 @@ namespace KviMemory * \param size number of bytes * \return void * */ - KVILIB_API void * reallocate(void * ptr,int size); + KVILIB_API void * reallocate(void * ptr, int size); /** * \brief Frees the memory space pointed to by ptr @@ -81,48 +81,46 @@ namespace KviMemory #else //!COMPILE_MEMORY_PROFILE +#ifdef COMPILE_MEMORY_CHECKS - #ifdef COMPILE_MEMORY_CHECKS +#ifdef COMPILE_ON_WINDOWS +#error "This stuff should be never compiled on Windows" +#endif - #ifdef COMPILE_ON_WINDOWS - #error "This stuff should be never compiled on Windows" - #endif - - /** + /** * \brief Prints a warning about failed memory allocation */ - KVILIB_API void outOfMemory(); - - inline void * allocate(int size) - { - void * ptr = ::malloc(size); - if(!ptr) - outOfMemory(); - return ptr; - } + KVILIB_API void outOfMemory(); - inline void * reallocate(void * ptr,int size) - { - ptr = ::realloc(ptr,size); - if(!ptr) - outOfMemory(); - return ptr; - } + inline void * allocate(int size) + { + void * ptr = ::malloc(size); + if(!ptr) + outOfMemory(); + return ptr; + } - #else //!COMPILE_MEMORY_CHECKS + inline void * reallocate(void * ptr, int size) + { + ptr = ::realloc(ptr, size); + if(!ptr) + outOfMemory(); + return ptr; + } - inline void * allocate(int size) - { - return ::malloc(size); - } +#else //!COMPILE_MEMORY_CHECKS - inline void * reallocate(void * ptr,int size) - { - return ::realloc(ptr,size); - } + inline void * allocate(int size) + { + return ::malloc(size); + } - #endif //!COMPILE_MEMORY_CHECKS + inline void * reallocate(void * ptr, int size) + { + return ::realloc(ptr, size); + } +#endif //!COMPILE_MEMORY_CHECKS inline void free(void * ptr) { @@ -138,9 +136,9 @@ namespace KviMemory * \param len the number of bytes to move * \return void * */ - inline void move(void *dst_ptr,const void *src_ptr,int len) + inline void move(void * dst_ptr, const void * src_ptr, int len) { - memmove(dst_ptr,src_ptr,len); + memmove(dst_ptr, src_ptr, len); } /** @@ -151,9 +149,9 @@ namespace KviMemory * \param len the number of bytes to initialize * \return void * */ - inline void set(void *dst_ptr,char c,int len) + inline void set(void * dst_ptr, char c, int len) { - memset(dst_ptr,c,len); + memset(dst_ptr, c, len); } /** @@ -165,9 +163,9 @@ namespace KviMemory * \return void * * \warning In fastmove the src and dst may not overlap */ - inline void copy(void *dst_ptr,const void *src_ptr,int len) + inline void copy(void * dst_ptr, const void * src_ptr, int len) { - memcpy(dst_ptr,src_ptr,len); + memcpy(dst_ptr, src_ptr, len); } } // namespace KviMemory diff --git a/src/kvilib/core/KviPointerHashTable.h b/src/kvilib/core/KviPointerHashTable.h index d2dad1bde..c4cda487a 100644 --- a/src/kvilib/core/KviPointerHashTable.h +++ b/src/kvilib/core/KviPointerHashTable.h @@ -47,7 +47,7 @@ /** * \brief Hash function for the char * data type */ -inline unsigned int kvi_hash_hash(const char * szKey,bool bCaseSensitive) +inline unsigned int kvi_hash_hash(const char * szKey, bool bCaseSensitive) { unsigned int uResult = 0; if(bCaseSensitive) @@ -57,7 +57,9 @@ inline unsigned int kvi_hash_hash(const char * szKey,bool bCaseSensitive) uResult += (unsigned char)(*(szKey)); szKey++; } - } else { + } + else + { while(*szKey) { uResult += (unsigned char)tolower(*(szKey)); @@ -70,7 +72,7 @@ inline unsigned int kvi_hash_hash(const char * szKey,bool bCaseSensitive) /** * \brief Hash key compare function for the char * data type */ -inline bool kvi_hash_key_equal(const char * szKey1,const char * szKey2,bool bCaseSensitive) +inline bool kvi_hash_key_equal(const char * szKey1, const char * szKey2, bool bCaseSensitive) { if(bCaseSensitive) { @@ -81,7 +83,9 @@ inline bool kvi_hash_key_equal(const char * szKey1,const char * szKey2,bool bCas szKey1++; szKey2++; } - } else { + } + else + { while(*szKey1 && *szKey2) { if(tolower(*szKey1) != tolower(*szKey2)) @@ -99,7 +103,7 @@ inline bool kvi_hash_key_equal(const char * szKey1,const char * szKey2,bool bCas /** * \brief Hash key copy function for the char * data type */ -inline void kvi_hash_key_copy(const char * const &szFrom,const char * &szTo,bool bDeepCopy) +inline void kvi_hash_key_copy(const char * const & szFrom, const char *& szTo, bool bDeepCopy) { if(bDeepCopy) { @@ -110,10 +114,12 @@ inline void kvi_hash_key_copy(const char * const &szFrom,const char * &szTo,bool #else int len = kvi_strLen(szFrom); #endif - char * dst = (char *)KviMemory::allocate(len+1); - KviMemory::copy(dst,szFrom,len+1); + char * dst = (char *)KviMemory::allocate(len + 1); + KviMemory::copy(dst, szFrom, len + 1); szTo = dst; - } else { + } + else + { szTo = szFrom; // we never modify it anyway } } @@ -121,7 +127,7 @@ inline void kvi_hash_key_copy(const char * const &szFrom,const char * &szTo,bool /** * \brief Hash key destruction function for the char * data type */ -inline void kvi_hash_key_destroy(const char * &szKey,bool bDeepCopy) +inline void kvi_hash_key_destroy(const char *& szKey, bool bDeepCopy) { if(bDeepCopy) KviMemory::free((char *)szKey); @@ -130,7 +136,7 @@ inline void kvi_hash_key_destroy(const char * &szKey,bool bDeepCopy) /** * \brief Default (empty) hash key for the char * data type */ -inline const char * & kvi_hash_key_default(const char **) +inline const char *& kvi_hash_key_default(const char **) { static const char * static_null = NULL; return static_null; @@ -139,7 +145,7 @@ inline const char * & kvi_hash_key_default(const char **) /** * \brief Hash function for the KviCString data type */ -inline unsigned int kvi_hash_hash(const KviCString &szKey,bool bCaseSensitive) +inline unsigned int kvi_hash_hash(const KviCString & szKey, bool bCaseSensitive) { unsigned int uResult = 0; const char * p = szKey.ptr(); @@ -150,7 +156,9 @@ inline unsigned int kvi_hash_hash(const KviCString &szKey,bool bCaseSensitive) uResult += *((const unsigned char *)p); p++; } - } else { + } + else + { while(*p) { uResult += tolower(*((const unsigned char *)p)); @@ -163,15 +171,15 @@ inline unsigned int kvi_hash_hash(const KviCString &szKey,bool bCaseSensitive) /** * \brief Hash key compare function for the KviCString data type */ -inline bool kvi_hash_key_equal(const KviCString &szKey1,const KviCString &szKey2) +inline bool kvi_hash_key_equal(const KviCString & szKey1, const KviCString & szKey2) { - return kvi_hash_key_equal(szKey1.ptr(),szKey2.ptr()); + return kvi_hash_key_equal(szKey1.ptr(), szKey2.ptr()); } /** * \brief Hash key copy function for the KviCString data type */ -inline void kvi_hash_key_copy(const KviCString &szFrom,KviCString &szTo,bool) +inline void kvi_hash_key_copy(const KviCString & szFrom, KviCString & szTo, bool) { szTo = szFrom; } @@ -179,7 +187,7 @@ inline void kvi_hash_key_copy(const KviCString &szFrom,KviCString &szTo,bool) /** * \brief Hash key destruction function for the KviCString data type */ -inline void kvi_hash_key_destroy(KviCString &,bool) +inline void kvi_hash_key_destroy(KviCString &, bool) { } @@ -194,7 +202,7 @@ inline const KviCString & kvi_hash_key_default(KviCString *) /** * \brief Hash function for the int data type */ -inline unsigned int kvi_hash_hash(const int &iKey,bool) +inline unsigned int kvi_hash_hash(const int & iKey, bool) { return (unsigned int)iKey; } @@ -202,7 +210,7 @@ inline unsigned int kvi_hash_hash(const int &iKey,bool) /** * \brief Hash key compare function for the int data type */ -inline bool kvi_hash_key_equal(const int &iKey1,const int &iKey2,bool) +inline bool kvi_hash_key_equal(const int & iKey1, const int & iKey2, bool) { return iKey1 == iKey2; } @@ -210,7 +218,7 @@ inline bool kvi_hash_key_equal(const int &iKey1,const int &iKey2,bool) /** * \brief Hash key copy function for the int data type */ -inline void kvi_hash_key_copy(const int &iKeyFrom,int &iKeyTo,bool) +inline void kvi_hash_key_copy(const int & iKeyFrom, int & iKeyTo, bool) { iKeyTo = iKeyFrom; } @@ -218,7 +226,7 @@ inline void kvi_hash_key_copy(const int &iKeyFrom,int &iKeyTo,bool) /** * \brief Hash key destruction function for the int data type */ -inline void kvi_hash_key_destroy(int &,bool) +inline void kvi_hash_key_destroy(int &, bool) { } @@ -234,7 +242,7 @@ inline const int & kvi_hash_key_default(int *) /** * \brief Hash function for the unsigned short data type */ -inline unsigned int kvi_hash_hash(const unsigned short &iKey,bool) +inline unsigned int kvi_hash_hash(const unsigned short & iKey, bool) { return (unsigned int)iKey; } @@ -242,7 +250,7 @@ inline unsigned int kvi_hash_hash(const unsigned short &iKey,bool) /** * \brief Hash key compare function for the unsigned short data type */ -inline bool kvi_hash_key_equal(const unsigned short &iKey1,const unsigned short &iKey2,bool) +inline bool kvi_hash_key_equal(const unsigned short & iKey1, const unsigned short & iKey2, bool) { return iKey1 == iKey2; } @@ -250,7 +258,7 @@ inline bool kvi_hash_key_equal(const unsigned short &iKey1,const unsigned short /** * \brief Hash key copy function for the unsigned short data type */ -inline void kvi_hash_key_copy(const unsigned short &iKeyFrom,unsigned short &iKeyTo,bool) +inline void kvi_hash_key_copy(const unsigned short & iKeyFrom, unsigned short & iKeyTo, bool) { iKeyTo = iKeyFrom; } @@ -258,7 +266,7 @@ inline void kvi_hash_key_copy(const unsigned short &iKeyFrom,unsigned short &iKe /** * \brief Hash key destruction function for the unsigned short data type */ -inline void kvi_hash_key_destroy(unsigned short &,bool) +inline void kvi_hash_key_destroy(unsigned short &, bool) { } @@ -274,7 +282,7 @@ inline const unsigned short & kvi_hash_key_default(unsigned short *) /** * \brief Hash function for the void * data type */ -inline unsigned int kvi_hash_hash(void * pKey,bool) +inline unsigned int kvi_hash_hash(void * pKey, bool) { unsigned char * pBytes = (unsigned char *)&(pKey); unsigned char * pEnd = pBytes + sizeof(void *); @@ -290,7 +298,7 @@ inline unsigned int kvi_hash_hash(void * pKey,bool) /** * \brief Hash key compare function for the void * data type */ -inline bool kvi_hash_key_equal(void *pKey1,void *pKey2,bool) +inline bool kvi_hash_key_equal(void * pKey1, void * pKey2, bool) { return pKey1 == pKey2; } @@ -298,7 +306,7 @@ inline bool kvi_hash_key_equal(void *pKey1,void *pKey2,bool) /** * \brief Hash key copy function for the void * data type */ -inline void kvi_hash_key_copy(void * const &pKeyFrom,void *&pKeyTo,bool) +inline void kvi_hash_key_copy(void * const & pKeyFrom, void *& pKeyTo, bool) { pKeyTo = pKeyFrom; } @@ -306,14 +314,14 @@ inline void kvi_hash_key_copy(void * const &pKeyFrom,void *&pKeyTo,bool) /** * \brief Hash key destruction function for the void * data type */ -inline void kvi_hash_key_destroy(void *,bool) +inline void kvi_hash_key_destroy(void *, bool) { } /** * \brief Default (empty) hash key for the void * data type */ -inline void * & kvi_hash_key_default(void *) +inline void *& kvi_hash_key_default(void *) { static void * static_default = NULL; return static_default; @@ -322,11 +330,12 @@ inline void * & kvi_hash_key_default(void *) /** * \brief Hash function for the QString data type */ -inline unsigned int kvi_hash_hash(const QString &szKey,bool bCaseSensitive) +inline unsigned int kvi_hash_hash(const QString & szKey, bool bCaseSensitive) { unsigned int uResult = 0; const QChar * p = szKey.constData(); - if(!p)return 0; + if(!p) + return 0; if(bCaseSensitive) { while(p->unicode()) @@ -334,7 +343,9 @@ inline unsigned int kvi_hash_hash(const QString &szKey,bool bCaseSensitive) uResult += p->unicode(); p++; } - } else { + } + else + { while(p->unicode()) { uResult += p->toLower().unicode(); @@ -347,17 +358,17 @@ inline unsigned int kvi_hash_hash(const QString &szKey,bool bCaseSensitive) /** * \brief Hash key compare function for the QString data type */ -inline bool kvi_hash_key_equal(const QString &szKey1,const QString &szKey2,bool bCaseSensitive) +inline bool kvi_hash_key_equal(const QString & szKey1, const QString & szKey2, bool bCaseSensitive) { if(bCaseSensitive) - return KviQString::equalCS(szKey1,szKey2); - return KviQString::equalCI(szKey1,szKey2); + return KviQString::equalCS(szKey1, szKey2); + return KviQString::equalCI(szKey1, szKey2); } /** * \brief Hash key copy function for the QString data type */ -inline void kvi_hash_key_copy(const QString &szFrom,QString &szTo,bool) +inline void kvi_hash_key_copy(const QString & szFrom, QString & szTo, bool) { szTo = szFrom; } @@ -365,7 +376,7 @@ inline void kvi_hash_key_copy(const QString &szFrom,QString &szTo,bool) /** * \brief Hash key destruction function for the QString data type */ -inline void kvi_hash_key_destroy(QString &,bool) +inline void kvi_hash_key_destroy(QString &, bool) { } @@ -377,18 +388,23 @@ inline const QString & kvi_hash_key_default(QString *) return KviQString::Empty; } -template class KviPointerHashTable; -template class KviPointerHashTableIterator; +template +class KviPointerHashTable; +template +class KviPointerHashTableIterator; -template class KviPointerHashTableEntry +template +class KviPointerHashTableEntry { - friend class KviPointerHashTable; + friend class KviPointerHashTable; + protected: - T * pData; - Key hKey; + T * pData; + Key hKey; + public: - Key & key(){ return hKey; }; - T * data(){ return pData; }; + Key & key() { return hKey; }; + T * data() { return pData; }; }; /** @@ -430,17 +446,20 @@ public: * memory allocation routines will feel better and are less likely to waste * space. */ -template class KviPointerHashTable +template +class KviPointerHashTable { - friend class KviPointerHashTableIterator; + friend class KviPointerHashTableIterator; + protected: - KviPointerList > ** m_pDataArray; - bool m_bAutoDelete; - unsigned int m_uSize; - unsigned int m_uCount; - bool m_bCaseSensitive; - bool m_bDeepCopyKeys; - unsigned int m_uIteratorIdx; + KviPointerList> ** m_pDataArray; + bool m_bAutoDelete; + unsigned int m_uSize; + unsigned int m_uCount; + bool m_bCaseSensitive; + bool m_bDeepCopyKeys; + unsigned int m_uIteratorIdx; + public: /** * \brief Returns the item associated to the key @@ -452,11 +471,13 @@ public: */ T * find(const Key & hKey) { - m_uIteratorIdx = kvi_hash_hash(hKey,m_bCaseSensitive) % m_uSize; - if(!m_pDataArray[m_uIteratorIdx])return 0; - for(KviPointerHashTableEntry * e = m_pDataArray[m_uIteratorIdx]->first();e;e = m_pDataArray[m_uIteratorIdx]->next()) + m_uIteratorIdx = kvi_hash_hash(hKey, m_bCaseSensitive) % m_uSize; + if(!m_pDataArray[m_uIteratorIdx]) + return 0; + for(KviPointerHashTableEntry * e = m_pDataArray[m_uIteratorIdx]->first(); e; e = m_pDataArray[m_uIteratorIdx]->next()) { - if(kvi_hash_key_equal(e->hKey,hKey,m_bCaseSensitive))return (T *)e->pData; + if(kvi_hash_key_equal(e->hKey, hKey, m_bCaseSensitive)) + return (T *)e->pData; } return 0; } @@ -505,19 +526,20 @@ public: */ void insert(const Key & hKey, T * pData) { - if(!pData)return; - unsigned int uEntry = kvi_hash_hash(hKey,m_bCaseSensitive) % m_uSize; + if(!pData) + return; + unsigned int uEntry = kvi_hash_hash(hKey, m_bCaseSensitive) % m_uSize; if(!m_pDataArray[uEntry]) - m_pDataArray[uEntry] = new KviPointerList >(true); - for(KviPointerHashTableEntry * e = m_pDataArray[uEntry]->first();e;e = m_pDataArray[uEntry]->next()) + m_pDataArray[uEntry] = new KviPointerList>(true); + for(KviPointerHashTableEntry * e = m_pDataArray[uEntry]->first(); e; e = m_pDataArray[uEntry]->next()) { - if(kvi_hash_key_equal(e->hKey,hKey,m_bCaseSensitive)) + if(kvi_hash_key_equal(e->hKey, hKey, m_bCaseSensitive)) { if(!m_bCaseSensitive) { // must change the key too - kvi_hash_key_destroy(e->hKey,m_bDeepCopyKeys); - kvi_hash_key_copy(hKey,e->hKey,m_bDeepCopyKeys); + kvi_hash_key_destroy(e->hKey, m_bDeepCopyKeys); + kvi_hash_key_copy(hKey, e->hKey, m_bDeepCopyKeys); } if(m_bAutoDelete) delete e->pData; @@ -525,8 +547,8 @@ public: return; } } - KviPointerHashTableEntry * n = new KviPointerHashTableEntry; - kvi_hash_key_copy(hKey,n->hKey,m_bDeepCopyKeys); + KviPointerHashTableEntry * n = new KviPointerHashTableEntry; + kvi_hash_key_copy(hKey, n->hKey, m_bDeepCopyKeys); n->pData = pData; m_pDataArray[uEntry]->append(n); m_uCount++; @@ -545,7 +567,7 @@ public: */ void replace(const Key & hKey, T * pData) { - insert(hKey,pData); + insert(hKey, pData); } /** @@ -559,14 +581,16 @@ public: */ bool remove(const Key & hKey) { - unsigned int uEntry = kvi_hash_hash(hKey,m_bCaseSensitive) % m_uSize; - if(!m_pDataArray[uEntry])return false; - for(KviPointerHashTableEntry * e = m_pDataArray[uEntry]->first();e;e = m_pDataArray[uEntry]->next()) + unsigned int uEntry = kvi_hash_hash(hKey, m_bCaseSensitive) % m_uSize; + if(!m_pDataArray[uEntry]) + return false; + for(KviPointerHashTableEntry * e = m_pDataArray[uEntry]->first(); e; e = m_pDataArray[uEntry]->next()) { - if(kvi_hash_key_equal(e->hKey,hKey,m_bCaseSensitive)) + if(kvi_hash_key_equal(e->hKey, hKey, m_bCaseSensitive)) { - kvi_hash_key_destroy(e->hKey,m_bDeepCopyKeys); - if(m_bAutoDelete)delete ((T *)(e->pData)); + kvi_hash_key_destroy(e->hKey, m_bDeepCopyKeys); + if(m_bAutoDelete) + delete((T *)(e->pData)); m_pDataArray[uEntry]->removeRef(e); if(m_pDataArray[uEntry]->isEmpty()) { @@ -591,16 +615,17 @@ public: */ bool removeRef(const T * pRef) { - for(unsigned int i=0;i * e = m_pDataArray[i]->first();e;e = m_pDataArray[i]->next()) + for(KviPointerHashTableEntry * e = m_pDataArray[i]->first(); e; e = m_pDataArray[i]->next()) { if(e->pData == pRef) { - kvi_hash_key_destroy(e->hKey,m_bDeepCopyKeys); - if(m_bAutoDelete)delete ((T *)(e->pData)); + kvi_hash_key_destroy(e->hKey, m_bDeepCopyKeys); + if(m_bAutoDelete) + delete((T *)(e->pData)); m_pDataArray[i]->removeRef(e); if(m_pDataArray[i]->isEmpty()) { @@ -625,17 +650,17 @@ public: */ void clear() { - for(unsigned int i=0;i * e = m_pDataArray[i]->takeFirst()) + while(KviPointerHashTableEntry * e = m_pDataArray[i]->takeFirst()) { - kvi_hash_key_destroy(e->hKey,m_bDeepCopyKeys); + kvi_hash_key_destroy(e->hKey, m_bDeepCopyKeys); if(m_bAutoDelete) - delete ((T *)(e->pData)); + delete((T *)(e->pData)); delete e; @@ -660,15 +685,16 @@ public: * \param pRef The pointer to search * \return KviPointerHashTableEntry * */ - KviPointerHashTableEntry * findRef(const T * pRef) + KviPointerHashTableEntry * findRef(const T * pRef) { - for(m_uIteratorIdx = 0;m_uIteratorIdx * e = m_pDataArray[m_uIteratorIdx]->first();e;e = m_pDataArray[m_uIteratorIdx]->next()) + for(KviPointerHashTableEntry * e = m_pDataArray[m_uIteratorIdx]->first(); e; e = m_pDataArray[m_uIteratorIdx]->next()) { - if(e->pData == pRef)return e; + if(e->pData == pRef) + return e; } } } @@ -682,10 +708,12 @@ public: * or findRef(). * \return KviPointerHashTableEntry * */ - KviPointerHashTableEntry * currentEntry() + KviPointerHashTableEntry * currentEntry() { - if(m_uIteratorIdx >= m_uSize)return 0; - if(m_pDataArray[m_uIteratorIdx])return m_pDataArray[m_uIteratorIdx]->current(); + if(m_uIteratorIdx >= m_uSize) + return 0; + if(m_pDataArray[m_uIteratorIdx]) + return m_pDataArray[m_uIteratorIdx]->current(); return 0; } @@ -693,14 +721,15 @@ public: * \brief Places the hash table iterator at the first entry and returns it. * \return KviPointerHashTableEntry * */ - KviPointerHashTableEntry * firstEntry() + KviPointerHashTableEntry * firstEntry() { m_uIteratorIdx = 0; while(m_uIteratorIdx < m_uSize && (!m_pDataArray[m_uIteratorIdx])) { m_uIteratorIdx++; } - if(m_uIteratorIdx == m_uSize)return 0; + if(m_uIteratorIdx == m_uSize) + return 0; return m_pDataArray[m_uIteratorIdx]->first(); } @@ -711,14 +740,16 @@ public: * or findRef(). * \return KviPointerHashTableEntry * */ - KviPointerHashTableEntry * nextEntry() + KviPointerHashTableEntry * nextEntry() { - if(m_uIteratorIdx >= m_uSize)return 0; + if(m_uIteratorIdx >= m_uSize) + return 0; if(m_uIteratorIdx < m_uSize) { - KviPointerHashTableEntry * t = m_pDataArray[m_uIteratorIdx]->next(); - if(t)return t; + KviPointerHashTableEntry * t = m_pDataArray[m_uIteratorIdx]->next(); + if(t) + return t; } m_uIteratorIdx++; @@ -728,10 +759,10 @@ public: m_uIteratorIdx++; } - if(m_uIteratorIdx == m_uSize)return 0; + if(m_uIteratorIdx == m_uSize) + return 0; return m_pDataArray[m_uIteratorIdx]->first(); - } /** @@ -743,11 +774,13 @@ public: */ T * current() { - if(m_uIteratorIdx >= m_uSize)return 0; + if(m_uIteratorIdx >= m_uSize) + return 0; if(m_pDataArray[m_uIteratorIdx]) { - KviPointerHashTableEntry * e = m_pDataArray[m_uIteratorIdx]->current(); - if(!e)return 0; + KviPointerHashTableEntry * e = m_pDataArray[m_uIteratorIdx]->current(); + if(!e) + return 0; return e->data(); } return 0; @@ -762,11 +795,13 @@ public: */ const Key & currentKey() { - if(m_uIteratorIdx >= m_uSize)return kvi_hash_key_default(((Key *)NULL)); + if(m_uIteratorIdx >= m_uSize) + return kvi_hash_key_default(((Key *)NULL)); if(m_pDataArray[m_uIteratorIdx]) { - KviPointerHashTableEntry * e = m_pDataArray[m_uIteratorIdx]->current(); - if(!e)return kvi_hash_key_default(((Key *)NULL)); + KviPointerHashTableEntry * e = m_pDataArray[m_uIteratorIdx]->current(); + if(!e) + return kvi_hash_key_default(((Key *)NULL)); return e->key(); } return kvi_hash_key_default(((Key *)NULL)); @@ -784,9 +819,11 @@ public: { m_uIteratorIdx++; } - if(m_uIteratorIdx == m_uSize)return 0; - KviPointerHashTableEntry * e = m_pDataArray[m_uIteratorIdx]->first(); - if(!e)return 0; + if(m_uIteratorIdx == m_uSize) + return 0; + KviPointerHashTableEntry * e = m_pDataArray[m_uIteratorIdx]->first(); + if(!e) + return 0; return e->data(); } @@ -799,11 +836,12 @@ public: */ T * next() { - if(m_uIteratorIdx >= m_uSize)return 0; + if(m_uIteratorIdx >= m_uSize) + return 0; if(m_uIteratorIdx < m_uSize) { - KviPointerHashTableEntry * t = m_pDataArray[m_uIteratorIdx]->next(); + KviPointerHashTableEntry * t = m_pDataArray[m_uIteratorIdx]->next(); if(t) { return t->data(); @@ -817,10 +855,12 @@ public: m_uIteratorIdx++; } - if(m_uIteratorIdx == m_uSize)return 0; + if(m_uIteratorIdx == m_uSize) + return 0; - KviPointerHashTableEntry * e = m_pDataArray[m_uIteratorIdx]->first(); - if(!e)return 0; + KviPointerHashTableEntry * e = m_pDataArray[m_uIteratorIdx]->first(); + if(!e) + return 0; return e->data(); } @@ -834,11 +874,11 @@ public: * \param t The data to copy * \return void */ - void copyFrom(KviPointerHashTable & t) + void copyFrom(KviPointerHashTable & t) { clear(); - for(KviPointerHashTableEntry * e = t.firstEntry();e;e = t.nextEntry()) - insert(e->key(),e->data()); + for(KviPointerHashTableEntry * e = t.firstEntry(); e; e = t.nextEntry()) + insert(e->key(), e->data()); } /** @@ -848,10 +888,10 @@ public: * \param t The data to insert * \return void */ - void insert(KviPointerHashTable & t) + void insert(KviPointerHashTable & t) { - for(KviPointerHashTableEntry * e = t.firstEntry();e;e = t.nextEntry()) - insert(e->key(),e->data()); + for(KviPointerHashTableEntry * e = t.firstEntry(); e; e = t.nextEntry()) + insert(e->key(), e->data()); } /** @@ -882,8 +922,9 @@ public: m_bAutoDelete = true; m_bDeepCopyKeys = bDeepCopyKeys; m_uSize = uSize > 0 ? uSize : 32; - m_pDataArray = new KviPointerList > *[m_uSize]; - for(unsigned int i=0;i> *[m_uSize]; + for(unsigned int i = 0; i < m_uSize; i++) + m_pDataArray[i] = NULL; } /** @@ -893,15 +934,16 @@ public: * \param t The data to copy * \return KviPointerHashTable */ - KviPointerHashTable(KviPointerHashTable & t) + KviPointerHashTable(KviPointerHashTable & t) { m_uCount = 0; m_bAutoDelete = false; m_bCaseSensitive = t.m_bCaseSensitive; m_bDeepCopyKeys = t.m_bDeepCopyKeys; m_uSize = t.m_uSize; - m_pDataArray = new KviPointerList > *[m_uSize]; - for(unsigned int i=0;i> *[m_uSize]; + for(unsigned int i = 0; i < m_uSize; i++) + m_pDataArray[i] = NULL; copyFrom(t); } @@ -913,7 +955,7 @@ public: ~KviPointerHashTable() { clear(); - delete [] m_pDataArray; + delete[] m_pDataArray; } }; @@ -921,12 +963,14 @@ public: * \class KviPointerHashTableIterator * \brief A fast pointer hash table iterator implementation */ -template class KviPointerHashTableIterator +template +class KviPointerHashTableIterator { protected: - const KviPointerHashTable * m_pHashTable; - unsigned int m_uEntryIndex; - KviPointerListIterator > * m_pIterator; + const KviPointerHashTable * m_pHashTable; + unsigned int m_uEntryIndex; + KviPointerListIterator> * m_pIterator; + public: /** * \brief Creates an iterator copy. @@ -935,12 +979,12 @@ public: * \param src The source pointer to copy from * \return void */ - void operator = (const KviPointerHashTableIterator & src) + void operator=(const KviPointerHashTableIterator & src) { m_pHashTable = src.m_pHashTable; m_uEntryIndex = src.m_uEntryIndex; if(src.m_pIterator) - m_pIterator = new KviPointerListIterator >(*(src.m_pIterator)); + m_pIterator = new KviPointerListIterator>(*(src.m_pIterator)); else m_pIterator = NULL; } @@ -968,7 +1012,7 @@ public: if(m_uEntryIndex == m_pHashTable->m_uSize) return false; - m_pIterator = new KviPointerListIterator >(*(m_pHashTable->m_pDataArray[m_uEntryIndex])); + m_pIterator = new KviPointerListIterator>(*(m_pHashTable->m_pDataArray[m_uEntryIndex])); bool bRet = m_pIterator->moveFirst(); if(!bRet) { @@ -998,7 +1042,7 @@ public: m_uEntryIndex--; if(m_pHashTable->m_pDataArray[m_uEntryIndex]) { - m_pIterator = new KviPointerListIterator >(*(m_pHashTable->m_pDataArray[m_uEntryIndex])); + m_pIterator = new KviPointerListIterator>(*(m_pHashTable->m_pDataArray[m_uEntryIndex])); bool bRet = m_pIterator->moveLast(); if(!bRet) { @@ -1036,7 +1080,7 @@ public: } if(m_uEntryIndex == m_pHashTable->m_uSize) return false; - m_pIterator = new KviPointerListIterator >(*(m_pHashTable->m_pDataArray[m_uEntryIndex])); + m_pIterator = new KviPointerListIterator>(*(m_pHashTable->m_pDataArray[m_uEntryIndex])); bool bRet = m_pIterator->moveFirst(); if(!bRet) { @@ -1054,7 +1098,7 @@ public: * This is just an alias to moveNext(). * \return bool */ - bool operator ++() + bool operator++() { return moveNext(); } @@ -1085,7 +1129,7 @@ public: m_uEntryIndex--; if(m_pHashTable->m_pDataArray[m_uEntryIndex]) { - m_pIterator = new KviPointerListIterator >(*(m_pHashTable->m_pDataArray[m_uEntryIndex])); + m_pIterator = new KviPointerListIterator>(*(m_pHashTable->m_pDataArray[m_uEntryIndex])); bool bRet = m_pIterator->moveLast(); if(!bRet) { @@ -1107,7 +1151,7 @@ public: * This is just an alias to movePrev() with a different name. * \return bool */ - bool operator --() + bool operator--() { return movePrev(); } @@ -1131,7 +1175,7 @@ public: * This is an alias to current() with just a different name. * \return T * */ - T * operator *() const + T * operator*() const { return m_pIterator ? m_pIterator->current()->data() : NULL; } @@ -1161,13 +1205,14 @@ public: return NULL; return current(); } + public: /** * \brief Creates an iterator pointing to the first item in the hash table, if any. * \param hTable The hash table * \return KviPointerHashTableIterator */ - KviPointerHashTableIterator(const KviPointerHashTable & hTable) + KviPointerHashTableIterator(const KviPointerHashTable & hTable) { m_pHashTable = &hTable; m_uEntryIndex = 0; diff --git a/src/kvilib/core/KviPointerList.h b/src/kvilib/core/KviPointerList.h index 2b56e6f96..123552350 100644 --- a/src/kvilib/core/KviPointerList.h +++ b/src/kvilib/core/KviPointerList.h @@ -51,11 +51,13 @@ #include "kvi_settings.h" -template class KviPointerList; -template class KviPointerListIterator; +template +class KviPointerList; +template +class KviPointerListIterator; #ifndef NULL - #define NULL 0 +#define NULL 0 #endif /** @@ -66,7 +68,7 @@ class KviPointerListNode { public: KviPointerListNode * m_pPrev; - void * m_pData; + void * m_pData; KviPointerListNode * m_pNext; }; @@ -140,11 +142,13 @@ public: * * \warning This class is not thread safe by itself. */ -template class KviPointerListIterator +template +class KviPointerListIterator { protected: - KviPointerList * m_pList; - KviPointerListNode * m_pNode; + KviPointerList * m_pList; + KviPointerListNode * m_pNode; + public: /** * \brief Creates an iterator copy. @@ -180,7 +184,7 @@ public: * \param pNode The list node to point to * \return KviPointerListIterator */ - KviPointerListIterator(KviPointerList & l,KviPointerListNode * pNode) + KviPointerListIterator(KviPointerList & l, KviPointerListNode * pNode) { m_pList = (KviPointerList *)&l; m_pNode = pNode; @@ -193,11 +197,12 @@ public: * \param src The source item to copy * \return void */ - void operator = (const KviPointerListIterator & src) + void operator=(const KviPointerListIterator & src) { m_pList = src.m_pList; m_pNode = src.m_pNode; } + public: /** * \brief Moves the iterator to the first element of the list. @@ -232,7 +237,8 @@ public: */ bool moveNext() { - if(!m_pNode)return false; + if(!m_pNode) + return false; m_pNode = m_pNode->m_pNext; return m_pNode != NULL; } @@ -245,9 +251,10 @@ public: * This is just a convenient alias to moveNext(). * \return bool */ - bool operator ++() + bool operator++() { - if(!m_pNode)return false; + if(!m_pNode) + return false; m_pNode = m_pNode->m_pNext; return m_pNode != NULL; } @@ -262,7 +269,8 @@ public: */ bool movePrev() { - if(!m_pNode)return false; + if(!m_pNode) + return false; m_pNode = m_pNode->m_pPrev; return m_pNode != NULL; } @@ -276,9 +284,10 @@ public: * This is just a convenient alias to movePrev(). * \return bool */ - bool operator --() + bool operator--() { - if(!m_pNode)return false; + if(!m_pNode) + return false; m_pNode = m_pNode->m_pPrev; return m_pNode != NULL; } @@ -301,7 +310,7 @@ public: * This is just an alias to current(). * \return T * */ - T * operator *() + T * operator*() { return m_pNode ? (T *)(m_pNode->m_pData) : NULL; } @@ -362,17 +371,19 @@ public: * concurrent access from multiple threads by using an external * synchronization tool (such as KviMutex). */ -template class KviPointerList +template +class KviPointerList { friend class KviPointerListIterator; + protected: - bool m_bAutoDelete; //< do we automatically delete items when they are removed ? + bool m_bAutoDelete; //< do we automatically delete items when they are removed ? - KviPointerListNode * m_pHead; //< our list head pointer (NULL if there are no items in the list) - KviPointerListNode * m_pTail; //< our list tail - KviPointerListNode * m_pAux; //< our iteration pointer + KviPointerListNode * m_pHead; //< our list head pointer (NULL if there are no items in the list) + KviPointerListNode * m_pTail; //< our list tail + KviPointerListNode * m_pAux; //< our iteration pointer - unsigned int m_uCount; //< the count of items in the list + unsigned int m_uCount; //< the count of items in the list protected: /** * \brief Inserts the item d before the item ref @@ -393,7 +404,9 @@ protected: if(m_pAux->m_pPrev) { m_pAux->m_pPrev->m_pNext = n; - } else { + } + else + { m_pHead = n; } m_pAux->m_pPrev = n; @@ -416,7 +429,9 @@ protected: { src->m_pHead = pNewHead->m_pNext; src->m_pHead->m_pPrev = NULL; - } else { + } + else + { src->m_pHead = NULL; src->m_pTail = NULL; } @@ -426,7 +441,9 @@ protected: m_pHead->m_pPrev = pNewHead; pNewHead->m_pNext = m_pHead; m_pHead = pNewHead; - } else { + } + else + { m_pHead = pNewHead; m_pTail = pNewHead; m_pHead->m_pNext = NULL; @@ -473,7 +490,7 @@ public: m_uCount += src->m_uCount; while(m_pAux && n) { - if(kvi_compare((const T *)(m_pAux->m_pData),(const T *)(n->m_pData)) > 0) + if(kvi_compare((const T *)(m_pAux->m_pData), (const T *)(n->m_pData)) > 0) { // our element is greater, n->m_pData goes first KviPointerListNode * pNext = n->m_pNext; @@ -485,7 +502,9 @@ public: m_pHead = n; m_pAux->m_pPrev = n; n = pNext; - } else { + } + else + { // that element is greater m_pAux = m_pAux->m_pNext; } @@ -497,7 +516,9 @@ public: { m_pTail->m_pNext = n; n->m_pPrev = m_pTail; - } else { + } + else + { m_pHead = n; m_pTail = n; n->m_pPrev = NULL; @@ -528,7 +549,6 @@ public: src->m_uCount = uCount; } - /** * \brief Sorts this list in ascending order. * @@ -540,17 +560,19 @@ public: */ void sort() { - if(m_uCount < 2)return; + if(m_uCount < 2) + return; KviPointerList carry; KviPointerList tmp[64]; KviPointerList * fill = &tmp[0]; KviPointerList * counter; - do { + do + { carry.grabFirstAndPrepend(this); - for(counter = &tmp[0];counter != fill && !counter->isEmpty();++counter) + for(counter = &tmp[0]; counter != fill && !counter->isEmpty(); ++counter) { counter->merge(&carry); carry.swap(counter); @@ -560,9 +582,9 @@ public: ++fill; } while(m_uCount > 0); - for(counter = &tmp[1];counter != fill;++counter) - counter->merge(counter-1); - swap(fill-1); + for(counter = &tmp[1]; counter != fill; ++counter) + counter->merge(counter - 1); + swap(fill - 1); } /** @@ -579,9 +601,12 @@ public: void inSort(T * t) { KviPointerListNode * x = m_pHead; - while(x && (kvi_compare(((T *)x->m_pData),t) > 0))x = x->m_pNext; - if(!x)append(t); - else insertBeforeSafe(x,t); + while(x && (kvi_compare(((T *)x->m_pData), t) > 0)) + x = x->m_pNext; + if(!x) + append(t); + else + insertBeforeSafe(x, t); } /** @@ -637,7 +662,9 @@ public: m_pHead = m_pHead->m_pNext; delete m_pHead->m_pPrev; m_pHead->m_pPrev = NULL; - } else { + } + else + { delete m_pHead; m_pHead = NULL; m_pTail = NULL; @@ -647,7 +674,6 @@ public: return pData; } - /** * \brief Removes the last item (if any) and returns it. This function obviously never * deletes the item (regadless of autoDeletion()). @@ -662,7 +688,9 @@ public: m_pTail = m_pTail->m_pPrev; delete m_pTail->m_pNext; m_pTail->m_pNext = NULL; - } else { + } + else + { delete m_pTail; m_pHead = NULL; m_pTail = NULL; @@ -678,7 +706,7 @@ public: */ KviPointerListIterator iteratorAtFirst() { - return KviPointerListIterator(*this,m_pHead); + return KviPointerListIterator(*this, m_pHead); } /** @@ -705,7 +733,7 @@ public: */ KviPointerListIterator iteratorAtLast() { - return KviPointerListIterator(*this,m_pTail); + return KviPointerListIterator(*this, m_pTail); } /** @@ -743,7 +771,7 @@ public: */ KviPointerListIterator iteratorAtCurrent() { - return KviPointerListIterator(*this,m_pAux); + return KviPointerListIterator(*this, m_pAux); } /** @@ -757,9 +785,11 @@ public: */ T * next() { - if(!m_pAux)return NULL; + if(!m_pAux) + return NULL; m_pAux = m_pAux->m_pNext; - if(m_pAux)return (T *)(m_pAux->m_pData); + if(m_pAux) + return (T *)(m_pAux->m_pData); return NULL; } @@ -775,9 +805,11 @@ public: */ T * prev() { - if(!m_pAux)return NULL; + if(!m_pAux) + return NULL; m_pAux = m_pAux->m_pPrev; - if(m_pAux)return (T *)(m_pAux->m_pData); + if(m_pAux) + return (T *)(m_pAux->m_pData); return NULL; } @@ -795,7 +827,8 @@ public: int cnt = 0; while(t) { - if(idx == cnt)return t; + if(idx == cnt) + return t; t = next(); cnt++; } @@ -814,11 +847,11 @@ public: while(n) { if(idx == cnt) - return KviPointerListIterator(*this,n); + return KviPointerListIterator(*this, n); n = n->m_pNext; cnt++; } - return KviPointerListIterator(*this,NULL); + return KviPointerListIterator(*this, NULL); } /** @@ -833,9 +866,10 @@ public: int findRef(const T * d) { int ret = 0; - for(T * t = first();t;t = next()) + for(T * t = first(); t; t = next()) { - if(t == d)return ret; + if(t == d) + return ret; ret++; } return -1; @@ -852,10 +886,10 @@ public: while(n) { if(n->m_pData == d) - return KviPointerListIterator(*this,n); + return KviPointerListIterator(*this, n); n = n->m_pNext; } - return KviPointerListIterator(*this,NULL); + return KviPointerListIterator(*this, NULL); } /** @@ -872,7 +906,9 @@ public: m_pHead->m_pNext = NULL; m_pHead->m_pData = (void *)d; m_pTail = m_pHead; - } else { + } + else + { m_pTail->m_pNext = new KviPointerListNode; m_pTail->m_pNext->m_pPrev = m_pTail; m_pTail->m_pNext->m_pNext = NULL; @@ -889,7 +925,8 @@ public: */ void append(KviPointerList * l) { - for(T * t = l->first();t;t = l->next())append(t); + for(T * t = l->first(); t; t = l->next()) + append(t); } /** @@ -899,7 +936,8 @@ public: */ void prepend(KviPointerList * l) { - for(T * t = l->last();t;t = l->prev())prepend(t); + for(T * t = l->last(); t; t = l->prev()) + prepend(t); } /** @@ -916,12 +954,14 @@ public: m_pHead->m_pNext = NULL; m_pHead->m_pData = (void *)d; m_pTail = m_pHead; - } else { + } + else + { m_pHead->m_pPrev = new KviPointerListNode; m_pHead->m_pPrev->m_pNext = m_pHead; m_pHead->m_pPrev->m_pPrev = NULL; m_pHead->m_pPrev->m_pData = (void *)d; - m_pHead = m_pHead->m_pPrev; + m_pHead = m_pHead->m_pPrev; m_uCount++; } } @@ -947,7 +987,7 @@ public: m_pAux = m_pAux->m_pNext; } if(m_pAux) - insertBeforeSafe(m_pAux,d); + insertBeforeSafe(m_pAux, d); else append(d); } @@ -960,7 +1000,8 @@ public: */ bool removeFirst() { - if(!m_pHead)return false; + if(!m_pHead) + return false; const T * pAuxData; if(m_pHead->m_pNext) { @@ -968,7 +1009,9 @@ public: pAuxData = (const T *)(m_pHead->m_pPrev->m_pData); delete m_pHead->m_pPrev; m_pHead->m_pPrev = NULL; - } else { + } + else + { pAuxData = (const T *)(m_pHead->m_pData); delete m_pHead; m_pHead = NULL; @@ -989,7 +1032,8 @@ public: */ bool removeLast() { - if(!m_pTail)return false; + if(!m_pTail) + return false; const T * pAuxData; if(m_pTail->m_pPrev) { @@ -997,7 +1041,9 @@ public: pAuxData = (const T *)(m_pTail->m_pNext->m_pData); delete m_pTail->m_pNext; m_pTail->m_pNext = NULL; - } else { + } + else + { pAuxData = (const T *)(m_pTail->m_pData); delete m_pTail; m_pHead = NULL; @@ -1063,7 +1109,8 @@ public: */ void clear() { - while(m_pHead)removeFirst(); + while(m_pHead) + removeFirst(); } /** @@ -1091,7 +1138,8 @@ public: */ bool removeRef(const T * d) { - if(findRef(d) == -1)return false; + if(findRef(d) == -1) + return false; removeCurrentSafe(); return true; } @@ -1161,7 +1209,8 @@ public: */ void invert() { - if(!m_pHead)return; + if(!m_pHead) + return; KviPointerListNode * oldHead = m_pHead; KviPointerListNode * oldTail = m_pTail; KviPointerListNode * n = m_pHead; @@ -1184,7 +1233,8 @@ public: void copyFrom(KviPointerList * l) { clear(); - for(T * t = l->first();t;t = l->next())append(t); + for(T * t = l->first(); t; t = l->next()) + append(t); } /** @@ -1194,7 +1244,7 @@ public: * \param l The source list to copy from * \return KviPointerList & */ - KviPointerList & operator = (KviPointerList & l) + KviPointerList & operator=(KviPointerList & l) { copyFrom(&l); return *this; @@ -1211,7 +1261,7 @@ public: m_pHead = NULL; m_pTail = NULL; m_uCount = 0; - m_pAux = NULL; + m_pAux = NULL; }; /** @@ -1229,15 +1279,15 @@ public: // BROKEN MSVC LINKER #ifdef COMPILE_ON_WINDOWS - #include "KviCString.h" - template class KVILIB_API KviPointerList; +#include "KviCString.h" +template class KVILIB_API KviPointerList; #endif // Provide a default implementation of kvi_compare() -template int kvi_compare(const T * p1,const T * p2) +template +int kvi_compare(const T * p1, const T * p2) { return p1 > p2; // just compare pointers } - #endif //_KVI_POINTERLIST_H_ diff --git a/src/kvilib/core/KviQString.cpp b/src/kvilib/core/KviQString.cpp index ec162474b..a8e268419 100644 --- a/src/kvilib/core/KviQString.cpp +++ b/src/kvilib/core/KviQString.cpp @@ -28,7 +28,6 @@ // //============================================================================= - #include "KviQString.h" #include "KviCString.h" #include "KviMemory.h" @@ -42,14 +41,14 @@ extern unsigned char iso88591_toLower_map[256]; extern unsigned char iso88591_toUpper_map[256]; -#define MY_MIN(a,b) (((a) < (b)) ? (a) : (b)) +#define MY_MIN(a, b) (((a) < (b)) ? (a) : (b)) namespace KviQString { // The global empty (and null) string const QString Empty; - static char cHexDigits[16] = { '0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f' }; + static char cHexDigits[16] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; bool equalCSN(const QString & sz1, const QString & sz2, unsigned int uLen) { @@ -60,7 +59,7 @@ namespace KviQString } const QChar * pC1 = sz1.unicode(); const QChar * pC2 = sz2.unicode(); - unsigned int uLMin = MY_MIN(sz1.length(),sz2.length()); + unsigned int uLMin = MY_MIN(sz1.length(), sz2.length()); if(uLMin < uLen) { return false; @@ -93,7 +92,7 @@ namespace KviQString } const QChar * pC1 = sz1.unicode(); const QChar * pC2 = sz2.unicode(); - unsigned int uLMin = MY_MIN(sz1.length(),sz2.length()); + unsigned int uLMin = MY_MIN(sz1.length(), sz2.length()); if(uLMin < uLen) { return false; @@ -228,31 +227,31 @@ namespace KviQString double dSize = bytes; if(dSize < 1024) { - return QString(__tr2qs("%1 bytes")).arg(dSize,0,'f',0); + return QString(__tr2qs("%1 bytes")).arg(dSize, 0, 'f', 0); } dSize /= 1024; if(dSize < 1024) { - return QString(__tr2qs("%1 KiB")).arg(dSize,0,'f',3); + return QString(__tr2qs("%1 KiB")).arg(dSize, 0, 'f', 3); } dSize /= 1024; if(dSize < 1024) { - return QString(__tr2qs("%1 MiB")).arg(dSize,0,'f',3); + return QString(__tr2qs("%1 MiB")).arg(dSize, 0, 'f', 3); } //Pirated DVD?;) dSize /= 1024; if(dSize < 1024) { - return QString(__tr2qs("%1 GiB")).arg(dSize,0,'f',3); + return QString(__tr2qs("%1 GiB")).arg(dSize, 0, 'f', 3); } //Uhm.. We are downloading a whole internet:))) dSize /= 1024; - return QString(__tr2qs("%1 TiB")).arg(dSize,0,'f',3); + return QString(__tr2qs("%1 TiB")).arg(dSize, 0, 'f', 3); } bool equalCS(const QString & sz1, const QString & sz2) @@ -410,7 +409,8 @@ namespace KviQString if(pC1->isLetterOrNumber() && !pC2->isLetterOrNumber()) { return -1; - } else if(!pC1->isLetterOrNumber() && pC2->isLetterOrNumber()) + } + else if(!pC1->isLetterOrNumber() && pC2->isLetterOrNumber()) { return 1; } @@ -420,7 +420,7 @@ namespace KviQString { if(pC2 < pC2e) { - return /* 0 */ - (pC2->toLower().unicode()); + return /* 0 */ -(pC2->toLower().unicode()); } return 0; } @@ -451,8 +451,8 @@ namespace KviQString // assume equal return 0; } - unsigned int u1 = MY_MIN(uLen,(unsigned)sz1.length()); - unsigned int u2 = MY_MIN(u1,(unsigned)sz2.length()); // FIXME: THIS IS NOT OK + unsigned int u1 = MY_MIN(uLen, (unsigned)sz1.length()); + unsigned int u2 = MY_MIN(u1, (unsigned)sz2.length()); // FIXME: THIS IS NOT OK const QChar * pC1 = sz1.unicode(); const QChar * pC2 = sz2.unicode(); @@ -506,7 +506,9 @@ namespace KviQString { szRet = szSrc; szSrc = ""; - } else { + } + else + { szRet = szSrc.left(i); while(i < szSrc.length()) { @@ -519,8 +521,10 @@ namespace KviQString if(i == szSrc.length()) { szSrc = ""; - } else { - szSrc.remove(0,i); + } + else + { + szSrc.remove(0, i); } } return szRet; @@ -534,13 +538,15 @@ namespace KviQString if(szSrc.at(szSrc.length() - (iRemove + 1)).isSpace()) { iRemove++; - } else { + } + else + { break; } } if(iRemove > 0) { - szSrc.remove(szSrc.length() - iRemove,iRemove); + szSrc.remove(szSrc.length() - iRemove, iRemove); } } @@ -552,13 +558,15 @@ namespace KviQString if(szSrc.at(szSrc.length() - (iRemove + 1)) == c) { iRemove++; - } else { + } + else + { break; } } if(iRemove > 0) { - szSrc.remove(szSrc.length() - iRemove,iRemove); + szSrc.remove(szSrc.length() - iRemove, iRemove); } } @@ -570,13 +578,15 @@ namespace KviQString if(szSrc[iRemove] == c) { iRemove++; - } else { + } + else + { break; } } if(iRemove > 0) { - szSrc.remove(0,iRemove); + szSrc.remove(0, iRemove); } } @@ -588,7 +598,7 @@ namespace KviQString cBuffer.setNum(dReal, 'f'); #else char cBuffer[512]; - ::sprintf(cBuffer,"%f",dReal); + ::sprintf(cBuffer, "%f", dReal); #endif szSrc.append(cBuffer); } @@ -596,28 +606,28 @@ namespace KviQString void appendNumber(QString & szSrc, int iInteger) { char cBuffer[64]; - ::sprintf(cBuffer,"%d",iInteger); + ::sprintf(cBuffer, "%d", iInteger); szSrc.append(cBuffer); } void appendNumber(QString & szSrc, kvi_i64_t iInteger) { char cBuffer[64]; - ::sprintf(cBuffer,"%lld", (long long int)iInteger); + ::sprintf(cBuffer, "%lld", (long long int)iInteger); szSrc.append(cBuffer); } void appendNumber(QString & szSrc, kvi_u64_t uInteger) { char cBuffer[64]; - ::sprintf(cBuffer,"%llu", (long long unsigned int)uInteger); + ::sprintf(cBuffer, "%llu", (long long unsigned int)uInteger); szSrc.append(cBuffer); } void appendNumber(QString & szSrc, unsigned int uInteger) { char cBuffer[64]; - ::sprintf(cBuffer,"%u",uInteger); + ::sprintf(cBuffer, "%u", uInteger); szSrc.append(cBuffer); } @@ -651,23 +661,24 @@ namespace KviQString QChar * p = pBuffer; -#define INCREMENT_MEM \ - { \ - iAllocSize += MEMINCREMENT; \ - pBuffer = (QChar *)KviMemory::reallocate(pBuffer,sizeof(QChar) * iAllocSize); \ - p = pBuffer + iRealLen; \ - } +#define INCREMENT_MEM \ + { \ + iAllocSize += MEMINCREMENT; \ + pBuffer = (QChar *)KviMemory::reallocate(pBuffer, sizeof(QChar) * iAllocSize); \ + p = pBuffer + iRealLen; \ + } -#define INCREMENT_MEM_BY(numchars) \ - { \ - iAllocSize += numchars + MEMINCREMENT; \ - pBuffer = (QChar *)KviMemory::reallocate(pBuffer,sizeof(QChar) * iAllocSize); \ - p = pBuffer + iRealLen; \ - } +#define INCREMENT_MEM_BY(numchars) \ + { \ + iAllocSize += numchars + MEMINCREMENT; \ + pBuffer = (QChar *)KviMemory::reallocate(pBuffer, sizeof(QChar) * iAllocSize); \ + p = pBuffer + iRealLen; \ + } - for(; pFmt->unicode() ; ++pFmt) + for(; pFmt->unicode(); ++pFmt) { - if(iRealLen == iAllocSize)INCREMENT_MEM + if(iRealLen == iAllocSize) + INCREMENT_MEM //copy up to a '%' if(pFmt->unicode() != '%') @@ -682,10 +693,10 @@ namespace KviQString { case 's': // char * string { - pcArgString = kvi_va_arg(list,char *); + pcArgString = kvi_va_arg(list, char *); if(!pcArgString) { - pcArgString = (char*) "[!NULL!]"; + pcArgString = (char *)"[!NULL!]"; } QString szStr(pcArgString); if(szStr.isEmpty()) @@ -711,7 +722,7 @@ namespace KviQString } case 'S': // KviCString * string { - KviCString * szStr = kvi_va_arg(list,KviCString *); + KviCString * szStr = kvi_va_arg(list, KviCString *); if(!szStr) { continue; @@ -730,7 +741,7 @@ namespace KviQString } case 'Q': // QString * string { - QString * szStr = kvi_va_arg(list,QString *); + QString * szStr = kvi_va_arg(list, QString *); if(!szStr) { continue; @@ -766,7 +777,7 @@ namespace KviQString // as sizeof(int) bytes value. // Is this always true ? // - *p++ = (char)kvi_va_arg(list,int); + *p++ = (char)kvi_va_arg(list, int); iRealLen++; continue; } @@ -780,13 +791,13 @@ namespace KviQString // as sizeof(int) bytes value. // Is this always true ? // - *p++ = *((QChar *)kvi_va_arg(list,QChar *)); + *p++ = *((QChar *)kvi_va_arg(list, QChar *)); iRealLen++; continue; } case 'd': //signed integer { - lArgValue = kvi_va_arg(list,int); + lArgValue = kvi_va_arg(list, int); if(lArgValue < 0) { //negative integer @@ -802,7 +813,8 @@ namespace KviQString } //write the number in a temporary buffer pcNumBuf = cNumberBuffer; - do { + do + { iTmp = lArgValue / 10; *pcNumBuf++ = lArgValue - (iTmp * 10) + '0'; } while((lArgValue = iTmp)); @@ -812,7 +824,8 @@ namespace KviQString { INCREMENT_MEM_BY(ulArgValue) } - do { + do + { *p++ = QChar(*--pcNumBuf); } while(pcNumBuf != cNumberBuffer); iRealLen += ulArgValue; @@ -820,10 +833,11 @@ namespace KviQString } case 'u': //unsigned integer { - ulArgValue = kvi_va_arg(list,unsigned int); //many implementations place int here + ulArgValue = kvi_va_arg(list, unsigned int); //many implementations place int here //write the number in a temporary buffer pcNumBuf = cNumberBuffer; - do { + do + { iTmp = ulArgValue / 10; *pcNumBuf++ = ulArgValue - (iTmp * 10) + '0'; } while((ulArgValue = iTmp)); @@ -833,7 +847,8 @@ namespace KviQString { INCREMENT_MEM_BY(lArgValue) } - do { + do + { *p++ = *--pcNumBuf; } while(pcNumBuf != cNumberBuffer); iRealLen += lArgValue; @@ -843,10 +858,11 @@ namespace KviQString case 'x': // hexadecimal unsigned integer { static char cHexSmallDigits[] = "0123456789abcdef"; - ulArgValue = kvi_va_arg(list,unsigned int); //many implementations place int here + ulArgValue = kvi_va_arg(list, unsigned int); //many implementations place int here //write the number in a temporary buffer pcNumBuf = cNumberBuffer; - do { + do + { iTmp = ulArgValue / 16; *pcNumBuf++ = cHexSmallDigits[ulArgValue - (iTmp * 16)]; } while((ulArgValue = iTmp)); @@ -856,7 +872,8 @@ namespace KviQString { INCREMENT_MEM_BY(lArgValue) } - do { + do + { *p++ = *--pcNumBuf; } while(pcNumBuf != cNumberBuffer); iRealLen += lArgValue; @@ -866,10 +883,11 @@ namespace KviQString case 'X': // hexadecimal unsigned integer { static char cHexBigDigits[] = "0123456789ABCDEF"; - ulArgValue = kvi_va_arg(list,unsigned int); //many implementations place int here + ulArgValue = kvi_va_arg(list, unsigned int); //many implementations place int here //write the number in a temporary buffer pcNumBuf = cNumberBuffer; - do { + do + { iTmp = ulArgValue / 16; *pcNumBuf++ = cHexBigDigits[ulArgValue - (iTmp * 16)]; } while((ulArgValue = iTmp)); @@ -879,7 +897,8 @@ namespace KviQString { INCREMENT_MEM_BY(lArgValue) } - do { + do + { *p++ = *--pcNumBuf; } while(pcNumBuf != cNumberBuffer); iRealLen += lArgValue; @@ -888,7 +907,7 @@ namespace KviQString default: { // a normal percent followed by some char - *p++ = '%'; //write it + *p++ = '%'; //write it iRealLen++; if(pFmt->unicode()) { @@ -904,7 +923,7 @@ namespace KviQString } } - szSrc.setUnicode(pBuffer,iRealLen); + szSrc.setUnicode(pBuffer, iRealLen); KviMemory::free(pBuffer); //szSrc.squeeze(); } @@ -913,9 +932,9 @@ namespace KviQString { QString szTmp; kvi_va_list list; - kvi_va_start(list,szFmt); + kvi_va_start(list, szFmt); //print...with max 256 chars - KviQString::vsprintf(szTmp,szFmt,list); + KviQString::vsprintf(szTmp, szFmt, list); kvi_va_end(list); szSrc.append(szTmp); } @@ -989,7 +1008,9 @@ namespace KviQString //next savePos2 will be next char pSavePos2++; } - } else { + } + else + { if(pM2->unicode() == '*') { //A wlidcard in the second string @@ -1024,7 +1045,9 @@ namespace KviQString //next pSavePos2 will be next char pSavePos2++; } - } else { + } + else + { if(pSavePos1) { //Have a jolly man...allow not matching... @@ -1034,7 +1057,9 @@ namespace KviQString pM2 = pSavePos2; //and set next pSavePos2 pSavePos2++; - } else { + } + else + { //No previous wildcards...not matched! return false; } @@ -1054,7 +1079,7 @@ namespace KviQString // In wildcard matching mode, QRegExp not only interprets * and ?, but also [ ] // This workaround embeds square brackes in square brackets (ticket #1264) - QChar * pPtr = (QChar*)szExp.constData(); + QChar * pPtr = (QChar *)szExp.constData(); if(!pPtr) return 0; @@ -1066,16 +1091,20 @@ namespace KviQString szWildcard.append("["); szWildcard.append(*pPtr); szWildcard.append("]"); - } else { + } + else + { szWildcard.append(*pPtr); } pPtr++; } - } else { + } + else + { szWildcard = szExp; } - QRegExp re(szWildcard,bCs ? Qt::CaseSensitive : Qt::CaseInsensitive,bIsRegExp ? QRegExp::RegExp : QRegExp::Wildcard); + QRegExp re(szWildcard, bCs ? Qt::CaseSensitive : Qt::CaseInsensitive, bIsRegExp ? QRegExp::RegExp : QRegExp::Wildcard); if(bExact) return re.exactMatch(szStr); @@ -1086,14 +1115,16 @@ namespace KviQString { int iIdx = szSrc.indexOf(c); - if(iIdx == -1) return; + if(iIdx == -1) + return; szSrc.truncate(bIncluded ? iIdx : iIdx + 1); } void cutFromFirst(QString & szSrc, const QString & szFind, bool bIncluded) { int iIdx = szSrc.indexOf(szFind); - if(iIdx == -1) return; + if(iIdx == -1) + return; szSrc.truncate(bIncluded ? iIdx : iIdx + szFind.length()); } @@ -1101,14 +1132,16 @@ namespace KviQString { int iIdx = szSrc.lastIndexOf(c); - if(iIdx == -1) return; + if(iIdx == -1) + return; szSrc.truncate(bIncluded ? iIdx : iIdx + 1); } void cutFromLast(QString & szSrc, const QString & szFind, bool bIncluded) { int iIdx = szSrc.lastIndexOf(szFind); - if(iIdx == -1) return; + if(iIdx == -1) + return; szSrc.truncate(bIncluded ? iIdx : iIdx + szFind.length()); } @@ -1117,10 +1150,11 @@ namespace KviQString int iIdx = szSrc.indexOf(c); if(iIdx == -1) { - if(bClearIfNotFound) szSrc = ""; + if(bClearIfNotFound) + szSrc = ""; return; } - szSrc.remove(0,bIncluded ? iIdx + 1 : iIdx); + szSrc.remove(0, bIncluded ? iIdx + 1 : iIdx); } void cutToFirst(QString & szSrc, const QString & szFind, bool bIncluded, bool bClearIfNotFound) @@ -1128,10 +1162,11 @@ namespace KviQString int iIdx = szSrc.indexOf(szFind); if(iIdx == -1) { - if(bClearIfNotFound) szSrc = ""; + if(bClearIfNotFound) + szSrc = ""; return; } - szSrc.remove(0,bIncluded ? iIdx + szFind.length() : iIdx); + szSrc.remove(0, bIncluded ? iIdx + szFind.length() : iIdx); } void cutToLast(QString & szSrc, const QChar & c, bool bIncluded, bool bClearIfNotFound) @@ -1139,10 +1174,11 @@ namespace KviQString int iIdx = szSrc.lastIndexOf(c); if(iIdx == -1) { - if(bClearIfNotFound) szSrc = ""; + if(bClearIfNotFound) + szSrc = ""; return; } - szSrc.remove(0,bIncluded ? iIdx + 1 : iIdx); + szSrc.remove(0, bIncluded ? iIdx + 1 : iIdx); } void cutToLast(QString & szSrc, const QString & szFind, bool bIncluded, bool bClearIfNotFound) @@ -1150,10 +1186,11 @@ namespace KviQString int iIdx = szSrc.lastIndexOf(szFind); if(iIdx == -1) { - if(bClearIfNotFound) szSrc = ""; + if(bClearIfNotFound) + szSrc = ""; return; } - szSrc.remove(0,bIncluded ? iIdx + szFind.length() : iIdx); + szSrc.remove(0, bIncluded ? iIdx + szFind.length() : iIdx); } QString leftToFirst(QString & szSrc, const QChar & c, bool bIncluded, bool bReturnFullStringIfNotFound) @@ -1209,7 +1246,7 @@ namespace KviQString pB++; usX = pC->unicode(); } - QString szRet(pBuffer,szSrc.length()); + QString szRet(pBuffer, szSrc.length()); KviMemory::free(pBuffer); return szRet; } @@ -1230,13 +1267,14 @@ namespace KviQString if(usX < 256) { *pB = QChar((unsigned short)iso88591_toLower_map[usX]); - } else + } + else *pB = *pC; pC++; pB++; usX = pC->unicode(); } - QString szRet(pBuffer,szSrc.length()); + QString szRet(pBuffer, szSrc.length()); KviMemory::free(pBuffer); return szRet; } @@ -1244,7 +1282,7 @@ namespace KviQString void transliterate(QString & szSrc, const QString & szToFind, const QString & szReplacement) { int i = 0; - int il = MY_MIN(szToFind.length(),szReplacement.length()); + int il = MY_MIN(szToFind.length(), szReplacement.length()); while(i < il) { int k = 0; @@ -1267,9 +1305,9 @@ namespace KviQString unsigned int u = 0; while(u < (uLen * 2)) { - szRetBuffer[int(u)] = QChar((unsigned int)cHexDigits[(*pcBuffer) / 16] ); + szRetBuffer[int(u)] = QChar((unsigned int)cHexDigits[(*pcBuffer) / 16]); u++; - szRetBuffer[int(u)] = QChar((unsigned int)cHexDigits[(*pcBuffer) % 16] ); + szRetBuffer[int(u)] = QChar((unsigned int)cHexDigits[(*pcBuffer) % 16]); u++; pcBuffer++; } @@ -1278,25 +1316,25 @@ namespace KviQString void escapeKvs(QString * szData, uint uFlags) { // escape any $;\% - szData->replace("\\","\\\\"); - szData->replace("\"","\\\""); - szData->replace(";","\\;"); + szData->replace("\\", "\\\\"); + szData->replace("\"", "\\\""); + szData->replace(";", "\\;"); if(!(uFlags & PermitFunctions)) - szData->replace("$","\\$"); + szData->replace("$", "\\$"); if(!(uFlags & PermitVariables)) - szData->replace("%","\\%"); + szData->replace("%", "\\%"); if(!(uFlags & PermitMultiLine)) { - szData->replace("\r"," "); - szData->replace("\n"," "); + szData->replace("\r", " "); + szData->replace("\n", " "); } if(uFlags & EscapeSpace) - szData->replace(" ","\\ "); + szData->replace(" ", "\\ "); if(uFlags & EscapeParenthesis) { - szData->replace("(","\\("); - szData->replace(")","\\)"); + szData->replace("(", "\\("); + szData->replace(")", "\\)"); } } diff --git a/src/kvilib/core/KviQString.h b/src/kvilib/core/KviQString.h index 63150747a..cc540f917 100644 --- a/src/kvilib/core/KviQString.h +++ b/src/kvilib/core/KviQString.h @@ -52,11 +52,11 @@ namespace KviQString */ enum EscapeKVSFlags { - EscapeSpace = 1, /**< escapes spaces */ - PermitVariables = 2, /**< escapes '%' character to permit variables */ - PermitFunctions = 4, /**< escapes '$' character to permit functions */ - PermitMultiLine = 8, /**< escapes '\r' and '\n' characters */ - EscapeParenthesis = 16 /**< escapes parenthesis */ + EscapeSpace = 1, /**< escapes spaces */ + PermitVariables = 2, /**< escapes '%' character to permit variables */ + PermitFunctions = 4, /**< escapes '$' character to permit functions */ + PermitMultiLine = 8, /**< escapes '\r' and '\n' characters */ + EscapeParenthesis = 16 /**< escapes parenthesis */ }; /** diff --git a/src/kvilib/core/KviShortcut.cpp b/src/kvilib/core/KviShortcut.cpp index f948f8a8a..d8632a523 100644 --- a/src/kvilib/core/KviShortcut.cpp +++ b/src/kvilib/core/KviShortcut.cpp @@ -38,7 +38,7 @@ QShortcut * KviShortcut::create(const QKeySequence & key, QWidget * parent, cons return new QShortcut(key, parent, member, ambiguousMember, context); } -void KviShortcut::create(QKeySequence::StandardKey key, QWidget * parent, const char * member, const char * ambiguousMember, Qt::ShortcutContext context,KviPointerList * pBufferList) +void KviShortcut::create(QKeySequence::StandardKey key, QWidget * parent, const char * member, const char * ambiguousMember, Qt::ShortcutContext context, KviPointerList * pBufferList) { QKeySequence singleKey; QList allKeys = QKeySequence::keyBindings(key); @@ -50,4 +50,3 @@ void KviShortcut::create(QKeySequence::StandardKey key, QWidget * parent, const pBufferList->append(pShortcut); } } - diff --git a/src/kvilib/core/KviShortcut.h b/src/kvilib/core/KviShortcut.h index 3baae459e..e4c14f502 100644 --- a/src/kvilib/core/KviShortcut.h +++ b/src/kvilib/core/KviShortcut.h @@ -38,10 +38,11 @@ class KVILIB_API KviShortcut private: KviShortcut(); ~KviShortcut(); + public: static QShortcut * create(const char * key, QWidget * parent, const char * member = 0, const char * ambiguousMember = 0, Qt::ShortcutContext context = Qt::WindowShortcut); static QShortcut * create(const QKeySequence & key, QWidget * parent, const char * member = 0, const char * ambiguousMember = 0, Qt::ShortcutContext context = Qt::WindowShortcut); - static void create(QKeySequence::StandardKey key, QWidget * parent, const char * member = 0, const char * ambiguousMember = 0, Qt::ShortcutContext context = Qt::WindowShortcut,KviPointerList * pBufferList = NULL); + static void create(QKeySequence::StandardKey key, QWidget * parent, const char * member = 0, const char * ambiguousMember = 0, Qt::ShortcutContext context = Qt::WindowShortcut, KviPointerList * pBufferList = NULL); }; #endif //_KVI_SHORTCUT_CLASSFILE_H_ diff --git a/src/kvilib/core/kvi_inttypes.h b/src/kvilib/core/kvi_inttypes.h index e8bd874be..438dd02b3 100644 --- a/src/kvilib/core/kvi_inttypes.h +++ b/src/kvilib/core/kvi_inttypes.h @@ -28,77 +28,76 @@ // backward compatibility #ifndef SYSTEM_SIZE_OF_SHORT_INT - #define SYSTEM_SIZE_OF_SHORT_INT SIZEOF_SHORT_INT - #define SYSTEM_SIZE_OF_INT SIZEOF_INT - #define SYSTEM_SIZE_OF_LONG_INT SIZEOF_LONG_INT - #define SYSTEM_SIZE_OF_LONG_LONG_INT SIZEOF_LONG_LONG_INT +#define SYSTEM_SIZE_OF_SHORT_INT SIZEOF_SHORT_INT +#define SYSTEM_SIZE_OF_INT SIZEOF_INT +#define SYSTEM_SIZE_OF_LONG_INT SIZEOF_LONG_INT +#define SYSTEM_SIZE_OF_LONG_LONG_INT SIZEOF_LONG_LONG_INT #endif //!SYSTEM_SIZE_OF_SHORT_INT - #ifdef COMPILE_ON_WINDOWS - // we don't have a configure script here - // so we can't check the size of types - // We rely on the ms specific definitions then - typedef __int64 kvi_i64_t; - typedef unsigned __int64 kvi_u64_t; - typedef int kvi_i32_t; - typedef unsigned int kvi_u32_t; - typedef short int kvi_i16_t; - typedef short unsigned int kvi_u16_t; - typedef char kvi_i8_t; - typedef unsigned char kvi_u8_t; +// we don't have a configure script here +// so we can't check the size of types +// We rely on the ms specific definitions then +typedef __int64 kvi_i64_t; +typedef unsigned __int64 kvi_u64_t; +typedef int kvi_i32_t; +typedef unsigned int kvi_u32_t; +typedef short int kvi_i16_t; +typedef short unsigned int kvi_u16_t; +typedef char kvi_i8_t; +typedef unsigned char kvi_u8_t; +#else +#if SYSTEM_SIZE_OF_LONG_INT == 8 +// the most common case on 64 bit machines +typedef long int kvi_i64_t; +typedef unsigned long int kvi_u64_t; +#elif SYSTEM_SIZE_OF_INT == 8 +// 64 bit ints ?.. a Cray ? :D +typedef int kvi_i64_t; +typedef unsigned int kvi_u64_t; +#elif SYSTEM_SIZE_OF_LONG_LONG_INT == 8 +// the most common case on 32 bit machines +typedef long long int kvi_i64_t; +typedef unsigned long long int kvi_u64_t; #else - #if SYSTEM_SIZE_OF_LONG_INT == 8 - // the most common case on 64 bit machines - typedef long int kvi_i64_t; - typedef unsigned long int kvi_u64_t; - #elif SYSTEM_SIZE_OF_INT == 8 - // 64 bit ints ?.. a Cray ? :D - typedef int kvi_i64_t; - typedef unsigned int kvi_u64_t; - #elif SYSTEM_SIZE_OF_LONG_LONG_INT == 8 - // the most common case on 32 bit machines - typedef long long int kvi_i64_t; - typedef unsigned long long int kvi_u64_t; - #else - // attempt to live without a 64bit integer type anyway... - // dunno if it will work tough... - typedef long long int kvi_i64_t; - typedef unsigned long long int kvi_u64_t; - #endif +// attempt to live without a 64bit integer type anyway... +// dunno if it will work tough... +typedef long long int kvi_i64_t; +typedef unsigned long long int kvi_u64_t; +#endif - #if SYSTEM_SIZE_OF_INT == 4 - // the most common case - typedef int kvi_i32_t; - typedef unsigned int kvi_u32_t; - #elif SYSTEM_SIZE_OF_SHORT_INT == 4 - // 32 bit shorts ?.. a Cray ? :D - typedef short int kvi_i32_t; - typedef short unsigned int kvi_u32_t; - #elif SYSTEM_SIZE_OF_LONG_INT == 4 - typedef long int kvi_i32_t; - typedef unsigned long int kvi_u32_t; - #else - #error "Can't find a 32-bit integral type on this system" - #error "Please report to pragma at kvirc dot net" - #endif +#if SYSTEM_SIZE_OF_INT == 4 +// the most common case +typedef int kvi_i32_t; +typedef unsigned int kvi_u32_t; +#elif SYSTEM_SIZE_OF_SHORT_INT == 4 +// 32 bit shorts ?.. a Cray ? :D +typedef short int kvi_i32_t; +typedef short unsigned int kvi_u32_t; +#elif SYSTEM_SIZE_OF_LONG_INT == 4 +typedef long int kvi_i32_t; +typedef unsigned long int kvi_u32_t; +#else +#error "Can't find a 32-bit integral type on this system" +#error "Please report to pragma at kvirc dot net" +#endif - #if SYSTEM_SIZE_OF_SHORT_INT == 2 - // the most common case - typedef short int kvi_i16_t; - typedef short unsigned int kvi_u16_t; - #elif SYSTEM_SIZE_OF_INT == 2 - // this isn't going to work anyway, I think.. - typedef int kvi_i16_t; - typedef long int kvi_u16_t; - #else - #error "Can't find a 16-bit integral type on this system" - #error "Please report to pragma at kvirc dot net" - #endif +#if SYSTEM_SIZE_OF_SHORT_INT == 2 +// the most common case +typedef short int kvi_i16_t; +typedef short unsigned int kvi_u16_t; +#elif SYSTEM_SIZE_OF_INT == 2 +// this isn't going to work anyway, I think.. +typedef int kvi_i16_t; +typedef long int kvi_u16_t; +#else +#error "Can't find a 16-bit integral type on this system" +#error "Please report to pragma at kvirc dot net" +#endif - // assume that char is always 8 bit - typedef char kvi_i8_t; - typedef unsigned char kvi_u8_t; +// assume that char is always 8 bit +typedef char kvi_i8_t; +typedef unsigned char kvi_u8_t; #endif #endif //_KVI_INTTYPES_H_ diff --git a/src/kvilib/ext/KviAnimatedPixmap.cpp b/src/kvilib/ext/KviAnimatedPixmap.cpp index 40002984e..a1ce1ece4 100644 --- a/src/kvilib/ext/KviAnimatedPixmap.cpp +++ b/src/kvilib/ext/KviAnimatedPixmap.cpp @@ -29,23 +29,23 @@ #include #include -KviAnimatedPixmap::KviAnimatedPixmap(QString fileName,int iWidth,int iHeight) - : QObject(), - m_szFileName(fileName), - m_uCurrentFrameNumber(0), - m_iStarted(0) +KviAnimatedPixmap::KviAnimatedPixmap(QString fileName, int iWidth, int iHeight) + : QObject(), + m_szFileName(fileName), + m_uCurrentFrameNumber(0), + m_iStarted(0) { - m_pFrameData = KviAnimatedPixmapCache::load(fileName, iWidth,iHeight); + m_pFrameData = KviAnimatedPixmapCache::load(fileName, iWidth, iHeight); //start(); <-- absolutely NO } -KviAnimatedPixmap::KviAnimatedPixmap(const KviAnimatedPixmap &source) - : QObject(), - m_szFileName(source.m_szFileName), - m_pFrameData(source.m_pFrameData), - m_uCurrentFrameNumber(source.m_uCurrentFrameNumber), - m_iStarted(0) +KviAnimatedPixmap::KviAnimatedPixmap(const KviAnimatedPixmap & source) + : QObject(), + m_szFileName(source.m_szFileName), + m_pFrameData(source.m_pFrameData), + m_uCurrentFrameNumber(source.m_uCurrentFrameNumber), + m_iStarted(0) { m_pFrameData->refs++; @@ -76,7 +76,7 @@ void KviAnimatedPixmap::start() m_uCurrentFrameNumber = 0; - KviAnimatedPixmapCache::scheduleFrameChange(m_pFrameData->at(m_uCurrentFrameNumber).delay,this); + KviAnimatedPixmapCache::scheduleFrameChange(m_pFrameData->at(m_uCurrentFrameNumber).delay, this); } void KviAnimatedPixmap::stop() @@ -104,14 +104,13 @@ void KviAnimatedPixmap::nextFrame(bool bEmitSignalAndScheduleNext) if(m_iStarted) emit frameChanged(); - KviAnimatedPixmapCache::scheduleFrameChange(m_pFrameData->at(m_uCurrentFrameNumber).delay,this); + KviAnimatedPixmapCache::scheduleFrameChange(m_pFrameData->at(m_uCurrentFrameNumber).delay, this); } -void KviAnimatedPixmap::resize(QSize newSize,Qt::AspectRatioMode ratioMode) +void KviAnimatedPixmap::resize(QSize newSize, Qt::AspectRatioMode ratioMode) { QSize curSize(size()); - curSize.scale(newSize,ratioMode); + curSize.scale(newSize, ratioMode); - m_pFrameData = KviAnimatedPixmapCache::resize(m_pFrameData,curSize); + m_pFrameData = KviAnimatedPixmapCache::resize(m_pFrameData, curSize); } - diff --git a/src/kvilib/ext/KviAnimatedPixmap.h b/src/kvilib/ext/KviAnimatedPixmap.h index a7978e470..623165506 100644 --- a/src/kvilib/ext/KviAnimatedPixmap.h +++ b/src/kvilib/ext/KviAnimatedPixmap.h @@ -69,23 +69,24 @@ class KVILIB_API KviAnimatedPixmap : public QObject, public KviAnimatedPixmapInt Q_OBJECT protected: - QString m_szFileName; - KviAnimatedPixmapCache::Data* m_pFrameData; + QString m_szFileName; + KviAnimatedPixmapCache::Data * m_pFrameData; + + uint m_uCurrentFrameNumber; + int m_iStarted; - uint m_uCurrentFrameNumber; - int m_iStarted; public: /* * Creates KviAnimatedPixmap, and loads data from "fileName". */ - KviAnimatedPixmap(QString fileName,int iWidth=0,int iHeight=0); + KviAnimatedPixmap(QString fileName, int iWidth = 0, int iHeight = 0); virtual ~KviAnimatedPixmap(); /* * Creates new pixmap using "source" as source of images. */ - KviAnimatedPixmap(const KviAnimatedPixmap &source); + KviAnimatedPixmap(const KviAnimatedPixmap & source); /* * Returns true if animation is started. @@ -112,7 +113,7 @@ public: */ inline bool isValid() { - return (m_pFrameData->count()>0); + return (m_pFrameData->count() > 0); } /* @@ -120,9 +121,9 @@ public: * Never fails. */ - inline QPixmap* pixmap() + inline QPixmap * pixmap() { - if(m_pFrameData->count()>0) + if(m_pFrameData->count() > 0) return m_pFrameData->at(m_uCurrentFrameNumber).pixmap; else return KviAnimatedPixmapCache::dummyPixmap(); @@ -147,7 +148,7 @@ public: /* * Returns current image size */ - inline const QSize& size() + inline const QSize & size() { return m_pFrameData->size; } @@ -156,7 +157,7 @@ public: * Resizes all frames to the newSize size, using "ratioMode" * ratio. */ - void resize(QSize newSize,Qt::AspectRatioMode ratioMode); + void resize(QSize newSize, Qt::AspectRatioMode ratioMode); /* * Called when the frame changes diff --git a/src/kvilib/ext/KviAnimatedPixmapCache.cpp b/src/kvilib/ext/KviAnimatedPixmapCache.cpp index 329d368b5..ab972f4ff 100644 --- a/src/kvilib/ext/KviAnimatedPixmapCache.cpp +++ b/src/kvilib/ext/KviAnimatedPixmapCache.cpp @@ -37,7 +37,7 @@ KviAnimatedPixmapCache::KviAnimatedPixmapCache() { m_pInstance = this; m_animationTimer.setInterval(FRAME_DELAY); - connect(&m_animationTimer,SIGNAL(timeout()),this,SLOT(timeoutEvent())); + connect(&m_animationTimer, SIGNAL(timeout()), this, SLOT(timeoutEvent())); } KviAnimatedPixmapCache::~KviAnimatedPixmapCache() @@ -65,38 +65,41 @@ void KviAnimatedPixmapCache::done() m_pInstance = NULL; } -KviAnimatedPixmapCache::Data* KviAnimatedPixmapCache::internalLoad(const QString &szFile,int iWidth,int iHeight) +KviAnimatedPixmapCache::Data * KviAnimatedPixmapCache::internalLoad(const QString & szFile, int iWidth, int iHeight) { m_cacheMutex.lock(); - Data* newData = 0; + Data * newData = 0; - QMultiHash::iterator i = m_hCache.find(szFile); - while (i != m_hCache.end() && i.key() == szFile && !newData) + QMultiHash::iterator i = m_hCache.find(szFile); + while(i != m_hCache.end() && i.key() == szFile && !newData) { - if (!i.value()->resized) + if(!i.value()->resized) newData = i.value(); ++i; } - if (!newData) { + if(!newData) + { newData = new Data(szFile); QImageReader reader(szFile); newData->size = reader.size(); QImage buffer; - QPixmap* framePixmap; + QPixmap * framePixmap; while(reader.canRead()) { uint delay = reader.nextImageDelay(); reader.read(&buffer); if(!buffer.isNull()) { - if (iHeight && iWidth) framePixmap = new QPixmap(QPixmap::fromImage(buffer).scaled(iWidth,iHeight,Qt::KeepAspectRatio,Qt::SmoothTransformation)); - else framePixmap = new QPixmap(QPixmap::fromImage(buffer)); - newData->append(FrameInfo(framePixmap,delay)); + if(iHeight && iWidth) + framePixmap = new QPixmap(QPixmap::fromImage(buffer).scaled(iWidth, iHeight, Qt::KeepAspectRatio, Qt::SmoothTransformation)); + else + framePixmap = new QPixmap(QPixmap::fromImage(buffer)); + newData->append(FrameInfo(framePixmap, delay)); } } - m_hCache.insert(szFile,newData); + m_hCache.insert(szFile, newData); } newData->refs++; @@ -105,16 +108,18 @@ KviAnimatedPixmapCache::Data* KviAnimatedPixmapCache::internalLoad(const QString return newData; } -KviAnimatedPixmapCache::Data* KviAnimatedPixmapCache::internalResize(Data* data,const QSize &size) +KviAnimatedPixmapCache::Data * KviAnimatedPixmapCache::internalResize(Data * data, const QSize & size) { m_cacheMutex.lock(); bool hasToBeResized = false; - Data* newData = 0; - QMultiHash::iterator i = m_hCache.find(data->file); - while (i != m_hCache.end() && i.key() == data->file && !newData) { - if (i.value()->size == size) { + Data * newData = 0; + QMultiHash::iterator i = m_hCache.find(data->file); + while(i != m_hCache.end() && i.key() == data->file && !newData) + { + if(i.value()->size == size) + { newData = i.value(); } ++i; @@ -124,7 +129,7 @@ KviAnimatedPixmapCache::Data* KviAnimatedPixmapCache::internalResize(Data* data, { newData = new Data(*data); newData->size = size; - m_hCache.insert(newData->file,newData); + m_hCache.insert(newData->file, newData); hasToBeResized = true; newData->resized = true; } @@ -137,9 +142,10 @@ KviAnimatedPixmapCache::Data* KviAnimatedPixmapCache::internalResize(Data* data, if(hasToBeResized) { - for(int i=0;icount();i++) { - QPixmap* old = newData->at(i).pixmap; - newData->operator [](i).pixmap=new QPixmap(old->scaled(size,Qt::IgnoreAspectRatio,Qt::SmoothTransformation)); + for(int i = 0; i < newData->count(); i++) + { + QPixmap * old = newData->at(i).pixmap; + newData->operator[](i).pixmap = new QPixmap(old->scaled(size, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); delete old; } } @@ -147,31 +153,31 @@ KviAnimatedPixmapCache::Data* KviAnimatedPixmapCache::internalResize(Data* data, return newData; } -void KviAnimatedPixmapCache::internalFree(Data* data) +void KviAnimatedPixmapCache::internalFree(Data * data) { if(!data) return; m_cacheMutex.lock(); data->refs--; - if(data->refs==0) + if(data->refs == 0) { - m_hCache.remove(data->file,data); - for(int i=0;icount();i++) + m_hCache.remove(data->file, data); + for(int i = 0; i < data->count(); i++) { - delete data->operator [](i).pixmap; + delete data->operator[](i).pixmap; } delete data; } m_cacheMutex.unlock(); } -void KviAnimatedPixmapCache::internalScheduleFrameChange(uint delay,KviAnimatedPixmapInterface* receiver) +void KviAnimatedPixmapCache::internalScheduleFrameChange(uint delay, KviAnimatedPixmapInterface * receiver) { //qDebug("Adding %i - %i",(uint)KviTimeUtils::getCurrentTimeMills()+delay,receiver); m_timerMutex.lock(); - long long when = KviTimeUtils::getCurrentTimeMills()+delay; + long long when = KviTimeUtils::getCurrentTimeMills() + delay; - m_timerData.insert(when,receiver); + m_timerData.insert(when, receiver); if(!m_animationTimer.isActive()) m_animationTimer.start(); @@ -204,17 +210,18 @@ void KviAnimatedPixmapCache::timeoutEvent() //m_timerMutex.lock(); - QMultiMap::iterator i = - m_timerData.begin(); + QMultiMap::iterator i = m_timerData.begin(); - QList processed; - while (i != m_timerData.end() && i.key() <= now) + QList processed; + while(i != m_timerData.end() && i.key() <= now) { if(processed.contains(i.value())) { // increase the frame index but do not emit the signals as we'll be emitting it later i.value()->nextFrame(false); - } else { + } + else + { // we'll be emitting the signal later processed.append(i.value()); } @@ -234,7 +241,7 @@ void KviAnimatedPixmapCache::timeoutEvent() m_animationTimer.stop(); } -QPixmap* KviAnimatedPixmapCache::dummyPixmap() +QPixmap * KviAnimatedPixmapCache::dummyPixmap() { if(!g_pDummyPixmap) g_pDummyPixmap = new QPixmap(); @@ -242,19 +249,20 @@ QPixmap* KviAnimatedPixmapCache::dummyPixmap() } void KviAnimatedPixmapCache::internalNotifyDelete( - KviAnimatedPixmapInterface* receiver - ) + KviAnimatedPixmapInterface * receiver) { m_timerMutex.lock(); - QMultiMap::iterator i = m_timerData.begin(); + QMultiMap::iterator i = m_timerData.begin(); while(i != m_timerData.end()) { - if (i.value() == receiver) + if(i.value() == receiver) { i = m_timerData.erase(i); - } else { + } + else + { ++i; } } diff --git a/src/kvilib/ext/KviAnimatedPixmapCache.h b/src/kvilib/ext/KviAnimatedPixmapCache.h index ad8c0840c..1e4b3ca2b 100644 --- a/src/kvilib/ext/KviAnimatedPixmapCache.h +++ b/src/kvilib/ext/KviAnimatedPixmapCache.h @@ -35,7 +35,7 @@ class KVILIB_API KviAnimatedPixmapCache : public QObject { - Q_OBJECT + Q_OBJECT public: /* * This subclass represents simple structure @@ -46,22 +46,26 @@ public: * * All data will be duplicated in such case. */ - class FrameInfo { + class FrameInfo + { public: - QPixmap *pixmap; //frame pixmap - uint delay; //next frame delay + QPixmap * pixmap; //frame pixmap + uint delay; //next frame delay - FrameInfo(QPixmap *_pixmap, uint _delay) { + FrameInfo(QPixmap * _pixmap, uint _delay) + { pixmap = _pixmap; delay = _delay; } - FrameInfo(const FrameInfo& source) { + FrameInfo(const FrameInfo & source) + { pixmap = source.pixmap; delay = source.delay; } - void detach() { + void detach() + { pixmap = new QPixmap(*pixmap); } }; @@ -73,23 +77,24 @@ public: * It adds references counter and * mutex, to provide thread-safety. */ - class Data: public QList { + class Data : public QList + { public: - uint refs; //references count - QSize size; //size of the pixmaps - QString file; //just to speedup the cache - bool resized; + uint refs; //references count + QSize size; //size of the pixmaps + QString file; //just to speedup the cache + bool resized; - Data(QString szFile) : - QList (), refs(0), file(szFile), resized(false) { + Data(QString szFile) : QList(), refs(0), file(szFile), resized(false) + { } - Data(Data& other) : - QList (other), refs(0), file(other.file), resized(false) { - for(int i=0;ioperator [](i).detach(); - } + Data(Data & other) : QList(other), refs(0), file(other.file), resized(false) + { + for(int i = 0; i < count(); i++) + { + this->operator[](i).detach(); + } } }; @@ -102,56 +107,53 @@ protected: virtual ~KviAnimatedPixmapCache(); protected: - mutable QMutex m_cacheMutex; mutable QMutex m_timerMutex; - QMultiHash m_hCache; - QMultiMap m_timerData; + QMultiHash m_hCache; + QMultiMap m_timerData; QTimer m_animationTimer; static KviAnimatedPixmapCache * m_pInstance; protected: + Data * internalLoad(const QString & szFile, int iWidth = 0, int iHeight = 0); + Data * internalResize(Data * data, const QSize & size); + void internalFree(Data * data); - Data* internalLoad(const QString &szFile,int iWidth=0,int iHeight=0); - Data* internalResize(Data* data,const QSize &size); - void internalFree(Data* data); - - void internalScheduleFrameChange(uint delay,KviAnimatedPixmapInterface* receiver); - void internalNotifyDelete(KviAnimatedPixmapInterface* receiver); + void internalScheduleFrameChange(uint delay, KviAnimatedPixmapInterface * receiver); + void internalNotifyDelete(KviAnimatedPixmapInterface * receiver); protected slots: virtual void timeoutEvent(); public: - static void init(); static void done(); - static void scheduleFrameChange(uint delay,KviAnimatedPixmapInterface* receiver) + static void scheduleFrameChange(uint delay, KviAnimatedPixmapInterface * receiver) { - m_pInstance->internalScheduleFrameChange(delay,receiver); + m_pInstance->internalScheduleFrameChange(delay, receiver); } - static Data* load(const QString &szFileName,int iWidth=0,int iHeight=0) + static Data * load(const QString & szFileName, int iWidth = 0, int iHeight = 0) { - return m_pInstance->internalLoad(szFileName,iWidth,iHeight); + return m_pInstance->internalLoad(szFileName, iWidth, iHeight); } - static Data* resize(Data* data,const QSize &size) + static Data * resize(Data * data, const QSize & size) { - return m_pInstance->internalResize(data,size); + return m_pInstance->internalResize(data, size); } - static void free(Data* data) + static void free(Data * data) { m_pInstance->internalFree(data); } - static QPixmap* dummyPixmap(); + static QPixmap * dummyPixmap(); - static void notifyDelete(KviAnimatedPixmapInterface* receiver) + static void notifyDelete(KviAnimatedPixmapInterface * receiver) { m_pInstance->internalNotifyDelete(receiver); } diff --git a/src/kvilib/ext/KviCommandFormatter.cpp b/src/kvilib/ext/KviCommandFormatter.cpp index 744e92513..47a60452b 100644 --- a/src/kvilib/ext/KviCommandFormatter.cpp +++ b/src/kvilib/ext/KviCommandFormatter.cpp @@ -22,7 +22,6 @@ // //============================================================================= - #include "KviCommandFormatter.h" #include "KviQString.h" @@ -40,7 +39,9 @@ namespace KviCommandFormatter { // found at least one such leading char bGotIt = true; - } else { + } + else + { // we pretend this line to be empty KviCString szTmp = *(*pszArray); szTmp.trim(); @@ -64,7 +65,9 @@ namespace KviCommandFormatter { // found at least one such leading char bGotIt = true; - } else { + } + else + { // we pretend this line to be empty QString szTmp = *it; szTmp = szTmp.trimmed(); @@ -91,7 +94,7 @@ namespace KviCommandFormatter { for(QStringList::Iterator it = list.begin(); it != list.end(); ++it) { - (*it).remove(0,1); + (*it).remove(0, 1); } } @@ -117,24 +120,26 @@ namespace KviCommandFormatter { // we can format correctly up to 65536 lines (that's really enough) int iRealLen; - KviCString ** pszArray = szBuffer.splitToArray('\n',65536,&iRealLen); + KviCString ** pszArray = szBuffer.splitToArray('\n', 65536, &iRealLen); if(pszArray) { - while(hasLeadingChars(pszArray,'\t') || hasLeadingChars(pszArray,' '))trimLeading(pszArray); - szBuffer.joinFromArray(pszArray,"\n",true); + while(hasLeadingChars(pszArray, '\t') || hasLeadingChars(pszArray, ' ')) + trimLeading(pszArray); + szBuffer.joinFromArray(pszArray, "\n", true); KviCString::freeArray(pszArray); } } void unindent(QString & szBuffer) { - QStringList list = szBuffer.split("\n",QString::KeepEmptyParts); + QStringList list = szBuffer.split("\n", QString::KeepEmptyParts); - while(hasLeadingChars(list,QChar('\t')) || hasLeadingChars(list,QChar(' ')))trimLeading(list); + while(hasLeadingChars(list, QChar('\t')) || hasLeadingChars(list, QChar(' '))) + trimLeading(list); //szBuffer = list.join("\n"); join implementation sux :D // we WANT the last newline szBuffer = ""; - for(QStringList::Iterator it = list.begin();it != list.end();++it) + for(QStringList::Iterator it = list.begin(); it != list.end(); ++it) { szBuffer.append(*it); szBuffer.append(QChar('\n')); @@ -166,10 +171,10 @@ namespace KviCommandFormatter if((szBuffer.at(0) == QChar('{')) && szBuffer.endsWith(QChar('}'))) { - szBuffer.remove(0,1); - szBuffer.remove(szBuffer.length() - 1,1); + szBuffer.remove(0, 1); + szBuffer.remove(szBuffer.length() - 1, 1); while((szBuffer.length() > 0) && ((szBuffer.at(0) == QChar('\n')) || (szBuffer.at(0) == QChar('\r')))) - szBuffer.remove(0,1); + szBuffer.remove(0, 1); } unindent(szBuffer); @@ -180,20 +185,20 @@ namespace KviCommandFormatter { // we can format correctly up to 65536 lines (that's really enough) int iRealLen; - KviCString ** pszArray = szBuffer.splitToArray('\n',65536,&iRealLen); + KviCString ** pszArray = szBuffer.splitToArray('\n', 65536, &iRealLen); if(pszArray) { - addLeading(pszArray,'\t'); - szBuffer.joinFromArray(pszArray,"\n",true); + addLeading(pszArray, '\t'); + szBuffer.joinFromArray(pszArray, "\n", true); KviCString::freeArray(pszArray); } } void indent(QString & szBuffer) { - QStringList list = szBuffer.split("\n",QString::KeepEmptyParts); + QStringList list = szBuffer.split("\n", QString::KeepEmptyParts); - addLeading(list,QChar('\t')); + addLeading(list, QChar('\t')); //szBuffer = list.join("\n"); join implementation sux :D // we WANT the last newline szBuffer = ""; @@ -218,7 +223,7 @@ namespace KviCommandFormatter indent(szBuffer); szBuffer.prepend("{\n"); KviQString::stripRightWhiteSpace(szBuffer); - KviQString::ensureLastCharIs(szBuffer,'\n'); + KviQString::ensureLastCharIs(szBuffer, '\n'); szBuffer.append("}\n"); } } diff --git a/src/kvilib/ext/KviCommandFormatter.h b/src/kvilib/ext/KviCommandFormatter.h index ef99ba24a..169212773 100644 --- a/src/kvilib/ext/KviCommandFormatter.h +++ b/src/kvilib/ext/KviCommandFormatter.h @@ -36,7 +36,7 @@ namespace KviCommandFormatter extern KVILIB_API bool hasLeadingChars(QStringList & list, const QChar & c); extern KVILIB_API void trimLeading(KviCString ** pszArray); - extern KVILIB_API void trimLeading(QStringList &list); + extern KVILIB_API void trimLeading(QStringList & list); extern KVILIB_API void addLeading(KviCString ** pszArray, char c); extern KVILIB_API void addLeading(QStringList & list, const QChar & c); diff --git a/src/kvilib/ext/KviConfigurationFile.cpp b/src/kvilib/ext/KviConfigurationFile.cpp index 09b1cfbfd..7a291a5a0 100644 --- a/src/kvilib/ext/KviConfigurationFile.cpp +++ b/src/kvilib/ext/KviConfigurationFile.cpp @@ -22,7 +22,6 @@ // //============================================================================= - #include "KviConfigurationFile.h" #include "KviFileUtils.h" #include "KviPixmap.h" @@ -32,54 +31,56 @@ #include "KviMemory.h" #include "KviFile.h" - -KviConfigurationFile::KviConfigurationFile(const QString &filename,FileMode f,bool bLocal8Bit) +KviConfigurationFile::KviConfigurationFile(const QString & filename, FileMode f, bool bLocal8Bit) { - m_bLocal8Bit = bLocal8Bit; - m_szFileName = filename; - m_bDirty = false; - m_szGroup = KVI_CONFIG_DEFAULT_GROUP; + m_bLocal8Bit = bLocal8Bit; + m_szFileName = filename; + m_bDirty = false; + m_szGroup = KVI_CONFIG_DEFAULT_GROUP; m_bPreserveEmptyGroups = false; - m_bReadOnly = (f == KviConfigurationFile::Read); - m_pDict = new KviPointerHashTable(17,false); + m_bReadOnly = (f == KviConfigurationFile::Read); + m_pDict = new KviPointerHashTable(17, false); m_pDict->setAutoDelete(true); - if(f != KviConfigurationFile::Write)load(); + if(f != KviConfigurationFile::Write) + load(); } -KviConfigurationFile::KviConfigurationFile(const char* filename,FileMode f,bool bLocal8Bit) +KviConfigurationFile::KviConfigurationFile(const char * filename, FileMode f, bool bLocal8Bit) { - m_bLocal8Bit = bLocal8Bit; - m_szFileName = QString::fromUtf8(filename); - m_bDirty = false; - m_szGroup = KVI_CONFIG_DEFAULT_GROUP; + m_bLocal8Bit = bLocal8Bit; + m_szFileName = QString::fromUtf8(filename); + m_bDirty = false; + m_szGroup = KVI_CONFIG_DEFAULT_GROUP; m_bPreserveEmptyGroups = false; - m_bReadOnly = (f == KviConfigurationFile::Read); - m_pDict = new KviPointerHashTable(17,false); + m_bReadOnly = (f == KviConfigurationFile::Read); + m_pDict = new KviPointerHashTable(17, false); m_pDict->setAutoDelete(true); - if(f != KviConfigurationFile::Write)load(); + if(f != KviConfigurationFile::Write) + load(); } - KviConfigurationFile::~KviConfigurationFile() { - if(m_bDirty)save(); + if(m_bDirty) + save(); delete m_pDict; } void KviConfigurationFile::clear() { delete m_pDict; - m_pDict = new KviPointerHashTable(17,false); + m_pDict = new KviPointerHashTable(17, false); m_pDict->setAutoDelete(true); - m_bDirty = true; - m_szGroup = KVI_CONFIG_DEFAULT_GROUP; + m_bDirty = true; + m_szGroup = KVI_CONFIG_DEFAULT_GROUP; } void KviConfigurationFile::clearGroup(const QString & szGroup) { m_bDirty = true; m_pDict->remove(szGroup); - if(!m_pDict->find(m_szGroup))m_szGroup = KVI_CONFIG_DEFAULT_GROUP; //removed the current one + if(!m_pDict->find(m_szGroup)) + m_szGroup = KVI_CONFIG_DEFAULT_GROUP; //removed the current one } void KviConfigurationFile::clearKey(const QString & szKey) @@ -87,7 +88,8 @@ void KviConfigurationFile::clearKey(const QString & szKey) m_bDirty = true; KviConfigurationFileGroup * p_group = getCurrentGroup(); p_group->remove(szKey); - if(p_group->count() == 0)clearGroup(m_szGroup); + if(p_group->count() == 0) + clearGroup(m_szGroup); } /* @@ -126,8 +128,6 @@ void KviConfigurationFile::getContentsString(KviCString &buffer) } */ - - #define LOAD_BLOCK_SIZE 32768 bool KviConfigurationFile::load() @@ -136,7 +136,8 @@ bool KviConfigurationFile::load() // open the file KviFile f(m_szFileName); - if(!f.open(QFile::ReadOnly)) return false; + if(!f.open(QFile::ReadOnly)) + return false; KviCString tmp; KviConfigurationFileGroup * p_group = 0; @@ -151,7 +152,8 @@ bool KviConfigurationFile::load() char * p = buffer; // start writing to the beginning of the buffer - do { + do + { // compute the length to read toRead = iLoadBlockSize - remainingLen; if(toRead < 1) @@ -159,13 +161,13 @@ bool KviConfigurationFile::load() // ops... a string longer than iLoadBlockSize - 1 chars iLoadBlockSize += LOAD_BLOCK_SIZE; int iOffset = p - buffer; - buffer = (char *)KviMemory::reallocate(buffer,iLoadBlockSize * sizeof(char)); + buffer = (char *)KviMemory::reallocate(buffer, iLoadBlockSize * sizeof(char)); p = buffer + iOffset; toRead += LOAD_BLOCK_SIZE; } // do read - readedLen = f.read(p,toRead); + readedLen = f.read(p, toRead); if(readedLen < toRead) { // check for errors @@ -177,7 +179,9 @@ bool KviConfigurationFile::load() f.close(); KviMemory::free(buffer); return true; // nothing more to parse anyway - } else { + } + else + { // just a zero byte read if(remainingLen == 0) { @@ -192,7 +196,9 @@ bool KviConfigurationFile::load() *p = '\n'; readedLen = 1; } - } else { + } + else + { // just readed something but less than expected // check if the last readed char is a newline // if it isn't, fake it @@ -223,7 +229,8 @@ bool KviConfigurationFile::load() *p = 0; // now begin points to the string that terminates in p // skip leading whitespace - while((*begin == '\t') || (*begin == ' '))begin++; + while((*begin == '\t') || (*begin == ' ')) + begin++; if(p == begin) { @@ -240,8 +247,10 @@ bool KviConfigurationFile::load() while(trail >= begin) { - if((*trail == '\r') || (*trail == '\t') || (*trail == ' '))*trail = 0; - else break; + if((*trail == '\r') || (*trail == '\t') || (*trail == ' ')) + *trail = 0; + else + break; trail--; } @@ -250,10 +259,10 @@ bool KviConfigurationFile::load() { case 0: // empty line - break; + break; case '#': // comment: just skip it - break; + break; case '[': // group ? begin++; @@ -263,14 +272,19 @@ bool KviConfigurationFile::load() #define COMPAT_WITH_OLD_CONFIGS #ifdef COMPAT_WITH_OLD_CONFIGS // run to the end of the string - while(*z)z++; + while(*z) + z++; // run back to the trailing ']' - while((z > begin) && (*z != ']'))z--; + while((z > begin) && (*z != ']')) + z--; // if it is not there just run back to the end of the string - if(*z != ']')while(*z)z++; + if(*z != ']') + while(*z) + z++; #else // new configs have it always encoded properly - while(*z && (*z != ']'))z++; + while(*z && (*z != ']')) + z++; #endif *z = 0; tmp.hexDecode(begin); @@ -278,24 +292,23 @@ bool KviConfigurationFile::load() if(!tmp.isEmpty()) { - QString szGroup = m_bLocal8Bit ? - QString::fromLocal8Bit(tmp.ptr(),tmp.len()) : - QString::fromUtf8(tmp.ptr(),tmp.len()); + QString szGroup = m_bLocal8Bit ? QString::fromLocal8Bit(tmp.ptr(), tmp.len()) : QString::fromUtf8(tmp.ptr(), tmp.len()); p_group = m_pDict->find(szGroup); if(!p_group) { - p_group = new KviConfigurationFileGroup(17,false); + p_group = new KviConfigurationFileGroup(17, false); p_group->setAutoDelete(true); - m_pDict->insert(szGroup,p_group); + m_pDict->insert(szGroup, p_group); } } } - break; + break; default: { // real data ? char * z = begin; - while(*z && (*z != '='))z++; + while(*z && (*z != '=')) + z++; if(*z && (z != begin)) { *z = 0; @@ -303,33 +316,31 @@ bool KviConfigurationFile::load() tmp.stripRightWhiteSpace(); // No external spaces at all in keys if(!tmp.isEmpty()) { - QString szKey = m_bLocal8Bit ? - QString::fromLocal8Bit(tmp.ptr(),tmp.len()) : - QString::fromUtf8(tmp.ptr(),tmp.len()); + QString szKey = m_bLocal8Bit ? QString::fromLocal8Bit(tmp.ptr(), tmp.len()) : QString::fromUtf8(tmp.ptr(), tmp.len()); z++; - while(*z && ((*z == ' ') || (*z == '\t')))z++; + while(*z && ((*z == ' ') || (*z == '\t'))) + z++; if(*z) { tmp.hexDecode(z); - QString * pVal = new QString( m_bLocal8Bit ? - QString::fromLocal8Bit(tmp.ptr(),tmp.len()) : - QString::fromUtf8(tmp.ptr(),tmp.len()) - ); + QString * pVal = new QString(m_bLocal8Bit ? QString::fromLocal8Bit(tmp.ptr(), tmp.len()) : QString::fromUtf8(tmp.ptr(), tmp.len())); if(!p_group) { // ops...we're missing a group // use the default one - p_group = new KviConfigurationFileGroup(17,false); + p_group = new KviConfigurationFileGroup(17, false); p_group->setAutoDelete(true); - m_pDict->insert(KVI_CONFIG_DEFAULT_GROUP,p_group); + m_pDict->insert(KVI_CONFIG_DEFAULT_GROUP, p_group); } - p_group->replace(szKey,pVal); - } else { + p_group->replace(szKey, pVal); + } + else + { // we in fact need this (mercy :D) // otherwise the empty options will be treated as non-existing ones // and will get the defaults (which is bad) QString * pVal = new QString(QString()); - p_group->replace(szKey,pVal); + p_group->replace(szKey, pVal); } } } @@ -341,13 +352,15 @@ bool KviConfigurationFile::load() if(begin != endp) { // there is data with no trailing newline in the buffer - remainingLen = endp-begin; + remainingLen = endp - begin; if(buffer != begin) { - KviMemory::move(buffer,begin,remainingLen); + KviMemory::move(buffer, begin, remainingLen); p = buffer + remainingLen; } // else p remains where it is - } else { + } + else + { p = buffer; } } while(readedLen == toRead); @@ -437,20 +450,23 @@ bool KviConfigurationFile::load() bool KviConfigurationFile::ensureWritable() { - if(m_bReadOnly) return false; + if(m_bReadOnly) + return false; KviFile f(m_szFileName); - if(!f.open(QFile::WriteOnly | QFile::Truncate)) return false; - if(f.write("# KVIrc configuration file\n",27) != 27) return false; - if(!f.flush()) return false; + if(!f.open(QFile::WriteOnly | QFile::Truncate)) + return false; + if(f.write("# KVIrc configuration file\n", 27) != 27) + return false; + if(!f.flush()) + return false; f.close(); return true; } bool KviConfigurationFile::save() { - static unsigned char encode_table[256]= - { + static unsigned char encode_table[256] = { // clang-format off // 000 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 // NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI @@ -500,32 +516,37 @@ bool KviConfigurationFile::save() // 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 // � � � � � � � � 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 - // clang-format on + // clang-format on }; - - if(m_bReadOnly) return false; + if(m_bReadOnly) + return false; KviFile f(m_szFileName); - if(!f.open(QFile::WriteOnly | QFile::Truncate)) return false; - if(f.write("# KVIrc configuration file\n",27) != 27) return false; + if(!f.open(QFile::WriteOnly | QFile::Truncate)) + return false; + if(f.write("# KVIrc configuration file\n", 27) != 27) + return false; - KviPointerHashTableIterator it(*m_pDict); - while (it.current()) + KviPointerHashTableIterator it(*m_pDict); + while(it.current()) { if((it.current()->count() != 0) || (m_bPreserveEmptyGroups)) { KviCString group(m_bLocal8Bit ? it.currentKey().toLocal8Bit() : it.currentKey().toUtf8()); group.hexEncodeWithTable(encode_table); - if(!f.putChar('['))return false; - if(f.write(group.ptr(),group.len()) < (unsigned int) group.len())return false; - if(f.write("]\n",2) < 2)return false; + if(!f.putChar('[')) + return false; + if(f.write(group.ptr(), group.len()) < (unsigned int)group.len()) + return false; + if(f.write("]\n", 2) < 2) + return false; KviConfigurationFileGroup * dict = (KviConfigurationFileGroup *)it.current(); KviConfigurationFileGroupIterator it2(*dict); - KviCString szName,szValue; + KviCString szName, szValue; while(QString * p_str = it2.current()) { szName = m_bLocal8Bit ? it2.currentKey().toLocal8Bit() : it2.currentKey().toUtf8(); @@ -533,10 +554,14 @@ bool KviConfigurationFile::save() szName.hexEncodeWithTable(encode_table); szValue.hexEncodeWhiteSpace(); - if(f.write(szName.ptr(),szName.len()) < (unsigned int) szName.len())return false; - if(!f.putChar('='))return false; - if(f.write(szValue.ptr(),szValue.len()) < (unsigned int) szValue.len())return false; - if(!f.putChar('\n'))return false; + if(f.write(szName.ptr(), szName.len()) < (unsigned int)szName.len()) + return false; + if(!f.putChar('=')) + return false; + if(f.write(szValue.ptr(), szValue.len()) < (unsigned int)szValue.len()) + return false; + if(!f.putChar('\n')) + return false; ++it2; } } @@ -573,26 +598,27 @@ bool KviConfigurationFile::hasGroup(const QString & szGroup) KviConfigurationFileGroup * KviConfigurationFile::getCurrentGroup() { - if(m_szGroup.isEmpty())m_szGroup = KVI_CONFIG_DEFAULT_GROUP; + if(m_szGroup.isEmpty()) + m_szGroup = KVI_CONFIG_DEFAULT_GROUP; KviConfigurationFileGroup * p_group = m_pDict->find(m_szGroup); if(!p_group) { //create the group - p_group = new KviConfigurationFileGroup(17,false); + p_group = new KviConfigurationFileGroup(17, false); p_group->setAutoDelete(true); - m_pDict->insert(m_szGroup,p_group); + m_pDict->insert(m_szGroup, p_group); } return p_group; } ////////////////////////////////// QString -void KviConfigurationFile::writeEntry(const QString & szKey,const QString & szValue) +void KviConfigurationFile::writeEntry(const QString & szKey, const QString & szValue) { m_bDirty = true; KviConfigurationFileGroup * p_group = getCurrentGroup(); - QString *p_data=new QString(szValue); - p_group->replace(szKey,p_data); + QString * p_data = new QString(szValue); + p_group->replace(szKey, p_data); } QString KviConfigurationFile::readEntry(const QString & szKey, const QString & szDefault) @@ -602,7 +628,9 @@ QString KviConfigurationFile::readEntry(const QString & szKey, const QString & s if(!pStr) { m_szStrBuffer = szDefault; - } else { + } + else + { m_szStrBuffer = *pStr; } return m_szStrBuffer; @@ -612,26 +640,27 @@ QString KviConfigurationFile::readEntry(const QString & szKey, const QString & s static QString g_szConfigStringListSeparator(",\\[ITEM],"); -QStringList KviConfigurationFile::readStringListEntry(const QString & szKey,const QStringList &list) +QStringList KviConfigurationFile::readStringListEntry(const QString & szKey, const QStringList & list) { KviConfigurationFileGroup * p_group = getCurrentGroup(); QString * p_str = p_group->find(szKey); - if(!p_str)return list; + if(!p_str) + return list; return p_str->split(g_szConfigStringListSeparator); } -void KviConfigurationFile::writeEntry(const QString & szKey,const QStringList &list) +void KviConfigurationFile::writeEntry(const QString & szKey, const QStringList & list) { m_bDirty = true; KviConfigurationFileGroup * p_group = getCurrentGroup(); - QString *p_data=new QString(list.join(g_szConfigStringListSeparator)); - p_group->replace(szKey,p_data); + QString * p_data = new QString(list.join(g_szConfigStringListSeparator)); + p_group->replace(szKey, p_data); } ////////////////////////////////// QList -QList KviConfigurationFile::readIntListEntry(const QString & szKey,const QList &list) +QList KviConfigurationFile::readIntListEntry(const QString & szKey, const QList & list) { KviConfigurationFileGroup * p_group = getCurrentGroup(); QString * p_str = p_group->find(szKey); @@ -646,122 +675,131 @@ QList KviConfigurationFile::readIntListEntry(const QString & szKey,const QL //qDebug("Got option list for group %s and key %s: %s",m_szGroup.latin1(),szKey.latin1(),p_str->latin1()); - for(QStringList::Iterator it = sl.begin();it != sl.end();++it) + for(QStringList::Iterator it = sl.begin(); it != sl.end(); ++it) { bool bOk; int iTmp = (*it).toInt(&bOk); - if(bOk)ret.append(iTmp); + if(bOk) + ret.append(iTmp); } return ret; } - -void KviConfigurationFile::writeEntry(const QString & szKey,const QList &list) +void KviConfigurationFile::writeEntry(const QString & szKey, const QList & list) { m_bDirty = true; KviConfigurationFileGroup * p_group = getCurrentGroup(); KviCString szData; - for(QList::ConstIterator it = list.begin();it != list.end();++it) + for(QList::ConstIterator it = list.begin(); it != list.end(); ++it) { - if(szData.hasData())szData.append(','); - szData.append(KviCString::Format,"%d",*it); + if(szData.hasData()) + szData.append(','); + szData.append(KviCString::Format, "%d", *it); } //qDebug("Writing option list for group %s and key %s: %s",m_szGroup.latin1(),szKey.latin1(),szData.ptr()); - p_group->replace(szKey,new QString(szData.ptr())); + p_group->replace(szKey, new QString(szData.ptr())); } ////////////////////////////////// KviPixmap // FIXME: #warning "Spaces in image names ?" -void KviConfigurationFile::writeEntry(const QString & szKey,const KviPixmap &pixmap) +void KviConfigurationFile::writeEntry(const QString & szKey, const KviPixmap & pixmap) { m_bDirty = true; KviConfigurationFileGroup * p_group = getCurrentGroup(); - QString *p_data=new QString(); - KviStringConversion::toString(pixmap,*p_data); - p_group->replace(szKey,p_data); + QString * p_data = new QString(); + KviStringConversion::toString(pixmap, *p_data); + p_group->replace(szKey, p_data); } -KviPixmap KviConfigurationFile::readPixmapEntry(const QString & szKey,const KviPixmap &pixDef) +KviPixmap KviConfigurationFile::readPixmapEntry(const QString & szKey, const KviPixmap & pixDef) { KviConfigurationFileGroup * p_group = getCurrentGroup(); QString * p_str = p_group->find(szKey); if(p_str) { KviPixmap ret(""); - return KviStringConversion::fromString(*p_str,ret) ? ret : pixDef; - } else { + return KviStringConversion::fromString(*p_str, ret) ? ret : pixDef; + } + else + { return pixDef; } } ////////////////////////////////// KviMessageTypeSettings -void KviConfigurationFile::writeEntry(const QString & szKey,const KviMessageTypeSettings &msg) +void KviConfigurationFile::writeEntry(const QString & szKey, const KviMessageTypeSettings & msg) { m_bDirty = true; KviConfigurationFileGroup * p_group = getCurrentGroup(); QString szData; - KviStringConversion::toString(msg,szData); - p_group->replace(szKey,new QString(szData)); + KviStringConversion::toString(msg, szData); + p_group->replace(szKey, new QString(szData)); } -KviMessageTypeSettings KviConfigurationFile::readMsgTypeEntry(const QString & szKey,const KviMessageTypeSettings &msgDef) +KviMessageTypeSettings KviConfigurationFile::readMsgTypeEntry(const QString & szKey, const KviMessageTypeSettings & msgDef) { KviConfigurationFileGroup * p_group = getCurrentGroup(); QString * p_str = p_group->find(szKey); - if(!p_str)return msgDef; + if(!p_str) + return msgDef; KviMessageTypeSettings ret = msgDef; - KviStringConversion::fromString(*p_str,ret); + KviStringConversion::fromString(*p_str, ret); return ret; } ////////////////////////////////// QColor -void KviConfigurationFile::writeEntry(const QString & szKey,const QColor &clr) +void KviConfigurationFile::writeEntry(const QString & szKey, const QColor & clr) { m_bDirty = true; KviConfigurationFileGroup * p_group = getCurrentGroup(); - KviCString szData(KviCString::Format,"%d,%d,%d,%d",clr.red(),clr.green(),clr.blue(),clr.alpha()); - p_group->replace(szKey,new QString(szData.ptr())); + KviCString szData(KviCString::Format, "%d,%d,%d,%d", clr.red(), clr.green(), clr.blue(), clr.alpha()); + p_group->replace(szKey, new QString(szData.ptr())); } -QColor KviConfigurationFile::readColorEntry(const QString & szKey,const QColor &clr) +QColor KviConfigurationFile::readColorEntry(const QString & szKey, const QColor & clr) { KviConfigurationFileGroup * p_group = getCurrentGroup(); QColor color(clr); QString * pointer_that_IS_initialized = p_group->find(szKey); - if(pointer_that_IS_initialized) { KviCString str(*pointer_that_IS_initialized); str.stripLeftWhiteSpace(); - KviCString red,green,blue,alpha; + KviCString red, green, blue, alpha; - str.getToken(red,','); - str.getToken(green,','); - str.getToken(blue,','); - str.getToken(alpha,','); - if(alpha.isEmpty()) alpha = "255"; + str.getToken(red, ','); + str.getToken(green, ','); + str.getToken(blue, ','); + str.getToken(alpha, ','); + if(alpha.isEmpty()) + alpha = "255"; - if((red.isUnsignedNum())&&(green.isUnsignedNum())&&(blue.isUnsignedNum()) &&(alpha.isUnsignedNum())){ + if((red.isUnsignedNum()) && (green.isUnsignedNum()) && (blue.isUnsignedNum()) && (alpha.isUnsignedNum())) + { bool bOk; int r = red.toInt(&bOk) % 256; int g = green.toInt(&bOk) % 256; int b = blue.toInt(&bOk) % 256; int a = alpha.toInt(&bOk) % 256; - if(r < 0)r = -r; - if(g < 0)g = -g; - if(b < 0)b = -b; - if(a < 0)a = -a; - - color.setRgb(r,g,b); + if(r < 0) + r = -r; + if(g < 0) + g = -g; + if(b < 0) + b = -b; + if(a < 0) + a = -a; + + color.setRgb(r, g, b); color.setAlpha(a); } } @@ -770,99 +808,101 @@ QColor KviConfigurationFile::readColorEntry(const QString & szKey,const QColor & ////////////////////////////////// QFont -void KviConfigurationFile::getFontProperties(KviCString & buffer,QFont *fnt) +void KviConfigurationFile::getFontProperties(KviCString & buffer, QFont * fnt) { QString tmp; - KviStringConversion::toString(*fnt,tmp); + KviStringConversion::toString(*fnt, tmp); buffer = tmp; } -void KviConfigurationFile::writeEntry(const QString & szKey,QFont &fnt) +void KviConfigurationFile::writeEntry(const QString & szKey, QFont & fnt) { m_bDirty = true; KviConfigurationFileGroup * p_group = getCurrentGroup(); - QString *p_data = new QString(); - KviStringConversion::toString(fnt,*p_data); - p_group->replace(szKey,p_data); + QString * p_data = new QString(); + KviStringConversion::toString(fnt, *p_data); + p_group->replace(szKey, p_data); } - -void KviConfigurationFile::setFontProperties(KviCString & str,QFont *fnt) +void KviConfigurationFile::setFontProperties(KviCString & str, QFont * fnt) { - KviStringConversion::fromString(str.ptr(),*fnt); + KviStringConversion::fromString(str.ptr(), *fnt); } -QFont KviConfigurationFile::readFontEntry(const QString & szKey,const QFont &fnt) +QFont KviConfigurationFile::readFontEntry(const QString & szKey, const QFont & fnt) { QFont font(fnt); KviConfigurationFileGroup * p_group = getCurrentGroup(); - QString * p_str = p_group->find(szKey); + QString * p_str = p_group->find(szKey); if(p_str) { //FontEntry=Arial,12,9,0,100,italic,underline,strikeout, KviCString str(*p_str); str.stripLeftWhiteSpace(); - setFontProperties(str,&font); + setFontProperties(str, &font); } return font; } ////////////////////////////////// bool -void KviConfigurationFile::writeEntry(const QString & szKey,bool bTrue) +void KviConfigurationFile::writeEntry(const QString & szKey, bool bTrue) { m_bDirty = true; KviConfigurationFileGroup * p_group = getCurrentGroup(); - QString *p_data = new QString(bTrue ? "true" : "false"); - p_group->replace(szKey,p_data); + QString * p_data = new QString(bTrue ? "true" : "false"); + p_group->replace(szKey, p_data); } -bool KviConfigurationFile::readBoolEntry(const QString & szKey,bool bTrue) +bool KviConfigurationFile::readBoolEntry(const QString & szKey, bool bTrue) { KviConfigurationFileGroup * p_group = getCurrentGroup(); QString * p_str = p_group->find(szKey); - if(!p_str)return bTrue; + if(!p_str) + return bTrue; return p_str->toLower() == "true"; } ////////////////////////////////// QRect -void KviConfigurationFile::writeEntry(const QString & szKey,const QRect &rct) +void KviConfigurationFile::writeEntry(const QString & szKey, const QRect & rct) { m_bDirty = true; KviConfigurationFileGroup * p_group = getCurrentGroup(); QString szBuf; - KviStringConversion::toString(rct,szBuf); - p_group->replace(szKey,new QString(szBuf)); + KviStringConversion::toString(rct, szBuf); + p_group->replace(szKey, new QString(szBuf)); } -QRect KviConfigurationFile::readRectEntry(const QString & szKey,const QRect &rct) +QRect KviConfigurationFile::readRectEntry(const QString & szKey, const QRect & rct) { KviConfigurationFileGroup * p_group = getCurrentGroup(); QString * str = p_group->find(szKey); - if(!str)return rct; + if(!str) + return rct; QRect ret; - return KviStringConversion::fromString(*str,ret) ? ret : rct; + return KviStringConversion::fromString(*str, ret) ? ret : rct; } ////////////////////////////////// unsigned short -void KviConfigurationFile::writeEntry(const QString & szKey,unsigned short int usValue) +void KviConfigurationFile::writeEntry(const QString & szKey, unsigned short int usValue) { m_bDirty = true; KviConfigurationFileGroup * p_group = getCurrentGroup(); - QString *p_data = new QString(); + QString * p_data = new QString(); p_data->setNum(usValue); - p_group->replace(szKey,p_data); + p_group->replace(szKey, p_data); } -unsigned short int KviConfigurationFile::readUShortEntry(const QString & szKey,unsigned short int usDefault) +unsigned short int KviConfigurationFile::readUShortEntry(const QString & szKey, unsigned short int usDefault) { KviConfigurationFileGroup * p_group = getCurrentGroup(); QString * p_str = p_group->find(szKey); - if(!p_str)return usDefault; + if(!p_str) + return usDefault; bool bOk; - unsigned short int usVal=p_str->toUShort(&bOk); + unsigned short int usVal = p_str->toUShort(&bOk); return bOk ? usVal : usDefault; } @@ -892,105 +932,108 @@ unsigned long KviConfigurationFile::readULongEntry(const char *szKey,unsigned lo ////////////////////////////////// int -void KviConfigurationFile::writeEntry(const QString & szKey,int iValue) +void KviConfigurationFile::writeEntry(const QString & szKey, int iValue) { m_bDirty = true; KviConfigurationFileGroup * p_group = getCurrentGroup(); - QString *p_data = new QString(); + QString * p_data = new QString(); p_data->setNum(iValue); - p_group->replace(szKey,p_data); + p_group->replace(szKey, p_data); } -int KviConfigurationFile::readIntEntry(const QString & szKey,int iDefault) +int KviConfigurationFile::readIntEntry(const QString & szKey, int iDefault) { KviConfigurationFileGroup * p_group = getCurrentGroup(); QString * p_str = p_group->find(szKey); - if(!p_str)return iDefault; + if(!p_str) + return iDefault; bool bOk; - int iVal=p_str->toInt(&bOk); + int iVal = p_str->toInt(&bOk); return bOk ? iVal : iDefault; } ////////////////////////////////// unsigned int -void KviConfigurationFile::writeEntry(const QString & szKey,unsigned int iValue) +void KviConfigurationFile::writeEntry(const QString & szKey, unsigned int iValue) { m_bDirty = true; KviConfigurationFileGroup * p_group = getCurrentGroup(); - QString *p_data = new QString(); + QString * p_data = new QString(); p_data->setNum(iValue); - p_group->replace(szKey,p_data); + p_group->replace(szKey, p_data); } -unsigned int KviConfigurationFile::readUIntEntry(const QString & szKey,unsigned int iDefault) +unsigned int KviConfigurationFile::readUIntEntry(const QString & szKey, unsigned int iDefault) { KviConfigurationFileGroup * p_group = getCurrentGroup(); QString * p_str = p_group->find(szKey); - if(!p_str)return iDefault; + if(!p_str) + return iDefault; bool bOk; - unsigned int iVal=p_str->toUInt(&bOk); + unsigned int iVal = p_str->toUInt(&bOk); return bOk ? iVal : iDefault; } ////////////////////////////////// char -void KviConfigurationFile::writeEntry(const QString & szKey,char iValue) +void KviConfigurationFile::writeEntry(const QString & szKey, char iValue) { m_bDirty = true; KviConfigurationFileGroup * p_group = getCurrentGroup(); QString * p_data = new QString(); p_data->setNum(iValue); - p_group->replace(szKey,p_data); + p_group->replace(szKey, p_data); } -char KviConfigurationFile::readCharEntry(const QString & szKey,char iDefault) +char KviConfigurationFile::readCharEntry(const QString & szKey, char iDefault) { KviConfigurationFileGroup * p_group = getCurrentGroup(); QString * p_str = p_group->find(szKey); - if(!p_str)return iDefault; + if(!p_str) + return iDefault; bool bOk; - char iVal=(char)p_str->toInt(&bOk); + char iVal = (char)p_str->toInt(&bOk); return bOk ? iVal : iDefault; } ////////////////////////////////// unsigned char -void KviConfigurationFile::writeEntry(const QString & szKey,unsigned char iValue) +void KviConfigurationFile::writeEntry(const QString & szKey, unsigned char iValue) { m_bDirty = true; KviConfigurationFileGroup * p_group = getCurrentGroup(); - QString *p_data = new QString(); + QString * p_data = new QString(); p_data->setNum(iValue); - p_group->replace(szKey,p_data); + p_group->replace(szKey, p_data); } -unsigned char KviConfigurationFile::readUCharEntry(const QString & szKey,unsigned char iDefault) +unsigned char KviConfigurationFile::readUCharEntry(const QString & szKey, unsigned char iDefault) { KviConfigurationFileGroup * p_group = getCurrentGroup(); QString * p_str = p_group->find(szKey); - if(!p_str)return iDefault; + if(!p_str) + return iDefault; bool bOk; - unsigned char iVal=(unsigned char)p_str->toUInt(&bOk); + unsigned char iVal = (unsigned char)p_str->toUInt(&bOk); return bOk ? iVal : iDefault; } - #ifdef COMPILE_ON_WINDOWS - // On windows we need to override new and delete operators - // to ensure that always the right new/delete pair is called for an object instance - // This bug is present in all the classes exported by a module that - // can be instantiated/destroyed from external modules. - // (this is a well known bug described in Q122675 of MSDN) +// On windows we need to override new and delete operators +// to ensure that always the right new/delete pair is called for an object instance +// This bug is present in all the classes exported by a module that +// can be instantiated/destroyed from external modules. +// (this is a well known bug described in Q122675 of MSDN) - void * KviConfigurationFile::operator new(size_t tSize) - { - return KviMemory::allocate(tSize); - } +void * KviConfigurationFile::operator new(size_t tSize) +{ + return KviMemory::allocate(tSize); +} - void KviConfigurationFile::operator delete(void * p) - { - KviMemory::free(p); - } +void KviConfigurationFile::operator delete(void * p) +{ + KviMemory::free(p); +} #endif diff --git a/src/kvilib/ext/KviConfigurationFile.h b/src/kvilib/ext/KviConfigurationFile.h index 5b89cac7f..8e2fb9636 100644 --- a/src/kvilib/ext/KviConfigurationFile.h +++ b/src/kvilib/ext/KviConfigurationFile.h @@ -41,31 +41,40 @@ class KviPixmap; class KviMessageTypeSettings; -typedef KviPointerHashTable KviConfigurationFileGroup; -typedef KviPointerHashTableIterator KviConfigurationFileGroupIterator; -typedef KviPointerHashTableIterator KviConfigurationFileIterator; +typedef KviPointerHashTable KviConfigurationFileGroup; +typedef KviPointerHashTableIterator KviConfigurationFileGroupIterator; +typedef KviPointerHashTableIterator KviConfigurationFileIterator; class KVILIB_API KviConfigurationFile : public KviHeapObject { public: - enum FileMode { Read = 1, Write = 2, ReadWrite = 3 }; + enum FileMode + { + Read = 1, + Write = 2, + ReadWrite = 3 + }; + public: - KviConfigurationFile(const QString &filename,FileMode f/* = ReadWrite*/,bool bLocal8Bit = false); - KviConfigurationFile(const char *filename,FileMode f/* = ReadWrite*/,bool bLocal8Bit = false); + KviConfigurationFile(const QString & filename, FileMode f /* = ReadWrite*/, bool bLocal8Bit = false); + KviConfigurationFile(const char * filename, FileMode f /* = ReadWrite*/, bool bLocal8Bit = false); ~KviConfigurationFile(); + private: - bool m_bLocal8Bit; - KviPointerHashTable * m_pDict; - QString m_szFileName; - bool m_bDirty; - QString m_szStrBuffer; - QString m_szGroup; - bool m_bPreserveEmptyGroups; - bool m_bReadOnly; + bool m_bLocal8Bit; + KviPointerHashTable * m_pDict; + QString m_szFileName; + bool m_bDirty; + QString m_szStrBuffer; + QString m_szGroup; + bool m_bPreserveEmptyGroups; + bool m_bReadOnly; + private: bool load(); bool save(); KviConfigurationFileGroup * getCurrentGroup(); + public: // // Useful when saving... @@ -78,73 +87,77 @@ public: // will create the groups if not existing yet (and set the config data // as modified). // - void preserveEmptyGroups(bool bPreserve){ m_bPreserveEmptyGroups = bPreserve; }; - const QString & fileName(){ return m_szFileName; }; - bool readOnly(){ return m_bReadOnly; }; - void setReadOnly(bool bReadOnly){ m_bReadOnly = bReadOnly; }; - bool dirty(){ return m_bDirty; }; + void preserveEmptyGroups(bool bPreserve) { m_bPreserveEmptyGroups = bPreserve; }; + const QString & fileName() { return m_szFileName; }; + bool readOnly() { return m_bReadOnly; }; + void setReadOnly(bool bReadOnly) { m_bReadOnly = bReadOnly; }; + bool dirty() { return m_bDirty; }; bool ensureWritable(); // // This sets the save path for the config file // In this way you can load a system-wide read-only config file // as default configuration, alter its settings and save it to the // user local configuration directory - void setSavePath(const QString & savePath){ m_szFileName = savePath; }; - KviPointerHashTable *dict(){ return m_pDict; }; + void setSavePath(const QString & savePath) { m_szFileName = savePath; }; + KviPointerHashTable * dict() { return m_pDict; }; - void clearDirtyFlag(){ m_bDirty = false; }; + void clearDirtyFlag() { m_bDirty = false; }; void clear(); void clearGroup(const QString & szGroup); void clearKey(const QString & szKey); - unsigned int groupsCount(){ return m_pDict->count(); }; - bool sync(){ return save(); }; + unsigned int groupsCount() { return m_pDict->count(); }; + bool sync() { return save(); }; bool hasKey(const QString & szKey); bool hasGroup(const QString & szGroup); void setGroup(const QString & szGroup); //void getContentsString(KviCString &buffer); - const QString & group(){ return m_szGroup; }; - void writeEntry(const QString & szKey,const QString & szValue); - void writeEntry(const QString & szKey,const char * szValue) - { writeEntry(szKey,QString::fromUtf8(szValue)); }; - QString readEntry(const QString & szKey,const QString & szDefault = QString()); + const QString & group() { return m_szGroup; }; + void writeEntry(const QString & szKey, const QString & szValue); + void writeEntry(const QString & szKey, const char * szValue) + { + writeEntry(szKey, QString::fromUtf8(szValue)); + }; + QString readEntry(const QString & szKey, const QString & szDefault = QString()); // HACK for KviOptions.. (FIXME) - QString readKviCStringEntry(const QString &szKey,const KviCString &szDefault) - { return readEntry(szKey,szDefault.ptr()); }; + QString readKviCStringEntry(const QString & szKey, const KviCString & szDefault) + { + return readEntry(szKey, szDefault.ptr()); + }; //void writeEntry(const char *szKey,KviCString &szValue); //const char * readEntry(const char *szKey,KviCString &szDefault); - void writeEntry(const QString & szKey,const KviPixmap &pixmap); - KviPixmap readPixmapEntry(const QString & szKey,const KviPixmap &pixDef); - void writeEntry(const QString & szKey,const KviMessageTypeSettings &msg); - KviMessageTypeSettings readMsgTypeEntry(const QString & szKey,const KviMessageTypeSettings &msgDef); - void writeEntry(const QString & szKey,const QColor &clr); - QColor readColorEntry(const QString & szKey,const QColor &clr); - void writeEntry(const QString & szKey,QFont &fnt); - QFont readFontEntry(const QString & szKey,const QFont &fnt); - void writeEntry(const QString & szKey,bool bTrue); - bool readBoolEntry(const QString & szKey,bool bTrue); - QRect readRectEntry(const QString & szKey,const QRect &rct); - void writeEntry(const QString & szKey,const QRect &rct); - QStringList readStringListEntry(const QString & szKey,const QStringList &list = QStringList()); - void writeEntry(const QString & szKey,const QStringList &list); - QList readIntListEntry(const QString &,const QList &list); - void writeEntry(const QString & szKey,const QList &list); + void writeEntry(const QString & szKey, const KviPixmap & pixmap); + KviPixmap readPixmapEntry(const QString & szKey, const KviPixmap & pixDef); + void writeEntry(const QString & szKey, const KviMessageTypeSettings & msg); + KviMessageTypeSettings readMsgTypeEntry(const QString & szKey, const KviMessageTypeSettings & msgDef); + void writeEntry(const QString & szKey, const QColor & clr); + QColor readColorEntry(const QString & szKey, const QColor & clr); + void writeEntry(const QString & szKey, QFont & fnt); + QFont readFontEntry(const QString & szKey, const QFont & fnt); + void writeEntry(const QString & szKey, bool bTrue); + bool readBoolEntry(const QString & szKey, bool bTrue); + QRect readRectEntry(const QString & szKey, const QRect & rct); + void writeEntry(const QString & szKey, const QRect & rct); + QStringList readStringListEntry(const QString & szKey, const QStringList & list = QStringList()); + void writeEntry(const QString & szKey, const QStringList & list); + QList readIntListEntry(const QString &, const QList & list); + void writeEntry(const QString & szKey, const QList & list); //void writeEntry(const char *szKey,unsigned long lValue); //unsigned long readULongEntry(const char *szKey,unsigned long lDefault); //void writeEntry(const char *szKey,long lValue); //long readLongEntry(const char *szKey,long lDefault); - void writeEntry(const QString & szKey,int iValue); - int readIntEntry(const QString & szKey,int iDefault); - void writeEntry(const QString & szKey,unsigned short int usValue); - unsigned short int readUShortEntry(const QString & szKey,unsigned short int usDefault); - void writeEntry(const QString & szKey,unsigned int iValue); - unsigned int readUIntEntry(const QString & szKey,unsigned int iDefault); - void writeEntry(const QString & szKey,char iValue); - char readCharEntry(const QString & szKey,char iDefault); - void writeEntry(const QString & szKey,unsigned char iValue); - unsigned char readUCharEntry(const QString & szKey,unsigned char iDefault); + void writeEntry(const QString & szKey, int iValue); + int readIntEntry(const QString & szKey, int iDefault); + void writeEntry(const QString & szKey, unsigned short int usValue); + unsigned short int readUShortEntry(const QString & szKey, unsigned short int usDefault); + void writeEntry(const QString & szKey, unsigned int iValue); + unsigned int readUIntEntry(const QString & szKey, unsigned int iDefault); + void writeEntry(const QString & szKey, char iValue); + char readCharEntry(const QString & szKey, char iDefault); + void writeEntry(const QString & szKey, unsigned char iValue); + unsigned char readUCharEntry(const QString & szKey, unsigned char iDefault); - static void getFontProperties(KviCString & buffer,QFont *fnt); - static void setFontProperties(KviCString & str,QFont *fnt); + static void getFontProperties(KviCString & buffer, QFont * fnt); + static void setFontProperties(KviCString & str, QFont * fnt); #ifdef COMPILE_ON_WINDOWS // On windows we need to override new and delete operators @@ -152,8 +165,8 @@ public: // This bug is present in all the classes exported by a module that // can be instantiated/destroyed from external modules. // (this is a well known bug described in Q122675 of MSDN) - void * operator new(size_t tSize); - void operator delete(void * p); + void * operator new(size_t tSize); + void operator delete(void * p); #endif }; diff --git a/src/kvilib/ext/KviCryptEngine.cpp b/src/kvilib/ext/KviCryptEngine.cpp index 8f14b1c55..5d3665d25 100644 --- a/src/kvilib/ext/KviCryptEngine.cpp +++ b/src/kvilib/ext/KviCryptEngine.cpp @@ -22,13 +22,12 @@ // //============================================================================= - #include "KviCryptEngine.h" #include "KviLocale.h" #include "KviCString.h" #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - #include "KviMemory.h" +#include "KviMemory.h" #endif /* @@ -147,36 +146,36 @@ A [i]public key[/i] handshake protocol could be implemented. */ - KviCryptEngine::KviCryptEngine() - { +KviCryptEngine::KviCryptEngine() +{ #ifdef COMPILE_CRYPT_SUPPORT - setLastError(__tr2qs("Invalid encryption engine")); - m_iMaxEncryptLen = -1; // unlimited - m_deallocFunc = 0; + setLastError(__tr2qs("Invalid encryption engine")); + m_iMaxEncryptLen = -1; // unlimited + m_deallocFunc = 0; #endif //COMPILE_CRYPT_SUPPORT - } +} - KviCryptEngine::~KviCryptEngine() - { - } +KviCryptEngine::~KviCryptEngine() +{ +} #ifdef COMPILE_CRYPT_SUPPORT - bool KviCryptEngine::init(const char *, int, const char *, int) - { - return false; - } +bool KviCryptEngine::init(const char *, int, const char *, int) +{ + return false; +} - KviCryptEngine::EncryptResult KviCryptEngine::encrypt(const char *, KviCString &) - { -// qDebug("Pure virtual KviCryptEngine::encrypt() called"); - return EncryptError; - } +KviCryptEngine::EncryptResult KviCryptEngine::encrypt(const char *, KviCString &) +{ + // qDebug("Pure virtual KviCryptEngine::encrypt() called"); + return EncryptError; +} - KviCryptEngine::DecryptResult KviCryptEngine::decrypt(const char *, KviCString &) - { -// qDebug("Pure virtual KviCryptEngine::decrypt() called"); - return DecryptError; - } +KviCryptEngine::DecryptResult KviCryptEngine::decrypt(const char *, KviCString &) +{ + // qDebug("Pure virtual KviCryptEngine::decrypt() called"); + return DecryptError; +} #endif //COMPILE_CRYPT_SUPPORT diff --git a/src/kvilib/ext/KviCryptEngine.h b/src/kvilib/ext/KviCryptEngine.h index b98ab3070..af9173967 100644 --- a/src/kvilib/ext/KviCryptEngine.h +++ b/src/kvilib/ext/KviCryptEngine.h @@ -27,7 +27,6 @@ #include "kvi_settings.h" - // // Base class for all IRC crypt engines // These intend to encrypt plain text into something @@ -36,7 +35,6 @@ // similar stuff... // - #include "KviHeapObject.h" #include @@ -44,88 +42,93 @@ class KviCString; #ifdef COMPILE_CRYPT_SUPPORT - class KviCryptEngine; +class KviCryptEngine; - typedef KviCryptEngine * (*crypt_engine_allocator_func)(); - typedef void (*crypt_engine_deallocator_func)(KviCryptEngine *); +typedef KviCryptEngine * (*crypt_engine_allocator_func)(); +typedef void (*crypt_engine_deallocator_func)(KviCryptEngine *); #endif //COMPILE_CRYPT_SUPPORT - // we must include this declaration to make moc happy even - // if we're not compiling the crypt support +// we must include this declaration to make moc happy even +// if we're not compiling the crypt support + +class KVILIB_API KviCryptEngine : public QObject, public KviHeapObject +{ + Q_OBJECT + friend class KviCryptEngineManager; + +public: + enum EngineFlag + { + CanEncrypt = 1, + CanDecrypt = 2, + WantEncryptKey = 4, + WantDecryptKey = 8 + }; + + enum EncryptResult + { + Encrypted, + Encoded, + EncryptError + }; - class KVILIB_API KviCryptEngine : public QObject, public KviHeapObject + enum DecryptResult { - Q_OBJECT - friend class KviCryptEngineManager; - public: - enum EngineFlag { - CanEncrypt = 1, - CanDecrypt = 2, - WantEncryptKey = 4, - WantDecryptKey = 8 - }; - - enum EncryptResult { - Encrypted, - Encoded, - EncryptError - }; - - enum DecryptResult { - DecryptOkWasEncrypted, - DecryptOkWasEncoded, - DecryptOkWasPlainText, - DecryptError - }; - - KviCryptEngine(); - virtual ~KviCryptEngine(); + DecryptOkWasEncrypted, + DecryptOkWasEncoded, + DecryptOkWasPlainText, + DecryptError + }; + + KviCryptEngine(); + virtual ~KviCryptEngine(); #ifdef COMPILE_CRYPT_SUPPORT - private: - crypt_engine_deallocator_func m_deallocFunc; // this is accessed by KviCryptEngineManager only - QString m_szLastError; - int m_iMaxEncryptLen; - public: - void setMaxEncryptLen(int m){ m_iMaxEncryptLen = m; }; - int maxEncryptLen(){ return m_iMaxEncryptLen; }; - virtual bool init(const char * encKey,int encKeyLen,const char * decKey,int decKeyLen); - // - // Encrypts utf8 plainText and returns the encrypted - // data in outBuffer. The encrypted data must be - // suitable for sending through an IRC (eventually DCC - // that is less restrictive) connection and must be utf8 encoded: so - // no NULL, CR and LF in the output. - // 0x01 should be also avoided since - // it is the CTCP delimiter. - // Converting the result in a HEX string - // is a good trick...also Base64 could be used. - // Should return false in case of an error. - // Theoretically we could allow NULLs in plainText - // but this is not the case of KVIrc. - // - virtual EncryptResult encrypt(const char * plainText,KviCString &outBuffer); - // - // Decrypts the utf8 data in inBuffer and puts the decrypted utf8 - // stuff in plainText. inBuffer is the thingie - // that we got from outBuffer of encrupt() so it - // follows the same rules. - // Should return false in case of error. - // - virtual DecryptResult decrypt(const char * inBuffer,KviCString &plainText); - // - // Returns the string containing the description - // of the last error or an empty string if there - // was no error after the last init() call. - // - const QString & lastError(){ return m_szLastError; }; - protected: - // - // The following two should have clear meaning - // - void clearLastError(){ m_szLastError = ""; }; - void setLastError(const QString &err){ m_szLastError = err; }; +private: + crypt_engine_deallocator_func m_deallocFunc; // this is accessed by KviCryptEngineManager only + QString m_szLastError; + int m_iMaxEncryptLen; + +public: + void setMaxEncryptLen(int m) { m_iMaxEncryptLen = m; }; + int maxEncryptLen() { return m_iMaxEncryptLen; }; + virtual bool init(const char * encKey, int encKeyLen, const char * decKey, int decKeyLen); + // + // Encrypts utf8 plainText and returns the encrypted + // data in outBuffer. The encrypted data must be + // suitable for sending through an IRC (eventually DCC + // that is less restrictive) connection and must be utf8 encoded: so + // no NULL, CR and LF in the output. + // 0x01 should be also avoided since + // it is the CTCP delimiter. + // Converting the result in a HEX string + // is a good trick...also Base64 could be used. + // Should return false in case of an error. + // Theoretically we could allow NULLs in plainText + // but this is not the case of KVIrc. + // + virtual EncryptResult encrypt(const char * plainText, KviCString & outBuffer); + // + // Decrypts the utf8 data in inBuffer and puts the decrypted utf8 + // stuff in plainText. inBuffer is the thingie + // that we got from outBuffer of encrupt() so it + // follows the same rules. + // Should return false in case of error. + // + virtual DecryptResult decrypt(const char * inBuffer, KviCString & plainText); + // + // Returns the string containing the description + // of the last error or an empty string if there + // was no error after the last init() call. + // + const QString & lastError() { return m_szLastError; }; +protected: + // + // The following two should have clear meaning + // + void clearLastError() { m_szLastError = ""; }; + void setLastError(const QString & err) { m_szLastError = err; }; #endif //COMPILE_CRYPT_SUPPORT - }; +}; #endif // _KVI_CRYPT_ENGINE_H_ diff --git a/src/kvilib/ext/KviCryptEngineDescription.h b/src/kvilib/ext/KviCryptEngineDescription.h index 5467fdfb7..a42664af0 100644 --- a/src/kvilib/ext/KviCryptEngineDescription.h +++ b/src/kvilib/ext/KviCryptEngineDescription.h @@ -32,20 +32,21 @@ #ifdef COMPILE_CRYPT_SUPPORT - class KVILIB_API KviCryptEngineDescription : public KviHeapObject - { - public: - KviCryptEngineDescription(){}; - virtual ~KviCryptEngineDescription(){}; - public: - QString m_szName; /**< engine name */ - QString m_szDescription; /**< details */ - QString m_szAuthor; /**< algorithm author */ - int m_iFlags; /**< properties */ - crypt_engine_allocator_func m_allocFunc; /**< engine allocator */ - crypt_engine_deallocator_func m_deallocFunc; /**< deallocation function (if called from outside the origin module) */ - void * m_providerHandle; /**< used to identify the provider module */ - }; +class KVILIB_API KviCryptEngineDescription : public KviHeapObject +{ +public: + KviCryptEngineDescription(){}; + virtual ~KviCryptEngineDescription(){}; + +public: + QString m_szName; /**< engine name */ + QString m_szDescription; /**< details */ + QString m_szAuthor; /**< algorithm author */ + int m_iFlags; /**< properties */ + crypt_engine_allocator_func m_allocFunc; /**< engine allocator */ + crypt_engine_deallocator_func m_deallocFunc; /**< deallocation function (if called from outside the origin module) */ + void * m_providerHandle; /**< used to identify the provider module */ +}; #endif //COMPILE_CRYPT_SUPPORT #endif // _KVI_CRYPT_ENGINE_DESC_H_ diff --git a/src/kvilib/ext/KviCryptEngineManager.cpp b/src/kvilib/ext/KviCryptEngineManager.cpp index 22e4c9eea..c17361b29 100644 --- a/src/kvilib/ext/KviCryptEngineManager.cpp +++ b/src/kvilib/ext/KviCryptEngineManager.cpp @@ -28,60 +28,60 @@ #ifdef COMPILE_CRYPT_SUPPORT - KviCryptEngineManager::KviCryptEngineManager() - { - m_pEngineDict = new KviPointerHashTable; - m_pEngineDict->setAutoDelete(true); - } - - KviCryptEngineManager::~KviCryptEngineManager() - { - delete m_pEngineDict; - } - - void KviCryptEngineManager::registerEngine(KviCryptEngineDescription * pDesc) - { - m_pEngineDict->replace(pDesc->m_szName,pDesc); - } +KviCryptEngineManager::KviCryptEngineManager() +{ + m_pEngineDict = new KviPointerHashTable; + m_pEngineDict->setAutoDelete(true); +} - void KviCryptEngineManager::unregisterEngine(const QString & szName) - { - m_pEngineDict->remove(szName); - } +KviCryptEngineManager::~KviCryptEngineManager() +{ + delete m_pEngineDict; +} - void KviCryptEngineManager::unregisterEngines(void * providerHandle) - { - KviPointerList lEnginesToRemove; - lEnginesToRemove.setAutoDelete(true); +void KviCryptEngineManager::registerEngine(KviCryptEngineDescription * pDesc) +{ + m_pEngineDict->replace(pDesc->m_szName, pDesc); +} - for(KviPointerHashTableEntry * pDesc = m_pEngineDict->firstEntry();pDesc;pDesc = m_pEngineDict->nextEntry()) - { - if(pDesc->data()->m_providerHandle == providerHandle) - lEnginesToRemove.append(new QString(pDesc->key())); - } +void KviCryptEngineManager::unregisterEngine(const QString & szName) +{ + m_pEngineDict->remove(szName); +} - for(QString * pszEngineName = lEnginesToRemove.first();pszEngineName;pszEngineName = lEnginesToRemove.next()) - m_pEngineDict->remove(*pszEngineName); - } +void KviCryptEngineManager::unregisterEngines(void * providerHandle) +{ + KviPointerList lEnginesToRemove; + lEnginesToRemove.setAutoDelete(true); - KviCryptEngine * KviCryptEngineManager::allocateEngine(const QString & szName) + for(KviPointerHashTableEntry * pDesc = m_pEngineDict->firstEntry(); pDesc; pDesc = m_pEngineDict->nextEntry()) { - KviCryptEngineDescription * pDesc = m_pEngineDict->find(szName); - if(!pDesc) - return 0; - KviCryptEngine * pEngine = pDesc->m_allocFunc(); - if(!pEngine) - return 0; - pEngine->m_deallocFunc = pDesc->m_deallocFunc; // remember the dealloc func from now on - return pEngine; + if(pDesc->data()->m_providerHandle == providerHandle) + lEnginesToRemove.append(new QString(pDesc->key())); } - void KviCryptEngineManager::deallocateEngine(KviCryptEngine * pEngine) - { - if(!pEngine) - return; - crypt_engine_deallocator_func deallocFunc = pEngine->m_deallocFunc; - deallocFunc(pEngine); - } + for(QString * pszEngineName = lEnginesToRemove.first(); pszEngineName; pszEngineName = lEnginesToRemove.next()) + m_pEngineDict->remove(*pszEngineName); +} + +KviCryptEngine * KviCryptEngineManager::allocateEngine(const QString & szName) +{ + KviCryptEngineDescription * pDesc = m_pEngineDict->find(szName); + if(!pDesc) + return 0; + KviCryptEngine * pEngine = pDesc->m_allocFunc(); + if(!pEngine) + return 0; + pEngine->m_deallocFunc = pDesc->m_deallocFunc; // remember the dealloc func from now on + return pEngine; +} + +void KviCryptEngineManager::deallocateEngine(KviCryptEngine * pEngine) +{ + if(!pEngine) + return; + crypt_engine_deallocator_func deallocFunc = pEngine->m_deallocFunc; + deallocFunc(pEngine); +} #endif // COMPILE_CRYPT_SUPPORT diff --git a/src/kvilib/ext/KviCryptEngineManager.h b/src/kvilib/ext/KviCryptEngineManager.h index bc4856cdc..74845c418 100644 --- a/src/kvilib/ext/KviCryptEngineManager.h +++ b/src/kvilib/ext/KviCryptEngineManager.h @@ -35,26 +35,28 @@ class KviCryptEngineDescription; #ifdef COMPILE_CRYPT_SUPPORT - class KVILIB_API KviCryptEngineManager - { - public: - KviCryptEngineManager(); - virtual ~KviCryptEngineManager(); - private: - KviPointerHashTable * m_pEngineDict; - public: - const KviPointerHashTable * engineDict(){ return m_pEngineDict; }; - void registerEngine(KviCryptEngineDescription * pDesc); - void unregisterEngine(const QString & szName); - void unregisterEngines(void * providerHandle); - // - // Allocates a crypt engine - // Please note that the engine may be deleted from outside - // so you'd better connect the "destroyed" signal - // - KviCryptEngine * allocateEngine(const QString & szName); - void deallocateEngine(KviCryptEngine * pEngine); - }; +class KVILIB_API KviCryptEngineManager +{ +public: + KviCryptEngineManager(); + virtual ~KviCryptEngineManager(); + +private: + KviPointerHashTable * m_pEngineDict; + +public: + const KviPointerHashTable * engineDict() { return m_pEngineDict; }; + void registerEngine(KviCryptEngineDescription * pDesc); + void unregisterEngine(const QString & szName); + void unregisterEngines(void * providerHandle); + // + // Allocates a crypt engine + // Please note that the engine may be deleted from outside + // so you'd better connect the "destroyed" signal + // + KviCryptEngine * allocateEngine(const QString & szName); + void deallocateEngine(KviCryptEngine * pEngine); +}; #endif // COMPILE_CRYPT_SUPPORT #endif // _KVI_CRYPT_ENGINE_MANAGER_H_ diff --git a/src/kvilib/ext/KviDataBuffer.cpp b/src/kvilib/ext/KviDataBuffer.cpp index 25caa4c3a..517adfd8a 100644 --- a/src/kvilib/ext/KviDataBuffer.cpp +++ b/src/kvilib/ext/KviDataBuffer.cpp @@ -22,7 +22,6 @@ // //============================================================================= - #define _KVI_DEBUG_CHECK_RANGE_ #include "kvi_debug.h" @@ -32,12 +31,13 @@ // FIXME: this could resize in chunks!...this would be damn faster :) -KviDataBuffer::KviDataBuffer(int uSize,const unsigned char * data) +KviDataBuffer::KviDataBuffer(int uSize, const unsigned char * data) { KVI_ASSERT(uSize > 0); m_uSize = uSize; m_pData = (unsigned char *)KviMemory::allocate(sizeof(unsigned char) * uSize); - if(data)KviMemory::move(m_pData,data,uSize); + if(data) + KviMemory::move(m_pData, data, uSize); } KviDataBuffer::KviDataBuffer() @@ -55,21 +55,24 @@ KviDataBuffer::~KviDataBuffer() } } -int KviDataBuffer::find(const unsigned char * block,int uSize) +int KviDataBuffer::find(const unsigned char * block, int uSize) { - if(uSize < 1)return -1; - if(uSize > m_uSize)return -1; + if(uSize < 1) + return -1; + if(uSize > m_uSize) + return -1; int uSearchSize = (m_uSize - uSize) + 1; - for(int i=0;i 0)return i; + if(j > 0) + return i; } } @@ -90,13 +94,13 @@ int KviDataBuffer::find(unsigned char c) const unsigned char * e = p + m_uSize; while(p < e) { - if(*p == c)return (p - m_pData); + if(*p == c) + return (p - m_pData); p++; } return -1; } - void KviDataBuffer::remove(int uSize) { KVI_ASSERT((uSize <= m_uSize) && (uSize > 0)); @@ -105,9 +109,11 @@ void KviDataBuffer::remove(int uSize) if(m_uSize > 0) { - KviMemory::move(m_pData,m_pData + uSize,m_uSize); - m_pData = (unsigned char *)KviMemory::reallocate(m_pData,m_uSize * sizeof(unsigned char)); - } else { + KviMemory::move(m_pData, m_pData + uSize, m_uSize); + m_pData = (unsigned char *)KviMemory::reallocate(m_pData, m_uSize * sizeof(unsigned char)); + } + else + { KviMemory::free(m_pData); m_pData = 0; } @@ -118,17 +124,19 @@ void KviDataBuffer::resize(int uSize) KVI_ASSERT(uSize >= 0); if(uSize > 0) { - m_pData = (unsigned char *)KviMemory::reallocate(m_pData,uSize * sizeof(unsigned char)); - } else { + m_pData = (unsigned char *)KviMemory::reallocate(m_pData, uSize * sizeof(unsigned char)); + } + else + { KviMemory::free(m_pData); m_pData = 0; } m_uSize = uSize; } -void KviDataBuffer::append(const unsigned char * data,int uSize) +void KviDataBuffer::append(const unsigned char * data, int uSize) { - m_pData = (unsigned char *)KviMemory::reallocate(m_pData,m_uSize + uSize); - KviMemory::move(m_pData + m_uSize,data,uSize); + m_pData = (unsigned char *)KviMemory::reallocate(m_pData, m_uSize + uSize); + KviMemory::move(m_pData + m_uSize, data, uSize); m_uSize += uSize; } diff --git a/src/kvilib/ext/KviDataBuffer.h b/src/kvilib/ext/KviDataBuffer.h index 429a5ba03..52d02d160 100644 --- a/src/kvilib/ext/KviDataBuffer.h +++ b/src/kvilib/ext/KviDataBuffer.h @@ -33,26 +33,32 @@ public: // uSize MUST be greater than 0 // if data is non-zero, it MUST point to a buffer at least uSize bytes long // and the data is COPIED from that buffer! - KviDataBuffer(int uSize,const unsigned char * data = 0); + KviDataBuffer(int uSize, const unsigned char * data = 0); KviDataBuffer(); ~KviDataBuffer(); + private: int m_uSize; unsigned char * m_pData; + public: int size() const { return m_uSize; }; unsigned char * data() const { return m_pData; }; // uSize MUST be smaller or equal to size() // consumes data! void remove(int uSize); - void clear(){ if(m_uSize > 0)remove(m_uSize); }; + void clear() + { + if(m_uSize > 0) + remove(m_uSize); + }; // uSize MUST be greater than 0 void resize(int uSize); - void addSize(int uSize){ resize(m_uSize + uSize); }; - void append(const unsigned char * data,int uSize); - void append(const KviDataBuffer &b){ append(b.data(),b.size()); }; + void addSize(int uSize) { resize(m_uSize + uSize); }; + void append(const unsigned char * data, int uSize); + void append(const KviDataBuffer & b) { append(b.data(), b.size()); }; int find(unsigned char c); - int find(const unsigned char * block,int uSize); + int find(const unsigned char * block, int uSize); }; #endif //_KVI_DATABUFFER_H_ diff --git a/src/kvilib/ext/KviDbusAdaptor.cpp b/src/kvilib/ext/KviDbusAdaptor.cpp index 519260c98..4c242a365 100644 --- a/src/kvilib/ext/KviDbusAdaptor.cpp +++ b/src/kvilib/ext/KviDbusAdaptor.cpp @@ -27,9 +27,8 @@ #ifdef COMPILE_DBUS_SUPPORT KviDbusAdaptor::KviDbusAdaptor(QObject * pObj) -: QDBusAbstractAdaptor(pObj) + : QDBusAbstractAdaptor(pObj) { } #endif - diff --git a/src/kvilib/ext/KviDbusAdaptor.h b/src/kvilib/ext/KviDbusAdaptor.h index 263207e11..3a71ad203 100644 --- a/src/kvilib/ext/KviDbusAdaptor.h +++ b/src/kvilib/ext/KviDbusAdaptor.h @@ -27,18 +27,18 @@ #include "kvi_settings.h" #ifdef COMPILE_DBUS_SUPPORT - #include - #include - #include +#include +#include +#include - class KVILIB_API KviDbusAdaptor: public QDBusAbstractAdaptor - { - Q_OBJECT - Q_CLASSINFO("KVIrc D-Bus Interface", "org.kvirc.KVIrc") +class KVILIB_API KviDbusAdaptor : public QDBusAbstractAdaptor +{ + Q_OBJECT + Q_CLASSINFO("KVIrc D-Bus Interface", "org.kvirc.KVIrc") - public: - KviDbusAdaptor(QObject * pObj); - }; +public: + KviDbusAdaptor(QObject * pObj); +}; #endif // COMPILE_DBUS_SUPPORT #endif // _KVI_DBUSADAPTOR_H_ diff --git a/src/kvilib/ext/KviDebugContext.cpp b/src/kvilib/ext/KviDebugContext.cpp index 571c36dca..cbade6888 100644 --- a/src/kvilib/ext/KviDebugContext.cpp +++ b/src/kvilib/ext/KviDebugContext.cpp @@ -11,15 +11,14 @@ #include "kvi_stdarg.h" #include "kvi_debug.h" - static KviCString g_szIndentPrefix; KviDebugContext::KviDebugContext(const char * pcContext, ...) { kvi_va_list list; - kvi_va_start(list,pcContext); + kvi_va_start(list, pcContext); - m_szContext.vsprintf(pcContext,list); + m_szContext.vsprintf(pcContext, list); kvi_va_end(list); @@ -28,7 +27,7 @@ KviDebugContext::KviDebugContext(const char * pcContext, ...) KviCString szPrefix = g_szIndentPrefix; szPrefix.append(szEnterMark); - qDebug(szPrefix.ptr(),m_szContext.ptr()); + qDebug(szPrefix.ptr(), m_szContext.ptr()); g_szIndentPrefix.append(" "); } @@ -44,16 +43,16 @@ KviDebugContext::~KviDebugContext() KviCString szPrefix = g_szIndentPrefix; szPrefix.append(szExitMark); - qDebug(szPrefix.ptr(),m_szContext.ptr()); + qDebug(szPrefix.ptr(), m_szContext.ptr()); } void KviDebugContext::trace(const char * pcFmt, ...) { kvi_va_list list; - kvi_va_start(list,pcFmt); + kvi_va_start(list, pcFmt); KviCString szOut; - szOut.vsprintf(pcFmt,list); + szOut.vsprintf(pcFmt, list); kvi_va_end(list); @@ -62,5 +61,5 @@ void KviDebugContext::trace(const char * pcFmt, ...) KviCString szPrefix = g_szIndentPrefix; szPrefix.append(szEnterMark); - qDebug(szPrefix.ptr(),szOut.ptr()); + qDebug(szPrefix.ptr(), szOut.ptr()); } diff --git a/src/kvilib/ext/KviDebugContext.h b/src/kvilib/ext/KviDebugContext.h index 3b527ffdf..627f464a5 100644 --- a/src/kvilib/ext/KviDebugContext.h +++ b/src/kvilib/ext/KviDebugContext.h @@ -55,8 +55,10 @@ public: * \brief Destroys the instance of KviDebugContext and frees all the relevant resources */ ~KviDebugContext(); + private: KviCString m_szContext; + public: /** * \brief @@ -65,8 +67,9 @@ public: * \return void */ static void trace(const char * pcFmt, ...); + private: - const KviDebugContext & operator = (const KviDebugContext &){ return *this; }; + const KviDebugContext & operator=(const KviDebugContext &) { return *this; }; }; #endif // _KVIDEBUGCONTEXT_H_ diff --git a/src/kvilib/ext/KviMediaManager.cpp b/src/kvilib/ext/KviMediaManager.cpp index 12128fda4..2c2a1b58b 100644 --- a/src/kvilib/ext/KviMediaManager.cpp +++ b/src/kvilib/ext/KviMediaManager.cpp @@ -22,10 +22,8 @@ // //============================================================================= - //#define _KVI_DEBUG_CHECK_RANGE_ - #include "KviMediaManager.h" #include "kvi_debug.h" #include "KviConfigurationFile.h" @@ -41,14 +39,11 @@ #include #include - #if !defined(COMPILE_ON_WINDOWS) && !defined(COMPILE_ON_MINGW) - #include - #include "KviMemory.h" +#include +#include "KviMemory.h" #endif - - #ifndef S_ISDIR #define S_ISDIR(__f) (__f & _S_IFDIR) #endif @@ -66,16 +61,13 @@ #endif #if !defined(COMPILE_ON_WINDOWS) && !defined(COMPILE_ON_MINGW) - #include +#include #else - #include "KviMemory.h" +#include "KviMemory.h" #endif - - - KviMediaManager::KviMediaManager() -: KviMutex() + : KviMutex() { m_pMediaTypeList = new KviPointerList; m_pMediaTypeList->setAutoDelete(true); @@ -89,9 +81,10 @@ KviMediaManager::~KviMediaManager() KviMediaType * KviMediaManager::findMediaTypeByIanaType(const char * ianaType) { KVI_ASSERT(locked()); - for(KviMediaType * mt = m_pMediaTypeList->first();mt;mt = m_pMediaTypeList->next()) + for(KviMediaType * mt = m_pMediaTypeList->first(); mt; mt = m_pMediaTypeList->next()) { - if(kvi_strEqualCI(mt->szIanaType.ptr(),ianaType))return mt; + if(kvi_strEqualCI(mt->szIanaType.ptr(), ianaType)) + return mt; } return 0; @@ -100,39 +93,39 @@ KviMediaType * KviMediaManager::findMediaTypeByIanaType(const char * ianaType) KviMediaType * KviMediaManager::findMediaTypeByFileMask(const char * filemask) { KVI_ASSERT(locked()); - for(KviMediaType * mt = m_pMediaTypeList->first();mt;mt = m_pMediaTypeList->next()) + for(KviMediaType * mt = m_pMediaTypeList->first(); mt; mt = m_pMediaTypeList->next()) { -// FIXME: #warning "Should this be case sensitive ?" - if(kvi_strEqualCI(mt->szFileMask.ptr(),filemask))return mt; + // FIXME: #warning "Should this be case sensitive ?" + if(kvi_strEqualCI(mt->szFileMask.ptr(), filemask)) + return mt; } return 0; } -void KviMediaManager::copyMediaType(KviMediaType * dst,KviMediaType * src) +void KviMediaManager::copyMediaType(KviMediaType * dst, KviMediaType * src) { - dst->szFileMask = src->szFileMask; - dst->szMagicBytes = src->szMagicBytes; - dst->szIanaType = src->szIanaType; - dst->szDescription = src->szDescription; - dst->szSavePath = src->szSavePath; - dst->szCommandline = src->szCommandline; + dst->szFileMask = src->szFileMask; + dst->szMagicBytes = src->szMagicBytes; + dst->szIanaType = src->szIanaType; + dst->szDescription = src->szDescription; + dst->szSavePath = src->szSavePath; + dst->szCommandline = src->szCommandline; dst->szRemoteExecCommandline = src->szRemoteExecCommandline; - dst->szIcon = src->szIcon; + dst->szIcon = src->szIcon; } - void KviMediaManager::insertMediaType(KviMediaType * m) { KVI_ASSERT(locked()); - int iWildCount = m->szFileMask.occurrences('*'); + int iWildCount = m->szFileMask.occurrences('*'); int iNonWildCount = m->szFileMask.len() - iWildCount; // The masks with no wildcards go first in the list // then we insert the ones with more non-wild chars int index = 0; - for(KviMediaType * mt = m_pMediaTypeList->first();mt;mt = m_pMediaTypeList->next()) + for(KviMediaType * mt = m_pMediaTypeList->first(); mt; mt = m_pMediaTypeList->next()) { if(iWildCount) { @@ -146,9 +139,11 @@ void KviMediaManager::insertMediaType(KviMediaType * m) if(iNonWildCountExisting < iNonWildCount) { // ok...the new one has more non-wildcards, insert - m_pMediaTypeList->insert(index,m); + m_pMediaTypeList->insert(index, m); return; - } else { + } + else + { if(iNonWildCount == iNonWildCountExisting) { // the same number of non-wildcards @@ -156,18 +151,20 @@ void KviMediaManager::insertMediaType(KviMediaType * m) if(iWildCount < iWildCountExisting) { // the new one has less wildcards... goes first - m_pMediaTypeList->insert(index,m); + m_pMediaTypeList->insert(index, m); return; } // else the same number of wildcards and non-wildcards...skip - } // else the existing one has more non-wildcards...skip + } // else the existing one has more non-wildcards...skip } } // else the current has no wildcards...skip - } else { + } + else + { // the new mask has no wildcards.... if(mt->szFileMask.contains('*')) { // current one has wildcards...insert - m_pMediaTypeList->insert(index,m); + m_pMediaTypeList->insert(index, m); return; } // the current one has no wildcards... @@ -175,7 +172,7 @@ void KviMediaManager::insertMediaType(KviMediaType * m) if(mt->szFileMask.len() < m->szFileMask.len()) { // the current one is shorter than the new one...insert - m_pMediaTypeList->insert(index,m); + m_pMediaTypeList->insert(index, m); return; } // else current one is longer...skip } @@ -183,7 +180,7 @@ void KviMediaManager::insertMediaType(KviMediaType * m) } m_pMediaTypeList->append(m); -/* + /* // the masks with no wildcards go first // longer masks go first @@ -231,8 +228,7 @@ void KviMediaManager::insertMediaType(KviMediaType * m) */ } - -KviMediaType * KviMediaManager::findMediaType(const char * filename,bool bCheckMagic) +KviMediaType * KviMediaManager::findMediaType(const char * filename, bool bCheckMagic) { // FIXME: This should be ported at least to QString.... KVI_ASSERT(locked()); @@ -246,39 +242,39 @@ KviMediaType * KviMediaManager::findMediaType(const char * filename,bool bCheckM } KviCString szFile = filename; - szFile.cutToLast('/',true); - + szFile.cutToLast('/', true); - // first of all, lstat() the file +// first of all, lstat() the file #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) struct _stat st; - if(_stat(szFullPath.ptr(),&st) != 0) + if(_stat(szFullPath.ptr(), &st) != 0) #else struct stat st; - if(lstat(szFullPath.ptr(),&st) != 0) + if(lstat(szFullPath.ptr(), &st) != 0) #endif { //qDebug("Problems while stating file %s",szFullPath.ptr()); // We do just the pattern matching // it's better to avoid magic checks // if the file is a device, we would be blocked while attempting to read data - return findMediaTypeForRegularFile(szFullPath.ptr(),szFile.ptr(),false); - } else { - // If it is a link, stat() the link target + return findMediaTypeForRegularFile(szFullPath.ptr(), szFile.ptr(), false); + } + else + { +// If it is a link, stat() the link target #if !defined(COMPILE_ON_WINDOWS) && !defined(COMPILE_ON_MINGW) if(S_ISLNK(st.st_mode)) { - if(stat(szFullPath.ptr(),&st) != 0) + if(stat(szFullPath.ptr(), &st) != 0) { - qDebug("Problems while stating() target for link %s",szFullPath.ptr()); + qDebug("Problems while stating() target for link %s", szFullPath.ptr()); // Same as above - return findMediaTypeForRegularFile(szFullPath.ptr(),szFile.ptr(),false); + return findMediaTypeForRegularFile(szFullPath.ptr(), szFile.ptr(), false); } } #endif } - if(S_ISDIR(st.st_mode)) { // Directory : return default media type @@ -296,7 +292,6 @@ KviMediaType * KviMediaManager::findMediaType(const char * filename,bool bCheckM return mtd; } - #if !defined(COMPILE_ON_WINDOWS) && !defined(COMPILE_ON_MINGW) if(S_ISSOCK(st.st_mode)) { @@ -365,46 +360,49 @@ KviMediaType * KviMediaManager::findMediaType(const char * filename,bool bCheckM return mtd; } - // this is a regular file (or at least it looks like one) - return findMediaTypeForRegularFile(szFullPath.ptr(),szFile.ptr(),bCheckMagic); + return findMediaTypeForRegularFile(szFullPath.ptr(), szFile.ptr(), bCheckMagic); } -KviMediaType * KviMediaManager::findMediaTypeForRegularFile(const char * szFullPath,const char * szFileName,bool bCheckMagic) +KviMediaType * KviMediaManager::findMediaTypeForRegularFile(const char * szFullPath, const char * szFileName, bool bCheckMagic) { char buffer[17]; int len = 0; if(bCheckMagic) { - QString szTmp=QString::fromUtf8(szFullPath); + QString szTmp = QString::fromUtf8(szFullPath); KviFile f(szTmp); if(f.open(QFile::ReadOnly)) { - len = f.read(buffer,16); + len = f.read(buffer, 16); if(len > 0) { buffer[len] = '\0'; - if(buffer[0] == 0)len = 0; // no way to match it + if(buffer[0] == 0) + len = 0; // no way to match it } f.close(); } } - for(KviMediaType * m = m_pMediaTypeList->first();m;m = m_pMediaTypeList->next()) + for(KviMediaType * m = m_pMediaTypeList->first(); m; m = m_pMediaTypeList->next()) { -// FIXME: #warning "Should this be case sensitive ?" - if(kvi_matchWildExpr(m->szFileMask.ptr(),szFileName)) + // FIXME: #warning "Should this be case sensitive ?" + if(kvi_matchWildExpr(m->szFileMask.ptr(), szFileName)) { if(len && m->szMagicBytes.hasData()) { QRegExp re(m->szMagicBytes.ptr()); // It looks like they can't decide the name for this function :D // ... well, maybe the latest choice is the best one. - if(re.indexIn(buffer) > -1)return m; // matched! + if(re.indexIn(buffer) > -1) + return m; // matched! // else magic failed...not a match - } else return m; // matched! (no magic check) + } + else + return m; // matched! (no magic check) } } @@ -423,56 +421,54 @@ KviMediaType * KviMediaManager::findMediaTypeForRegularFile(const char * szFullP return mtd; } - // FIXME : default handlers for windows ? -static KviDefaultMediaType g_defMediaTypes[]= -{ - { "*.jpg","^\\0330\\0377","image/jpeg","JPEG image","run kview $0" }, - { "*.jpeg","^\\0330\\0377","image/jpeg","JPEG image","run kview $0" }, - { "*.png","","image/png","PNG image","run kview $0" }, - { "*.mp3","","audio/mpeg","MPEG audio","run xmms -e $0" }, - { "*.gif","","image/gif","GIF image","run kvirc $0" }, - { "*.mpeg","","video/mpeg","MPEG video","run xanim $0" }, - { "*.exe","","application/x-executable-file","Executable file","run $0" }, - { "*.zip","^PK\\0003\\0004","application/zip","ZIP archive","run ark $0" }, - { "*.tar.gz","","application/x-gzip","GZipped tarball","run ark $0" }, - { "*.tar.bz2","","applicatoin/x-bzip2","BZipped tarball","run ark $0" }, - { "*.tgz","","application/x-gzip","GZipped tarball","run ark $0" }, - { "*.wav","","audio/wav","Wave audio","run play $0" }, - { 0,0,0,0,0 } +static KviDefaultMediaType g_defMediaTypes[] = { + { "*.jpg", "^\\0330\\0377", "image/jpeg", "JPEG image", "run kview $0" }, + { "*.jpeg", "^\\0330\\0377", "image/jpeg", "JPEG image", "run kview $0" }, + { "*.png", "", "image/png", "PNG image", "run kview $0" }, + { "*.mp3", "", "audio/mpeg", "MPEG audio", "run xmms -e $0" }, + { "*.gif", "", "image/gif", "GIF image", "run kvirc $0" }, + { "*.mpeg", "", "video/mpeg", "MPEG video", "run xanim $0" }, + { "*.exe", "", "application/x-executable-file", "Executable file", "run $0" }, + { "*.zip", "^PK\\0003\\0004", "application/zip", "ZIP archive", "run ark $0" }, + { "*.tar.gz", "", "application/x-gzip", "GZipped tarball", "run ark $0" }, + { "*.tar.bz2", "", "applicatoin/x-bzip2", "BZipped tarball", "run ark $0" }, + { "*.tgz", "", "application/x-gzip", "GZipped tarball", "run ark $0" }, + { "*.wav", "", "audio/wav", "Wave audio", "run play $0" }, + { 0, 0, 0, 0, 0 } }; -void KviMediaManager::load(const QString &filename) +void KviMediaManager::load(const QString & filename) { KVI_ASSERT(locked()); - KviConfigurationFile cfg(filename,KviConfigurationFile::Read); + KviConfigurationFile cfg(filename, KviConfigurationFile::Read); cfg.setGroup("MediaTypes"); - unsigned int nEntries = cfg.readUIntEntry("NEntries",0); - for(unsigned int i = 0; i < nEntries;i++) + unsigned int nEntries = cfg.readUIntEntry("NEntries", 0); + for(unsigned int i = 0; i < nEntries; i++) { KviMediaType * m = new KviMediaType; - KviCString tmp(KviCString::Format,"%dFileMask",i); - m->szFileMask = cfg.readEntry(tmp.ptr(),""); - tmp.sprintf("%dMagicBytes",i); - m->szMagicBytes = cfg.readEntry(tmp.ptr(),""); - tmp.sprintf("%dIanaType",i); - m->szIanaType = cfg.readEntry(tmp.ptr(),"application/unknown"); - tmp.sprintf("%dDescription",i); - m->szDescription = cfg.readEntry(tmp.ptr(),""); - tmp.sprintf("%dSavePath",i); - m->szSavePath = cfg.readEntry(tmp.ptr(),""); - tmp.sprintf("%dCommandline",i); - m->szCommandline = cfg.readEntry(tmp.ptr(),""); - tmp.sprintf("%dRemoteExecCommandline",i); - m->szRemoteExecCommandline = cfg.readEntry(tmp.ptr(),""); - tmp.sprintf("%dIcon",i); - m->szIcon = cfg.readEntry(tmp.ptr(),""); + KviCString tmp(KviCString::Format, "%dFileMask", i); + m->szFileMask = cfg.readEntry(tmp.ptr(), ""); + tmp.sprintf("%dMagicBytes", i); + m->szMagicBytes = cfg.readEntry(tmp.ptr(), ""); + tmp.sprintf("%dIanaType", i); + m->szIanaType = cfg.readEntry(tmp.ptr(), "application/unknown"); + tmp.sprintf("%dDescription", i); + m->szDescription = cfg.readEntry(tmp.ptr(), ""); + tmp.sprintf("%dSavePath", i); + m->szSavePath = cfg.readEntry(tmp.ptr(), ""); + tmp.sprintf("%dCommandline", i); + m->szCommandline = cfg.readEntry(tmp.ptr(), ""); + tmp.sprintf("%dRemoteExecCommandline", i); + m->szRemoteExecCommandline = cfg.readEntry(tmp.ptr(), ""); + tmp.sprintf("%dIcon", i); + m->szIcon = cfg.readEntry(tmp.ptr(), ""); insertMediaType(m); } - for(int u = 0;g_defMediaTypes[u].filemask;u++) + for(int u = 0; g_defMediaTypes[u].filemask; u++) { if(!findMediaTypeByFileMask(g_defMediaTypes[u].filemask)) { @@ -485,36 +481,35 @@ void KviMediaManager::load(const QString &filename) insertMediaType(m); } } - } -void KviMediaManager::save(const QString &filename) +void KviMediaManager::save(const QString & filename) { KVI_ASSERT(locked()); - KviConfigurationFile cfg(filename,KviConfigurationFile::Write); + KviConfigurationFile cfg(filename, KviConfigurationFile::Write); cfg.clear(); cfg.setGroup("MediaTypes"); - cfg.writeEntry("NEntries",m_pMediaTypeList->count()); + cfg.writeEntry("NEntries", m_pMediaTypeList->count()); int index = 0; - for(KviMediaType * m= m_pMediaTypeList->first();m;m = m_pMediaTypeList->next()) + for(KviMediaType * m = m_pMediaTypeList->first(); m; m = m_pMediaTypeList->next()) { - KviCString tmp(KviCString::Format,"%dFileMask",index); - cfg.writeEntry(tmp.ptr(),m->szFileMask.ptr()); - tmp.sprintf("%dMagicBytes",index); - cfg.writeEntry(tmp.ptr(),m->szMagicBytes.ptr()); - tmp.sprintf("%dIanaType",index); - cfg.writeEntry(tmp.ptr(),m->szIanaType.ptr()); - tmp.sprintf("%dDescription",index); - cfg.writeEntry(tmp.ptr(),m->szDescription.ptr()); - tmp.sprintf("%dSavePath",index); - cfg.writeEntry(tmp.ptr(),m->szSavePath.ptr()); - tmp.sprintf("%dCommandline",index); - cfg.writeEntry(tmp.ptr(),m->szCommandline.ptr()); - tmp.sprintf("%dRemoteExecCommandline",index); - cfg.writeEntry(tmp.ptr(),m->szRemoteExecCommandline.ptr()); - tmp.sprintf("%dIcon",index); - cfg.writeEntry(tmp.ptr(),m->szIcon.ptr()); + KviCString tmp(KviCString::Format, "%dFileMask", index); + cfg.writeEntry(tmp.ptr(), m->szFileMask.ptr()); + tmp.sprintf("%dMagicBytes", index); + cfg.writeEntry(tmp.ptr(), m->szMagicBytes.ptr()); + tmp.sprintf("%dIanaType", index); + cfg.writeEntry(tmp.ptr(), m->szIanaType.ptr()); + tmp.sprintf("%dDescription", index); + cfg.writeEntry(tmp.ptr(), m->szDescription.ptr()); + tmp.sprintf("%dSavePath", index); + cfg.writeEntry(tmp.ptr(), m->szSavePath.ptr()); + tmp.sprintf("%dCommandline", index); + cfg.writeEntry(tmp.ptr(), m->szCommandline.ptr()); + tmp.sprintf("%dRemoteExecCommandline", index); + cfg.writeEntry(tmp.ptr(), m->szRemoteExecCommandline.ptr()); + tmp.sprintf("%dIcon", index); + cfg.writeEntry(tmp.ptr(), m->szIcon.ptr()); ++index; } } diff --git a/src/kvilib/ext/KviMediaManager.h b/src/kvilib/ext/KviMediaManager.h index 4020b7366..0f55d6179 100644 --- a/src/kvilib/ext/KviMediaManager.h +++ b/src/kvilib/ext/KviMediaManager.h @@ -37,16 +37,19 @@ class KVILIB_API KviMediaManager : public KviMutex public: KviMediaManager(); ~KviMediaManager(); + protected: KviPointerList * m_pMediaTypeList; + private: KviMediaType * findMediaTypeForRegularFile(const char * pcFullPath, const char * pcFileName, bool bCheckMagic); + public: - KviPointerList * mediaTypeList(){ return m_pMediaTypeList; }; + KviPointerList * mediaTypeList() { return m_pMediaTypeList; }; KviMediaType * findMediaTypeByFileMask(const char * pcFilemask); KviMediaType * findMediaTypeByIanaType(const char * pcIanaType); - bool removeMediaType(KviMediaType * pType){ return m_pMediaTypeList->removeRef(pType); }; - void clear(){ m_pMediaTypeList->clear(); }; + bool removeMediaType(KviMediaType * pType) { return m_pMediaTypeList->removeRef(pType); }; + void clear() { m_pMediaTypeList->clear(); }; void insertMediaType(KviMediaType * pType); KviMediaType * findMediaType(const char * pcFilename, bool bCheckMagic = true); static void copyMediaType(KviMediaType * pDst, KviMediaType * pSrc); @@ -55,4 +58,4 @@ public: void save(const QString & szFilename); }; -#endif // _KVI_MEDIAMANAGER_H_ +#endif // _KVI_MEDIAMANAGER_H_ diff --git a/src/kvilib/ext/KviMediaType.h b/src/kvilib/ext/KviMediaType.h index dc1f1bc0b..85d8bc554 100644 --- a/src/kvilib/ext/KviMediaType.h +++ b/src/kvilib/ext/KviMediaType.h @@ -29,7 +29,6 @@ #include "KviHeapObject.h" #include "KviCString.h" - // // IANA media-types matching subsystem // @@ -53,6 +52,7 @@ class KVILIB_API KviMediaType : public KviHeapObject public: KviMediaType(){}; ~KviMediaType(){}; + public: KviCString szFileMask; KviCString szMagicBytes; diff --git a/src/kvilib/ext/KviMessageTypeSettings.cpp b/src/kvilib/ext/KviMessageTypeSettings.cpp index ed061065e..cda5365e2 100644 --- a/src/kvilib/ext/KviMessageTypeSettings.cpp +++ b/src/kvilib/ext/KviMessageTypeSettings.cpp @@ -22,24 +22,24 @@ // //============================================================================= - #define _KVI_DEBUG_CHECK_RANGE_ #include "kvi_debug.h" #include "KviMessageTypeSettings.h" -KviMessageTypeSettings::KviMessageTypeSettings(const char * type,int pixId,unsigned char fore,unsigned char back,bool bLog,int iLevel) +KviMessageTypeSettings::KviMessageTypeSettings(const char * type, int pixId, unsigned char fore, unsigned char back, bool bLog, int iLevel) { m_szType = type; m_iPixId = pixId; m_cForeColor = fore; m_cBackColor = back; m_bLogEnabled = bLog; - if((iLevel < KVI_MSGTYPE_MINLEVEL) || (iLevel > KVI_MSGTYPE_MAXLEVEL))iLevel = 1; + if((iLevel < KVI_MSGTYPE_MINLEVEL) || (iLevel > KVI_MSGTYPE_MAXLEVEL)) + iLevel = 1; m_iLevel = iLevel; } -KviMessageTypeSettings::KviMessageTypeSettings(const KviMessageTypeSettings &msg) +KviMessageTypeSettings::KviMessageTypeSettings(const KviMessageTypeSettings & msg) { m_szType = msg.m_szType; m_iPixId = msg.m_iPixId; @@ -53,9 +53,7 @@ KviMessageTypeSettings::~KviMessageTypeSettings() { } - - -KviMessageTypeSettings & KviMessageTypeSettings::operator=(const KviMessageTypeSettings &msg) +KviMessageTypeSettings & KviMessageTypeSettings::operator=(const KviMessageTypeSettings & msg) { //if(m_szType.ptr() == msg.m_szType.ptr())return (*this); // self assignment (!!!) m_szType = msg.m_szType; diff --git a/src/kvilib/ext/KviMessageTypeSettings.h b/src/kvilib/ext/KviMessageTypeSettings.h index 29db5dfac..d6b59eaa3 100644 --- a/src/kvilib/ext/KviMessageTypeSettings.h +++ b/src/kvilib/ext/KviMessageTypeSettings.h @@ -47,29 +47,37 @@ class KVILIB_API KviMessageTypeSettings { public: - KviMessageTypeSettings(const char * type,int pixId,unsigned char fore,unsigned char back,bool bLog,int iLevel); - KviMessageTypeSettings(const KviMessageTypeSettings &msg); + KviMessageTypeSettings(const char * type, int pixId, unsigned char fore, unsigned char back, bool bLog, int iLevel); + KviMessageTypeSettings(const KviMessageTypeSettings & msg); ~KviMessageTypeSettings(); + public: - const char * m_szType; - int m_iPixId; + const char * m_szType; + int m_iPixId; unsigned char m_cForeColor; unsigned char m_cBackColor; - bool m_bLogEnabled; - int m_iLevel; + bool m_bLogEnabled; + int m_iLevel; + public: - void setBack(char back){ m_cBackColor = back; }; - void setFore(char fore){ m_cForeColor = fore; }; - int pixId(){ return m_iPixId; }; - int level(){ return m_iLevel; }; - void setLevel(int iLevel){ if((iLevel < KVI_MSGTYPE_MINLEVEL) || (iLevel > KVI_MSGTYPE_MAXLEVEL))m_iLevel = 1; else m_iLevel = iLevel; }; - void setPixId(int pixId){ m_iPixId = pixId; }; - unsigned char back(){ return m_cBackColor; }; - unsigned char fore(){ return m_cForeColor; }; - bool logEnabled(){ return m_bLogEnabled; }; - void enableLogging(bool bEnable){ m_bLogEnabled = bEnable; }; - const char * type(){ return m_szType; }; - KviMessageTypeSettings & operator=(const KviMessageTypeSettings &msg); // deep copy + void setBack(char back) { m_cBackColor = back; }; + void setFore(char fore) { m_cForeColor = fore; }; + int pixId() { return m_iPixId; }; + int level() { return m_iLevel; }; + void setLevel(int iLevel) + { + if((iLevel < KVI_MSGTYPE_MINLEVEL) || (iLevel > KVI_MSGTYPE_MAXLEVEL)) + m_iLevel = 1; + else + m_iLevel = iLevel; + }; + void setPixId(int pixId) { m_iPixId = pixId; }; + unsigned char back() { return m_cBackColor; }; + unsigned char fore() { return m_cForeColor; }; + bool logEnabled() { return m_bLogEnabled; }; + void enableLogging(bool bEnable) { m_bLogEnabled = bEnable; }; + const char * type() { return m_szType; }; + KviMessageTypeSettings & operator=(const KviMessageTypeSettings & msg); // deep copy }; #endif //_KVI_MSGTYPE_H_ diff --git a/src/kvilib/ext/KviMiscUtils.cpp b/src/kvilib/ext/KviMiscUtils.cpp index 202a7eb10..f7cd1a007 100644 --- a/src/kvilib/ext/KviMiscUtils.cpp +++ b/src/kvilib/ext/KviMiscUtils.cpp @@ -59,7 +59,7 @@ namespace KviMiscUtils if(it1 != sl1.end()) return -1; // 1 has at least one field more if(it2 != sl2.end()) - return 1; // 2 has at least one field more + return 1; // 2 has at least one field more // both are equal also in length return 0; } diff --git a/src/kvilib/ext/KviNickColors.cpp b/src/kvilib/ext/KviNickColors.cpp index 8ac9b7299..c43749c7f 100644 --- a/src/kvilib/ext/KviNickColors.cpp +++ b/src/kvilib/ext/KviNickColors.cpp @@ -30,31 +30,30 @@ namespace KviNickColors { - #define KVI_NUM_NICK_COLORS 95 +#define KVI_NUM_NICK_COLORS 95 // FIXME: Maybe make this table settable via options? // Or maybe a kvc file... - static const char * g_nickColors[KVI_NUM_NICK_COLORS]= - { - "0,1" ,"0,2" ,"0,3" ,"0,4" ,"0,5" ,"0,6" ,"0,10" ,"0,12" ,"0,14" , //9 - "1,0" ,"1,4" ,"1,7" ,"1,8" ,"1,9" ,"1,11" ,"1,15" , //7 - "2,0" ,"2,4" ,"2,7" ,"2,8" ,"2,9" ,"2,11" ,"2,15" , //7 - "3,8" ,"3,9" ,"3,0" ,"3,15" , //4 - "4,0" ,"4,1" ,"4,8" ,"4,9" ,"4,11" ,"4,15" , //6 - "5,0" ,"5,7" ,"5,8" ,"5,15" , //4 - "6,0" ,"6,7" ,"6,8" ,"6,9" ,"6,10" ,"6,11" ,"6,15" , //7 - "7,1" ,"7,2" ,"7,5" ,"7,6" ,"7,14" , //5 - "8,1" ,"8,2" ,"8,3" ,"8,4" ,"8,5" ,"8,6" ,"8,7" ,"8,10" ,"8,12" ,"8,14" , //10 - "9,1" ,"9,2" ,"9,3" ,"9,5" ,"9,6" ,"9,14" , //6 - "10,1" ,"10,2" , //2 - "11,1" ,"11,2" ,"11,3" ,"11,5" ,"11,6" ,"11,14", //6 - "12,0" ,"12,7" ,"12,8" ,"12,9" ,"12,10","12,11","12,15", //7 - "13,0" ,"13,1" ,"13,6" ,"13,8" ,"13,11","13,15", //6 - "14,0" ,"14,8" ,"14,11","14,15", //4 - "15,1" ,"15,2" ,"15,3" ,"15,6" ,"15,14" //5 + static const char * g_nickColors[KVI_NUM_NICK_COLORS] = { + "0,1", "0,2", "0,3", "0,4", "0,5", "0,6", "0,10", "0,12", "0,14", //9 + "1,0", "1,4", "1,7", "1,8", "1,9", "1,11", "1,15", //7 + "2,0", "2,4", "2,7", "2,8", "2,9", "2,11", "2,15", //7 + "3,8", "3,9", "3,0", "3,15", //4 + "4,0", "4,1", "4,8", "4,9", "4,11", "4,15", //6 + "5,0", "5,7", "5,8", "5,15", //4 + "6,0", "6,7", "6,8", "6,9", "6,10", "6,11", "6,15", //7 + "7,1", "7,2", "7,5", "7,6", "7,14", //5 + "8,1", "8,2", "8,3", "8,4", "8,5", "8,6", "8,7", "8,10", "8,12", "8,14", //10 + "9,1", "9,2", "9,3", "9,5", "9,6", "9,14", //6 + "10,1", "10,2", //2 + "11,1", "11,2", "11,3", "11,5", "11,6", "11,14", //6 + "12,0", "12,7", "12,8", "12,9", "12,10", "12,11", "12,15", //7 + "13,0", "13,1", "13,6", "13,8", "13,11", "13,15", //6 + "14,0", "14,8", "14,11", "14,15", //4 + "15,1", "15,2", "15,3", "15,6", "15,14" //5 }; - int getSmartColorForNick(QString *szNick) + int getSmartColorForNick(QString * szNick) { int sum = 0; int i = szNick->length(); @@ -74,21 +73,21 @@ namespace KviNickColors return g_nickColors[iPos % KVI_NUM_NICK_COLORS]; } - int getSmartColorIntByMircColor(unsigned char iFore,unsigned char iBack) + int getSmartColorIntByMircColor(unsigned char iFore, unsigned char iBack) { - int iBestMatch=-1; - char* comb= (char*)KviMemory::allocate(6); - int numm=0; - // TODO handle KVI_TRANSPARENT and KVI_NOCHANGE (ticket #812) + int iBestMatch = -1; + char * comb = (char *)KviMemory::allocate(6); + int numm = 0; +// TODO handle KVI_TRANSPARENT and KVI_NOCHANGE (ticket #812) #if defined(COMPILE_ON_WINDOWS) && !(defined(MINGW)) _snprintf(comb, 6, "%d,%d", iFore % 16, iBack % 16); #else snprintf(comb, 6, "%d,%d", iFore % 16, iBack % 16); #endif -// qDebug("Nick color %s",comb); - for(int i=0; i0) + if(numc > 0) { // any match if(!g_nickColors[i][numc] && !comb[numc]) { //exact match -// qDebug("Exact match %s",g_nickColors[i]); + // qDebug("Exact match %s",g_nickColors[i]); KviMemory::free(comb); return i; - } else { + } + else + { //partial match if(numc > numm) { //better than any previous one - iBestMatch=i; - numm=numc; + iBestMatch = i; + numm = numc; } } } } KviMemory::free(comb); //no exact match -// qDebug("Best match %s",g_nickColors[iBestMatch]); + // qDebug("Best match %s",g_nickColors[iBestMatch]); return iBestMatch; } } diff --git a/src/kvilib/ext/KviNickColors.h b/src/kvilib/ext/KviNickColors.h index 5bf1c1e6f..37e1abfb0 100644 --- a/src/kvilib/ext/KviNickColors.h +++ b/src/kvilib/ext/KviNickColors.h @@ -30,10 +30,10 @@ namespace KviNickColors { - extern KVILIB_API int getSmartColorForNick(QString *szNick); + extern KVILIB_API int getSmartColorForNick(QString * szNick); extern KVILIB_API const char * getSmartColor(int iPos); - extern KVILIB_API int getSmartColorIntByMircColor(unsigned char iFore,unsigned char iBack); + extern KVILIB_API int getSmartColorIntByMircColor(unsigned char iFore, unsigned char iBack); } #endif // _KVI_NICKCOLORS_H_ diff --git a/src/kvilib/ext/KviOggIrcText.h b/src/kvilib/ext/KviOggIrcText.h index ce9c9fceb..bb010772b 100644 --- a/src/kvilib/ext/KviOggIrcText.h +++ b/src/kvilib/ext/KviOggIrcText.h @@ -43,12 +43,12 @@ namespace KviOggIrcText * \param len Length in octects to copy * \return void */ - static void _tp_readbuffer(oggpack_buffer *opb, char *buf, const long len) + static void _tp_readbuffer(oggpack_buffer * opb, char * buf, const long len) { long i; - for (i = 0; i < len; i++) - *buf++=oggpack_read(opb,8); + for(i = 0; i < len; i++) + *buf++ = oggpack_read(opb, 8); } /** @@ -58,11 +58,11 @@ namespace KviOggIrcText * \param len Length in octects to copy * \return void */ - static void _tp_writebuffer(oggpack_buffer *opb, const char *buf, const long len) + static void _tp_writebuffer(oggpack_buffer * opb, const char * buf, const long len) { long i; - for (i = 0; i < len; i++) + for(i = 0; i < len; i++) oggpack_write(opb, *buf++, 8); } @@ -89,23 +89,23 @@ namespace KviOggIrcText * \param op the ogg packet that will contain the header * \return int */ - static int irct_encode_headerout(ogg_packet *op) + static int irct_encode_headerout(ogg_packet * op) { oggpack_buffer ob; oggpack_writeinit(&ob); - oggpack_write(&ob, 0, 8); //header init + oggpack_write(&ob, 0, 8); //header init _tp_writebuffer(&ob, "irct", 32); - oggpack_write(&ob, 0, 8); //version 0 - oggpack_write(&ob, 1, 8); //subversion 1 - int bytes=oggpack_bytes(&ob); - op->packet= (unsigned char*) KviMemory::allocate(bytes); + oggpack_write(&ob, 0, 8); //version 0 + oggpack_write(&ob, 1, 8); //subversion 1 + int bytes = oggpack_bytes(&ob); + op->packet = (unsigned char *)KviMemory::allocate(bytes); memcpy(op->packet, oggpack_get_buffer(&ob), bytes); - op->bytes=bytes; + op->bytes = bytes; oggpack_writeclear(&ob); - op->b_o_s=1; //begins a logical bitstream - op->e_o_s=0; - op->packetno=0; - op->granulepos=0; + op->b_o_s = 1; //begins a logical bitstream + op->e_o_s = 0; + op->packetno = 0; + op->granulepos = 0; return 0; } @@ -118,24 +118,25 @@ namespace KviOggIrcText * \param op the ogg packet that will contain the text * \return int */ - static int irct_encode_packetout(const char* textPkt, int textSize, int last_p, ogg_packet *op) + static int irct_encode_packetout(const char * textPkt, int textSize, int last_p, ogg_packet * op) { - if(!textSize)return(0); + if(!textSize) + return (0); oggpack_buffer ob; oggpack_writeinit(&ob); _tp_writebuffer(&ob, textPkt, textSize); //pre-encoded text - int bytes=oggpack_bytes(&ob); - op->packet= (unsigned char *)KviMemory::allocate(bytes); + int bytes = oggpack_bytes(&ob); + op->packet = (unsigned char *)KviMemory::allocate(bytes); memcpy(op->packet, oggpack_get_buffer(&ob), bytes); - op->bytes=bytes; + op->bytes = bytes; oggpack_writeclear(&ob); - op->b_o_s=0; - op->e_o_s=last_p; + op->b_o_s = 0; + op->e_o_s = last_p; - op->packetno=last_p; - op->granulepos=0; + op->packetno = last_p; + op->granulepos = 0; return 0; } @@ -145,18 +146,20 @@ namespace KviOggIrcText * \param op the ogg packet that contains the header * \return int */ - static int irct_decode_headerin(ogg_packet *op) + static int irct_decode_headerin(ogg_packet * op) { oggpack_buffer ob; oggpack_readinit(&ob, op->packet, op->bytes); quint8 ret, version, subversion; - ret = oggpack_read(&ob,8); - if(ret!=0) return 1; - char * buf = (char*) KviMemory::allocate(4); + ret = oggpack_read(&ob, 8); + if(ret != 0) + return 1; + char * buf = (char *)KviMemory::allocate(4); _tp_readbuffer(&ob, buf, 4); - if(strncmp(buf, "irct", 4)!=0) return 1; - version = oggpack_read(&ob,8); - subversion = oggpack_read(&ob,8); + if(strncmp(buf, "irct", 4) != 0) + return 1; + version = oggpack_read(&ob, 8); + subversion = oggpack_read(&ob, 8); return 0; } @@ -167,12 +170,12 @@ namespace KviOggIrcText * \param op the ogg packet that contains the text * \return int */ - static int irct_decode_packetin(char** textPkt, int *textSize, ogg_packet *op) + static int irct_decode_packetin(char ** textPkt, int * textSize, ogg_packet * op) { oggpack_buffer ob; oggpack_readinit(&ob, op->packet, op->bytes); *textSize = op->bytes; - *textPkt=(char*)KviMemory::allocate(*textSize); + *textPkt = (char *)KviMemory::allocate(*textSize); _tp_readbuffer(&ob, *textPkt, *textSize); return 0; } diff --git a/src/kvilib/ext/KviOggTheoraDecoder.cpp b/src/kvilib/ext/KviOggTheoraDecoder.cpp index 245422fd3..8c28514de 100644 --- a/src/kvilib/ext/KviOggTheoraDecoder.cpp +++ b/src/kvilib/ext/KviOggTheoraDecoder.cpp @@ -47,30 +47,25 @@ using namespace KviOggIrcText; - - - - - //------------------------------------------------------------------------------ -#define OC_CLAMP255(_x) ((unsigned char)((((_x)<0)-1)&((_x)|-((_x)>255)))) +#define OC_CLAMP255(_x) ((unsigned char)((((_x) < 0) - 1) & ((_x) | -((_x) > 255)))) -KviOggTheoraDecoder::KviOggTheoraDecoder(KviDataBuffer * videoSignal,KviDataBuffer * textSignal) +KviOggTheoraDecoder::KviOggTheoraDecoder(KviDataBuffer * videoSignal, KviDataBuffer * textSignal) { - m_pVideoSignal=videoSignal; - m_pTextSignal=textSignal; - theora_p=0; - stateflag=0; - ts=NULL; - thda=false; - thtic=false; + m_pVideoSignal = videoSignal; + m_pTextSignal = textSignal; + theora_p = 0; + stateflag = 0; + ts = NULL; + thda = false; + thtic = false; - irct_p=0; + irct_p = 0; /* single frame video buffering */ - videobuf_ready=0; - videobuf_granulepos=-1; - videobuf_time=0; + videobuf_ready = 0; + videobuf_granulepos = -1; + videobuf_time = 0; /* start up Ogg stream synchronization layer */ ogg_sync_init(&oy); @@ -79,19 +74,20 @@ KviOggTheoraDecoder::KviOggTheoraDecoder(KviDataBuffer * videoSignal,KviDataBuff th_comment_init(&tc); th_info_init(&ti); - for(int i=0;i<256;i++) + for(int i = 0; i < 256; i++) { - lu_Y[i] = 2441889*(i- 16) + 1048576; - lu_R[i] = 3347111*(i-128); - lu_GV[i] = -1704917*(i-128); - lu_GU[i] = -821585*(i-128); - lu_B[i] = 4230442*(i-128); + lu_Y[i] = 2441889 * (i - 16) + 1048576; + lu_R[i] = 3347111 * (i - 128); + lu_GV[i] = -1704917 * (i - 128); + lu_GU[i] = -821585 * (i - 128); + lu_B[i] = 4230442 * (i - 128); } } KviOggTheoraDecoder::~KviOggTheoraDecoder() { - if(theora_p){ + if(theora_p) + { ogg_stream_clear(&to); th_decode_free(td); th_comment_clear(&tc); @@ -109,19 +105,20 @@ KviOggTheoraDecoder::~KviOggTheoraDecoder() void KviOggTheoraDecoder::addData(KviDataBuffer * stream) { -// qDebug("adddata signal %p stream size %d",m_pVideoSignal, stream->size() ); - if(stream->size()==0)return; + // qDebug("adddata signal %p stream size %d",m_pVideoSignal, stream->size() ); + if(stream->size() == 0) + return; /* Ogg file open; parse the headers */ if(!stateflag) { - char *buffer=ogg_sync_buffer(&oy,stream->size()); - memcpy(buffer,stream->data(),stream->size()); - ogg_sync_wrote(&oy,stream->size()); + char * buffer = ogg_sync_buffer(&oy, stream->size()); + memcpy(buffer, stream->data(), stream->size()); + ogg_sync_wrote(&oy, stream->size()); stream->clear(); - while(ogg_sync_pageout(&oy,&og)>0) + while(ogg_sync_pageout(&oy, &og) > 0) { ogg_stream_state test; @@ -129,30 +126,34 @@ void KviOggTheoraDecoder::addData(KviDataBuffer * stream) if(!ogg_page_bos(&og)) { /* don't leak the page; get it into the appropriate stream */ -// qDebug("queue_page && return"); + // qDebug("queue_page && return"); queue_page(&og); - stateflag=1; + stateflag = 1; return; } - ogg_stream_init(&test,ogg_page_serialno(&og)); - ogg_stream_pagein(&test,&og); - ogg_stream_packetout(&test,&op); - + ogg_stream_init(&test, ogg_page_serialno(&og)); + ogg_stream_pagein(&test, &og); + ogg_stream_packetout(&test, &op); /* identify the codec: try theora */ - if(!theora_p && th_decode_headerin(&ti,&tc,&ts,&op)>=0){ - qDebug("is theora, ts=%p &ts=%p",ts, &ts); + if(!theora_p && th_decode_headerin(&ti, &tc, &ts, &op) >= 0) + { + qDebug("is theora, ts=%p &ts=%p", ts, &ts); /* it is theora */ - memcpy(&to,&test,sizeof(test)); - theora_p=1; - }else if(!irct_p && irct_decode_headerin(&op)>=0){ + memcpy(&to, &test, sizeof(test)); + theora_p = 1; + } + else if(!irct_p && irct_decode_headerin(&op) >= 0) + { qDebug("is irct"); /* it is irct */ - memcpy(&zo,&test,sizeof(test)); - irct_p=1; - }else{ -// qDebug("is other"); + memcpy(&zo, &test, sizeof(test)); + irct_p = 1; + } + else + { + // qDebug("is other"); /* whatever it is, we don't care about it */ ogg_stream_clear(&test); } @@ -160,20 +161,22 @@ void KviOggTheoraDecoder::addData(KviDataBuffer * stream) /* fall through to non-bos page parsing */ } -// qDebug("checkpoint 2, theora_p=%d ",theora_p); + // qDebug("checkpoint 2, theora_p=%d ",theora_p); /* we're expecting more header packets. */ - if((theora_p && theora_p<3)) + if((theora_p && theora_p < 3)) { int ret; /* look for further theora headers */ - while(theora_p && (theora_p<3) && (ret=ogg_stream_packetout(&to,&op))) + while(theora_p && (theora_p < 3) && (ret = ogg_stream_packetout(&to, &op))) { - if(ret<0){ + if(ret < 0) + { qDebug("Error parsing Theora stream headers; corrupt stream?"); return; } - if(!th_decode_headerin(&ti,&tc,&ts,&op)){ + if(!th_decode_headerin(&ti, &tc, &ts, &op)) + { qDebug("Error parsing Theora stream headers; corrupt stream?"); return; } @@ -182,26 +185,28 @@ void KviOggTheoraDecoder::addData(KviDataBuffer * stream) /* The header pages/packets will arrive before anything else we care about, or the stream is not obeying spec */ - if(ogg_sync_pageout(&oy,&og)>0) + if(ogg_sync_pageout(&oy, &og) > 0) { qDebug("queue_page"); queue_page(&og); /* demux into the appropriate stream */ - } else { + } + else + { qDebug("TheoraDecoder: need more data!"); //need more data return; } } -// qDebug("checkpoint 3"); + // qDebug("checkpoint 3"); /* and now we have it all. initialize decoders */ if(theora_p && !thda) { - thda=true; - td=th_decode_alloc(&ti,ts); + thda = true; + td = th_decode_alloc(&ti, ts); qDebug("Ogg logical stream %lx is Theora %dx%d %.02f fps", - to.serialno,ti.pic_width,ti.pic_height, - (double)ti.fps_numerator/ti.fps_denominator); + to.serialno, ti.pic_width, ti.pic_height, + (double)ti.fps_numerator / ti.fps_denominator); geometry.pic_w = ti.pic_width; geometry.pic_h = ti.pic_height; @@ -210,41 +215,44 @@ void KviOggTheoraDecoder::addData(KviDataBuffer * stream) geometry.pic_x = ti.pic_x; geometry.pic_y = ti.pic_y; - px_fmt=ti.pixel_fmt; + px_fmt = ti.pixel_fmt; switch(ti.pixel_fmt) { - case TH_PF_444: qDebug(" 4:4:4 video"); break; + case TH_PF_444: + qDebug(" 4:4:4 video"); + break; default: - qDebug(" video (UNSUPPORTED Chroma sampling!)"); - return; - break; + qDebug(" video (UNSUPPORTED Chroma sampling!)"); + return; + break; } - th_decode_ctl(td,TH_DECCTL_GET_PPLEVEL_MAX,&pp_level_max,sizeof(pp_level_max)); - pp_level=pp_level_max; - th_decode_ctl(td,TH_DECCTL_SET_PPLEVEL,&pp_level,sizeof(pp_level)); - pp_inc=0; - - int w = ((ti.pic_x + ti.pic_width + 1) &~ 1) - (ti.pic_x &~ 1); - int h = ((ti.pic_y + ti.pic_height + 1) &~ 1) - (ti.pic_y &~ 1); - RGBbuffer = (unsigned char *) calloc(sizeof(char), w * h * 4); - } else if(!thtic) + th_decode_ctl(td, TH_DECCTL_GET_PPLEVEL_MAX, &pp_level_max, sizeof(pp_level_max)); + pp_level = pp_level_max; + th_decode_ctl(td, TH_DECCTL_SET_PPLEVEL, &pp_level, sizeof(pp_level)); + pp_inc = 0; + + int w = ((ti.pic_x + ti.pic_width + 1) & ~1) - (ti.pic_x & ~1); + int h = ((ti.pic_y + ti.pic_height + 1) & ~1) - (ti.pic_y & ~1); + RGBbuffer = (unsigned char *)calloc(sizeof(char), w * h * 4); + } + else if(!thtic) { - thtic=true; + thtic = true; /* tear down the partial theora setup */ th_info_clear(&ti); th_comment_clear(&tc); th_setup_free(ts); } -// stateflag=0; /* playback has not begun */ + // stateflag=0; /* playback has not begun */ if(irct_p) { - if(ogg_stream_packetout(&zo,&op)>0) + if(ogg_stream_packetout(&zo, &op) > 0) { - char * textPkt=0; - int textSize=0; - if(irct_decode_packetin(&textPkt, &textSize, &op)==0) + char * textPkt = 0; + int textSize = 0; + if(irct_decode_packetin(&textPkt, &textSize, &op) == 0) { m_pTextSignal->append((unsigned char *)textPkt, textSize); } @@ -253,50 +261,55 @@ void KviOggTheoraDecoder::addData(KviDataBuffer * stream) if(theora_p && !videobuf_ready) { - if(stream->size()>0) + if(stream->size() > 0) { - char *buffer=ogg_sync_buffer(&oy,stream->size()); - memcpy(buffer,stream->data(),stream->size()); - ogg_sync_wrote(&oy,stream->size()); + char * buffer = ogg_sync_buffer(&oy, stream->size()); + memcpy(buffer, stream->data(), stream->size()); + ogg_sync_wrote(&oy, stream->size()); stream->clear(); - while(ogg_sync_pageout(&oy,&og)>0) + while(ogg_sync_pageout(&oy, &og) > 0) queue_page(&og); } -// qDebug("loop4 theora_p=%d videobuf_ready=%d",theora_p, videobuf_ready); - // theora is one in, one out... + // qDebug("loop4 theora_p=%d videobuf_ready=%d",theora_p, videobuf_ready); + // theora is one in, one out... - if(ogg_stream_packetout(&to,&op)>0) + if(ogg_stream_packetout(&to, &op) > 0) + { + if(th_decode_packetin(td, &op, &videobuf_granulepos) == 0) + videobuf_ready = 1; + } + else { - if(th_decode_packetin(td,&op,&videobuf_granulepos)==0) - videobuf_ready=1; - } else { -// qDebug("ogg_stream_packetout <=0"); + // qDebug("ogg_stream_packetout <=0"); //need more data :) return; } } - if(!videobuf_ready)return; - + if(!videobuf_ready) + return; if(stateflag && videobuf_ready) { video_write(); - videobuf_ready=0; + videobuf_ready = 0; } // if our buffers either don't exist or are ready to go,we can begin playback - if(!theora_p || videobuf_ready)stateflag=1; + if(!theora_p || videobuf_ready) + stateflag = 1; } /* helper: push a page into the appropriate steam */ /* this can be done blindly; a stream won't accept a page that doesn't belong to it */ -int KviOggTheoraDecoder::queue_page(ogg_page *page) +int KviOggTheoraDecoder::queue_page(ogg_page * page) { - if(theora_p)ogg_stream_pagein(&to,page); - if(irct_p)ogg_stream_pagein(&zo,page); + if(theora_p) + ogg_stream_pagein(&to, page); + if(irct_p) + ogg_stream_pagein(&zo, page); return 0; } @@ -304,34 +317,33 @@ void KviOggTheoraDecoder::video_write(void) { th_ycbcr_buffer yuv; int y_offset; - th_decode_ycbcr_out(td,yuv); + th_decode_ycbcr_out(td, yuv); - y_offset=(geometry.pic_x&~1)+yuv[0].stride*(geometry.pic_y&~1); + y_offset = (geometry.pic_x & ~1) + yuv[0].stride * (geometry.pic_y & ~1); - for(int i=0;i>21; - out[j*4] = OC_CLAMP255(b); - g=(y + lu_GV[in_v[j]] + lu_GU[in_u[j]])>>21; - out[j*4+1] = OC_CLAMP255(g); - r=(y + lu_R[in_v[j]])>>21; - out[j*4+2] = OC_CLAMP255(r); - out[j*4+3] = 255; //alpha + b = (y + lu_B[in_u[j]]) >> 21; + out[j * 4] = OC_CLAMP255(b); + g = (y + lu_GV[in_v[j]] + lu_GU[in_u[j]]) >> 21; + out[j * 4 + 1] = OC_CLAMP255(g); + r = (y + lu_R[in_v[j]]) >> 21; + out[j * 4 + 2] = OC_CLAMP255(r); + out[j * 4 + 3] = 255; //alpha } - } int size = sizeof(char) * geometry.pic_w * geometry.pic_h * ARGB32_BPP; -// qDebug("VIDEO WRITE size=%d",size); + // qDebug("VIDEO WRITE size=%d",size); m_pVideoSignal->clear(); m_pVideoSignal->append(RGBbuffer, size); } diff --git a/src/kvilib/ext/KviOggTheoraDecoder.h b/src/kvilib/ext/KviOggTheoraDecoder.h index d6a442ff8..6fc45c124 100644 --- a/src/kvilib/ext/KviOggTheoraDecoder.h +++ b/src/kvilib/ext/KviOggTheoraDecoder.h @@ -44,7 +44,6 @@ class KviDataBuffer; - /** * \class KviOggTheoraDecoder * \brief An ogg/theora+irct decoder class; accepts a proper ogg stream, outputs argb32 images and binary text @@ -58,7 +57,7 @@ public: * \param textSignal the output text stream object * \return KviOggTheoraDecoder */ - KviOggTheoraDecoder(KviDataBuffer * videoSignal,KviDataBuffer * textSignal); + KviOggTheoraDecoder(KviDataBuffer * videoSignal, KviDataBuffer * textSignal); /** * \brief Destroys the KviTheoraEncoder object @@ -71,52 +70,53 @@ public: * \return void */ void addData(KviDataBuffer * stream); + private: - KviDataBuffer * m_pVideoSignal; /**< Output video stream pointer */ - KviDataBuffer * m_pTextSignal; /**< Output text stream pointer */ - KviOggTheoraGeometry geometry; /**< Stream geometry definition */ - unsigned char * RGBbuffer; /**< RGB decoded surface pointer */ + KviDataBuffer * m_pVideoSignal; /**< Output video stream pointer */ + KviDataBuffer * m_pTextSignal; /**< Output text stream pointer */ + KviOggTheoraGeometry geometry; /**< Stream geometry definition */ + unsigned char * RGBbuffer; /**< RGB decoded surface pointer */ // Ogg and codec state for demux/decode - ogg_sync_state oy; - ogg_packet op; /**< One raw packet of encoded data */ - ogg_page og; /**< One Ogg bitstream page. Vorbis packets are inside */ - ogg_stream_state to; /**< Take physical pages, weld into a logical stream of theora packets */ - ogg_stream_state zo; /**< Take physical pages, weld into a logical stream of irct packets */ - - th_info ti; /**< Theora stream info struct */ - th_comment tc; /**< Theora stream comments struct */ - th_dec_ctx * td; /**< Theora stream decoding struct */ - th_setup_info * ts; /**< Theora stream setup info struct */ - th_pixel_fmt px_fmt; /**< Theora stream pixel format definition */ - - int theora_p; /**< True if the ogg stream contains a theora stream */ - int irct_p; /**< True if the ogg stream contains an irct stream */ - int stateflag; /**< Internal flag used in stream processing */ - - int lu_Y[256]; /**< Surface used in yuv->rgb processing (Y) */ - int lu_R[256]; /**< Surface used in yuv->rgb processing (R) */ - int lu_GU[256]; /**< Surface used in yuv->rgb processing (GU) */ - int lu_GV[256]; /**< Surface used in yuv->rgb processing (GV) */ - int lu_B[256]; /**< Surface used in yuv->rgb processing (B) */ + ogg_sync_state oy; + ogg_packet op; /**< One raw packet of encoded data */ + ogg_page og; /**< One Ogg bitstream page. Vorbis packets are inside */ + ogg_stream_state to; /**< Take physical pages, weld into a logical stream of theora packets */ + ogg_stream_state zo; /**< Take physical pages, weld into a logical stream of irct packets */ + + th_info ti; /**< Theora stream info struct */ + th_comment tc; /**< Theora stream comments struct */ + th_dec_ctx * td; /**< Theora stream decoding struct */ + th_setup_info * ts; /**< Theora stream setup info struct */ + th_pixel_fmt px_fmt; /**< Theora stream pixel format definition */ + + int theora_p; /**< True if the ogg stream contains a theora stream */ + int irct_p; /**< True if the ogg stream contains an irct stream */ + int stateflag; /**< Internal flag used in stream processing */ + + int lu_Y[256]; /**< Surface used in yuv->rgb processing (Y) */ + int lu_R[256]; /**< Surface used in yuv->rgb processing (R) */ + int lu_GU[256]; /**< Surface used in yuv->rgb processing (GU) */ + int lu_GV[256]; /**< Surface used in yuv->rgb processing (GV) */ + int lu_B[256]; /**< Surface used in yuv->rgb processing (B) */ // Single frame video buffering - int videobuf_ready; /**< Single frame video buffering : ready state */ - ogg_int64_t videobuf_granulepos; /**< Single frame video buffering : granule position */ - double videobuf_time; /**< Single frame video buffering : duration */ + int videobuf_ready; /**< Single frame video buffering : ready state */ + ogg_int64_t videobuf_granulepos; /**< Single frame video buffering : granule position */ + double videobuf_time; /**< Single frame video buffering : duration */ - int pp_level_max; /**< Theora postprocessing: max level */ - int pp_level; /**< Theora postprocessing: current level */ - int pp_inc; /**< Theora postprocessing: increment */ + int pp_level_max; /**< Theora postprocessing: max level */ + int pp_level; /**< Theora postprocessing: current level */ + int pp_inc; /**< Theora postprocessing: increment */ - bool thda; /**< Theora decode alloc state */ - bool thtic; /**< Theora setup clear state */ + bool thda; /**< Theora decode alloc state */ + bool thtic; /**< Theora setup clear state */ private: /** * \brief Internal function that queues an ogg page to the codec decoders * \return int */ - int queue_page(ogg_page *page); + int queue_page(ogg_page * page); /** * \brief Internal function that takes a theora yuv buffer, transforms it and appends to the video stream * \return int diff --git a/src/kvilib/ext/KviOggTheoraEncoder.cpp b/src/kvilib/ext/KviOggTheoraEncoder.cpp index a63e111af..27f613200 100644 --- a/src/kvilib/ext/KviOggTheoraEncoder.cpp +++ b/src/kvilib/ext/KviOggTheoraEncoder.cpp @@ -35,13 +35,15 @@ using namespace KviOggIrcText; -static void rgb32toyuv444(QRgb * rgbPt, unsigned char *yuvPt, int w, int h) +static void rgb32toyuv444(QRgb * rgbPt, unsigned char * yuvPt, int w, int h) { - for(int i = 0; i < h; i++) { - for (int j = 0; j < w; j++) { - yuvPt[i * w + j] = (unsigned char) (( 66 * qRed(*rgbPt) + 129 * qGreen(*rgbPt) + 25 * qBlue(*rgbPt) + 128) >> 8) + 16; // y - yuvPt[(i + h) * w + j] = (unsigned char) ((-38 * qRed(*rgbPt) - 74 * qGreen(*rgbPt) + 112 * qBlue(*rgbPt) + 128) >> 8) + 128; // u - yuvPt[(i + 2 * h) * w + j] = (unsigned char) ((112 * qRed(*rgbPt) - 94 * qGreen(*rgbPt) - 18 * qBlue(*rgbPt) + 128) >> 8) + 128; // v + for(int i = 0; i < h; i++) + { + for(int j = 0; j < w; j++) + { + yuvPt[i * w + j] = (unsigned char)((66 * qRed(*rgbPt) + 129 * qGreen(*rgbPt) + 25 * qBlue(*rgbPt) + 128) >> 8) + 16; // y + yuvPt[(i + h) * w + j] = (unsigned char)((-38 * qRed(*rgbPt) - 74 * qGreen(*rgbPt) + 112 * qBlue(*rgbPt) + 128) >> 8) + 128; // u + yuvPt[(i + 2 * h) * w + j] = (unsigned char)((112 * qRed(*rgbPt) - 94 * qGreen(*rgbPt) - 18 * qBlue(*rgbPt) + 128) >> 8) + 128; // v //this moves the pointer forward 4 bytes (ARGB) rgbPt++; } @@ -49,48 +51,46 @@ static void rgb32toyuv444(QRgb * rgbPt, unsigned char *yuvPt, int w, int h) return; } - KviOggTheoraEncoder::KviOggTheoraEncoder(KviDataBuffer * stream, int iWidth, int iHeight, int iFpsN, int iFpsD, int iParN, int iParD) { //used to check functions results int ret; - videoflag=0; - videoYuv=0; - frame_state=-1; + videoflag = 0; + videoYuv = 0; + frame_state = -1; //text - text_sofar=0; + text_sofar = 0; //user settings - m_pStream=stream; - geometry.pic_w=iWidth; - geometry.pic_h=iHeight; + m_pStream = stream; + geometry.pic_w = iWidth; + geometry.pic_h = iHeight; //frame per second - int video_fps_n=iFpsN; - int video_fps_d=iFpsD; + int video_fps_n = iFpsN; + int video_fps_d = iFpsD; //aspect ratio - int video_par_n=iParN; - int video_par_d=iParD; - + int video_par_n = iParN; + int video_par_d = iParD; // preset settings - int video_q=48; - ogg_uint32_t keyframe_frequency=64; + int video_q = 48; + ogg_uint32_t keyframe_frequency = 64; - y4m_dst_buf_read_sz = geometry.pic_w * geometry.pic_h * 3; - y4m_aux_buf_sz = y4m_aux_buf_read_sz=0; + y4m_dst_buf_read_sz = geometry.pic_w * geometry.pic_h * 3; + y4m_aux_buf_sz = y4m_aux_buf_read_sz = 0; // buffer allocations y4m_dst_buf_read_sz = geometry.pic_w * geometry.pic_h * 3; - y4m_aux_buf_sz = y4m_aux_buf_read_sz=0; + y4m_aux_buf_sz = y4m_aux_buf_read_sz = 0; // The size of the final frame buffers is always computed from the destination chroma decimation type. y4m_dst_buf_sz = geometry.pic_w * geometry.pic_h * 3; // Set up Ogg output stream srand(time(NULL)); - ogg_stream_init(&to,rand()); + ogg_stream_init(&to, rand()); - ogg_stream_init(&zo,rand()); + ogg_stream_init(&zo, rand()); ret = irct_encode_init(); if(ret) { @@ -98,37 +98,37 @@ KviOggTheoraEncoder::KviOggTheoraEncoder(KviDataBuffer * stream, int iWidth, int return; } - // Set up Theora encoder // Theora has a divisible-by-sixteen restriction for the encoded frame size // scale the picture size up to the nearest /16 and calculate offsets - geometry.frame_w = (geometry.pic_w + 15) &~ 0xF; - geometry.frame_h = (geometry.pic_h + 15) &~ 0xF; + geometry.frame_w = (geometry.pic_w + 15) & ~0xF; + geometry.frame_h = (geometry.pic_h + 15) & ~0xF; // Force the offsets to be even so that chroma samples line up like we expect. - geometry.pic_x = (geometry.frame_w - geometry.pic_w) >> 1 &~ 1; - geometry.pic_y = (geometry.frame_h - geometry.pic_h) >> 1 &~ 1; + geometry.pic_x = (geometry.frame_w - geometry.pic_w) >> 1 & ~1; + geometry.pic_y = (geometry.frame_h - geometry.pic_h) >> 1 & ~1; // Fill in a th_info structure with details on the format of the video you wish to encode. th_info_init(&ti); - ti.frame_width=geometry.frame_w; - ti.frame_height=geometry.frame_h; - ti.pic_width=geometry.pic_w; - ti.pic_height=geometry.pic_h; - ti.pic_x=geometry.pic_x; - ti.pic_y=geometry.pic_y; - ti.fps_numerator=video_fps_n; - ti.fps_denominator=video_fps_d; - ti.aspect_numerator=video_par_n; - ti.aspect_denominator=video_par_d; - ti.colorspace=TH_CS_UNSPECIFIED; + ti.frame_width = geometry.frame_w; + ti.frame_height = geometry.frame_h; + ti.pic_width = geometry.pic_w; + ti.pic_height = geometry.pic_h; + ti.pic_x = geometry.pic_x; + ti.pic_y = geometry.pic_y; + ti.fps_numerator = video_fps_n; + ti.fps_denominator = video_fps_d; + ti.aspect_numerator = video_par_n; + ti.aspect_denominator = video_par_d; + ti.colorspace = TH_CS_UNSPECIFIED; //use vbr, not cbr - ti.target_bitrate=0; - ti.quality=video_q; - ti.keyframe_granule_shift=ilog(keyframe_frequency-1); - ti.pixel_fmt=TH_PF_444; + ti.target_bitrate = 0; + ti.quality = video_q; + ti.keyframe_granule_shift = ilog(keyframe_frequency - 1); + ti.pixel_fmt = TH_PF_444; // Allocate a th_enc_ctx handle with th_encode_alloc(). - td=th_encode_alloc(&ti); - if(td==0){ + td = th_encode_alloc(&ti); + if(td == 0) + { qDebug("Could not th_encode_alloc()."); return; } @@ -136,64 +136,73 @@ KviOggTheoraEncoder::KviOggTheoraEncoder(KviDataBuffer * stream, int iWidth, int th_info_clear(&ti); // Perform any additional encoder configuration required with th_encode_ctl(). // setting just the granule shift only allows power-of-two keyframe spacing. Set the actual requested spacing. - ret=th_encode_ctl(td,TH_ENCCTL_SET_KEYFRAME_FREQUENCY_FORCE,&keyframe_frequency,sizeof(keyframe_frequency-1)); - if(ret<0){ - qDebug("Could not set keyframe interval to %d.",(int)keyframe_frequency); + ret = th_encode_ctl(td, TH_ENCCTL_SET_KEYFRAME_FREQUENCY_FORCE, &keyframe_frequency, sizeof(keyframe_frequency - 1)); + if(ret < 0) + { + qDebug("Could not set keyframe interval to %d.", (int)keyframe_frequency); } // write the bitstream header packets with proper page interleave th_comment_init(&tc); // Repeatedly call th_encode_flushheader() to retrieve all the header packets. // first packet will get its own page automatically - if(th_encode_flushheader(td,&tc,&op)<=0){ + if(th_encode_flushheader(td, &tc, &op) <= 0) + { qDebug("Internal Theora library error."); return; } - ogg_stream_packetin(&to,&op); - if(ogg_stream_pageout(&to,&og)!=1){ + ogg_stream_packetin(&to, &op); + if(ogg_stream_pageout(&to, &og) != 1) + { qDebug("Internal Ogg library error."); return; } - m_pStream->append(og.header,og.header_len); - m_pStream->append(og.body,og.body_len); + m_pStream->append(og.header, og.header_len); + m_pStream->append(og.body, og.body_len); // create the remaining theora headers - for(;;){ - ret=th_encode_flushheader(td,&tc,&op); - if(ret<0){ + for(;;) + { + ret = th_encode_flushheader(td, &tc, &op); + if(ret < 0) + { qDebug("Internal Theora library error."); return; } - else if(!ret)break; - ogg_stream_packetin(&to,&op); + else if(!ret) + break; + ogg_stream_packetin(&to, &op); } //irct ogg_packet header; irct_encode_headerout(&header); - ogg_stream_packetin(&zo,&header); // automatically placed in its own page - if(ogg_stream_pageout(&zo,&og)!=1){ + ogg_stream_packetin(&zo, &header); // automatically placed in its own page + if(ogg_stream_pageout(&zo, &og) != 1) + { qDebug("Internal Ogg library error (irct)."); return; } - m_pStream->append(og.header,og.header_len); - m_pStream->append(og.body,og.body_len); + m_pStream->append(og.header, og.header_len); + m_pStream->append(og.body, og.body_len); // Flush the rest of our headers. This ensures the actual data in each stream // will start on a new page, as per spec. for(;;) { - int result = ogg_stream_flush(&to,&og); - if(result<0){ + int result = ogg_stream_flush(&to, &og); + if(result < 0) + { // can't get here qDebug("Internal Ogg library error."); return; } - if(result==0)break; - m_pStream->append(og.header,og.header_len); - m_pStream->append(og.body,og.body_len); + if(result == 0) + break; + m_pStream->append(og.header, og.header_len); + m_pStream->append(og.body, og.body_len); } } @@ -222,25 +231,26 @@ void KviOggTheoraEncoder::addVideoFrame(QRgb * rgb32, int) videoYuv = new quint8[geometry.pic_w * geometry.pic_h * YUV444_BPP]; rgb32toyuv444(rgb32, videoYuv, geometry.pic_w, geometry.pic_h); -// qDebug("addFrame p%p size%d yuv%p",rgb32,videoSize,videoYuv); + // qDebug("addFrame p%p size%d yuv%p",rgb32,videoSize,videoYuv); ogg_page videopage; // is there a video page flushed? If not, fetch one if possible - videoflag=fetch_and_process_video(videoYuv,&videopage,&to,td,videoflag); + videoflag = fetch_and_process_video(videoYuv, &videopage, &to, td, videoflag); // no pages? - if(!videoflag) return; + if(!videoflag) + return; - th_granule_time(td,ogg_page_granulepos(&videopage)); + th_granule_time(td, ogg_page_granulepos(&videopage)); // flush a video page - m_pStream->append(videopage.header,videopage.header_len); - m_pStream->append(videopage.body,videopage.body_len); - videoflag=0; + m_pStream->append(videopage.header, videopage.header_len); + m_pStream->append(videopage.body, videopage.body_len); + videoflag = 0; } -void KviOggTheoraEncoder::addTextFrame(unsigned char* textPkt, int textSize) +void KviOggTheoraEncoder::addTextFrame(unsigned char * textPkt, int textSize) { ogg_page textpage; ogg_packet op; @@ -248,46 +258,47 @@ void KviOggTheoraEncoder::addTextFrame(unsigned char* textPkt, int textSize) text_sofar++; // is there an audio page flushed? If not, fetch one if possible - textflag=irct_encode_packetout((char *) textPkt, textSize, text_sofar,&op); + textflag = irct_encode_packetout((char *)textPkt, textSize, text_sofar, &op); ogg_stream_packetin(&zo, &op); ogg_stream_pageout(&zo, &textpage); // no pages? Must be end of stream. -// if(!textflag) return; + // if(!textflag) return; - m_pStream->append(textpage.header,textpage.header_len); - m_pStream->append(textpage.body,textpage.body_len); - textflag=0; + m_pStream->append(textpage.header, textpage.header_len); + m_pStream->append(textpage.body, textpage.body_len); + textflag = 0; } -int KviOggTheoraEncoder::fetch_and_process_video_packet(quint8 * videoYuv,th_enc_ctx *td,ogg_packet *op) +int KviOggTheoraEncoder::fetch_and_process_video_packet(quint8 * videoYuv, th_enc_ctx * td, ogg_packet * op) { th_ycbcr_buffer ycbcr; - if(frame_state==-1) + if(frame_state == -1) { /* initialize the double frame buffer */ - yuvframe[0]=(unsigned char *)malloc(y4m_dst_buf_sz); - yuvframe[1]=(unsigned char *)malloc(y4m_dst_buf_sz); - yuvframe[2]=(unsigned char *)malloc(y4m_aux_buf_sz); - frame_state=0; + yuvframe[0] = (unsigned char *)malloc(y4m_dst_buf_sz); + yuvframe[1] = (unsigned char *)malloc(y4m_dst_buf_sz); + yuvframe[2] = (unsigned char *)malloc(y4m_aux_buf_sz); + frame_state = 0; } /* read and process more video */ /* have two frame buffers full (if possible) before proceeding. after first pass and until eos, one will always be full when we get here */ - for(;frame_state<2;) + for(; frame_state < 2;) { /*Read the frame data that needs no conversion.*/ - memcpy(yuvframe[frame_state],videoYuv,y4m_dst_buf_read_sz); + memcpy(yuvframe[frame_state], videoYuv, y4m_dst_buf_read_sz); /*Read the frame data that does need conversion.*/ - memcpy(yuvframe[2],videoYuv,y4m_aux_buf_read_sz); + memcpy(yuvframe[2], videoYuv, y4m_aux_buf_read_sz); frame_state++; } /* check to see if there are dupes to flush */ - if(th_encode_packetout(td,frame_state<1,op)>0)return 1; - if(frame_state<1) + if(th_encode_packetout(td, frame_state < 1, op) > 0) + return 1; + if(frame_state < 1) { /* can't get here unless YUV4MPEG stream has no video */ qDebug("Video input contains no frames."); @@ -300,34 +311,34 @@ int KviOggTheoraEncoder::fetch_and_process_video_packet(quint8 * videoYuv,th_enc actually allocate space for the padding. This is okay, because with the 1.0 API the library will never read data from the padded region.*/ - ycbcr[0].width=geometry.frame_w; - ycbcr[0].height=geometry.frame_h; - ycbcr[0].stride=geometry.pic_w; - ycbcr[0].data=yuvframe[0] - geometry.pic_x -geometry.pic_y * geometry.pic_w; - - ycbcr[1].width=geometry.frame_w; - ycbcr[1].height=geometry.frame_h; - ycbcr[1].stride=geometry.pic_w; - ycbcr[1].data=yuvframe[0] + (geometry.pic_w * geometry.pic_h) - geometry.pic_x - geometry.pic_y * geometry.frame_w; - - ycbcr[2].width=geometry.frame_w; - ycbcr[2].height=geometry.frame_h; - ycbcr[2].stride=geometry.pic_w; - ycbcr[2].data=ycbcr[1].data+(geometry.frame_w * geometry.frame_h); - - th_encode_ycbcr_in(td,ycbcr); + ycbcr[0].width = geometry.frame_w; + ycbcr[0].height = geometry.frame_h; + ycbcr[0].stride = geometry.pic_w; + ycbcr[0].data = yuvframe[0] - geometry.pic_x - geometry.pic_y * geometry.pic_w; + + ycbcr[1].width = geometry.frame_w; + ycbcr[1].height = geometry.frame_h; + ycbcr[1].stride = geometry.pic_w; + ycbcr[1].data = yuvframe[0] + (geometry.pic_w * geometry.pic_h) - geometry.pic_x - geometry.pic_y * geometry.frame_w; + + ycbcr[2].width = geometry.frame_w; + ycbcr[2].height = geometry.frame_h; + ycbcr[2].stride = geometry.pic_w; + ycbcr[2].data = ycbcr[1].data + (geometry.frame_w * geometry.frame_h); + + th_encode_ycbcr_in(td, ycbcr); { - unsigned char *temp=yuvframe[0]; - yuvframe[0]=yuvframe[1]; - yuvframe[1]=temp; + unsigned char * temp = yuvframe[0]; + yuvframe[0] = yuvframe[1]; + yuvframe[1] = temp; frame_state--; } /* if there was only one frame, it's the last in the stream */ - return th_encode_packetout(td,frame_state<1,op); + return th_encode_packetout(td, frame_state < 1, op); } -int KviOggTheoraEncoder::fetch_and_process_video(quint8 * videoYuv,ogg_page *videopage, -ogg_stream_state *to,th_enc_ctx *td,int videoflag) +int KviOggTheoraEncoder::fetch_and_process_video(quint8 * videoYuv, ogg_page * videopage, + ogg_stream_state * to, th_enc_ctx * td, int videoflag) { ogg_packet op; int ret; @@ -335,11 +346,14 @@ ogg_stream_state *to,th_enc_ctx *td,int videoflag) while(!videoflag) { //qDebug("fetch_and_process_video loop"); - if(ogg_stream_pageout(to,videopage)>0) return 1; - if(ogg_stream_eos(to)) return 0; - ret=fetch_and_process_video_packet(videoYuv,td,&op); - if(ret<=0)return 0; - ogg_stream_packetin(to,&op); + if(ogg_stream_pageout(to, videopage) > 0) + return 1; + if(ogg_stream_eos(to)) + return 0; + ret = fetch_and_process_video_packet(videoYuv, td, &op); + if(ret <= 0) + return 0; + ogg_stream_packetin(to, &op); } return videoflag; } @@ -347,7 +361,8 @@ ogg_stream_state *to,th_enc_ctx *td,int videoflag) int KviOggTheoraEncoder::ilog(unsigned _v) { int ret; - for(ret=0;_v;ret++)_v>>=1; + for(ret = 0; _v; ret++) + _v >>= 1; return ret; } diff --git a/src/kvilib/ext/KviOggTheoraEncoder.h b/src/kvilib/ext/KviOggTheoraEncoder.h index e0892f568..9fad18be9 100644 --- a/src/kvilib/ext/KviOggTheoraEncoder.h +++ b/src/kvilib/ext/KviOggTheoraEncoder.h @@ -49,7 +49,6 @@ class KviDataBuffer; */ #define YUV444_BPP 3 - /** * \class KviOggTheoraEncoder * \brief An ogg/theora+irct encoder class; accepts argb32 images and binary text, outputs an ogg stream @@ -68,38 +67,39 @@ public: * \param iParD aspect ratio: denominator * \return KviOggTheoraEncoder */ - KviOggTheoraEncoder(KviDataBuffer * stream, int iWidth=320, int iHeight=240, int iFpsN=5, int iFpsD=1, int iParN=4, int iParD=3); + KviOggTheoraEncoder(KviDataBuffer * stream, int iWidth = 320, int iHeight = 240, int iFpsN = 5, int iFpsD = 1, int iParN = 4, int iParD = 3); /** * \brief Destroys the KviOggTheoraEncoder object */ virtual ~KviOggTheoraEncoder(); + private: - KviOggTheoraGeometry geometry; /**< Stream geometry definition */ - KviDataBuffer * m_pStream; /**< Stream pointer */ - quint8 * videoYuv; /**< Yuv encoded surface pointer */ + KviOggTheoraGeometry geometry; /**< Stream geometry definition */ + KviDataBuffer * m_pStream; /**< Stream pointer */ + quint8 * videoYuv; /**< Yuv encoded surface pointer */ - ogg_int64_t text_sofar; /**< Number of transmitted text frames */ + ogg_int64_t text_sofar; /**< Number of transmitted text frames */ - int frame_state; /**< Internal flag used in video frame processing */ - unsigned char * yuvframe[3]; /**< Internal struct used in video frame processing */ + int frame_state; /**< Internal flag used in video frame processing */ + unsigned char * yuvframe[3]; /**< Internal struct used in video frame processing */ - size_t y4m_dst_buf_sz; /**< The size of each converted frame buffer */ - size_t y4m_dst_buf_read_sz; /**< The amount to read directly into the converted frame buffer */ - size_t y4m_aux_buf_sz; /**< The size of the auxiliary buffer */ - size_t y4m_aux_buf_read_sz; /**< The amount to read into the auxiliary buffer */ + size_t y4m_dst_buf_sz; /**< The size of each converted frame buffer */ + size_t y4m_dst_buf_read_sz; /**< The amount to read directly into the converted frame buffer */ + size_t y4m_aux_buf_sz; /**< The size of the auxiliary buffer */ + size_t y4m_aux_buf_read_sz; /**< The amount to read into the auxiliary buffer */ - ogg_stream_state zo; /**< Take physical pages, weld into a logical stream of irct packets */ - ogg_stream_state to; /**< Take physical pages, weld into a logical stream of theora packets */ - ogg_page og; /**< One Ogg bitstream page. Vorbis packets are inside */ - ogg_packet op; /**< One raw packet of encoded data */ + ogg_stream_state zo; /**< Take physical pages, weld into a logical stream of irct packets */ + ogg_stream_state to; /**< Take physical pages, weld into a logical stream of theora packets */ + ogg_page og; /**< One Ogg bitstream page. Vorbis packets are inside */ + ogg_packet op; /**< One raw packet of encoded data */ - th_enc_ctx * td; /**< Theora stream encoding struct */ - th_info ti; /**< Theora stream info struct */ - th_comment tc; /**< Theora stream comments struct */ + th_enc_ctx * td; /**< Theora stream encoding struct */ + th_info ti; /**< Theora stream info struct */ + th_comment tc; /**< Theora stream comments struct */ - int textflag; /**< Internal flag used in text frame processing */ - int videoflag; /**< Internal flag used in video frame processing */ + int textflag; /**< Internal flag used in text frame processing */ + int videoflag; /**< Internal flag used in video frame processing */ public: /** * \brief Appends a video frame to the stream @@ -115,19 +115,20 @@ public: * \param textSize size of the text buffer * \return void */ - void addTextFrame(unsigned char* textPkt, int textSize); + void addTextFrame(unsigned char * textPkt, int textSize); + private: /** * \brief Internal function that processes a video frame to create an ogg page * \return int */ - int fetch_and_process_video(quint8 * videoYuv,ogg_page *videopage,ogg_stream_state *to,th_enc_ctx *td,int videoflag); + int fetch_and_process_video(quint8 * videoYuv, ogg_page * videopage, ogg_stream_state * to, th_enc_ctx * td, int videoflag); /** * \brief Internal function that processes a video frame to create an ogg packet * \return int */ - int fetch_and_process_video_packet(quint8 * videoYuv,th_enc_ctx *td,ogg_packet *op); + int fetch_and_process_video_packet(quint8 * videoYuv, th_enc_ctx * td, ogg_packet * op); /** * \brief Internal function used to calculate our granule shift diff --git a/src/kvilib/ext/KviOggTheoraGeometry.h b/src/kvilib/ext/KviOggTheoraGeometry.h index 29b06bd3c..4c8f47f44 100644 --- a/src/kvilib/ext/KviOggTheoraGeometry.h +++ b/src/kvilib/ext/KviOggTheoraGeometry.h @@ -39,14 +39,14 @@ */ typedef struct _KviOggTheoraGeometry { - int pic_w; /**< width of original picture geometry, chosen by the user */ - int pic_h; /**< height of original picture geometry, chosen by the user */ + int pic_w; /**< width of original picture geometry, chosen by the user */ + int pic_h; /**< height of original picture geometry, chosen by the user */ - int frame_w; /**< width of the picture frame (calculated geometry) */ - int frame_h; /**< height of the picture frame (calculated geometry) */ + int frame_w; /**< width of the picture frame (calculated geometry) */ + int frame_h; /**< height of the picture frame (calculated geometry) */ - int pic_x; /**< x offset of the picture inside the frame (calculated geometry) */ - int pic_y; /**< y offset of the picture inside the frame (calculated geometry) */ + int pic_x; /**< x offset of the picture inside the frame (calculated geometry) */ + int pic_y; /**< y offset of the picture inside the frame (calculated geometry) */ } KviOggTheoraGeometry; #endif // COMPILE_DISABLE_OGG_THEORA diff --git a/src/kvilib/ext/KviParameterList.cpp b/src/kvilib/ext/KviParameterList.cpp index 00f261d55..03c73e419 100644 --- a/src/kvilib/ext/KviParameterList.cpp +++ b/src/kvilib/ext/KviParameterList.cpp @@ -25,28 +25,28 @@ #include "KviParameterList.h" KviParameterList::KviParameterList() -: KviPointerList() + : KviPointerList() { setAutoDelete(true); } -KviParameterList::KviParameterList(KviCString *p1) -: KviPointerList() +KviParameterList::KviParameterList(KviCString * p1) + : KviPointerList() { setAutoDelete(true); append(p1); } -KviParameterList::KviParameterList(KviCString *p1,KviCString *p2) -: KviPointerList() +KviParameterList::KviParameterList(KviCString * p1, KviCString * p2) + : KviPointerList() { setAutoDelete(true); append(p1); append(p2); } -KviParameterList::KviParameterList(KviCString *p1,KviCString *p2,KviCString *p3) -: KviPointerList() +KviParameterList::KviParameterList(KviCString * p1, KviCString * p2, KviCString * p3) + : KviPointerList() { setAutoDelete(true); append(p1); @@ -54,8 +54,8 @@ KviParameterList::KviParameterList(KviCString *p1,KviCString *p2,KviCString *p3) append(p3); } -KviParameterList::KviParameterList(KviCString *p1,KviCString *p2,KviCString *p3,KviCString *p4) -: KviPointerList() +KviParameterList::KviParameterList(KviCString * p1, KviCString * p2, KviCString * p3, KviCString * p4) + : KviPointerList() { setAutoDelete(true); append(p1); @@ -64,8 +64,8 @@ KviParameterList::KviParameterList(KviCString *p1,KviCString *p2,KviCString *p3, append(p4); } -KviParameterList::KviParameterList(KviCString *p1,KviCString *p2,KviCString *p3,KviCString *p4,KviCString *p5) -: KviPointerList() +KviParameterList::KviParameterList(KviCString * p1, KviCString * p2, KviCString * p3, KviCString * p4, KviCString * p5) + : KviPointerList() { setAutoDelete(true); append(p1); @@ -75,8 +75,8 @@ KviParameterList::KviParameterList(KviCString *p1,KviCString *p2,KviCString *p3, append(p5); } -KviParameterList::KviParameterList(KviCString *p1,KviCString *p2,KviCString *p3,KviCString *p4,KviCString *p5,KviCString *p6) -: KviPointerList() +KviParameterList::KviParameterList(KviCString * p1, KviCString * p2, KviCString * p3, KviCString * p4, KviCString * p5, KviCString * p6) + : KviPointerList() { setAutoDelete(true); append(p1); @@ -87,9 +87,8 @@ KviParameterList::KviParameterList(KviCString *p1,KviCString *p2,KviCString *p3, append(p6); } - -KviParameterList::KviParameterList(KviCString *p1,KviCString *p2,KviCString *p3,KviCString *p4,KviCString *p5,KviCString *p6,KviCString *p7) -: KviPointerList() +KviParameterList::KviParameterList(KviCString * p1, KviCString * p2, KviCString * p3, KviCString * p4, KviCString * p5, KviCString * p6, KviCString * p7) + : KviPointerList() { setAutoDelete(true); append(p1); @@ -101,14 +100,14 @@ KviParameterList::KviParameterList(KviCString *p1,KviCString *p2,KviCString *p3, append(p7); } -KviParameterList::KviParameterList(const char *paramBuffer) -: KviPointerList() +KviParameterList::KviParameterList(const char * paramBuffer) + : KviPointerList() { setAutoDelete(true); while(*paramBuffer) { KviCString * pStr = new KviCString(); - paramBuffer = kvi_extractToken(*pStr,paramBuffer); + paramBuffer = kvi_extractToken(*pStr, paramBuffer); append(pStr); } } @@ -119,7 +118,7 @@ KviParameterList::~KviParameterList() KviCString * KviParameterList::safeFirst() { - KviCString * f= first(); + KviCString * f = first(); return f ? f : &m_szEmpty; } @@ -129,16 +128,16 @@ KviCString * KviParameterList::safeNext() return f ? f : &m_szEmpty; } - bool KviParameterList::getBool() { KviCString * par = current(); (void)next(); if(par) { - if(kvi_strEqualCS(par->ptr(),"0"))return false; + if(kvi_strEqualCS(par->ptr(), "0")) + return false; } - return true; // default + return true; // default } int KviParameterList::getInt(bool * bOk) @@ -149,7 +148,8 @@ int KviParameterList::getInt(bool * bOk) { return par->toInt(bOk); } - if(bOk)*bOk = false; + if(bOk) + *bOk = false; return 0; } @@ -161,80 +161,90 @@ unsigned int KviParameterList::getUInt(bool * bOk) { return par->toUInt(bOk); } - if(bOk)*bOk = false; + if(bOk) + *bOk = false; return 0; } QRect KviParameterList::getRect(bool * bOk) { int val[4]; - for(int i=0;i<4;i++) + for(int i = 0; i < 4; i++) { KviCString * pszv = current(); (void)next(); if(!pszv) { - if(bOk)*bOk = false; + if(bOk) + *bOk = false; return QRect(); // invalid } bool mybOk; val[i] = pszv->toInt(&mybOk); if(!mybOk) { - if(bOk)*bOk = false; + if(bOk) + *bOk = false; return QRect(); // invalid } } - if(bOk)*bOk = true; - return QRect(val[0],val[1],val[2],val[3]); + if(bOk) + *bOk = true; + return QRect(val[0], val[1], val[2], val[3]); } QPoint KviParameterList::getPoint(bool * bOk) { int val[2]; - for(int i=0;i<2;i++) + for(int i = 0; i < 2; i++) { KviCString * pszv = current(); (void)next(); if(!pszv) { - if(bOk)*bOk = false; + if(bOk) + *bOk = false; return QPoint(); // invalid } bool mybOk; val[i] = pszv->toInt(&mybOk); if(!mybOk) { - if(bOk)*bOk = false; + if(bOk) + *bOk = false; return QPoint(); // invalid } } - if(bOk)*bOk = true; - return QPoint(val[0],val[1]); + if(bOk) + *bOk = true; + return QPoint(val[0], val[1]); } QSize KviParameterList::getSize(bool * bOk) { int val[2]; - for(int i=0;i<2;i++) + for(int i = 0; i < 2; i++) { KviCString * pszv = current(); (void)next(); if(!pszv) { - if(bOk)*bOk = false; + if(bOk) + *bOk = false; return QSize(); // invalid } bool mybOk; val[i] = pszv->toInt(&mybOk); if(!mybOk) { - if(bOk)*bOk = false; + if(bOk) + *bOk = false; return QSize(); // invalid } } - if(bOk)*bOk = true; - return QSize(val[0],val[1]); + if(bOk) + *bOk = true; + return QSize(val[0], val[1]); } //#ifdef COMPILE_ON_WINDOWS diff --git a/src/kvilib/ext/KviParameterList.h b/src/kvilib/ext/KviParameterList.h index acae32ab7..225d652ef 100644 --- a/src/kvilib/ext/KviParameterList.h +++ b/src/kvilib/ext/KviParameterList.h @@ -37,37 +37,36 @@ class KVILIB_API KviParameterList : public KviPointerList, public Kv { public: KviParameterList(); - KviParameterList(KviCString *p1); - KviParameterList(KviCString *p1,KviCString *p2); - KviParameterList(KviCString *p1,KviCString *p2,KviCString *p3); - KviParameterList(KviCString *p1,KviCString *p2,KviCString *p3,KviCString *p4); - KviParameterList(KviCString *p1,KviCString *p2,KviCString *p3,KviCString *p4,KviCString *p5); - KviParameterList(KviCString *p1,KviCString *p2,KviCString *p3,KviCString *p4,KviCString *p5,KviCString *p6); - KviParameterList(KviCString *p1,KviCString *p2,KviCString *p3,KviCString *p4,KviCString *p5,KviCString *p6,KviCString *p7); + KviParameterList(KviCString * p1); + KviParameterList(KviCString * p1, KviCString * p2); + KviParameterList(KviCString * p1, KviCString * p2, KviCString * p3); + KviParameterList(KviCString * p1, KviCString * p2, KviCString * p3, KviCString * p4); + KviParameterList(KviCString * p1, KviCString * p2, KviCString * p3, KviCString * p4, KviCString * p5); + KviParameterList(KviCString * p1, KviCString * p2, KviCString * p3, KviCString * p4, KviCString * p5, KviCString * p6); + KviParameterList(KviCString * p1, KviCString * p2, KviCString * p3, KviCString * p4, KviCString * p5, KviCString * p6, KviCString * p7); KviParameterList(const char * paramBuffer); virtual ~KviParameterList(); + private: KviCString m_szEmpty; + public: - void init(){ (void)first(); }; + void init() { (void)first(); }; // These functions have to be called when the // current() points to the FIRST item that has // to be interpreted as Bool,Int,UInt,Rect etc... // At the call exit the current() points // to the first item that was NOT used by the call - bool getBool(); - int getInt(bool * bOk = 0); + bool getBool(); + int getInt(bool * bOk = 0); unsigned int getUInt(bool * bOk = 0); - QRect getRect(bool * bOk = 0); - QPoint getPoint(bool * bOk = 0); - QSize getSize(bool * bOk = 0); - KviCString * safeFirst(); - KviCString * safeNext(); - const char * safeFirstParam(){ return safeFirst()->ptr(); }; - const char * safeNextParam(){ return safeNext()->ptr(); }; - + QRect getRect(bool * bOk = 0); + QPoint getPoint(bool * bOk = 0); + QSize getSize(bool * bOk = 0); + KviCString * safeFirst(); + KviCString * safeNext(); + const char * safeFirstParam() { return safeFirst()->ptr(); }; + const char * safeNextParam() { return safeNext()->ptr(); }; }; - - #endif //_KVI_PARAMETERLIST_H_ diff --git a/src/kvilib/ext/KviPixmap.cpp b/src/kvilib/ext/KviPixmap.cpp index d18a79eec..bc5605c0a 100644 --- a/src/kvilib/ext/KviPixmap.cpp +++ b/src/kvilib/ext/KviPixmap.cpp @@ -22,9 +22,6 @@ // //============================================================================= - - - #include "kvi_debug.h" #include "KviPixmap.h" #include "KviQString.h" @@ -40,9 +37,9 @@ KviPixmap::KviPixmap(const char * path) load(path); } -KviPixmap::KviPixmap(const KviPixmap &pix) +KviPixmap::KviPixmap(const KviPixmap & pix) { - m_pPix = 0; + m_pPix = 0; m_szPath = pix.path(); if(!m_szPath.isEmpty()) @@ -68,10 +65,11 @@ bool KviPixmap::load(const char * path) if(m_pPix) { delete m_pPix; - m_pPix = 0; + m_pPix = 0; } m_szPath = path; - if(m_szPath.isEmpty())return false; + if(m_szPath.isEmpty()) + return false; m_pPix = new QPixmap(m_szPath); @@ -85,15 +83,16 @@ bool KviPixmap::load(const char * path) return true; } -bool KviPixmap::load(const QString& path) +bool KviPixmap::load(const QString & path) { if(m_pPix) { delete m_pPix; - m_pPix = 0; + m_pPix = 0; } m_szPath = path; - if(m_szPath.isEmpty())return false; + if(m_szPath.isEmpty()) + return false; m_pPix = new QPixmap(m_szPath); @@ -107,7 +106,7 @@ bool KviPixmap::load(const QString& path) return true; } -void KviPixmap::set(const QPixmap &pix,const QString &szPath) +void KviPixmap::set(const QPixmap & pix, const QString & szPath) { if(pix.isNull()) { @@ -121,7 +120,6 @@ void KviPixmap::set(const QPixmap &pix,const QString &szPath) m_szPath = szPath; } - void KviPixmap::setNull() { if(m_pPix) @@ -132,15 +130,17 @@ void KviPixmap::setNull() m_szPath = ""; } -KviPixmap & KviPixmap::operator=(const KviPixmap &pix) +KviPixmap & KviPixmap::operator=(const KviPixmap & pix) { - if(m_pPix == pix.m_pPix)return (*this); // self assignment (!!!) - if(KviQString::equalCI(m_szPath,pix.path()))return (*this); // same pix + if(m_pPix == pix.m_pPix) + return (*this); // self assignment (!!!) + if(KviQString::equalCI(m_szPath, pix.path())) + return (*this); // same pix if(m_pPix) { delete m_pPix; - m_pPix = 0; + m_pPix = 0; } m_szPath = pix.path(); diff --git a/src/kvilib/ext/KviPixmap.h b/src/kvilib/ext/KviPixmap.h index 99d9fdac9..10b16384e 100644 --- a/src/kvilib/ext/KviPixmap.h +++ b/src/kvilib/ext/KviPixmap.h @@ -25,7 +25,6 @@ // //============================================================================= - #include "kvi_settings.h" #include "KviCString.h" @@ -36,19 +35,21 @@ class KVILIB_API KviPixmap public: KviPixmap(); KviPixmap(const char * path); - KviPixmap(const KviPixmap &pix); + KviPixmap(const KviPixmap & pix); ~KviPixmap(); + private: QPixmap * m_pPix; - QString m_szPath; + QString m_szPath; + public: - bool isNull(){ return m_pPix == 0; }; + bool isNull() { return m_pPix == 0; }; bool load(const char * path); - bool load(const QString& path); - const QString& path() const { return m_szPath; }; + bool load(const QString & path); + const QString & path() const { return m_szPath; }; QPixmap * pixmap() const { return m_pPix; }; - void set(const QPixmap &pix,const QString &szPath); - KviPixmap & operator=(const KviPixmap &pix); // deep copy + void set(const QPixmap & pix, const QString & szPath); + KviPixmap & operator=(const KviPixmap & pix); // deep copy void setNull(); }; diff --git a/src/kvilib/ext/KviPixmapUtils.cpp b/src/kvilib/ext/KviPixmapUtils.cpp index 265777846..ad668713e 100644 --- a/src/kvilib/ext/KviPixmapUtils.cpp +++ b/src/kvilib/ext/KviPixmapUtils.cpp @@ -26,40 +26,46 @@ namespace KviPixmapUtils { - void drawPixmapWithPainter(QPainter* p,QPixmap * pix,int flags,const QRect& paintRect,int iWidgetWidth,int iWidgetHeight,int dx,int dy) + void drawPixmapWithPainter(QPainter * p, QPixmap * pix, int flags, const QRect & paintRect, int iWidgetWidth, int iWidgetHeight, int dx, int dy) { - if(!pix)return; + if(!pix) + return; if(!flags) { - p->drawTiledPixmap(paintRect.left(),paintRect.top(),paintRect.width(),paintRect.height(),*pix,dx,dy); + p->drawTiledPixmap(paintRect.left(), paintRect.top(), paintRect.width(), paintRect.height(), *pix, dx, dy); return; } - int iPixWidth=pix->width(); - int iPixHeight=pix->height(); - int x=0; - int y=0; + int iPixWidth = pix->width(); + int iPixHeight = pix->height(); + int x = 0; + int y = 0; - if( !(flags & Qt::AlignHorizontal_Mask )) - x=-1; - else if ( flags & Qt::AlignRight ) - x=iWidgetWidth - iPixWidth; - else if( flags & Qt::AlignHCenter ) - x=(iWidgetWidth - iPixWidth)/2; + if(!(flags & Qt::AlignHorizontal_Mask)) + x = -1; + else if(flags & Qt::AlignRight) + x = iWidgetWidth - iPixWidth; + else if(flags & Qt::AlignHCenter) + x = (iWidgetWidth - iPixWidth) / 2; - if( !(flags & Qt::AlignVertical_Mask )) - y=-1; - else if ( flags & Qt::AlignBottom ) - y=iWidgetHeight - iPixHeight; - else if( flags & Qt::AlignVCenter ) - y=(iWidgetHeight - iPixHeight)/2; + if(!(flags & Qt::AlignVertical_Mask)) + y = -1; + else if(flags & Qt::AlignBottom) + y = iWidgetHeight - iPixHeight; + else if(flags & Qt::AlignVCenter) + y = (iWidgetHeight - iPixHeight) / 2; - if(x==-1) { - p->drawTiledPixmap(paintRect.left(),y,paintRect.width(),iPixHeight,*pix,dx,dy); - } else if(y==-1) { - p->drawTiledPixmap(x,paintRect.top(),iPixWidth,paintRect.height(),*pix,dx,dy); - } else { - p->drawPixmap(x,y,*pix); + if(x == -1) + { + p->drawTiledPixmap(paintRect.left(), y, paintRect.width(), iPixHeight, *pix, dx, dy); + } + else if(y == -1) + { + p->drawTiledPixmap(x, paintRect.top(), iPixWidth, paintRect.height(), *pix, dx, dy); + } + else + { + p->drawPixmap(x, y, *pix); } } } diff --git a/src/kvilib/ext/KviPixmapUtils.h b/src/kvilib/ext/KviPixmapUtils.h index ccc025fdb..6a2dbc98b 100644 --- a/src/kvilib/ext/KviPixmapUtils.h +++ b/src/kvilib/ext/KviPixmapUtils.h @@ -33,8 +33,8 @@ namespace KviPixmapUtils { - extern KVILIB_API void drawPixmapWithPainter(QPainter* p,QPixmap * pix,int flags,const QRect& paintRect,int iWidgetWidth,int iWidgetHeight,int dx,int dy); - inline void drawPixmapWithPainter(QPainter* p,QPixmap * pix,int flags,const QRect& paintRect,int iWidgetWidth,int iWidgetHeight){ KviPixmapUtils::drawPixmapWithPainter(p,pix,flags,paintRect,iWidgetWidth,iWidgetHeight,paintRect.left(),paintRect.top()); } + extern KVILIB_API void drawPixmapWithPainter(QPainter * p, QPixmap * pix, int flags, const QRect & paintRect, int iWidgetWidth, int iWidgetHeight, int dx, int dy); + inline void drawPixmapWithPainter(QPainter * p, QPixmap * pix, int flags, const QRect & paintRect, int iWidgetWidth, int iWidgetHeight) { KviPixmapUtils::drawPixmapWithPainter(p, pix, flags, paintRect, iWidgetWidth, iWidgetHeight, paintRect.left(), paintRect.top()); } } #endif // _KVIPIXMAPUTILS_H_ diff --git a/src/kvilib/ext/KviProxy.cpp b/src/kvilib/ext/KviProxy.cpp index e01b93f56..702f9a120 100644 --- a/src/kvilib/ext/KviProxy.cpp +++ b/src/kvilib/ext/KviProxy.cpp @@ -31,35 +31,41 @@ KviProxy::KviProxy() { m_szHostname = "proxy.example.net"; - m_uPort = 1080; - m_protocol = Socks4; - m_bIsIPv6 = false; + m_uPort = 1080; + m_protocol = Socks4; + m_bIsIPv6 = false; } -KviProxy::KviProxy(const KviProxy &prx) +KviProxy::KviProxy(const KviProxy & prx) { m_szHostname = prx.m_szHostname; - m_szIp = prx.m_szIp; - m_szUser = prx.m_szUser; - m_szPass = prx.m_szPass; - m_uPort = prx.m_uPort; - m_protocol = prx.m_protocol; - m_bIsIPv6 = prx.m_bIsIPv6; + m_szIp = prx.m_szIp; + m_szUser = prx.m_szUser; + m_szPass = prx.m_szPass; + m_uPort = prx.m_uPort; + m_protocol = prx.m_protocol; + m_bIsIPv6 = prx.m_bIsIPv6; } KviProxy::~KviProxy() { } -static const QString proxy_protocols_table[3]= { "SOCKSv4", "SOCKSv5", "HTTP" }; +static const QString proxy_protocols_table[3] = { "SOCKSv4", "SOCKSv5", "HTTP" }; const QString KviProxy::protocolName() const { switch(m_protocol) { - case Socks5: return proxy_protocols_table[1]; break; - case Http: return proxy_protocols_table[2]; break; - default: return proxy_protocols_table[0]; break; + case Socks5: + return proxy_protocols_table[1]; + break; + case Http: + return proxy_protocols_table[2]; + break; + default: + return proxy_protocols_table[0]; + break; } return proxy_protocols_table[0]; @@ -67,14 +73,18 @@ const QString KviProxy::protocolName() const void KviProxy::setNamedProtocol(const char * proto) { - if(kvi_strEqualCI(proto,"SOCKSv5"))m_protocol = KviProxy::Socks5; - else if(kvi_strEqualCI(proto,"HTTP"))m_protocol = KviProxy::Http; - else m_protocol = KviProxy::Socks4; + if(kvi_strEqualCI(proto, "SOCKSv5")) + m_protocol = KviProxy::Socks5; + else if(kvi_strEqualCI(proto, "HTTP")) + m_protocol = KviProxy::Http; + else + m_protocol = KviProxy::Socks4; } void KviProxy::getSupportedProtocolNames(QStringList & buf) { - for(int i=0;i<3;i++)buf.append(QString(proxy_protocols_table[i])); + for(int i = 0; i < 3; i++) + buf.append(QString(proxy_protocols_table[i])); } void KviProxy::normalizeUserAndPass() diff --git a/src/kvilib/ext/KviProxy.h b/src/kvilib/ext/KviProxy.h index a29bb111f..f627bbfad 100644 --- a/src/kvilib/ext/KviProxy.h +++ b/src/kvilib/ext/KviProxy.h @@ -27,7 +27,6 @@ // this file was originally part of KviProxyDataBase.h - #include "kvi_settings.h" #include "kvi_inttypes.h" @@ -35,46 +34,52 @@ class QStringList; - class KVILIB_API KviProxy { public: - enum Protocol { Socks4, Socks5, Http }; + enum Protocol + { + Socks4, + Socks5, + Http + }; KviProxy(); - KviProxy(const KviProxy &prx); + KviProxy(const KviProxy & prx); ~KviProxy(); + public: // FIXME: make it private!!!!! - QString m_szHostname; - QString m_szIp; - QString m_szPass; - QString m_szUser; - kvi_u32_t m_uPort; - Protocol m_protocol; - bool m_bIsIPv6; + QString m_szHostname; + QString m_szIp; + QString m_szPass; + QString m_szUser; + kvi_u32_t m_uPort; + Protocol m_protocol; + bool m_bIsIPv6; + public: - bool isIPv6() const { return m_bIsIPv6; }; - Protocol protocol() const { return m_protocol; }; + bool isIPv6() const { return m_bIsIPv6; }; + Protocol protocol() const { return m_protocol; }; const QString protocolName() const; void setNamedProtocol(const char * proto); kvi_u32_t port() const { return m_uPort; }; - const QString & user() const { return m_szUser; }; - const QString & pass() const { return m_szPass; }; - const QString & ip() const { return m_szIp; }; - const QString & hostName() const { return m_szHostname; }; + const QString & user() const { return m_szUser; }; + const QString & pass() const { return m_szPass; }; + const QString & ip() const { return m_szIp; }; + const QString & hostName() const { return m_szHostname; }; void normalizeUserAndPass(); - bool hasPass() const { return !m_szPass.isEmpty(); }; - bool hasUser() const { return !m_szUser.isEmpty(); }; + bool hasPass() const { return !m_szPass.isEmpty(); }; + bool hasUser() const { return !m_szUser.isEmpty(); }; unsigned int passLen() const { return (unsigned int)m_szPass.length(); }; unsigned int userLen() const { return (unsigned int)m_szUser.length(); }; static void getSupportedProtocolNames(QStringList & buf); - void setProtocol(Protocol p){ m_protocol = p; }; - void setIPv6(bool b){ m_bIsIPv6 = b; }; - void setPort(kvi_u32_t &p){ m_uPort = p; }; - void setUser(const QString &u){ m_szUser = u; }; - void setPass(const QString &p){ m_szPass = p; }; - void setIp(const QString &i){ m_szIp = i; }; - void setHostname(const QString &h){ m_szHostname = h; }; + void setProtocol(Protocol p) { m_protocol = p; }; + void setIPv6(bool b) { m_bIsIPv6 = b; }; + void setPort(kvi_u32_t & p) { m_uPort = p; }; + void setUser(const QString & u) { m_szUser = u; }; + void setPass(const QString & p) { m_szPass = p; }; + void setIp(const QString & i) { m_szIp = i; }; + void setHostname(const QString & h) { m_szHostname = h; }; }; #endif // _KVIPROXY_H_ diff --git a/src/kvilib/ext/KviProxyDataBase.cpp b/src/kvilib/ext/KviProxyDataBase.cpp index 48d529cbc..5ae2de6e8 100644 --- a/src/kvilib/ext/KviProxyDataBase.cpp +++ b/src/kvilib/ext/KviProxyDataBase.cpp @@ -22,7 +22,6 @@ // //============================================================================= - #include "KviProxyDataBase.h" #include "KviConfigurationFile.h" #include "KviProxy.h" @@ -39,11 +38,11 @@ KviProxyDataBase::~KviProxyDataBase() delete m_pProxyList; } -void KviProxyDataBase::updateProxyIp(const char * proxy,const char * ip) +void KviProxyDataBase::updateProxyIp(const char * proxy, const char * ip) { - for(KviProxy * prx = m_pProxyList->first();prx;prx = m_pProxyList->next()) + for(KviProxy * prx = m_pProxyList->first(); prx; prx = m_pProxyList->next()) { - if(QString::compare(proxy,prx->m_szHostname,Qt::CaseInsensitive)) + if(QString::compare(proxy, prx->m_szHostname, Qt::CaseInsensitive)) { prx->m_szIp = ip; return; @@ -53,16 +52,17 @@ void KviProxyDataBase::updateProxyIp(const char * proxy,const char * ip) KviProxy * KviProxyDataBase::findProxy(const KviProxy * pProxy, bool bName) { - for(KviProxy *p=m_pProxyList->first();p;p=m_pProxyList->next()) + for(KviProxy * p = m_pProxyList->first(); p; p = m_pProxyList->next()) { if(bName) { - if(QString::compare(p->m_szHostname,pProxy->m_szHostname,Qt::CaseInsensitive)) return p; - } else { - if(QString::compare(p->m_szHostname,pProxy->m_szHostname,Qt::CaseInsensitive) && - (p->m_uPort == pProxy->m_uPort) && - (p->protocol() == pProxy->protocol()) && - (p->isIPv6() == pProxy->isIPv6())) return p; + if(QString::compare(p->m_szHostname, pProxy->m_szHostname, Qt::CaseInsensitive)) + return p; + } + else + { + if(QString::compare(p->m_szHostname, pProxy->m_szHostname, Qt::CaseInsensitive) && (p->m_uPort == pProxy->m_uPort) && (p->protocol() == pProxy->protocol()) && (p->isIPv6() == pProxy->isIPv6())) + return p; } } return 0; @@ -76,79 +76,87 @@ void KviProxyDataBase::clear() m_pCurrentProxy = 0; } -void KviProxyDataBase::load(const QString &filename) +void KviProxyDataBase::load(const QString & filename) { clear(); - KviConfigurationFile cfg(filename,KviConfigurationFile::Read); + KviConfigurationFile cfg(filename, KviConfigurationFile::Read); - unsigned int nEntries = cfg.readUIntEntry("Entries",0); + unsigned int nEntries = cfg.readUIntEntry("Entries", 0); - for(unsigned int i=0;im_szHostname = cfg.readEntry(tmp.ptr(),"proxy.example.net"); - tmp.sprintf("%u_Port",i); - p->m_uPort = cfg.readUIntEntry(tmp.ptr(),7000); - tmp.sprintf("%u_Ip",i); - p->m_szIp = cfg.readEntry(tmp.ptr(),""); - tmp.sprintf("%u_User",i); - p->m_szUser = cfg.readEntry(tmp.ptr(),""); - tmp.sprintf("%u_Pass",i); - p->m_szPass = cfg.readEntry(tmp.ptr(),""); - - tmp.sprintf("%u_Protocol",i); - KviCString type = cfg.readEntry(tmp.ptr(),"SOCKSv4"); + KviCString tmp(KviCString::Format, "%u_Hostname", i); + p->m_szHostname = cfg.readEntry(tmp.ptr(), "proxy.example.net"); + tmp.sprintf("%u_Port", i); + p->m_uPort = cfg.readUIntEntry(tmp.ptr(), 7000); + tmp.sprintf("%u_Ip", i); + p->m_szIp = cfg.readEntry(tmp.ptr(), ""); + tmp.sprintf("%u_User", i); + p->m_szUser = cfg.readEntry(tmp.ptr(), ""); + tmp.sprintf("%u_Pass", i); + p->m_szPass = cfg.readEntry(tmp.ptr(), ""); + + tmp.sprintf("%u_Protocol", i); + KviCString type = cfg.readEntry(tmp.ptr(), "SOCKSv4"); p->setNamedProtocol(type.ptr()); - tmp.sprintf("%u_IsIPv6",i); - p->m_bIsIPv6 = cfg.readBoolEntry(tmp.ptr(),false); - tmp.sprintf("%u_Current",i); - if(cfg.readBoolEntry(tmp.ptr(),false))m_pCurrentProxy = p; + tmp.sprintf("%u_IsIPv6", i); + p->m_bIsIPv6 = cfg.readBoolEntry(tmp.ptr(), false); + tmp.sprintf("%u_Current", i); + if(cfg.readBoolEntry(tmp.ptr(), false)) + m_pCurrentProxy = p; m_pProxyList->append(p); } - if(!m_pCurrentProxy)m_pCurrentProxy = m_pProxyList->first(); + if(!m_pCurrentProxy) + m_pCurrentProxy = m_pProxyList->first(); } -void KviProxyDataBase::save(const QString &filename) +void KviProxyDataBase::save(const QString & filename) { - KviConfigurationFile cfg(filename,KviConfigurationFile::Write); + KviConfigurationFile cfg(filename, KviConfigurationFile::Write); cfg.clear(); - cfg.writeEntry("Entries",m_pProxyList->count()); - + cfg.writeEntry("Entries", m_pProxyList->count()); - int i=0; + int i = 0; - for(KviProxy * p=m_pProxyList->first();p;p=m_pProxyList->next()) + for(KviProxy * p = m_pProxyList->first(); p; p = m_pProxyList->next()) { - KviCString tmp(KviCString::Format,"%u_Hostname",i); - cfg.writeEntry(tmp.ptr(),p->m_szHostname); - tmp.sprintf("%u_Port",i); - cfg.writeEntry(tmp.ptr(),p->m_uPort); - tmp.sprintf("%u_Ip",i); - cfg.writeEntry(tmp.ptr(),p->m_szIp); - tmp.sprintf("%u_User",i); - cfg.writeEntry(tmp.ptr(),p->m_szUser); - tmp.sprintf("%u_Pass",i); - cfg.writeEntry(tmp.ptr(),p->m_szPass); - - tmp.sprintf("%u_Protocol",i); + KviCString tmp(KviCString::Format, "%u_Hostname", i); + cfg.writeEntry(tmp.ptr(), p->m_szHostname); + tmp.sprintf("%u_Port", i); + cfg.writeEntry(tmp.ptr(), p->m_uPort); + tmp.sprintf("%u_Ip", i); + cfg.writeEntry(tmp.ptr(), p->m_szIp); + tmp.sprintf("%u_User", i); + cfg.writeEntry(tmp.ptr(), p->m_szUser); + tmp.sprintf("%u_Pass", i); + cfg.writeEntry(tmp.ptr(), p->m_szPass); + + tmp.sprintf("%u_Protocol", i); KviCString type; switch(p->m_protocol) { - case KviProxy::Socks5: type = "SOCKSv5"; break; - case KviProxy::Http: type = "HTTP"; break; - default: type = "SOCKSv4"; break; + case KviProxy::Socks5: + type = "SOCKSv5"; + break; + case KviProxy::Http: + type = "HTTP"; + break; + default: + type = "SOCKSv4"; + break; } - cfg.writeEntry(tmp.ptr(),type.ptr()); + cfg.writeEntry(tmp.ptr(), type.ptr()); - tmp.sprintf("%u_IsIPv6",i); - cfg.writeEntry(tmp.ptr(),p->m_bIsIPv6); - tmp.sprintf("%u_Current",i); - if(m_pCurrentProxy == p)cfg.writeEntry(tmp.ptr(),true); + tmp.sprintf("%u_IsIPv6", i); + cfg.writeEntry(tmp.ptr(), p->m_bIsIPv6); + tmp.sprintf("%u_Current", i); + if(m_pCurrentProxy == p) + cfg.writeEntry(tmp.ptr(), true); i++; } } diff --git a/src/kvilib/ext/KviProxyDataBase.h b/src/kvilib/ext/KviProxyDataBase.h index 5311e0b82..47f9b4965 100644 --- a/src/kvilib/ext/KviProxyDataBase.h +++ b/src/kvilib/ext/KviProxyDataBase.h @@ -35,19 +35,21 @@ class KVILIB_API KviProxyDataBase public: KviProxyDataBase(); ~KviProxyDataBase(); + private: KviPointerList * m_pProxyList; - KviProxy * m_pCurrentProxy; + KviProxy * m_pCurrentProxy; + public: void clear(); - KviPointerList * proxyList(){ return m_pProxyList; }; - KviProxy * currentProxy(){ return m_pCurrentProxy; }; + KviPointerList * proxyList() { return m_pProxyList; }; + KviProxy * currentProxy() { return m_pCurrentProxy; }; KviProxy * findProxy(const KviProxy * pProxy, bool bName); - void updateProxyIp(const char * proxy,const char * ip); - void setCurrentProxy(KviProxy * prx){ m_pCurrentProxy = prx; }; - void insertProxy(KviProxy * prx){ m_pProxyList->append(prx); }; - void load(const QString &filename); - void save(const QString &filename); + void updateProxyIp(const char * proxy, const char * ip); + void setCurrentProxy(KviProxy * prx) { m_pCurrentProxy = prx; }; + void insertProxy(KviProxy * prx) { m_pProxyList->append(prx); }; + void load(const QString & filename); + void save(const QString & filename); }; #endif //_KVI_PROXYDB_H_ diff --git a/src/kvilib/ext/KviRegisteredChannel.cpp b/src/kvilib/ext/KviRegisteredChannel.cpp index 6709c04bd..0e6c7fa1a 100644 --- a/src/kvilib/ext/KviRegisteredChannel.cpp +++ b/src/kvilib/ext/KviRegisteredChannel.cpp @@ -29,7 +29,7 @@ KviRegisteredChannel::KviRegisteredChannel(const QString & szName, const QString { m_szName = szName; m_szNetMask = szNetMask; - m_pPropertyDict = new QHash(); + m_pPropertyDict = new QHash(); } KviRegisteredChannel::~KviRegisteredChannel() diff --git a/src/kvilib/ext/KviRegisteredChannel.h b/src/kvilib/ext/KviRegisteredChannel.h index 5d8e8e5f9..df70e5309 100644 --- a/src/kvilib/ext/KviRegisteredChannel.h +++ b/src/kvilib/ext/KviRegisteredChannel.h @@ -34,25 +34,28 @@ class KVILIB_API KviRegisteredChannel : public KviHeapObject { friend class KviRegisteredChannelDataBase; + public: KviRegisteredChannel(const QString & szName, const QString & szNetMask); ~KviRegisteredChannel(); + protected: - QString m_szName; - QString m_szNetMask; - QHash * m_pPropertyDict; + QString m_szName; + QString m_szNetMask; + QHash * m_pPropertyDict; + public: - QHash * propertyDict(){ return m_pPropertyDict; } + QHash * propertyDict() { return m_pPropertyDict; } - const QString & name(){ return m_szName; } + const QString & name() { return m_szName; } - const QString & netMask(){ return m_szNetMask; } + const QString & netMask() { return m_szNetMask; } - QString property(const QString & szName){ return m_pPropertyDict->value(szName); } + QString property(const QString & szName) { return m_pPropertyDict->value(szName); } - void setProperty(const QString & szName,const QString & szValue){ m_pPropertyDict->insert(szName,szValue); } + void setProperty(const QString & szName, const QString & szValue) { m_pPropertyDict->insert(szName, szValue); } - void removeProperty(const QString & szName){ m_pPropertyDict->remove(szName); } + void removeProperty(const QString & szName) { m_pPropertyDict->remove(szName); } }; typedef KVILIB_API_TYPEDEF KviPointerList KviRegisteredChannelList; diff --git a/src/kvilib/ext/KviRegisteredChannelDataBase.cpp b/src/kvilib/ext/KviRegisteredChannelDataBase.cpp index 0bea7366a..01e03dd3e 100644 --- a/src/kvilib/ext/KviRegisteredChannelDataBase.cpp +++ b/src/kvilib/ext/KviRegisteredChannelDataBase.cpp @@ -27,7 +27,7 @@ KviRegisteredChannelDataBase::KviRegisteredChannelDataBase() { - m_pChannelDict = new QHash(); + m_pChannelDict = new QHash(); } KviRegisteredChannelDataBase::~KviRegisteredChannelDataBase() @@ -36,9 +36,9 @@ KviRegisteredChannelDataBase::~KviRegisteredChannelDataBase() delete m_pChannelDict; } -void KviRegisteredChannelDataBase::load(const QString &filename) +void KviRegisteredChannelDataBase::load(const QString & filename) { - KviConfigurationFile cfg(filename,KviConfigurationFile::Read); + KviConfigurationFile cfg(filename, KviConfigurationFile::Read); qDeleteAll(*m_pChannelDict); m_pChannelDict->clear(); @@ -48,71 +48,71 @@ void KviRegisteredChannelDataBase::load(const QString &filename) while(KviConfigurationFileGroup * d = it.current()) { QString szMask = it.currentKey(); - QString szChan = KviQString::leftToLast(szMask,QChar('@'),false); - KviQString::cutToLast(szMask,QChar('@'),true); - KviRegisteredChannel * c = new KviRegisteredChannel(szChan,szMask); + QString szChan = KviQString::leftToLast(szMask, QChar('@'), false); + KviQString::cutToLast(szMask, QChar('@'), true); + KviRegisteredChannel * c = new KviRegisteredChannel(szChan, szMask); add(c); KviConfigurationFileGroupIterator sit(*d); while(QString * s = sit.current()) { - c->setProperty(sit.currentKey(),*s); + c->setProperty(sit.currentKey(), *s); ++sit; } ++it; } } -void KviRegisteredChannelDataBase::save(const QString &filename) +void KviRegisteredChannelDataBase::save(const QString & filename) { - KviConfigurationFile cfg(filename,KviConfigurationFile::Write); + KviConfigurationFile cfg(filename, KviConfigurationFile::Write); cfg.clear(); cfg.preserveEmptyGroups(true); - for(QHash::Iterator it = m_pChannelDict->begin();it != m_pChannelDict->end();++it) + for(QHash::Iterator it = m_pChannelDict->begin(); it != m_pChannelDict->end(); ++it) { KviRegisteredChannelList * l = it.value(); KVI_ASSERT(l); - for(KviRegisteredChannel * c = l->first();c;c = l->next()) + for(KviRegisteredChannel * c = l->first(); c; c = l->next()) { - QString szGroup = QString::fromUtf8("%1@%2").arg(c->name(),c->netMask()); + QString szGroup = QString::fromUtf8("%1@%2").arg(c->name(), c->netMask()); cfg.setGroup(szGroup); - QHash * pPropertyDict = c->propertyDict(); + QHash * pPropertyDict = c->propertyDict(); KVI_ASSERT(pPropertyDict); - for(QHash::Iterator it2 = pPropertyDict->begin();it2 != pPropertyDict->end();++it2) - cfg.writeEntry(it2.key(),it2.value()); + for(QHash::Iterator it2 = pPropertyDict->begin(); it2 != pPropertyDict->end(); ++it2) + cfg.writeEntry(it2.key(), it2.value()); } } } -KviRegisteredChannel * KviRegisteredChannelDataBase::find(const QString &name,const QString &net) +KviRegisteredChannel * KviRegisteredChannelDataBase::find(const QString & name, const QString & net) { KviRegisteredChannelList * l = m_pChannelDict->value(name); if(!l) return 0; - for(KviRegisteredChannel * c = l->first();c;c = l->next()) + for(KviRegisteredChannel * c = l->first(); c; c = l->next()) { - if(KviQString::matchWildExpressions(c->netMask(),net)) + if(KviQString::matchWildExpressions(c->netMask(), net)) return c; } return 0; } -KviRegisteredChannel * KviRegisteredChannelDataBase::findExact(const QString &name,const QString &netmask) +KviRegisteredChannel * KviRegisteredChannelDataBase::findExact(const QString & name, const QString & netmask) { KviRegisteredChannelList * l = m_pChannelDict->value(name); if(!l) return 0; - for(KviRegisteredChannel * c = l->first();c;c = l->next()) + for(KviRegisteredChannel * c = l->first(); c; c = l->next()) { - if(KviQString::equalCI(c->netMask(),netmask)) + if(KviQString::equalCI(c->netMask(), netmask)) return c; } @@ -123,8 +123,9 @@ void KviRegisteredChannelDataBase::remove(KviRegisteredChannel * c) { KVI_TRACE_FUNCTION; KviRegisteredChannelList * l = m_pChannelDict->value(c->name()); - if(!l)return; - for(KviRegisteredChannel * ch = l->first();ch;ch = l->next()) + if(!l) + return; + for(KviRegisteredChannel * ch = l->first(); ch; ch = l->next()) { if(ch == c) { @@ -132,7 +133,9 @@ void KviRegisteredChannelDataBase::remove(KviRegisteredChannel * c) { m_pChannelDict->remove(c->name()); delete l; // will kill the channel too - } else { + } + else + { l->removeRef(c); } return; @@ -140,21 +143,20 @@ void KviRegisteredChannelDataBase::remove(KviRegisteredChannel * c) } } - void KviRegisteredChannelDataBase::add(KviRegisteredChannel * c) { - KviRegisteredChannel * old = findExact(c->name(),c->netMask()); + KviRegisteredChannel * old = findExact(c->name(), c->netMask()); if(old) { // merge properties - QHash * pPropertyDict = old->propertyDict(); + QHash * pPropertyDict = old->propertyDict(); KVI_ASSERT(pPropertyDict); - for(QHash::Iterator it = pPropertyDict->begin();it != pPropertyDict->end();++it) + for(QHash::Iterator it = pPropertyDict->begin(); it != pPropertyDict->end(); ++it) { if(!c->property(it.key()).isEmpty()) - c->setProperty(it.key(),it.value()); + c->setProperty(it.key(), it.value()); } remove(old); @@ -165,19 +167,19 @@ void KviRegisteredChannelDataBase::add(KviRegisteredChannel * c) { l = new KviRegisteredChannelList(); l->setAutoDelete(true); - m_pChannelDict->insert(c->name(),l); + m_pChannelDict->insert(c->name(), l); } // insert where there are less wildcards int o = c->netMask().count(QChar('*')); int idx = 0; - for(KviRegisteredChannel * rc = l->first();rc;rc = l->next()) + for(KviRegisteredChannel * rc = l->first(); rc; rc = l->next()) { if(rc->netMask().count(QChar('*')) > o) { // the existing has more wildcards, insert here! - l->insert(idx,c); + l->insert(idx, c); return; } idx++; diff --git a/src/kvilib/ext/KviRegisteredChannelDataBase.h b/src/kvilib/ext/KviRegisteredChannelDataBase.h index 02496d96d..ce8a2dd6f 100644 --- a/src/kvilib/ext/KviRegisteredChannelDataBase.h +++ b/src/kvilib/ext/KviRegisteredChannelDataBase.h @@ -37,14 +37,16 @@ class KVILIB_API KviRegisteredChannelDataBase public: KviRegisteredChannelDataBase(); ~KviRegisteredChannelDataBase(); + protected: - QHash * m_pChannelDict; + QHash * m_pChannelDict; + public: - QHash * channelDict(){ return m_pChannelDict; } + QHash * channelDict() { return m_pChannelDict; } KviRegisteredChannel * find(const QString & szName, const QString & szNetMask); - KviRegisteredChannel * findExact(const QString & szName,const QString & szNetMask); + KviRegisteredChannel * findExact(const QString & szName, const QString & szNetMask); void remove(KviRegisteredChannel * pChan); void add(KviRegisteredChannel * pChan); diff --git a/src/kvilib/ext/KviRegisteredUser.cpp b/src/kvilib/ext/KviRegisteredUser.cpp index 8283b17ab..a2bab964b 100644 --- a/src/kvilib/ext/KviRegisteredUser.cpp +++ b/src/kvilib/ext/KviRegisteredUser.cpp @@ -29,11 +29,11 @@ KviRegisteredUser::KviRegisteredUser(const QString & name) { - m_iIgnoreFlags =0; - m_bIgnoreEnabled=false; - m_szName = name; + m_iIgnoreFlags = 0; + m_bIgnoreEnabled = false; + m_szName = name; m_pPropertyDict = 0; - m_pMaskList = new KviPointerList; + m_pMaskList = new KviPointerList; m_pMaskList->setAutoDelete(true); } @@ -46,15 +46,17 @@ KviRegisteredUser::~KviRegisteredUser() bool KviRegisteredUser::isIgnoreEnabledFor(IgnoreFlags flag) { - if(!m_bIgnoreEnabled) return false; + if(!m_bIgnoreEnabled) + return false; return m_iIgnoreFlags & flag; } -KviIrcMask * KviRegisteredUser::findMask(const KviIrcMask &mask) +KviIrcMask * KviRegisteredUser::findMask(const KviIrcMask & mask) { - for(KviIrcMask * m = m_pMaskList->first();m;m = m_pMaskList->next()) + for(KviIrcMask * m = m_pMaskList->first(); m; m = m_pMaskList->next()) { - if(*m == mask)return m; + if(*m == mask) + return m; } return 0; } @@ -64,7 +66,7 @@ bool KviRegisteredUser::addMask(KviIrcMask * mask) if(findMask(*mask)) { delete mask; - mask = 0; + mask = 0; return false; } m_pMaskList->append(mask); @@ -73,95 +75,116 @@ bool KviRegisteredUser::addMask(KviIrcMask * mask) bool KviRegisteredUser::removeMask(KviIrcMask * mask) { - if(!mask)return false; + if(!mask) + return false; return m_pMaskList->removeRef(mask); } -bool KviRegisteredUser::matches(const KviIrcMask &mask) +bool KviRegisteredUser::matches(const KviIrcMask & mask) { - for(KviIrcMask * m = m_pMaskList->first();m;m = m_pMaskList->next()) + for(KviIrcMask * m = m_pMaskList->first(); m; m = m_pMaskList->next()) { - if(m->matches(mask))return true; + if(m->matches(mask)) + return true; } return false; } -bool KviRegisteredUser::matchesFixed(const KviIrcMask &mask) +bool KviRegisteredUser::matchesFixed(const KviIrcMask & mask) { - for(KviIrcMask * m = m_pMaskList->first();m;m = m_pMaskList->next()) + for(KviIrcMask * m = m_pMaskList->first(); m; m = m_pMaskList->next()) { - if(m->matchesFixed(mask))return true; + if(m->matchesFixed(mask)) + return true; } return false; } -bool KviRegisteredUser::matchesFixed(const QString & nick,const QString & user,const QString & host) +bool KviRegisteredUser::matchesFixed(const QString & nick, const QString & user, const QString & host) { - for(KviIrcMask * m = m_pMaskList->first();m;m = m_pMaskList->next()) + for(KviIrcMask * m = m_pMaskList->first(); m; m = m_pMaskList->next()) { - if(m->matchesFixed(nick,user,host))return true; + if(m->matchesFixed(nick, user, host)) + return true; } return false; } -void KviRegisteredUser::setProperty(const QString &name,bool value) +void KviRegisteredUser::setProperty(const QString & name, bool value) { - setProperty(name,value ? QString("true") : QString("false")); + setProperty(name, value ? QString("true") : QString("false")); } -void KviRegisteredUser::setProperty(const QString & name,const QString & value) +void KviRegisteredUser::setProperty(const QString & name, const QString & value) { if(!value.isEmpty()) { if(!m_pPropertyDict) { - m_pPropertyDict = new KviPointerHashTable(7,false); + m_pPropertyDict = new KviPointerHashTable(7, false); m_pPropertyDict->setAutoDelete(true); } QString * val = new QString(value.trimmed()); if(!val->isEmpty()) { - m_pPropertyDict->replace(name,val); - } else { + m_pPropertyDict->replace(name, val); + } + else + { delete val; val = 0; } - } else { - if(m_pPropertyDict)m_pPropertyDict->remove(name); + } + else + { + if(m_pPropertyDict) + m_pPropertyDict->remove(name); } } -bool KviRegisteredUser::getProperty(const QString & name,QString &value) +bool KviRegisteredUser::getProperty(const QString & name, QString & value) { - if(!m_pPropertyDict)return false; - if(name.isEmpty()) return false; + if(!m_pPropertyDict) + return false; + if(name.isEmpty()) + return false; QString * pValue = m_pPropertyDict->find(name); - if(pValue)value = *pValue; - else return false; + if(pValue) + value = *pValue; + else + return false; return true; } const QString & KviRegisteredUser::getProperty(const QString & name) { - if(!m_pPropertyDict)return KviQString::Empty; - if(name.isEmpty())return KviQString::Empty; + if(!m_pPropertyDict) + return KviQString::Empty; + if(name.isEmpty()) + return KviQString::Empty; QString * pValue = m_pPropertyDict->find(name); - if(pValue)return *pValue; + if(pValue) + return *pValue; return KviQString::Empty; } -bool KviRegisteredUser::getBoolProperty(const QString & name,bool def) +bool KviRegisteredUser::getBoolProperty(const QString & name, bool def) { - if(!m_pPropertyDict)return def; - if(name.isEmpty()) return def; + if(!m_pPropertyDict) + return def; + if(name.isEmpty()) + return def; QString * pValue = m_pPropertyDict->find(name); if(pValue) { // be flexible, allow more "true" values (pragma) - if(KviQString::equalCS(*pValue,"1"))return true; - if(KviQString::equalCI(*pValue,"true"))return true; - if(KviQString::equalCI(*pValue,"yes"))return true; + if(KviQString::equalCS(*pValue, "1")) + return true; + if(KviQString::equalCI(*pValue, "true")) + return true; + if(KviQString::equalCI(*pValue, "yes")) + return true; //if(KviQString::equalCI(*pValue,"yeah"))return true; //if(KviQString::equalCI(*pValue,"sure"))return true; //if(KviQString::equalCI(*pValue,"sureashell"))return true; diff --git a/src/kvilib/ext/KviRegisteredUser.h b/src/kvilib/ext/KviRegisteredUser.h index 195e23ab3..8c86415b7 100644 --- a/src/kvilib/ext/KviRegisteredUser.h +++ b/src/kvilib/ext/KviRegisteredUser.h @@ -35,39 +35,43 @@ class KVILIB_API KviRegisteredUser : public KviHeapObject { friend class KviRegisteredUserDataBase; + public: - enum IgnoreFlags { - Channel=1, - Query=2, - Notice=4, - Ctcp=8, - Invite=16, - Dcc=32, - Highlight=64 + enum IgnoreFlags + { + Channel = 1, + Query = 2, + Notice = 4, + Ctcp = 8, + Invite = 16, + Dcc = 32, + Highlight = 64 }; KviRegisteredUser(const QString & szName); ~KviRegisteredUser(); + private: - int m_iIgnoreFlags; - bool m_bIgnoreEnabled; - QString m_szName; - QString m_szGroup; - KviPointerHashTable * m_pPropertyDict; // owned properties - KviPointerList * m_pMaskList; // owned masks + int m_iIgnoreFlags; + bool m_bIgnoreEnabled; + QString m_szName; + QString m_szGroup; + KviPointerHashTable * m_pPropertyDict; // owned properties + KviPointerList * m_pMaskList; // owned masks protected: // mask ownership is transferred! (always!) returns false if the mask was already there bool addMask(KviIrcMask * pMask); bool removeMask(KviIrcMask * pMask); KviIrcMask * findMask(const KviIrcMask & mask); + public: - int ignoreFlags(){ return m_iIgnoreFlags; }; - void setIgnoreFlags(int iFlags){ m_iIgnoreFlags = iFlags; }; - bool ignoreEnabled(){ return m_bIgnoreEnabled; }; - void setIgnoreEnabled(bool bEnabled){ m_bIgnoreEnabled = bEnabled; }; + int ignoreFlags() { return m_iIgnoreFlags; }; + void setIgnoreFlags(int iFlags) { m_iIgnoreFlags = iFlags; }; + bool ignoreEnabled() { return m_bIgnoreEnabled; }; + void setIgnoreEnabled(bool bEnabled) { m_bIgnoreEnabled = bEnabled; }; bool isIgnoreEnabledFor(IgnoreFlags flag); - const QString & name(){ return m_szName; }; + const QString & name() { return m_szName; }; bool matches(const KviIrcMask & mask); bool matchesFixed(const KviIrcMask & mask); bool matchesFixed(const QString & szNick, const QString & szUser, const QString & szHost); @@ -76,15 +80,15 @@ public: void setProperty(const QString & szName, bool szValue); void setGroup(const QString & szName) { m_szGroup = szName; }; - const QString & group(){ return m_szGroup; }; + const QString & group() { return m_szGroup; }; - const QString & getProperty(const QString & szName); // returns 0 if the property is not there - bool getProperty(const QString & szName, QString & szValue); // returns false if the property is not there - bool getBoolProperty(const QString & szName, bool bDef = false); // returns true if the property is there and is true + const QString & getProperty(const QString & szName); // returns 0 if the property is not there + bool getProperty(const QString & szName, QString & szValue); // returns false if the property is not there + bool getBoolProperty(const QString & szName, bool bDef = false); // returns true if the property is there and is true // the propertyDict may be 0! - KviPointerHashTable * propertyDict(){ return m_pPropertyDict; }; + KviPointerHashTable * propertyDict() { return m_pPropertyDict; }; // this is never zero (but may contain no masks) - KviPointerList * maskList(){ return m_pMaskList; }; + KviPointerList * maskList() { return m_pMaskList; }; }; #endif //!_KviRegisteredUser_h_ diff --git a/src/kvilib/ext/KviRegisteredUserDataBase.cpp b/src/kvilib/ext/KviRegisteredUserDataBase.cpp index 993b8c4b9..bc0f64c19 100644 --- a/src/kvilib/ext/KviRegisteredUserDataBase.cpp +++ b/src/kvilib/ext/KviRegisteredUserDataBase.cpp @@ -22,7 +22,6 @@ // //================================================================================ - #define _KVI_REGUSERDB_CPP_ #include "kvi_debug.h" @@ -117,8 +116,7 @@ It provides a set of commands for adding and removing masks and manipulating properties.[br] */ -KVILIB_API KviRegisteredUserDataBase* g_pRegisteredUserDataBase = 0; - +KVILIB_API KviRegisteredUserDataBase * g_pRegisteredUserDataBase = 0; //============================================================================================================ // @@ -127,16 +125,16 @@ KVILIB_API KviRegisteredUserDataBase* g_pRegisteredUserDataBase = 0; KviRegisteredUserDataBase::KviRegisteredUserDataBase() { - m_pUserDict = new KviPointerHashTable(31,false); // do not copy keys + m_pUserDict = new KviPointerHashTable(31, false); // do not copy keys m_pUserDict->setAutoDelete(true); m_pWildMaskList = new KviRegisteredUserMaskList; m_pWildMaskList->setAutoDelete(true); - m_pMaskDict = new KviPointerHashTable(49,false); // copy keys here! + m_pMaskDict = new KviPointerHashTable(49, false); // copy keys here! m_pMaskDict->setAutoDelete(true); - m_pGroupDict = new KviPointerHashTable(5,false); // copy keys here! + m_pGroupDict = new KviPointerHashTable(5, false); // copy keys here! m_pGroupDict->setAutoDelete(true); } @@ -151,44 +149,49 @@ KviRegisteredUserDataBase::~KviRegisteredUserDataBase() KviRegisteredUser * KviRegisteredUserDataBase::addUser(const QString & name) { - if(name.isEmpty()) return 0; - if(m_pUserDict->find(name))return 0; + if(name.isEmpty()) + return 0; + if(m_pUserDict->find(name)) + return 0; KviRegisteredUser * u = new KviRegisteredUser(name); - m_pUserDict->replace(u->name(),u); //u->name() because we're NOT copying keys! + m_pUserDict->replace(u->name(), u); //u->name() because we're NOT copying keys! emit(userAdded(name)); return u; } KviRegisteredUserGroup * KviRegisteredUserDataBase::addGroup(const QString & name) { - if(name.isEmpty()) return 0; - if(m_pGroupDict->find(name))return 0; + if(name.isEmpty()) + return 0; + if(m_pGroupDict->find(name)) + return 0; KviRegisteredUserGroup * pGroup = new KviRegisteredUserGroup(name); - m_pGroupDict->replace(pGroup->name(),pGroup); //u->name() because we're NOT copying keys! + m_pGroupDict->replace(pGroup->name(), pGroup); //u->name() because we're NOT copying keys! return pGroup; } KviRegisteredUser * KviRegisteredUserDataBase::getUser(const QString & name) { - if(name.isEmpty()) return 0; + if(name.isEmpty()) + return 0; KviRegisteredUser * u = m_pUserDict->find(name); if(!u) { u = new KviRegisteredUser(name); - m_pUserDict->replace(u->name(),u); //u->name() because we're NOT copying keys! + m_pUserDict->replace(u->name(), u); //u->name() because we're NOT copying keys! } return u; } -static void append_mask_to_list(KviRegisteredUserMaskList *l,KviRegisteredUser *u,KviIrcMask *mask) +static void append_mask_to_list(KviRegisteredUserMaskList * l, KviRegisteredUser * u, KviIrcMask * mask) { - KviRegisteredUserMask * newMask = new KviRegisteredUserMask(u,mask); + KviRegisteredUserMask * newMask = new KviRegisteredUserMask(u, mask); int idx = 0; - for(KviRegisteredUserMask * m = l->first();m;m = l->next()) + for(KviRegisteredUserMask * m = l->first(); m; m = l->next()) { if(m->nonWildChars() < newMask->nonWildChars()) { - l->insert(idx,newMask); + l->insert(idx, newMask); return; } idx++; @@ -196,15 +199,16 @@ static void append_mask_to_list(KviRegisteredUserMaskList *l,KviRegisteredUser * l->append(newMask); } -KviRegisteredUser * KviRegisteredUserDataBase::addMask(KviRegisteredUser * u,KviIrcMask * mask) +KviRegisteredUser * KviRegisteredUserDataBase::addMask(KviRegisteredUser * u, KviIrcMask * mask) { - if(!u || !mask) return 0; + if(!u || !mask) + return 0; KVI_ASSERT(u == m_pUserDict->find(u->name())); KviRegisteredUserMaskList * l; if(mask->hasWildNick()) { - for(KviRegisteredUserMask * m = m_pWildMaskList->first();m;m = m_pWildMaskList->next()) + for(KviRegisteredUserMask * m = m_pWildMaskList->first(); m; m = m_pWildMaskList->next()) { if(*(m->mask()) == *mask) { @@ -216,12 +220,14 @@ KviRegisteredUser * KviRegisteredUserDataBase::addMask(KviRegisteredUser * u,Kvi // not found ...ok... add it // masks with more info go first in the list l = m_pWildMaskList; - } else { + } + else + { l = m_pMaskDict->find(mask->nick()); if(l) { // FIXME: #warning "Here we could compare the host and username only: nick matches for sure" - for(KviRegisteredUserMask * m = l->first();m;m = l->next()) + for(KviRegisteredUserMask * m = l->first(); m; m = l->next()) { if(*(m->mask()) == *mask) { @@ -231,7 +237,9 @@ KviRegisteredUser * KviRegisteredUserDataBase::addMask(KviRegisteredUser * u,Kvi } } // not found ...ok... add it - } else { + } + else + { // not found ...ok... add it // this is the first mask in the list l = new KviRegisteredUserMaskList; @@ -241,9 +249,11 @@ KviRegisteredUser * KviRegisteredUserDataBase::addMask(KviRegisteredUser * u,Kvi qDebug("Oops! Received an incoherent regusers action, recovered?"); delete l; l = 0; - } else { - append_mask_to_list(l,u,mask); - m_pMaskDict->insert(mask->nick(),l); + } + else + { + append_mask_to_list(l, u, mask); + m_pMaskDict->insert(mask->nick(), l); } return 0; } @@ -254,7 +264,7 @@ KviRegisteredUser * KviRegisteredUserDataBase::addMask(KviRegisteredUser * u,Kvi qDebug("Oops! Received an incoherent regusers action, recovered?"); return 0; // ops...already there ? } - append_mask_to_list(l,u,mask); + append_mask_to_list(l, u, mask); return 0; } @@ -266,36 +276,36 @@ void KviRegisteredUserDataBase::copyFrom(KviRegisteredUserDataBase * db) m_pGroupDict->clear(); emit(databaseCleared()); - KviPointerHashTableIterator it(*(db->m_pUserDict)); + KviPointerHashTableIterator it(*(db->m_pUserDict)); while(KviRegisteredUser * theCur = it.current()) { KviRegisteredUser * u = getUser(theCur->name()); // copy masks KviPointerList * l = theCur->maskList(); - for(KviIrcMask * m=l->first();m;m = l->next()) + for(KviIrcMask * m = l->first(); m; m = l->next()) { KviIrcMask * m2 = new KviIrcMask(*m); - addMask(u,m2); + addMask(u, m2); } // copy properties - KviPointerHashTable * pd = theCur->propertyDict(); + KviPointerHashTable * pd = theCur->propertyDict(); if(pd) { - KviPointerHashTableIterator pdi(*pd); + KviPointerHashTableIterator pdi(*pd); while(pdi.current()) { - u->setProperty(pdi.currentKey(),*(pdi.current())); + u->setProperty(pdi.currentKey(), *(pdi.current())); ++pdi; } } - u->m_iIgnoreFlags=theCur->m_iIgnoreFlags; - u->m_bIgnoreEnabled=theCur->m_bIgnoreEnabled; + u->m_iIgnoreFlags = theCur->m_iIgnoreFlags; + u->m_bIgnoreEnabled = theCur->m_bIgnoreEnabled; u->setGroup(theCur->group()); ++it; } - KviPointerHashTableIterator git(*db->m_pGroupDict); + KviPointerHashTableIterator git(*db->m_pGroupDict); while(git.current()) { addGroup(git.currentKey()); @@ -305,13 +315,15 @@ void KviRegisteredUserDataBase::copyFrom(KviRegisteredUserDataBase * db) bool KviRegisteredUserDataBase::removeUser(const QString & name) { - if(name.isEmpty()) return false; + if(name.isEmpty()) + return false; KviRegisteredUser * u = m_pUserDict->find(name); - if(!u)return false; + if(!u) + return false; while(KviIrcMask * mask = u->maskList()->first()) { if(!removeMaskByPointer(mask)) - qDebug("Oops! removeMaskByPointer(%s) has failed",name.toUtf8().data()); + qDebug("Oops! removeMaskByPointer(%s) has failed", name.toUtf8().data()); } emit(userRemoved(name)); m_pUserDict->remove(name); @@ -320,17 +332,19 @@ bool KviRegisteredUserDataBase::removeUser(const QString & name) bool KviRegisteredUserDataBase::removeGroup(const QString & name) { - if(name.isEmpty()) return false; + if(name.isEmpty()) + return false; m_pGroupDict->remove(name); return true; } -bool KviRegisteredUserDataBase::removeMask(const KviIrcMask &mask) +bool KviRegisteredUserDataBase::removeMask(const KviIrcMask & mask) { // find the mask pointer KviRegisteredUserMask * m = findExactMask(mask); // and remove it - if(m){ + if(m) + { if(removeMaskByPointer(m->mask())) { return true; @@ -341,28 +355,31 @@ bool KviRegisteredUserDataBase::removeMask(const KviIrcMask &mask) bool KviRegisteredUserDataBase::removeMaskByPointer(KviIrcMask * mask) { - if(!mask) return 0; + if(!mask) + return 0; if(mask->hasWildNick()) { // remove from the wild list - for(KviRegisteredUserMask * m = m_pWildMaskList->first();m;m = m_pWildMaskList->next()) + for(KviRegisteredUserMask * m = m_pWildMaskList->first(); m; m = m_pWildMaskList->next()) { if(m->mask() == mask) { // ok..got it, remove from the list and from the user struct (user struct deletes it!) emit(userChanged(mask->nick())); - m->user()->removeMask(mask); // this one deletes m->mask() - m_pWildMaskList->removeRef(m); // this one deletes m + m->user()->removeMask(mask); // this one deletes m->mask() + m_pWildMaskList->removeRef(m); // this one deletes m return true; } } // not found ...opz :) - } else { + } + else + { KviRegisteredUserMaskList * l = m_pMaskDict->find(mask->nick()); if(l) { // FIXME: #warning "Here we could compare the host and username only: nick matches for sure" - for(KviRegisteredUserMask * m = l->first();m;m = l->next()) + for(KviRegisteredUserMask * m = l->first(); m; m = l->next()) { if(m->mask() == mask) { @@ -370,7 +387,8 @@ bool KviRegisteredUserDataBase::removeMaskByPointer(KviIrcMask * mask) emit(userChanged(nick)); m->user()->removeMask(mask); // this one deletes m->mask() (or mask) l->removeRef(m); // this one deletes m - if(l->count() == 0)m_pMaskDict->remove(nick); + if(l->count() == 0) + m_pMaskDict->remove(nick); return true; } } @@ -381,8 +399,6 @@ bool KviRegisteredUserDataBase::removeMaskByPointer(KviIrcMask * mask) return false; } - - /* KviRegisteredUser * KviRegisteredUserDataBase::findMatchingUser(const KviIrcMask &mask) { @@ -403,56 +419,64 @@ KviRegisteredUser * KviRegisteredUserDataBase::findMatchingUser(const KviIrcMask return 0; // no match at all } */ -KviRegisteredUser * KviRegisteredUserDataBase::findMatchingUser(const QString & nick,const QString &user,const QString & host) +KviRegisteredUser * KviRegisteredUserDataBase::findMatchingUser(const QString & nick, const QString & user, const QString & host) { - KviRegisteredUserMask * m = findMatchingMask(nick,user,host); - if(m)return m->user(); + KviRegisteredUserMask * m = findMatchingMask(nick, user, host); + if(m) + return m->user(); return 0; // no match at all } -KviRegisteredUserMask * KviRegisteredUserDataBase::findMatchingMask(const QString & nick,const QString &user,const QString & host) +KviRegisteredUserMask * KviRegisteredUserDataBase::findMatchingMask(const QString & nick, const QString & user, const QString & host) { // first lookup the nickname in the maskDict - if(nick.isEmpty()) return 0; + if(nick.isEmpty()) + return 0; KviRegisteredUserMaskList * l = m_pMaskDict->find(nick); if(l) { - for(KviRegisteredUserMask *m = l->first();m;m = l->next()) + for(KviRegisteredUserMask * m = l->first(); m; m = l->next()) { - if(m->mask()->matchesFixed(nick,user,host))return m; + if(m->mask()->matchesFixed(nick, user, host)) + return m; } } // not found....lookup the wild ones - for(KviRegisteredUserMask * m = m_pWildMaskList->first();m;m = m_pWildMaskList->next()) + for(KviRegisteredUserMask * m = m_pWildMaskList->first(); m; m = m_pWildMaskList->next()) { - if(m->mask()->matchesFixed(nick,user,host))return m; + if(m->mask()->matchesFixed(nick, user, host)) + return m; } return 0; // no match at all } -KviRegisteredUser * KviRegisteredUserDataBase::findUserWithMask(const KviIrcMask &mask) +KviRegisteredUser * KviRegisteredUserDataBase::findUserWithMask(const KviIrcMask & mask) { KviRegisteredUserMask * m = findExactMask(mask); - if(m)return m->user(); + if(m) + return m->user(); return 0; } -KviRegisteredUserMask * KviRegisteredUserDataBase::findExactMask(const KviIrcMask &mask) +KviRegisteredUserMask * KviRegisteredUserDataBase::findExactMask(const KviIrcMask & mask) { // first lookup the nickname in the maskDict - if(mask.nick()=="") return 0; + if(mask.nick() == "") + return 0; KviRegisteredUserMaskList * l = m_pMaskDict->find(mask.nick()); if(l) { - for(KviRegisteredUserMask *m = l->first();m;m = l->next()) + for(KviRegisteredUserMask * m = l->first(); m; m = l->next()) { - if(*(m->mask()) == mask)return m; + if(*(m->mask()) == mask) + return m; } } // not found....lookup the wild ones - for(KviRegisteredUserMask * m = m_pWildMaskList->first();m;m = m_pWildMaskList->next()) + for(KviRegisteredUserMask * m = m_pWildMaskList->first(); m; m = m_pWildMaskList->next()) { - if(*(m->mask()) == mask)return m; + if(*(m->mask()) == mask) + return m; } return 0; // no match at all } @@ -467,37 +491,41 @@ bool KviRegisteredUserDataBase::isIgnoredUser(const QString & nick,const QString void KviRegisteredUserDataBase::load(const QString & filename) { QString szCurrent; - KviConfigurationFile cfg(filename,KviConfigurationFile::Read); + KviConfigurationFile cfg(filename, KviConfigurationFile::Read); KviConfigurationFileIterator it(*cfg.dict()); while(it.current()) { cfg.setGroup(it.currentKey()); - szCurrent=it.currentKey(); - if(KviQString::equalCSN("#Group ",szCurrent,7)) + szCurrent = it.currentKey(); + if(KviQString::equalCSN("#Group ", szCurrent, 7)) { - szCurrent.remove(0,7); + szCurrent.remove(0, 7); addGroup(szCurrent); - } else { + } + else + { KviRegisteredUser * u = addUser(szCurrent); if(u) { - u->setIgnoreEnabled(cfg.readBoolEntry("IgnoreEnabled",false)); - u->setIgnoreFlags(cfg.readIntEntry("IgnoreFlags",0)); + u->setIgnoreEnabled(cfg.readBoolEntry("IgnoreEnabled", false)); + u->setIgnoreFlags(cfg.readIntEntry("IgnoreFlags", 0)); KviConfigurationFileGroupIterator sdi(*(it.current())); while(sdi.current()) { QString tmp = sdi.currentKey(); - if(KviQString::equalCSN("prop_",tmp,5)) + if(KviQString::equalCSN("prop_", tmp, 5)) { - tmp.remove(0,5); - u->setProperty(tmp,*(sdi.current())); - } else if(KviQString::equalCSN("mask_",tmp,5)) + tmp.remove(0, 5); + u->setProperty(tmp, *(sdi.current())); + } + else if(KviQString::equalCSN("mask_", tmp, 5)) { KviIrcMask * mask = new KviIrcMask(*(sdi.current())); - addMask(u,mask); - } else if(KviQString::equalCI(tmp,"Group")) + addMask(u, mask); + } + else if(KviQString::equalCI(tmp, "Group")) { u->setGroup(*(sdi.current())); } @@ -513,26 +541,26 @@ void KviRegisteredUserDataBase::load(const QString & filename) void KviRegisteredUserDataBase::save(const QString & szFilename) { - KviConfigurationFile cfg(szFilename,KviConfigurationFile::Write); + KviConfigurationFile cfg(szFilename, KviConfigurationFile::Write); cfg.clear(); cfg.preserveEmptyGroups(true); - KviPointerHashTableIterator it(*m_pUserDict); + KviPointerHashTableIterator it(*m_pUserDict); while(it.current()) { cfg.setGroup(it.current()->name()); // Write properties - cfg.writeEntry("IgnoreEnabled",it.current()->ignoreEnabled()); - cfg.writeEntry("IgnoreFlags",it.current()->ignoreFlags()); + cfg.writeEntry("IgnoreEnabled", it.current()->ignoreEnabled()); + cfg.writeEntry("IgnoreFlags", it.current()->ignoreFlags()); if(it.current()->propertyDict()) { - KviPointerHashTableIterator pit(*(it.current()->propertyDict())); + KviPointerHashTableIterator pit(*(it.current()->propertyDict())); while(pit.current()) { QString tmp = "prop_"; tmp.append(pit.currentKey()); - cfg.writeEntry(tmp,*(pit.current())); + cfg.writeEntry(tmp, *(pit.current())); ++pit; } } @@ -542,15 +570,15 @@ void KviRegisteredUserDataBase::save(const QString & szFilename) { QString szTmp = QString("mask_%1").arg(i); QString szMask; - pMask->mask(szMask,KviIrcMask::NickUserHost); - cfg.writeEntry(szTmp,szMask); + pMask->mask(szMask, KviIrcMask::NickUserHost); + cfg.writeEntry(szTmp, szMask); ++i; } - cfg.writeEntry("Group",it.current()->group()); + cfg.writeEntry("Group", it.current()->group()); ++it; } - KviPointerHashTableIterator git(*m_pGroupDict); + KviPointerHashTableIterator git(*m_pGroupDict); QString szTmp; while(git.current()) { diff --git a/src/kvilib/ext/KviRegisteredUserDataBase.h b/src/kvilib/ext/KviRegisteredUserDataBase.h index 8fc884e68..d4258fd75 100644 --- a/src/kvilib/ext/KviRegisteredUserDataBase.h +++ b/src/kvilib/ext/KviRegisteredUserDataBase.h @@ -40,7 +40,6 @@ #include - //================================================================================================= // // KviRegisteredUserDataBase @@ -57,45 +56,47 @@ class KVILIB_API KviRegisteredUserDataBase : public QObject public: KviRegisteredUserDataBase(); ~KviRegisteredUserDataBase(); + private: - KviPointerHashTable * m_pUserDict; // unique namespace, owns the objects, does not copy keys - KviPointerHashTable * m_pMaskDict; // owns the objects, copies the keys - KviRegisteredUserMaskList * m_pWildMaskList; // owns the objects - KviPointerHashTable* m_pGroupDict; + KviPointerHashTable * m_pUserDict; // unique namespace, owns the objects, does not copy keys + KviPointerHashTable * m_pMaskDict; // owns the objects, copies the keys + KviRegisteredUserMaskList * m_pWildMaskList; // owns the objects + KviPointerHashTable * m_pGroupDict; + public: void copyFrom(KviRegisteredUserDataBase * db); - KviRegisteredUser * addUser(const QString &name); // returns 0 if already there - KviRegisteredUser * getUser(const QString &name); // returns existing or adds - bool removeUser(const QString &name); - bool removeGroup(const QString &name); - KviRegisteredUser * findUserByName(const QString &name){ return m_pUserDict->find(name); }; + KviRegisteredUser * addUser(const QString & name); // returns 0 if already there + KviRegisteredUser * getUser(const QString & name); // returns existing or adds + bool removeUser(const QString & name); + bool removeGroup(const QString & name); + KviRegisteredUser * findUserByName(const QString & name) { return m_pUserDict->find(name); }; // mask must be allocated on the heap and the ownership is transferred! // returns non zero if there is already a user with this mask (returns the pointer to it!) - KviRegisteredUser * addMask(KviRegisteredUser * u,KviIrcMask * mask); + KviRegisteredUser * addMask(KviRegisteredUser * u, KviIrcMask * mask); bool removeMaskByPointer(KviIrcMask * mask); - bool removeMask(const KviIrcMask &mask); - KviRegisteredUser * findMatchingUser(const QString &nick,const QString &user,const QString &host); - KviRegisteredUser * findUserWithMask(const KviIrcMask &mask); - KviRegisteredUserMask * findExactMask(const KviIrcMask &mask); - KviRegisteredUserMask * findMatchingMask(const QString &nick,const QString &user,const QString &host); + bool removeMask(const KviIrcMask & mask); + KviRegisteredUser * findMatchingUser(const QString & nick, const QString & user, const QString & host); + KviRegisteredUser * findUserWithMask(const KviIrcMask & mask); + KviRegisteredUserMask * findExactMask(const KviIrcMask & mask); + KviRegisteredUserMask * findMatchingMask(const QString & nick, const QString & user, const QString & host); //Only used in few places (actually one) of the code, but lot of times;perfect for inlining... //bool isIgnoredUser(const char * nick,const char * user,const char * host); - void load(const QString &filename); - void save(const QString &filename); + void load(const QString & filename); + void save(const QString & filename); - KviPointerHashTable * userDict(){ return m_pUserDict; }; - KviPointerHashTable* groupDict() { return m_pGroupDict; }; + KviPointerHashTable * userDict() { return m_pUserDict; }; + KviPointerHashTable * groupDict() { return m_pGroupDict; }; - KviRegisteredUserGroup* addGroup(const QString &name); + KviRegisteredUserGroup * addGroup(const QString & name); signals: - void userRemoved(const QString&); - void userChanged(const QString&); - void userAdded (const QString&); + void userRemoved(const QString &); + void userChanged(const QString &); + void userAdded(const QString &); void databaseCleared(); }; #ifndef _KVI_REGUSERDB_CPP_ - extern KVILIB_API KviRegisteredUserDataBase * g_pRegisteredUserDataBase; +extern KVILIB_API KviRegisteredUserDataBase * g_pRegisteredUserDataBase; #endif // _KVI_REGUSERDB_CPP_ #endif //_KVI_REGUSERSDB_H_ diff --git a/src/kvilib/ext/KviRegisteredUserGroup.h b/src/kvilib/ext/KviRegisteredUserGroup.h index 67987665d..b7865eabc 100644 --- a/src/kvilib/ext/KviRegisteredUserGroup.h +++ b/src/kvilib/ext/KviRegisteredUserGroup.h @@ -35,14 +35,17 @@ class KVILIB_API KviRegisteredUserGroup : public KviHeapObject { friend class KviRegisteredUserDataBase; + public: KviRegisteredUserGroup(const QString & szName); ~KviRegisteredUserGroup(); + private: QString m_szName; + public: void setName(const QString & szName) { m_szName = szName; }; - const QString & name(){ return m_szName; }; + const QString & name() { return m_szName; }; }; #endif // _KVIREGUSERGROUP_H_ diff --git a/src/kvilib/ext/KviRegisteredUserMask.h b/src/kvilib/ext/KviRegisteredUserMask.h index 5f811d52a..0fb7904db 100644 --- a/src/kvilib/ext/KviRegisteredUserMask.h +++ b/src/kvilib/ext/KviRegisteredUserMask.h @@ -34,16 +34,18 @@ class KVILIB_API KviRegisteredUserMask { private: - KviRegisteredUser * m_pUser; // pointer, not owned! - KviIrcMask * m_pMask; // pointer, not owned! - int m_iMaskNonWildChars; + KviRegisteredUser * m_pUser; // pointer, not owned! + KviIrcMask * m_pMask; // pointer, not owned! + int m_iMaskNonWildChars; + public: KviRegisteredUserMask(KviRegisteredUser * pUser, KviIrcMask * pMask); ~KviRegisteredUserMask(){}; + public: - int nonWildChars(){ return m_iMaskNonWildChars; }; - KviRegisteredUser * user(){ return m_pUser; }; - KviIrcMask * mask(){ return m_pMask; }; + int nonWildChars() { return m_iMaskNonWildChars; }; + KviRegisteredUser * user() { return m_pUser; }; + KviIrcMask * mask() { return m_pMask; }; }; typedef KviPointerList KviRegisteredUserMaskList; diff --git a/src/kvilib/ext/KviRuntimeInfo.cpp b/src/kvilib/ext/KviRuntimeInfo.cpp index e10668d62..2cfa1eb74 100644 --- a/src/kvilib/ext/KviRuntimeInfo.cpp +++ b/src/kvilib/ext/KviRuntimeInfo.cpp @@ -22,7 +22,6 @@ // //============================================================================= - #include "KviRuntimeInfo.h" #include "KviLocale.h" #include "KviQString.h" @@ -31,9 +30,9 @@ #include #if !defined(COMPILE_ON_WINDOWS) && !defined(COMPILE_ON_MINGW) - #include - #include - #include +#include +#include +#include #endif #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) @@ -46,8 +45,8 @@ typedef enum _QueryInfo Os_Type } QueryInfo; -typedef void (WINAPI *PGNSI)(LPSYSTEM_INFO); -typedef BOOL (WINAPI *PGETPRODUCTINFO)(DWORD,DWORD,DWORD,DWORD,PDWORD); +typedef void(WINAPI * PGNSI)(LPSYSTEM_INFO); +typedef BOOL(WINAPI * PGETPRODUCTINFO)(DWORD, DWORD, DWORD, DWORD, PDWORD); #define BUFSIZE 1024 @@ -211,405 +210,414 @@ static QString queryWinInfo(QueryInfo info) osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); - if( !(bOsVersionInfoEx = GetVersionEx ((OSVERSIONINFO *) &osvi)) ) + if(!(bOsVersionInfoEx = GetVersionEx((OSVERSIONINFO *)&osvi))) { - osvi.dwOSVersionInfoSize = sizeof (OSVERSIONINFO); - if (! GetVersionEx ( (OSVERSIONINFO *) &osvi) ) + osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + if(!GetVersionEx((OSVERSIONINFO *)&osvi)) return KviQString::Empty; } // Call GetNativeSystemInfo if supported or GetSystemInfo otherwise. - pGNSI = (PGNSI) GetProcAddress( - GetModuleHandle(TEXT("kernel32.dll")), - "GetNativeSystemInfo"); + pGNSI = (PGNSI)GetProcAddress( + GetModuleHandle(TEXT("kernel32.dll")), + "GetNativeSystemInfo"); if(NULL != pGNSI) pGNSI(&si); - else GetSystemInfo(&si); + else + GetSystemInfo(&si); - switch (osvi.dwPlatformId) + switch(osvi.dwPlatformId) { // Test for the Windows NT product family. - case VER_PLATFORM_WIN32_NT: - - // Test for the specific product. - if ( osvi.dwMajorVersion == 10 && osvi.dwMinorVersion == 0 ) - { - if( osvi.wProductType == VER_NT_WORKSTATION ) - szVersion+= "Windows 10 "; - else szVersion+="Windows Server 2016"; - } - - if ( osvi.dwMajorVersion == 6 && osvi.dwMinorVersion == 3 ) - { - if( osvi.wProductType == VER_NT_WORKSTATION ) - szVersion+= "Windows 8.1 "; - else szVersion+="Windows Server 2012 R2"; - } - - if ( osvi.dwMajorVersion == 6 && osvi.dwMinorVersion == 2 ) - { - if( osvi.wProductType == VER_NT_WORKSTATION ) - szVersion+= "Windows 8 "; - else szVersion+="Windows Server 2012 "; - } - - if ( osvi.dwMajorVersion == 6 && osvi.dwMinorVersion == 1 ) - { - if( osvi.wProductType == VER_NT_WORKSTATION ) - szVersion+= "Windows 7 "; - else szVersion+="Windows Server 2008 R2 "; - } - - if ( osvi.dwMajorVersion == 6 && osvi.dwMinorVersion == 0 ) - { - if( osvi.wProductType == VER_NT_WORKSTATION ) - szVersion+= "Windows Vista "; - else szVersion+="Windows Server 2008 "; - } - - if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 2 ) - { - if( GetSystemMetrics(SM_SERVERR2) ) - szVersion+="Windows Server 2003 \"R2\" "; - else if( osvi.wProductType == VER_NT_WORKSTATION && - si.wProcessorArchitecture==PROCESSOR_ARCHITECTURE_AMD64) + case VER_PLATFORM_WIN32_NT: + + // Test for the specific product. + if(osvi.dwMajorVersion == 10 && osvi.dwMinorVersion == 0) + { + if(osvi.wProductType == VER_NT_WORKSTATION) + szVersion += "Windows 10 "; + else + szVersion += "Windows Server 2016"; + } + + if(osvi.dwMajorVersion == 6 && osvi.dwMinorVersion == 3) + { + if(osvi.wProductType == VER_NT_WORKSTATION) + szVersion += "Windows 8.1 "; + else + szVersion += "Windows Server 2012 R2"; + } + + if(osvi.dwMajorVersion == 6 && osvi.dwMinorVersion == 2) + { + if(osvi.wProductType == VER_NT_WORKSTATION) + szVersion += "Windows 8 "; + else + szVersion += "Windows Server 2012 "; + } + + if(osvi.dwMajorVersion == 6 && osvi.dwMinorVersion == 1) + { + if(osvi.wProductType == VER_NT_WORKSTATION) + szVersion += "Windows 7 "; + else + szVersion += "Windows Server 2008 R2 "; + } + + if(osvi.dwMajorVersion == 6 && osvi.dwMinorVersion == 0) { - szVersion+="Windows XP Professional x64 "; + if(osvi.wProductType == VER_NT_WORKSTATION) + szVersion += "Windows Vista "; + else + szVersion += "Windows Server 2008 "; } - else szVersion+="Windows Server 2003, "; - } - - if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 1 ) - szVersion+="Windows XP "; - - PGETPRODUCTINFO pGetProductInfo; - pGetProductInfo = (PGETPRODUCTINFO) GetProcAddress( - GetModuleHandle(TEXT("kernel32.dll")), "GetProductInfo"); - // from MSDN, Document Date 9/7/2012 - // http://msdn.microsoft.com/en-us/library/windows/desktop/ms724358 - // the entire PRODUCT_CORE group has the base Windows version in the - // returned value. rip out "Windows" of all PRODUCT values as well - if( bOsVersionInfoEx ) - { - DWORD dwPlatformInfo; - if(NULL != pGetProductInfo) - if(pGetProductInfo(osvi.dwMajorVersion,osvi.dwMinorVersion, - osvi.wServicePackMajor,osvi.wServicePackMinor,&dwPlatformInfo)) + + if(osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 2) + { + if(GetSystemMetrics(SM_SERVERR2)) + szVersion += "Windows Server 2003 \"R2\" "; + else if(osvi.wProductType == VER_NT_WORKSTATION && si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64) { - switch(dwPlatformInfo) - { - case PRODUCT_BUSINESS: - szVersion+="Business"; - break; - case PRODUCT_BUSINESS_N: - szVersion+="Business N"; - break; - case PRODUCT_CLUSTER_SERVER: - szVersion+="HPC Edition"; - break; - case PRODUCT_CLUSTER_SERVER_V: - szVersion+="Server Hyper Core V"; - break; - case PRODUCT_CORE: - //szVersion+="Windows 8"; - break; - case PRODUCT_CORE_N: - szVersion+="N"; - break; - case PRODUCT_CORE_COUNTRYSPECIFIC: - szVersion+="China"; - break; - case PRODUCT_CORE_SINGLELANGUAGE: - szVersion+="Single Language"; - break; - case PRODUCT_DATACENTER_EVALUATION_SERVER: - szVersion+="Server Datacenter (evaluation installation)"; - break; - case PRODUCT_DATACENTER_SERVER: - szVersion+="Server Datacenter (full installation)"; - break; - case PRODUCT_DATACENTER_SERVER_CORE: - szVersion+="Server Datacenter (core installation)"; - break; - case PRODUCT_DATACENTER_SERVER_CORE_V: - szVersion+="Server Datacenter without Hyper-V (core installation)"; - break; - case PRODUCT_DATACENTER_SERVER_V: - szVersion+="Server Datacenter without Hyper-V (full installation)"; - break; - case PRODUCT_ENTERPRISE: - szVersion+="Enterprise"; - break; - case PRODUCT_ENTERPRISE_E: - //szVersion+="Not supported"; - break; - case PRODUCT_ENTERPRISE_N_EVALUATION: - szVersion+="Enterprise N (evaluation installation)"; - break; - case PRODUCT_ENTERPRISE_N: - szVersion+="Enterprise N"; - break; - case PRODUCT_ENTERPRISE_EVALUATION: - szVersion+="Server Enterprise (evaluation installation)"; - break; - case PRODUCT_ENTERPRISE_SERVER: - szVersion+="Server Enterprise (full installation)"; - break; - case PRODUCT_ENTERPRISE_SERVER_CORE: - szVersion+="Server Enterprise (core installation)"; - break; - case PRODUCT_ENTERPRISE_SERVER_CORE_V: - szVersion+="Server Enterprise without Hyper-V (core installation)"; - break; - case PRODUCT_ENTERPRISE_SERVER_IA64: - szVersion+="Server Enterprise for Itanium-based Systems"; - break; - case PRODUCT_ENTERPRISE_SERVER_V: - szVersion+="Server Enterprise without Hyper-V (full installation)"; - break; - case PRODUCT_ESSENTIALBUSINESS_SERVER_MGMT: - szVersion+="Essential Server Solution Management"; - break; - case PRODUCT_ESSENTIALBUSINESS_SERVER_ADDL: - szVersion+="Essential Server Solution Additional"; - break; - case PRODUCT_ESSENTIALBUSINESS_SERVER_MGMTSVC: - szVersion+="Essential Server Solution Management SVC"; - break; - case PRODUCT_ESSENTIALBUSINESS_SERVER_ADDLSVC: - szVersion+="Essential Server Solution Additional SVC"; - break; - case PRODUCT_HOME_BASIC: - szVersion+="Home Basic"; - break; - case PRODUCT_HOME_BASIC_E: - //szVersion+="Not supported"; - break; - case PRODUCT_HOME_BASIC_N: - szVersion+="Home Basic N"; - break; - case PRODUCT_HOME_PREMIUM: - szVersion+="Home Premium"; - break; - case PRODUCT_HOME_PREMIUM_E: - //szVersion+="Not supported"; - break; - case PRODUCT_HOME_PREMIUM_N: - szVersion+="Home Premium N"; - break; - case PRODUCT_HOME_PREMIUM_SERVER: - szVersion+="Home Server 2011"; - break; - case PRODUCT_HOME_SERVER: - szVersion+="Storage Server 2008 R2 Essentials"; - break; - case PRODUCT_HYPERV: - szVersion+="Hyper-V Server"; - break; - case PRODUCT_MEDIUMBUSINESS_SERVER_MANAGEMENT: - szVersion+="Essential Business Server Management Server"; - break; - case PRODUCT_MEDIUMBUSINESS_SERVER_MESSAGING: - szVersion+="Essential Business Server Messaging Server"; - break; - case PRODUCT_MEDIUMBUSINESS_SERVER_SECURITY: - szVersion+="Essential Business Server Security Server"; - break; - case PRODUCT_MULTIPOINT_STANDARD_SERVER: - szVersion+="MultiPoint Server Standard (full installation)"; - break; - case PRODUCT_MULTIPOINT_PREMIUM_SERVER: - szVersion+="MultiPoint Server Premium (full installation)"; - break; - case PRODUCT_PROFESSIONAL: - szVersion+="Professional"; - break; - case PRODUCT_PROFESSIONAL_E: - //szVersion+="Not supported"; - break; - case PRODUCT_PROFESSIONAL_N: - szVersion+="Professional N"; - break; - case PRODUCT_PROFESSIONAL_WMC: - szVersion+="Professional with Media Center"; - break; - case PRODUCT_SB_SOLUTION_SERVER_EM: - szVersion+="Server For SB Solutions EM"; - break; - case PRODUCT_SERVER_FOR_SB_SOLUTIONS: - szVersion+="Server For SB Solutions"; - break; - case PRODUCT_SERVER_FOR_SB_SOLUTIONS_EM: - szVersion+="Server For SB Solutions EM"; - break; - case PRODUCT_SERVER_FOR_SMALLBUSINESS: - szVersion+="Server 2008 for Windows Essential Server Solutions"; - break; - case PRODUCT_SERVER_FOR_SMALLBUSINESS_V: - szVersion+="Server 2008 without Hyper-V for Windows Essential Server Solutions"; - break; - case PRODUCT_SERVER_FOUNDATION: - szVersion+="Server Foundation"; - break; - case PRODUCT_SB_SOLUTION_SERVER: - szVersion+="Small Business Server 2011 Essentials"; - break; - case PRODUCT_SMALLBUSINESS_SERVER: - szVersion+="Small Business Server"; - break; - case PRODUCT_SMALLBUSINESS_SERVER_PREMIUM: - szVersion+="Small Business Server Premium"; - break; - case PRODUCT_SMALLBUSINESS_SERVER_PREMIUM_CORE: - szVersion+="Small Business Server Premium (core installation)"; - break; - case PRODUCT_SOLUTION_EMBEDDEDSERVER: - szVersion+="MultiPoint Server"; - break; - case PRODUCT_STANDARD_EVALUATION_SERVER: - szVersion+="Server Standard (evaluation installation)"; - break; - case PRODUCT_STANDARD_SERVER: - szVersion+="Server Standard"; - break; - case PRODUCT_STANDARD_SERVER_CORE: - szVersion+="Server Standard (core installation)"; - break; - case PRODUCT_STANDARD_SERVER_V: - szVersion+="Server Standard without Hyper-V"; - break; - case PRODUCT_STANDARD_SERVER_CORE_V: - szVersion+="Server Standard without Hyper-V (core installation)"; - break; - case PRODUCT_STANDARD_SERVER_SOLUTIONS: - szVersion+="Server Solutions Premium"; - break; - case PRODUCT_STANDARD_SERVER_SOLUTIONS_CORE: - szVersion+="Server Solutions Premium (core installation)"; - break; - case PRODUCT_STARTER: - szVersion+="Starter"; - break; - case PRODUCT_STARTER_E: - //szVersion+="Not supported"; - break; - case PRODUCT_STARTER_N: - szVersion+="Starter N"; - break; - case PRODUCT_STORAGE_ENTERPRISE_SERVER: - szVersion+="Storage Server Enterprise"; - break; - case PRODUCT_STORAGE_ENTERPRISE_SERVER_CORE: - szVersion+="Storage Server Enterprise (core installation)"; - break; - case PRODUCT_STORAGE_EXPRESS_SERVER: - szVersion+="Storage Server Express"; - break; - case PRODUCT_STORAGE_EXPRESS_SERVER_CORE: - szVersion+="Storage Server Express (core installation)"; - break; - case PRODUCT_STORAGE_STANDARD_EVALUATION_SERVER: - szVersion+="Storage Server Standard (evaluation installation)"; - break; - case PRODUCT_STORAGE_STANDARD_SERVER: - szVersion+="Storage Server Standard"; - break; - case PRODUCT_STORAGE_STANDARD_SERVER_CORE: - szVersion+="Storage Server Standard (core installation)"; - break; - case PRODUCT_STORAGE_WORKGROUP_EVALUATION_SERVER: - szVersion+="Storage Server Workgroup (evaluation installation)"; - break; - case PRODUCT_STORAGE_WORKGROUP_SERVER: - szVersion+="Storage Server Workgroup"; - break; - case PRODUCT_STORAGE_WORKGROUP_SERVER_CORE: - szVersion+="Storage Server Workgroup (core installation)"; - break; - case PRODUCT_UNDEFINED: - szVersion+="An unknown product"; - break; - // just use unknown here since we do not care. - case PRODUCT_UNLICENSED: - szVersion+="An unknown product"; - break; - case PRODUCT_ULTIMATE: - szVersion+="Ultimate"; - break; - case PRODUCT_ULTIMATE_E: - //szVersion+="Not supported"; - break; - case PRODUCT_ULTIMATE_N: - szVersion+="Ultimate N"; - break; - case PRODUCT_WEB_SERVER: - szVersion+="Web Server (full installation)"; - break; - case PRODUCT_WEB_SERVER_CORE: - szVersion+="Web Server (core installation)"; - break; + szVersion += "Windows XP Professional x64 "; + } + else + szVersion += "Windows Server 2003, "; + } - } - szVersion+=" "; - if (si.wProcessorArchitecture==PROCESSOR_ARCHITECTURE_AMD64) - { - szVersion+="(x64) "; - } - } else { - // Test for the workstation type, for XP 32 bit - if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 1 ) + if(osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 1) + szVersion += "Windows XP "; + + PGETPRODUCTINFO pGetProductInfo; + pGetProductInfo = (PGETPRODUCTINFO)GetProcAddress( + GetModuleHandle(TEXT("kernel32.dll")), "GetProductInfo"); + // from MSDN, Document Date 9/7/2012 + // http://msdn.microsoft.com/en-us/library/windows/desktop/ms724358 + // the entire PRODUCT_CORE group has the base Windows version in the + // returned value. rip out "Windows" of all PRODUCT values as well + if(bOsVersionInfoEx) + { + DWORD dwPlatformInfo; + if(NULL != pGetProductInfo) + if(pGetProductInfo(osvi.dwMajorVersion, osvi.dwMinorVersion, + osvi.wServicePackMajor, osvi.wServicePackMinor, &dwPlatformInfo)) { - if ( osvi.wProductType == VER_NT_WORKSTATION ) + switch(dwPlatformInfo) { - if( osvi.wSuiteMask & VER_SUITE_PERSONAL ) - szVersion+= "Home Edition " ; - else szVersion+= "Professional " ; + case PRODUCT_BUSINESS: + szVersion += "Business"; + break; + case PRODUCT_BUSINESS_N: + szVersion += "Business N"; + break; + case PRODUCT_CLUSTER_SERVER: + szVersion += "HPC Edition"; + break; + case PRODUCT_CLUSTER_SERVER_V: + szVersion += "Server Hyper Core V"; + break; + case PRODUCT_CORE: + //szVersion+="Windows 8"; + break; + case PRODUCT_CORE_N: + szVersion += "N"; + break; + case PRODUCT_CORE_COUNTRYSPECIFIC: + szVersion += "China"; + break; + case PRODUCT_CORE_SINGLELANGUAGE: + szVersion += "Single Language"; + break; + case PRODUCT_DATACENTER_EVALUATION_SERVER: + szVersion += "Server Datacenter (evaluation installation)"; + break; + case PRODUCT_DATACENTER_SERVER: + szVersion += "Server Datacenter (full installation)"; + break; + case PRODUCT_DATACENTER_SERVER_CORE: + szVersion += "Server Datacenter (core installation)"; + break; + case PRODUCT_DATACENTER_SERVER_CORE_V: + szVersion += "Server Datacenter without Hyper-V (core installation)"; + break; + case PRODUCT_DATACENTER_SERVER_V: + szVersion += "Server Datacenter without Hyper-V (full installation)"; + break; + case PRODUCT_ENTERPRISE: + szVersion += "Enterprise"; + break; + case PRODUCT_ENTERPRISE_E: + //szVersion+="Not supported"; + break; + case PRODUCT_ENTERPRISE_N_EVALUATION: + szVersion += "Enterprise N (evaluation installation)"; + break; + case PRODUCT_ENTERPRISE_N: + szVersion += "Enterprise N"; + break; + case PRODUCT_ENTERPRISE_EVALUATION: + szVersion += "Server Enterprise (evaluation installation)"; + break; + case PRODUCT_ENTERPRISE_SERVER: + szVersion += "Server Enterprise (full installation)"; + break; + case PRODUCT_ENTERPRISE_SERVER_CORE: + szVersion += "Server Enterprise (core installation)"; + break; + case PRODUCT_ENTERPRISE_SERVER_CORE_V: + szVersion += "Server Enterprise without Hyper-V (core installation)"; + break; + case PRODUCT_ENTERPRISE_SERVER_IA64: + szVersion += "Server Enterprise for Itanium-based Systems"; + break; + case PRODUCT_ENTERPRISE_SERVER_V: + szVersion += "Server Enterprise without Hyper-V (full installation)"; + break; + case PRODUCT_ESSENTIALBUSINESS_SERVER_MGMT: + szVersion += "Essential Server Solution Management"; + break; + case PRODUCT_ESSENTIALBUSINESS_SERVER_ADDL: + szVersion += "Essential Server Solution Additional"; + break; + case PRODUCT_ESSENTIALBUSINESS_SERVER_MGMTSVC: + szVersion += "Essential Server Solution Management SVC"; + break; + case PRODUCT_ESSENTIALBUSINESS_SERVER_ADDLSVC: + szVersion += "Essential Server Solution Additional SVC"; + break; + case PRODUCT_HOME_BASIC: + szVersion += "Home Basic"; + break; + case PRODUCT_HOME_BASIC_E: + //szVersion+="Not supported"; + break; + case PRODUCT_HOME_BASIC_N: + szVersion += "Home Basic N"; + break; + case PRODUCT_HOME_PREMIUM: + szVersion += "Home Premium"; + break; + case PRODUCT_HOME_PREMIUM_E: + //szVersion+="Not supported"; + break; + case PRODUCT_HOME_PREMIUM_N: + szVersion += "Home Premium N"; + break; + case PRODUCT_HOME_PREMIUM_SERVER: + szVersion += "Home Server 2011"; + break; + case PRODUCT_HOME_SERVER: + szVersion += "Storage Server 2008 R2 Essentials"; + break; + case PRODUCT_HYPERV: + szVersion += "Hyper-V Server"; + break; + case PRODUCT_MEDIUMBUSINESS_SERVER_MANAGEMENT: + szVersion += "Essential Business Server Management Server"; + break; + case PRODUCT_MEDIUMBUSINESS_SERVER_MESSAGING: + szVersion += "Essential Business Server Messaging Server"; + break; + case PRODUCT_MEDIUMBUSINESS_SERVER_SECURITY: + szVersion += "Essential Business Server Security Server"; + break; + case PRODUCT_MULTIPOINT_STANDARD_SERVER: + szVersion += "MultiPoint Server Standard (full installation)"; + break; + case PRODUCT_MULTIPOINT_PREMIUM_SERVER: + szVersion += "MultiPoint Server Premium (full installation)"; + break; + case PRODUCT_PROFESSIONAL: + szVersion += "Professional"; + break; + case PRODUCT_PROFESSIONAL_E: + //szVersion+="Not supported"; + break; + case PRODUCT_PROFESSIONAL_N: + szVersion += "Professional N"; + break; + case PRODUCT_PROFESSIONAL_WMC: + szVersion += "Professional with Media Center"; + break; + case PRODUCT_SB_SOLUTION_SERVER_EM: + szVersion += "Server For SB Solutions EM"; + break; + case PRODUCT_SERVER_FOR_SB_SOLUTIONS: + szVersion += "Server For SB Solutions"; + break; + case PRODUCT_SERVER_FOR_SB_SOLUTIONS_EM: + szVersion += "Server For SB Solutions EM"; + break; + case PRODUCT_SERVER_FOR_SMALLBUSINESS: + szVersion += "Server 2008 for Windows Essential Server Solutions"; + break; + case PRODUCT_SERVER_FOR_SMALLBUSINESS_V: + szVersion += "Server 2008 without Hyper-V for Windows Essential Server Solutions"; + break; + case PRODUCT_SERVER_FOUNDATION: + szVersion += "Server Foundation"; + break; + case PRODUCT_SB_SOLUTION_SERVER: + szVersion += "Small Business Server 2011 Essentials"; + break; + case PRODUCT_SMALLBUSINESS_SERVER: + szVersion += "Small Business Server"; + break; + case PRODUCT_SMALLBUSINESS_SERVER_PREMIUM: + szVersion += "Small Business Server Premium"; + break; + case PRODUCT_SMALLBUSINESS_SERVER_PREMIUM_CORE: + szVersion += "Small Business Server Premium (core installation)"; + break; + case PRODUCT_SOLUTION_EMBEDDEDSERVER: + szVersion += "MultiPoint Server"; + break; + case PRODUCT_STANDARD_EVALUATION_SERVER: + szVersion += "Server Standard (evaluation installation)"; + break; + case PRODUCT_STANDARD_SERVER: + szVersion += "Server Standard"; + break; + case PRODUCT_STANDARD_SERVER_CORE: + szVersion += "Server Standard (core installation)"; + break; + case PRODUCT_STANDARD_SERVER_V: + szVersion += "Server Standard without Hyper-V"; + break; + case PRODUCT_STANDARD_SERVER_CORE_V: + szVersion += "Server Standard without Hyper-V (core installation)"; + break; + case PRODUCT_STANDARD_SERVER_SOLUTIONS: + szVersion += "Server Solutions Premium"; + break; + case PRODUCT_STANDARD_SERVER_SOLUTIONS_CORE: + szVersion += "Server Solutions Premium (core installation)"; + break; + case PRODUCT_STARTER: + szVersion += "Starter"; + break; + case PRODUCT_STARTER_E: + //szVersion+="Not supported"; + break; + case PRODUCT_STARTER_N: + szVersion += "Starter N"; + break; + case PRODUCT_STORAGE_ENTERPRISE_SERVER: + szVersion += "Storage Server Enterprise"; + break; + case PRODUCT_STORAGE_ENTERPRISE_SERVER_CORE: + szVersion += "Storage Server Enterprise (core installation)"; + break; + case PRODUCT_STORAGE_EXPRESS_SERVER: + szVersion += "Storage Server Express"; + break; + case PRODUCT_STORAGE_EXPRESS_SERVER_CORE: + szVersion += "Storage Server Express (core installation)"; + break; + case PRODUCT_STORAGE_STANDARD_EVALUATION_SERVER: + szVersion += "Storage Server Standard (evaluation installation)"; + break; + case PRODUCT_STORAGE_STANDARD_SERVER: + szVersion += "Storage Server Standard"; + break; + case PRODUCT_STORAGE_STANDARD_SERVER_CORE: + szVersion += "Storage Server Standard (core installation)"; + break; + case PRODUCT_STORAGE_WORKGROUP_EVALUATION_SERVER: + szVersion += "Storage Server Workgroup (evaluation installation)"; + break; + case PRODUCT_STORAGE_WORKGROUP_SERVER: + szVersion += "Storage Server Workgroup"; + break; + case PRODUCT_STORAGE_WORKGROUP_SERVER_CORE: + szVersion += "Storage Server Workgroup (core installation)"; + break; + case PRODUCT_UNDEFINED: + szVersion += "An unknown product"; + break; + // just use unknown here since we do not care. + case PRODUCT_UNLICENSED: + szVersion += "An unknown product"; + break; + case PRODUCT_ULTIMATE: + szVersion += "Ultimate"; + break; + case PRODUCT_ULTIMATE_E: + //szVersion+="Not supported"; + break; + case PRODUCT_ULTIMATE_N: + szVersion += "Ultimate N"; + break; + case PRODUCT_WEB_SERVER: + szVersion += "Web Server (full installation)"; + break; + case PRODUCT_WEB_SERVER_CORE: + szVersion += "Web Server (core installation)"; + break; + } + szVersion += " "; + if(si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64) + { + szVersion += "(x64) "; } } - - // Test for the server type. - else if ( osvi.wProductType == VER_NT_SERVER || - osvi.wProductType == VER_NT_DOMAIN_CONTROLLER ) + else { - if(osvi.dwMajorVersion==5 && osvi.dwMinorVersion==2) + // Test for the workstation type, for XP 32 bit + if(osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 1) { - if ( si.wProcessorArchitecture==PROCESSOR_ARCHITECTURE_IA64 ) - { - if( osvi.wSuiteMask & VER_SUITE_DATACENTER ) - szVersion+= "Datacenter Edition for Itanium-based Systems" ; - else if( osvi.wSuiteMask & VER_SUITE_ENTERPRISE ) - szVersion+= "Enterprise Edition for Itanium-based Systems" ; - } - - else if ( si.wProcessorArchitecture==PROCESSOR_ARCHITECTURE_AMD64 ) + if(osvi.wProductType == VER_NT_WORKSTATION) { - if( osvi.wSuiteMask & VER_SUITE_DATACENTER ) - szVersion+= "Datacenter x64 Edition " ; - else if( osvi.wSuiteMask & VER_SUITE_ENTERPRISE ) - szVersion+= "Enterprise x64 Edition " ; - else szVersion+= "Standard x64 Edition " ; + if(osvi.wSuiteMask & VER_SUITE_PERSONAL) + szVersion += "Home Edition "; + else + szVersion += "Professional "; } + } - else + // Test for the server type. + else if(osvi.wProductType == VER_NT_SERVER || osvi.wProductType == VER_NT_DOMAIN_CONTROLLER) + { + if(osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 2) { - if( osvi.wSuiteMask & VER_SUITE_DATACENTER ) - szVersion+= "Datacenter Edition " ; - else if( osvi.wSuiteMask & VER_SUITE_ENTERPRISE ) - szVersion+= "Enterprise Edition " ; - else if ( osvi.wSuiteMask == VER_SUITE_BLADE ) - szVersion+= "Web Edition " ; - else szVersion+= "Standard Edition " ; + if(si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_IA64) + { + if(osvi.wSuiteMask & VER_SUITE_DATACENTER) + szVersion += "Datacenter Edition for Itanium-based Systems"; + else if(osvi.wSuiteMask & VER_SUITE_ENTERPRISE) + szVersion += "Enterprise Edition for Itanium-based Systems"; + } + + else if(si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64) + { + if(osvi.wSuiteMask & VER_SUITE_DATACENTER) + szVersion += "Datacenter x64 Edition "; + else if(osvi.wSuiteMask & VER_SUITE_ENTERPRISE) + szVersion += "Enterprise x64 Edition "; + else + szVersion += "Standard x64 Edition "; + } + + else + { + if(osvi.wSuiteMask & VER_SUITE_DATACENTER) + szVersion += "Datacenter Edition "; + else if(osvi.wSuiteMask & VER_SUITE_ENTERPRISE) + szVersion += "Enterprise Edition "; + else if(osvi.wSuiteMask == VER_SUITE_BLADE) + szVersion += "Web Edition "; + else + szVersion += "Standard Edition "; + } } } } - } - } - // Display service pack (if any) and build number. - szVersion+= QString( "%1 (Build %2)").arg( osvi.szCSDVersion ).arg(osvi.dwBuildNumber & 0xFFFF); + } + // Display service pack (if any) and build number. + szVersion += QString("%1 (Build %2)").arg(osvi.szCSDVersion).arg(osvi.dwBuildNumber & 0xFFFF); } - if(info==Os_Release) + if(info == Os_Release) { unsigned long major = osvi.dwMajorVersion; unsigned long minor = osvi.dwMinorVersion; @@ -618,15 +626,16 @@ static QString queryWinInfo(QueryInfo info) szMajor.setNum(major); szMinor.setNum(minor); szRelease.setNum(release); - szVersion = "Release : "+szMajor +"."+ szMinor +"."+ szRelease; + szVersion = "Release : " + szMajor + "." + szMinor + "." + szRelease; return szVersion; } - if(info==Os_Type) + if(info == Os_Type) { - if(osvi.dwPlatformId == VER_PLATFORM_WIN32_NT) return " NT "; + if(osvi.dwPlatformId == VER_PLATFORM_WIN32_NT) + return " NT "; return __tr2qs("Unknown "); } - if(info==Os_Version) + if(info == Os_Version) { return szVersion; } @@ -635,7 +644,6 @@ static QString queryWinInfo(QueryInfo info) } #endif - namespace KviRuntimeInfo { QString type() @@ -652,14 +660,14 @@ namespace KviRuntimeInfo #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) return "Windows"; #else - #ifdef COMPILE_ON_MAC +#ifdef COMPILE_ON_MAC return "MacOS X"; - #else +#else struct utsname uts; if(uname(&uts) == 0) return QString::fromLocal8Bit(uts.sysname); return KviQString::Empty; - #endif +#endif #endif } @@ -691,7 +699,7 @@ namespace KviRuntimeInfo { #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) QString mach = getenv("PROCESSOR_IDENTIFIER"); - return mach.section(",",0,0); + return mach.section(",", 0, 0); #else struct utsname uts; if(uname(&uts) == 0) @@ -715,7 +723,7 @@ namespace KviRuntimeInfo QString hostname() { char hbuffer[1024]; - if(gethostname(hbuffer,1024) == 0) + if(gethostname(hbuffer, 1024) == 0) return QString::fromLocal8Bit(hbuffer); else return KviQString::Empty; diff --git a/src/kvilib/ext/KviSharedFile.h b/src/kvilib/ext/KviSharedFile.h index df6e9d9ab..d4584e55e 100644 --- a/src/kvilib/ext/KviSharedFile.h +++ b/src/kvilib/ext/KviSharedFile.h @@ -40,29 +40,31 @@ class KVILIB_API KviSharedFile : public KviHeapObject public: KviSharedFile(const QString & szName, const QString & szAbsPath, const QString & szUserMask, time_t expireTime, unsigned int uFileSize); ~KviSharedFile(); + private: - QString m_szName; - QString m_szAbsFilePath; - time_t m_expireTime; - QString m_szUserMask; + QString m_szName; + QString m_szAbsFilePath; + time_t m_expireTime; + QString m_szUserMask; unsigned int m_uFileSize; unsigned int m_uWildCount; unsigned int m_uNonWildCount; + public: - const QString & name(){ return m_szName; }; + const QString & name() { return m_szName; }; - const QString & absFilePath(){ return m_szAbsFilePath; }; + const QString & absFilePath() { return m_szAbsFilePath; }; - const QString & userMask(){ return m_szUserMask; }; + const QString & userMask() { return m_szUserMask; }; - time_t expireTime(){ return m_expireTime; }; - bool expires(){ return (m_expireTime != 0); }; + time_t expireTime() { return m_expireTime; }; + bool expires() { return (m_expireTime != 0); }; - unsigned int fileSize(){ return m_uFileSize; }; + unsigned int fileSize() { return m_uFileSize; }; - unsigned int wildcardCount(){ return m_uWildCount; }; - unsigned int nonWildcardCount(){ return m_uNonWildCount; }; - int maskLength(){ return m_szUserMask.length(); }; + unsigned int wildcardCount() { return m_uWildCount; }; + unsigned int nonWildcardCount() { return m_uNonWildCount; }; + int maskLength() { return m_szUserMask.length(); }; }; typedef KviPointerList KviSharedFileList; diff --git a/src/kvilib/ext/KviSharedFilesManager.cpp b/src/kvilib/ext/KviSharedFilesManager.cpp index cd4eda9cf..67b13b458 100644 --- a/src/kvilib/ext/KviSharedFilesManager.cpp +++ b/src/kvilib/ext/KviSharedFilesManager.cpp @@ -77,24 +77,25 @@ */ KviSharedFilesManager::KviSharedFilesManager() -: QObject() + : QObject() { - m_pSharedListDict = new KviPointerHashTable(); + m_pSharedListDict = new KviPointerHashTable(); m_pSharedListDict->setAutoDelete(true); m_pCleanupTimer = new QTimer(); - connect(m_pCleanupTimer,SIGNAL(timeout()),this,SLOT(cleanup())); + connect(m_pCleanupTimer, SIGNAL(timeout()), this, SLOT(cleanup())); } KviSharedFilesManager::~KviSharedFilesManager() { - if(m_pCleanupTimer->isActive())m_pCleanupTimer->stop(); + if(m_pCleanupTimer->isActive()) + m_pCleanupTimer->stop(); delete m_pCleanupTimer; delete m_pSharedListDict; } void KviSharedFilesManager::cleanup() { - KviPointerHashTableIterator it(*m_pSharedListDict); + KviPointerHashTableIterator it(*m_pSharedListDict); time_t curTime = time(0); bool bOtherStuffToCleanup = false; @@ -107,7 +108,7 @@ void KviSharedFilesManager::cleanup() { KviPointerList tmp; tmp.setAutoDelete(false); - for(KviSharedFile * o = l->first();o;o = l->next()) + for(KviSharedFile * o = l->first(); o; o = l->next()) { if(o->expireTime() > 0) { @@ -115,12 +116,14 @@ void KviSharedFilesManager::cleanup() { tmp.append(o); //bChanged = true; - } else { + } + else + { bOtherStuffToCleanup = true; } } } - for(KviSharedFile * fo = tmp.first();fo;fo = tmp.next()) + for(KviSharedFile * fo = tmp.first(); fo; fo = tmp.next()) { l->removeRef(fo); emit sharedFileRemoved(fo); @@ -131,10 +134,11 @@ void KviSharedFilesManager::cleanup() ++it; } - for(QString * pDyingKey = lDying.first();pDyingKey;pDyingKey = lDying.next()) + for(QString * pDyingKey = lDying.first(); pDyingKey; pDyingKey = lDying.next()) m_pSharedListDict->remove(*pDyingKey); - if(!bOtherStuffToCleanup)m_pCleanupTimer->stop(); + if(!bOtherStuffToCleanup) + m_pCleanupTimer->stop(); //if(bChanged)emit sharedFilesChanged(); } @@ -147,7 +151,7 @@ void KviSharedFilesManager::clear() void KviSharedFilesManager::doInsert(KviSharedFileList * l, KviSharedFile * o) { int index = 0; - for(KviSharedFile * fo =l->first();fo;fo = l->next()) + for(KviSharedFile * fo = l->first(); fo; fo = l->next()) { if(o->wildcardCount() > 0) { @@ -159,9 +163,11 @@ void KviSharedFilesManager::doInsert(KviSharedFileList * l, KviSharedFile * o) if(fo->nonWildcardCount() < o->nonWildcardCount()) { // ok...the new one has more non-wildcards, insert - l->insert(index,o); + l->insert(index, o); return; - } else { + } + else + { if(o->nonWildcardCount() == fo->nonWildcardCount()) { // the same number of non-wildcards @@ -169,18 +175,20 @@ void KviSharedFilesManager::doInsert(KviSharedFileList * l, KviSharedFile * o) if(o->wildcardCount() < fo->wildcardCount()) { // the new one has less wildcards... goes first - l->insert(index,o); + l->insert(index, o); return; } // else the same number of wildcards and non-wildcards...skip - } // else the existing one has more non-wildcards...skip + } // else the existing one has more non-wildcards...skip } } // else the current has no wildcards...skip - } else { + } + else + { // the new mask has no wildcards.... if(fo->wildcardCount() > 0) { // current one has wildcards...insert - l->insert(index,o); + l->insert(index, o); return; } // the current one has no wildcards... @@ -188,7 +196,7 @@ void KviSharedFilesManager::doInsert(KviSharedFileList * l, KviSharedFile * o) if(fo->maskLength() < o->maskLength()) { // the current one is shorter than the new one...insert - l->insert(index,o); + l->insert(index, o); return; } // else current one is longer...skip } @@ -205,20 +213,21 @@ void KviSharedFilesManager::addSharedFile(KviSharedFile * f) { l = new KviSharedFileList; l->setAutoDelete(true); - m_pSharedListDict->replace(f->name(),l); + m_pSharedListDict->replace(f->name(), l); } - doInsert(l,f); + doInsert(l, f); if(((int)f->expireTime()) > 0) { - if(!m_pCleanupTimer->isActive())m_pCleanupTimer->start(60000); + if(!m_pCleanupTimer->isActive()) + m_pCleanupTimer->start(60000); } emit sharedFileAdded(f); } -KviSharedFile * KviSharedFilesManager::addSharedFile(const QString &szName,const QString &szAbsPath,const QString &szMask,int timeoutInSecs) +KviSharedFile * KviSharedFilesManager::addSharedFile(const QString & szName, const QString & szAbsPath, const QString & szMask, int timeoutInSecs) { QFileInfo inf(szAbsPath); if(inf.exists() && inf.isFile() && inf.isReadable() && (inf.size() > 0)) @@ -229,66 +238,77 @@ KviSharedFile * KviSharedFilesManager::addSharedFile(const QString &szName,const { l = new KviSharedFileList; l->setAutoDelete(true); - m_pSharedListDict->replace(szName,l); + m_pSharedListDict->replace(szName, l); } // Now insert - KviSharedFile * o = new KviSharedFile(szName,szAbsPath,szMask,timeoutInSecs > 0 ? (((int)(time(0))) + timeoutInSecs) : 0,inf.size()); + KviSharedFile * o = new KviSharedFile(szName, szAbsPath, szMask, timeoutInSecs > 0 ? (((int)(time(0))) + timeoutInSecs) : 0, inf.size()); - doInsert(l,o); + doInsert(l, o); if(((int)o->expireTime()) > 0) { - if(!m_pCleanupTimer->isActive())m_pCleanupTimer->start(60000); + if(!m_pCleanupTimer->isActive()) + m_pCleanupTimer->start(60000); } emit sharedFileAdded(o); return o; - } else { - qDebug("File %s unreadable: can't add offer",szAbsPath.toUtf8().data()); + } + else + { + qDebug("File %s unreadable: can't add offer", szAbsPath.toUtf8().data()); return 0; } } -KviSharedFile * KviSharedFilesManager::lookupSharedFile(const QString &szName,KviIrcMask * mask,unsigned int uFileSize) +KviSharedFile * KviSharedFilesManager::lookupSharedFile(const QString & szName, KviIrcMask * mask, unsigned int uFileSize) { KviSharedFileList * l = m_pSharedListDict->find(szName); - if(!l)return 0; + if(!l) + return 0; - for(KviSharedFile * o = l->first();o;o = l->next()) + for(KviSharedFile * o = l->first(); o; o = l->next()) { bool bMatch; if(mask) { KviIrcMask umask(o->userMask()); bMatch = mask->matchedBy(umask); - } else bMatch = KviQString::equalCS(o->userMask(),"*!*@*"); + } + else + bMatch = KviQString::equalCS(o->userMask(), "*!*@*"); if(bMatch) { if(uFileSize > 0) { - if(uFileSize == o->fileSize())return o; - } else return o; + if(uFileSize == o->fileSize()) + return o; + } + else + return o; } } return 0; } -bool KviSharedFilesManager::removeSharedFile(const QString &szName,const QString &szMask,unsigned int uFileSize) +bool KviSharedFilesManager::removeSharedFile(const QString & szName, const QString & szMask, unsigned int uFileSize) { KviSharedFileList * l = m_pSharedListDict->find(szName); - if(!l)return false; - for(KviSharedFile * o = l->first();o;o = l->next()) + if(!l) + return false; + for(KviSharedFile * o = l->first(); o; o = l->next()) { - if(KviQString::equalCI(szMask,o->userMask())) + if(KviQString::equalCI(szMask, o->userMask())) { bool bMatch = uFileSize > 0 ? uFileSize == o->fileSize() : true; if(bMatch) { QString save = szName; // <-- szName MAY Be a pointer to o->name() l->removeRef(o); - if(l->count() == 0)m_pSharedListDict->remove(save); + if(l->count() == 0) + m_pSharedListDict->remove(save); emit sharedFileRemoved(o); return true; } @@ -297,17 +317,19 @@ bool KviSharedFilesManager::removeSharedFile(const QString &szName,const QString return false; } -bool KviSharedFilesManager::removeSharedFile(const QString &szName,KviSharedFile * off) +bool KviSharedFilesManager::removeSharedFile(const QString & szName, KviSharedFile * off) { KviSharedFileList * l = m_pSharedListDict->find(szName); - if(!l)return false; - for(KviSharedFile * o = l->first();o;o = l->next()) + if(!l) + return false; + for(KviSharedFile * o = l->first(); o; o = l->next()) { if(off == o) { QString save = szName; // <-- szName MAY Be a pointer to o->name() l->removeRef(o); - if(l->count() == 0)m_pSharedListDict->remove(save); + if(l->count() == 0) + m_pSharedListDict->remove(save); emit sharedFileRemoved(off); return true; } @@ -315,33 +337,32 @@ bool KviSharedFilesManager::removeSharedFile(const QString &szName,KviSharedFile return false; } - void KviSharedFilesManager::load(const QString & szFilename) { - KviConfigurationFile cfg(szFilename,KviConfigurationFile::Read); + KviConfigurationFile cfg(szFilename, KviConfigurationFile::Read); cfg.setGroup("PermanentFileOffers"); - int iNum = cfg.readIntEntry("NEntries",0); - for(int i=0; i < iNum; i++) + int iNum = cfg.readIntEntry("NEntries", 0); + for(int i = 0; i < iNum; i++) { QString szTmp; szTmp = QString("%1FName").arg(i); - QString szName = cfg.readEntry(szTmp,""); + QString szName = cfg.readEntry(szTmp, ""); szTmp = QString("%1FilePath").arg(i); - QString szPath = cfg.readEntry(szTmp,""); + QString szPath = cfg.readEntry(szTmp, ""); szTmp = QString("%1UserMask").arg(i); - QString szMask = cfg.readEntry(szTmp,""); + QString szMask = cfg.readEntry(szTmp, ""); if(!szMask.isEmpty() && !szPath.isEmpty() && !szName.isEmpty()) - addSharedFile(szName,szPath,szMask,0); + addSharedFile(szName, szPath, szMask, 0); } } void KviSharedFilesManager::save(const QString & szFilename) { - KviConfigurationFile cfg(szFilename,KviConfigurationFile::Write); + KviConfigurationFile cfg(szFilename, KviConfigurationFile::Write); cfg.clear(); cfg.setGroup("PermanentFileOffers"); - KviPointerHashTableIterator it(*m_pSharedListDict); + KviPointerHashTableIterator it(*m_pSharedListDict); int i = 0; while(KviSharedFileList * pList = it.current()) { @@ -351,15 +372,15 @@ void KviSharedFilesManager::save(const QString & szFilename) { QString szTmp; szTmp = QString("%1FName").arg(i); - cfg.writeEntry(szTmp,it.currentKey()); + cfg.writeEntry(szTmp, it.currentKey()); szTmp = QString("%1FilePath").arg(i); - cfg.writeEntry(szTmp,pFile->absFilePath()); + cfg.writeEntry(szTmp, pFile->absFilePath()); szTmp = QString("%1UserMask").arg(i); - cfg.writeEntry(szTmp,pFile->userMask()); + cfg.writeEntry(szTmp, pFile->userMask()); ++i; } } ++it; } - cfg.writeEntry("NEntries",i); + cfg.writeEntry("NEntries", i); } diff --git a/src/kvilib/ext/KviSharedFilesManager.h b/src/kvilib/ext/KviSharedFilesManager.h index 48d6892c8..f1a07cedc 100644 --- a/src/kvilib/ext/KviSharedFilesManager.h +++ b/src/kvilib/ext/KviSharedFilesManager.h @@ -38,19 +38,21 @@ class KVILIB_API KviSharedFilesManager : public QObject public: KviSharedFilesManager(); ~KviSharedFilesManager(); + private: - QTimer * m_pCleanupTimer; - KviPointerHashTable * m_pSharedListDict; + QTimer * m_pCleanupTimer; + KviPointerHashTable * m_pSharedListDict; + public: void addSharedFile(KviSharedFile * f); - KviSharedFile * addSharedFile(const QString &szName,const QString &szAbsPath,const QString &szMask,int timeoutInSecs); - KviSharedFile * lookupSharedFile(const QString &szName,KviIrcMask * mask,unsigned int uFileSize = 0); - bool removeSharedFile(const QString &szName,const QString &szMask,unsigned int uFileSize); - bool removeSharedFile(const QString &szName,KviSharedFile * off); - void load(const QString &filename); - void save(const QString &filename); + KviSharedFile * addSharedFile(const QString & szName, const QString & szAbsPath, const QString & szMask, int timeoutInSecs); + KviSharedFile * lookupSharedFile(const QString & szName, KviIrcMask * mask, unsigned int uFileSize = 0); + bool removeSharedFile(const QString & szName, const QString & szMask, unsigned int uFileSize); + bool removeSharedFile(const QString & szName, KviSharedFile * off); + void load(const QString & filename); + void save(const QString & filename); void clear(); - KviPointerHashTable * sharedFileListDict(){ return m_pSharedListDict; }; + KviPointerHashTable * sharedFileListDict() { return m_pSharedListDict; }; private: void doInsert(KviSharedFileList * l, KviSharedFile * o); private slots: diff --git a/src/kvilib/ext/KviStringConversion.cpp b/src/kvilib/ext/KviStringConversion.cpp index ada7f5fab..5e5e6b0d1 100644 --- a/src/kvilib/ext/KviStringConversion.cpp +++ b/src/kvilib/ext/KviStringConversion.cpp @@ -22,8 +22,6 @@ // //============================================================================= - - #define _KVI_STRINGCONVERSION_CPP_ #include "KviStringConversion.h" @@ -47,17 +45,17 @@ namespace KviStringConversion { if(!g_szLocalDir.isEmpty()) { - if(szBuffer.indexOf(g_szLocalDir,0,Qt::CaseSensitive) == 0) + if(szBuffer.indexOf(g_szLocalDir, 0, Qt::CaseSensitive) == 0) { - szBuffer.remove(0,g_szLocalDir.length()); + szBuffer.remove(0, g_szLocalDir.length()); szBuffer.prepend("local://"); } } if(!g_szGlobalDir.isEmpty()) { - if(szBuffer.indexOf(g_szGlobalDir,0,Qt::CaseSensitive) == 0) + if(szBuffer.indexOf(g_szGlobalDir, 0, Qt::CaseSensitive) == 0) { - szBuffer.remove(0,g_szGlobalDir.length()); + szBuffer.remove(0, g_szGlobalDir.length()); szBuffer.prepend("global://"); } } @@ -70,17 +68,17 @@ namespace KviStringConversion { if(!g_szLocalDir.isEmpty()) { - if(szBuffer.indexOf("local://",0,Qt::CaseSensitive) == 0) + if(szBuffer.indexOf("local://", 0, Qt::CaseSensitive) == 0) { - szBuffer.remove(0,8); + szBuffer.remove(0, 8); szBuffer.prepend(g_szLocalDir); } } if(!g_szGlobalDir.isEmpty()) { - if(szBuffer.indexOf("global://",0,Qt::CaseSensitive) == 0) + if(szBuffer.indexOf("global://", 0, Qt::CaseSensitive) == 0) { - szBuffer.remove(0,9); + szBuffer.remove(0, 9); szBuffer.prepend(g_szGlobalDir); } } @@ -108,7 +106,8 @@ namespace KviStringConversion { if(szValue.isEmpty()) bBuffer = false; - else bBuffer = !((KviQString::equalCS(szValue,"0")) || (KviQString::equalCI(szValue,"false"))); + else + bBuffer = !((KviQString::equalCS(szValue, "0")) || (KviQString::equalCI(szValue, "false"))); return true; } @@ -129,7 +128,7 @@ namespace KviStringConversion szBuffer.setNum(uValue); } - bool fromString(const QString & szValue,unsigned int & uBuffer) + bool fromString(const QString & szValue, unsigned int & uBuffer) { bool bOk; uBuffer = szValue.toUInt(&bOk); @@ -138,7 +137,7 @@ namespace KviStringConversion void toString(const QRect & rValue, QString & szBuffer) { - szBuffer.sprintf("%d,%d,%d,%d",rValue.x(),rValue.y(),rValue.width(),rValue.height()); + szBuffer.sprintf("%d,%d,%d,%d", rValue.x(), rValue.y(), rValue.width(), rValue.height()); } bool fromString(const QString & szValue, QRect & buffer) @@ -147,10 +146,10 @@ namespace KviStringConversion const char * c = tmp.data(); if(!c) return false; - int l,t,w,h; - if(sscanf(c,"%d,%d,%d,%d",&l,&t,&w,&h) != 4) + int l, t, w, h; + if(sscanf(c, "%d,%d,%d,%d", &l, &t, &w, &h) != 4) return false; - buffer.setRect(l,t,w,h); + buffer.setRect(l, t, w, h); return true; } @@ -179,27 +178,29 @@ namespace KviStringConversion { buffer.setNull(); return true; - } else { + } + else + { return buffer.load(szPath); } } void toString(const KviMessageTypeSettings & mValue, QString & szBuffer) { - szBuffer.sprintf("%d,%u,%u,%d,%d",mValue.m_iPixId,mValue.m_cForeColor,mValue.m_cBackColor,mValue.m_bLogEnabled,mValue.m_iLevel); + szBuffer.sprintf("%d,%u,%u,%d,%d", mValue.m_iPixId, mValue.m_cForeColor, mValue.m_cBackColor, mValue.m_bLogEnabled, mValue.m_iLevel); } bool fromString(const QString & szValue, KviMessageTypeSettings & buffer) { - int iId,iLog,iLevel; - unsigned int uFore,uBack; + int iId, iLog, iLevel; + unsigned int uFore, uBack; QByteArray tmp = szValue.toUtf8(); char * cx = tmp.data(); if(!cx) return false; - if(sscanf(cx,"%d,%u,%u,%d,%d",&iId,&uFore,&uBack,&iLog,&iLevel) != 5) + if(sscanf(cx, "%d,%u,%u,%d,%d", &iId, &uFore, &uBack, &iLog, &iLevel) != 5) return false; - buffer = KviMessageTypeSettings(buffer.m_szType,iId,uFore,uBack,iLog,iLevel); + buffer = KviMessageTypeSettings(buffer.m_szType, iId, uFore, uBack, iLog, iLevel); return true; } @@ -210,13 +211,14 @@ namespace KviStringConversion bool fromString(const QString & szValue, QColor & buffer) { - buffer.setNamedColor(szValue); return true; + buffer.setNamedColor(szValue); + return true; } void toString(const QFont & font, QString & szBuffer) { QString szFamily(font.family()); - szBuffer.sprintf("%s,%d,%d,%d",szFamily.toUtf8().data(),font.pointSize(),font.styleHint(),font.weight()); + szBuffer.sprintf("%s,%d,%d,%d", szFamily.toUtf8().data(), font.pointSize(), font.styleHint(), font.weight()); QString szOptions; if(font.bold()) szOptions.append('b'); @@ -239,11 +241,11 @@ namespace KviStringConversion bool fromString(const QString & szValue, QFont & buffer) { KviCString str = szValue; - KviCString family,pointSize,styleHint,weight,options; - str.getToken(family,','); - str.getToken(pointSize,','); - str.getToken(styleHint,','); - str.getToken(weight,','); + KviCString family, pointSize, styleHint, weight, options; + str.getToken(family, ','); + str.getToken(pointSize, ','); + str.getToken(styleHint, ','); + str.getToken(weight, ','); if(!family.isEmpty()) buffer.setFamily(family.ptr()); int i; @@ -266,7 +268,7 @@ namespace KviStringConversion return true; } - void toString(const QStringList & list,QString & szBuffer) + void toString(const QStringList & list, QString & szBuffer) { szBuffer = list.join(","); } diff --git a/src/kvilib/ext/KviStringConversion.h b/src/kvilib/ext/KviStringConversion.h index 01ce11795..a8167b805 100644 --- a/src/kvilib/ext/KviStringConversion.h +++ b/src/kvilib/ext/KviStringConversion.h @@ -36,56 +36,55 @@ #include #include - namespace KviStringConversion { - extern KVILIB_API void init(const QString& szGlobalDir,const QString& szLocalDir); + extern KVILIB_API void init(const QString & szGlobalDir, const QString & szLocalDir); - extern KVILIB_API void encodePath(QString& buffer); - extern KVILIB_API void decodePath(QString& buffer); + extern KVILIB_API void encodePath(QString & buffer); + extern KVILIB_API void decodePath(QString & buffer); - extern KVILIB_API void encodePath(QStringList& buffer); - extern KVILIB_API void decodePath(QStringList& buffer); + extern KVILIB_API void encodePath(QStringList & buffer); + extern KVILIB_API void decodePath(QStringList & buffer); // bool <-> - extern KVILIB_API void toString(const bool bValue,QString &buffer); - extern KVILIB_API bool fromString(const QString &szValue,bool &buffer); + extern KVILIB_API void toString(const bool bValue, QString & buffer); + extern KVILIB_API bool fromString(const QString & szValue, bool & buffer); // int <-> QString - extern KVILIB_API void toString(const int iValue,QString &buffer); - extern KVILIB_API bool fromString(const QString &szValue,int &buffer); + extern KVILIB_API void toString(const int iValue, QString & buffer); + extern KVILIB_API bool fromString(const QString & szValue, int & buffer); // uint <-> QString - extern KVILIB_API void toString(const unsigned int uValue,QString &buffer); - extern KVILIB_API bool fromString(const QString &szValue,unsigned int &buffer); + extern KVILIB_API void toString(const unsigned int uValue, QString & buffer); + extern KVILIB_API bool fromString(const QString & szValue, unsigned int & buffer); // QRect <-> QString - extern KVILIB_API void toString(const QRect &rValue,QString &buffer); - extern KVILIB_API bool fromString(const QString &szValue,QRect &buffer); + extern KVILIB_API void toString(const QRect & rValue, QString & buffer); + extern KVILIB_API bool fromString(const QString & szValue, QRect & buffer); // QString <-> QString (Null conversion) - extern KVILIB_API void toString(const QString &szValue,QString &buffer); - extern KVILIB_API bool fromString(const QString &szValue,QString &buffer); + extern KVILIB_API void toString(const QString & szValue, QString & buffer); + extern KVILIB_API bool fromString(const QString & szValue, QString & buffer); // KviPixmap <-> QString - extern KVILIB_API void toString(const KviPixmap &pValue,QString &buffer); - extern KVILIB_API bool fromString(const QString &szValue,KviPixmap &buffer); + extern KVILIB_API void toString(const KviPixmap & pValue, QString & buffer); + extern KVILIB_API bool fromString(const QString & szValue, KviPixmap & buffer); // QFont <-> QString - extern KVILIB_API void toString(const QFont &fValue,QString &buffer); - extern KVILIB_API bool fromString(const QString &szValue,QFont &buffer); + extern KVILIB_API void toString(const QFont & fValue, QString & buffer); + extern KVILIB_API bool fromString(const QString & szValue, QFont & buffer); // KviMessageTypeSettings <-> QString - extern KVILIB_API void toString(const KviMessageTypeSettings &mValue,QString &buffer); - extern KVILIB_API bool fromString(const QString &szValue,KviMessageTypeSettings &buffer); + extern KVILIB_API void toString(const KviMessageTypeSettings & mValue, QString & buffer); + extern KVILIB_API bool fromString(const QString & szValue, KviMessageTypeSettings & buffer); // QColor <-> QString - extern KVILIB_API void toString(const QColor &cValue,QString &buffer); - extern KVILIB_API bool fromString(const QString &szValue,QColor &buffer); + extern KVILIB_API void toString(const QColor & cValue, QString & buffer); + extern KVILIB_API bool fromString(const QString & szValue, QColor & buffer); // QStringList <-> QString - extern KVILIB_API void toString(const QStringList &sValue,QString &buffer); - extern KVILIB_API bool fromString(const QString &szValue,QStringList &buffer); + extern KVILIB_API void toString(const QStringList & sValue, QString & buffer); + extern KVILIB_API bool fromString(const QString & szValue, QStringList & buffer); } #endif //!_KVI_STRINGCONVERSION_H_ diff --git a/src/kvilib/ext/KviXlib.h b/src/kvilib/ext/KviXlib.h index a5f2e0815..e7fe05097 100644 --- a/src/kvilib/ext/KviXlib.h +++ b/src/kvilib/ext/KviXlib.h @@ -27,59 +27,59 @@ #include "kvi_settings.h" #ifdef COMPILE_X11_SUPPORT - #ifdef Bool - // Someone has defined Bool ? - #undef Bool - #endif - - #ifdef None - #undef None - #endif - - #include - - // Too bad that X11/Xlib.h defines Bool, Error and Success... this basically - // SUX since we can't use them anywhere in the source! - // this breaks, enums in Qt, enums in KVIrc and other stuff all around... - // Shame on you Xlib.h author :D - - #ifdef Bool - // NO! - #undef Bool - #endif - - #ifdef None - // No - #undef None - #endif - - #ifdef KeyPress - #undef KeyPress - #endif - - #ifdef KeyRelease - #undef KeyRelease - #endif - - #ifdef FocusIn - #undef FocusIn - #endif - - #ifdef FocusOut - #undef FocusOut - #endif - - #ifdef FontChange - #undef FontChange - #endif - - #ifdef Expose - #undef Expose - #endif - - #ifdef CursorShape - #undef CursorShape - #endif +#ifdef Bool +// Someone has defined Bool ? +#undef Bool +#endif + +#ifdef None +#undef None +#endif + +#include + +// Too bad that X11/Xlib.h defines Bool, Error and Success... this basically +// SUX since we can't use them anywhere in the source! +// this breaks, enums in Qt, enums in KVIrc and other stuff all around... +// Shame on you Xlib.h author :D + +#ifdef Bool +// NO! +#undef Bool +#endif + +#ifdef None +// No +#undef None +#endif + +#ifdef KeyPress +#undef KeyPress +#endif + +#ifdef KeyRelease +#undef KeyRelease +#endif + +#ifdef FocusIn +#undef FocusIn +#endif + +#ifdef FocusOut +#undef FocusOut +#endif + +#ifdef FontChange +#undef FontChange +#endif + +#ifdef Expose +#undef Expose +#endif + +#ifdef CursorShape +#undef CursorShape +#endif #endif //COMPILE_X11_SUPPORT diff --git a/src/kvilib/file/KviFile.cpp b/src/kvilib/file/KviFile.cpp index 98213aedc..1d19cb653 100644 --- a/src/kvilib/file/KviFile.cpp +++ b/src/kvilib/file/KviFile.cpp @@ -29,12 +29,12 @@ #include KviFile::KviFile() -: QFile() + : QFile() { } KviFile::KviFile(const QString & szName) -: QFile(szName) + : QFile(szName) { } @@ -44,7 +44,7 @@ KviFile::~KviFile() bool KviFile::save(kvi_u8_t t) { - return (write((const char *)(&t),sizeof(kvi_u8_t)) == sizeof(kvi_u8_t)); + return (write((const char *)(&t), sizeof(kvi_u8_t)) == sizeof(kvi_u8_t)); } bool KviFile::save(kvi_u16_t t) @@ -52,7 +52,7 @@ bool KviFile::save(kvi_u16_t t) #ifndef LOCAL_CPU_LITTLE_ENDIAN t = KviByteOrder::localCpuToLittleEndian16(t); #endif - return (write((const char *)(&t),sizeof(kvi_u16_t)) == sizeof(kvi_u16_t)); + return (write((const char *)(&t), sizeof(kvi_u16_t)) == sizeof(kvi_u16_t)); } bool KviFile::save(kvi_u32_t t) @@ -60,7 +60,7 @@ bool KviFile::save(kvi_u32_t t) #ifndef LOCAL_CPU_LITTLE_ENDIAN t = KviByteOrder::localCpuToLittleEndian32(t); #endif - return (write((const char *)(&t),sizeof(kvi_u32_t)) == sizeof(kvi_u32_t)); + return (write((const char *)(&t), sizeof(kvi_u32_t)) == sizeof(kvi_u32_t)); } bool KviFile::save(kvi_u64_t t) @@ -68,64 +68,72 @@ bool KviFile::save(kvi_u64_t t) #ifndef LOCAL_CPU_LITTLE_ENDIAN t = KviByteOrder::localCpuToLittleEndian64(t); #endif - return (write((const char *)(&t),sizeof(kvi_u64_t)) == sizeof(kvi_u64_t)); + return (write((const char *)(&t), sizeof(kvi_u64_t)) == sizeof(kvi_u64_t)); } bool KviFile::save(const QByteArray & data) { - if(!save((kvi_u32_t)(data.size())))return false; - return (write(data.data(),data.size()) == ((unsigned int)(data.size()))); + if(!save((kvi_u32_t)(data.size()))) + return false; + return (write(data.data(), data.size()) == ((unsigned int)(data.size()))); } bool KviFile::save(const QString & szData) { QByteArray c = szData.toUtf8(); - if(!save((kvi_u32_t)(c.length())))return false; - return (write(c.data(),c.length()) == ((unsigned int)(c.length()))); + if(!save((kvi_u32_t)(c.length()))) + return false; + return (write(c.data(), c.length()) == ((unsigned int)(c.length()))); } bool KviFile::save(const KviCString & szData) { - if(!save((kvi_u32_t)(szData.len())))return false; - return (write(szData.ptr(),szData.len()) == (unsigned int) szData.len()); + if(!save((kvi_u32_t)(szData.len()))) + return false; + return (write(szData.ptr(), szData.len()) == (unsigned int)szData.len()); } bool KviFile::save(KviPointerList * pData) { - if(!save((int)(pData->count())))return false; - for(KviCString * s = pData->first();s;s = pData->next()) + if(!save((int)(pData->count()))) + return false; + for(KviCString * s = pData->first(); s; s = pData->next()) { - if(!save(*s))return false; + if(!save(*s)) + return false; } return true; } -bool KviFile::load(kvi_u8_t &t) +bool KviFile::load(kvi_u8_t & t) { - return (read((char *)(&t),sizeof(kvi_u8_t)) == sizeof(kvi_u8_t)); + return (read((char *)(&t), sizeof(kvi_u8_t)) == sizeof(kvi_u8_t)); } -bool KviFile::load(kvi_u16_t &t) +bool KviFile::load(kvi_u16_t & t) { - if(!(read((char *)(&t),sizeof(kvi_u16_t)) == sizeof(kvi_u16_t)))return false; + if(!(read((char *)(&t), sizeof(kvi_u16_t)) == sizeof(kvi_u16_t))) + return false; #ifndef LOCAL_CPU_LITTLE_ENDIAN t = KviByteOrder::littleEndianToLocalCpu16(t); #endif return true; } -bool KviFile::load(kvi_u32_t &t) +bool KviFile::load(kvi_u32_t & t) { - if(!(read((char *)(&t),sizeof(kvi_u32_t)) == sizeof(kvi_u32_t)))return false; + if(!(read((char *)(&t), sizeof(kvi_u32_t)) == sizeof(kvi_u32_t))) + return false; #ifndef LOCAL_CPU_LITTLE_ENDIAN t = KviByteOrder::littleEndianToLocalCpu32(t); #endif return true; } -bool KviFile::load(kvi_u64_t &t) +bool KviFile::load(kvi_u64_t & t) { - if(!(read((char *)(&t),sizeof(kvi_u32_t)) == sizeof(kvi_u32_t)))return false; + if(!(read((char *)(&t), sizeof(kvi_u32_t)) == sizeof(kvi_u32_t))) + return false; #ifndef LOCAL_CPU_LITTLE_ENDIAN t = KviByteOrder::littleEndianToLocalCpu32(t); #endif @@ -135,19 +143,23 @@ bool KviFile::load(kvi_u64_t &t) bool KviFile::load(QByteArray & data) { kvi_u32_t iLen; - if(!load(iLen))return false; + if(!load(iLen)) + return false; data.resize(iLen); // it is automatically null terminated in Qt 4.x... BLEAH :D - if(read((char *)(data.data()),iLen) != iLen)return false; + if(read((char *)(data.data()), iLen) != iLen) + return false; return true; } bool KviFile::load(QString & szData) { kvi_u32_t iLen; - if(!load(iLen))return false; + if(!load(iLen)) + return false; QByteArray tmp; tmp.resize(iLen + 1); - if(read((char *)(tmp.data()),iLen) != iLen)return false; + if(read((char *)(tmp.data()), iLen) != iLen) + return false; *(tmp.data() + iLen) = 0; szData = QString::fromUtf8(tmp.data()); return true; @@ -156,17 +168,19 @@ bool KviFile::load(QString & szData) bool KviFile::load(KviCString & szData) { kvi_u32_t iLen; - if(!load(iLen))return false; + if(!load(iLen)) + return false; szData.setLen(iLen); - return (read((char *)(szData.ptr()),iLen) == iLen); + return (read((char *)(szData.ptr()), iLen) == iLen); } bool KviFile::load(KviPointerList * pData) { pData->clear(); int iCount; - if(!load(iCount))return false; - for(int i=0;i 0) { char c; - if(!getChar(&c))return false; - if(((char)c) == t)return true; + if(!getChar(&c)) + return false; + if(((char)c) == t) + return true; uMaxDist--; } return false; @@ -198,12 +214,16 @@ bool KviFile::skipFirst(const KviCString & szT, unsigned int uMaxDist) while(uMaxDist > 0) { char c; - if(!getChar(&c))return false; + if(!getChar(&c)) + return false; if(c == *pcPtr) { pcPtr++; - if(!*pcPtr)return true; - } else { + if(!*pcPtr) + return true; + } + else + { pcPtr = szT.ptr(); } uMaxDist--; diff --git a/src/kvilib/file/KviFile.h b/src/kvilib/file/KviFile.h index abda51c68..5d19a48ce 100644 --- a/src/kvilib/file/KviFile.h +++ b/src/kvilib/file/KviFile.h @@ -69,6 +69,7 @@ public: * \brief Destroys file object */ ~KviFile(); + public: /** * \brief Saves a file @@ -84,7 +85,7 @@ public: * \warning This function saves LITTLE ENDIAN DATA! * \return bool */ - bool save(kvi_i64_t file){ return save((kvi_u64_t)file); }; + bool save(kvi_i64_t file) { return save((kvi_u64_t)file); }; /** * \brief Saves a file @@ -100,7 +101,7 @@ public: * \warning This function saves LITTLE ENDIAN DATA! * \return bool */ - bool save(kvi_i32_t file){ return save((kvi_u32_t)file); }; + bool save(kvi_i32_t file) { return save((kvi_u32_t)file); }; /** * \brief Saves a file @@ -116,7 +117,7 @@ public: * \warning This function saves LITTLE ENDIAN DATA! * \return bool */ - bool save(kvi_i16_t file){ return save((kvi_u16_t)file); }; + bool save(kvi_i16_t file) { return save((kvi_u16_t)file); }; /** * \brief Saves a file @@ -132,7 +133,7 @@ public: * \warning This function saves LITTLE ENDIAN DATA! * \return bool */ - bool save(kvi_i8_t file){ return save((kvi_u8_t)file); }; + bool save(kvi_i8_t file) { return save((kvi_u8_t)file); }; /** * \brief Saves a file @@ -180,7 +181,7 @@ public: * \warning This function loads LITTLE ENDIAN DATA! * \return bool */ - bool load(kvi_i64_t & file){ return load((kvi_u64_t &)file); }; + bool load(kvi_i64_t & file) { return load((kvi_u64_t &)file); }; /** * \brief Loads a file @@ -196,7 +197,7 @@ public: * \warning This function loads LITTLE ENDIAN DATA! * \return bool */ - bool load(kvi_i32_t & file){ return load((kvi_u32_t &)file); }; + bool load(kvi_i32_t & file) { return load((kvi_u32_t &)file); }; /** * \brief Loads a file @@ -212,7 +213,7 @@ public: * \warning This function loads LITTLE ENDIAN DATA! * \return bool */ - bool load(kvi_i16_t & file){ return load((kvi_u16_t &)file); }; + bool load(kvi_i16_t & file) { return load((kvi_u16_t &)file); }; /** * \brief Loads a file @@ -228,7 +229,7 @@ public: * \warning This function loads LITTLE ENDIAN DATA! * \return bool */ - bool load(kvi_i8_t & file){ return load((kvi_u8_t &)file); }; + bool load(kvi_i8_t & file) { return load((kvi_u8_t &)file); }; /** * \brief Loads a file diff --git a/src/kvilib/file/KviFileUtils.cpp b/src/kvilib/file/KviFileUtils.cpp index dbba633ae..6e4fe6b05 100644 --- a/src/kvilib/file/KviFileUtils.cpp +++ b/src/kvilib/file/KviFileUtils.cpp @@ -35,7 +35,6 @@ #include #include - namespace KviFileUtils { static char cHexChars[16] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; @@ -109,24 +108,24 @@ namespace KviFileUtils if(idx == 1) { szCreatedDir = szDir.left(2); - szDir.remove(0,2); + szDir.remove(0, 2); } #endif - KviQString::stripLeft(szDir,KVI_PATH_SEPARATOR_CHAR); + KviQString::stripLeft(szDir, KVI_PATH_SEPARATOR_CHAR); while(!szDir.isEmpty()) { szCreatedDir += KVI_PATH_SEPARATOR; - szCreatedDir += KviQString::getToken(szDir,KVI_PATH_SEPARATOR_CHAR); + szCreatedDir += KviQString::getToken(szDir, KVI_PATH_SEPARATOR_CHAR); if(!directoryExists(szCreatedDir)) { if(!d.mkdir(szCreatedDir)) { - qDebug("Can't create directory %s",szCreatedDir.toUtf8().data()); + qDebug("Can't create directory %s", szCreatedDir.toUtf8().data()); return false; } } - KviQString::stripLeft(szDir,KVI_PATH_SEPARATOR_CHAR); + KviQString::stripLeft(szDir, KVI_PATH_SEPARATOR_CHAR); } return true; } @@ -140,14 +139,14 @@ namespace KviFileUtils bool renameFile(const QString & szSrc, const QString & szDst) { QDir d; - return d.rename(szSrc,szDst); + return d.rename(szSrc, szDst); } bool renameFile(const char * pcSrc, const char * pcDst) { QString szPath = QString::fromUtf8(pcSrc); QString szPath2 = QString::fromUtf8(pcDst); - return renameFile(szPath,szPath2); + return renameFile(szPath, szPath2); } bool copyFile(const QString & szSrc, const QString & szDst) @@ -164,14 +163,14 @@ namespace KviFileUtils char cBuffer[1024]; while(!f1.atEnd()) { - int iLen = f1.read(cBuffer,1024); + int iLen = f1.read(cBuffer, 1024); if(iLen <= 0) { f1.close(); f2.close(); return false; //"serious error" } - f2.write(cBuffer,iLen); + f2.write(cBuffer, iLen); } f1.close(); f2.close(); @@ -182,7 +181,7 @@ namespace KviFileUtils { QString szPath = QString::fromUtf8(pcSrc); QString szPath2 = QString::fromUtf8(pcDst); - return copyFile(szPath,szPath2); + return copyFile(szPath, szPath2); } bool loadFile(const QString & szPath, QString & szBuffer, bool bUtf8) @@ -193,9 +192,11 @@ namespace KviFileUtils if(bUtf8) { QByteArray ba = f.readAll(); - szBuffer = QString::fromUtf8(ba.data(),ba.size()); + szBuffer = QString::fromUtf8(ba.data(), ba.size()); //qDebug("BUFFERLEN: %d",szBuffer.length()); - } else { + } + else + { szBuffer = QString(f.readAll()); } return true; @@ -204,25 +205,24 @@ namespace KviFileUtils void adjustFilePath(QString & szPath) { #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - szPath.replace('/',"\\"); - szPath.replace("\\\\","\\"); + szPath.replace('/', "\\"); + szPath.replace("\\\\", "\\"); // FIXME: Use the default drive here ? if(szPath.startsWith("\\")) szPath.prepend("C:"); #else - szPath.replace('\\',"/"); - szPath.replace("//","/"); + szPath.replace('\\', "/"); + szPath.replace("//", "/"); // deal with windows paths if((szPath.length() > 2) && (szPath.at(0) != QChar('/'))) { if((szPath.at(1) == QChar(':')) && (szPath.at(2) == QChar('/'))) { - szPath.remove(0,2); + szPath.remove(0, 2); } } szPath = QDir::cleanPath(szPath); #endif - } bool removeFile(const QString & szPath) @@ -255,10 +255,10 @@ namespace KviFileUtils QFileInfoList lFileInfo = d.entryInfoList(QDir::Files | QDir::Dirs | QDir::Hidden | QDir::System | QDir::NoDotAndDotDot); - foreach(QFileInfo inf,lFileInfo) + foreach(QFileInfo inf, lFileInfo) { // just to be sure check that we're not deleting .. - if(KviQString::equalCS(inf.fileName(),"..") || KviQString::equalCS(inf.fileName(),".")) + if(KviQString::equalCS(inf.fileName(), "..") || KviQString::equalCS(inf.fileName(), ".")) continue; if(inf.isDir()) @@ -270,14 +270,14 @@ namespace KviFileUtils if(!KviFileUtils::removeFile(inf.absoluteFilePath())) { - qDebug("Failed to remove file %s",inf.absoluteFilePath().toUtf8().data()); + qDebug("Failed to remove file %s", inf.absoluteFilePath().toUtf8().data()); return false; } } if(!KviFileUtils::removeDir(szPath)) { - qDebug("Failed to remove directory %s",szPath.toUtf8().data()); + qDebug("Failed to remove directory %s", szPath.toUtf8().data()); return false; } @@ -291,7 +291,7 @@ namespace KviFileUtils return false; if(oData.length() < 1) return true; - if(f.write(oData.data(),oData.length()) != ((unsigned int)(oData.length()))) + if(f.write(oData.data(), oData.length()) != ((unsigned int)(oData.length()))) return false; return true; } @@ -304,7 +304,7 @@ namespace KviFileUtils QByteArray szTmp = szData.toUtf8(); if(!szTmp.data()) return true; - if(f.write(szTmp.data(),szTmp.length()) != ((unsigned int)(szTmp.length()))) + if(f.write(szTmp.data(), szTmp.length()) != ((unsigned int)(szTmp.length()))) return false; return true; } @@ -312,7 +312,7 @@ namespace KviFileUtils bool writeFile(const char * pcPath, const QString & szData, bool bAppend) { QString szPath = QString::fromUtf8(pcPath); - return writeFile(szPath,szData,bAppend); + return writeFile(szPath, szData, bAppend); } bool writeFileLocal8Bit(const QString & szPath, const QString & szData, bool bAppend) @@ -323,7 +323,7 @@ namespace KviFileUtils QByteArray szTmp = QTextCodec::codecForLocale()->fromUnicode(szData); if(!szTmp.data()) return true; - if(f.write(szTmp.data(),szTmp.length()) != ((unsigned int)(szTmp.length()))) + if(f.write(szTmp.data(), szTmp.length()) != ((unsigned int)(szTmp.length()))) return false; return true; } @@ -331,7 +331,7 @@ namespace KviFileUtils bool writeFileLocal8Bit(const char * pcPath, const QString & szData, bool bAppend) { QString szPath = QString::fromUtf8(pcPath); - return writeFileLocal8Bit(szPath,szData,bAppend); + return writeFileLocal8Bit(szPath, szData, bAppend); } bool readFile(const QString & szPath, QString & szBuffer, unsigned int uMaxSize) @@ -348,7 +348,7 @@ namespace KviFileUtils if(f.size() > uMaxSize) return false; char * pcBuf = new char[f.size() + 1]; - if(f.read(pcBuf,f.size()) != ((long int)f.size())) + if(f.read(pcBuf, f.size()) != ((long int)f.size())) { delete[] pcBuf; pcBuf = 0; @@ -364,10 +364,10 @@ namespace KviFileUtils bool readFile(const char * pcPath, QString & szBuffer, unsigned int uMaxSize) { QString szPath = QString::fromUtf8(pcPath); - return readFile(szPath,szBuffer,uMaxSize); + return readFile(szPath, szBuffer, uMaxSize); } - QString extractFileName(const QString & szFileNameWithPath,bool bAllowEmpty) + QString extractFileName(const QString & szFileNameWithPath, bool bAllowEmpty) { if(!bAllowEmpty) { @@ -404,19 +404,22 @@ namespace KviFileUtils if(bUtf8) stream.setCodec(QTextCodec::codecForMib(106)); - for(int i=0;i0) + if(iCount > 0) { - for(; (iCount>0 && !stream.atEnd()) ; iCount-- ) + for(; (iCount > 0 && !stream.atEnd()); iCount--) buffer.append(stream.readLine()); - } else { - while(!stream.atEnd()) { + } + else + { + while(!stream.atEnd()) + { buffer.append(stream.readLine()); } } - return buffer.count()!= 0; + return buffer.count() != 0; } bool directoryExists(const QString & szPath) @@ -450,9 +453,9 @@ namespace KviFileUtils for(int i = 0; i < szSrc.length(); i++) { QChar cur = szSrc[i]; - if( ! (cur.isLetter() || cur.isDigit() || cur==' ' || cur=='_' || cur=='.' || cur=='#' || cur=='%') ) + if(!(cur.isLetter() || cur.isDigit() || cur == ' ' || cur == '_' || cur == '.' || cur == '#' || cur == '%')) { - if(cur.row()!=0) + if(cur.row() != 0) { szPath += '%'; szPath += cHexChars[cur.row() >> 4]; @@ -461,10 +464,13 @@ namespace KviFileUtils szPath += '%'; szPath += cHexChars[cur.cell() >> 4]; szPath += cHexChars[cur.cell() & 15]; - } else if (cur=='%') + } + else if(cur == '%') { szPath += "%%"; - } else { + } + else + { szPath += cur; } } @@ -478,36 +484,40 @@ namespace KviFileUtils { QChar cur = szSrc[i]; #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - if(cur.unicode() < 32 || cur=='<' || cur=='>' || cur==':' || cur=='"' || cur=='/' || cur=='\\' || cur=='|' || cur=='?' || cur=='*') + if(cur.unicode() < 32 || cur == '<' || cur == '>' || cur == ':' || cur == '"' || cur == '/' || cur == '\\' || cur == '|' || cur == '?' || cur == '*') #else - if(cur.unicode() == 0 || cur=='/') + if(cur.unicode() == 0 || cur == '/') #endif { szPath += '-'; - } else { + } + else + { szPath += cur; } } } - static QStringList getFileListingInternal(const QString &szPath,const QString &szPrefix) + static QStringList getFileListingInternal(const QString & szPath, const QString & szPrefix) { //qDebug("Scan %s",szPath.toUtf8().data()); - + QStringList sl; - + QDir d(szPath); - - QFileInfoList fl = d.entryInfoList(QStringList(),QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot,QDir::Name); - - Q_FOREACH(QFileInfo inf,fl) + + QFileInfoList fl = d.entryInfoList(QStringList(), QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot, QDir::Name); + + Q_FOREACH(QFileInfo inf, fl) { QString szName = szPrefix.isEmpty() ? inf.fileName() : QString("%1" KVI_PATH_SEPARATOR "%2").arg(szPrefix).arg(inf.fileName()); if(inf.isDir()) { - QStringList sub = getFileListingInternal(inf.canonicalFilePath(),szName); + QStringList sub = getFileListingInternal(inf.canonicalFilePath(), szName); sl.append(sub); - } else { + } + else + { sl.append(szName); } } @@ -515,9 +525,8 @@ namespace KviFileUtils return sl; } - QStringList getFileListing(const QString &szPath) + QStringList getFileListing(const QString & szPath) { - return getFileListingInternal(szPath,QString()); + return getFileListingInternal(szPath, QString()); } - } diff --git a/src/kvilib/file/KviFileUtils.h b/src/kvilib/file/KviFileUtils.h index 01bd40782..e54896108 100644 --- a/src/kvilib/file/KviFileUtils.h +++ b/src/kvilib/file/KviFileUtils.h @@ -41,13 +41,12 @@ #include - #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - #define KVI_PATH_SEPARATOR "\\" - #define KVI_PATH_SEPARATOR_CHAR '\\' +#define KVI_PATH_SEPARATOR "\\" +#define KVI_PATH_SEPARATOR_CHAR '\\' #else - #define KVI_PATH_SEPARATOR "/" - #define KVI_PATH_SEPARATOR_CHAR '/' +#define KVI_PATH_SEPARATOR "/" +#define KVI_PATH_SEPARATOR_CHAR '/' #endif // #warning "Add kvi_trashFile(const char * path) ? - is it needed in the whole app" @@ -89,7 +88,7 @@ namespace KviFileUtils * \param szPath The path to the file * \return bool */ - inline bool fileExists(const QString & szPath){ return QFile::exists(szPath); } + inline bool fileExists(const QString & szPath) { return QFile::exists(szPath); } /** * \brief Removes a file @@ -204,7 +203,7 @@ namespace KviFileUtils * \param szFileNameWithPath The complete path to the file * \return QString */ - KVILIB_API QString extractFileName(const QString & szFileNameWithPath,bool bAllowEmpty = true); + KVILIB_API QString extractFileName(const QString & szFileNameWithPath, bool bAllowEmpty = true); /** * \brief Extracts the filename from a complete path (strips leading path) @@ -235,7 +234,7 @@ namespace KviFileUtils * \param szDst The destination file * \return bool */ - KVILIB_API bool renameFile(const QString & szSrc,const QString & szDst); + KVILIB_API bool renameFile(const QString & szSrc, const QString & szDst); /** * \brief Rename or move the file (mv) @@ -312,12 +311,11 @@ namespace KviFileUtils * \return void */ KVILIB_API void cleanFileName(QString & szPath); - + /** * Build a recursive file listing */ - KVILIB_API QStringList getFileListing(const QString &szPath); - + KVILIB_API QStringList getFileListing(const QString & szPath); } #endif //_KVI_FILEUTILS_H diff --git a/src/kvilib/file/KviPackageIOEngine.cpp b/src/kvilib/file/KviPackageIOEngine.cpp index ecfd00810..8cd38d6a1 100644 --- a/src/kvilib/file/KviPackageIOEngine.cpp +++ b/src/kvilib/file/KviPackageIOEngine.cpp @@ -29,7 +29,6 @@ #include #include - // // A KVIrc Package File is basically a simple zip file with some additional meta-data. // The package file has the following format @@ -73,7 +72,6 @@ // BufferLen uint32 4 The length of the binary buffer // BufferData Bytes Variable The data for the binary buffer - // UniString: // StringLen uint32 4 The length of the string data in BYTES (null terminator NOT included) // StringData Bytes StringLen An utf8 encoded string (do NOT write the NULL terminator) @@ -102,22 +100,24 @@ KviPackageIOEngine::KviPackageIOEngine() { m_pProgressDialog = 0; - m_pStringInfoFields = new KviPointerHashTable(); + m_pStringInfoFields = new KviPointerHashTable(); m_pStringInfoFields->setAutoDelete(true); - m_pBinaryInfoFields = new KviPointerHashTable(); + m_pBinaryInfoFields = new KviPointerHashTable(); m_pBinaryInfoFields->setAutoDelete(true); } KviPackageIOEngine::~KviPackageIOEngine() { - if(m_pProgressDialog)delete m_pProgressDialog; + if(m_pProgressDialog) + delete m_pProgressDialog; delete m_pStringInfoFields; delete m_pBinaryInfoFields; } -bool KviPackageIOEngine::updateProgress(int iProgress,const QString &szLabel) +bool KviPackageIOEngine::updateProgress(int iProgress, const QString & szLabel) { - if(!m_pProgressDialog)return true; + if(!m_pProgressDialog) + return true; m_pProgressDialog->setValue(iProgress); m_pProgressDialogLabel->setText(szLabel); @@ -130,20 +130,21 @@ bool KviPackageIOEngine::updateProgress(int iProgress,const QString &szLabel) return true; } -void KviPackageIOEngine::showProgressDialog(const QString &szCaption,int iTotalSteps) +void KviPackageIOEngine::showProgressDialog(const QString & szCaption, int iTotalSteps) { - m_pProgressDialog = new QProgressDialog(QString(""),__tr2qs("Cancel"),0,iTotalSteps,0); + m_pProgressDialog = new QProgressDialog(QString(""), __tr2qs("Cancel"), 0, iTotalSteps, 0); m_pProgressDialog->setModal(true); m_pProgressDialog->setWindowTitle(szCaption); m_pProgressDialogLabel = new QLabel(m_pProgressDialog); - m_pProgressDialogLabel->setMaximumSize(500,300); + m_pProgressDialogLabel->setMaximumSize(500, 300); m_pProgressDialog->setLabel(m_pProgressDialogLabel); } void KviPackageIOEngine::hideProgressDialog() { - if(!m_pProgressDialog)return; + if(!m_pProgressDialog) + return; delete m_pProgressDialog; m_pProgressDialog = 0; } @@ -159,5 +160,3 @@ bool KviPackageIOEngine::readError() setLastError(__tr2qs("File read error")); return false; } - - diff --git a/src/kvilib/file/KviPackageIOEngine.h b/src/kvilib/file/KviPackageIOEngine.h index 09af7fedf..4b941357b 100644 --- a/src/kvilib/file/KviPackageIOEngine.h +++ b/src/kvilib/file/KviPackageIOEngine.h @@ -41,7 +41,6 @@ class QProgressDialog; class QLabel; - #define KVI_PACKAGE_INFOFIELD_TYPE_STRING 1 #define KVI_PACKAGE_INFOFIELD_TYPE_BINARYBUFFER 2 #define KVI_PACKAGE_DATAFIELD_TYPE_FILE 1 @@ -66,39 +65,37 @@ public: virtual ~KviPackageIOEngine(); private: - - QString m_szLastError; - KviPointerHashTable * m_pStringInfoFields; - KviPointerHashTable * m_pBinaryInfoFields; - QProgressDialog * m_pProgressDialog; - QLabel * m_pProgressDialogLabel; + QString m_szLastError; + KviPointerHashTable * m_pStringInfoFields; + KviPointerHashTable * m_pBinaryInfoFields; + QProgressDialog * m_pProgressDialog; + QLabel * m_pProgressDialogLabel; public: /** * \brief Returns the last error * \return const QString & */ - const QString & lastError(){ return m_szLastError; }; + const QString & lastError() { return m_szLastError; }; /** * \brief Returns the string info fields * \return KviPointerHashTable * */ - KviPointerHashTable * stringInfoFields(){ return m_pStringInfoFields; }; + KviPointerHashTable * stringInfoFields() { return m_pStringInfoFields; }; /** * \brief Returns the binary info fields * \return KviPointerHashTable * */ - KviPointerHashTable * binaryInfoFields(){ return m_pBinaryInfoFields; }; + KviPointerHashTable * binaryInfoFields() { return m_pBinaryInfoFields; }; protected: - /** * \brief Sets the last error * \param szLastError The string error * \return void */ - void setLastError(const QString & szLastError){ m_szLastError = szLastError; }; + void setLastError(const QString & szLastError) { m_szLastError = szLastError; }; /** * \brief Shows the progress dialog @@ -139,5 +136,4 @@ protected: bool readError(); }; - #endif //_KviPackageIOEngine_h_ diff --git a/src/kvilib/file/KviPackageReader.cpp b/src/kvilib/file/KviPackageReader.cpp index 2a4c574fc..6da01c703 100644 --- a/src/kvilib/file/KviPackageReader.cpp +++ b/src/kvilib/file/KviPackageReader.cpp @@ -31,16 +31,15 @@ #include "kvi_inttypes.h" #ifdef COMPILE_ZLIB_SUPPORT - #include +#include #endif // // See KviPackageIOEngine.cpp for the description of the KVIrc package file // - KviPackageReader::KviPackageReader() -: KviPackageIOEngine() + : KviPackageIOEngine() { } @@ -48,14 +47,14 @@ KviPackageReader::~KviPackageReader() { } -bool KviPackageReader::readHeaderInternal(KviFile * pFile,const QString &) +bool KviPackageReader::readHeaderInternal(KviFile * pFile, const QString &) { // read the PackageHeader // Magic char magic[4]; - if(pFile->read(magic,4) != 4) + if(pFile->read(magic, 4) != 4) return readError(); if((magic[0] != 'K') || (magic[1] != 'V') || (magic[2] != 'P') || (magic[3] != 'F')) @@ -104,8 +103,9 @@ bool KviPackageReader::readHeaderInternal(KviFile * pFile,const QString &) case KVI_PACKAGE_INFOFIELD_TYPE_STRING: { QString szValue; - if(!pFile->load(szValue))return readError(); - stringInfoFields()->replace(szKey,new QString(szValue)); + if(!pFile->load(szValue)) + return readError(); + stringInfoFields()->replace(szKey, new QString(szValue)); } break; case KVI_PACKAGE_INFOFIELD_TYPE_BINARYBUFFER: @@ -116,12 +116,12 @@ bool KviPackageReader::readHeaderInternal(KviFile * pFile,const QString &) delete pbValue; return readError(); } - binaryInfoFields()->replace(szKey,pbValue); + binaryInfoFields()->replace(szKey, pbValue); } break; default: setLastError(__tr2qs("Invalid info field: the package is probably corrupt")); - break; + break; } uIdx++; } @@ -129,7 +129,7 @@ bool KviPackageReader::readHeaderInternal(KviFile * pFile,const QString &) return true; } -bool KviPackageReader::readHeader(const QString &szLocalFileName) +bool KviPackageReader::readHeader(const QString & szLocalFileName) { KviFile f(szLocalFileName); if(!f.open(QFile::ReadOnly)) @@ -138,13 +138,12 @@ bool KviPackageReader::readHeader(const QString &szLocalFileName) return false; } - return readHeaderInternal(&f,szLocalFileName); + return readHeaderInternal(&f, szLocalFileName); } #define BUFFER_SIZE 32768 - -bool KviPackageReader::unpackFile(KviFile * pFile,const QString &szUnpackPath) +bool KviPackageReader::unpackFile(KviFile * pFile, const QString & szUnpackPath) { // Flags kvi_u32_t uFlags; @@ -165,13 +164,13 @@ bool KviPackageReader::unpackFile(KviFile * pFile,const QString &szUnpackPath) return readError(); QString szFileName = szUnpackPath; - KviQString::ensureLastCharIs(szFileName,QChar(KVI_PATH_SEPARATOR_CHAR)); + KviQString::ensureLastCharIs(szFileName, QChar(KVI_PATH_SEPARATOR_CHAR)); szFileName += szPath; // no attacks please :) - szFileName.replace(QString("..\\"),QString("")); - szFileName.replace(QString("../"),QString("")); + szFileName.replace(QString("..\\"), QString("")); + szFileName.replace(QString("../"), QString("")); KviFileUtils::adjustFilePath(szFileName); @@ -194,7 +193,7 @@ bool KviPackageReader::unpackFile(KviFile * pFile,const QString &szUnpackPath) } QString szProgressText = QString(__tr2qs("Unpacking file %1")).arg(szFileName); - if(!updateProgress(pFile->pos(),szProgressText)) + if(!updateProgress(pFile->pos(), szProgressText)) return false; // aborted // Size @@ -202,18 +201,19 @@ bool KviPackageReader::unpackFile(KviFile * pFile,const QString &szUnpackPath) if(!pFile->load(uSize)) return readError(); - // FilePayload +// FilePayload #ifdef COMPILE_ZLIB_SUPPORT if(uFlags & KVI_PACKAGE_DATAFIELD_FLAG_FILE_DEFLATE) { - // qDebug ("loading compressed data"); + // qDebug ("loading compressed data"); int iRemainingSize = uSize; unsigned char ibuffer[BUFFER_SIZE]; unsigned char obuffer[BUFFER_SIZE]; int iToRead = iRemainingSize; - if(iToRead > BUFFER_SIZE)iToRead = BUFFER_SIZE; - int iReaded = pFile->read((char *)ibuffer,iToRead); + if(iToRead > BUFFER_SIZE) + iToRead = BUFFER_SIZE; + int iReaded = pFile->read((char *)ibuffer, iToRead); iRemainingSize -= iReaded; z_stream zstr; @@ -236,7 +236,7 @@ bool KviPackageReader::unpackFile(KviFile * pFile,const QString &szUnpackPath) zstr.next_out = obuffer; zstr.avail_out = BUFFER_SIZE; - if(inflate(&zstr,Z_NO_FLUSH) != Z_OK) + if(inflate(&zstr, Z_NO_FLUSH) != Z_OK) { setLastError(__tr2qs("Compression library error")); return false; @@ -245,7 +245,7 @@ bool KviPackageReader::unpackFile(KviFile * pFile,const QString &szUnpackPath) if(zstr.avail_out < BUFFER_SIZE) { int iDecompressed = zstr.next_out - obuffer; - if(dest.write((char *)obuffer,iDecompressed) != iDecompressed) + if(dest.write((char *)obuffer, iDecompressed) != iDecompressed) { inflateEnd(&zstr); return writeError(); @@ -261,14 +261,14 @@ bool KviPackageReader::unpackFile(KviFile * pFile,const QString &szUnpackPath) { // hum, there is still some data in the buffer to be readed // and it is not at the beginning...move it to the beginning of ibuffer - memmove(ibuffer,zstr.next_in,zstr.avail_in); + memmove(ibuffer, zstr.next_in, zstr.avail_in); } } if(iDataToRead > iRemainingSize) iDataToRead = iRemainingSize; - iReaded = pFile->read((char *)(ibuffer + zstr.avail_in),iDataToRead); + iReaded = pFile->read((char *)(ibuffer + zstr.avail_in), iDataToRead); if(iReaded < 0) { inflateEnd(&zstr); @@ -281,9 +281,9 @@ bool KviPackageReader::unpackFile(KviFile * pFile,const QString &szUnpackPath) if((zstr.total_in % 2000000) == 0) { - QString szTmp = QString(" (%1 of %2 bytes)").arg(zstr.total_in,uSize); + QString szTmp = QString(" (%1 of %2 bytes)").arg(zstr.total_in, uSize); QString szPrg = szProgressText + szTmp; - if(!updateProgress(pFile->pos(),szPrg)) + if(!updateProgress(pFile->pos(), szPrg)) return false; // aborted } } @@ -295,22 +295,25 @@ bool KviPackageReader::unpackFile(KviFile * pFile,const QString &szUnpackPath) int ret; - do { - ret = inflate(&zstr,Z_FINISH); + do + { + ret = inflate(&zstr, Z_FINISH); if((ret == Z_OK) || (ret == Z_STREAM_END) || (ret == Z_BUF_ERROR)) { if(zstr.avail_out < BUFFER_SIZE) { int iDecompressed = zstr.next_out - obuffer; - if(dest.write((char *)obuffer,iDecompressed) != iDecompressed) + if(dest.write((char *)obuffer, iDecompressed) != iDecompressed) { inflateEnd(&zstr); return writeError(); } - } else { + } + else + { //THIS HAPPENS FOR ZERO SIZE FILES - qDebug("hum.... internal, rEWq (ret = %d) (avail_out = %d)",ret,zstr.avail_out); + qDebug("hum.... internal, rEWq (ret = %d) (avail_out = %d)", ret, zstr.avail_out); inflateEnd(&zstr); setLastError(__tr2qs("Compression library internal error")); @@ -329,20 +332,22 @@ bool KviPackageReader::unpackFile(KviFile * pFile,const QString &szUnpackPath) setLastError(__tr2qs("Error in compressed file stream")); return false; } - - } else { + } + else + { #endif - // qDebug("Load uncompressed data"); + // qDebug("Load uncompressed data"); unsigned char buffer[BUFFER_SIZE]; int iTotalFileSize = 0; int iRemainingData = uSize; int iToRead = iRemainingData; - if(iToRead > BUFFER_SIZE)iToRead = BUFFER_SIZE; + if(iToRead > BUFFER_SIZE) + iToRead = BUFFER_SIZE; int iReaded = 1; - // qDebug("iReaded %i and iToRead %i and index %i",iReaded,iToRead,pFile->pos()); + // qDebug("iReaded %i and iToRead %i and index %i",iReaded,iToRead,pFile->pos()); while((iReaded > 0) && (iToRead > 0)) { - iReaded = pFile->read((char *)buffer,iToRead); + iReaded = pFile->read((char *)buffer, iToRead); if(iReaded > 0) { iTotalFileSize += iReaded; @@ -352,18 +357,19 @@ bool KviPackageReader::unpackFile(KviFile * pFile,const QString &szUnpackPath) { QString szTmp = QString(" (%1 of %2 bytes)").arg(iTotalFileSize).arg(uSize); QString szPrg = szProgressText + szTmp; - if(!updateProgress(pFile->pos(),szPrg)) + if(!updateProgress(pFile->pos(), szPrg)) return false; // aborted } - // qDebug("write file with size %i and name %s",iReaded,dest.fileName().toUtf8().data()); - if(dest.write((char *)buffer,iReaded) != iReaded) + // qDebug("write file with size %i and name %s",iReaded,dest.fileName().toUtf8().data()); + if(dest.write((char *)buffer, iReaded) != iReaded) return writeError(); } //qDebug("Remains %i", iRemainingData); iToRead = iRemainingData; - if(iToRead > BUFFER_SIZE)iToRead = BUFFER_SIZE; + if(iToRead > BUFFER_SIZE) + iToRead = BUFFER_SIZE; } - // qDebug("finish to read %i and index %i",iReaded,pFile->pos()); +// qDebug("finish to read %i and index %i",iReaded,pFile->pos()); #ifdef COMPILE_ZLIB_SUPPORT } #endif @@ -372,7 +378,7 @@ bool KviPackageReader::unpackFile(KviFile * pFile,const QString &szUnpackPath) return true; } -bool KviPackageReader::getStringInfoField(const QString &szName,QString &szBuffer) +bool KviPackageReader::getStringInfoField(const QString & szName, QString & szBuffer) { QString * pVal = stringInfoFields()->find(szName); if(!pVal) @@ -381,14 +387,14 @@ bool KviPackageReader::getStringInfoField(const QString &szName,QString &szBuffe return true; } -bool KviPackageReader::unpack(const QString &szLocalFileName,const QString &szUnpackPath,kvi_u32_t uUnpackFlags) +bool KviPackageReader::unpack(const QString & szLocalFileName, const QString & szUnpackPath, kvi_u32_t uUnpackFlags) { - bool bRet = unpackInternal(szLocalFileName,szUnpackPath,uUnpackFlags); + bool bRet = unpackInternal(szLocalFileName, szUnpackPath, uUnpackFlags); hideProgressDialog(); return bRet; } -bool KviPackageReader::unpackInternal(const QString &szLocalFileName,const QString &szUnpackPath,kvi_u32_t uUnpackFlags) +bool KviPackageReader::unpackInternal(const QString & szLocalFileName, const QString & szUnpackPath, kvi_u32_t uUnpackFlags) { KviFile f(szLocalFileName); @@ -402,38 +408,39 @@ bool KviPackageReader::unpackInternal(const QString &szLocalFileName,const QStri if(!(uUnpackFlags & NoProgressDialog)) { - showProgressDialog(__tr2qs("Reading package..."),size); - updateProgress(0,__tr2qs("Reading package header")); + showProgressDialog(__tr2qs("Reading package..."), size); + updateProgress(0, __tr2qs("Reading package header")); } - if(!readHeaderInternal(&f,szLocalFileName)) + if(!readHeaderInternal(&f, szLocalFileName)) return false; - if(!updateProgress(f.pos(),__tr2qs("Reading package data"))) + if(!updateProgress(f.pos(), __tr2qs("Reading package data"))) return false; // aborted while(!f.atEnd()) { // DataFieldType kvi_u32_t uDataFieldType; - if(!f.load(uDataFieldType))return readError(); + if(!f.load(uDataFieldType)) + return readError(); // DataFieldLen kvi_u32_t uDataFieldLen; - if(!f.load(uDataFieldLen))return readError(); + if(!f.load(uDataFieldLen)) + return readError(); switch(uDataFieldType) { case KVI_PACKAGE_DATAFIELD_TYPE_FILE: - if(!unpackFile(&f,szUnpackPath)) + if(!unpackFile(&f, szUnpackPath)) return false; - break; + break; default: setLastError(__tr2qs("Invalid data field: the package is probably corrupt")); return false; - break; + break; } } return true; } - diff --git a/src/kvilib/file/KviPackageReader.h b/src/kvilib/file/KviPackageReader.h index 0e0f8793d..75633625e 100644 --- a/src/kvilib/file/KviPackageReader.h +++ b/src/kvilib/file/KviPackageReader.h @@ -37,8 +37,6 @@ class KviFile; - - /** * \class KviPackageReader * \brief This class is used to read KVIrc package files. @@ -58,11 +56,13 @@ public: * \brief Destroys the object */ virtual ~KviPackageReader(); + public: /** * \enum UnpackFlags */ - enum UnpackFlags { + enum UnpackFlags + { NoProgressDialog = 1 /**< If you want to avoid the progress dialog */ }; diff --git a/src/kvilib/file/KviPackageWriter.cpp b/src/kvilib/file/KviPackageWriter.cpp index 382f2a1ab..07529204b 100644 --- a/src/kvilib/file/KviPackageWriter.cpp +++ b/src/kvilib/file/KviPackageWriter.cpp @@ -34,14 +34,13 @@ #include #ifdef COMPILE_ZLIB_SUPPORT - #include +#include #endif // // See KviPackageIOEngine.cpp for the description of the KVIrc package file // - class KviPackageWriterDataField { public: @@ -61,9 +60,8 @@ public: int iCurrentProgress; }; - KviPackageWriter::KviPackageWriter() -: KviPackageIOEngine() + : KviPackageIOEngine() { m_p = new KviPackageWriterPrivate(); m_p->pDataFields = new KviPointerList(); @@ -76,23 +74,23 @@ KviPackageWriter::~KviPackageWriter() delete m_p; } -void KviPackageWriter::addInfoField(const QString &szName,const QString &szValue) +void KviPackageWriter::addInfoField(const QString & szName, const QString & szValue) { - stringInfoFields()->replace(szName,new QString(szValue)); + stringInfoFields()->replace(szName, new QString(szValue)); } -void KviPackageWriter::addInfoField(const QString &szName,QByteArray * pValue) +void KviPackageWriter::addInfoField(const QString & szName, QByteArray * pValue) { - binaryInfoFields()->replace(szName,pValue); + binaryInfoFields()->replace(szName, pValue); } -bool KviPackageWriter::addFile(const QString &szLocalFileName,const QString &szTargetFileName,kvi_u32_t uAddFileFlags) +bool KviPackageWriter::addFile(const QString & szLocalFileName, const QString & szTargetFileName, kvi_u32_t uAddFileFlags) { QFileInfo fi(szLocalFileName); - return addFileInternal(&fi,szLocalFileName,szTargetFileName,uAddFileFlags); + return addFileInternal(&fi, szLocalFileName, szTargetFileName, uAddFileFlags); } -bool KviPackageWriter::addFileInternal(const QFileInfo * fi,const QString &szLocalFileName,const QString &szTargetFileName,kvi_u32_t uAddFileFlags) +bool KviPackageWriter::addFileInternal(const QFileInfo * fi, const QString & szLocalFileName, const QString & szTargetFileName, kvi_u32_t uAddFileFlags) { if(!(fi->isFile() && fi->isReadable())) return false; @@ -113,7 +111,7 @@ bool KviPackageWriter::addFileInternal(const QFileInfo * fi,const QString &szLoc return true; } -bool KviPackageWriter::addDirectory(const QString &szLocalDirectoryName,const QString &szTargetDirectoryPrefix,kvi_u32_t uAddFileFlags) +bool KviPackageWriter::addDirectory(const QString & szLocalDirectoryName, const QString & szTargetDirectoryPrefix, kvi_u32_t uAddFileFlags) { QDir d(szLocalDirectoryName); QDir::Filters iFlags; @@ -124,17 +122,17 @@ bool KviPackageWriter::addDirectory(const QString &szLocalDirectoryName,const QS int j; QFileInfoList sl = d.entryInfoList(iFlags); - for(j=0;jm_szFileLocalName); - if(!updateProgress(m_p->iCurrentProgress,szProgressText)) + if(!updateProgress(m_p->iCurrentProgress, szProgressText)) return false; // aborted - KviFile source(pDataField->m_szFileLocalName); if(!source.open(QFile::ReadOnly)) { @@ -178,37 +175,39 @@ bool KviPackageWriter::packFile(KviFile * pFile,KviPackageWriterDataField * pDat kvi_u32_t uSize = source.size(); - // Flags +// Flags #ifdef COMPILE_ZLIB_SUPPORT - kvi_u32_t uFlags = pDataField->m_bFileAllowCompression ? - (uSize > 64 ? KVI_PACKAGE_DATAFIELD_FLAG_FILE_DEFLATE : 0) - : 0; + kvi_u32_t uFlags = pDataField->m_bFileAllowCompression ? (uSize > 64 ? KVI_PACKAGE_DATAFIELD_FLAG_FILE_DEFLATE : 0) + : 0; #else kvi_u32_t uFlags = 0; #endif - if(!pFile->save(uFlags))return writeError(); + if(!pFile->save(uFlags)) + return writeError(); QByteArray szTargetFileName = pDataField->m_szFileTargetName.toUtf8(); // Path - if(!pFile->save(szTargetFileName))return writeError(); + if(!pFile->save(szTargetFileName)) + return writeError(); kvi_file_offset_t savedSizeOffset = pFile->pos(); // Size : will update it if compression is requested - if(!pFile->save(uSize))return writeError(); + if(!pFile->save(uSize)) + return writeError(); pDataField->m_uWrittenFieldLength = 4 + 4 + 4 + szTargetFileName.length(); // sizeof(flags + uncompressed size + path len + path) - // FilePayload +// FilePayload #ifdef COMPILE_ZLIB_SUPPORT if(uFlags & KVI_PACKAGE_DATAFIELD_FLAG_FILE_DEFLATE) { unsigned char ibuffer[BUFFER_SIZE]; unsigned char obuffer[BUFFER_SIZE]; - kvi_i32_t iReaded = source.read((char *)ibuffer,BUFFER_SIZE); + kvi_i32_t iReaded = source.read((char *)ibuffer, BUFFER_SIZE); if(iReaded < 0) return readError(); @@ -221,7 +220,7 @@ bool KviPackageWriter::packFile(KviFile * pFile,KviPackageWriterDataField * pDat zstr.next_out = obuffer; zstr.avail_out = BUFFER_SIZE; - if(deflateInit(&zstr,9) != Z_OK) + if(deflateInit(&zstr, 9) != Z_OK) { setLastError(__tr2qs("Compression library initialization error")); return false; @@ -232,7 +231,7 @@ bool KviPackageWriter::packFile(KviFile * pFile,KviPackageWriterDataField * pDat zstr.next_out = obuffer; zstr.avail_out = BUFFER_SIZE; - if(deflate(&zstr,Z_NO_FLUSH) != Z_OK) + if(deflate(&zstr, Z_NO_FLUSH) != Z_OK) { setLastError(__tr2qs("Compression library error")); return false; @@ -242,7 +241,7 @@ bool KviPackageWriter::packFile(KviFile * pFile,KviPackageWriterDataField * pDat { int iCompressed = zstr.next_out - obuffer; pDataField->m_uWrittenFieldLength += iCompressed; - if(pFile->write((char *)obuffer,iCompressed) != iCompressed) + if(pFile->write((char *)obuffer, iCompressed) != iCompressed) { deflateEnd(&zstr); return writeError(); @@ -258,10 +257,10 @@ bool KviPackageWriter::packFile(KviFile * pFile,KviPackageWriterDataField * pDat { // hum, there is still some data in the buffer to be readed // and it is not at the beginning...move it to the beginning of ibuffer - memmove(ibuffer,zstr.next_in,zstr.avail_in); + memmove(ibuffer, zstr.next_in, zstr.avail_in); } } - iReaded = source.read((char *)(ibuffer + zstr.avail_in),iDataToRead); + iReaded = source.read((char *)(ibuffer + zstr.avail_in), iDataToRead); if(iReaded < 0) { deflateEnd(&zstr); @@ -272,9 +271,9 @@ bool KviPackageWriter::packFile(KviFile * pFile,KviPackageWriterDataField * pDat if((zstr.total_in % 2000000) == 0) { - QString szTmp = QString(" (%1 of %2 bytes)").arg(zstr.total_in,uSize); + QString szTmp = QString(" (%1 of %2 bytes)").arg(zstr.total_in, uSize); QString szPrg = szProgressText + szTmp; - if(!updateProgress(m_p->iCurrentProgress,szPrg)) + if(!updateProgress(m_p->iCurrentProgress, szPrg)) return false; // aborted } } @@ -287,7 +286,7 @@ bool KviPackageWriter::packFile(KviFile * pFile,KviPackageWriterDataField * pDat int ret; do { - ret = deflate(&zstr,Z_FINISH); + ret = deflate(&zstr, Z_FINISH); if((ret == Z_OK) || (ret == Z_STREAM_END)) { @@ -295,12 +294,14 @@ bool KviPackageWriter::packFile(KviFile * pFile,KviPackageWriterDataField * pDat { int iCompressed = zstr.next_out - obuffer; pDataField->m_uWrittenFieldLength += iCompressed; - if(pFile->write((char *)obuffer,iCompressed) != iCompressed) + if(pFile->write((char *)obuffer, iCompressed) != iCompressed) { deflateEnd(&zstr); return writeError(); } - } else { + } + else + { deflateEnd(&zstr); setLastError(__tr2qs("Compression library internal error")); return false; @@ -318,7 +319,8 @@ bool KviPackageWriter::packFile(KviFile * pFile,KviPackageWriterDataField * pDat uSize = zstr.total_out; deflateEnd(&zstr); - if(!pFile->save(uSize))return writeError(); + if(!pFile->save(uSize)) + return writeError(); if(ret != Z_STREAM_END) { @@ -327,11 +329,13 @@ bool KviPackageWriter::packFile(KviFile * pFile,KviPackageWriterDataField * pDat } pFile->seek(here); - } else { + } + else + { #endif unsigned char buffer[BUFFER_SIZE]; int iTotalFileSize = 0; - kvi_i32_t iReaded = source.read((char *)buffer,BUFFER_SIZE); + kvi_i32_t iReaded = source.read((char *)buffer, BUFFER_SIZE); if(iReaded < 0) return readError(); while(iReaded > 0) @@ -339,15 +343,15 @@ bool KviPackageWriter::packFile(KviFile * pFile,KviPackageWriterDataField * pDat iTotalFileSize += iReaded; if((iTotalFileSize % 1000000) == 0) { - QString szTmp = QString(" (%1 of %2 bytes)").arg(iTotalFileSize,uSize); + QString szTmp = QString(" (%1 of %2 bytes)").arg(iTotalFileSize, uSize); QString szPrg = szProgressText + szTmp; - if(!updateProgress(m_p->iCurrentProgress,szPrg)) + if(!updateProgress(m_p->iCurrentProgress, szPrg)) return false; // aborted } pDataField->m_uWrittenFieldLength += iReaded; - if(pFile->write((char *)buffer,iReaded) != iReaded) + if(pFile->write((char *)buffer, iReaded) != iReaded) return writeError(); - iReaded = source.read((char *)buffer,BUFFER_SIZE); + iReaded = source.read((char *)buffer, BUFFER_SIZE); } #ifdef COMPILE_ZLIB_SUPPORT } @@ -357,22 +361,22 @@ bool KviPackageWriter::packFile(KviFile * pFile,KviPackageWriterDataField * pDat return true; } -bool KviPackageWriter::pack(const QString &szFileName,kvi_u32_t uPackFlags) +bool KviPackageWriter::pack(const QString & szFileName, kvi_u32_t uPackFlags) { m_p->iCurrentProgress = 0; if(!(uPackFlags & NoProgressDialog)) { - showProgressDialog(__tr2qs("Creating package..."),100); - updateProgress(m_p->iCurrentProgress,__tr2qs("Writing package header")); + showProgressDialog(__tr2qs("Creating package..."), 100); + updateProgress(m_p->iCurrentProgress, __tr2qs("Writing package header")); } - bool bRet = packInternal(szFileName,uPackFlags); + bool bRet = packInternal(szFileName, uPackFlags); hideProgressDialog(); return bRet; } -bool KviPackageWriter::packInternal(const QString &szFileName,kvi_u32_t) +bool KviPackageWriter::packInternal(const QString & szFileName, kvi_u32_t) { KviFile f(szFileName); @@ -390,7 +394,7 @@ bool KviPackageWriter::packInternal(const QString &szFileName,kvi_u32_t) magic[1] = 'V'; magic[2] = 'P'; magic[3] = 'F'; - if(f.write(magic,4) != 4) + if(f.write(magic, 4) != 4) return writeError(); // Version @@ -411,11 +415,11 @@ bool KviPackageWriter::packInternal(const QString &szFileName,kvi_u32_t) return writeError(); m_p->iCurrentProgress = 5; - if(!updateProgress(m_p->iCurrentProgress,__tr2qs("Writing informational fields"))) + if(!updateProgress(m_p->iCurrentProgress, __tr2qs("Writing informational fields"))) return false; // aborted // InfoFields (string) - KviPointerHashTableIterator it(*stringInfoFields()); + KviPointerHashTableIterator it(*stringInfoFields()); while(QString * s = it.current()) { if(!f.save(it.currentKey())) @@ -429,7 +433,7 @@ bool KviPackageWriter::packInternal(const QString &szFileName,kvi_u32_t) } // InfoFields (binary) - KviPointerHashTableIterator it2(*binaryInfoFields()); + KviPointerHashTableIterator it2(*binaryInfoFields()); while(QByteArray * b = it2.current()) { if(!f.save(it2.currentKey())) @@ -443,32 +447,34 @@ bool KviPackageWriter::packInternal(const QString &szFileName,kvi_u32_t) } m_p->iCurrentProgress = 10; - if(!updateProgress(m_p->iCurrentProgress,__tr2qs("Writing package data"))) + if(!updateProgress(m_p->iCurrentProgress, __tr2qs("Writing package data"))) return false; // aborted // write PackageData int iIdx = 0; - for(KviPackageWriterDataField * pDataField = m_p->pDataFields->first();pDataField;pDataField = m_p->pDataFields->next()) + for(KviPackageWriterDataField * pDataField = m_p->pDataFields->first(); pDataField; pDataField = m_p->pDataFields->next()) { kvi_u32_t uKviPackageWriterDataFieldType = pDataField->m_uType; - if(!f.save(uKviPackageWriterDataFieldType))return writeError(); + if(!f.save(uKviPackageWriterDataFieldType)) + return writeError(); kvi_file_offset_t savedLenOffset = f.pos(); // here we will store the length of the field once it's written - if(!f.save(uKviPackageWriterDataFieldType))return writeError(); + if(!f.save(uKviPackageWriterDataFieldType)) + return writeError(); m_p->iCurrentProgress = 10 + ((90 * iIdx) / m_p->pDataFields->count()); switch(pDataField->m_uType) { case KVI_PACKAGE_DATAFIELD_TYPE_FILE: - if(!packFile(&f,pDataField)) + if(!packFile(&f, pDataField)) return false; - break; + break; default: setLastError(__tr2qs("Internal error")); return false; - break; + break; } kvi_file_offset_t savedEndOffset = f.pos(); @@ -482,5 +488,3 @@ bool KviPackageWriter::packInternal(const QString &szFileName,kvi_u32_t) return true; } - - diff --git a/src/kvilib/file/KviPackageWriter.h b/src/kvilib/file/KviPackageWriter.h index 74afdd4a3..b736118e1 100644 --- a/src/kvilib/file/KviPackageWriter.h +++ b/src/kvilib/file/KviPackageWriter.h @@ -43,7 +43,6 @@ class KviFile; class KviPackageWriterPrivate; class KviPackageWriterDataField; - /** * \class KviPackageWriter * \brief This class is used to create KVIrc package files. @@ -54,7 +53,6 @@ class KviPackageWriterDataField; class KVILIB_API KviPackageWriter : public KviPackageIOEngine { public: - /** * \brief Creates the package writer object * \return KviPackageWriter @@ -67,14 +65,12 @@ public: virtual ~KviPackageWriter(); private: - /** * Hidden private data */ KviPackageWriterPrivate * m_p; public: - /** * \enum AddFileFlags */ @@ -179,6 +175,4 @@ private: }; // class KviPackageWriter - - #endif //_KviPackageWriter_h_ diff --git a/src/kvilib/irc/KviAvatar.cpp b/src/kvilib/irc/KviAvatar.cpp index c37ddd1dc..a5a34313e 100644 --- a/src/kvilib/irc/KviAvatar.cpp +++ b/src/kvilib/irc/KviAvatar.cpp @@ -94,45 +94,39 @@ */ KviAvatar::KviAvatar( - const QString &szLocalPath, - const QString &szName, - const QSize& scaleOnLoad - ) + const QString & szLocalPath, + const QString & szName, + const QSize & scaleOnLoad) { - m_bRemote = KviQString::equalCIN("http://",szName,7) || KviQString::equalCIN("https://",szName,8); + m_bRemote = KviQString::equalCIN("http://", szName, 7) || KviQString::equalCIN("https://", szName, 8); m_szLocalPath = szLocalPath; m_szName = szName; m_pPixmap = new KviAnimatedPixmap(szLocalPath); - if(scaleOnLoad.isValid() && ( - scaleOnLoad.height() < size().height() || - scaleOnLoad.width() < size().width() - ) - ) + if(scaleOnLoad.isValid() && (scaleOnLoad.height() < size().height() || scaleOnLoad.width() < size().width())) { - m_pPixmap->resize(scaleOnLoad,Qt::KeepAspectRatio); + m_pPixmap->resize(scaleOnLoad, Qt::KeepAspectRatio); } - m_scaledPixmapsCache.insert(m_pPixmap->size(),m_pPixmap); + m_scaledPixmapsCache.insert(m_pPixmap->size(), m_pPixmap); } KviAvatar::~KviAvatar() { - foreach(KviAnimatedPixmap* pix,m_scaledPixmapsCache) + foreach(KviAnimatedPixmap * pix, m_scaledPixmapsCache) delete pix; } -KviAnimatedPixmap * KviAvatar::forSize(const QSize& size) +KviAnimatedPixmap * KviAvatar::forSize(const QSize & size) { if(m_scaledPixmapsCache.contains(size)) return m_scaledPixmapsCache[size]; - KviAnimatedPixmap* scaledPixmap = new KviAnimatedPixmap(*m_pPixmap); - scaledPixmap->resize(size,Qt::KeepAspectRatio); + KviAnimatedPixmap * scaledPixmap = new KviAnimatedPixmap(*m_pPixmap); + scaledPixmap->resize(size, Qt::KeepAspectRatio); - m_scaledPixmapsCache.insert(size,scaledPixmap); + m_scaledPixmapsCache.insert(size, scaledPixmap); return scaledPixmap; } - diff --git a/src/kvilib/irc/KviAvatar.h b/src/kvilib/irc/KviAvatar.h index 04a7e751f..2bf59398e 100644 --- a/src/kvilib/irc/KviAvatar.h +++ b/src/kvilib/irc/KviAvatar.h @@ -60,33 +60,34 @@ public: * \return KviAvatar */ KviAvatar(const QString & szLocalPath, - const QString & szName, - const QSize & scaleOnLoad = QSize()); + const QString & szName, + const QSize & scaleOnLoad = QSize()); /** * \brief Destroys the avatar object */ ~KviAvatar(); + private: - QString m_szLocalPath; - QString m_szName; - bool m_bRemote; + QString m_szLocalPath; + QString m_szName; + bool m_bRemote; - KviAnimatedPixmap * m_pPixmap; - QHash m_scaledPixmapsCache; + KviAnimatedPixmap * m_pPixmap; + QHash m_scaledPixmapsCache; public: /** * \brief Returns true, if avatar is remote. * \return bool */ - inline bool isRemote(){ return m_bRemote; } + inline bool isRemote() { return m_bRemote; } /** * \brief Returns filepath * \return const QString & */ - inline const QString & localPath(){ return m_szLocalPath; } + inline const QString & localPath() { return m_szLocalPath; } /** * \brief Returns fiename. @@ -94,25 +95,25 @@ public: * For remote avatars, remote address will be returned. * \return const QString & */ - inline const QString & name(){ return m_szName; } + inline const QString & name() { return m_szName; } /** * \brief Returns true, if underlying pixmap contains more then one frame. * \return bool */ - inline bool isAnimated(){ return (m_pPixmap->framesCount() > 1); } + inline bool isAnimated() { return (m_pPixmap->framesCount() > 1); } /** * \brief Returns original pixmap's size * \return const QSize & */ - inline const QSize & size(){ return m_pPixmap->size(); } + inline const QSize & size() { return m_pPixmap->size(); } /** * \brief Returns unscaled original frame. * \return QPixmap * */ - inline QPixmap * pixmap(){ return m_pPixmap->pixmap(); } + inline QPixmap * pixmap() { return m_pPixmap->pixmap(); } /** * \brief Returns true if pixmap has at least one loaded frame. @@ -120,13 +121,13 @@ public: * Returns false otherwise. * \return bool */ - inline bool isValid(){ return m_pPixmap->isValid(); } + inline bool isValid() { return m_pPixmap->isValid(); } /** * \brief Returns original animated pixmap. * \return KviAnimatedPixmap * */ - inline KviAnimatedPixmap * animatedPixmap(){ return m_pPixmap; } + inline KviAnimatedPixmap * animatedPixmap() { return m_pPixmap; } /** * \brief Returns animated pixmap, scaled to the requisted size. @@ -159,7 +160,7 @@ public: * \param uHeight The height of the avatar * \return KviAnimatedPixmap * */ - inline KviAnimatedPixmap * forSize(unsigned int uWidth, unsigned int uHeight){ return forSize(QSize(uWidth,uHeight)); } + inline KviAnimatedPixmap * forSize(unsigned int uWidth, unsigned int uHeight) { return forSize(QSize(uWidth, uHeight)); } /** * \brief Returns the string that uniquely identifies this avatar. @@ -168,7 +169,7 @@ public: * For local avatars the localPath is used instead * \return const QString & */ - const QString & identificationString(){ return m_bRemote ? m_szName : m_szLocalPath; }; + const QString & identificationString() { return m_bRemote ? m_szName : m_szLocalPath; }; }; #endif //_KVI_AVATAR_H_ diff --git a/src/kvilib/irc/KviAvatarCache.cpp b/src/kvilib/irc/KviAvatarCache.cpp index 48462fb6f..22d9db2b9 100644 --- a/src/kvilib/irc/KviAvatarCache.cpp +++ b/src/kvilib/irc/KviAvatarCache.cpp @@ -35,7 +35,6 @@ // keep the unaccessed avatars for 30 days #define MAX_UNACCESSED_TIME (3600 * 24 * 30) - KviAvatarCache * KviAvatarCache::m_pAvatarCacheInstance = 0; void KviAvatarCache::init() @@ -61,10 +60,9 @@ void KviAvatarCache::done() m_pAvatarCacheInstance = 0; } - KviAvatarCache::KviAvatarCache() { - m_pAvatarDict = new KviPointerHashTable(CACHE_DICT_SIZE,false); + m_pAvatarDict = new KviPointerHashTable(CACHE_DICT_SIZE, false); m_pAvatarDict->setAutoDelete(true); } @@ -73,12 +71,11 @@ KviAvatarCache::~KviAvatarCache() delete m_pAvatarDict; } - -void KviAvatarCache::replace(const QString &szIdString,const KviIrcMask &mask,const QString &szNetwork) +void KviAvatarCache::replace(const QString & szIdString, const KviIrcMask & mask, const QString & szNetwork) { QString szKey; - mask.mask(szKey,KviIrcMask::NickCleanUserSmartNet); + mask.mask(szKey, KviIrcMask::NickCleanUserSmartNet); szKey.append(QChar('+')); szKey.append(szNetwork); @@ -86,7 +83,7 @@ void KviAvatarCache::replace(const QString &szIdString,const KviIrcMask &mask,co e->szIdString = szIdString; e->tLastAccess = kvi_unixTime(); - m_pAvatarDict->replace(szKey,e); + m_pAvatarDict->replace(szKey, e); if(m_pAvatarDict->count() > MAX_AVATARS_IN_CACHE) { @@ -94,38 +91,37 @@ void KviAvatarCache::replace(const QString &szIdString,const KviIrcMask &mask,co } } -void KviAvatarCache::remove(const KviIrcMask &mask,const QString &szNetwork) +void KviAvatarCache::remove(const KviIrcMask & mask, const QString & szNetwork) { QString szKey; - mask.mask(szKey,KviIrcMask::NickCleanUserSmartNet); + mask.mask(szKey, KviIrcMask::NickCleanUserSmartNet); szKey.append(QChar('+')); szKey.append(szNetwork); m_pAvatarDict->remove(szKey); } - - -const QString & KviAvatarCache::lookup(const KviIrcMask &mask,const QString &szNetwork) +const QString & KviAvatarCache::lookup(const KviIrcMask & mask, const QString & szNetwork) { QString szKey; - mask.mask(szKey,KviIrcMask::NickCleanUserSmartNet); + mask.mask(szKey, KviIrcMask::NickCleanUserSmartNet); szKey.append(QChar('+')); szKey.append(szNetwork); KviAvatarCacheEntry * e = m_pAvatarDict->find(szKey); - if(!e)return KviQString::Empty; + if(!e) + return KviQString::Empty; e->tLastAccess = kvi_unixTime(); return e->szIdString; } -void KviAvatarCache::load(const QString &szFileName) +void KviAvatarCache::load(const QString & szFileName) { m_pAvatarDict->clear(); - KviConfigurationFile cfg(szFileName,KviConfigurationFile::Read); + KviConfigurationFile cfg(szFileName, KviConfigurationFile::Read); kvi_time_t tNow = kvi_unixTime(); @@ -137,39 +133,40 @@ void KviAvatarCache::load(const QString &szFileName) { cfg.setGroup(it.currentKey()); - kvi_time_t tLastAccess = cfg.readUIntEntry("LastAccess",0); + kvi_time_t tLastAccess = cfg.readUIntEntry("LastAccess", 0); if((tNow - tLastAccess) < MAX_UNACCESSED_TIME) { - QString szIdString = cfg.readEntry("Avatar",""); + QString szIdString = cfg.readEntry("Avatar", ""); if(!szIdString.isEmpty()) { KviAvatarCacheEntry * e = new KviAvatarCacheEntry; e->tLastAccess = tLastAccess; e->szIdString = szIdString; - m_pAvatarDict->replace(it.currentKey(),e); + m_pAvatarDict->replace(it.currentKey(), e); cnt++; - if(cnt >= MAX_AVATARS_IN_CACHE)return; // done + if(cnt >= MAX_AVATARS_IN_CACHE) + return; // done } } ++it; } } -void KviAvatarCache::save(const QString &szFileName) +void KviAvatarCache::save(const QString & szFileName) { - KviConfigurationFile cfg(szFileName,KviConfigurationFile::Write); -// cfg.clear(); // not needed with KviConfigurationFile::Write + KviConfigurationFile cfg(szFileName, KviConfigurationFile::Write); + // cfg.clear(); // not needed with KviConfigurationFile::Write - KviPointerHashTableIterator it(*m_pAvatarDict); + KviPointerHashTableIterator it(*m_pAvatarDict); while(KviAvatarCacheEntry * e = it.current()) { if(e->tLastAccess) { cfg.setGroup(it.currentKey()); - cfg.writeEntry("Avatar",e->szIdString); - cfg.writeEntry("LastAccess",((unsigned int)(e->tLastAccess))); + cfg.writeEntry("Avatar", e->szIdString); + cfg.writeEntry("LastAccess", ((unsigned int)(e->tLastAccess))); } ++it; } @@ -178,7 +175,7 @@ void KviAvatarCache::save(const QString &szFileName) void KviAvatarCache::cleanup() { // first do a quick run deleting the avatars really too old - KviPointerHashTableIterator it(*m_pAvatarDict); + KviPointerHashTableIterator it(*m_pAvatarDict); kvi_time_t tNow = kvi_unixTime(); @@ -196,9 +193,11 @@ void KviAvatarCache::cleanup() ++it; } - for(QString *s = l.first();s;s = l.next())m_pAvatarDict->remove(*s); + for(QString * s = l.first(); s; s = l.next()) + m_pAvatarDict->remove(*s); - if(m_pAvatarDict->count() < CACHE_GUARD_LEVEL)return; + if(m_pAvatarDict->count() < CACHE_GUARD_LEVEL) + return; // not done.. need to kill the last accessed :/ @@ -218,7 +217,8 @@ void KviAvatarCache::cleanup() { // if the current is newer than the inserted one // then stop searching and insert it just before - if(current->tLastAccess > e->tLastAccess)break; + if(current->tLastAccess > e->tLastAccess) + break; // otherwise the current is older and the inserted // one goes after current = ll.next(); @@ -229,17 +229,20 @@ void KviAvatarCache::cleanup() xx->szIdString = it.currentKey(); xx->tLastAccess = e->tLastAccess; - if(current)ll.insert(idx,xx); - else ll.append(xx); + if(current) + ll.insert(idx, xx); + else + ll.append(xx); ++it; } // the oldest keys are at the beginning int uRemove = ll.count() - CACHE_GUARD_LEVEL; - if(uRemove < 1)return; // huh ? + if(uRemove < 1) + return; // huh ? // remember that szAvatar contains the key! - for(e = ll.first();e && (uRemove > 0);e = ll.next()) + for(e = ll.first(); e && (uRemove > 0); e = ll.next()) { m_pAvatarDict->remove(e->szIdString); uRemove--; diff --git a/src/kvilib/irc/KviAvatarCache.h b/src/kvilib/irc/KviAvatarCache.h index 886d58292..0e62b57d6 100644 --- a/src/kvilib/irc/KviAvatarCache.h +++ b/src/kvilib/irc/KviAvatarCache.h @@ -43,7 +43,7 @@ */ typedef struct _KviAvatarCacheEntry { - QString szIdString; /**< The id of the avatar */ + QString szIdString; /**< The id of the avatar */ kvi_time_t tLastAccess; /**< The time the avatar was last accessed */ } KviAvatarCacheEntry; @@ -64,10 +64,13 @@ protected: * \brief Destroys the avatar cache object */ ~KviAvatarCache(); + public: - KviPointerHashTable * m_pAvatarDict; + KviPointerHashTable * m_pAvatarDict; + protected: static KviAvatarCache * m_pAvatarCacheInstance; + public: /** * \brief Initializes the avatar cache @@ -85,7 +88,7 @@ public: * \brief Returns the instance of the avatar cache * \return KviAvatarCache * */ - static KviAvatarCache * instance(){ return m_pAvatarCacheInstance; }; + static KviAvatarCache * instance() { return m_pAvatarCacheInstance; }; /** * \brief Replaces a cached avatar diff --git a/src/kvilib/irc/KviControlCodes.cpp b/src/kvilib/irc/KviControlCodes.cpp index 3d5891a1e..acaf6f2a5 100644 --- a/src/kvilib/irc/KviControlCodes.cpp +++ b/src/kvilib/irc/KviControlCodes.cpp @@ -47,20 +47,20 @@ namespace KviControlCodes case KviControlCodes::CryptEscape: case KviControlCodes::CTCP: if(i != iBegin) - szRet += szData.mid(iBegin,i - iBegin); + szRet += szData.mid(iBegin, i - iBegin); i++; iBegin = i; - break; + break; case KviControlCodes::Color: if(i != iBegin) - szRet += szData.mid(iBegin,i - iBegin); + szRet += szData.mid(iBegin, i - iBegin); i++; - i = getUnicodeColorBytes(szData,i,&c1,&c2); + i = getUnicodeColorBytes(szData, i, &c1, &c2); iBegin = i; - break; + break; case KviControlCodes::Icon: if(i != iBegin) - szRet += szData.mid(iBegin,i - iBegin); + szRet += szData.mid(iBegin, i - iBegin); i++; /* * These lines will strip out the first word following the icon escape character @@ -72,14 +72,14 @@ namespace KviControlCodes } */ iBegin = i; - break; + break; default: i++; - break; + break; } } if(i != iBegin) - szRet += szData.mid(iBegin,i - iBegin); + szRet += szData.mid(iBegin, i - iBegin); return szRet; } @@ -91,58 +91,68 @@ namespace KviControlCodes // //First we can have a digit or a comma - if(((*pwData >= '0') && (*pwData <='9'))) + if(((*pwData >= '0') && (*pwData <= '9'))) { //Something interesting ok. - (*pcByte1) = ((*pwData)-'0'); //store the code - pwData++; //and check the next - if(((*pwData >= '0') && (*pwData <= '9')) || (*pwData==',')) + (*pcByte1) = ((*pwData) - '0'); //store the code + pwData++; //and check the next + if(((*pwData >= '0') && (*pwData <= '9')) || (*pwData == ',')) { //Yes we can understand it if(*pwData == ',') { //A comma, need to check for background pwData++; - } else { + } + else + { //A number //(*pcByte1)=((((*pcByte1)*10)+((*pwData)-'0'))%16); - (*pcByte1) = ((*pcByte1)*10) + ((*pwData)-'0'); + (*pcByte1) = ((*pcByte1) * 10) + ((*pwData) - '0'); pwData++; if(*pwData == ',') { //A comma, need to check for background pwData++; - } else { + } + else + { //Senseless return (*pcByte2) = KviControlCodes::NoChange; return pwData; } } - } else { + } + else + { //Senseless character control code OK and return (*pcByte2) = KviControlCodes::NoChange; return pwData; } - } else { + } + else + { //Senseless character : only a CTRL+K code (*pcByte1) = KviControlCodes::NoChange; (*pcByte2) = KviControlCodes::NoChange; return pwData; } - if((*pwData >= '0') && (*pwData <='9')) + if((*pwData >= '0') && (*pwData <= '9')) { //Background, a color code - (*pcByte2) = (*pwData)-'0'; + (*pcByte2) = (*pwData) - '0'; pwData++; - if((*pwData >= '0') && (*pwData <='9')) + if((*pwData >= '0') && (*pwData <= '9')) { //(*pcByte2)=((((*pcByte2)*10)+((*pwData)-'0'))%16); - (*pcByte2) = ((*pcByte2)*10)+((*pwData)-'0'); + (*pcByte2) = ((*pcByte2) * 10) + ((*pwData) - '0'); pwData++; } return pwData; - } else { + } + else + { (*pcByte2) = KviControlCodes::NoChange; return pwData - 1; } @@ -192,7 +202,7 @@ namespace KviControlCodes if((c >= '0') && (c <= '9')) { - (*pcByte1) = (((*pcByte1)*10)+(c-'0'))%16; + (*pcByte1) = (((*pcByte1) * 10) + (c - '0')) % 16; iChar++; if(iChar >= (unsigned int)szData.length()) { @@ -211,7 +221,9 @@ namespace KviControlCodes return iChar; } c = szData[(int)iChar].unicode(); - } else { + } + else + { (*pcByte2) = KviControlCodes::NoChange; return iChar; } @@ -219,22 +231,22 @@ namespace KviControlCodes if((c < '0') || (c > '9')) { (*pcByte2) = KviControlCodes::NoChange; - if(szData[(int)(iChar-1)].unicode()==',') - return iChar-1; + if(szData[(int)(iChar - 1)].unicode() == ',') + return iChar - 1; else return iChar; } //Background, a color code - (*pcByte2) = c-'0'; + (*pcByte2) = c - '0'; iChar++; if(iChar >= (unsigned int)szData.length()) return iChar; c = szData[(int)iChar].unicode(); - if((c >= '0') && (c <='9')) + if((c >= '0') && (c <= '9')) { - (*pcByte2) = (((*pcByte2)*10) + (c-'0')) % 16; + (*pcByte2) = (((*pcByte2) * 10) + (c - '0')) % 16; iChar++; } diff --git a/src/kvilib/irc/KviControlCodes.h b/src/kvilib/irc/KviControlCodes.h index e9a058a10..0f46b9db8 100644 --- a/src/kvilib/irc/KviControlCodes.h +++ b/src/kvilib/irc/KviControlCodes.h @@ -46,8 +46,6 @@ #define KVI_MIRCCOLOR_MAX_FOREGROUND 15 #define KVI_MIRCCOLOR_MAX_BACKGROUND 15 - - // ASCII Stuff: the following defines are meant to be escape sequences // that can go through an IRC connection @@ -91,7 +89,6 @@ // 030 RS Record separator ( CRYPT Escape: only beginning of the message ) // 031 US Unit separator ( Underline text ) - // // mIrc control codes // @@ -115,7 +112,6 @@ //30 (0001 1110) RS (Record separator) //29 (0001 1101) GS (Group separator) - /** * \namespace KviControlCodes * \brief Holds all text control code KVIrc uses @@ -126,43 +122,45 @@ namespace KviControlCodes * \enum Color * \brief Contains mIRC color codes */ - enum Color { - White = 0, /**< White */ - Black = 1, /**< Black */ - DarkBlue = 2, /**< Dark blue */ - DarkGreen = 3, /**< Dark green */ - Red = 4, /**< Red */ - DarkRed = 5, /**< Dark red */ - DarkViolet = 6, /**< Dark violet */ - Orange = 7, /**< Orange */ - Yellow = 8, /**< Yellow */ - LightGreen = 9, /**< Light green */ - BlueMarine = 10, /**< Blue marine */ - LightBlue = 11, /**< Light blue */ - Blue = 12, /**< Blue */ - LightViolet = 13, /**< Light violet */ - DarkGray = 14, /**< Dark gray */ - LightGray = 15, /**< Light gray */ - Transparent = 100, /**< Transparent, non standard color code for KviIrcView */ - NoChange = 101 /**< No change, non standard color code for KviIrcView */ + enum Color + { + White = 0, /**< White */ + Black = 1, /**< Black */ + DarkBlue = 2, /**< Dark blue */ + DarkGreen = 3, /**< Dark green */ + Red = 4, /**< Red */ + DarkRed = 5, /**< Dark red */ + DarkViolet = 6, /**< Dark violet */ + Orange = 7, /**< Orange */ + Yellow = 8, /**< Yellow */ + LightGreen = 9, /**< Light green */ + BlueMarine = 10, /**< Blue marine */ + LightBlue = 11, /**< Light blue */ + Blue = 12, /**< Blue */ + LightViolet = 13, /**< Light violet */ + DarkGray = 14, /**< Dark gray */ + LightGray = 15, /**< Light gray */ + Transparent = 100, /**< Transparent, non standard color code for KviIrcView */ + NoChange = 101 /**< No change, non standard color code for KviIrcView */ }; /** * \enum Control * \brief Contains mIRC control codes */ - enum Control { - CTCP = 0x01, /**< CTCP, IRC control code */ - Bold = 0x02, /**< Bold */ - Color = 0x03, /**< Color */ - Escape = 0x04, /**< Escape, totally artificial and internal to KviIrcView */ - UnEscape = 0x05, /**< Unescape, totally artificial and internal to KviIrcView */ - UnIcon = 0x06, /**< Unicon, totally artificial and internal to KviIrcView */ - Reset = 0x0f, /**< Reset */ - Reverse = 0x16, /**< Reverse */ - Icon = 0x1d, /**< Icon, KVIrc control code */ - CryptEscape = 0x1e, /**< Crypt escape, KVIrc control code */ - Underline = 0x1f /**< Underline */ + enum Control + { + CTCP = 0x01, /**< CTCP, IRC control code */ + Bold = 0x02, /**< Bold */ + Color = 0x03, /**< Color */ + Escape = 0x04, /**< Escape, totally artificial and internal to KviIrcView */ + UnEscape = 0x05, /**< Unescape, totally artificial and internal to KviIrcView */ + UnIcon = 0x06, /**< Unicon, totally artificial and internal to KviIrcView */ + Reset = 0x0f, /**< Reset */ + Reverse = 0x16, /**< Reverse */ + Icon = 0x1d, /**< Icon, KVIrc control code */ + CryptEscape = 0x1e, /**< Crypt escape, KVIrc control code */ + Underline = 0x1f /**< Underline */ }; /** @@ -172,7 +170,6 @@ namespace KviControlCodes */ KVILIB_API QString stripControlBytes(const QString & szData); - KVILIB_API const kvi_wchar_t * getColorBytesW(const kvi_wchar_t * pwData, unsigned char * pcByte1, unsigned char * pcByte2); KVILIB_API unsigned int getUnicodeColorBytes(const QString & szData, unsigned int iChar, unsigned char * pcByte1, unsigned char * pcByte2); diff --git a/src/kvilib/irc/KviIdentityProfile.cpp b/src/kvilib/irc/KviIdentityProfile.cpp index 8225cc41c..943504ee0 100644 --- a/src/kvilib/irc/KviIdentityProfile.cpp +++ b/src/kvilib/irc/KviIdentityProfile.cpp @@ -26,7 +26,7 @@ #include "KviConfigurationFile.h" KviIdentityProfile::KviIdentityProfile() -: KviHeapObject() + : KviHeapObject() { } @@ -49,17 +49,17 @@ void KviIdentityProfile::save(KviConfigurationFile * pCfg, const QString & szPre QString szTmp; szTmp = QString("%1Name").arg(szPrefix); - pCfg->writeEntry(szTmp,m_szName); + pCfg->writeEntry(szTmp, m_szName); szTmp = QString("%1Network").arg(szPrefix); - pCfg->writeEntry(szTmp,m_szNetwork); + pCfg->writeEntry(szTmp, m_szNetwork); szTmp = QString("%1Nick").arg(szPrefix); - pCfg->writeEntry(szTmp,m_szNick); + pCfg->writeEntry(szTmp, m_szNick); szTmp = QString("%1AltNick").arg(szPrefix); - pCfg->writeEntry(szTmp,m_szAltNick); + pCfg->writeEntry(szTmp, m_szAltNick); szTmp = QString("%1UserName").arg(szPrefix); - pCfg->writeEntry(szTmp,m_szUserName); + pCfg->writeEntry(szTmp, m_szUserName); szTmp = QString("%1RealName").arg(szPrefix); - pCfg->writeEntry(szTmp,m_szRealName); + pCfg->writeEntry(szTmp, m_szRealName); } bool KviIdentityProfile::load(KviConfigurationFile * pCfg, const QString & szPrefix) diff --git a/src/kvilib/irc/KviIdentityProfile.h b/src/kvilib/irc/KviIdentityProfile.h index 00e5e047d..774fc8299 100644 --- a/src/kvilib/irc/KviIdentityProfile.h +++ b/src/kvilib/irc/KviIdentityProfile.h @@ -56,6 +56,7 @@ public: * \return KviIdentityProfile */ ~KviIdentityProfile(); + protected: QString m_szName; QString m_szNetwork; @@ -63,6 +64,7 @@ protected: QString m_szAltNick; QString m_szUserName; QString m_szRealName; + public: /** * \brief Returns the name of the profile @@ -105,42 +107,42 @@ public: * \param szName The name of the profile * \return void */ - void setName(const QString & szName){ m_szName = szName; }; + void setName(const QString & szName) { m_szName = szName; }; /** * \brief Sets the network of the profile * \param szNetwork The network of the profile * \return void */ - void setNetwork(const QString & szNetwork){ m_szNetwork = szNetwork; }; + void setNetwork(const QString & szNetwork) { m_szNetwork = szNetwork; }; /** * \brief Sets the nickname of the profile * \param szNick The nickname of the profile * \return void */ - void setNick(const QString & szNick){ m_szNick = szNick; }; + void setNick(const QString & szNick) { m_szNick = szNick; }; /** * \brief Sets the alternative nickname of the profile * \param szAltNick The alternative nickname of the profile * \return void */ - void setAltNick(const QString & szAltNick){ m_szAltNick = szAltNick; }; + void setAltNick(const QString & szAltNick) { m_szAltNick = szAltNick; }; /** * \brief Sets the username of the profile * \param szUserName The username of the profile * \return void */ - void setUserName(const QString & szUserName){ m_szUserName = szUserName; }; + void setUserName(const QString & szUserName) { m_szUserName = szUserName; }; /** * \brief Sets the realname of the profile * \param szRealName The realname of the profile * \return void */ - void setRealName(const QString & szRealName){ m_szRealName = szRealName; }; + void setRealName(const QString & szRealName) { m_szRealName = szRealName; }; /** * \brief Carbon copy diff --git a/src/kvilib/irc/KviIdentityProfileSet.cpp b/src/kvilib/irc/KviIdentityProfileSet.cpp index 2b8121ac1..73121866d 100644 --- a/src/kvilib/irc/KviIdentityProfileSet.cpp +++ b/src/kvilib/irc/KviIdentityProfileSet.cpp @@ -29,7 +29,7 @@ KviIdentityProfileSet * KviIdentityProfileSet::m_pSelf = NULL; unsigned int KviIdentityProfileSet::m_uCount = 0; KviIdentityProfileSet::KviIdentityProfileSet() -: KviHeapObject() + : KviHeapObject() { m_bEnabled = false; m_pProfiles = 0; @@ -43,7 +43,8 @@ KviIdentityProfileSet::KviIdentityProfileSet(const KviIdentityProfileSet & set) KviIdentityProfileSet::~KviIdentityProfileSet() { - if(m_pProfiles) delete m_pProfiles; + if(m_pProfiles) + delete m_pProfiles; } void KviIdentityProfileSet::init() @@ -74,12 +75,13 @@ void KviIdentityProfileSet::clear() KviIdentityProfile * KviIdentityProfileSet::findName(const QString & szName) { - if(!m_pProfiles) return 0; + if(!m_pProfiles) + return 0; KviIdentityProfile * pProfile; for(pProfile = m_pProfiles->first(); pProfile; pProfile = m_pProfiles->next()) { - if(KviQString::matchString(pProfile->name(),szName,false,true)) + if(KviQString::matchString(pProfile->name(), szName, false, true)) return pProfile; } @@ -88,12 +90,13 @@ KviIdentityProfile * KviIdentityProfileSet::findName(const QString & szName) KviIdentityProfile * KviIdentityProfileSet::findNetwork(const QString & szNetwork) { - if(!m_pProfiles) return 0; + if(!m_pProfiles) + return 0; KviIdentityProfile * pProfile; for(pProfile = m_pProfiles->first(); pProfile; pProfile = m_pProfiles->next()) { - if(KviQString::matchString(pProfile->network(),szNetwork,false,true)) + if(KviQString::matchString(pProfile->network(), szNetwork, false, true)) return pProfile; } @@ -104,8 +107,10 @@ void KviIdentityProfileSet::copyFrom(const KviIdentityProfileSet & src) { if(src.m_pProfiles) { - if(m_pProfiles) m_pProfiles->clear(); - else { + if(m_pProfiles) + m_pProfiles->clear(); + else + { m_pProfiles = new KviPointerList; m_pProfiles->setAutoDelete(true); } @@ -122,10 +127,14 @@ void KviIdentityProfileSet::copyFrom(const KviIdentityProfileSet & src) m_bEnabled = false; delete m_pProfiles; m_pProfiles = 0; - } else { + } + else + { m_bEnabled = src.m_bEnabled; } - } else { + } + else + { m_bEnabled = false; if(m_pProfiles) { @@ -149,21 +158,21 @@ void KviIdentityProfileSet::addProfile(KviIdentityProfile * pProfile) void KviIdentityProfileSet::load(const QString & szConfigFile) { clear(); - KviConfigurationFile cfg(szConfigFile,KviConfigurationFile::Read); + KviConfigurationFile cfg(szConfigFile, KviConfigurationFile::Read); QString szTmp = "ProfilesNumber"; - unsigned int uCount = cfg.readUIntEntry(szTmp,0); + unsigned int uCount = cfg.readUIntEntry(szTmp, 0); if(uCount == 0) return; - loadPrivate(&cfg,QString(""),uCount); + loadPrivate(&cfg, QString(""), uCount); } void KviIdentityProfileSet::save(const QString & szConfigFile) { - KviConfigurationFile cfg(szConfigFile,KviConfigurationFile::Write); + KviConfigurationFile cfg(szConfigFile, KviConfigurationFile::Write); cfg.clear(); - save(&cfg,QString("")); + save(&cfg, QString("")); } void KviIdentityProfileSet::save(KviConfigurationFile * pCfg, const QString & szPrefix) @@ -177,25 +186,27 @@ void KviIdentityProfileSet::save(KviConfigurationFile * pCfg, const QString & sz if(m_bEnabled) { szTmp = QString("%1ProfilesEnabled").arg(szPrefix); - pCfg->writeEntry(szTmp,m_bEnabled); + pCfg->writeEntry(szTmp, m_bEnabled); } szTmp = QString("%1ProfilesNumber").arg(szPrefix); - pCfg->writeEntry(szTmp,m_pProfiles->count()); + pCfg->writeEntry(szTmp, m_pProfiles->count()); int iIdx = 0; for(KviIdentityProfile * pProfile = m_pProfiles->first(); pProfile; pProfile = m_pProfiles->next()) { szTmp = QString("%1Profile%2_").arg(szPrefix).arg(iIdx); - pProfile->save(pCfg,szTmp); + pProfile->save(pCfg, szTmp); iIdx++; } } bool KviIdentityProfileSet::loadPrivate(KviConfigurationFile * pCfg, const QString & szPrefix, unsigned int uEntries) { - if(m_pProfiles) m_pProfiles->clear(); - else { + if(m_pProfiles) + m_pProfiles->clear(); + else + { m_pProfiles = new KviPointerList; m_pProfiles->setAutoDelete(true); } @@ -203,15 +214,16 @@ bool KviIdentityProfileSet::loadPrivate(KviConfigurationFile * pCfg, const QStri if(uEntries != 0) { QString szTmp = QString("%1ProfilesEnabled").arg(szPrefix); - m_bEnabled = pCfg->readBoolEntry(szTmp,false); + m_bEnabled = pCfg->readBoolEntry(szTmp, false); for(unsigned int u = 0; u < uEntries; u++) { - szTmp = QString("%1Profile%2_").arg(szPrefix,u); + szTmp = QString("%1Profile%2_").arg(szPrefix, u); KviIdentityProfile * pProfile = new KviIdentityProfile(); - if(!pProfile->load(pCfg,szTmp)) + if(!pProfile->load(pCfg, szTmp)) delete pProfile; - else m_pProfiles->append(pProfile); + else + m_pProfiles->append(pProfile); } } diff --git a/src/kvilib/irc/KviIdentityProfileSet.h b/src/kvilib/irc/KviIdentityProfileSet.h index dc778789e..94268b358 100644 --- a/src/kvilib/irc/KviIdentityProfileSet.h +++ b/src/kvilib/irc/KviIdentityProfileSet.h @@ -63,12 +63,15 @@ public: * \brief Destroys the identity profile set object */ ~KviIdentityProfileSet(); + private: static KviIdentityProfileSet * m_pSelf; - static unsigned int m_uCount; + static unsigned int m_uCount; + protected: KviPointerList * m_pProfiles; - bool m_bEnabled; + bool m_bEnabled; + public: /** * \brief Initializes the class instance @@ -86,19 +89,19 @@ public: * \brief Returns the instance of the class * \return KviIdentityProfileSet * */ - static inline KviIdentityProfileSet * instance(){ return m_pSelf; }; + static inline KviIdentityProfileSet * instance() { return m_pSelf; }; /** * \brief Returns the number of instances of the class * \return unsigned int */ - unsigned int count(){ return m_uCount; }; + unsigned int count() { return m_uCount; }; /** * \brief Returns the profiles set * \return KviPointerList * */ - KviPointerList * profiles(){ return m_pProfiles; }; + KviPointerList * profiles() { return m_pProfiles; }; /** * \brief Searches for a profile name. Returns true if the profile exists @@ -124,20 +127,20 @@ public: * \brief Returns true if the profile set is empty * \return bool */ - bool isEmpty(){ return m_pProfiles ? m_pProfiles->isEmpty() : true; }; + bool isEmpty() { return m_pProfiles ? m_pProfiles->isEmpty() : true; }; /** * \brief Returns true if the profile set is enabled * \return bool */ - bool isEnabled(){ return m_bEnabled; }; + bool isEnabled() { return m_bEnabled; }; /** * \brief Enables the profile set * \param bEnabled Whether to enable the profile set * \return void */ - void setEnabled(bool bEnabled){ m_bEnabled = bEnabled; }; + void setEnabled(bool bEnabled) { m_bEnabled = bEnabled; }; /** * \brief Carbon copy @@ -174,6 +177,7 @@ public: * \return void */ void save(KviConfigurationFile * pCfg, const QString & szPrefix); + protected: /** * \brief Loads the configuration of the profiles from file diff --git a/src/kvilib/irc/KviIrcMask.cpp b/src/kvilib/irc/KviIrcMask.cpp index b7406b2d8..673c58850 100644 --- a/src/kvilib/irc/KviIrcMask.cpp +++ b/src/kvilib/irc/KviIrcMask.cpp @@ -94,33 +94,33 @@ */ static unsigned char ucMaskTable[27][3] = { - { 0 , 0 , 0 }, //0 means normal block - { 0 , 0 , 2 }, //2 in the third field means type *.abc.host.top (or XXX.XXX.XXX.*) host mask - { 0 , 0 , 1 }, //2 in the second field means *user (strip prefixes) - { 0 , 1 , 0 }, //1 means * - { 0 , 1 , 2 }, //3 in the third field means type *.host.top (or XXX.XXX.*) host mask - { 0 , 1 , 1 }, //4 in the third field is like 3 but tries to detect masked ip addresses too - { 1 , 0 , 0 }, - { 1 , 0 , 2 }, - { 1 , 0 , 1 }, - { 1 , 1 , 0 }, - { 1 , 1 , 2 }, - { 0 , 2 , 0 }, - { 0 , 2 , 2 }, - { 0 , 2 , 1 }, - { 1 , 2 , 0 }, - { 1 , 2 , 2 }, - { 1 , 2 , 1 }, - { 0 , 0 , 3 }, - { 0 , 1 , 3 }, - { 1 , 0 , 3 }, - { 0 , 2 , 3 }, - { 1 , 2 , 3 }, - { 0 , 0 , 4 }, - { 0 , 1 , 4 }, - { 1 , 0 , 4 }, - { 0 , 2 , 4 }, - { 1 , 2 , 4 } + { 0, 0, 0 }, //0 means normal block + { 0, 0, 2 }, //2 in the third field means type *.abc.host.top (or XXX.XXX.XXX.*) host mask + { 0, 0, 1 }, //2 in the second field means *user (strip prefixes) + { 0, 1, 0 }, //1 means * + { 0, 1, 2 }, //3 in the third field means type *.host.top (or XXX.XXX.*) host mask + { 0, 1, 1 }, //4 in the third field is like 3 but tries to detect masked ip addresses too + { 1, 0, 0 }, + { 1, 0, 2 }, + { 1, 0, 1 }, + { 1, 1, 0 }, + { 1, 1, 2 }, + { 0, 2, 0 }, + { 0, 2, 2 }, + { 0, 2, 1 }, + { 1, 2, 0 }, + { 1, 2, 2 }, + { 1, 2, 1 }, + { 0, 0, 3 }, + { 0, 1, 3 }, + { 1, 0, 3 }, + { 0, 2, 3 }, + { 1, 2, 3 }, + { 0, 0, 4 }, + { 0, 1, 4 }, + { 1, 0, 4 }, + { 0, 2, 4 }, + { 1, 2, 4 } }; KviIrcMask::KviIrcMask() @@ -142,12 +142,14 @@ KviIrcMask::KviIrcMask(const QString & szMask) if(pChar2->unicode()) { if(pChar2 != pChar) - m_szNick.setUnicode(pChar,pChar2-pChar); + m_szNick.setUnicode(pChar, pChar2 - pChar); else m_szNick = szWild; // ??? - } else { + } + else + { if(pChar2 != pChar) - m_szNick.setUnicode(pChar,pChar2-pChar); + m_szNick.setUnicode(pChar, pChar2 - pChar); else m_szNick = szWild; // ??? m_szUser = szWild; @@ -161,12 +163,14 @@ KviIrcMask::KviIrcMask(const QString & szMask) if(pChar2->unicode()) { if(pChar2 != pChar) - m_szUser.setUnicode(pChar,pChar2-pChar); + m_szUser.setUnicode(pChar, pChar2 - pChar); else m_szUser = szWild; // ??? - } else { + } + else + { if(pChar2 != pChar) - m_szUser.setUnicode(pChar,pChar2-pChar); + m_szUser.setUnicode(pChar, pChar2 - pChar); else m_szUser = szWild; // ??? m_szHost = szWild; @@ -177,11 +181,12 @@ KviIrcMask::KviIrcMask(const QString & szMask) while(pChar2->unicode()) pChar2++; if(pChar2 != pChar) - m_szHost.setUnicode(pChar,pChar2-pChar); + m_szHost.setUnicode(pChar, pChar2 - pChar); else m_szHost = szWild; // ??? - - } else { + } + else + { m_szUser = szWild; m_szHost = szWild; m_szNick = szWild; @@ -206,10 +211,12 @@ bool KviIrcMask::hasNumericHost() const { if(uc == '.') iPoints++; // ipv6 masks can contain dots too! - else { + else + { if(uc == ':') iDoublePoints++; - else { + else + { if((uc < '0') || (uc > '9')) { uc = pChar->toUpper().unicode(); @@ -225,7 +232,7 @@ bool KviIrcMask::hasNumericHost() const void KviIrcMask::mask(QString & szMask, MaskType eMaskType) const { - if((((int)eMaskType) > 26)||(((int)eMaskType) < 0)) + if((((int)eMaskType) > 26) || (((int)eMaskType) < 0)) eMaskType = NickUserHost; szMask = ucMaskTable[((int)eMaskType)][0] ? m_szWild : m_szNick; szMask.append("!"); @@ -242,16 +249,12 @@ void KviIrcMask::mask(QString & szMask, MaskType eMaskType) const { if(m_szUser[0].unicode() != '*') szMask.append(m_szWild); - if((m_szUser[0].unicode() == '~') || - (m_szUser[0].unicode() == '^') || - (m_szUser[0].unicode() == '+') || - (m_szUser[0].unicode() == '-') || - (m_szUser[0].unicode() == '=')) + if((m_szUser[0].unicode() == '~') || (m_szUser[0].unicode() == '^') || (m_szUser[0].unicode() == '+') || (m_szUser[0].unicode() == '-') || (m_szUser[0].unicode() == '=')) szMask.append(m_szUser.right(m_szUser.length() - 1)); else szMask.append(m_szUser); } - break; + break; } szMask.append('@'); switch(ucMaskTable[((int)eMaskType)][2]) @@ -270,11 +273,15 @@ void KviIrcMask::mask(QString & szMask, MaskType eMaskType) const QString szHost(m_szHost.left(getIpDomainMaskLen())); szMask.append(szHost); szMask.append(m_szWild); - } else { + } + else + { szMask.append(m_szWild); szMask.append(getHostDomainMask()); } - } else { + } + else + { szMask.append(m_szWild); } break; @@ -286,11 +293,15 @@ void KviIrcMask::mask(QString & szMask, MaskType eMaskType) const QString szHost(m_szHost.left(getLargeIpDomainMaskLen())); szMask.append(szHost); szMask.append(m_szWild); - } else { + } + else + { szMask.append(m_szWild); szMask.append(getLargeHostDomainMask()); } - } else { + } + else + { szMask.append(m_szWild); } break; @@ -302,11 +313,15 @@ void KviIrcMask::mask(QString & szMask, MaskType eMaskType) const QString szHost(m_szHost.left(getLargeIpDomainMaskLen())); szMask.append(szHost); szMask.append(m_szWild); - } else { + } + else + { szMask.append(m_szWild); szMask.append(getLargeHostDomainMask()); } - } else { + } + else + { szMask.append(m_szWild); } break; @@ -315,11 +330,11 @@ void KviIrcMask::mask(QString & szMask, MaskType eMaskType) const bool KviIrcMask::matches(const KviIrcMask & mask) const { - if(KviQString::matchWildExpressions(m_szNick,mask.m_szNick)) + if(KviQString::matchWildExpressions(m_szNick, mask.m_szNick)) { - if(KviQString::matchWildExpressions(m_szUser,mask.m_szUser)) + if(KviQString::matchWildExpressions(m_szUser, mask.m_szUser)) { - if(KviQString::matchWildExpressions(m_szHost,mask.m_szHost)) + if(KviQString::matchWildExpressions(m_szHost, mask.m_szHost)) return true; } } @@ -328,11 +343,11 @@ bool KviIrcMask::matches(const KviIrcMask & mask) const bool KviIrcMask::matchesFixed(const KviIrcMask & mask) const { - if(matchWildString(m_szNick,mask.m_szNick)) + if(matchWildString(m_szNick, mask.m_szNick)) { - if(matchWildString(m_szUser,mask.m_szUser)) + if(matchWildString(m_szUser, mask.m_szUser)) { - if(matchWildString(m_szHost,mask.m_szHost)) + if(matchWildString(m_szHost, mask.m_szHost)) return true; } } @@ -341,11 +356,11 @@ bool KviIrcMask::matchesFixed(const KviIrcMask & mask) const bool KviIrcMask::matchesFixed(const QString & szNick, const QString & szUser, const QString & szHost) const { - if(!matchWildString(m_szNick,szNick)) + if(!matchWildString(m_szNick, szNick)) return false; - if(!matchWildString(m_szUser,szUser)) + if(!matchWildString(m_szUser, szUser)) return false; - if(!matchWildString(m_szHost,szHost)) + if(!matchWildString(m_szHost, szHost)) return false; return true; } @@ -353,7 +368,7 @@ bool KviIrcMask::matchesFixed(const QString & szNick, const QString & szUser, co bool KviIrcMask::matchWildString(const QString & szExp, const QString & szStr) const { QString szWildcard; - QChar * pPtr = (QChar*)szExp.constData(); + QChar * pPtr = (QChar *)szExp.constData(); if(!pPtr) return 0; @@ -365,7 +380,9 @@ bool KviIrcMask::matchWildString(const QString & szExp, const QString & szStr) c szWildcard.append("["); szWildcard.append(*pPtr); szWildcard.append("]"); - } else { + } + else + { szWildcard.append(*pPtr); } pPtr++; @@ -390,10 +407,9 @@ int KviIrcMask::getIpDomainMaskLen() const // 000.000.000.000 // pChar // - return (pChar == pChar2) ? 0 : ((pChar-pChar2) + 1); + return (pChar == pChar2) ? 0 : ((pChar - pChar2) + 1); } - int KviIrcMask::getLargeIpDomainMaskLen() const { int iLen = m_szHost.length(); @@ -415,7 +431,7 @@ int KviIrcMask::getLargeIpDomainMaskLen() const // 000.000.000.000 // pChar // - return (pChar == pChar2) ? 0 : ((pChar-pChar2) + 1); + return (pChar == pChar2) ? 0 : ((pChar - pChar2) + 1); } QString KviIrcMask::getHostDomainMask() const @@ -427,7 +443,7 @@ QString KviIrcMask::getHostDomainMask() const const QChar * pChar2 = pChar; while(pChar->unicode() && pChar->unicode() != '.') pChar++; - QString szRet(pChar,iLen - (pChar - pChar2)); + QString szRet(pChar, iLen - (pChar - pChar2)); return szRet; } @@ -454,7 +470,7 @@ QString KviIrcMask::getLargeHostDomainMask() const // xyz.klm.abc.host.top // pChar - QString szRet(pChar,iLen - (pChar - pChar2)); + QString szRet(pChar, iLen - (pChar - pChar2)); return szRet; } @@ -476,11 +492,11 @@ bool KviIrcMask::hasMaskedIp() const bool KviIrcMask::operator==(const KviIrcMask & user) { - if(KviQString::equalCI(m_szNick,user.m_szNick)) + if(KviQString::equalCI(m_szNick, user.m_szNick)) { - if(KviQString::equalCI(m_szUser,user.m_szUser)) + if(KviQString::equalCI(m_szUser, user.m_szUser)) { - if(KviQString::equalCI(m_szHost,user.m_szHost)) + if(KviQString::equalCI(m_szHost, user.m_szHost)) return true; } } diff --git a/src/kvilib/irc/KviIrcMask.h b/src/kvilib/irc/KviIrcMask.h index 4aa2600c9..b4a3d37c5 100644 --- a/src/kvilib/irc/KviIrcMask.h +++ b/src/kvilib/irc/KviIrcMask.h @@ -46,11 +46,13 @@ class KVILIB_API KviIrcMask : public KviHeapObject { friend class KviIrcUserList; friend class KviIrcUserChanList; + private: QString m_szNick; QString m_szUser; QString m_szHost; static QString m_szWild; + public: /** * \brief Constructs an empty mask (*!*@*) @@ -71,7 +73,7 @@ public: * \return KviIrcMask */ KviIrcMask(const KviIrcMask & ircUser) - : m_szNick(ircUser.m_szNick), m_szUser(ircUser.m_szUser), m_szHost(ircUser.m_szHost) {}; + : m_szNick(ircUser.m_szNick), m_szUser(ircUser.m_szUser), m_szHost(ircUser.m_szHost){}; /** * \brief Carbon copy @@ -81,7 +83,7 @@ public: * \return KviIrcMask */ KviIrcMask(const QString & nick, const QString & user, const QString & host) - : m_szNick(nick), m_szUser(user), m_szHost(host) {}; + : m_szNick(nick), m_szUser(user), m_szHost(host){}; /** * \enum MaskType @@ -117,6 +119,7 @@ public: NickCleanUserSmartNet = 25, /**< 25 : nick!*user@*.host.top */ CleanUserSmartNet = 26 /**< 26 : *!*user@*.host.top */ }; + public: /** * \brief Sets the nick for this user. @@ -125,7 +128,7 @@ public: * \param szNick The nickname of the user * \return void */ - void setNick(const QString & szNick){ m_szNick = szNick.isEmpty() ? m_szWild : szNick; }; + void setNick(const QString & szNick) { m_szNick = szNick.isEmpty() ? m_szWild : szNick; }; /** * \brief Sets the username for this user. @@ -134,7 +137,7 @@ public: * \param szUser The username of the user * \return void */ - void setUsername(const QString & szUser){ m_szUser = szUser.isEmpty() ? m_szWild : szUser; }; + void setUsername(const QString & szUser) { m_szUser = szUser.isEmpty() ? m_szWild : szUser; }; /** * \brief Sets the username for this user. @@ -144,7 +147,7 @@ public: * \param szUser The username of the user * \return void */ - void setUser(const QString & szUser){ m_szUser = szUser.isEmpty() ? m_szWild : szUser; }; + void setUser(const QString & szUser) { m_szUser = szUser.isEmpty() ? m_szWild : szUser; }; /** * \brief Sets the host for this user. @@ -153,7 +156,7 @@ public: * \param szHost The hostname of the user * \return void */ - void setHost(const QString & szHost){ m_szHost = szHost.isEmpty() ? m_szWild : szHost; }; + void setHost(const QString & szHost) { m_szHost = szHost.isEmpty() ? m_szWild : szHost; }; /** * \brief Returns the nickname of this user. @@ -308,6 +311,7 @@ public: * \return bool */ bool operator==(const KviIrcMask & user); + private: /** * \brief Returns the number of characters which are parts of the IP diff --git a/src/kvilib/irc/KviIrcNetwork.cpp b/src/kvilib/irc/KviIrcNetwork.cpp index 4dc1a31d0..3e828331b 100644 --- a/src/kvilib/irc/KviIrcNetwork.cpp +++ b/src/kvilib/irc/KviIrcNetwork.cpp @@ -26,7 +26,7 @@ #include "KviIrcServer.h" #include "KviNickServRuleSet.h" -KviIrcNetwork::KviIrcNetwork(const KviIrcNetwork &src) +KviIrcNetwork::KviIrcNetwork(const KviIrcNetwork & src) { m_pChannelList = 0; m_pNickServRuleSet = 0; @@ -35,7 +35,7 @@ KviIrcNetwork::KviIrcNetwork(const KviIrcNetwork &src) copyFrom(src); } -KviIrcNetwork::KviIrcNetwork(const QString &name) +KviIrcNetwork::KviIrcNetwork(const QString & name) { m_szName = name; m_pChannelList = 0; @@ -48,14 +48,17 @@ KviIrcNetwork::KviIrcNetwork(const QString &name) KviIrcNetwork::~KviIrcNetwork() { - if(m_pChannelList)delete m_pChannelList; - if(m_pNickServRuleSet)delete m_pNickServRuleSet; + if(m_pChannelList) + delete m_pChannelList; + if(m_pNickServRuleSet) + delete m_pNickServRuleSet; delete m_pServerList; } void KviIrcNetwork::setAutoJoinChannelList(QStringList * pNewChannelList) { - if(m_pChannelList)delete m_pChannelList; + if(m_pChannelList) + delete m_pChannelList; m_pChannelList = pNewChannelList; } @@ -72,11 +75,12 @@ void KviIrcNetwork::setAutoJoinChannelList(const QString & szNewChannelList) void KviIrcNetwork::setNickServRuleSet(KviNickServRuleSet * s) { - if(m_pNickServRuleSet)delete m_pNickServRuleSet; + if(m_pNickServRuleSet) + delete m_pNickServRuleSet; m_pNickServRuleSet = s; } -void KviIrcNetwork::copyFrom(const KviIrcNetwork &src) +void KviIrcNetwork::copyFrom(const KviIrcNetwork & src) { m_szName = src.m_szName; m_szEncoding = src.m_szEncoding; @@ -89,15 +93,21 @@ void KviIrcNetwork::copyFrom(const KviIrcNetwork &src) m_szPass = src.m_szPass; m_bAutoConnect = src.m_bAutoConnect; m_szUserIdentityId = src.m_szUserIdentityId; - m_szOnConnectCommand = src.m_szOnConnectCommand; + m_szOnConnectCommand = src.m_szOnConnectCommand; m_szOnLoginCommand = src.m_szOnLoginCommand; - if(m_pChannelList)delete m_pChannelList; - if(src.m_pChannelList)m_pChannelList = new QStringList(*(src.m_pChannelList)); - else m_pChannelList = 0; - if(m_pNickServRuleSet)delete m_pNickServRuleSet; - if(src.m_pNickServRuleSet)m_pNickServRuleSet = new KviNickServRuleSet(*(src.m_pNickServRuleSet)); - else m_pNickServRuleSet = 0; -/* + if(m_pChannelList) + delete m_pChannelList; + if(src.m_pChannelList) + m_pChannelList = new QStringList(*(src.m_pChannelList)); + else + m_pChannelList = 0; + if(m_pNickServRuleSet) + delete m_pNickServRuleSet; + if(src.m_pNickServRuleSet) + m_pNickServRuleSet = new KviNickServRuleSet(*(src.m_pNickServRuleSet)); + else + m_pNickServRuleSet = 0; + /* // We don't copy the server list, since this function is called in KviIrcServerOptionsWidget::commit() // to recreate the server list from scratch; copying the original servers will mean duplicate servers // (see bug ticket #300) @@ -108,16 +118,16 @@ void KviIrcNetwork::copyFrom(const KviIrcNetwork &src) */ } -void KviIrcNetwork::insertServer(KviIrcServer *srv) +void KviIrcNetwork::insertServer(KviIrcServer * srv) { m_pServerList->append(srv); } KviIrcServer * KviIrcNetwork::findServer(const QString & szHostname) { - for (KviIrcServer *s = m_pServerList->first(); s; s = m_pServerList->next()) + for(KviIrcServer * s = m_pServerList->first(); s; s = m_pServerList->next()) { - if (KviQString::equalCI(s->hostName(), szHostname)) + if(KviQString::equalCI(s->hostName(), szHostname)) return s; } return 0; @@ -125,7 +135,7 @@ KviIrcServer * KviIrcNetwork::findServer(const QString & szHostname) KviIrcServer * KviIrcNetwork::findServer(const KviIrcServer * pServer) { - for (KviIrcServer *s = m_pServerList->first(); s; s = m_pServerList->next()) + for(KviIrcServer * s = m_pServerList->first(); s; s = m_pServerList->next()) { // we better go with the unique id first if(!s->id().isEmpty()) @@ -133,27 +143,31 @@ KviIrcServer * KviIrcNetwork::findServer(const KviIrcServer * pServer) // at least one of the 2 id is not empty, so if they match we're done if(KviQString::equalCI(s->id(), pServer->id())) return s; - } else { + } + else + { // failback on the "check everything" method - if (KviQString::equalCI(s->hostName(), pServer->hostName()) - && (s->port() == pServer->port()) && (s->useSSL() - == pServer->useSSL()) && (s->isIPv6() == pServer->isIPv6())) + if(KviQString::equalCI(s->hostName(), pServer->hostName()) + && (s->port() == pServer->port()) && (s->useSSL() + == pServer->useSSL()) + && (s->isIPv6() == pServer->isIPv6())) return s; } } return 0; } -void KviIrcNetwork::setCurrentServer(KviIrcServer *srv) +void KviIrcNetwork::setCurrentServer(KviIrcServer * srv) { - if(m_pServerList->findRef(srv) != -1)m_pCurrentServer = srv; + if(m_pServerList->findRef(srv) != -1) + m_pCurrentServer = srv; } KviIrcServer * KviIrcNetwork::currentServer() { - if(m_pCurrentServer)return m_pCurrentServer; + if(m_pCurrentServer) + return m_pCurrentServer; m_pCurrentServer = m_pServerList->first(); return m_pCurrentServer; } - diff --git a/src/kvilib/irc/KviIrcNetwork.h b/src/kvilib/irc/KviIrcNetwork.h index bf9eb3d70..5d4f1edf8 100644 --- a/src/kvilib/irc/KviIrcNetwork.h +++ b/src/kvilib/irc/KviIrcNetwork.h @@ -40,7 +40,6 @@ class KviNickServRuleSet; class KviIrcServer; - /** * \class KviIrcNetwork * \brief Network handling class @@ -48,6 +47,7 @@ class KviIrcServer; class KVILIB_API KviIrcNetwork : public KviHeapObject { friend class KviIrcServerDataBase; + public: /** * \brief Construct the network object @@ -67,24 +67,26 @@ public: * \brief Destroys the network object */ ~KviIrcNetwork(); + protected: - QString m_szName; - QString m_szDescription; - QString m_szEncoding; /**< if empty, use system default */ - QString m_szTextEncoding; /**< if empty, use system default */ - QString m_szNickName; /**< preferred nick name */ - QString m_szAlternativeNickName; /**< alternative nick name */ - QString m_szUserName; /**< preferred user name */ - QString m_szRealName; /**< preferred real name */ - QString m_szPass; /**< special password */ - QString m_szOnConnectCommand; /**< the command to run on connect */ - QString m_szOnLoginCommand; /**< the command to run after login */ - QStringList * m_pChannelList; /**< Channels to auto join */ - KviNickServRuleSet * m_pNickServRuleSet; /**< set of nick serv rules */ - bool m_bAutoConnect; /**< autoconnect */ - QString m_szUserIdentityId; /**< The user identity to use for this server: if empty then use the global primary identity moved from KviIrcServerDataBaseRecord */ + QString m_szName; + QString m_szDescription; + QString m_szEncoding; /**< if empty, use system default */ + QString m_szTextEncoding; /**< if empty, use system default */ + QString m_szNickName; /**< preferred nick name */ + QString m_szAlternativeNickName; /**< alternative nick name */ + QString m_szUserName; /**< preferred user name */ + QString m_szRealName; /**< preferred real name */ + QString m_szPass; /**< special password */ + QString m_szOnConnectCommand; /**< the command to run on connect */ + QString m_szOnLoginCommand; /**< the command to run after login */ + QStringList * m_pChannelList; /**< Channels to auto join */ + KviNickServRuleSet * m_pNickServRuleSet; /**< set of nick serv rules */ + bool m_bAutoConnect; /**< autoconnect */ + QString m_szUserIdentityId; /**< The user identity to use for this server: if empty then use the global primary identity moved from KviIrcServerDataBaseRecord */ KviPointerList * m_pServerList; - KviIrcServer * m_pCurrentServer; + KviIrcServer * m_pCurrentServer; + public: /** * \brief Returns the name of the network @@ -173,19 +175,19 @@ public: * \brief Returns the list of channels with autojoin flag * \return QStringList * */ - inline QStringList * autoJoinChannelList(){ return m_pChannelList; }; + inline QStringList * autoJoinChannelList() { return m_pChannelList; }; /** * \brief Returns the list of channels with autojoin flag as a string * \return const QString & */ - inline const QString autoJoinChannelListAsString(){ return m_pChannelList ? m_pChannelList->join(",") : ""; }; + inline const QString autoJoinChannelListAsString() { return m_pChannelList ? m_pChannelList->join(",") : ""; }; /** * \brief Returns a set of rules for the NickServ * \return KviNickServRuleSet * */ - inline KviNickServRuleSet * nickServRuleSet(){ return m_pNickServRuleSet; }; + inline KviNickServRuleSet * nickServRuleSet() { return m_pNickServRuleSet; }; /** * \brief Sets the rules for NickServ @@ -206,7 +208,7 @@ public: * \param szName The name of the network * \return void */ - inline void setName(const QString & szName){ m_szName = szName; }; + inline void setName(const QString & szName) { m_szName = szName; }; /** * \brief Sets the encondig of the network @@ -216,7 +218,7 @@ public: * \param szEncoding The encoding of the network * \return void */ - inline void setEncoding(const QString & szEncoding){ m_szEncoding = szEncoding; }; + inline void setEncoding(const QString & szEncoding) { m_szEncoding = szEncoding; }; /** * \brief Sets the text encondig of the network @@ -225,63 +227,63 @@ public: * \param szEncoding The text encoding of the network * \return void */ - inline void setTextEncoding(const QString & szEncoding){ m_szTextEncoding = szEncoding; }; + inline void setTextEncoding(const QString & szEncoding) { m_szTextEncoding = szEncoding; }; /** * \brief Sets the description of the network * \param szDescription The description of the network * \return void */ - inline void setDescription(const QString & szDescription){ m_szDescription = szDescription; }; + inline void setDescription(const QString & szDescription) { m_szDescription = szDescription; }; /** * \brief Sets the list of commands to run on network connection * \param szCmd The commands list to run * \return void */ - inline void setOnConnectCommand(const QString & szCmd){ m_szOnConnectCommand = szCmd; }; + inline void setOnConnectCommand(const QString & szCmd) { m_szOnConnectCommand = szCmd; }; /** * \brief Sets the list of commands to run on network login * \param szCmd The commands list to run * \return void */ - inline void setOnLoginCommand(const QString & szCmd){ m_szOnLoginCommand = szCmd; }; + inline void setOnLoginCommand(const QString & szCmd) { m_szOnLoginCommand = szCmd; }; /** * \brief Sets the nickname of the user associated to the network * \param szNick The nickname * \return void */ - inline void setNickName(const QString & szNick){ m_szNickName = szNick; }; + inline void setNickName(const QString & szNick) { m_szNickName = szNick; }; /** * \brief Sets the alternative nickname of the user associated to the network * \param szNick The nickname * \return void */ - inline void setAlternativeNickName(const QString & szNick){ m_szAlternativeNickName = szNick; }; + inline void setAlternativeNickName(const QString & szNick) { m_szAlternativeNickName = szNick; }; /** * \brief Sets the realname of the user associated to the network * \param szReal The realname * \return void */ - inline void setRealName(const QString & szReal){ m_szRealName = szReal; }; + inline void setRealName(const QString & szReal) { m_szRealName = szReal; }; /** * \brief Sets the username of the user associated to the network * \param szUser The username * \return void */ - inline void setUserName(const QString & szUser){ m_szUserName = szUser; }; + inline void setUserName(const QString & szUser) { m_szUserName = szUser; }; /** * \brief Sets the password of the user associated to the network * \param szPass The password * \return void */ - inline void setPassword(const QString & szPass){ m_szPass = szPass; }; + inline void setPassword(const QString & szPass) { m_szPass = szPass; }; /** * \brief Sets the list of channels to mark for autojoin @@ -302,20 +304,20 @@ public: * \param bAutoConnect The state of the autoconnect flag * \return void */ - inline void setAutoConnect(bool bAutoConnect){ m_bAutoConnect = bAutoConnect; }; + inline void setAutoConnect(bool bAutoConnect) { m_bAutoConnect = bAutoConnect; }; /** * \brief Sets the user identity id of the user associated to the network * \param szUserIdentityId The user identity * \return void */ - inline void setUserIdentityId(const QString & szUserIdentityId){ m_szUserIdentityId = szUserIdentityId; }; + inline void setUserIdentityId(const QString & szUserIdentityId) { m_szUserIdentityId = szUserIdentityId; }; /** * \brief Returns a list of servers associated to the network * \return KviPointerList * */ - inline KviPointerList * serverList(){ return m_pServerList; }; + inline KviPointerList * serverList() { return m_pServerList; }; /** * \brief Returns the current server diff --git a/src/kvilib/irc/KviIrcServer.cpp b/src/kvilib/irc/KviIrcServer.cpp index 4b1734fc2..957df7f00 100644 --- a/src/kvilib/irc/KviIrcServer.cpp +++ b/src/kvilib/irc/KviIrcServer.cpp @@ -22,7 +22,6 @@ // //============================================================================= - #include "KviIrcServer.h" #include "KviIrcServerReconnectInfo.h" #include "KviMemory.h" @@ -46,12 +45,12 @@ KviIrcServer::KviIrcServer() { - m_pReconnectInfo = NULL; - m_uFlags = Flags::CAP | Flags::STARTTLS; - m_uPort = 6667; + m_pReconnectInfo = NULL; + m_uFlags = Flags::CAP | Flags::STARTTLS; + m_uPort = 6667; m_pAutoJoinChannelList = NULL; - m_bAutoConnect = false; - m_iProxy = -1; + m_bAutoConnect = false; + m_iProxy = -1; } KviProxy * KviIrcServer::proxyServer(KviProxyDataBase * pDb) @@ -71,28 +70,28 @@ KviProxy * KviIrcServer::proxyServer(KviProxyDataBase * pDb) KviIrcServer::KviIrcServer(const KviIrcServer & serv) { - m_szHostname = serv.m_szHostname; - m_szIp = serv.m_szIp; - m_szDescription = serv.m_szDescription; - m_szUser = serv.m_szUser; - m_szPass = serv.m_szPass; - m_uPort = serv.m_uPort; - m_szNick = serv.m_szNick; - m_szAlternativeNick = serv.m_szAlternativeNick; - m_szRealName = serv.m_szRealName; - m_szEncoding = serv.m_szEncoding; - m_szTextEncoding = serv.m_szTextEncoding; - m_uFlags = serv.m_uFlags; - m_szInitUMode = serv.m_szInitUMode; + m_szHostname = serv.m_szHostname; + m_szIp = serv.m_szIp; + m_szDescription = serv.m_szDescription; + m_szUser = serv.m_szUser; + m_szPass = serv.m_szPass; + m_uPort = serv.m_uPort; + m_szNick = serv.m_szNick; + m_szAlternativeNick = serv.m_szAlternativeNick; + m_szRealName = serv.m_szRealName; + m_szEncoding = serv.m_szEncoding; + m_szTextEncoding = serv.m_szTextEncoding; + m_uFlags = serv.m_uFlags; + m_szInitUMode = serv.m_szInitUMode; m_szOnConnectCommand = serv.m_szOnConnectCommand; - m_szOnLoginCommand = serv.m_szOnLoginCommand; - m_szLinkFilter = serv.m_szLinkFilter; - m_szId = serv.m_szId; - m_iProxy = serv.m_iProxy; - m_szUserIdentityId = serv.m_szUserIdentityId; - m_bAutoConnect = serv.m_bAutoConnect; - m_szSaslNick = serv.m_szSaslNick; - m_szSaslPass = serv.m_szSaslPass; + m_szOnLoginCommand = serv.m_szOnLoginCommand; + m_szLinkFilter = serv.m_szLinkFilter; + m_szId = serv.m_szId; + m_iProxy = serv.m_iProxy; + m_szUserIdentityId = serv.m_szUserIdentityId; + m_bAutoConnect = serv.m_bAutoConnect; + m_szSaslNick = serv.m_szSaslNick; + m_szSaslPass = serv.m_szSaslPass; if(serv.m_pAutoJoinChannelList) m_pAutoJoinChannelList = new QStringList(*(serv.m_pAutoJoinChannelList)); @@ -107,28 +106,28 @@ KviIrcServer::KviIrcServer(const KviIrcServer & serv) void KviIrcServer::operator=(const KviIrcServer & serv) { - m_szHostname = serv.m_szHostname; - m_szIp = serv.m_szIp; - m_szDescription = serv.m_szDescription; - m_szUser = serv.m_szUser; - m_szPass = serv.m_szPass; - m_uPort = serv.m_uPort; - m_szNick = serv.m_szNick; - m_szAlternativeNick = serv.m_szAlternativeNick; - m_szRealName = serv.m_szRealName; - m_szEncoding = serv.m_szEncoding; - m_szTextEncoding = serv.m_szTextEncoding; - m_uFlags = serv.m_uFlags; - m_szInitUMode = serv.m_szInitUMode; + m_szHostname = serv.m_szHostname; + m_szIp = serv.m_szIp; + m_szDescription = serv.m_szDescription; + m_szUser = serv.m_szUser; + m_szPass = serv.m_szPass; + m_uPort = serv.m_uPort; + m_szNick = serv.m_szNick; + m_szAlternativeNick = serv.m_szAlternativeNick; + m_szRealName = serv.m_szRealName; + m_szEncoding = serv.m_szEncoding; + m_szTextEncoding = serv.m_szTextEncoding; + m_uFlags = serv.m_uFlags; + m_szInitUMode = serv.m_szInitUMode; m_szOnConnectCommand = serv.m_szOnConnectCommand; - m_szOnLoginCommand = serv.m_szOnLoginCommand; - m_szLinkFilter = serv.m_szLinkFilter; - m_szId = serv.m_szId; - m_szUserIdentityId = serv.m_szUserIdentityId; - m_iProxy = serv.m_iProxy; - m_bAutoConnect = serv.m_bAutoConnect; - m_szSaslNick = serv.m_szSaslNick; - m_szSaslPass = serv.m_szSaslPass; + m_szOnLoginCommand = serv.m_szOnLoginCommand; + m_szLinkFilter = serv.m_szLinkFilter; + m_szId = serv.m_szId; + m_szUserIdentityId = serv.m_szUserIdentityId; + m_iProxy = serv.m_iProxy; + m_bAutoConnect = serv.m_bAutoConnect; + m_szSaslNick = serv.m_szSaslNick; + m_szSaslPass = serv.m_szSaslPass; if(m_pAutoJoinChannelList) delete m_pAutoJoinChannelList; @@ -177,7 +176,7 @@ void KviIrcServer::clearReconnectInfo() void KviIrcServer::generateUniqueId() { struct timeval tv; - kvi_gettimeofday(&tv,0); + kvi_gettimeofday(&tv, 0); m_szId = QString("myserver%1%2%3").arg(tv.tv_usec).arg(rand() % 1000).arg(rand() % 1000); } @@ -248,12 +247,12 @@ bool KviIrcServer::load(KviConfigurationFile * pCfg, const QString & szPrefix) szTmp = QString("%1InitUmode").arg(szPrefix); m_szInitUMode = pCfg->readEntry(szTmp); szTmp = QString("%1AutoJoinChannels").arg(szPrefix); - QStringList l = pCfg->readStringListEntry(szTmp,QStringList()); + QStringList l = pCfg->readStringListEntry(szTmp, QStringList()); if(l.count() > 0) setAutoJoinChannelList(new QStringList(l)); szTmp = QString("%1AutoConnect").arg(szPrefix); - m_bAutoConnect = pCfg->readBoolEntry(szTmp,false); + m_bAutoConnect = pCfg->readBoolEntry(szTmp, false); szTmp = QString("%1Encoding").arg(szPrefix); m_szEncoding = pCfg->readEntry(szTmp); szTmp = QString("%1TextEncoding").arg(szPrefix); @@ -265,30 +264,30 @@ bool KviIrcServer::load(KviConfigurationFile * pCfg, const QString & szPrefix) szTmp = QString("%1LinkFilter").arg(szPrefix); m_szLinkFilter = pCfg->readEntry(szTmp); szTmp = QString("%1Port").arg(szPrefix); - m_uPort = pCfg->readUIntEntry(szTmp,6667); + m_uPort = pCfg->readUIntEntry(szTmp, 6667); szTmp = QString("%1Id").arg(szPrefix); m_szId = pCfg->readEntry(szTmp); if(m_szId.isEmpty()) generateUniqueId(); szTmp = QString("%1IPv6").arg(szPrefix); - setIPv6(pCfg->readBoolEntry(szTmp,false)); + setIPv6(pCfg->readBoolEntry(szTmp, false)); szTmp = QString("%1CacheIp").arg(szPrefix); - setCacheIp(pCfg->readBoolEntry(szTmp,false)); // true ? + setCacheIp(pCfg->readBoolEntry(szTmp, false)); // true ? szTmp = QString("%1SSL").arg(szPrefix); - setUseSSL(pCfg->readBoolEntry(szTmp,false)); + setUseSSL(pCfg->readBoolEntry(szTmp, false)); szTmp = QString("%1EnabledCAP").arg(szPrefix); - setEnabledCAP(pCfg->readBoolEntry(szTmp,true)); + setEnabledCAP(pCfg->readBoolEntry(szTmp, true)); szTmp = QString("%1EnabledSTARTTLS").arg(szPrefix); - setEnabledSTARTTLS(pCfg->readBoolEntry(szTmp,true)); + setEnabledSTARTTLS(pCfg->readBoolEntry(szTmp, true)); szTmp = QString("%1EnabledSASL").arg(szPrefix); - setEnabledSASL(pCfg->readBoolEntry(szTmp,false)); + setEnabledSASL(pCfg->readBoolEntry(szTmp, false)); szTmp = QString("%1Proxy").arg(szPrefix); - setProxy(pCfg->readIntEntry(szTmp,-2)); + setProxy(pCfg->readIntEntry(szTmp, -2)); szTmp = QString("%1UserIdentityId").arg(szPrefix); m_szUserIdentityId = pCfg->readEntry(szTmp); szTmp = QString("%1Favorite").arg(szPrefix); - setFavorite(pCfg->readBoolEntry(szTmp,false)); + setFavorite(pCfg->readBoolEntry(szTmp, false)); return true; } @@ -296,142 +295,142 @@ void KviIrcServer::save(KviConfigurationFile * pCfg, const QString & szPrefix) { QString szTmp; szTmp = QString("%1Hostname").arg(szPrefix); - pCfg->writeEntry(szTmp,m_szHostname); + pCfg->writeEntry(szTmp, m_szHostname); szTmp = QString("%1Id").arg(szPrefix); - pCfg->writeEntry(szTmp,m_szId); + pCfg->writeEntry(szTmp, m_szId); if(!m_szIp.isEmpty()) { szTmp = QString("%1Ip").arg(szPrefix); - pCfg->writeEntry(szTmp,m_szIp); + pCfg->writeEntry(szTmp, m_szIp); } if(!m_szDescription.isEmpty()) { szTmp = QString("%1Description").arg(szPrefix); - pCfg->writeEntry(szTmp,m_szDescription); + pCfg->writeEntry(szTmp, m_szDescription); } if(!m_szUser.isEmpty()) { szTmp = QString("%1User").arg(szPrefix); - pCfg->writeEntry(szTmp,m_szUser); + pCfg->writeEntry(szTmp, m_szUser); } if(!m_szPass.isEmpty()) { szTmp = QString("%1Pass").arg(szPrefix); - pCfg->writeEntry(szTmp,m_szPass); + pCfg->writeEntry(szTmp, m_szPass); } if(!m_szNick.isEmpty()) { szTmp = QString("%1Nick").arg(szPrefix); - pCfg->writeEntry(szTmp,m_szNick); + pCfg->writeEntry(szTmp, m_szNick); } if(!m_szAlternativeNick.isEmpty()) { szTmp = QString("%1AlternativeNick").arg(szPrefix); - pCfg->writeEntry(szTmp,m_szAlternativeNick); + pCfg->writeEntry(szTmp, m_szAlternativeNick); } if(!m_szSaslPass.isEmpty()) { szTmp = QString("%1SaslPass").arg(szPrefix); - pCfg->writeEntry(szTmp,m_szSaslPass); + pCfg->writeEntry(szTmp, m_szSaslPass); } if(!m_szSaslNick.isEmpty()) { szTmp = QString("%1SaslNick").arg(szPrefix); - pCfg->writeEntry(szTmp,m_szSaslNick); + pCfg->writeEntry(szTmp, m_szSaslNick); } if(!m_szRealName.isEmpty()) { szTmp = QString("%1RealName").arg(szPrefix); - pCfg->writeEntry(szTmp,m_szRealName); + pCfg->writeEntry(szTmp, m_szRealName); } if(!m_szInitUMode.isEmpty()) { szTmp = QString("%1InitUMode").arg(szPrefix); - pCfg->writeEntry(szTmp,m_szInitUMode); + pCfg->writeEntry(szTmp, m_szInitUMode); } if(autoJoinChannelList()) { szTmp = QString("%1AutoJoinChannels").arg(szPrefix); - pCfg->writeEntry(szTmp,*(autoJoinChannelList())); + pCfg->writeEntry(szTmp, *(autoJoinChannelList())); } if(autoConnect()) // otherwise it defaults to false anyway { szTmp = QString("%1AutoConnect").arg(szPrefix); - pCfg->writeEntry(szTmp,autoConnect()); + pCfg->writeEntry(szTmp, autoConnect()); } if(!m_szEncoding.isEmpty()) { szTmp = QString("%1Encoding").arg(szPrefix); - pCfg->writeEntry(szTmp,m_szEncoding); + pCfg->writeEntry(szTmp, m_szEncoding); } if(!m_szTextEncoding.isEmpty()) { szTmp = QString("%1TextEncoding").arg(szPrefix); - pCfg->writeEntry(szTmp,m_szTextEncoding); + pCfg->writeEntry(szTmp, m_szTextEncoding); } if(!m_szOnConnectCommand.isEmpty()) { szTmp = QString("%1OnConnectCommand").arg(szPrefix); - pCfg->writeEntry(szTmp,m_szOnConnectCommand); + pCfg->writeEntry(szTmp, m_szOnConnectCommand); } if(!m_szOnLoginCommand.isEmpty()) { szTmp = QString("%1OnLoginCommand").arg(szPrefix); - pCfg->writeEntry(szTmp,m_szOnLoginCommand); + pCfg->writeEntry(szTmp, m_szOnLoginCommand); } if(!m_szLinkFilter.isEmpty()) { szTmp = QString("%1LinkFilter").arg(szPrefix); - pCfg->writeEntry(szTmp,m_szLinkFilter); + pCfg->writeEntry(szTmp, m_szLinkFilter); } if(m_uPort != 6667) { szTmp = QString("%1Port").arg(szPrefix); - pCfg->writeEntry(szTmp,m_uPort); + pCfg->writeEntry(szTmp, m_uPort); } if(isIPv6()) { szTmp = QString("%1IPv6").arg(szPrefix); - pCfg->writeEntry(szTmp,isIPv6()); + pCfg->writeEntry(szTmp, isIPv6()); } if(cacheIp()) { szTmp = QString("%1CacheIp").arg(szPrefix); - pCfg->writeEntry(szTmp,cacheIp()); + pCfg->writeEntry(szTmp, cacheIp()); } if(useSSL()) { szTmp = QString("%1SSL").arg(szPrefix); - pCfg->writeEntry(szTmp,useSSL()); + pCfg->writeEntry(szTmp, useSSL()); } if(!enabledCAP()) { szTmp = QString("%1EnabledCAP").arg(szPrefix); - pCfg->writeEntry(szTmp,enabledCAP()); + pCfg->writeEntry(szTmp, enabledCAP()); } if(!enabledSTARTTLS()) { szTmp = QString("%1EnabledSTARTTLS").arg(szPrefix); - pCfg->writeEntry(szTmp,enabledSTARTTLS()); + pCfg->writeEntry(szTmp, enabledSTARTTLS()); } if(enabledSASL()) { szTmp = QString("%1EnabledSASL").arg(szPrefix); - pCfg->writeEntry(szTmp,enabledSASL()); + pCfg->writeEntry(szTmp, enabledSASL()); } - if(proxy()!=-2) + if(proxy() != -2) { szTmp = QString("%1Proxy").arg(szPrefix); - pCfg->writeEntry(szTmp,proxy()); + pCfg->writeEntry(szTmp, proxy()); } if(!m_szUserIdentityId.isEmpty()) { szTmp = QString("%1UserIdentityId").arg(szPrefix); - pCfg->writeEntry(szTmp,m_szUserIdentityId); + pCfg->writeEntry(szTmp, m_szUserIdentityId); } if(favorite()) { szTmp = QString("%1Favorite").arg(szPrefix); - pCfg->writeEntry(szTmp,favorite()); + pCfg->writeEntry(szTmp, favorite()); } } diff --git a/src/kvilib/irc/KviIrcServer.h b/src/kvilib/irc/KviIrcServer.h index 7fba82e2d..e0df2d5f8 100644 --- a/src/kvilib/irc/KviIrcServer.h +++ b/src/kvilib/irc/KviIrcServer.h @@ -55,14 +55,15 @@ public: * \enum Flags * \brief Contains the features supported by the server */ - enum Flags { - IPv6 = 1, /**< IPv6 support */ - CacheIP = 2, /**< whether we cache the server's IP */ - SSL = 4, /**< SSL support */ - STARTTLS = 8, /**< STARTTLS support */ - SASL = 16, /**< SASL support */ - CAP = 32, /**< CAP support */ - FAVORITE = 64 /**< Favorite Server */ + enum Flags + { + IPv6 = 1, /**< IPv6 support */ + CacheIP = 2, /**< whether we cache the server's IP */ + SSL = 4, /**< SSL support */ + STARTTLS = 8, /**< STARTTLS support */ + SASL = 16, /**< SASL support */ + CAP = 32, /**< CAP support */ + FAVORITE = 64 /**< Favorite Server */ }; /** @@ -82,37 +83,36 @@ public: * \brief Destroys the server object */ ~KviIrcServer(); -private: +private: KviIrcServerReconnectInfo * m_pReconnectInfo; - QString m_szHostname; /**< the server hostname (or IP eventually) */ - QString m_szIp; /**< the server's cached ip (if we're caching) */ - QString m_szDescription; /**< the server description */ - kvi_u32_t m_uPort; /**< the server's port */ - unsigned short int m_uFlags; /**< flags */ + QString m_szHostname; /**< the server hostname (or IP eventually) */ + QString m_szIp; /**< the server's cached ip (if we're caching) */ + QString m_szDescription; /**< the server description */ + kvi_u32_t m_uPort; /**< the server's port */ + unsigned short int m_uFlags; /**< flags */ // Extended data - QString m_szUserIdentityId; /**< the user identity to use for this server: if empty, then use the network identity instead */ - QString m_szUser; /**< special username */ - QString m_szPass; /**< special password */ - QString m_szNick; /**< special nickname */ - QString m_szAlternativeNick; /**< alternate special nickname */ - QString m_szRealName; /**< special real name */ - QString m_szInitUMode; /**< special user mode */ - QString m_szOnConnectCommand; /**< the command to run on connect */ - QString m_szOnLoginCommand; /**< the command to run after login */ - QString m_szLinkFilter; /**< the link filter object */ - QString m_szEncoding; /**< if empty, use network encoding */ - QString m_szTextEncoding; /**< if empty, use network encoding */ - QStringList * m_pAutoJoinChannelList; /**< Channels to auto join */ - bool m_bAutoConnect; /**< autoconnect */ - QString m_szId; /**< the server's may-be-unique id, may be auto-generated */ - int m_iProxy; /**< proxy server's id */ - QString m_szSaslNick; /**< nickname for sasl auth */ - QString m_szSaslPass; /**< password for sasl auth */ + QString m_szUserIdentityId; /**< the user identity to use for this server: if empty, then use the network identity instead */ + QString m_szUser; /**< special username */ + QString m_szPass; /**< special password */ + QString m_szNick; /**< special nickname */ + QString m_szAlternativeNick; /**< alternate special nickname */ + QString m_szRealName; /**< special real name */ + QString m_szInitUMode; /**< special user mode */ + QString m_szOnConnectCommand; /**< the command to run on connect */ + QString m_szOnLoginCommand; /**< the command to run after login */ + QString m_szLinkFilter; /**< the link filter object */ + QString m_szEncoding; /**< if empty, use network encoding */ + QString m_szTextEncoding; /**< if empty, use network encoding */ + QStringList * m_pAutoJoinChannelList; /**< Channels to auto join */ + bool m_bAutoConnect; /**< autoconnect */ + QString m_szId; /**< the server's may-be-unique id, may be auto-generated */ + int m_iProxy; /**< proxy server's id */ + QString m_szSaslNick; /**< nickname for sasl auth */ + QString m_szSaslPass; /**< password for sasl auth */ public: - KviIrcServerReconnectInfo * reconnectInfo() { return m_pReconnectInfo; @@ -262,13 +262,13 @@ public: * \brief Returns the list of the channels in the autojoin list * \return QStringList * */ - inline QStringList * autoJoinChannelList(){ return m_pAutoJoinChannelList; }; + inline QStringList * autoJoinChannelList() { return m_pAutoJoinChannelList; }; /** * \brief Returns the list of the channels in the autojoin list as a string * \return const QString & */ - inline const QString autoJoinChannelListAsString(){ return m_pAutoJoinChannelList ? m_pAutoJoinChannelList->join(",") : ""; }; + inline const QString autoJoinChannelListAsString() { return m_pAutoJoinChannelList ? m_pAutoJoinChannelList->join(",") : ""; }; /** * \brief Returns true if the server uses IPv6 @@ -318,84 +318,84 @@ public: * \param iProxy The proxy to connect through * \return void */ - inline void setProxy(int iProxy){ m_iProxy = iProxy; }; + inline void setProxy(int iProxy) { m_iProxy = iProxy; }; /** * \brief Sets the IP for the server * \param szIp The IP of the server * \return void */ - inline void setIp(const QString & szIp){ m_szIp = szIp; }; + inline void setIp(const QString & szIp) { m_szIp = szIp; }; /** * \brief Sets the port for the server * \param uPort The port of the server * \return void */ - inline void setPort(kvi_u32_t uPort){ m_uPort = uPort; }; + inline void setPort(kvi_u32_t uPort) { m_uPort = uPort; }; /** * \brief Sets the hostname for the server * \param szHost The host name of the user * \return void */ - inline void setHostName(const QString & szHost){ m_szHostname = szHost; }; + inline void setHostName(const QString & szHost) { m_szHostname = szHost; }; /** * \brief Sets the description for the server * \param szDesc The description of the server * \return void */ - inline void setDescription(const QString & szDesc){ m_szDescription = szDesc; }; + inline void setDescription(const QString & szDesc) { m_szDescription = szDesc; }; /** * \brief Sets the username of the user associated to the server * \param szUser The user name of the user * \return void */ - inline void setUserName(const QString & szUser){ m_szUser = szUser; }; + inline void setUserName(const QString & szUser) { m_szUser = szUser; }; /** * \brief Sets the password of the user associated to the server * \param szPass The password of the user * \return void */ - inline void setPassword(const QString & szPass){ m_szPass = szPass; }; + inline void setPassword(const QString & szPass) { m_szPass = szPass; }; /** * \brief Sets the nickname of the user associated to the server * \param szNick The nick name of the user * \return void */ - inline void setNickName(const QString & szNick){ m_szNick = szNick; }; + inline void setNickName(const QString & szNick) { m_szNick = szNick; }; /** * \brief Sets the alternative nickname of the user associated to the server * \param szNick The nick name of the user * \return void */ - inline void setAlternativeNickName(const QString & szNick){ m_szAlternativeNick = szNick; }; + inline void setAlternativeNickName(const QString & szNick) { m_szAlternativeNick = szNick; }; /** * \brief Sets the password used for sasl auth * \param szPass The password of the user * \return void */ - inline void setSaslPass(const QString & szPass){ m_szSaslPass = szPass; }; + inline void setSaslPass(const QString & szPass) { m_szSaslPass = szPass; }; /** * \brief Sets the nickname used for sasl auth * \param szNick The nick name of the user * \return void */ - inline void setSaslNick(const QString & szNick){ m_szSaslNick = szNick; }; + inline void setSaslNick(const QString & szNick) { m_szSaslNick = szNick; }; /** * \brief Sets the realname of the user associated to the server * \param szReal The real name of the user * \return void */ - inline void setRealName(const QString & szReal){ m_szRealName = szReal; }; + inline void setRealName(const QString & szReal) { m_szRealName = szReal; }; /** * \brief Sets the encoding associated to the server @@ -405,7 +405,7 @@ public: * \param szEncoding The default encoding of the text * \return void */ - inline void setEncoding(const QString & szEncoding){ m_szEncoding = szEncoding; }; + inline void setEncoding(const QString & szEncoding) { m_szEncoding = szEncoding; }; /** * \brief Sets the encoding associated to the server @@ -413,28 +413,28 @@ public: * \param szEncoding The default encoding of the text * \return void */ - inline void setTextEncoding(const QString & szEncoding){ m_szTextEncoding = szEncoding; }; + inline void setTextEncoding(const QString & szEncoding) { m_szTextEncoding = szEncoding; }; /** * \brief Sets the user modes of the user associated to the server * \param szUMode The user modes of the user * \return void */ - inline void setInitUMode(const QString & szUMode){ m_szInitUMode = szUMode; }; + inline void setInitUMode(const QString & szUMode) { m_szInitUMode = szUMode; }; /** * \brief Sets the commands to run on server connection * \param szCmd The comands to run on connection * \return void */ - inline void setOnConnectCommand(const QString & szCmd){ m_szOnConnectCommand = szCmd; }; + inline void setOnConnectCommand(const QString & szCmd) { m_szOnConnectCommand = szCmd; }; /** * \brief Sets the commands to run on server login * \param szCmd The comands to run on login * \return void */ - inline void setOnLoginCommand(const QString & szCmd){ m_szOnLoginCommand = szCmd; }; + inline void setOnLoginCommand(const QString & szCmd) { m_szOnLoginCommand = szCmd; }; /** * \brief Applies the filter to the server @@ -445,7 +445,7 @@ public: * \param szFilter * \return void */ - inline void setLinkFilter(const QString & szFilter){ m_szLinkFilter = szFilter; }; + inline void setLinkFilter(const QString & szFilter) { m_szLinkFilter = szFilter; }; /** * \brief Sets the list of channels to autojoin after connection @@ -467,14 +467,14 @@ public: * \param bAutoConnect Whether to set the autoconnection * \return void */ - inline void setAutoConnect(bool bAutoConnect){ m_bAutoConnect = bAutoConnect; }; + inline void setAutoConnect(bool bAutoConnect) { m_bAutoConnect = bAutoConnect; }; /** * \brief Sets the id of the user associated to the server * \param szUserIdentityId The user identity id to set * \return void */ - inline void setUserIdentityId(const QString & szUserIdentityId){ m_szUserIdentityId = szUserIdentityId; }; + inline void setUserIdentityId(const QString & szUserIdentityId) { m_szUserIdentityId = szUserIdentityId; }; /** * \brief Sets if the server uses IPv6 @@ -565,7 +565,12 @@ public: * \param szId The id of the server * \return void */ - inline void setId(const QString & szId){ m_szId = szId; if(m_szId.isEmpty()) generateUniqueId(); }; + inline void setId(const QString & szId) + { + m_szId = szId; + if(m_szId.isEmpty()) + generateUniqueId(); + }; /** * \brief Loads the information from the configuration file diff --git a/src/kvilib/irc/KviIrcServerDataBase.cpp b/src/kvilib/irc/KviIrcServerDataBase.cpp index f1e9ce589..65d3fc305 100644 --- a/src/kvilib/irc/KviIrcServerDataBase.cpp +++ b/src/kvilib/irc/KviIrcServerDataBase.cpp @@ -22,7 +22,6 @@ // //============================================================================= - #include "KviIrcServerDataBase.h" #include "KviConfigurationFile.h" #include "KviLocale.h" @@ -36,7 +35,7 @@ KviIrcServerDataBase::KviIrcServerDataBase() { - m_pRecords = new KviPointerHashTable(17,false); + m_pRecords = new KviPointerHashTable(17, false); m_pRecords->setAutoDelete(true); m_pAutoConnectOnStartupServers = 0; m_pAutoConnectOnStartupNetworks = 0; @@ -77,7 +76,7 @@ void KviIrcServerDataBase::clear() void KviIrcServerDataBase::addNetwork(KviIrcNetwork * pNet) { - m_pRecords->replace(pNet->name(),pNet); + m_pRecords->replace(pNet->name(), pNet); } KviIrcNetwork * KviIrcServerDataBase::findNetwork(const QString & szName) @@ -115,9 +114,7 @@ bool KviIrcServerDataBase::makeCurrentBestServerInNetwork(const QString & szNetN for(KviIrcServer * pServ = pNet->m_pServerList->first(); pServ; pServ = pNet->m_pServerList->next()) { - if(pServ->description().contains("random",Qt::CaseInsensitive) || - (pServ->description().contains("round",Qt::CaseInsensitive) && - (pServ->description().contains("robin",Qt::CaseInsensitive)))) + if(pServ->description().contains("random", Qt::CaseInsensitive) || (pServ->description().contains("round", Qt::CaseInsensitive) && (pServ->description().contains("robin", Qt::CaseInsensitive)))) { pNet->setCurrentServer(pServ); return true; @@ -134,9 +131,7 @@ bool KviIrcServerDataBase::makeCurrentBestServerInNetwork(const QString & szNetN for(KviIrcServer * pServer = pNet->m_pServerList->first(); pServer; pServer = pNet->m_pServerList->next()) { - if(KviQString::equalCI(pServer->hostName(),szTryAlso1) || - KviQString::equalCI(pServer->hostName(),szTryAlso2) || - KviQString::equalCI(pServer->hostName(),szTryAlso3)) + if(KviQString::equalCI(pServer->hostName(), szTryAlso1) || KviQString::equalCI(pServer->hostName(), szTryAlso2) || KviQString::equalCI(pServer->hostName(), szTryAlso3)) { pNet->setCurrentServer(pServer); return true; @@ -151,33 +146,33 @@ bool KviIrcServerDataBase::makeCurrentServer(KviIrcServerDefinition * pDef, QStr { KviIrcServer * pServer = 0; - KviPointerHashTableIterator it(*m_pRecords); + KviPointerHashTableIterator it(*m_pRecords); KviIrcNetwork * pNet = 0; KviIrcServer * pServ; - if(KviQString::equalCIN(pDef->szServer,"net:",4)) + if(KviQString::equalCIN(pDef->szServer, "net:", 4)) { // net:networkname form QString szNet = pDef->szServer; - szNet.remove(0,4); + szNet.remove(0, 4); KviIrcNetwork * pNet = m_pRecords->find(szNet); if(pNet) - return makeCurrentBestServerInNetwork(szNet,pNet,szError); + return makeCurrentBestServerInNetwork(szNet, pNet, szError); szError = __tr2qs("The server specification seems to be in the net: but the network couldn't be found in the database"); return false; } - if(KviQString::equalCIN(pDef->szServer,"id:",3)) + if(KviQString::equalCIN(pDef->szServer, "id:", 3)) { // id:serverid form QString szId = pDef->szServer; - szId.remove(0,3); + szId.remove(0, 3); while((pNet = it.current())) { for(pServ = pNet->serverList()->first(); pServ && (!pServer); pServ = pNet->serverList()->next()) { - if(KviQString::equalCI(pServ->id(),szId)) + if(KviQString::equalCI(pServ->id(), szId)) { pServer = pServ; goto search_finished; @@ -195,9 +190,9 @@ bool KviIrcServerDataBase::makeCurrentServer(KviIrcServerDefinition * pDef, QStr { for(pServ = pNet->serverList()->first(); pServ && (!pServer); pServ = pNet->serverList()->next()) { - if(KviQString::equalCI(pServ->hostName(),pDef->szServer)) + if(KviQString::equalCI(pServ->hostName(), pDef->szServer)) { - if(pDef->szId.isEmpty() || KviQString::equalCI(pServ->id(),pDef->szId)) + if(pDef->szId.isEmpty() || KviQString::equalCI(pServ->id(), pDef->szId)) { if(pDef->bIPv6 == pServ->isIPv6()) { @@ -212,30 +207,36 @@ bool KviIrcServerDataBase::makeCurrentServer(KviIrcServerDefinition * pDef, QStr if(!pDef->szLinkFilter.isEmpty()) { // must match the link filter - if(KviQString::equalCI(pDef->szLinkFilter,pServ->linkFilter())) + if(KviQString::equalCI(pDef->szLinkFilter, pServ->linkFilter())) { // link filter matches pServer = pServ; goto search_finished; } // else link filter doesn't match - } else { + } + else + { // no need to match the link filter pServer = pServ; goto search_finished; } } // else port doesn't match - } else { + } + else + { // no need to match the port if(!pDef->szLinkFilter.isEmpty()) { // must match the link filter - if(KviQString::equalCI(pDef->szLinkFilter,pServ->linkFilter())) + if(KviQString::equalCI(pDef->szLinkFilter, pServ->linkFilter())) { // link filter matches pServer = pServ; goto search_finished; } // else link filter doesn't match - } else { + } + else + { // no need to match the link filter pServer = pServ; goto search_finished; @@ -274,7 +275,7 @@ search_finished: // assume it is a network name! KviIrcNetwork * pNet = m_pRecords->find(pDef->szServer); if(pNet) - return makeCurrentBestServerInNetwork(pDef->szServer,pNet,szError); + return makeCurrentBestServerInNetwork(pDef->szServer, pNet, szError); // else probably not a network name } } @@ -285,7 +286,7 @@ search_finished: if(!pNet) { pNet = new KviIrcNetwork(__tr2qs("Standalone Servers")); - m_pRecords->replace(pNet->name(),pNet); + m_pRecords->replace(pNet->name(), pNet); } KviIrcServer * pSrv = new KviIrcServer(); @@ -295,7 +296,9 @@ search_finished: pSrv->setIp(pDef->szServer); pSrv->setCacheIp(true); #ifdef COMPILE_IPV6_SUPPORT - } else { + } + else + { if(bIsValidIPv6) { pSrv->setIp(pDef->szServer); @@ -322,32 +325,34 @@ search_finished: } void parseMircServerRecord(QString szEntry, QString & szNet, -QString & szDescription, QString & szHost, QString & szPort, bool & bSsl, kvi_u32_t & uPort) + QString & szDescription, QString & szHost, QString & szPort, bool & bSsl, kvi_u32_t & uPort) { bSsl = false; - int iIdx = szEntry.indexOf("SERVER:",0,Qt::CaseSensitive); + int iIdx = szEntry.indexOf("SERVER:", 0, Qt::CaseSensitive); if(iIdx != -1) { szDescription = szEntry.left(iIdx); - szNet = szDescription.section(':',0,0); - szDescription = szDescription.section(':',1,1); + szNet = szDescription.section(':', 0, 0); + szDescription = szDescription.section(':', 1, 1); - szEntry.remove(0,iIdx + 7); - iIdx = szEntry.indexOf("GROUP:",0,Qt::CaseSensitive); + szEntry.remove(0, iIdx + 7); + iIdx = szEntry.indexOf("GROUP:", 0, Qt::CaseSensitive); if(iIdx != -1) { szHost = szEntry.left(iIdx); - } else { + } + else + { szHost = szEntry; } - szPort = szHost.section(':',1,1); - if(szPort[0]=='+') + szPort = szHost.section(':', 1, 1); + if(szPort[0] == '+') { bSsl = true; - szPort.remove(0,1); + szPort.remove(0, 1); } - szHost = szHost.section(':',0,0); + szHost = szHost.section(':', 0, 0); bool bOk; uPort = szPort.toUInt(&bOk); @@ -361,14 +366,14 @@ void KviIrcServerDataBase::importFromMircIni(const QString & szFilename, const Q clear(); recentServers.clear(); QString szDefaultServer; - KviConfigurationFile mircCfg(szMircIni,KviConfigurationFile::Read,true); + KviConfigurationFile mircCfg(szMircIni, KviConfigurationFile::Read, true); if(mircCfg.hasGroup("mirc")) { mircCfg.setGroup("mirc"); szDefaultServer = mircCfg.readEntry("host"); } - KviConfigurationFile cfg(szFilename,KviConfigurationFile::Read,true); + KviConfigurationFile cfg(szFilename, KviConfigurationFile::Read, true); int i = 0; QString szEntry; @@ -376,7 +381,8 @@ void KviIrcServerDataBase::importFromMircIni(const QString & szFilename, const Q if(cfg.hasGroup("recent")) { cfg.setGroup("recent"); - do { + do + { szKey = QString("n%1").arg(i); szEntry = cfg.readEntry(szKey); if(!szEntry.isEmpty()) @@ -388,10 +394,10 @@ void KviIrcServerDataBase::importFromMircIni(const QString & szFilename, const Q bool bSsl = false; kvi_u32_t uPort = 0; - parseMircServerRecord(szEntry,szNet, - szDescription,szHost,szPort,bSsl,uPort); + parseMircServerRecord(szEntry, szNet, + szDescription, szHost, szPort, bSsl, uPort); - recentServers << (bSsl ? "ircs://" : "irc://" ) + szHost + ":" + szPort; + recentServers << (bSsl ? "ircs://" : "irc://") + szHost + ":" + szPort; } i++; } while(!szEntry.isEmpty()); @@ -401,7 +407,8 @@ void KviIrcServerDataBase::importFromMircIni(const QString & szFilename, const Q if(cfg.hasGroup("servers")) { cfg.setGroup("servers"); - do { + do + { szKey = QString("n%1").arg(i); szEntry = cfg.readEntry(szKey); if(!szEntry.isEmpty()) @@ -417,8 +424,8 @@ void KviIrcServerDataBase::importFromMircIni(const QString & szFilename, const Q if(szEntry == szDefaultServer) bDefault = true; - parseMircServerRecord(szEntry,szNet, - szDescription,szHost,szPort,bSsl,uPort); + parseMircServerRecord(szEntry, szNet, + szDescription, szHost, szPort, bSsl, uPort); KviIrcNetwork * pNet = findNetwork(szNet); @@ -433,7 +440,6 @@ void KviIrcServerDataBase::importFromMircIni(const QString & szFilename, const Q pServ->setDescription(szDescription); pServ->setPort(uPort); - pNet->m_pServerList->append(pServ); if(bDefault) { @@ -448,7 +454,7 @@ void KviIrcServerDataBase::importFromMircIni(const QString & szFilename, const Q void KviIrcServerDataBase::load(const QString & szFilename) { clear(); - KviConfigurationFile cfg(szFilename,KviConfigurationFile::Read); + KviConfigurationFile cfg(szFilename, KviConfigurationFile::Read); KviConfigurationFileIterator it(*(cfg.dict())); @@ -471,8 +477,8 @@ void KviIrcServerDataBase::load(const QString & szFilename) pNewNet->m_szPass = cfg.readEntry("Pass"); pNewNet->m_szOnConnectCommand = cfg.readEntry("OnConnectCommand"); pNewNet->m_szOnLoginCommand = cfg.readEntry("OnLoginCommand"); - pNewNet->m_pNickServRuleSet = KviNickServRuleSet::load(&cfg,QString()); - pNewNet->m_bAutoConnect = cfg.readBoolEntry("AutoConnect",false); + pNewNet->m_pNickServRuleSet = KviNickServRuleSet::load(&cfg, QString()); + pNewNet->m_bAutoConnect = cfg.readBoolEntry("AutoConnect", false); pNewNet->m_szUserIdentityId = cfg.readEntry("UserIdentityId"); if(pNewNet->m_bAutoConnect) { @@ -483,23 +489,23 @@ void KviIrcServerDataBase::load(const QString & szFilename) } m_pAutoConnectOnStartupNetworks->append(pNewNet); } - QStringList l = cfg.readStringListEntry("AutoJoinChannels",QStringList()); + QStringList l = cfg.readStringListEntry("AutoJoinChannels", QStringList()); if(l.count() > 0) pNewNet->setAutoJoinChannelList(new QStringList(l)); - if(cfg.readBoolEntry("Current",false)) + if(cfg.readBoolEntry("Current", false)) m_szCurrentNetwork = it.currentKey(); - int nServers = cfg.readIntEntry("NServers",0); - for(int i=0; i < nServers; i++) + int nServers = cfg.readIntEntry("NServers", 0); + for(int i = 0; i < nServers; i++) { KviIrcServer * pServ = new KviIrcServer(); szTmp = QString("%1_").arg(i); - if(pServ->load(&cfg,szTmp)) + if(pServ->load(&cfg, szTmp)) { pNewNet->m_pServerList->append(pServ); szTmp = QString("%1_Current").arg(i); - if(cfg.readBoolEntry(szTmp,false)) + if(cfg.readBoolEntry(szTmp, false)) pNewNet->m_pCurrentServer = pServ; if(pServ->autoConnect()) { @@ -510,7 +516,9 @@ void KviIrcServerDataBase::load(const QString & szFilename) } m_pAutoConnectOnStartupServers->append(pServ); } - } else delete pServ; + } + else + delete pServ; } if(!pNewNet->m_pCurrentServer) pNewNet->m_pCurrentServer = pNewNet->m_pServerList->first(); @@ -521,56 +529,58 @@ void KviIrcServerDataBase::load(const QString & szFilename) void KviIrcServerDataBase::save(const QString & szFilename) { - KviConfigurationFile cfg(szFilename,KviConfigurationFile::Write); + KviConfigurationFile cfg(szFilename, KviConfigurationFile::Write); cfg.clear(); // clear any old entry - KviPointerHashTableIterator it(*m_pRecords); + KviPointerHashTableIterator it(*m_pRecords); QString szTmp; while(KviIrcNetwork * pNetwork = it.current()) { cfg.setGroup(pNetwork->name()); - cfg.writeEntry("NServers",pNetwork->m_pServerList->count()); + cfg.writeEntry("NServers", pNetwork->m_pServerList->count()); if(pNetwork->m_bAutoConnect) - cfg.writeEntry("AutoConnect",true); + cfg.writeEntry("AutoConnect", true); if(!pNetwork->m_szEncoding.isEmpty()) - cfg.writeEntry("Encoding",pNetwork->m_szEncoding); + cfg.writeEntry("Encoding", pNetwork->m_szEncoding); if(!pNetwork->m_szTextEncoding.isEmpty()) - cfg.writeEntry("TextEncoding",pNetwork->m_szTextEncoding); + cfg.writeEntry("TextEncoding", pNetwork->m_szTextEncoding); if(!pNetwork->m_szDescription.isEmpty()) - cfg.writeEntry("Description",pNetwork->m_szDescription); + cfg.writeEntry("Description", pNetwork->m_szDescription); if(!pNetwork->m_szNickName.isEmpty()) - cfg.writeEntry("NickName",pNetwork->m_szNickName); + cfg.writeEntry("NickName", pNetwork->m_szNickName); if(!pNetwork->m_szAlternativeNickName.isEmpty()) - cfg.writeEntry("AlternativeNickName",pNetwork->m_szAlternativeNickName); + cfg.writeEntry("AlternativeNickName", pNetwork->m_szAlternativeNickName); if(!pNetwork->m_szRealName.isEmpty()) - cfg.writeEntry("RealName",pNetwork->m_szRealName); + cfg.writeEntry("RealName", pNetwork->m_szRealName); if(!pNetwork->m_szUserName.isEmpty()) - cfg.writeEntry("UserName",pNetwork->m_szUserName); + cfg.writeEntry("UserName", pNetwork->m_szUserName); if(!pNetwork->m_szPass.isEmpty()) - cfg.writeEntry("Pass",pNetwork->m_szPass); + cfg.writeEntry("Pass", pNetwork->m_szPass); if(!pNetwork->m_szOnConnectCommand.isEmpty()) - cfg.writeEntry("OnConnectCommand",pNetwork->m_szOnConnectCommand); + cfg.writeEntry("OnConnectCommand", pNetwork->m_szOnConnectCommand); if(!pNetwork->m_szOnLoginCommand.isEmpty()) - cfg.writeEntry("OnLoginCommand",pNetwork->m_szOnLoginCommand); - if(pNetwork->m_pNickServRuleSet)pNetwork->m_pNickServRuleSet->save(&cfg,QString()); + cfg.writeEntry("OnLoginCommand", pNetwork->m_szOnLoginCommand); + if(pNetwork->m_pNickServRuleSet) + pNetwork->m_pNickServRuleSet->save(&cfg, QString()); if(pNetwork->autoJoinChannelList()) - cfg.writeEntry("AutoJoinChannels",*(pNetwork->autoJoinChannelList())); - if(pNetwork->m_szName == m_szCurrentNetwork)cfg.writeEntry("Current",true); + cfg.writeEntry("AutoJoinChannels", *(pNetwork->autoJoinChannelList())); + if(pNetwork->m_szName == m_szCurrentNetwork) + cfg.writeEntry("Current", true); if(!pNetwork->m_szUserIdentityId.isEmpty()) - cfg.writeEntry("UserIdentityId",pNetwork->m_szUserIdentityId); - int i=0; + cfg.writeEntry("UserIdentityId", pNetwork->m_szUserIdentityId); + int i = 0; for(KviIrcServer * pServ = pNetwork->m_pServerList->first(); pServ; pServ = pNetwork->m_pServerList->next()) { szTmp = QString("%1_").arg(i); - pServ->save(&cfg,szTmp); + pServ->save(&cfg, szTmp); if(pServ == pNetwork->m_pCurrentServer) { szTmp = QString("%1_Current").arg(i); - cfg.writeEntry(szTmp,true); + cfg.writeEntry(szTmp, true); } i++; diff --git a/src/kvilib/irc/KviIrcServerDataBase.h b/src/kvilib/irc/KviIrcServerDataBase.h index 816fa5037..64ad9650a 100644 --- a/src/kvilib/irc/KviIrcServerDataBase.h +++ b/src/kvilib/irc/KviIrcServerDataBase.h @@ -43,17 +43,17 @@ */ typedef struct _KviIrcServerDefinition { - QString szServer; + QString szServer; kvi_u32_t uPort; - bool bPortIsValid; - bool bIPv6; - bool bSSL; - bool bSTARTTLS; - QString szLinkFilter; - QString szPass; - QString szNick; - QString szInitUMode; - QString szId; + bool bPortIsValid; + bool bIPv6; + bool bSSL; + bool bSTARTTLS; + QString szLinkFilter; + QString szPass; + QString szNick; + QString szInitUMode; + QString szId; } KviIrcServerDefinition; /** @@ -73,11 +73,13 @@ public: * \brief Destroys the server database object */ ~KviIrcServerDataBase(); + private: - KviPointerHashTable * m_pRecords; - QString m_szCurrentNetwork; - KviPointerList * m_pAutoConnectOnStartupServers; - KviPointerList * m_pAutoConnectOnStartupNetworks; + KviPointerHashTable * m_pRecords; + QString m_szCurrentNetwork; + KviPointerList * m_pAutoConnectOnStartupServers; + KviPointerList * m_pAutoConnectOnStartupNetworks; + public: /** * \brief Deletes the database @@ -89,7 +91,7 @@ public: * \brief Returns the record dictionary of the database * \return KviPointerHashTable * */ - inline KviPointerHashTable * recordDict(){ return m_pRecords; }; + inline KviPointerHashTable * recordDict() { return m_pRecords; }; /** * \brief Returns a list of servers to connect on startup @@ -101,7 +103,7 @@ public: * later. * \return KviPointerList * */ - inline KviPointerList * autoConnectOnStartupServers(){ return m_pAutoConnectOnStartupServers; }; + inline KviPointerList * autoConnectOnStartupServers() { return m_pAutoConnectOnStartupServers; }; /** * \brief Returns a list of networks to connect on startup @@ -113,7 +115,7 @@ public: * updated later. * \return KviPointerList * */ - inline KviPointerList * autoConnectOnStartupNetworks(){ return m_pAutoConnectOnStartupNetworks; }; + inline KviPointerList * autoConnectOnStartupNetworks() { return m_pAutoConnectOnStartupNetworks; }; /** * \brief Deletes the list of autoconnect servers @@ -132,13 +134,13 @@ public: * \param szNetName The name of the network * \return void */ - inline void setCurrentNetwork(const QString & szNetName){ m_szCurrentNetwork = szNetName; }; + inline void setCurrentNetwork(const QString & szNetName) { m_szCurrentNetwork = szNetName; }; /** * \brief Returns the current network name * \return const QString & */ - inline const QString & currentNetworkName(){ return m_szCurrentNetwork; }; + inline const QString & currentNetworkName() { return m_szCurrentNetwork; }; /** * \brief Returns the current network diff --git a/src/kvilib/irc/KviIrcServerReconnectInfo.cpp b/src/kvilib/irc/KviIrcServerReconnectInfo.cpp index 2912f24cf..c46fb6fac 100644 --- a/src/kvilib/irc/KviIrcServerReconnectInfo.cpp +++ b/src/kvilib/irc/KviIrcServerReconnectInfo.cpp @@ -35,11 +35,11 @@ KviIrcServerReconnectInfo::~KviIrcServerReconnectInfo() KviIrcServerReconnectInfo::KviIrcServerReconnectInfo(const KviIrcServerReconnectInfo & info) { - m_szNick = info.m_szNick; - m_szPass = info.m_szPass; - m_szAwayReason = info.m_szAwayReason; + m_szNick = info.m_szNick; + m_szPass = info.m_szPass; + m_szAwayReason = info.m_szAwayReason; //m_szJoinChannels = info.m_szJoinChannels; m_lJoinChannels = info.m_lJoinChannels; - m_lOpenQueries = info.m_lOpenQueries; - m_bIsAway = info.m_bIsAway; + m_lOpenQueries = info.m_lOpenQueries; + m_bIsAway = info.m_bIsAway; } diff --git a/src/kvilib/irc/KviIrcServerReconnectInfo.h b/src/kvilib/irc/KviIrcServerReconnectInfo.h index 9d11c3bb3..1957e1424 100644 --- a/src/kvilib/irc/KviIrcServerReconnectInfo.h +++ b/src/kvilib/irc/KviIrcServerReconnectInfo.h @@ -64,15 +64,16 @@ public: * \brief Destroys the server reconnect info object */ ~KviIrcServerReconnectInfo(); + public: - QString m_szNick; - QString m_szPass; - QString m_szAwayReason; + QString m_szNick; + QString m_szPass; + QString m_szAwayReason; QStringList m_lOpenQueries; - bool m_bIsAway; - + bool m_bIsAway; + // The list of channels to join (first = channel name, second = password) - QList< QPair< QString,QString > > m_lJoinChannels; + QList> m_lJoinChannels; }; #endif //_KVI_IRCSERVER_INFO_H_ diff --git a/src/kvilib/irc/KviIrcUserDataBase.cpp b/src/kvilib/irc/KviIrcUserDataBase.cpp index 010bf689a..5d177fbe6 100644 --- a/src/kvilib/irc/KviIrcUserDataBase.cpp +++ b/src/kvilib/irc/KviIrcUserDataBase.cpp @@ -22,16 +22,13 @@ // //============================================================================= - - #include "kvi_debug.h" #include "KviIrcUserDataBase.h" #include "KviQString.h" #include "KviStringConversion.h" - KviIrcUserDataBase::KviIrcUserDataBase() -: QObject() + : QObject() { // we expect a maximum of ~4000 users (= ~16 KB array on a 32 bit machine) // ...after that we will loose in performance @@ -41,7 +38,7 @@ KviIrcUserDataBase::KviIrcUserDataBase() // the performance increase since kvirc versions < 3.0.0 // is really big anyway (there was a linear list instead of a hash!!!) - m_pDict = new KviPointerHashTable(4001,false); + m_pDict = new KviPointerHashTable(4001, false); m_pDict->setAutoDelete(true); setupConnectionWithReguserDb(); } @@ -78,14 +75,13 @@ QColor * KviIrcUserDataBase::customColor(const QString & szNick) return 0; } - KviRegisteredUser * KviIrcUserDataBase::registeredUser(const QString & szNick, const QString & szUser, const QString & szHost) { if(szNick.isEmpty()) return 0; KviIrcUserEntry * pEntry = find(szNick); if(!pEntry) - return g_pRegisteredUserDataBase->findMatchingUser(szNick,szUser,szHost); + return g_pRegisteredUserDataBase->findMatchingUser(szNick, szUser, szHost); KviRegisteredUser * pUser = 0; @@ -100,7 +96,7 @@ KviRegisteredUser * KviIrcUserDataBase::registeredUser(const QString & szNick, c //user renamed or it is a first loockup if(pEntry->hasHost() && pEntry->hasUser()) { - pUser = g_pRegisteredUserDataBase->findMatchingUser(szNick,pEntry->user(),pEntry->host()); + pUser = g_pRegisteredUserDataBase->findMatchingUser(szNick, pEntry->user(), pEntry->host()); if(pUser) { pEntry->m_szLastRegisteredMatchNick = szNick; @@ -108,10 +104,12 @@ KviRegisteredUser * KviIrcUserDataBase::registeredUser(const QString & szNick, c pEntry->m_bUseCustomColor = pUser->getBoolProperty("useCustomColor"); QString szTmp = pUser->getProperty("customColor"); - KviStringConversion::fromString(szTmp,pEntry->m_cachedColor); + KviStringConversion::fromString(szTmp, pEntry->m_cachedColor); pEntry->m_bNotFoundRegUserLookup = false; //to be sure - } else { + } + else + { pEntry->m_szLastRegisteredMatchNick = szNick; pEntry->m_bNotFoundRegUserLookup = true; } @@ -128,13 +126,13 @@ KviRegisteredUser * KviIrcUserDataBase::registeredUser(const QString & szNick) KviIrcUserEntry * pEntry = find(szNick); if(!pEntry) return 0; - return registeredUser(szNick,pEntry->user(),pEntry->host()); + return registeredUser(szNick, pEntry->user(), pEntry->host()); } void KviIrcUserDataBase::clear() { delete m_pDict; - m_pDict = new KviPointerHashTable(4001,false); + m_pDict = new KviPointerHashTable(4001, false); m_pDict->setAutoDelete(true); } @@ -149,9 +147,11 @@ KviIrcUserEntry * KviIrcUserDataBase::insertUser(const QString & szNick, const Q pEntry->m_szUser = szUser; pEntry->m_szHost = szHost; } - } else { - pEntry = new KviIrcUserEntry(szUser,szHost); - m_pDict->insert(szNick,pEntry); + } + else + { + pEntry = new KviIrcUserEntry(szUser, szHost); + m_pDict->insert(szNick, pEntry); } return pEntry; } @@ -169,16 +169,16 @@ bool KviIrcUserDataBase::removeUser(const QString & szNick, KviIrcUserEntry * pE void KviIrcUserDataBase::setupConnectionWithReguserDb() { - connect(g_pRegisteredUserDataBase,SIGNAL(userRemoved(const QString&)),this,SLOT(registeredUserChanged(const QString&))); - connect(g_pRegisteredUserDataBase,SIGNAL(userChanged(const QString&)),this,SLOT(registeredUserChanged(const QString&))); - connect(g_pRegisteredUserDataBase,SIGNAL(userAdded(const QString&)),this,SLOT(registeredUserAdded(const QString&))); - connect(g_pRegisteredUserDataBase,SIGNAL(databaseCleared()),this,SLOT(registeredDatabaseCleared())); + connect(g_pRegisteredUserDataBase, SIGNAL(userRemoved(const QString &)), this, SLOT(registeredUserChanged(const QString &))); + connect(g_pRegisteredUserDataBase, SIGNAL(userChanged(const QString &)), this, SLOT(registeredUserChanged(const QString &))); + connect(g_pRegisteredUserDataBase, SIGNAL(userAdded(const QString &)), this, SLOT(registeredUserAdded(const QString &))); + connect(g_pRegisteredUserDataBase, SIGNAL(databaseCleared()), this, SLOT(registeredDatabaseCleared())); } void KviIrcUserDataBase::registeredUserChanged(const QString & szUser) { - KviPointerHashTableIterator it(*m_pDict); - for( ; it.current(); ++it ) + KviPointerHashTableIterator it(*m_pDict); + for(; it.current(); ++it) { if(it.current()->m_szRegisteredUserName == szUser) { @@ -190,8 +190,8 @@ void KviIrcUserDataBase::registeredUserChanged(const QString & szUser) void KviIrcUserDataBase::registeredUserAdded(const QString &) { - KviPointerHashTableIterator it(*m_pDict); - for( ; it.current(); ++it ) + KviPointerHashTableIterator it(*m_pDict); + for(; it.current(); ++it) { if(it.current()->m_szRegisteredUserName.isEmpty()) { @@ -202,8 +202,8 @@ void KviIrcUserDataBase::registeredUserAdded(const QString &) void KviIrcUserDataBase::registeredDatabaseCleared() { - KviPointerHashTableIterator it(*m_pDict); - for( ; it.current(); ++it ) + KviPointerHashTableIterator it(*m_pDict); + for(; it.current(); ++it) { it.current()->m_szRegisteredUserName = ""; it.current()->m_bNotFoundRegUserLookup = false; diff --git a/src/kvilib/irc/KviIrcUserDataBase.h b/src/kvilib/irc/KviIrcUserDataBase.h index 0e809a2bf..a8fbb2f77 100644 --- a/src/kvilib/irc/KviIrcUserDataBase.h +++ b/src/kvilib/irc/KviIrcUserDataBase.h @@ -56,8 +56,10 @@ public: * \brief Destoys the object */ ~KviIrcUserDataBase(); + private: - KviPointerHashTable * m_pDict; + KviPointerHashTable * m_pDict; + public: /** * \brief Clears the database @@ -79,7 +81,7 @@ public: * \param szNick The nickname of the user to find * \return KviIrcUserEntry * */ - KviIrcUserEntry * find(const QString & szNick){ return m_pDict->find(szNick); }; + KviIrcUserEntry * find(const QString & szNick) { return m_pDict->find(szNick); }; /** * \brief Decrements the user reference count and if it reaches 0 then deletes the user from the database @@ -93,7 +95,7 @@ public: * \brief Returns the database dictionary * \return KviPointerHashTable * */ - KviPointerHashTable * dict(){ return m_pDict; }; + KviPointerHashTable * dict() { return m_pDict; }; /** * \brief Returns the registered user, if any, or 0 diff --git a/src/kvilib/irc/KviIrcUserEntry.cpp b/src/kvilib/irc/KviIrcUserEntry.cpp index e380ee176..cd9bf8f08 100644 --- a/src/kvilib/irc/KviIrcUserEntry.cpp +++ b/src/kvilib/irc/KviIrcUserEntry.cpp @@ -28,19 +28,19 @@ KviIrcUserEntry::KviIrcUserEntry(const QString & szUser, const QString & szHost) { - m_szUser = szUser; - m_szHost = szHost; - m_nRefs = 1; - m_iHops = -1; - m_bAway = false; - m_bIrcOp = false; - m_eGender = Unknown; - m_bBot = false; - m_bNotFoundRegUserLookup = false; - m_bUseCustomColor = false; - m_bAvatarRequested = false; - m_iSmartNickColor = -1; - m_szAccountName = QString(); + m_szUser = szUser; + m_szHost = szHost; + m_nRefs = 1; + m_iHops = -1; + m_bAway = false; + m_bIrcOp = false; + m_eGender = Unknown; + m_bBot = false; + m_bNotFoundRegUserLookup = false; + m_bUseCustomColor = false; + m_bAvatarRequested = false; + m_iSmartNickColor = -1; + m_szAccountName = QString(); } void KviIrcUserEntry::setRealName(const QString & szReal) @@ -55,18 +55,22 @@ void KviIrcUserEntry::setRealName(const QString & szReal) if(m_szRealName[1].unicode() & 1 && m_szRealName[1].unicode() & 2) { setBot(true); //3 - } else { + } + else + { if(m_szRealName[1].unicode() & 1) { setGender(Male); //1 - } else { + } + else + { if(m_szRealName[1].unicode() & 2) { setGender(Female); //2 } } } - m_szRealName.remove(0,3); + m_szRealName.remove(0, 3); } } @@ -87,7 +91,7 @@ void KviIrcUserEntry::setRealName(const QString & szReal) int iColor = KviNickColors::getSmartColorIntByMircColor(cFore, cBack); if(iColor >= 0) setSmartNickColor(iColor); - m_szRealName.remove(0,iPos+1); + m_szRealName.remove(0, iPos + 1); } } } diff --git a/src/kvilib/irc/KviIrcUserEntry.h b/src/kvilib/irc/KviIrcUserEntry.h index 2437d5c6c..044f46184 100644 --- a/src/kvilib/irc/KviIrcUserEntry.h +++ b/src/kvilib/irc/KviIrcUserEntry.h @@ -45,29 +45,32 @@ class KVILIB_API KviIrcUserEntry { friend class KviIrcUserDataBase; + public: /** * \enum Gender * \brief Defines the gender of the user */ - enum Gender { - Male = 0, /**< Male */ - Female = 1, /**< Female */ - Unknown = 3 /**< Unknown */ + enum Gender + { + Male = 0, /**< Male */ + Female = 1, /**< Female */ + Unknown = 3 /**< Unknown */ }; /** * \enum UserMode * \brief Defines the user mode in a channel */ - enum UserMode { - UserOp = 1, /**< the user is a userop of the channel */ - Voice = 2, /**< the user is a voice of the channel */ - HalfOp = 4, /**< the user is a halfop of the channel */ - Op = 8, /**< the user is an operator of the channel */ - ChanAdmin = 16, /**< the user is an admin of the channel */ - ChanOwner = 32, /**< the user is an owner of the channel */ - ModeMask = UserOp | Voice | HalfOp | Op | ChanAdmin | ChanOwner + enum UserMode + { + UserOp = 1, /**< the user is a userop of the channel */ + Voice = 2, /**< the user is a voice of the channel */ + HalfOp = 4, /**< the user is a halfop of the channel */ + Op = 8, /**< the user is an operator of the channel */ + ChanAdmin = 16, /**< the user is an admin of the channel */ + ChanOwner = 32, /**< the user is an owner of the channel */ + ModeMask = UserOp | Voice | HalfOp | Op | ChanAdmin | ChanOwner }; /** @@ -77,81 +80,83 @@ public: * \return KviIrcUserEntry */ KviIrcUserEntry(const QString & user, const QString & host); + protected: - QString m_szUser; - QString m_szHost; + QString m_szUser; + QString m_szHost; - QString m_szServer; - QString m_szRealName; - int m_iHops; - Gender m_eGender; - QString m_szUserFlags; + QString m_szServer; + QString m_szRealName; + int m_iHops; + Gender m_eGender; + QString m_szUserFlags; - bool m_bAway; - bool m_bIrcOp; + bool m_bAway; + bool m_bIrcOp; std::unique_ptr m_upAvatar; - int m_nRefs; - bool m_bBot; - bool m_bAvatarRequested; + int m_nRefs; + bool m_bBot; + bool m_bAvatarRequested; + + bool m_bNotFoundRegUserLookup; //wtf? + QString m_szRegisteredUserName; + QString m_szLastRegisteredMatchNick; - bool m_bNotFoundRegUserLookup; //wtf? - QString m_szRegisteredUserName; - QString m_szLastRegisteredMatchNick; + QColor m_cachedColor; + bool m_bUseCustomColor; - QColor m_cachedColor; - bool m_bUseCustomColor; + int m_iSmartNickColor; + QString m_szAccountName; - int m_iSmartNickColor; - QString m_szAccountName; public: /** * \brief Returns the ircview smart nick color of the user * \return int */ - int smartNickColor(){ return m_iSmartNickColor; }; + int smartNickColor() { return m_iSmartNickColor; }; /** * \brief Sets the ircview smart nick color of the user * \param iColor The color value * \return void */ - void setSmartNickColor(const int iColor){ m_iSmartNickColor = iColor; }; + void setSmartNickColor(const int iColor) { m_iSmartNickColor = iColor; }; /** * \brief Returns the gender of the user * \return Gender */ - Gender gender(){ return m_eGender; }; + Gender gender() { return m_eGender; }; /** * \brief Sets the user as a bot * \param bIsBot If the user is a bot * \return void */ - void setBot(bool bIsBot){ m_bBot = bIsBot; }; + void setBot(bool bIsBot) { m_bBot = bIsBot; }; /** * \brief Sets the gender of the user * \param g The gender * \return void */ - void setGender(Gender g){ m_eGender = g; }; + void setGender(Gender g) { m_eGender = g; }; /** * \brief Sets the username of the user * \param szUser The username * \return void */ - void setUser(const QString & szUser){ m_szUser = szUser; }; + void setUser(const QString & szUser) { m_szUser = szUser; }; /** * \brief Sets the server of the user * \param szServ The server * \return void */ - void setServer(const QString & szServ){ m_szServer = szServ; }; + void setServer(const QString & szServ) { m_szServer = szServ; }; /** * \brief Sets the realname of the user @@ -165,28 +170,28 @@ public: * \param iHops The number of hops * \return void */ - void setHops(int iHops){ m_iHops = iHops; }; + void setHops(int iHops) { m_iHops = iHops; }; /** * \brief Sets the hostname of the user * \param szHost The hostname * \return void */ - void setHost(const QString & szHost){ m_szHost = szHost; }; + void setHost(const QString & szHost) { m_szHost = szHost; }; /** * \brief Sets the away state of the user * \param bAway The away state * \return void */ - void setAway(bool bAway){ m_bAway = bAway; }; + void setAway(bool bAway) { m_bAway = bAway; }; /** * \brief Sets the irc operator state of the user * \param bIrcOp The ircop state * \return void */ - void setIrcOp(bool bIrcOp){ m_bIrcOp = bIrcOp; }; + void setIrcOp(bool bIrcOp) { m_bIrcOp = bIrcOp; }; /** * \brief Sets the avatar of the user @@ -210,13 +215,13 @@ public: * \param szFlags * \return void */ - void setUserFlags(const QString & szFlags){ m_szUserFlags = szFlags; }; + void setUserFlags(const QString & szFlags) { m_szUserFlags = szFlags; }; /** * \brief Returns true if the user is marked as a bot * \return bool */ - bool isBot(){ return m_bBot; }; + bool isBot() { return m_bBot; }; /** * \brief Returns true if the user is in away mode @@ -234,79 +239,79 @@ public: * \brief Returns true if the user has the username set * \return bool */ - bool hasUser(){ return (!m_szUser.isEmpty()); }; + bool hasUser() { return (!m_szUser.isEmpty()); }; /** * \brief Returns true if the user has the hostname set * \return bool */ - bool hasHost(){ return (!m_szHost.isEmpty()); }; + bool hasHost() { return (!m_szHost.isEmpty()); }; /** * \brief Returns true if the user has the server set * \return bool */ - bool hasServer(){ return (!m_szServer.isEmpty()); }; + bool hasServer() { return (!m_szServer.isEmpty()); }; /** * \brief Returns true if the user has the realname set * \return bool */ - bool hasRealName(){ return (!m_szRealName.isEmpty()); }; + bool hasRealName() { return (!m_szRealName.isEmpty()); }; /** * \brief Returns true if the user has hops set * \return bool */ - bool hasHops(){ return m_iHops >= 0; }; + bool hasHops() { return m_iHops >= 0; }; /** * \brief Returns the username of the user * \return const QString & */ - const QString & user(){ return m_szUser; }; + const QString & user() { return m_szUser; }; /** * \brief Returns the hostname of the user * \return const QString & */ - const QString & host(){ return m_szHost; }; + const QString & host() { return m_szHost; }; /** * \brief Returns the server of the user * \return const QString & */ - const QString & server(){ return m_szServer; }; + const QString & server() { return m_szServer; }; /** * \brief Returns the realname of the user * \return const QString & */ - const QString & realName(){ return m_szRealName; }; + const QString & realName() { return m_szRealName; }; /** * \brief Returns the user flags * \return const QString & */ - const QString & userFlags(){ return m_szUserFlags; }; + const QString & userFlags() { return m_szUserFlags; }; /** * \brief Returns the number of hops * \return int */ - int hops(){ return m_iHops; }; + int hops() { return m_iHops; }; /** * \brief Returns the avatar of the user * \return KviAvatar */ - KviAvatar * avatar(){ return m_upAvatar.get(); }; + KviAvatar * avatar() { return m_upAvatar.get(); }; /** * \brief Returns the number of references of the user in the database * \return int */ - int nRefs(){ return m_nRefs; }; + int nRefs() { return m_nRefs; }; /** * \brief Removes the avatar associated to the user @@ -329,18 +334,18 @@ public: * \brief Returns the account name (if any) * \return const QString & */ - const QString & accountName(){ return m_szAccountName; }; + const QString & accountName() { return m_szAccountName; }; /** * \brief Sets the account name for the user */ - void setAccountName(const QString &szAccountName){ m_szAccountName = szAccountName; }; + void setAccountName(const QString & szAccountName) { m_szAccountName = szAccountName; }; /** * \brief Returns true if the user has an account name * \return bool */ - bool hasAccountName(){ return (!m_szAccountName.isEmpty()); }; + bool hasAccountName() { return (!m_szAccountName.isEmpty()); }; }; #endif // _KVI_IRCUSER_ENTRY_H_ diff --git a/src/kvilib/irc/KviNickServRule.cpp b/src/kvilib/irc/KviNickServRule.cpp index 0bb2813d6..d79240a42 100644 --- a/src/kvilib/irc/KviNickServRule.cpp +++ b/src/kvilib/irc/KviNickServRule.cpp @@ -26,7 +26,7 @@ #include "KviConfigurationFile.h" #include "KviIrcMask.h" -void KviNickServRule::copyFrom(const KviNickServRule &src) +void KviNickServRule::copyFrom(const KviNickServRule & src) { m_szRegisteredNick = src.m_szRegisteredNick; m_szNickServMask = src.m_szNickServMask; @@ -39,18 +39,18 @@ void KviNickServRule::save(KviConfigurationFile * cfg, const QString & szPrefix) { QString szTmp; szTmp = QString("%1RegisteredNick").arg(szPrefix); - cfg->writeEntry(szTmp,m_szRegisteredNick); + cfg->writeEntry(szTmp, m_szRegisteredNick); szTmp = QString("%1NickServMask").arg(szPrefix); - cfg->writeEntry(szTmp,m_szNickServMask); + cfg->writeEntry(szTmp, m_szNickServMask); szTmp = QString("%1MessageRegexp").arg(szPrefix); - cfg->writeEntry(szTmp,m_szMessageRegexp); + cfg->writeEntry(szTmp, m_szMessageRegexp); szTmp = QString("%1IdentifyCommand").arg(szPrefix); - cfg->writeEntry(szTmp,m_szIdentifyCommand); + cfg->writeEntry(szTmp, m_szIdentifyCommand); szTmp = QString("%1ServerMask").arg(szPrefix); - cfg->writeEntry(szTmp,m_szServerMask); + cfg->writeEntry(szTmp, m_szServerMask); } -bool KviNickServRule::load(KviConfigurationFile * cfg,const QString & szPrefix) +bool KviNickServRule::load(KviConfigurationFile * cfg, const QString & szPrefix) { QString szTmp; szTmp = QString("%1RegisteredNick").arg(szPrefix); @@ -62,7 +62,7 @@ bool KviNickServRule::load(KviConfigurationFile * cfg,const QString & szPrefix) if(m_szNickServMask.isEmpty()) return false; szTmp = QString("%1ServerMask").arg(szPrefix); - m_szServerMask = cfg->readEntry(szTmp,QString()); + m_szServerMask = cfg->readEntry(szTmp, QString()); szTmp = QString("%1MessageRegexp").arg(szPrefix); m_szMessageRegexp = cfg->readEntry(szTmp); if(m_szMessageRegexp.isEmpty()) @@ -72,11 +72,11 @@ bool KviNickServRule::load(KviConfigurationFile * cfg,const QString & szPrefix) return !m_szIdentifyCommand.isEmpty(); } -KviNickServRule * KviNickServRule::createInstance(const QString &szRegisteredNick, - const QString &szNickServMask, - const QString &szMessageRegexp, - const QString &szIdentifyCommand, - const QString &szServerMask) +KviNickServRule * KviNickServRule::createInstance(const QString & szRegisteredNick, + const QString & szNickServMask, + const QString & szMessageRegexp, + const QString & szIdentifyCommand, + const QString & szServerMask) { - return new KviNickServRule(szRegisteredNick,szNickServMask,szMessageRegexp,szIdentifyCommand,szServerMask); + return new KviNickServRule(szRegisteredNick, szNickServMask, szMessageRegexp, szIdentifyCommand, szServerMask); } diff --git a/src/kvilib/irc/KviNickServRule.h b/src/kvilib/irc/KviNickServRule.h index 0812faca1..fccb97c16 100644 --- a/src/kvilib/irc/KviNickServRule.h +++ b/src/kvilib/irc/KviNickServRule.h @@ -35,50 +35,49 @@ class KviIrcMask; class KVILIB_API KviNickServRule : public KviHeapObject { protected: - QString m_szRegisteredNick; // my registered nickname - QString m_szNickServMask; // the NickServ service mask - QString m_szMessageRegexp; // the NickServ message regexp - QString m_szIdentifyCommand; // the IDENTIFY command to send to server - QString m_szServerMask; // the mask that the server must match (not used in per-network rules) + QString m_szRegisteredNick; // my registered nickname + QString m_szNickServMask; // the NickServ service mask + QString m_szMessageRegexp; // the NickServ message regexp + QString m_szIdentifyCommand; // the IDENTIFY command to send to server + QString m_szServerMask; // the mask that the server must match (not used in per-network rules) public: - KviNickServRule() : KviHeapObject() {}; + KviNickServRule() : KviHeapObject(){}; KviNickServRule( - const QString &szRegisteredNick, - const QString &szNickServMask, - const QString &szMessageRegexp, - const QString &szIdentifyCommand, - const QString &szServerMask = QString::null) - : KviHeapObject(), - m_szRegisteredNick(szRegisteredNick), - m_szNickServMask(szNickServMask), - m_szMessageRegexp(szMessageRegexp), - m_szIdentifyCommand(szIdentifyCommand), - m_szServerMask(szServerMask) - {}; + const QString & szRegisteredNick, + const QString & szNickServMask, + const QString & szMessageRegexp, + const QString & szIdentifyCommand, + const QString & szServerMask = QString::null) + : KviHeapObject(), + m_szRegisteredNick(szRegisteredNick), + m_szNickServMask(szNickServMask), + m_szMessageRegexp(szMessageRegexp), + m_szIdentifyCommand(szIdentifyCommand), + m_szServerMask(szServerMask){}; + public: const QString & registeredNick() const { return m_szRegisteredNick; }; const QString & nickServMask() const { return m_szNickServMask; }; const QString & messageRegexp() const { return m_szMessageRegexp; }; const QString & identifyCommand() const { return m_szIdentifyCommand; }; const QString & serverMask() const { return m_szServerMask; }; - void setRegisteredNick(const QString &szRegisteredNick){ m_szRegisteredNick = szRegisteredNick; }; - void setNickServMask(const QString &szNickServMask){ m_szNickServMask = szNickServMask; }; - void setMessageRegexp(const QString &szMessageRegexp){ m_szMessageRegexp = szMessageRegexp; }; - void setIdentifyCommand(const QString &szIdentifyCommand){ m_szIdentifyCommand = szIdentifyCommand; }; - void setServerMask(const QString &szServerMask){ m_szServerMask = szServerMask; }; + void setRegisteredNick(const QString & szRegisteredNick) { m_szRegisteredNick = szRegisteredNick; }; + void setNickServMask(const QString & szNickServMask) { m_szNickServMask = szNickServMask; }; + void setMessageRegexp(const QString & szMessageRegexp) { m_szMessageRegexp = szMessageRegexp; }; + void setIdentifyCommand(const QString & szIdentifyCommand) { m_szIdentifyCommand = szIdentifyCommand; }; + void setServerMask(const QString & szServerMask) { m_szServerMask = szServerMask; }; public: // avoid crashes under windows - static KviNickServRule * createInstance(const QString &szRegisteredNick, - const QString &szNickServMask, - const QString &szMessageRegexp, - const QString &szIdentifyCommand, - const QString &szServerMask = QString::null); + static KviNickServRule * createInstance(const QString & szRegisteredNick, + const QString & szNickServMask, + const QString & szMessageRegexp, + const QString & szIdentifyCommand, + const QString & szServerMask = QString::null); - void save(KviConfigurationFile * cfg,const QString &prefix); + void save(KviConfigurationFile * cfg, const QString & prefix); // returns false if the loaded data has no sense - bool load(KviConfigurationFile * cfg,const QString &prefix); - void copyFrom(const KviNickServRule &src); + bool load(KviConfigurationFile * cfg, const QString & prefix); + void copyFrom(const KviNickServRule & src); }; - #endif // _KVI_NICKSERV_RULE_H_ diff --git a/src/kvilib/irc/KviNickServRuleSet.cpp b/src/kvilib/irc/KviNickServRuleSet.cpp index 38707f62f..b7d3178f4 100644 --- a/src/kvilib/irc/KviNickServRuleSet.cpp +++ b/src/kvilib/irc/KviNickServRuleSet.cpp @@ -22,7 +22,6 @@ // //============================================================================= - #include "KviNickServRuleSet.h" #include "KviConfigurationFile.h" #include "KviIrcMask.h" @@ -59,26 +58,25 @@ then eventually use it at your own risk.[br] */ - // FIXME: The doc above is a bit outdated, fix it KviNickServRuleSet::KviNickServRuleSet() -: KviHeapObject() + : KviHeapObject() { m_bEnabled = false; m_pRules = 0; } -KviNickServRuleSet::KviNickServRuleSet(const KviNickServRuleSet &s) +KviNickServRuleSet::KviNickServRuleSet(const KviNickServRuleSet & s) { m_pRules = 0; copyFrom(s); } - KviNickServRuleSet::~KviNickServRuleSet() { - if(m_pRules)delete m_pRules; + if(m_pRules) + delete m_pRules; } void KviNickServRuleSet::save(KviConfigurationFile * pCfg, const QString & szPrefix) @@ -91,15 +89,15 @@ void KviNickServRuleSet::save(KviConfigurationFile * pCfg, const QString & szPre if(m_bEnabled) { szTmp = QString("%1NSEnabled").arg(szPrefix); - pCfg->writeEntry(szTmp,m_bEnabled); + pCfg->writeEntry(szTmp, m_bEnabled); } szTmp = QString("%1NSRules").arg(szPrefix); - pCfg->writeEntry(szTmp,m_pRules->count()); + pCfg->writeEntry(szTmp, m_pRules->count()); int i = 0; for(KviNickServRule * pRule = m_pRules->first(); pRule; pRule = m_pRules->next()) { szTmp = QString("%1NSRule%2_").arg(szPrefix).arg(i); - pRule->save(pCfg,szTmp); + pRule->save(pCfg, szTmp); i++; } } @@ -108,11 +106,11 @@ KviNickServRuleSet * KviNickServRuleSet::load(KviConfigurationFile * pCfg, const { QString szTmp; szTmp = QString("%1NSRules").arg(szPrefix); - unsigned int uCount = pCfg->readUIntEntry(szTmp,0); + unsigned int uCount = pCfg->readUIntEntry(szTmp, 0); if(uCount == 0) return 0; KviNickServRuleSet * pSet = new KviNickServRuleSet(); - if(pSet->loadPrivate(pCfg,szPrefix,uCount)) + if(pSet->loadPrivate(pCfg, szPrefix, uCount)) return pSet; delete pSet; return 0; @@ -121,27 +119,28 @@ KviNickServRuleSet * KviNickServRuleSet::load(KviConfigurationFile * pCfg, const void KviNickServRuleSet::load(const QString & szConfigFile) { clear(); - KviConfigurationFile cfg(szConfigFile,KviConfigurationFile::Read); + KviConfigurationFile cfg(szConfigFile, KviConfigurationFile::Read); QString szTmp = "NSRules"; - unsigned int uCount = cfg.readUIntEntry(szTmp,0); + unsigned int uCount = cfg.readUIntEntry(szTmp, 0); if(uCount == 0) return; - loadPrivate(&cfg,QString(""),uCount); + loadPrivate(&cfg, QString(""), uCount); } void KviNickServRuleSet::save(const QString & szConfigFile) { - KviConfigurationFile cfg(szConfigFile,KviConfigurationFile::Write); + KviConfigurationFile cfg(szConfigFile, KviConfigurationFile::Write); cfg.clear(); - save(&cfg,QString("")); + save(&cfg, QString("")); } bool KviNickServRuleSet::loadPrivate(KviConfigurationFile * pCfg, const QString & szPrefix, unsigned int uEntries) { if(m_pRules) m_pRules->clear(); - else { + else + { m_pRules = new KviPointerList; m_pRules->setAutoDelete(true); } @@ -150,14 +149,15 @@ bool KviNickServRuleSet::loadPrivate(KviConfigurationFile * pCfg, const QString { QString szTmp; szTmp = QString("%1NSEnabled").arg(szPrefix); - m_bEnabled = pCfg->readBoolEntry(szTmp,false); - for(unsigned int u=0; u < uEntries; u++) + m_bEnabled = pCfg->readBoolEntry(szTmp, false); + for(unsigned int u = 0; u < uEntries; u++) { szTmp = QString("%1NSRule%2_").arg(szPrefix).arg(u); KviNickServRule * pRule = new KviNickServRule(); - if(!pRule->load(pCfg,szTmp)) + if(!pRule->load(pCfg, szTmp)) delete pRule; - else m_pRules->append(pRule); + else + m_pRules->append(pRule); } } @@ -196,40 +196,43 @@ KviNickServRuleSet * KviNickServRuleSet::createInstance() return new KviNickServRuleSet(); } - KviNickServRule * KviNickServRuleSet::matchRule(const QString & szNick, const KviIrcMask * pNickServ, const QString & szMsg, const QString & szServer) { - if(!m_pRules) return 0; + if(!m_pRules) + return 0; - for(KviNickServRule *r = m_pRules->first();r;r = m_pRules->next()) + for(KviNickServRule * r = m_pRules->first(); r; r = m_pRules->next()) { - if(!KviQString::matchString(r->registeredNick(),szNick,false,true)) + if(!KviQString::matchString(r->registeredNick(), szNick, false, true)) continue; if(!szServer.isEmpty()) { - QRegExp res(r->serverMask(),Qt::CaseInsensitive,QRegExp::Wildcard); + QRegExp res(r->serverMask(), Qt::CaseInsensitive, QRegExp::Wildcard); if(!res.exactMatch(szServer)) continue; } if(!pNickServ->matchedBy(KviIrcMask(r->nickServMask()))) continue; - QRegExp re(r->messageRegexp(),Qt::CaseInsensitive,QRegExp::Wildcard); - if(re.exactMatch(szMsg)) return r; + QRegExp re(r->messageRegexp(), Qt::CaseInsensitive, QRegExp::Wildcard); + if(re.exactMatch(szMsg)) + return r; } return 0; } -void KviNickServRuleSet::copyFrom(const KviNickServRuleSet &src) +void KviNickServRuleSet::copyFrom(const KviNickServRuleSet & src) { if(src.m_pRules) { - if(m_pRules)m_pRules->clear(); - else { + if(m_pRules) + m_pRules->clear(); + else + { m_pRules = new KviPointerList; m_pRules->setAutoDelete(true); } - for(KviNickServRule * r = src.m_pRules->first();r;r = src.m_pRules->next()) + for(KviNickServRule * r = src.m_pRules->first(); r; r = src.m_pRules->next()) { KviNickServRule * c = new KviNickServRule(); c->copyFrom(*r); @@ -240,10 +243,14 @@ void KviNickServRuleSet::copyFrom(const KviNickServRuleSet &src) m_bEnabled = false; delete m_pRules; m_pRules = 0; - } else { + } + else + { m_bEnabled = src.m_bEnabled; } - } else { + } + else + { m_bEnabled = false; if(m_pRules) { @@ -252,4 +259,3 @@ void KviNickServRuleSet::copyFrom(const KviNickServRuleSet &src) } } } - diff --git a/src/kvilib/irc/KviNickServRuleSet.h b/src/kvilib/irc/KviNickServRuleSet.h index f680b0d9d..a761a17a4 100644 --- a/src/kvilib/irc/KviNickServRuleSet.h +++ b/src/kvilib/irc/KviNickServRuleSet.h @@ -37,29 +37,31 @@ class KVILIB_API KviNickServRuleSet : public KviHeapObject { public: KviNickServRuleSet(); - KviNickServRuleSet(const KviNickServRuleSet &s); + KviNickServRuleSet(const KviNickServRuleSet & s); ~KviNickServRuleSet(); + protected: KviPointerList * m_pRules; // FIXME: Replace with KviPointerHashTable bool m_bEnabled; + public: // avoid crashes under windows static KviNickServRuleSet * createInstance(); void clear(); - bool isEnabled(){ return m_bEnabled; }; - void setEnabled(bool bEnabled){ m_bEnabled = bEnabled; }; - bool isEmpty(){ return m_pRules ? m_pRules->isEmpty() : true; }; + bool isEnabled() { return m_bEnabled; }; + void setEnabled(bool bEnabled) { m_bEnabled = bEnabled; }; + bool isEmpty() { return m_pRules ? m_pRules->isEmpty() : true; }; void addRule(KviNickServRule * r); - KviNickServRule * matchRule(const QString &szNick,const KviIrcMask *nickServ,const QString &szMsg,const QString &szServer = QString::null); - void copyFrom(const KviNickServRuleSet &src); - void load(const QString &szConfigFile); - void save(const QString &szConfigFile); - void save(KviConfigurationFile * cfg,const QString &prefix); - KviPointerList * rules(){ return m_pRules; }; - static KviNickServRuleSet * load(KviConfigurationFile * cfg,const QString &prefix); + KviNickServRule * matchRule(const QString & szNick, const KviIrcMask * nickServ, const QString & szMsg, const QString & szServer = QString::null); + void copyFrom(const KviNickServRuleSet & src); + void load(const QString & szConfigFile); + void save(const QString & szConfigFile); + void save(KviConfigurationFile * cfg, const QString & prefix); + KviPointerList * rules() { return m_pRules; }; + static KviNickServRuleSet * load(KviConfigurationFile * cfg, const QString & prefix); + protected: - bool loadPrivate(KviConfigurationFile * cfg,const QString &prefix,unsigned int nEntries); + bool loadPrivate(KviConfigurationFile * cfg, const QString & prefix, unsigned int nEntries); }; - #endif // _KVI_NICKSERV_RULE_SET_H_ diff --git a/src/kvilib/irc/KviUserIdentity.cpp b/src/kvilib/irc/KviUserIdentity.cpp index a944af6db..717c77b81 100644 --- a/src/kvilib/irc/KviUserIdentity.cpp +++ b/src/kvilib/irc/KviUserIdentity.cpp @@ -22,7 +22,6 @@ // //============================================================================= - #include "KviUserIdentity.h" #include "KviLocale.h" #include "kvi_defaults.h" @@ -30,7 +29,7 @@ // FIXME: Put here also the default away message, default away nick, default ctcp replies etc ? KviUserIdentity::KviUserIdentity() -: KviHeapObject() + : KviHeapObject() { } @@ -49,9 +48,9 @@ bool KviUserIdentity::load(KviConfigurationFile & cfg) // FIXME: At least scramble the pass ? m_szPassword = cfg.readEntry("Password"); KviPixmap def; - m_pixAvatar = cfg.readPixmapEntry("Avatar",def); + m_pixAvatar = cfg.readPixmapEntry("Avatar", def); m_szPartMessage = cfg.readEntry("PartMessage"); - m_szQuitMessage= cfg.readEntry("QuitMessage"); + m_szQuitMessage = cfg.readEntry("QuitMessage"); m_szAge = cfg.readEntry("Age"); m_szGender = cfg.readEntry("Gender"); m_szLocation = cfg.readEntry("Location"); @@ -66,24 +65,24 @@ bool KviUserIdentity::load(KviConfigurationFile & cfg) bool KviUserIdentity::save(KviConfigurationFile & cfg) { cfg.setGroup(m_szId); - cfg.writeEntry("NickName",m_szNickName); - cfg.writeEntry("AltNickName1",m_szAltNickName1); - cfg.writeEntry("AltNickName2",m_szAltNickName2); - cfg.writeEntry("AltNickName3",m_szAltNickName3); - cfg.writeEntry("UserName",m_szUserName); + cfg.writeEntry("NickName", m_szNickName); + cfg.writeEntry("AltNickName1", m_szAltNickName1); + cfg.writeEntry("AltNickName2", m_szAltNickName2); + cfg.writeEntry("AltNickName3", m_szAltNickName3); + cfg.writeEntry("UserName", m_szUserName); // FIXME: At least scramble the pass ? - cfg.writeEntry("Password",m_szPassword); - cfg.writeEntry("Avatar",m_pixAvatar); - cfg.writeEntry("PartMessage",m_szPartMessage); - cfg.writeEntry("QuitMessage",m_szQuitMessage); - cfg.writeEntry("Age",m_szAge); - cfg.writeEntry("Gender",m_szGender); - cfg.writeEntry("Location",m_szLocation); - cfg.writeEntry("Languages",m_szLanguages); - cfg.writeEntry("OtherInfo",m_szOtherInfo); - cfg.writeEntry("UserMode",m_szUserMode); - cfg.writeEntry("OnConnectCommand",m_szOnConnectCommand); - cfg.writeEntry("OnLoginCommand",m_szOnLoginCommand); + cfg.writeEntry("Password", m_szPassword); + cfg.writeEntry("Avatar", m_pixAvatar); + cfg.writeEntry("PartMessage", m_szPartMessage); + cfg.writeEntry("QuitMessage", m_szQuitMessage); + cfg.writeEntry("Age", m_szAge); + cfg.writeEntry("Gender", m_szGender); + cfg.writeEntry("Location", m_szLocation); + cfg.writeEntry("Languages", m_szLanguages); + cfg.writeEntry("OtherInfo", m_szOtherInfo); + cfg.writeEntry("UserMode", m_szUserMode); + cfg.writeEntry("OnConnectCommand", m_szOnConnectCommand); + cfg.writeEntry("OnLoginCommand", m_szOnLoginCommand); return true; } diff --git a/src/kvilib/irc/KviUserIdentity.h b/src/kvilib/irc/KviUserIdentity.h index 5caa45697..752e205ba 100644 --- a/src/kvilib/irc/KviUserIdentity.h +++ b/src/kvilib/irc/KviUserIdentity.h @@ -42,6 +42,7 @@ class KVILIB_API KviUserIdentity : public KviHeapObject { friend class KviUserIdentityManager; + public: /** * \brief Constructs the user identity object @@ -53,6 +54,7 @@ public: * \brief Destroys the user identity object */ ~KviUserIdentity(); + protected: QString m_szId; // the identity set name @@ -81,6 +83,7 @@ protected: QString m_szOnConnectCommand; QString m_szOnLoginCommand; + public: /** * \brief Returns the id of the user @@ -195,133 +198,133 @@ public: * \param szId The id of the user * \return void */ - void setId(const QString & szId){ m_szId = szId; }; + void setId(const QString & szId) { m_szId = szId; }; /** * \brief Sets the nickname of the user * \param szNickName The nickname of the user * \return void */ - void setNickName(const QString & szNickName){ m_szNickName = szNickName; }; + void setNickName(const QString & szNickName) { m_szNickName = szNickName; }; /** * \brief Sets the alternative nickname of the user * \param szNickName The nickname of the user * \return void */ - void setAltNickName1(const QString & szNickName){ m_szAltNickName1 = szNickName; }; + void setAltNickName1(const QString & szNickName) { m_szAltNickName1 = szNickName; }; /** * \brief Sets the second alternative nickname of the user * \param szNickName The nickname of the user * \return void */ - void setAltNickName2(const QString & szNickName){ m_szAltNickName2 = szNickName; }; + void setAltNickName2(const QString & szNickName) { m_szAltNickName2 = szNickName; }; /** * \brief Sets the third alternative nickname of the user * \param szNickName The nickname of the user * \return void */ - void setAltNickName3(const QString & szNickName){ m_szAltNickName3 = szNickName; }; + void setAltNickName3(const QString & szNickName) { m_szAltNickName3 = szNickName; }; /** * \brief Sets the username of the user * \param szUserName The username of the user * \return void */ - void setUserName(const QString & szUserName){ m_szUserName = szUserName; }; + void setUserName(const QString & szUserName) { m_szUserName = szUserName; }; /** * \brief Sets the realname of the user * \param szRealName The realname of the user * \return void */ - void setRealName(const QString & szRealName){ m_szRealName = szRealName; }; + void setRealName(const QString & szRealName) { m_szRealName = szRealName; }; /** * \brief Sets the password of the user * \param szPassword The password of the user * \return void */ - void setPassword(const QString & szPassword){ m_szPassword = szPassword; }; + void setPassword(const QString & szPassword) { m_szPassword = szPassword; }; /** * \brief Sets the avatar of the user * \param pix The avatar of the user * \return void */ - void setAvatar(const KviPixmap & pix){ m_pixAvatar = pix; }; + void setAvatar(const KviPixmap & pix) { m_pixAvatar = pix; }; /** * \brief Sets the part messaege of the user * \param szMsg The part message of the user * \return void */ - void setPartMessage(const QString & szMsg){ m_szPartMessage = szMsg; }; + void setPartMessage(const QString & szMsg) { m_szPartMessage = szMsg; }; /** * \brief Sets the quit messaege of the user * \param szMsg The quit message of the user * \return void */ - void setQuitMessage(const QString & szMsg){ m_szQuitMessage = szMsg; }; + void setQuitMessage(const QString & szMsg) { m_szQuitMessage = szMsg; }; /** * \brief Sets the age of the user * \param szAge The age of the user * \return void */ - void setAge(const QString & szAge){ m_szAge = szAge; }; + void setAge(const QString & szAge) { m_szAge = szAge; }; /** * \brief Sets the gender of the user * \param szGender The gemder of the user * \return void */ - void setGender(const QString & szGender){ m_szGender = szGender; }; + void setGender(const QString & szGender) { m_szGender = szGender; }; /** * \brief Sets the location of the user * \param szLocation The location of the user * \return void */ - void setLocation(const QString & szLocation){ m_szLocation = szLocation; }; + void setLocation(const QString & szLocation) { m_szLocation = szLocation; }; /** * \brief Sets the languages of the user * \param szLanguages The languages of the user * \return void */ - void setLanguages(const QString & szLanguages){ m_szLanguages = szLanguages; }; + void setLanguages(const QString & szLanguages) { m_szLanguages = szLanguages; }; /** * \brief Sets the other info for the user * \param szOtherInfo The other info of the user * \return void */ - void setOtherInfo(const QString & szOtherInfo){ m_szOtherInfo = szOtherInfo; }; + void setOtherInfo(const QString & szOtherInfo) { m_szOtherInfo = szOtherInfo; }; /** * \brief Sets the user mode of the user * \param szUserMode The user mode of the user * \return void */ - void setUserMode(const QString & szUserMode){ m_szUserMode = szUserMode; }; + void setUserMode(const QString & szUserMode) { m_szUserMode = szUserMode; }; /** * \brief Sets the commands list to run on connection * \param szOnConnectCommand The commands to run * \return void */ - void setOnConnectCommand(const QString & szOnConnectCommand){ m_szOnConnectCommand = szOnConnectCommand; }; + void setOnConnectCommand(const QString & szOnConnectCommand) { m_szOnConnectCommand = szOnConnectCommand; }; /** * \brief Sets the commands list to run on login * \param szOnLoginCommand The commands to run * \return void */ - void setOnLoginCommand(const QString & szOnLoginCommand){ m_szOnLoginCommand = szOnLoginCommand; }; + void setOnLoginCommand(const QString & szOnLoginCommand) { m_szOnLoginCommand = szOnLoginCommand; }; protected: /** * \brief Carbon copy diff --git a/src/kvilib/irc/KviUserIdentityManager.cpp b/src/kvilib/irc/KviUserIdentityManager.cpp index 4a7253ad1..e2169e3f7 100644 --- a/src/kvilib/irc/KviUserIdentityManager.cpp +++ b/src/kvilib/irc/KviUserIdentityManager.cpp @@ -30,9 +30,9 @@ KviUserIdentityManager * KviUserIdentityManager::m_pInstance = 0; KviUserIdentityManager::KviUserIdentityManager() -: KviHeapObject() + : KviHeapObject() { - m_pIdentityDict = new KviPointerHashTable(); + m_pIdentityDict = new KviPointerHashTable(); m_pIdentityDict->setAutoDelete(true); } @@ -68,7 +68,7 @@ const KviUserIdentity * KviUserIdentityManager::defaultIdentity() // the default identity is borken :/ // grab the first one - KviPointerHashTableIterator it(*m_pIdentityDict); + KviPointerHashTableIterator it(*m_pIdentityDict); pUser = it.current(); if(pUser) { @@ -89,7 +89,7 @@ const KviUserIdentity * KviUserIdentityManager::defaultIdentity() pUser->setPartMessage(KVI_DEFAULT_PART_MESSAGE); pUser->setQuitMessage(KVI_DEFAULT_QUIT_MESSAGE); - m_pIdentityDict->replace(pUser->id(),pUser); + m_pIdentityDict->replace(pUser->id(), pUser); return pUser; } @@ -98,22 +98,22 @@ void KviUserIdentityManager::load(const QString & szFileName) { m_pIdentityDict->clear(); - KviConfigurationFile cfg(szFileName,KviConfigurationFile::Read); + KviConfigurationFile cfg(szFileName, KviConfigurationFile::Read); cfg.setGroup("KVIrc"); - m_szDefaultIdentity = cfg.readEntry("DefaultIdentity",""); + m_szDefaultIdentity = cfg.readEntry("DefaultIdentity", ""); KviConfigurationFileIterator it(*(cfg.dict())); - while( (it.current()) ) + while((it.current())) { - if(!KviQString::equalCI(it.currentKey(),"KVIrc")) + if(!KviQString::equalCI(it.currentKey(), "KVIrc")) { cfg.setGroup(it.currentKey()); KviUserIdentity * pUser = new KviUserIdentity(); if(pUser->load(cfg)) - m_pIdentityDict->replace(pUser->id(),pUser); + m_pIdentityDict->replace(pUser->id(), pUser); else delete pUser; } @@ -123,14 +123,14 @@ void KviUserIdentityManager::load(const QString & szFileName) void KviUserIdentityManager::save(const QString & szFileName) { - KviConfigurationFile cfg(szFileName,KviConfigurationFile::Write); + KviConfigurationFile cfg(szFileName, KviConfigurationFile::Write); cfg.clear(); cfg.setGroup("KVIrc"); - cfg.writeEntry("DefaultIdentity",m_szDefaultIdentity); + cfg.writeEntry("DefaultIdentity", m_szDefaultIdentity); - KviPointerHashTableIterator it(*m_pIdentityDict); + KviPointerHashTableIterator it(*m_pIdentityDict); while(KviUserIdentity * pUser = it.current()) { pUser->save(cfg); @@ -142,12 +142,12 @@ void KviUserIdentityManager::copyFrom(KviUserIdentityManager * pWorkingCopy) { m_pIdentityDict->clear(); m_szDefaultIdentity = pWorkingCopy->m_szDefaultIdentity; - KviPointerHashTableIterator it(*(pWorkingCopy->m_pIdentityDict)); + KviPointerHashTableIterator it(*(pWorkingCopy->m_pIdentityDict)); while(KviUserIdentity * pUser = it.current()) { KviUserIdentity * pNew = new KviUserIdentity(); pNew->copyFrom(*pUser); - m_pIdentityDict->replace(pNew->id(),pNew); + m_pIdentityDict->replace(pNew->id(), pNew); ++it; } } diff --git a/src/kvilib/irc/KviUserIdentityManager.h b/src/kvilib/irc/KviUserIdentityManager.h index ca137d71e..a555b269d 100644 --- a/src/kvilib/irc/KviUserIdentityManager.h +++ b/src/kvilib/irc/KviUserIdentityManager.h @@ -55,10 +55,12 @@ protected: * \brief Destroys the user identity manager object */ ~KviUserIdentityManager(); + protected: static KviUserIdentityManager * m_pInstance; - KviPointerHashTable * m_pIdentityDict; + KviPointerHashTable * m_pIdentityDict; QString m_szDefaultIdentity; + public: /** * \brief Initializes a new user identity @@ -76,20 +78,20 @@ public: * \brief Returns the instance of the identity * \returns KviUserIdentityManager * */ - static KviUserIdentityManager * instance(){ return m_pInstance; }; + static KviUserIdentityManager * instance() { return m_pInstance; }; /** * \brief Returns the identity dictionary * \returns KviPointerHashTable * */ - KviPointerHashTable * identityDict(){ return m_pIdentityDict; }; + KviPointerHashTable * identityDict() { return m_pIdentityDict; }; /** * \brief Searches fot an identity * \param szId The identity id to find * \return const KviUserIdentity * */ - const KviUserIdentity * findIdentity(const QString & szId){ return m_pIdentityDict->find(szId); }; + const KviUserIdentity * findIdentity(const QString & szId) { return m_pIdentityDict->find(szId); }; /** * \brief Returns the default identity @@ -103,7 +105,7 @@ public: * \param szIdentityId The identity id to set * \return void */ - void setDefaultIdentity(const QString & szIdentityId){ m_szDefaultIdentity = szIdentityId; }; + void setDefaultIdentity(const QString & szIdentityId) { m_szDefaultIdentity = szIdentityId; }; /** * \brief Creates a new working copy diff --git a/src/kvilib/locale/KviLocale.cpp b/src/kvilib/locale/KviLocale.cpp index e4261b858..75ac4bee1 100644 --- a/src/kvilib/locale/KviLocale.cpp +++ b/src/kvilib/locale/KviLocale.cpp @@ -45,11 +45,10 @@ #include #include - -KVILIB_API KviMessageCatalogue * g_pMainCatalogue = NULL; +KVILIB_API KviMessageCatalogue * g_pMainCatalogue = NULL; static KviTranslator * g_pTranslator = NULL; -static KviPointerHashTable * g_pCatalogueDict = NULL; +static KviPointerHashTable * g_pCatalogueDict = NULL; static QTextCodec * g_pUtf8TextCodec = NULL; static QString g_szDefaultLocalePath; // FIXME: Convert this to a search path list @@ -80,74 +79,72 @@ static QString g_szDefaultLocalePath; // FIXME: Convert this to a search path li // ///////////////////////////////////////////////////////////////////////////////////// +#define UNICODE_VALID(Char) \ + ((Char) < 0x110000 && (((Char)&0xFFFFF800) != 0xD800) && ((Char) < 0xFDD0 || (Char) > 0xFDEF) && ((Char)&0xFFFE) != 0xFFFE) -#define UNICODE_VALID(Char) \ - ((Char) < 0x110000 && \ - (((Char) & 0xFFFFF800) != 0xD800) && \ - ((Char) < 0xFDD0 || (Char) > 0xFDEF) && \ - ((Char) & 0xFFFE) != 0xFFFE) - -#define CONTINUATION_CHAR \ - if ((*(unsigned char *)p & 0xc0) != 0x80) /* 10xxxxxx */ \ - goto error; \ - val <<= 6; \ - val |= (*(unsigned char *)p) & 0x3f; +#define CONTINUATION_CHAR \ + if((*(unsigned char *)p & 0xc0) != 0x80) /* 10xxxxxx */ \ + goto error; \ + val <<= 6; \ + val |= (*(unsigned char *)p) & 0x3f; - -static const char * fast_validate (const char *str) +static const char * fast_validate(const char * str) { unsigned int val = 0; unsigned int min = 0; - const char *p; + const char * p; - for (p = str; *p; p++) + for(p = str; *p; p++) { - if (*(unsigned char *)p < 128) + if(*(unsigned char *)p < 128) /* done */; else { - const char *last; + const char * last; last = p; - if ((*(unsigned char *)p & 0xe0) == 0xc0) /* 110xxxxx */ + if((*(unsigned char *)p & 0xe0) == 0xc0) /* 110xxxxx */ { - if ((*(unsigned char *)p & 0x1e) == 0) + if((*(unsigned char *)p & 0x1e) == 0) goto error; p++; - if ((*(unsigned char *)p & 0xc0) != 0x80) /* 10xxxxxx */ + if((*(unsigned char *)p & 0xc0) != 0x80) /* 10xxxxxx */ goto error; } else { - if ((*(unsigned char *)p & 0xf0) == 0xe0) /* 1110xxxx */ + if((*(unsigned char *)p & 0xf0) == 0xe0) /* 1110xxxx */ { min = (1 << 11); val = *(unsigned char *)p & 0x0f; goto TWO_REMAINING; } - else if ((*(unsigned char *)p & 0xf8) == 0xf0) /* 11110xxx */ + else if((*(unsigned char *)p & 0xf8) == 0xf0) /* 11110xxx */ { min = (1 << 16); val = *(unsigned char *)p & 0x07; } - else goto error; + else + goto error; p++; CONTINUATION_CHAR; - TWO_REMAINING: + TWO_REMAINING: p++; CONTINUATION_CHAR; p++; CONTINUATION_CHAR; - if (val < min) goto error; + if(val < min) + goto error; - if (!UNICODE_VALID(val)) goto error; + if(!UNICODE_VALID(val)) + goto error; } continue; - error: + error: return last; } } @@ -155,47 +152,47 @@ static const char * fast_validate (const char *str) return p; } -static const char * fast_validate_len (const char *str, int max_len) +static const char * fast_validate_len(const char * str, int max_len) { unsigned int val = 0; unsigned int min = 0; - const char *p; + const char * p; - for (p = str; (max_len < 0 || (p - str) < max_len) && *p; p++) + for(p = str; (max_len < 0 || (p - str) < max_len) && *p; p++) { - if (*(unsigned char *)p < 128) + if(*(unsigned char *)p < 128) /* done */; else { - const char *last; + const char * last; last = p; - if ((*(unsigned char *)p & 0xe0) == 0xc0) /* 110xxxxx */ + if((*(unsigned char *)p & 0xe0) == 0xc0) /* 110xxxxx */ { - if (max_len >= 0 && max_len - (p - str) < 2) - goto error; - - if ((*(unsigned char *)p & 0x1e) == 0) - goto error; - p++; - if ((*(unsigned char *)p & 0xc0) != 0x80) /* 10xxxxxx */ - goto error; + if(max_len >= 0 && max_len - (p - str) < 2) + goto error; + + if((*(unsigned char *)p & 0x1e) == 0) + goto error; + p++; + if((*(unsigned char *)p & 0xc0) != 0x80) /* 10xxxxxx */ + goto error; } else { - if ((*(unsigned char *)p & 0xf0) == 0xe0) /* 1110xxxx */ + if((*(unsigned char *)p & 0xf0) == 0xe0) /* 1110xxxx */ { - if (max_len >= 0 && max_len - (p - str) < 3) - goto error; + if(max_len >= 0 && max_len - (p - str) < 3) + goto error; min = (1 << 11); val = *(unsigned char *)p & 0x0f; goto TWO_REMAINING; } - else if ((*(unsigned char *)p & 0xf8) == 0xf0) /* 11110xxx */ + else if((*(unsigned char *)p & 0xf8) == 0xf0) /* 11110xxx */ { - if (max_len >= 0 && max_len - (p - str) < 4) - goto error; + if(max_len >= 0 && max_len - (p - str) < 4) + goto error; min = (1 << 16); val = *(unsigned char *)p & 0x07; @@ -205,19 +202,21 @@ static const char * fast_validate_len (const char *str, int max_len) p++; CONTINUATION_CHAR; - TWO_REMAINING: + TWO_REMAINING: p++; CONTINUATION_CHAR; p++; CONTINUATION_CHAR; - if (val < min) goto error; - if (!UNICODE_VALID(val)) goto error; + if(val < min) + goto error; + if(!UNICODE_VALID(val)) + goto error; } continue; - error: + error: return last; } } @@ -225,19 +224,19 @@ static const char * fast_validate_len (const char *str, int max_len) return p; } -static bool g_utf8_validate(const char *str,int max_len,const char **end) +static bool g_utf8_validate(const char * str, int max_len, const char ** end) { - const char *p; + const char * p; - if (max_len < 0) - p = fast_validate (str); + if(max_len < 0) + p = fast_validate(str); else - p = fast_validate_len (str, max_len); + p = fast_validate_len(str, max_len); - if (end) *end = p; + if(end) + *end = p; - if ((max_len >= 0 && p != str + max_len) || - (max_len < 0 && *p != '\0')) + if((max_len >= 0 && p != str + max_len) || (max_len < 0 && *p != '\0')) return false; else return true; @@ -250,12 +249,13 @@ static bool g_utf8_validate(const char *str,int max_len,const char **end) class KviSmartTextCodec : public QTextCodec { private: - QByteArray m_szName; + QByteArray m_szName; QTextCodec * m_pRecvCodec; QTextCodec * m_pSendCodec; + public: - KviSmartTextCodec(const char * szName,QTextCodec * pChildCodec,bool bSendInUtf8) - : QTextCodec() + KviSmartTextCodec(const char * szName, QTextCodec * pChildCodec, bool bSendInUtf8) + : QTextCodec() { Q_ASSERT(pChildCodec); @@ -276,30 +276,30 @@ public: m_pSendCodec = bSendInUtf8 ? g_pUtf8TextCodec : pChildCodec; } + public: - bool ok(){ return m_pRecvCodec && g_pUtf8TextCodec; }; + bool ok() { return m_pRecvCodec && g_pUtf8TextCodec; }; - virtual int mibEnum () const { return 0; }; + virtual int mibEnum() const { return 0; }; virtual QByteArray name() const { return m_szName; }; protected: - virtual QByteArray convertFromUnicode(const QChar * input,int number,ConverterState * state) const + virtual QByteArray convertFromUnicode(const QChar * input, int number, ConverterState * state) const { - return m_pSendCodec->fromUnicode(input,number,state); + return m_pSendCodec->fromUnicode(input, number, state); } - virtual QString convertToUnicode(const char * chars,int len,ConverterState * state) const + virtual QString convertToUnicode(const char * chars, int len, ConverterState * state) const { - if(g_utf8_validate(chars,len,NULL)) - return g_pUtf8TextCodec->toUnicode(chars,len,state); + if(g_utf8_validate(chars, len, NULL)) + return g_pUtf8TextCodec->toUnicode(chars, len, state); - return m_pRecvCodec->toUnicode(chars,len,state); + return m_pRecvCodec->toUnicode(chars, len, state); } }; -static KviPointerHashTable * g_pSmartCodecDict = 0; +static KviPointerHashTable * g_pSmartCodecDict = 0; -static const char * encoding_groups[] = -{ +static const char * encoding_groups[] = { "Unicode", "West European", "East European", @@ -313,9 +313,8 @@ static const char * encoding_groups[] = 0 }; -static KviLocale::EncodingDescription supported_encodings[] = -{ -// clang-format off +static KviLocale::EncodingDescription supported_encodings[] = { + // clang-format off // Unicode { "UTF-8" , 0 , 0 , 0, "8-bit Unicode" }, // West European @@ -464,7 +463,7 @@ static KviLocale::EncodingDescription supported_encodings[] = { "UTF-8 [CP-949]" , 1 , 1 , 7, "Unicode - Korean Codepage" }, #endif { 0 , 0 , 0 , 0 , 0 } -// clang-format on + // clang-format on }; KviLocale * KviLocale::m_pSelf = NULL; @@ -481,7 +480,7 @@ KviLocale::KviLocale(QApplication * pApp, const QString & szLocaleDir, const QSt if(KviFileUtils::fileExists(szLangFile)) { QString szTmp; - KviFileUtils::readFile(szLangFile,szTmp); + KviFileUtils::readFile(szLangFile, szTmp); g_szLang = szTmp; } if(g_szLang.isEmpty()) @@ -505,11 +504,11 @@ KviLocale::KviLocale(QApplication * pApp, const QString & szLocaleDir, const QSt // the main catalogue is supposed to be kvirc_.mo g_pMainCatalogue = new KviMessageCatalogue(); // the catalogue dict - g_pCatalogueDict = new KviPointerHashTable; + g_pCatalogueDict = new KviPointerHashTable; g_pCatalogueDict->setAutoDelete(true); // the smart codec dict - g_pSmartCodecDict = new KviPointerHashTable; + g_pSmartCodecDict = new KviPointerHashTable; // the Qt docs explicitly state that we shouldn't delete // the codecs by ourselves... g_pSmartCodecDict->setAutoDelete(false); @@ -522,25 +521,23 @@ KviLocale::KviLocale(QApplication * pApp, const QString & szLocaleDir, const QSt QLocale::setDefault(QLocale(QString::fromLatin1(g_szLang.ptr(), g_szLang.len()))); QString szBuffer; - if(findCatalogue(szBuffer,"kvirc",szLocaleDir)) + if(findCatalogue(szBuffer, "kvirc", szLocaleDir)) { g_pMainCatalogue->load(szBuffer); g_pTranslator = new KviTranslator(m_pApp); m_pApp->installTranslator(g_pTranslator); - } else { + } + else + { KviCString szTmp = g_szLang; szTmp.cutFromFirst('.'); szTmp.cutFromFirst('_'); szTmp.cutFromFirst('@'); szTmp.toLower(); - if(!(kvi_strEqualCI(szTmp.ptr(),"en") || - kvi_strEqualCI(szTmp.ptr(),"c") || - kvi_strEqualCI(szTmp.ptr(),"us") || - kvi_strEqualCI(szTmp.ptr(),"gb") || - kvi_strEqualCI(szTmp.ptr(),"posix"))) + if(!(kvi_strEqualCI(szTmp.ptr(), "en") || kvi_strEqualCI(szTmp.ptr(), "c") || kvi_strEqualCI(szTmp.ptr(), "us") || kvi_strEqualCI(szTmp.ptr(), "gb") || kvi_strEqualCI(szTmp.ptr(), "posix"))) { // FIXME: THIS IS NO LONGER VALID!!! - qDebug("Can't find the catalogue for locale \"%s\" (%s)",g_szLang.ptr(),szTmp.ptr()); + qDebug("Can't find the catalogue for locale \"%s\" (%s)", g_szLang.ptr(), szTmp.ptr()); qDebug("There is no such translation or the $LANG variable was incorrectly set"); qDebug("You can use $KVIRC_LANG to override the catalogue name"); qDebug("For example you can set KVIRC_LANG to it_IT to force usage of the it.mo catalogue"); @@ -573,7 +570,7 @@ void KviLocale::init(QApplication * pApp, const QString & szLocaleDir, const QSt { if((!m_pSelf) && (m_pSelf->count() == 0)) { - m_pSelf = new KviLocale(pApp,szLocaleDir,szForceLocaleDir); + m_pSelf = new KviLocale(pApp, szLocaleDir, szForceLocaleDir); m_uCount++; } } @@ -598,13 +595,15 @@ QTextCodec * KviLocale::codecForName(const char * pcName) if(pCodec) return pCodec; // got cached copy - if(kvi_strEqualCIN("UTF-8 [",pcName,7)) + if(kvi_strEqualCIN("UTF-8 [", pcName, 7)) { // Likely a smart codec that sends UTF-8 - szTmp.replaceAll("UTF-8 [",""); - szTmp.replaceAll("]",""); + szTmp.replaceAll("UTF-8 [", ""); + szTmp.replaceAll("]", ""); bSendUtf8 = true; - } else { + } + else + { // Likely a smart codec that sends child encoding ? szTmp.cutFromFirst(' '); bSendUtf8 = false; @@ -613,16 +612,18 @@ QTextCodec * KviLocale::codecForName(const char * pcName) QTextCodec * pChildCodec = QTextCodec::codecForName(szTmp.ptr()); if(pChildCodec) { - pCodec = new KviSmartTextCodec(pcName,pChildCodec,bSendUtf8); + pCodec = new KviSmartTextCodec(pcName, pChildCodec, bSendUtf8); if(pCodec->ok()) { - g_pSmartCodecDict->replace(pcName,pCodec); + g_pSmartCodecDict->replace(pcName, pCodec); return pCodec; } delete pCodec; - } else { + } + else + { // The name of the child codec was invalid: can't create such a smart codec. // We probably screwed up the guess above related to the [ char. // This code path is also triggered by the yircfuzzer by specifying completly invalid codec names. @@ -632,14 +633,14 @@ QTextCodec * KviLocale::codecForName(const char * pcName) return QTextCodec::codecForName(pcName); } -bool KviLocale::findCatalogue(QString & szBuffer, const QString & szName,const QString & szLocaleDir) +bool KviLocale::findCatalogue(QString & szBuffer, const QString & szName, const QString & szLocaleDir) { KviCString szLocale = g_szLang; QString szLocDir = szLocaleDir; - KviQString::ensureLastCharIs(szLocDir,KVI_PATH_SEPARATOR_CHAR); + KviQString::ensureLastCharIs(szLocDir, KVI_PATH_SEPARATOR_CHAR); - szBuffer = QString("%1%2_%3.mo").arg(szLocDir,szName).arg(szLocale.ptr()); + szBuffer = QString("%1%2_%3.mo").arg(szLocDir, szName).arg(szLocale.ptr()); if(KviFileUtils::fileExists(szBuffer)) return true; @@ -650,7 +651,7 @@ bool KviLocale::findCatalogue(QString & szBuffer, const QString & szName,const Q // kill them szLocale.cutFromFirst('.'); - szBuffer = QString("%1%2_%3.mo").arg(szLocDir,szName).arg(szLocale.ptr()); + szBuffer = QString("%1%2_%3.mo").arg(szLocDir, szName).arg(szLocale.ptr()); if(KviFileUtils::fileExists(szBuffer)) return true; } @@ -660,7 +661,7 @@ bool KviLocale::findCatalogue(QString & szBuffer, const QString & szName,const Q // things like @euro ? // kill them szLocale.cutFromFirst('@'); - szBuffer = QString("%1%2_%3.mo").arg(szLocDir,szName).arg(szLocale.ptr()); + szBuffer = QString("%1%2_%3.mo").arg(szLocDir, szName).arg(szLocale.ptr()); if(KviFileUtils::fileExists(szBuffer)) return true; } @@ -670,14 +671,14 @@ bool KviLocale::findCatalogue(QString & szBuffer, const QString & szName,const Q // things like en_GB // kill them szLocale.cutFromFirst('_'); - szBuffer = QString("%1%2_%3.mo").arg(szLocDir,szName).arg(szLocale.ptr()); + szBuffer = QString("%1%2_%3.mo").arg(szLocDir, szName).arg(szLocale.ptr()); if(KviFileUtils::fileExists(szBuffer)) return true; } // try the lower case version too szLocale.toLower(); - szBuffer = QString("%1%2_%3.mo").arg(szLocDir,szName).arg(szLocale.ptr()); + szBuffer = QString("%1%2_%3.mo").arg(szLocDir, szName).arg(szLocale.ptr()); if(KviFileUtils::fileExists(szBuffer)) return true; @@ -693,13 +694,13 @@ KviMessageCatalogue * KviLocale::loadCatalogue(const QString & szName, const QSt if(pCatalogue) return pCatalogue; // already loaded - if(!findCatalogue(szBuffer,szName,szLocaleDir)) + if(!findCatalogue(szBuffer, szName, szLocaleDir)) return NULL; pCatalogue = new KviMessageCatalogue(); if(pCatalogue->load(szBuffer)) { - g_pCatalogueDict->insert(szName.toUtf8().data(),pCatalogue); + g_pCatalogueDict->insert(szName.toUtf8().data(), pCatalogue); return pCatalogue; } delete pCatalogue; @@ -739,12 +740,12 @@ const char * KviLocale::translate(const char * pcText, const char * pcContext) KviMessageCatalogue * pCatalogue = g_pCatalogueDict->find(pcContext); if(!pCatalogue) { - pCatalogue = loadCatalogue(QString::fromUtf8(pcContext),g_szDefaultLocalePath); + pCatalogue = loadCatalogue(QString::fromUtf8(pcContext), g_szDefaultLocalePath); if(!pCatalogue) { // Fake it.... pCatalogue = new KviMessageCatalogue(); - g_pCatalogueDict->insert(pcContext,pCatalogue); + g_pCatalogueDict->insert(pcContext, pCatalogue); } } return pCatalogue->translate(pcText); @@ -758,12 +759,12 @@ const QString & KviLocale::translateToQString(const char * pcText, const char * KviMessageCatalogue * pCatalogue = g_pCatalogueDict->find(pcContext); if(!pCatalogue) { - pCatalogue = loadCatalogue(QString::fromUtf8(pcContext),g_szDefaultLocalePath); + pCatalogue = loadCatalogue(QString::fromUtf8(pcContext), g_szDefaultLocalePath); if(!pCatalogue) { // Fake it.... pCatalogue = new KviMessageCatalogue(); - g_pCatalogueDict->insert(pcContext,pCatalogue); + g_pCatalogueDict->insert(pcContext, pCatalogue); } } return pCatalogue->translateToQString(pcText); diff --git a/src/kvilib/locale/KviLocale.h b/src/kvilib/locale/KviLocale.h index 5201217fd..20c0874bb 100644 --- a/src/kvilib/locale/KviLocale.h +++ b/src/kvilib/locale/KviLocale.h @@ -46,11 +46,11 @@ class QTextCodec; * \def KVI_NUM_ENCODING_GROUPS The number of charset groups */ #ifndef QT_NO_BIG_CODECS - #define KVI_NUM_ENCODINGS 112 - #define KVI_NUM_ENCODING_GROUPS 8 +#define KVI_NUM_ENCODINGS 112 +#define KVI_NUM_ENCODING_GROUPS 8 #else - #define KVI_NUM_ENCODINGS 85 - #define KVI_NUM_ENCODING_GROUPS 5 +#define KVI_NUM_ENCODINGS 85 +#define KVI_NUM_ENCODING_GROUPS 5 #endif /** @@ -67,12 +67,13 @@ public: */ typedef struct _EncodingDescription { - const char * pcName; /**< name of the encoding */ - char bSmart; /**< is it a smart codec? */ - char bSendUtf8; /**< does it send utf8 or the local charset? */ - uint uGroup; /**< group */ - const char * pcDescription; /**< description of the encoding */ + const char * pcName; /**< name of the encoding */ + char bSmart; /**< is it a smart codec? */ + char bSendUtf8; /**< does it send utf8 or the local charset? */ + uint uGroup; /**< group */ + const char * pcDescription; /**< description of the encoding */ } EncodingDescription; + protected: /** * \brief Constructs the KviLocale object @@ -88,13 +89,17 @@ protected: * \return KviLocale */ ~KviLocale(); + public: static KviCString g_szLang; + protected: QApplication * m_pApp; + private: - static KviLocale * m_pSelf; - static unsigned int m_uCount; + static KviLocale * m_pSelf; + static unsigned int m_uCount; + public: /** * \brief Initializes the class instance @@ -116,13 +121,13 @@ public: * \brief Returns the instance of the class * \return KviLocale * */ - static inline KviLocale * instance(){ return m_pSelf; } + static inline KviLocale * instance() { return m_pSelf; } /** * \brief Returns the number of instances of the class * \return unsigned int */ - unsigned int count(){ return m_uCount; } + unsigned int count() { return m_uCount; } /** * \brief Returns the description of the encoding used @@ -146,7 +151,7 @@ public: * \brief Returns the language code of the localization * \return const KviCString & */ - const KviCString & localeName(){ return g_szLang; } + const KviCString & localeName() { return g_szLang; } /** * \brief Returns the codec associated to the given translation @@ -209,9 +214,8 @@ public: const QString & translateToQString(const char * pcText, const char * pcContext); }; - #ifndef _KVI_LOCALE_CPP_ - extern KVILIB_API KviMessageCatalogue * g_pMainCatalogue; +extern KVILIB_API KviMessageCatalogue * g_pMainCatalogue; #endif // !_KVI_LOCALE_CPP_ #define __tr(__text__) g_pMainCatalogue->translate(__text__) @@ -221,10 +225,10 @@ public: #define __tr2qs_no_lookup(__text__) __text__ #define __tr2qs_no_xgettext(__text__) g_pMainCatalogue->translateToQString(__text__) -#define __tr_ctx(__text__,__context__) KviLocale::instance()->translate(__text__,__context__) -#define __tr_no_lookup_ctx(__text__,__context__) __text__ -#define __tr_no_xgettext_ctx(__text__,__context__) KviLocale::instance()->translate(__text__,__context__) -#define __tr2qs_ctx(__text__,__context__) KviLocale::instance()->translateToQString(__text__,__context__) -#define __tr2qs_ctx_no_xgettext(__text__,__context__) KviLocale::instance()->translateToQString(__text__,__context__) +#define __tr_ctx(__text__, __context__) KviLocale::instance()->translate(__text__, __context__) +#define __tr_no_lookup_ctx(__text__, __context__) __text__ +#define __tr_no_xgettext_ctx(__text__, __context__) KviLocale::instance()->translate(__text__, __context__) +#define __tr2qs_ctx(__text__, __context__) KviLocale::instance()->translateToQString(__text__, __context__) +#define __tr2qs_ctx_no_xgettext(__text__, __context__) KviLocale::instance()->translateToQString(__text__, __context__) #endif //_KVI_LOCALE_H_ diff --git a/src/kvilib/locale/KviMessageCatalogue.cpp b/src/kvilib/locale/KviMessageCatalogue.cpp index 27edd6a54..6ff0baadd 100644 --- a/src/kvilib/locale/KviMessageCatalogue.cpp +++ b/src/kvilib/locale/KviMessageCatalogue.cpp @@ -69,13 +69,12 @@ */ // The magic number of the GNU message catalog format. -#define KVI_LOCALE_MAGIC 0x950412de +#define KVI_LOCALE_MAGIC 0x950412de #define KVI_LOCALE_MAGIC_SWAPPED 0xde120495 // Revision number of the currently used .mo (binary) file format. #define MO_REVISION_NUMBER 0 - // Header for binary .mo file format. struct GnuMoFileHeader { @@ -103,16 +102,15 @@ struct GnuMoStringDescriptor kvi_u32_t offset; }; -#define KVI_SWAP_IF_NEEDED(flag,value) (flag ? KviByteOrder::swap32(value) : (value)) +#define KVI_SWAP_IF_NEEDED(flag, value) (flag ? KviByteOrder::swap32(value) : (value)) //////////////////////////////////////////////////////////////////////////////////////// End of gettext.h & gettextP.h ////////////////////////////////////////////////////////////////////////////////////// // HELPERS -static int somePrimeNumbers[90] = -{ - 257 , 521 , 769 , 1031, 1087, 1091, 1103, 1117, 1123, 1151, // Incomplete *.mo files +static int somePrimeNumbers[90] = { + 257, 521, 769, 1031, 1087, 1091, 1103, 1117, 1123, 1151, // Incomplete *.mo files 1163, 1171, 1181, 1193, 1201, 1213, 1217, 1223, 1229, 1231, // Complete *.mo files 1237, 1249, 1259, 1277, 1283, 1289, 1291, 1297, 1307, 1319, 1321, 1327, 1361, 1367, 1373, 1381, 1399, 1409, 1423, 1433, @@ -139,7 +137,7 @@ KviMessageCatalogue::KviMessageCatalogue() m_pTextCodec = QTextCodec::codecForLocale(); //m_pMessages = new KviPointerHashTable(1123,true,false); // dictSize, case sensitive, don't copy keys - m_pMessages = new KviPointerHashTable(32,true,false); // dictSize, case sensitive, don't copy keys + m_pMessages = new KviPointerHashTable(32, true, false); // dictSize, case sensitive, don't copy keys m_pMessages->setAutoDelete(true); } @@ -157,15 +155,15 @@ bool KviMessageCatalogue::load(const QString & szName) KviFile f(szCatalogueFile); if(!f.open(QFile::ReadOnly)) { - qDebug("[KviLocale]: Failed to open the messages file %s: probably doesn't exist",szCatalogueFile.toUtf8().data()); + qDebug("[KviLocale]: Failed to open the messages file %s: probably doesn't exist", szCatalogueFile.toUtf8().data()); return false; } GnuMoFileHeader hdr; - if(f.read((char *)&hdr,sizeof(GnuMoFileHeader)) < (int)sizeof(GnuMoFileHeader)) + if(f.read((char *)&hdr, sizeof(GnuMoFileHeader)) < (int)sizeof(GnuMoFileHeader)) { - qDebug("KviLocale: Failed to read header of %s",szCatalogueFile.toUtf8().data()); + qDebug("KviLocale: Failed to read header of %s", szCatalogueFile.toUtf8().data()); f.close(); return false; } @@ -176,27 +174,29 @@ bool KviMessageCatalogue::load(const QString & szName) { if(hdr.magic == KVI_LOCALE_MAGIC_SWAPPED) { - qDebug("KviLocale: Swapped magic for file %s: swapping data too",szCatalogueFile.toUtf8().data()); + qDebug("KviLocale: Swapped magic for file %s: swapping data too", szCatalogueFile.toUtf8().data()); bMustSwap = true; - } else { - qDebug("KviLocale: Bad locale magic for file %s: not a *.mo file ?",szCatalogueFile.toUtf8().data()); + } + else + { + qDebug("KviLocale: Bad locale magic for file %s: not a *.mo file ?", szCatalogueFile.toUtf8().data()); f.close(); return false; } } - if(KVI_SWAP_IF_NEEDED(bMustSwap,hdr.revision) != MO_REVISION_NUMBER) + if(KVI_SWAP_IF_NEEDED(bMustSwap, hdr.revision) != MO_REVISION_NUMBER) { - qDebug("KviLocale: Invalid *.mo file revision number for file %s",szCatalogueFile.toUtf8().data()); + qDebug("KviLocale: Invalid *.mo file revision number for file %s", szCatalogueFile.toUtf8().data()); f.close(); return false; } - int iStringsNum = KVI_SWAP_IF_NEEDED(bMustSwap,hdr.nstrings); + int iStringsNum = KVI_SWAP_IF_NEEDED(bMustSwap, hdr.nstrings); if(iStringsNum <= 0) { - qDebug("KviLocale: No translated messages found in file %s",szCatalogueFile.toUtf8().data()); + qDebug("KviLocale: No translated messages found in file %s", szCatalogueFile.toUtf8().data()); f.close(); return false; } @@ -214,9 +214,9 @@ bool KviMessageCatalogue::load(const QString & szName) char * pcBuffer = (char *)KviMemory::allocate(uSize); // FIXME: maybe read it in blocks eh ? - if(f.read(pcBuffer,uSize) < (int)uSize) + if(f.read(pcBuffer, uSize) < (int)uSize) { - qDebug("KviLocale: Error while reading the translation file %s",szCatalogueFile.toUtf8().data()); + qDebug("KviLocale: Error while reading the translation file %s", szCatalogueFile.toUtf8().data()); KviMemory::free(pcBuffer); f.close(); return false; @@ -225,22 +225,21 @@ bool KviMessageCatalogue::load(const QString & szName) // Check for broken *.mo files if(uSize < (24 + (sizeof(GnuMoStringDescriptor) * iStringsNum))) { - qDebug("KviLocale: Broken translation file %s (too small for all descriptors)",szCatalogueFile.toUtf8().data()); + qDebug("KviLocale: Broken translation file %s (too small for all descriptors)", szCatalogueFile.toUtf8().data()); KviMemory::free(pcBuffer); f.close(); return false; } - GnuMoStringDescriptor * pOrigDescriptor = (GnuMoStringDescriptor *)(pcBuffer + KVI_SWAP_IF_NEEDED(bMustSwap,hdr.orig_tab_offset)); - GnuMoStringDescriptor * pTransDescriptor = (GnuMoStringDescriptor *)(pcBuffer + KVI_SWAP_IF_NEEDED(bMustSwap,hdr.trans_tab_offset)); + GnuMoStringDescriptor * pOrigDescriptor = (GnuMoStringDescriptor *)(pcBuffer + KVI_SWAP_IF_NEEDED(bMustSwap, hdr.orig_tab_offset)); + GnuMoStringDescriptor * pTransDescriptor = (GnuMoStringDescriptor *)(pcBuffer + KVI_SWAP_IF_NEEDED(bMustSwap, hdr.trans_tab_offset)); // Check again for broken *.mo files - int iExpectedFileSize = KVI_SWAP_IF_NEEDED(bMustSwap,pTransDescriptor[iStringsNum - 1].offset) + - KVI_SWAP_IF_NEEDED(bMustSwap,pTransDescriptor[iStringsNum - 1].length); + int iExpectedFileSize = KVI_SWAP_IF_NEEDED(bMustSwap, pTransDescriptor[iStringsNum - 1].offset) + KVI_SWAP_IF_NEEDED(bMustSwap, pTransDescriptor[iStringsNum - 1].length); if(uSize < (unsigned int)iExpectedFileSize) { - qDebug("KviLocale: Broken translation file %s (too small for all the message strings)",szCatalogueFile.toUtf8().data()); + qDebug("KviLocale: Broken translation file %s (too small for all the message strings)", szCatalogueFile.toUtf8().data()); KviMemory::free(pcBuffer); f.close(); return false; @@ -251,7 +250,7 @@ bool KviMessageCatalogue::load(const QString & szName) int iDictSize = kvi_getFirstBiggerPrime(iStringsNum); if(m_pMessages) delete m_pMessages; - m_pMessages = new KviPointerHashTable(iDictSize,true,false); // dictSize, case sensitive, don't copy keys + m_pMessages = new KviPointerHashTable(iDictSize, true, false); // dictSize, case sensitive, don't copy keys m_pMessages->setAutoDelete(true); KviCString szHeader; @@ -265,10 +264,10 @@ bool KviMessageCatalogue::load(const QString & szName) // KVI_SWAP_IF_NEEDED(bMustSwap,pTransDescriptor[i].length)); KviTranslationEntry * e = new KviTranslationEntry( - (char *)(pcBuffer + KVI_SWAP_IF_NEEDED(bMustSwap,pOrigDescriptor[i].offset)), - KVI_SWAP_IF_NEEDED(bMustSwap,pOrigDescriptor[i].length), - (char *)(pcBuffer + KVI_SWAP_IF_NEEDED(bMustSwap,pTransDescriptor[i].offset)), - KVI_SWAP_IF_NEEDED(bMustSwap,pTransDescriptor[i].length)); + (char *)(pcBuffer + KVI_SWAP_IF_NEEDED(bMustSwap, pOrigDescriptor[i].offset)), + KVI_SWAP_IF_NEEDED(bMustSwap, pOrigDescriptor[i].length), + (char *)(pcBuffer + KVI_SWAP_IF_NEEDED(bMustSwap, pTransDescriptor[i].offset)), + KVI_SWAP_IF_NEEDED(bMustSwap, pTransDescriptor[i].length)); // In some (or all?) *.mo files the first string // is zero bytes long and the translated one contains @@ -280,7 +279,7 @@ bool KviMessageCatalogue::load(const QString & szName) continue; } - m_pMessages->insert(e->m_szKey.ptr(),e); + m_pMessages->insert(e->m_szKey.ptr(), e); } KviMemory::free(pcBuffer); @@ -301,7 +300,7 @@ bool KviMessageCatalogue::load(const QString & szName) m_pTextCodec = KviLocale::instance()->codecForName(szHeader.ptr()); if(!m_pTextCodec) { - qDebug("Can't find the codec for charset=%s",szHeader.ptr()); + qDebug("Can't find the codec for charset=%s", szHeader.ptr()); qDebug("Falling back to codecForLocale()"); m_pTextCodec = QTextCodec::codecForLocale(); } @@ -338,7 +337,7 @@ const QString & KviMessageCatalogue::translateToQString(const char * pcText) } // no translation is available: let's avoid continuous string decoding pAux = new KviTranslationEntry(pcText); - m_pMessages->insert(pAux->m_szKey.ptr(),pAux); + m_pMessages->insert(pAux->m_szKey.ptr(), pAux); pAux->m_pTranslation = new QString(m_pTextCodec->toUnicode(pAux->m_szEncodedTranslation.ptr())); return *(pAux->m_pTranslation); } diff --git a/src/kvilib/locale/KviMessageCatalogue.h b/src/kvilib/locale/KviMessageCatalogue.h index c021ed23d..0e47e5359 100644 --- a/src/kvilib/locale/KviMessageCatalogue.h +++ b/src/kvilib/locale/KviMessageCatalogue.h @@ -31,7 +31,8 @@ #include -template class KviPointerHashTable; +template +class KviPointerHashTable; class KviTranslationEntry; class QTextCodec; @@ -56,9 +57,11 @@ public: * \brief Destroys the instance of KviMessageCatalogue and frees all the relevant resources */ ~KviMessageCatalogue(); + protected: - KviPointerHashTable * m_pMessages; + KviPointerHashTable * m_pMessages; QTextCodec * m_pTextCodec; + public: /** * \brief diff --git a/src/kvilib/locale/KviTranslationEntry.cpp b/src/kvilib/locale/KviTranslationEntry.cpp index 25c726a9c..0c7fd3715 100644 --- a/src/kvilib/locale/KviTranslationEntry.cpp +++ b/src/kvilib/locale/KviTranslationEntry.cpp @@ -27,13 +27,13 @@ #include "KviTranslationEntry.h" KviTranslationEntry::KviTranslationEntry(char * pcKey, int iKeyLen, char * pcTr, int iTrLen) -: m_szKey(pcKey,iKeyLen), m_szEncodedTranslation(pcTr,iTrLen) + : m_szKey(pcKey, iKeyLen), m_szEncodedTranslation(pcTr, iTrLen) { m_pTranslation = NULL; } KviTranslationEntry::KviTranslationEntry(const char * pcKeyAndTr) -: m_szKey(pcKeyAndTr), m_szEncodedTranslation(pcKeyAndTr) + : m_szKey(pcKeyAndTr), m_szEncodedTranslation(pcKeyAndTr) { m_pTranslation = NULL; } diff --git a/src/kvilib/locale/KviTranslationEntry.h b/src/kvilib/locale/KviTranslationEntry.h index 4f4cd9607..cf0068a7b 100644 --- a/src/kvilib/locale/KviTranslationEntry.h +++ b/src/kvilib/locale/KviTranslationEntry.h @@ -49,10 +49,12 @@ class KVILIB_API KviTranslationEntry : public KviHeapObject { friend class KviMessageCatalogue; + private: - KviCString m_szKey; - KviCString m_szEncodedTranslation; - QString * m_pTranslation; + KviCString m_szKey; + KviCString m_szEncodedTranslation; + QString * m_pTranslation; + public: /** * \brief Creates an instance of KviTranslationEntry diff --git a/src/kvilib/locale/KviTranslator.cpp b/src/kvilib/locale/KviTranslator.cpp index 8f31eaa7e..bc32345ae 100644 --- a/src/kvilib/locale/KviTranslator.cpp +++ b/src/kvilib/locale/KviTranslator.cpp @@ -28,7 +28,7 @@ #include "KviLocale.h" KviTranslator::KviTranslator(QObject * pParent) -: QTranslator(pParent) + : QTranslator(pParent) { } diff --git a/src/kvilib/locale/KviTranslator.h b/src/kvilib/locale/KviTranslator.h index 68fc18146..a719a07d1 100644 --- a/src/kvilib/locale/KviTranslator.h +++ b/src/kvilib/locale/KviTranslator.h @@ -39,7 +39,6 @@ #include #include - /** * \class KviTranslator * \brief The KviTranslator class @@ -48,7 +47,6 @@ class KVILIB_API KviTranslator : public QTranslator { Q_OBJECT public: - /** * \brief Creates an instance of KviTranslator * \param pParent The parent object @@ -60,6 +58,7 @@ public: * \brief Destroys the instance of KviTranslator and frees all the relevant resources */ virtual ~KviTranslator(); + public: /** * \brief Decodes the string and returns the current one diff --git a/src/kvilib/net/KviDnsResolver.cpp b/src/kvilib/net/KviDnsResolver.cpp index fab77d6ef..419019f57 100644 --- a/src/kvilib/net/KviDnsResolver.cpp +++ b/src/kvilib/net/KviDnsResolver.cpp @@ -31,33 +31,31 @@ #include #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - #include - - #ifdef COMPILE_IPV6_SUPPORT - #ifdef WIN2K - #include - #else - #include - //#include - #endif - #endif +#include + +#ifdef COMPILE_IPV6_SUPPORT +#ifdef WIN2K +#include +#else +#include +//#include +#endif +#endif #else - #include - #include - #include +#include +#include +#include #endif // this is for FreeBSD #ifndef EAI_ADDRFAMILY - #define EAI_ADDRFAMILY EAI_FAMILY +#define EAI_ADDRFAMILY EAI_FAMILY #endif #ifndef EAI_NODATA - #define EAI_NODATA 0 +#define EAI_NODATA 0 #endif - - KviDnsResolverResult::KviDnsResolverResult() { m_eError = KviError::Success; @@ -65,7 +63,6 @@ KviDnsResolverResult::KviDnsResolverResult() m_pHostnameList->setAutoDelete(true); m_pIpAddressList = new KviPointerList; m_pIpAddressList->setAutoDelete(true); - } KviDnsResolverResult::~KviDnsResolverResult() @@ -74,21 +71,18 @@ KviDnsResolverResult::~KviDnsResolverResult() delete m_pIpAddressList; } -void KviDnsResolverResult::appendHostname(const QString &host) +void KviDnsResolverResult::appendHostname(const QString & host) { m_pHostnameList->append(new QString(host)); } - -void KviDnsResolverResult::appendAddress(const QString &addr) +void KviDnsResolverResult::appendAddress(const QString & addr) { m_pIpAddressList->append(new QString(addr)); } - - KviDnsResolverThread::KviDnsResolverThread(KviDnsResolver * pDns) - : QThread() + : QThread() { m_pParentDns = pDns; } @@ -103,29 +97,50 @@ KviError::Code KviDnsResolverThread::translateDnsError(int iErr) switch(iErr) { - case EAI_FAMILY: return KviError::UnsupportedAddressFamily; break; -#if (!defined(COMPILE_ON_WINDOWS) && !defined(COMPILE_ON_MINGW)) && defined(EAI_ADDRFAMILY) && (EAI_ADDRFAMILY != EAI_FAMILY) - case EAI_ADDRFAMILY: return KviError::UnsupportedAddressFamily; break; + case EAI_FAMILY: + return KviError::UnsupportedAddressFamily; + break; +#if(!defined(COMPILE_ON_WINDOWS) && !defined(COMPILE_ON_MINGW)) && defined(EAI_ADDRFAMILY) && (EAI_ADDRFAMILY != EAI_FAMILY) + case EAI_ADDRFAMILY: + return KviError::UnsupportedAddressFamily; + break; #endif // NOT FreeBSD ARE WE? #if defined(EAI_NODATA) && (EAI_NODATA != EAI_NONAME) -// YARR - case EAI_NODATA: return KviError::ValidNameButNoIpAddress; break; + // YARR + case EAI_NODATA: + return KviError::ValidNameButNoIpAddress; + break; #endif - case EAI_FAIL: return KviError::UnrecoverableNameserverError; break; - case EAI_AGAIN: return KviError::DNSTemporaneousFault; break; + case EAI_FAIL: + return KviError::UnrecoverableNameserverError; + break; + case EAI_AGAIN: + return KviError::DNSTemporaneousFault; + break; // this should never happen - case EAI_BADFLAGS: return KviError::DNSInternalErrorBadFlags; break; - case EAI_MEMORY: return KviError::DNSInternalErrorOutOfMemory; break; + case EAI_BADFLAGS: + return KviError::DNSInternalErrorBadFlags; + break; + case EAI_MEMORY: + return KviError::DNSInternalErrorOutOfMemory; + break; // got this when experimenting with protocols - case EAI_SERVICE: return KviError::DNSInternalErrorServiceNotSupported; break; + case EAI_SERVICE: + return KviError::DNSInternalErrorServiceNotSupported; + break; #if !defined(COMPILE_ON_WINDOWS) && !defined(COMPILE_ON_MINGW) - case EAI_NONAME: return KviError::DNSNoName; break; + case EAI_NONAME: + return KviError::DNSNoName; + break; #endif // got this when experimenting with protocols - case EAI_SOCKTYPE: return KviError::DNSInternalErrorUnsupportedSocketType; break; + case EAI_SOCKTYPE: + return KviError::DNSInternalErrorUnsupportedSocketType; + break; #if !defined(COMPILE_ON_WINDOWS) && !defined(COMPILE_ON_MINGW) - case EAI_SYSTEM: return KviError::DNSQueryFailed; + case EAI_SYSTEM: + return KviError::DNSQueryFailed; #endif } @@ -138,7 +153,7 @@ void KviDnsResolverThread::postDnsError(KviDnsResolverResult * pDns, KviError::C pDns->setError(error); KviDnsResolverThreadEvent * pEvent = new KviDnsResolverThreadEvent(pDns); - QApplication::postEvent(m_pParentDns,pEvent); + QApplication::postEvent(m_pParentDns, pEvent); } void KviDnsResolverThread::run() @@ -149,7 +164,7 @@ void KviDnsResolverThread::run() if(m_szQuery.isEmpty()) { - postDnsError(dns,KviError::NoHostToResolve); + postDnsError(dns, KviError::NoHostToResolve); return; } @@ -158,32 +173,33 @@ void KviDnsResolverThread::run() { if(m_queryType == KviDnsResolver::IPv6) { - postDnsError(dns,KviError::NoIPv6Support); + postDnsError(dns, KviError::NoIPv6Support); return; } m_queryType = KviDnsResolver::IPv4; } #endif -#if (defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW)) && !defined(COMPILE_IPV6_SUPPORT) +#if(defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW)) && !defined(COMPILE_IPV6_SUPPORT) if(m_queryType == KviDnsResolver::IPv6) { - postDnsError(dns,KviError::NoIPv6Support); + postDnsError(dns, KviError::NoIPv6Support); return; } // gethostbyaddr and gethostbyname are thread-safe on Windoze struct in_addr inAddr; - struct hostent *pHostEntry = 0; - + struct hostent * pHostEntry = 0; // DIE DIE!....I hope that this stuff will disappear sooner or later :) - if(KviNetUtils::stringIpToBinaryIp(m_szQuery,&inAddr)) + if(KviNetUtils::stringIpToBinaryIp(m_szQuery, &inAddr)) + { + pHostEntry = gethostbyaddr((const char *)&inAddr, sizeof(inAddr), AF_INET); + } + else { - pHostEntry = gethostbyaddr((const char *)&inAddr,sizeof(inAddr),AF_INET); - } else { pHostEntry = gethostbyname(m_szQuery.toUtf8().data()); } @@ -191,40 +207,52 @@ void KviDnsResolverThread::run() { switch(h_errno) { - case HOST_NOT_FOUND: dns->setError(KviError::HostNotFound); break; - case NO_ADDRESS: dns->setError(KviError::ValidNameButNoIpAddress); break; - case NO_RECOVERY: dns->setError(KviError::UnrecoverableNameserverError); break; - case TRY_AGAIN: dns->setError(KviError::DNSTemporaneousFault); break; - default: dns->setError(KviError::DNSQueryFailed); break; + case HOST_NOT_FOUND: + dns->setError(KviError::HostNotFound); + break; + case NO_ADDRESS: + dns->setError(KviError::ValidNameButNoIpAddress); + break; + case NO_RECOVERY: + dns->setError(KviError::UnrecoverableNameserverError); + break; + case TRY_AGAIN: + dns->setError(KviError::DNSTemporaneousFault); + break; + default: + dns->setError(KviError::DNSQueryFailed); + break; } - } else { + } + else + { dns->appendHostname(pHostEntry->h_name); QString szIp; - KviNetUtils::binaryIpToStringIp(* ((struct in_addr*)(pHostEntry->h_addr)),szIp); + KviNetUtils::binaryIpToStringIp(*((struct in_addr *)(pHostEntry->h_addr)), szIp); dns->appendAddress(szIp); int idx = 1; while(pHostEntry->h_addr_list[idx]) { QString tmp; - KviNetUtils::binaryIpToStringIp(* ((struct in_addr*)(pHostEntry->h_addr_list[idx])),tmp); - if(!tmp.isEmpty())dns->appendAddress(tmp); + KviNetUtils::binaryIpToStringIp(*((struct in_addr *)(pHostEntry->h_addr_list[idx])), tmp); + if(!tmp.isEmpty()) + dns->appendAddress(tmp); ++idx; } if(pHostEntry->h_aliases[0]) { dns->appendHostname(QString::fromUtf8(pHostEntry->h_aliases[0])); - if(pHostEntry->h_aliases[1])dns->appendHostname(QString::fromUtf8(pHostEntry->h_aliases[1])); + if(pHostEntry->h_aliases[1]) + dns->appendHostname(QString::fromUtf8(pHostEntry->h_aliases[1])); } } - #else int retVal; - -//#ifdef HAVE_GETNAMEINFO + //#ifdef HAVE_GETNAMEINFO struct sockaddr_in ipv4Addr; #ifdef COMPILE_IPV6_SUPPORT @@ -232,10 +260,11 @@ void KviDnsResolverThread::run() bool bIsIPv6Ip = false; #endif - bool bIsIPv4Ip = KviNetUtils::stringIpToBinaryIp(m_szQuery,(struct in_addr *)&(ipv4Addr.sin_addr)); + bool bIsIPv4Ip = KviNetUtils::stringIpToBinaryIp(m_szQuery, (struct in_addr *)&(ipv4Addr.sin_addr)); #ifdef COMPILE_IPV6_SUPPORT - if(!bIsIPv4Ip)bIsIPv6Ip = KviNetUtils::stringIpToBinaryIp_V6(m_szQuery,(struct in6_addr *)&(ipv6Addr.sin6_addr)); + if(!bIsIPv4Ip) + bIsIPv6Ip = KviNetUtils::stringIpToBinaryIp_V6(m_szQuery, (struct in6_addr *)&(ipv6Addr.sin6_addr)); #endif //#ifdef HAVE_GETNAMEINFO @@ -257,61 +286,69 @@ void KviDnsResolverThread::run() ipv4Addr.sin_family = AF_INET; ipv4Addr.sin_port = 0; // NI_NAMEREQD as last param ? - retVal = getnameinfo((struct sockaddr *)&ipv4Addr,sizeof(ipv4Addr),retname,1025,0,0,NI_NAMEREQD); + retVal = getnameinfo((struct sockaddr *)&ipv4Addr, sizeof(ipv4Addr), retname, 1025, 0, 0, NI_NAMEREQD); #ifdef COMPILE_IPV6_SUPPORT - } else { + } + else + { ipv6Addr.sin6_family = AF_INET6; ipv6Addr.sin6_port = 0; - retVal = getnameinfo((struct sockaddr *)&ipv6Addr,sizeof(ipv6Addr),retname,1025,0,0,NI_NAMEREQD); + retVal = getnameinfo((struct sockaddr *)&ipv6Addr, sizeof(ipv6Addr), retname, 1025, 0, 0, NI_NAMEREQD); } #endif - if(retVal != 0)dns->setError(translateDnsError(retVal)); - else { + if(retVal != 0) + dns->setError(translateDnsError(retVal)); + else + { dns->appendHostname(retname); dns->appendAddress(m_szQuery); } + } + else + { + //#endif //HAVE_GETNAMEINFO - } else { -//#endif //HAVE_GETNAMEINFO - - -//#ifdef COMPILE_IPV6_SUPPORT -// struct in6_addr in6Addr; -//#endif + //#ifdef COMPILE_IPV6_SUPPORT + // struct in6_addr in6Addr; + //#endif struct addrinfo * pRet = 0; struct addrinfo * pNext; struct addrinfo hints; - hints.ai_flags = 0; //AI_CANONNAME; <-- for IPV6 it makes cannoname to point to the IP address! + hints.ai_flags = 0; //AI_CANONNAME; <-- for IPV6 it makes cannoname to point to the IP address! #ifdef COMPILE_IPV6_SUPPORT - hints.ai_family = (m_queryType == KviDnsResolver::IPv6) ? PF_INET6 : ((m_queryType == KviDnsResolver::IPv4) ? PF_INET : PF_UNSPEC); + hints.ai_family = (m_queryType == KviDnsResolver::IPv6) ? PF_INET6 : ((m_queryType == KviDnsResolver::IPv4) ? PF_INET : PF_UNSPEC); #else - hints.ai_family = PF_INET; + hints.ai_family = PF_INET; #endif - hints.ai_socktype = SOCK_STREAM; - hints.ai_protocol = 0; - hints.ai_addrlen = 0; + hints.ai_socktype = SOCK_STREAM; + hints.ai_protocol = 0; + hints.ai_addrlen = 0; hints.ai_canonname = 0; - hints.ai_addr = 0; - hints.ai_next = 0; + hints.ai_addr = 0; + hints.ai_next = 0; - retVal = getaddrinfo(m_szQuery.toUtf8().data(),0,&hints,&pRet); + retVal = getaddrinfo(m_szQuery.toUtf8().data(), 0, &hints, &pRet); if(retVal != 0) { dns->setError(translateDnsError(retVal)); - } else if(!pRet) + } + else if(!pRet) { dns->setError(KviError::DNSQueryFailed); - } else { + } + else + { dns->appendHostname(pRet->ai_canonname ? QString::fromUtf8(pRet->ai_canonname) : m_szQuery); QString szIp; #ifdef COMPILE_IPV6_SUPPORT if(pRet->ai_family == PF_INET6) - KviNetUtils::binaryIpToStringIp_V6(((sockaddr_in6 *)(pRet->ai_addr))->sin6_addr,szIp); - else { + KviNetUtils::binaryIpToStringIp_V6(((sockaddr_in6 *)(pRet->ai_addr))->sin6_addr, szIp); + else + { #endif - KviNetUtils::binaryIpToStringIp(((sockaddr_in *)(pRet->ai_addr))->sin_addr,szIp); + KviNetUtils::binaryIpToStringIp(((sockaddr_in *)(pRet->ai_addr))->sin_addr, szIp); #ifdef COMPILE_IPV6_SUPPORT } #endif @@ -323,10 +360,11 @@ void KviDnsResolverThread::run() QString tmp; #ifdef COMPILE_IPV6_SUPPORT if(pNext->ai_family == PF_INET6) - KviNetUtils::binaryIpToStringIp_V6(((sockaddr_in6 *)(pNext->ai_addr))->sin6_addr,tmp); - else { + KviNetUtils::binaryIpToStringIp_V6(((sockaddr_in6 *)(pNext->ai_addr))->sin6_addr, tmp); + else + { #endif - KviNetUtils::binaryIpToStringIp(((sockaddr_in *)(pNext->ai_addr))->sin_addr,tmp); + KviNetUtils::binaryIpToStringIp(((sockaddr_in *)(pNext->ai_addr))->sin_addr, tmp); #ifdef COMPILE_IPV6_SUPPORT } #endif @@ -340,24 +378,22 @@ void KviDnsResolverThread::run() } pNext = pNext->ai_next; - } } if(pRet) freeaddrinfo(pRet); -//#ifdef HAVE_GETNAMEINFO + //#ifdef HAVE_GETNAMEINFO } //#endif //HAVE_GETNAMEINFO #endif // !COMPILE_ON_WINDOWS KviDnsResolverThreadEvent * pEvent = new KviDnsResolverThreadEvent(dns); - QApplication::postEvent(m_pParentDns,pEvent); + QApplication::postEvent(m_pParentDns, pEvent); } - KviDnsResolver::KviDnsResolver() -: QObject() + : QObject() { m_pSlaveThread = new KviDnsResolverThread(this); m_pDnsResult = new KviDnsResolverResult(); @@ -391,7 +427,7 @@ bool KviDnsResolver::lookup(const QString & szQuery, QueryType type) { if(m_state == Busy) return false; - m_pSlaveThread->setQuery(szQuery.trimmed(),type); + m_pSlaveThread->setQuery(szQuery.trimmed(), type); m_pSlaveThread->start(); m_state = Busy; //m_state = bStarted ? Busy : Failure; @@ -410,7 +446,6 @@ QString KviDnsResolver::errorString() return KviError::getDescription(error()); } - KviDnsResolverResult * KviDnsResolver::result() { if(!m_pDnsResult) @@ -441,14 +476,16 @@ int KviDnsResolver::ipAddressCount() const QString & KviDnsResolver::firstHostname() { QString * pStr = result()->hostnameList()->first(); - if(pStr)return *pStr; + if(pStr) + return *pStr; return KviQString::Empty; } const QString & KviDnsResolver::firstIpAddress() { QString * pStr = result()->ipAddressList()->first(); - if(pStr)return *pStr; + if(pStr) + return *pStr; return KviQString::Empty; } @@ -457,14 +494,15 @@ const QString & KviDnsResolver::query() return result()->query(); } -bool KviDnsResolver::event(QEvent *e) +bool KviDnsResolver::event(QEvent * e) { if(e->type() == QEvent::User) { KviDnsResolverThreadEvent * pEvent = dynamic_cast(e); if(pEvent) { - if(m_pDnsResult)delete m_pDnsResult; + if(m_pDnsResult) + delete m_pDnsResult; m_pDnsResult = pEvent->releaseResult(); m_state = (m_pDnsResult->error() == KviError::Success) ? Success : Failure; emit lookupDone(this); diff --git a/src/kvilib/net/KviDnsResolver.h b/src/kvilib/net/KviDnsResolver.h index 43e7e8475..eabbedbe3 100644 --- a/src/kvilib/net/KviDnsResolver.h +++ b/src/kvilib/net/KviDnsResolver.h @@ -31,22 +31,25 @@ #include "KviError.h" #include "KviPointerList.h" - class KviDnsResolverThread; class KVILIB_API KviDnsResolverResult : public KviHeapObject { friend class KviDnsResolver; friend class KviDnsResolverThread; + protected: KviDnsResolverResult(); + public: ~KviDnsResolverResult(); + protected: KviError::Code m_eError; KviPointerList * m_pHostnameList; KviPointerList * m_pIpAddressList; QString m_szQuery; + public: KviError::Code error() { @@ -65,7 +68,7 @@ public: return m_pIpAddressList; } - const QString &query() + const QString & query() { return m_szQuery; } @@ -85,10 +88,8 @@ protected: void appendAddress(const QString & szAddr); }; - #include - class KVILIB_API KviDnsResolver : public QObject, public KviHeapObject { Q_OBJECT @@ -96,14 +97,28 @@ class KVILIB_API KviDnsResolver : public QObject, public KviHeapObject public: KviDnsResolver(); virtual ~KviDnsResolver(); + public: - enum QueryType { IPv4, IPv6, Any }; - enum State { Idle, Busy, Failure, Success }; + enum QueryType + { + IPv4, + IPv6, + Any + }; + enum State + { + Idle, + Busy, + Failure, + Success + }; + protected: void * m_pAuxData; KviDnsResolverThread * m_pSlaveThread; KviDnsResolverResult * m_pDnsResult; State m_state; + public: ///////////////////////////////////////////////////////////////////////////////////////////////////// // @@ -114,7 +129,7 @@ public: bool lookup(const QString & szQuery, QueryType type); // Current object state - State state(){ return m_state; }; + State state() { return m_state; }; // Results (return always non null-data..but valid results only if state() == Success or Failure) KviError::Code error(); @@ -133,18 +148,23 @@ public: bool isRunning() const; // Auxiliary data store - void setAuxData(void * pAuxData){ m_pAuxData = pAuxData; }; - void * releaseAuxData(){ void * pData = m_pAuxData; m_pAuxData = 0; return pData; }; + void setAuxData(void * pAuxData) { m_pAuxData = pAuxData; }; + void * releaseAuxData() + { + void * pData = m_pAuxData; + m_pAuxData = 0; + return pData; + }; + protected: - virtual bool event(QEvent *e); + virtual bool event(QEvent * e); + private: KviDnsResolverResult * result(); signals: void lookupDone(KviDnsResolver *); }; - - /////////////////////////////////////////////////////////////////////////////////////////////////////////// // INTERNAL CLASSES // @@ -158,9 +178,10 @@ class KviDnsResolverThreadEvent : public QEvent { private: KviDnsResolverResult * m_pResult; + public: KviDnsResolverThreadEvent(KviDnsResolverResult * pResult) - : QEvent(QEvent::User), m_pResult(pResult) + : QEvent(QEvent::User), m_pResult(pResult) { KVI_ASSERT(pResult); } @@ -170,6 +191,7 @@ public: if(m_pResult) delete m_pResult; } + public: KviDnsResolverResult * releaseResult() { @@ -182,20 +204,27 @@ public: class KviDnsResolverThread : public QThread { friend class KviDnsResolver; + protected: KviDnsResolverThread(KviDnsResolver * pDns); virtual ~KviDnsResolverThread(); + protected: - QString m_szQuery; - KviDnsResolver::QueryType m_queryType; - KviDnsResolver * m_pParentDns; + QString m_szQuery; + KviDnsResolver::QueryType m_queryType; + KviDnsResolver * m_pParentDns; + public: - void setQuery(const QString & szQuery, KviDnsResolver::QueryType type){ m_szQuery = szQuery; m_queryType = type; }; + void setQuery(const QString & szQuery, KviDnsResolver::QueryType type) + { + m_szQuery = szQuery; + m_queryType = type; + }; + protected: virtual void run(); KviError::Code translateDnsError(int iErr); void postDnsError(KviDnsResolverResult * pDns, KviError::Code error); }; - #endif //_KVI_DNS_H_ diff --git a/src/kvilib/net/KviDnsResolverNew.cpp b/src/kvilib/net/KviDnsResolverNew.cpp index 0bdefbb87..67c190920 100644 --- a/src/kvilib/net/KviDnsResolverNew.cpp +++ b/src/kvilib/net/KviDnsResolverNew.cpp @@ -45,7 +45,7 @@ public: }; KviDnsResolver::KviDnsResolver(QObject * pParent) - : QObject(pParent) + : QObject(pParent) { m_pPrivateData = new KviDnsResolverPrivate; m_pPrivateData->eState = Idle; @@ -65,7 +65,7 @@ KviDnsResolver::State KviDnsResolver::state() const return m_pPrivateData->eState; } -bool KviDnsResolver::lookup(const QString & szQuery,QueryType eType) +bool KviDnsResolver::lookup(const QString & szQuery, QueryType eType) { if(m_pPrivateData->eState == Busy) { @@ -78,7 +78,7 @@ bool KviDnsResolver::lookup(const QString & szQuery,QueryType eType) m_pPrivateData->eQueryType = eType; m_pPrivateData->eState = Busy; m_pPrivateData->szQuery = szQuery; - m_pPrivateData->iHostLookupId = QHostInfo::lookupHost(szQuery,this,SLOT(slotHostLookupTerminated(const QHostInfo &))); + m_pPrivateData->iHostLookupId = QHostInfo::lookupHost(szQuery, this, SLOT(slotHostLookupTerminated(const QHostInfo &))); if(m_pPrivateData->iHostLookupId < 0) { @@ -92,7 +92,7 @@ bool KviDnsResolver::lookup(const QString & szQuery,QueryType eType) return true; } -void KviDnsResolver::slotHostLookupTerminated(const QHostInfo &oHostInfo) +void KviDnsResolver::slotHostLookupTerminated(const QHostInfo & oHostInfo) { if(oHostInfo.error() != QHostInfo::NoError) { @@ -102,10 +102,10 @@ void KviDnsResolver::slotHostLookupTerminated(const QHostInfo &oHostInfo) { case QHostInfo::HostNotFound: m_pPrivateData->eError = KviError::HostNotFound; - break; + break; default: m_pPrivateData->eError = KviError::DNSQueryFailed; - break; + break; } m_pPrivateData->szError = oHostInfo.errorString(); @@ -125,29 +125,29 @@ void KviDnsResolver::slotHostLookupTerminated(const QHostInfo &oHostInfo) m_pPrivateData->szError = QString(); m_pPrivateData->eState = Success; - foreach(QHostAddress oAddress,lAddresses) + foreach(QHostAddress oAddress, lAddresses) { switch(m_pPrivateData->eQueryType) { case IPv4: if(oAddress.protocol() == QAbstractSocket::IPv4Protocol) m_pPrivateData->pAddressList->append(new QString(oAddress.toString())); - break; + break; case IPv6: if(oAddress.protocol() == QAbstractSocket::IPv6Protocol) m_pPrivateData->pAddressList->append(new QString(oAddress.toString())); - break; + break; case Any: m_pPrivateData->pAddressList->append(new QString(oAddress.toString())); - break; + break; default: - KVI_ASSERT_MSG(false,"Invalid DNS query type!"); + KVI_ASSERT_MSG(false, "Invalid DNS query type!"); m_pPrivateData->eState = Failure; m_pPrivateData->eError = KviError::InternalError; m_pPrivateData->szError = __tr2qs("Internal error: unhandled DNS query type"); emit lookupDone(this); return; - break; + break; } } @@ -159,7 +159,6 @@ void KviDnsResolver::slotHostLookupTerminated(const QHostInfo &oHostInfo) } emit lookupDone(this); - } KviError::Code KviDnsResolver::error() const @@ -184,7 +183,7 @@ const QString & KviDnsResolver::firstIpAddress() return m_pPrivateData->szDummy; return *pIpAddress; } - const QString & firstIpAddress(); +const QString & firstIpAddress(); int KviDnsResolver::ipAddressCount() const { @@ -205,4 +204,3 @@ bool KviDnsResolver::isRunning() const { return m_pPrivateData->eState == Busy; } - diff --git a/src/kvilib/net/KviDnsResolverNew.h b/src/kvilib/net/KviDnsResolverNew.h index 9b6417b71..8b6684d27 100644 --- a/src/kvilib/net/KviDnsResolverNew.h +++ b/src/kvilib/net/KviDnsResolverNew.h @@ -24,7 +24,6 @@ // //============================================================================= - // This is a nicely working DNS resolver that uses the QHostInfo interface // and thus gets rid of all the ugly OS dependencies we have. // It should be sufficient to rename this file and use this class @@ -58,7 +57,6 @@ class KVILIB_API KviDnsResolver : public QObject Q_OBJECT public: - /// /// Creates an instance of KviDnsResolver /// @@ -71,7 +69,6 @@ public: virtual ~KviDnsResolver(); public: - enum QueryType { IPv4, @@ -88,11 +85,9 @@ public: }; private: - KviDnsResolverPrivate * m_pPrivateData; public: - /// /// Returns the resolver state /// @@ -102,7 +97,7 @@ public: /// Starts a lookup for the specified DNS query of the specified type. /// Returns true on success and false on failure. /// - bool lookup(const QString & szQuery,QueryType eType); + bool lookup(const QString & szQuery, QueryType eType); // Results (return always non null-data..but valid results only if state() == Success or Failure) KviError::Code error() const; // DEPRECATED use errorString() @@ -116,12 +111,11 @@ public: bool isRunning() const; private slots: - void slotHostLookupTerminated(const QHostInfo &oHostInfo); + void slotHostLookupTerminated(const QHostInfo & oHostInfo); signals: void lookupDone(KviDnsResolver *); }; // class KviDnsResolver - #endif //!_KviDnsResolver_h_ diff --git a/src/kvilib/net/KviHttpRequest.cpp b/src/kvilib/net/KviHttpRequest.cpp index 9ce5600be..d5947ae8b 100644 --- a/src/kvilib/net/KviHttpRequest.cpp +++ b/src/kvilib/net/KviHttpRequest.cpp @@ -34,7 +34,7 @@ #include #ifdef COMPILE_SSL_SUPPORT - #include +#include #endif #include #include @@ -54,10 +54,8 @@ public: unsigned short uPort; }; - - KviHttpRequest::KviHttpRequest() -: QObject() + : QObject() { m_p = new KviHttpRequestPrivate(); m_p->pSocket = NULL; @@ -152,7 +150,7 @@ void KviHttpRequest::reset() resetInternalStatus(); } -bool KviHttpRequest::get(const KviUrl &u,ProcessingType p,const QString &szFileName) +bool KviHttpRequest::get(const KviUrl & u, ProcessingType p, const QString & szFileName) { reset(); setUrl(u); @@ -194,12 +192,12 @@ bool KviHttpRequest::start() return false; } - m_p->bIsSSL = KviQString::equalCI(m_connectionUrl.protocol(),"https"); + m_p->bIsSSL = KviQString::equalCI(m_connectionUrl.protocol(), "https"); - if(!KviQString::equalCI(m_connectionUrl.protocol(),"http") && !m_p->bIsSSL) + if(!KviQString::equalCI(m_connectionUrl.protocol(), "http") && !m_p->bIsSSL) { resetInternalStatus(); - m_szLastError=__tr2qs("Unsupported protocol %1").arg(m_connectionUrl.protocol()); + m_szLastError = __tr2qs("Unsupported protocol %1").arg(m_connectionUrl.protocol()); return false; } @@ -211,9 +209,9 @@ void KviHttpRequest::closeSocket() if(!m_p->pSocket) return; - QObject::disconnect(m_p->pSocket,SIGNAL(connected()),this,SLOT(slotSocketConnected())); - QObject::disconnect(m_p->pSocket,SIGNAL(disconnected()),this,SLOT(slotSocketDisconnected())); - QObject::disconnect(m_p->pSocket,SIGNAL(error(QAbstractSocket::SocketError)),this,SLOT(slotSocketError(QAbstractSocket::SocketError))); + QObject::disconnect(m_p->pSocket, SIGNAL(connected()), this, SLOT(slotSocketConnected())); + QObject::disconnect(m_p->pSocket, SIGNAL(disconnected()), this, SLOT(slotSocketDisconnected())); + QObject::disconnect(m_p->pSocket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(slotSocketError(QAbstractSocket::SocketError))); m_p->pSocket->abort(); m_p->pSocket->close(); @@ -233,28 +231,28 @@ void KviHttpRequest::slotSocketDisconnected() case WholeFile: // happens always emit binaryData(*m_p->pBuffer); - break; + break; case Blocks: // an unprocessed block ?.. should never happened.. but well :D if(m_p->pBuffer->size() > 0) emit binaryData(*m_p->pBuffer); - break; + break; case Lines: if(m_p->pBuffer->size() > 0) { // something left in the buffer and has no trailing LF - KviCString tmp((const char *)(m_p->pBuffer->data()),m_p->pBuffer->size()); + KviCString tmp((const char *)(m_p->pBuffer->data()), m_p->pBuffer->size()); emit data(tmp); } - break; + break; case StoreToFile: // same as above... should never happen.. but well :D if(m_p->pFile && m_p->pBuffer->size() > 0) - m_p->pFile->write((const char *)(m_p->pBuffer->data()),m_p->pBuffer->size()); - break; + m_p->pFile->write((const char *)(m_p->pBuffer->data()), m_p->pBuffer->size()); + break; default: // nothing... just make gcc happy - break; + break; } resetInternalStatus(); m_szLastError = __tr2qs("Success"); @@ -271,10 +269,9 @@ void KviHttpRequest::slotSocketConnected() emit connectionEstablished(); emit status( - __tr2qs("Connected to %1:%2: sending request") - .arg(m_p->pSocket->peerAddress().toString()) - .arg(m_p->pSocket->peerPort()) - ); + __tr2qs("Connected to %1:%2: sending request") + .arg(m_p->pSocket->peerAddress().toString()) + .arg(m_p->pSocket->peerPort())); KviCString szMethod; @@ -284,32 +281,33 @@ void KviHttpRequest::slotSocketConnected() szMethod = "HEAD"; else if(m_szPostData.isEmpty()) szMethod = "GET"; - else { + else + { szMethod = "POST"; bIsPost = true; } KviCString szRequest( - KviCString::Format, - "%s %s HTTP/1.1\r\n" \ - "Host: %s\r\n" \ - "Connection: Close\r\n" \ - "User-Agent: KVIrc-http-slave/1.0.0\r\n" \ - "Accept: */*\r\n", - szMethod.ptr(), - m_connectionUrl.path().toUtf8().data(), - m_connectionUrl.host().toUtf8().data() - ); + KviCString::Format, + "%s %s HTTP/1.1\r\n" + "Host: %s\r\n" + "Connection: Close\r\n" + "User-Agent: KVIrc-http-slave/1.0.0\r\n" + "Accept: */*\r\n", + szMethod.ptr(), + m_connectionUrl.path().toUtf8().data(), + m_connectionUrl.host().toUtf8().data()); if(m_uContentOffset > 0) - szRequest.append(KviCString::Format,"Range: bytes=%u-\r\n",m_uContentOffset); + szRequest.append(KviCString::Format, "Range: bytes=%u-\r\n", m_uContentOffset); if(bIsPost) { - szRequest.append(KviCString::Format,"Content-Type: application/x-www-form-urlencoded\r\n" \ - "Content-Length: %u\r\n" \ - "Cache-control: no-cache\r\n" \ - "Pragma: no-cache\r\n",m_szPostData.length()); + szRequest.append(KviCString::Format, "Content-Type: application/x-www-form-urlencoded\r\n" + "Content-Length: %u\r\n" + "Cache-control: no-cache\r\n" + "Pragma: no-cache\r\n", + m_szPostData.length()); } szRequest += "\r\n"; @@ -322,7 +320,7 @@ void KviHttpRequest::slotSocketConnected() } // FIXME: Handle this better! - int written = m_p->pSocket->write(szRequest.ptr(),szRequest.len()); + int written = m_p->pSocket->write(szRequest.ptr(), szRequest.len()); if(written < szRequest.len()) { m_szLastError = __tr2qs("Socket write error"); @@ -357,7 +355,7 @@ void KviHttpRequest::slotSocketReadDataReady() KviDataBuffer oBuffer(iBytes); - int iRead = m_p->pSocket->read((char *)(oBuffer.data()),iBytes); + int iRead = m_p->pSocket->read((char *)(oBuffer.data()), iBytes); if(iRead < iBytes) { // hum.... what here ? @@ -417,11 +415,11 @@ bool KviHttpRequest::doConnect() #else m_p->pSocket = new QTcpSocket(); #endif - QObject::connect(m_p->pSocket,SIGNAL(connected()),this,SLOT(slotSocketConnected())); - QObject::connect(m_p->pSocket,SIGNAL(disconnected()),this,SLOT(slotSocketDisconnected())); - QObject::connect(m_p->pSocket,SIGNAL(error(QAbstractSocket::SocketError)),this,SLOT(slotSocketError(QAbstractSocket::SocketError))); - QObject::connect(m_p->pSocket,SIGNAL(readyRead()),this,SLOT(slotSocketReadDataReady())); - QObject::connect(m_p->pSocket,SIGNAL(hostFound()),this,SLOT(slotSocketHostResolved())); + QObject::connect(m_p->pSocket, SIGNAL(connected()), this, SLOT(slotSocketConnected())); + QObject::connect(m_p->pSocket, SIGNAL(disconnected()), this, SLOT(slotSocketDisconnected())); + QObject::connect(m_p->pSocket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(slotSocketError(QAbstractSocket::SocketError))); + QObject::connect(m_p->pSocket, SIGNAL(readyRead()), this, SLOT(slotSocketReadDataReady())); + QObject::connect(m_p->pSocket, SIGNAL(hostFound()), this, SLOT(slotSocketHostResolved())); emit resolvingHost(m_connectionUrl.host()); @@ -429,15 +427,16 @@ bool KviHttpRequest::doConnect() if(m_p->bIsSSL) { static_cast(m_p->pSocket)->setProtocol(QSsl::AnyProtocol); - static_cast(m_p->pSocket)->connectToHostEncrypted(m_connectionUrl.host(),m_p->uPort); - } else { - m_p->pSocket->connectToHost(m_connectionUrl.host(),m_p->uPort); + static_cast(m_p->pSocket)->connectToHostEncrypted(m_connectionUrl.host(), m_p->uPort); + } + else + { + m_p->pSocket->connectToHost(m_connectionUrl.host(), m_p->uPort); } #else - m_p->pSocket->connectToHost(m_connectionUrl.host(),m_p->uPort); + m_p->pSocket->connectToHost(m_connectionUrl.host(), m_p->uPort); #endif - if(m_p->pConnectTimeoutTimer) { delete m_p->pConnectTimeoutTimer; @@ -446,7 +445,7 @@ bool KviHttpRequest::doConnect() m_p->pConnectTimeoutTimer = new QTimer(); m_p->pConnectTimeoutTimer->setSingleShot(true); - QObject::connect(m_p->pConnectTimeoutTimer,SIGNAL(timeout()),this,SLOT(slotConnectionTimedOut())); + QObject::connect(m_p->pConnectTimeoutTimer, SIGNAL(timeout()), this, SLOT(slotConnectionTimedOut())); m_p->pConnectTimeoutTimer->start(m_uConnectionTimeout * 1000); @@ -464,19 +463,18 @@ bool KviHttpRequest::doConnect() ); */ - return true; } void KviHttpRequest::emitLines(KviDataBuffer * pDataBuffer) { - int idx = pDataBuffer->find((const unsigned char *)"\n",1); + int idx = pDataBuffer->find((const unsigned char *)"\n", 1); while(idx != -1) { - KviCString tmp((const char *)(m_p->pBuffer->data()),idx); + KviCString tmp((const char *)(m_p->pBuffer->data()), idx); tmp.stripRight('\r'); pDataBuffer->remove(idx + 1); - idx = pDataBuffer->find((const unsigned char *)"\n",1); + idx = pDataBuffer->find((const unsigned char *)"\n", 1); emit data(tmp); } } @@ -511,7 +509,8 @@ void KviHttpRequest::emitLines(KviDataBuffer * pDataBuffer) // header += "\r\n"; bool KviHttpRequest::openFile() { - if(m_eProcessingType != StoreToFile)return true; + if(m_eProcessingType != StoreToFile) + return true; bool bAppend = false; @@ -527,9 +526,10 @@ bool KviHttpRequest::openFile() break; case RenameIncoming: { - int i=0; + int i = 0; QString tmp = m_szFileName; - do { + do + { i++; m_szFileName = tmp + QString(".kvirnm-%1").arg(i); } while(KviFile::exists(m_szFileName)); @@ -537,14 +537,15 @@ bool KviHttpRequest::openFile() break; case RenameExisting: { - int i=0; + int i = 0; QString tmp; - do { + do + { i++; tmp = m_szFileName + QString(".kvirnm-%1").arg(i); } while(KviFile::exists(tmp)); QDir d; - if(!d.rename(m_szFileName,tmp)) + if(!d.rename(m_szFileName, tmp)) { // fail :( resetInternalStatus(); @@ -557,7 +558,7 @@ bool KviHttpRequest::openFile() case Overwrite: default: // nothing - break; + break; } } @@ -574,8 +575,7 @@ bool KviHttpRequest::openFile() return true; } - -bool KviHttpRequest::processHeader(KviCString &szHeader) +bool KviHttpRequest::processHeader(KviCString & szHeader) { int idx = szHeader.findFirstIdx("\r\n"); KviCString szResponse; @@ -583,7 +583,9 @@ bool KviHttpRequest::processHeader(KviCString &szHeader) { szResponse = szHeader.left(idx); szHeader.cutLeft(idx + 2); - } else { + } + else + { szResponse = szHeader; szHeader = ""; } @@ -595,18 +597,21 @@ bool KviHttpRequest::processHeader(KviCString &szHeader) unsigned int uStatus = 0; // check the response value - if(kvi_strEqualCSN(szResponse.ptr(),"HTTP",4)) + if(kvi_strEqualCSN(szResponse.ptr(), "HTTP", 4)) { KviCString szR = szResponse; szR.cutToFirst(' '); szR.trim(); int idx = szR.findFirstIdx(' '); KviCString szNumber; - if(idx != -1)szNumber = szR.left(idx); - else szNumber = szR; + if(idx != -1) + szNumber = szR.left(idx); + else + szNumber = szR; bool bOk; uStatus = szNumber.toUInt(&bOk); - if(bOk)bValid = true; + if(bOk) + bValid = true; } QString szUniResponse = QString::fromUtf8(szResponse.ptr()); @@ -630,17 +635,18 @@ bool KviHttpRequest::processHeader(KviCString &szHeader) { if(idx > 0) { - hlist.append(new KviCString(szHeader.ptr(),idx)); + hlist.append(new KviCString(szHeader.ptr(), idx)); szHeader.cutLeft(idx + 2); } idx = szHeader.findFirstIdx("\r\n"); } - if(szHeader.hasData())hlist.append(new KviCString(szHeader)); + if(szHeader.hasData()) + hlist.append(new KviCString(szHeader)); - KviPointerHashTable hdr(11,false,true); + KviPointerHashTable hdr(11, false, true); hdr.setAutoDelete(true); - for(KviCString * s = hlist.first();s;s = hlist.next()) + for(KviCString * s = hlist.first(); s; s = hlist.next()) { idx = s->findFirstIdx(":"); if(idx != -1) @@ -648,7 +654,7 @@ bool KviHttpRequest::processHeader(KviCString &szHeader) KviCString szName = s->left(idx); s->cutLeft(idx + 1); s->trim(); - hdr.replace(szName.ptr(),new KviCString(*s)); + hdr.replace(szName.ptr(), new KviCString(*s)); //qDebug("FOUND HEADER (%s)=(%s)",szName.ptr(),s->ptr()); } } @@ -658,7 +664,8 @@ bool KviHttpRequest::processHeader(KviCString &szHeader) { bool bOk; m_uTotalSize = size->toUInt(&bOk); - if(!bOk)m_uTotalSize = 0; + if(!bOk) + m_uTotalSize = 0; } KviCString * contentEncoding = hdr.find("Content-encoding"); @@ -670,7 +677,7 @@ bool KviHttpRequest::processHeader(KviCString &szHeader) KviCString * transferEncoding = hdr.find("Transfer-Encoding"); if(transferEncoding) { - if(kvi_strEqualCI(transferEncoding->ptr(),"chunked")) + if(kvi_strEqualCI(transferEncoding->ptr(), "chunked")) { // be prepared to handle the chunked transfer encoding as required by HTTP/1.1 m_bChunkedTransferEncoding = true; @@ -724,9 +731,9 @@ bool KviHttpRequest::processHeader(KviCString &szHeader) // case 505: // HTTP Version not supported if( - (uStatus != 200) && // OK - (uStatus != 206) // Partial content - ) + (uStatus != 200) && // OK + (uStatus != 206) // Partial content + ) { // This is not "OK" and not "Partial content" // Error, redirect or something confusing @@ -746,9 +753,9 @@ bool KviHttpRequest::processHeader(KviCString &szHeader) emit terminated(false); return false; } - + m_uRedirectCount++; - + if(m_uRedirectCount > m_uMaximumRedirectCount) { resetInternalStatus(); @@ -756,7 +763,7 @@ bool KviHttpRequest::processHeader(KviCString &szHeader) emit terminated(false); return false; } - + KviCString * location = hdr.find("Location"); if(!location) @@ -766,13 +773,11 @@ bool KviHttpRequest::processHeader(KviCString &szHeader) emit terminated(false); return false; } - + KviUrl url(location->ptr()); - + if( - (url.url() == m_connectionUrl.url()) || - (url.url() == m_url.url()) - ) + (url.url() == m_connectionUrl.url()) || (url.url() == m_url.url())) { resetInternalStatus(); m_szLastError = __tr2qs("Redirect loop"); @@ -790,14 +795,14 @@ bool KviHttpRequest::processHeader(KviCString &szHeader) return false; // will exit the call stack } break; - break; + break; default: // assume error resetInternalStatus(); m_szLastError = szResponse.ptr(); emit terminated(false); return false; - break; + break; } // this is an error then } // else the server will terminate (it was a HEAD request) @@ -810,7 +815,7 @@ bool KviHttpRequest::processHeader(KviCString &szHeader) if((m_uMaxContentLength > 0) && (m_uTotalSize > ((unsigned int)m_uMaxContentLength))) { resetInternalStatus(); - m_szLastError=__tr2qs("The amount of received data exceeds the maximum length"); + m_szLastError = __tr2qs("The amount of received data exceeds the maximum length"); emit terminated(false); return false; } @@ -823,7 +828,7 @@ bool KviHttpRequest::processHeader(KviCString &szHeader) void KviHttpRequest::processData(KviDataBuffer * data) { -// unsigned char obuffer[BUFFER_SIZE]; + // unsigned char obuffer[BUFFER_SIZE]; if(m_bChunkedTransferEncoding && m_bIgnoreRemainingData) { // In chunked transfer encoding mode there may be additional headers @@ -836,7 +841,7 @@ void KviHttpRequest::processData(KviDataBuffer * data) // time to process the header m_p->pBuffer->append(*data); - int idx = m_p->pBuffer->find((const unsigned char *)"\r\n\r\n",4); + int idx = m_p->pBuffer->find((const unsigned char *)"\r\n\r\n", 4); if(idx == -1) { // header not complete @@ -848,7 +853,7 @@ void KviHttpRequest::processData(KviDataBuffer * data) } return; } - KviCString szHeader((const char *)(m_p->pBuffer->data()),idx); + KviCString szHeader((const char *)(m_p->pBuffer->data()), idx); m_p->pBuffer->remove(idx + 4); if(!processHeader(szHeader)) @@ -858,15 +863,16 @@ void KviHttpRequest::processData(KviDataBuffer * data) if(m_eProcessingType == StoreToFile) { - if(!openFile())return; + if(!openFile()) + return; } m_uReceivedSize = m_p->pBuffer->size(); - // here the header is complete and the eventual remaining data is in m_p->pBuffer. data has been already used. - - } else { + } + else + { // header already processed m_uReceivedSize += data->size(); @@ -878,25 +884,24 @@ void KviHttpRequest::processData(KviDataBuffer * data) // This is a good optimisation since for large files we can save allocating // space for and moving megabytes of data... - if((!m_bChunkedTransferEncoding) && ((m_eProcessingType == Blocks) || (m_eProcessingType == StoreToFile))) { switch(m_eProcessingType) { case Blocks: emit binaryData(*data); - break; + break; case StoreToFile: - m_p->pFile->write((const char *)(data->data()),data->size()); - break; + m_p->pFile->write((const char *)(data->data()), data->size()); + break; default: - break; + break; } if(((m_uTotalSize > 0) && (m_uReceivedSize > m_uTotalSize)) || ((m_uMaxContentLength > 0) && (m_uReceivedSize > m_uMaxContentLength))) { resetInternalStatus(); - m_szLastError=__tr2qs("The amount of received data exceeds expected length"); + m_szLastError = __tr2qs("The amount of received data exceeds expected length"); emit terminated(false); } @@ -923,7 +928,8 @@ void KviHttpRequest::processData(KviDataBuffer * data) { // process the current chunk data unsigned int uProcessSize = m_uRemainingChunkSize; - if(uProcessSize > (unsigned int)m_p->pBuffer->size())uProcessSize = m_p->pBuffer->size(); + if(uProcessSize > (unsigned int)m_p->pBuffer->size()) + uProcessSize = m_p->pBuffer->size(); m_uRemainingChunkSize -= uProcessSize; switch(m_eProcessingType) @@ -933,39 +939,45 @@ void KviHttpRequest::processData(KviDataBuffer * data) { // avoid copying to a new buffer emit binaryData(*m_p->pBuffer); - } else { + } + else + { // must copy - KviDataBuffer tmp(uProcessSize,m_p->pBuffer->data()); + KviDataBuffer tmp(uProcessSize, m_p->pBuffer->data()); emit binaryData(tmp); m_p->pBuffer->remove(uProcessSize); } - break; + break; case Lines: if((unsigned int)m_p->pBuffer->size() == uProcessSize) { // avoid copying to a new buffer emitLines(m_p->pBuffer); - } else { + } + else + { // must copy - KviDataBuffer tmp(uProcessSize,m_p->pBuffer->data()); + KviDataBuffer tmp(uProcessSize, m_p->pBuffer->data()); emitLines(&tmp); m_p->pBuffer->remove(uProcessSize); } - break; + break; case StoreToFile: - m_p->pFile->write((const char *)(m_p->pBuffer->data()),uProcessSize); + m_p->pFile->write((const char *)(m_p->pBuffer->data()), uProcessSize); m_p->pBuffer->remove(uProcessSize); - break; + break; default: // nothing.. just make gcc happy - break; + break; } // now either the buffer is empty or there is another chunk header: continue looping - } else { + } + else + { // We're looking for the beginning of a chunk now. // Note that we might be at the end of a previous chunk that has a CRLF terminator // we need to skip it. - int crlf = m_p->pBuffer->find((const unsigned char *)"\r\n",2); + int crlf = m_p->pBuffer->find((const unsigned char *)"\r\n", 2); if(crlf != -1) { if(crlf == 0) @@ -973,14 +985,16 @@ void KviHttpRequest::processData(KviDataBuffer * data) // This is a plain CRLF at the beginning of the buffer BEFORE a chunk header. // It comes from the previous chunk terminator. Skip it. m_p->pBuffer->remove(2); - } else { + } + else + { // got a chunk header - KviCString szHeader((const char *)(m_p->pBuffer->data()),crlf); + KviCString szHeader((const char *)(m_p->pBuffer->data()), crlf); szHeader.cutFromFirst(' '); // now szHeader should contain a hexadecimal chunk length... (why the hell it is hex and not decimal ????) QString szHexHeader = szHeader.ptr(); bool bOk; - m_uRemainingChunkSize = szHexHeader.toLong(&bOk,16); + m_uRemainingChunkSize = szHexHeader.toLong(&bOk, 16); if(!bOk) { resetInternalStatus(); @@ -988,7 +1002,7 @@ void KviHttpRequest::processData(KviDataBuffer * data) emit terminated(false); return; } - m_p->pBuffer->remove(crlf+2); + m_p->pBuffer->remove(crlf + 2); if(m_uRemainingChunkSize == 0) { // this is the last chunk of data. It may be followed by optional headers @@ -999,7 +1013,9 @@ void KviHttpRequest::processData(KviDataBuffer * data) } } // the rest is valid data of a non-zero chunk: continue looping - } else { + } + else + { // chunk header not complete if(m_p->pBuffer->size() > 4096) { @@ -1012,24 +1028,28 @@ void KviHttpRequest::processData(KviDataBuffer * data) } } } - } else { + } + else + { // the transfer encoding is not chunked: m_p->pBuffer contains only valid data switch(m_eProcessingType) { case Blocks: - if(m_p->pBuffer->size() > 0)emit binaryData(*m_p->pBuffer); + if(m_p->pBuffer->size() > 0) + emit binaryData(*m_p->pBuffer); m_p->pBuffer->clear(); - break; + break; case Lines: - if(m_p->pBuffer->size() > 0)emitLines(m_p->pBuffer); - break; + if(m_p->pBuffer->size() > 0) + emitLines(m_p->pBuffer); + break; case StoreToFile: - m_p->pFile->write((const char *)(m_p->pBuffer->data()),m_p->pBuffer->size()); + m_p->pFile->write((const char *)(m_p->pBuffer->data()), m_p->pBuffer->size()); m_p->pBuffer->clear(); - break; + break; default: // nothing.. just make gcc happy - break; + break; } } @@ -1038,13 +1058,12 @@ check_stream_length: if(((m_uTotalSize > 0) && (m_uReceivedSize > m_uTotalSize)) || ((m_uMaxContentLength > 0) && (m_uReceivedSize > m_uMaxContentLength))) { resetInternalStatus(); - m_szLastError=__tr2qs("The amount of received data exceeds expected length"); + m_szLastError = __tr2qs("The amount of received data exceeds expected length"); emit terminated(false); } return; } - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #if 0 @@ -1088,4 +1107,3 @@ void KviHttpRequest::dnsLookupDone(KviDnsResolver *d) } } #endif - diff --git a/src/kvilib/net/KviHttpRequest.h b/src/kvilib/net/KviHttpRequest.h index 5eb2e8b30..3a3326f7d 100644 --- a/src/kvilib/net/KviHttpRequest.h +++ b/src/kvilib/net/KviHttpRequest.h @@ -28,7 +28,7 @@ #include "kvi_inttypes.h" #ifdef Status - #undef Status +#undef Status #endif // otherwise QTextStream freaks out #include // with automoc we need this to be included before the other files @@ -45,7 +45,6 @@ class KviDnsResolver; class KviDataBuffer; - // // This class implements a HTTP protocol client. // It's able to send GET, POST and HEAD requests, @@ -60,14 +59,13 @@ class KVILIB_API KviHttpRequest : public QObject, public KviHeapObject { Q_OBJECT public: - enum ProcessingType { - HeadersOnly, // Download headers only (HEAD request) - WholeFile, // Emit the data as whole file (binaryData() is emitted) - Blocks, // Emit the data as blocks (binaryData() is emitted) - Lines, // Emit the data as ASCII text lines (the client must take care of decoding the data) - StoreToFile // Store the data to a file + HeadersOnly, // Download headers only (HEAD request) + WholeFile, // Emit the data as whole file (binaryData() is emitted) + Blocks, // Emit the data as blocks (binaryData() is emitted) + Lines, // Emit the data as ASCII text lines (the client must take care of decoding the data) + StoreToFile // Store the data to a file }; enum ExistingFileAction @@ -79,42 +77,40 @@ public: }; public: - KviHttpRequest(); virtual ~KviHttpRequest(); protected: // data - KviUrl m_url; // the url requested by the user - QString m_szFileName; - ProcessingType m_eProcessingType; - ExistingFileAction m_eExistingFileAction; - void * m_pPrivateData; - unsigned int m_uMaxContentLength; - unsigned int m_uContentOffset; - QString m_szPostData; - bool m_bFollowRedirects; - unsigned int m_uMaximumRedirectCount; + KviUrl m_url; // the url requested by the user + QString m_szFileName; + ProcessingType m_eProcessingType; + ExistingFileAction m_eExistingFileAction; + void * m_pPrivateData; + unsigned int m_uMaxContentLength; + unsigned int m_uContentOffset; + QString m_szPostData; + bool m_bFollowRedirects; + unsigned int m_uMaximumRedirectCount; // status - QString m_szLastError; - unsigned int m_uTotalSize; - unsigned int m_uReceivedSize; + QString m_szLastError; + unsigned int m_uTotalSize; + unsigned int m_uReceivedSize; // internal status - KviUrl m_connectionUrl; // the actual url used in the connection (may change upon redirect) - bool m_bHeaderProcessed; - bool m_bChunkedTransferEncoding; - bool m_bGzip; - unsigned int m_uRemainingChunkSize; - bool m_bIgnoreRemainingData; // used in chunked transfer after the last chunk has been seen - unsigned int m_uConnectionTimeout; // in seconds, 60 secs by default - unsigned int m_uRedirectCount; -private: + KviUrl m_connectionUrl; // the actual url used in the connection (may change upon redirect) + bool m_bHeaderProcessed; + bool m_bChunkedTransferEncoding; + bool m_bGzip; + unsigned int m_uRemainingChunkSize; + bool m_bIgnoreRemainingData; // used in chunked transfer after the last chunk has been seen + unsigned int m_uConnectionTimeout; // in seconds, 60 secs by default + unsigned int m_uRedirectCount; +private: KviHttpRequestPrivate * m_p; public: - bool followRedirects() const { return m_bFollowRedirects; @@ -137,56 +133,60 @@ public: m_uConnectionTimeout = 5; // keep it sane } - const KviUrl & url(){ return m_url; }; - ProcessingType processingType(){ return m_eProcessingType; }; - ExistingFileAction existingFileAction(){ return m_eExistingFileAction; }; - const QString &fileName(){ return m_szFileName; }; - void * privateData(){ return m_pPrivateData; }; - unsigned int maxContentLength(){ return m_uMaxContentLength; }; - unsigned int contentOffset(){ return m_uContentOffset; }; - unsigned int totalSize(){ return m_uTotalSize; }; - unsigned int receivedSize(){ return m_uReceivedSize; }; + const KviUrl & url() { return m_url; }; + ProcessingType processingType() { return m_eProcessingType; }; + ExistingFileAction existingFileAction() { return m_eExistingFileAction; }; + const QString & fileName() { return m_szFileName; }; + void * privateData() { return m_pPrivateData; }; + unsigned int maxContentLength() { return m_uMaxContentLength; }; + unsigned int contentOffset() { return m_uContentOffset; }; + unsigned int totalSize() { return m_uTotalSize; }; + unsigned int receivedSize() { return m_uReceivedSize; }; void reset(); - void setPostData(const QString &szPostData){ m_szPostData = szPostData; }; - void setUrl(const KviUrl &u){ m_url = u; m_connectionUrl = u; }; - void setProcessingType(ProcessingType t){ m_eProcessingType = t; }; - void setExistingFileAction(ExistingFileAction a){ m_eExistingFileAction = a; }; - void setFileName(const QString &szFileName){ m_szFileName = szFileName; }; - void setPrivateData(void * ptr){ m_pPrivateData = ptr; }; - void setMaxContentLength(int uMaxContentLength){ m_uMaxContentLength = uMaxContentLength; }; //0 means unlimited + void setPostData(const QString & szPostData) { m_szPostData = szPostData; }; + void setUrl(const KviUrl & u) + { + m_url = u; + m_connectionUrl = u; + }; + void setProcessingType(ProcessingType t) { m_eProcessingType = t; }; + void setExistingFileAction(ExistingFileAction a) { m_eExistingFileAction = a; }; + void setFileName(const QString & szFileName) { m_szFileName = szFileName; }; + void setPrivateData(void * ptr) { m_pPrivateData = ptr; }; + void setMaxContentLength(int uMaxContentLength) { m_uMaxContentLength = uMaxContentLength; }; //0 means unlimited // this will work regardless of ExistingFileAction : even if the file doesn't exist - void setContentOffset(int uContentOffset){ m_uContentOffset = uContentOffset; }; + void setContentOffset(int uContentOffset) { m_uContentOffset = uContentOffset; }; bool start(); // this is a shortcut for reset()+setUrl()+setProcessingType()+setFileName()+start() - bool get(const KviUrl &u,ProcessingType p = WholeFile,const QString &szFileName = QString()); + bool get(const KviUrl & u, ProcessingType p = WholeFile, const QString & szFileName = QString()); - const QString & lastError(){ return m_szLastError; }; + const QString & lastError() { return m_szLastError; }; void abort(); signals: - void resolvingHost(const QString &hostname); - void contactingHost(const QString &ipandport); + void resolvingHost(const QString & hostname); + void contactingHost(const QString & ipandport); void connectionEstablished(); - void receivedResponse(const QString &response); + void receivedResponse(const QString & response); void terminated(bool bSuccess); - void status(const QString &message); - void data(const KviCString &data); - void binaryData(const KviDataBuffer &data); - void header(KviPointerHashTable * hdr); - void requestSent(const QStringList &request); + void status(const QString & message); + void data(const KviCString & data); + void binaryData(const KviDataBuffer & data); + void header(KviPointerHashTable * hdr); + void requestSent(const QStringList & request); private: void closeSocket(); bool doConnect(); void processData(KviDataBuffer * data); - bool processHeader(KviCString &szHeader); + bool processHeader(KviCString & szHeader); bool openFile(); void emitLines(KviDataBuffer * pDataBuffer); @@ -203,5 +203,4 @@ private slots: void slotSocketHostResolved(); }; - #endif //_KviHttpRequest_h_ diff --git a/src/kvilib/net/KviNetUtils.cpp b/src/kvilib/net/KviNetUtils.cpp index d915128d9..b5ee05ad9 100644 --- a/src/kvilib/net/KviNetUtils.cpp +++ b/src/kvilib/net/KviNetUtils.cpp @@ -30,29 +30,28 @@ #include #if !defined(COMPILE_ON_WINDOWS) && !defined(COMPILE_ON_MINGW) - #include // struct timeval - #include - #include +#include // struct timeval +#include +#include #endif #ifdef COMPILE_ON_WINDOWS - #include +#include #endif #include -#if defined (__SVR4) && defined (__sun) - #include +#if defined(__SVR4) && defined(__sun) +#include #endif #ifdef COMPILE_GET_INTERFACE_ADDRESS - #include - #include +#include +#include #endif //COMPILE_GET_INTERFACE_ADDRESS #ifndef HAVE_INET_ATON - // FIXME: #warning "Your system lacks the inet_aton function," // FIXME: #warning "you're trying to compile this file without" // FIXME: #warning "the kvi_sysconfig.h created by the cmake script," @@ -71,91 +70,113 @@ // Original code comes from the ircd source. // -bool kvi_stringIpToBinaryIp(const char *szIp,struct in_addr *address) +bool kvi_stringIpToBinaryIp(const char * szIp, struct in_addr * address) { unsigned long val; int base, n; char c; unsigned int parts[4]; - unsigned int *pp = parts; - if(!szIp)return false; + unsigned int * pp = parts; + if(!szIp) + return false; c = *szIp; - for(;;){ + for(;;) + { // Collect number up to ``.''. // Values are specified as for C: // 0x=hex, 0=octal, isdigit=decimal. - if(!isdigit(c))return false; - val = 0; + if(!isdigit(c)) + return false; + val = 0; base = 10; - if(c == '0'){ + if(c == '0') + { c = *++szIp; - if((c == 'x')||(c == 'X'))base = 16, c = *++szIp; - else base = 8; + if((c == 'x') || (c == 'X')) + base = 16, c = *++szIp; + else + base = 8; } - for (;;) { - if(isascii(c) && isdigit(c)) { + for(;;) + { + if(isascii(c) && isdigit(c)) + { val = (val * base) + (c - '0'); - c = *++szIp; - } else if (base == 16 && isascii(c) && isxdigit(c)) { + c = *++szIp; + } + else if(base == 16 && isascii(c) && isxdigit(c)) + { val = (val << 4) | (c + 10 - (islower(c) ? 'a' : 'A')); - c = *++szIp; - } else break; + c = *++szIp; + } + else + break; } - if(c == '.'){ + if(c == '.') + { // Internet format: // a.b.c.d // a.b.c (with c treated as 16 bits) // a.b (with b treated as 24 bits) - if(pp >= (parts + 3)) return false; + if(pp >= (parts + 3)) + return false; *pp++ = val; - c = *++szIp; - } else break; + c = *++szIp; + } + else + break; } // Check for trailing characters. - if ((c != '\0') && (!isascii(c) || !isspace(c)))return false; + if((c != '\0') && (!isascii(c) || !isspace(c))) + return false; // Concact the address according to // the number of parts specified. n = pp - parts + 1; - switch (n) { - case 0: return false; // initial nondigit - case 1: break; // a -- 32 bits - case 2: // a.b -- 8.24 bits - if(val > 0xffffff) return false; + switch(n) + { + case 0: + return false; // initial nondigit + case 1: + break; // a -- 32 bits + case 2: // a.b -- 8.24 bits + if(val > 0xffffff) + return false; val |= parts[0] << 24; break; - case 3: // a.b.c -- 8.8.16 bits - if(val > 0xffff)return false; + case 3: // a.b.c -- 8.8.16 bits + if(val > 0xffff) + return false; val |= (parts[0] << 24) | (parts[1] << 16); break; - case 4: // a.b.c.d -- 8.8.8.8 bits - if(val > 0xff)return false; + case 4: // a.b.c.d -- 8.8.8.8 bits + if(val > 0xff) + return false; val |= (parts[0] << 24) | (parts[1] << 16) | (parts[2] << 8); break; } - if(address)address->s_addr = htonl(val); + if(address) + address->s_addr = htonl(val); return true; - } -#else //!HAVE_INET_ATON +#else //!HAVE_INET_ATON -bool kvi_stringIpToBinaryIp(const char *szIp,struct in_addr *address) +bool kvi_stringIpToBinaryIp(const char * szIp, struct in_addr * address) { - if(!szIp)return false; - return (inet_aton(szIp,address) != 0); + if(!szIp) + return false; + return (inet_aton(szIp, address) != 0); } #endif //!HAVE_INET_ATON - - #ifndef HAVE_INET_NTOA // FIXME: #warning "Your system lacks the inet_ntoa function," @@ -167,11 +188,10 @@ bool kvi_stringIpToBinaryIp(const char *szIp,struct in_addr *address) // Original code comes from the ircd source. // - -bool kvi_binaryIpToStringIp(struct in_addr in,QString &szBuffer) +bool kvi_binaryIpToStringIp(struct in_addr in, QString & szBuffer) { - unsigned char *s = (unsigned char *)∈ - int a,b,c,d; + unsigned char * s = (unsigned char *)∈ + int a, b, c, d; a = (int)*s++; b = (int)*s++; c = (int)*s++; @@ -183,47 +203,54 @@ bool kvi_binaryIpToStringIp(struct in_addr in,QString &szBuffer) #else //HAVE_INET_NTOA -bool kvi_binaryIpToStringIp(struct in_addr in,QString &szBuffer) +bool kvi_binaryIpToStringIp(struct in_addr in, QString & szBuffer) { -// FIXME: #warning "This is NOT thread safe!" + // FIXME: #warning "This is NOT thread safe!" char * ptr = inet_ntoa(in); - if(!ptr)return false; + if(!ptr) + return false; szBuffer = ptr; return true; } #endif //HAVE_INET_NTOA -bool kvi_isValidStringIp(const char *szIp) +bool kvi_isValidStringIp(const char * szIp) { struct in_addr address; - if(!szIp)return false; - if(!isdigit(*szIp))return false; - return kvi_stringIpToBinaryIp(szIp,&address); + if(!szIp) + return false; + if(!isdigit(*szIp)) + return false; + return kvi_stringIpToBinaryIp(szIp, &address); } #ifdef COMPILE_IPV6_SUPPORT #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) -static unsigned int scan_ip6(const char *s,char ip[16]) +static unsigned int scan_ip6(const char * s, char ip[16]) { unsigned int i; - unsigned int len=0; + unsigned int len = 0; unsigned long u; char suffix[16]; - unsigned int prefixlen=0; - unsigned int suffixlen=0; + unsigned int prefixlen = 0; + unsigned int suffixlen = 0; - for (i=0; i<16; i++) ip[i]=0; + for(i = 0; i < 16; i++) + ip[i] = 0; - for (;;) { - if (*s == ':') { + for(;;) + { + if(*s == ':') + { len++; - if (s[1] == ':') { /* Found "::", skip to part 2 */ - s+=2; + if(s[1] == ':') + { /* Found "::", skip to part 2 */ + s += 2; len++; break; } @@ -231,16 +258,18 @@ static unsigned int scan_ip6(const char *s,char ip[16]) } { - char *tmp; - u=strtoul(s,&tmp,16); - i=tmp-s; + char * tmp; + u = strtoul(s, &tmp, 16); + i = tmp - s; } - if (!i) return 0; - if (prefixlen==12 && s[i]=='.') { + if(!i) + return 0; + if(prefixlen == 12 && s[i] == '.') + { /* the last 4 bytes may be written as IPv4 address */ - if (kvi_stringIpToBinaryIp(s,(struct in_addr*)(ip+12))) - return i+len; + if(kvi_stringIpToBinaryIp(s, (struct in_addr *)(ip + 12))) + return i + len; else return 0; } @@ -248,107 +277,152 @@ static unsigned int scan_ip6(const char *s,char ip[16]) ip[prefixlen++] = (u >> 8); ip[prefixlen++] = (u & 255); - s += i; len += i; + s += i; + len += i; - if (prefixlen==16) return len; + if(prefixlen == 16) + return len; } /* part 2, after "::" */ - for (;;) { - if (*s == ':') { - if (suffixlen==0) break; + for(;;) + { + if(*s == ':') + { + if(suffixlen == 0) + break; s++; len++; - } else if (suffixlen!=0) break; + } + else if(suffixlen != 0) + break; { - char *tmp; - u=strtol(s,&tmp,16); - i=tmp-s; + char * tmp; + u = strtol(s, &tmp, 16); + i = tmp - s; } - if (!i) { - if (*s) len--; + if(!i) + { + if(*s) + len--; break; } - if (suffixlen+prefixlen<=12 && s[i]=='.') { + if(suffixlen + prefixlen <= 12 && s[i] == '.') + { - if (kvi_stringIpToBinaryIp(s,(struct in_addr*)(suffix+suffixlen))) { - suffixlen+=4; - len+=(unsigned int)strlen(s); + if(kvi_stringIpToBinaryIp(s, (struct in_addr *)(suffix + suffixlen))) + { + suffixlen += 4; + len += (unsigned int)strlen(s); break; - } else prefixlen=12-suffixlen; /* make end-of-loop test true */ + } + else + prefixlen = 12 - suffixlen; /* make end-of-loop test true */ } suffix[suffixlen++] = (u >> 8); suffix[suffixlen++] = (u & 255); - s += i; len += i; - if (prefixlen+suffixlen==16) break; + s += i; + len += i; + if(prefixlen + suffixlen == 16) + break; } - for (i=0; i9?hexdigit+'a'-10:hexdigit+'0'; +static char tohex(char hexdigit) +{ + return hexdigit > 9 ? hexdigit + 'a' - 10 : hexdigit + '0'; } -static int fmt_xlong(char* s,unsigned int i) +static int fmt_xlong(char * s, unsigned int i) { - char* bak=s; - *s=tohex((i>>12)&0xf); if (s!=bak || *s!='0') ++s; - *s=tohex((i>>8)&0xf); if (s!=bak || *s!='0') ++s; - *s=tohex((i>>4)&0xf); if (s!=bak || *s!='0') ++s; - *s=tohex(i&0xf); - return s-bak+1; + char * bak = s; + *s = tohex((i >> 12) & 0xf); + if(s != bak || *s != '0') + ++s; + *s = tohex((i >> 8) & 0xf); + if(s != bak || *s != '0') + ++s; + *s = tohex((i >> 4) & 0xf); + if(s != bak || *s != '0') + ++s; + *s = tohex(i & 0xf); + return s - bak + 1; } -static unsigned int i2a(char* dest,unsigned int x) +static unsigned int i2a(char * dest, unsigned int x) { - unsigned int tmp=x; - unsigned int len=0; + unsigned int tmp = x; + unsigned int len = 0; - if (x>=100) { *dest++=tmp/100+'0'; tmp=tmp%100; ++len; } - if (x>=10) { *dest++=tmp/10+'0'; tmp=tmp%10; ++len; } - *dest++=tmp+'0'; - return len+1; + if(x >= 100) + { + *dest++ = tmp / 100 + '0'; + tmp = tmp % 100; + ++len; + } + if(x >= 10) + { + *dest++ = tmp / 10 + '0'; + tmp = tmp % 10; + ++len; + } + *dest++ = tmp + '0'; + return len + 1; } -char *inet_ntoa_r(struct in_addr in,char* buf) +char * inet_ntoa_r(struct in_addr in, char * buf) { unsigned int len; - unsigned char *ip=(unsigned char*)∈ - - len=i2a(buf,ip[0]); buf[len]='.'; ++len; - len+=i2a(buf+ len,ip[1]); buf[len]='.'; ++len; - len+=i2a(buf+ len,ip[2]); buf[len]='.'; ++len; - len+=i2a(buf+ len,ip[3]); buf[len]=0; + unsigned char * ip = (unsigned char *)∈ + + len = i2a(buf, ip[0]); + buf[len] = '.'; + ++len; + len += i2a(buf + len, ip[1]); + buf[len] = '.'; + ++len; + len += i2a(buf + len, ip[2]); + buf[len] = '.'; + ++len; + len += i2a(buf + len, ip[3]); + buf[len] = 0; return buf; } -unsigned int fmt_ip6(char *s,const char ip[16]) +unsigned int fmt_ip6(char * s, const char ip[16]) { unsigned int len; unsigned int i; @@ -358,40 +432,43 @@ unsigned int fmt_ip6(char *s,const char ip[16]) len = 0; compressing = 0; - for(int j=0;j<16;j+=2) + for(int j = 0; j < 16; j += 2) { - if (j==12 && !memcmp(ip,V4mappedprefix,12)) + if(j == 12 && !memcmp(ip, V4mappedprefix, 12)) { - inet_ntoa_r(*(struct in_addr*)(ip+12),s); - temp=(unsigned int)strlen(s); - return len+temp; + inet_ntoa_r(*(struct in_addr *)(ip + 12), s); + temp = (unsigned int)strlen(s); + return len + temp; } - temp = ((unsigned long) (unsigned char) ip[j] << 8) + (unsigned long) (unsigned char) ip[j+1]; + temp = ((unsigned long)(unsigned char)ip[j] << 8) + (unsigned long)(unsigned char)ip[j + 1]; if(temp == 0 && compressing != 2) { if(compressing == 0) { - compressing=1; - if (j==0) + compressing = 1; + if(j == 0) { - *s++=':'; + *s++ = ':'; ++len; } } - } else { + } + else + { if(compressing == 1) { - compressing=2; // don't do it again - *s++=':'; ++len; + compressing = 2; // don't do it again + *s++ = ':'; + ++len; } - i = fmt_xlong(s,temp); + i = fmt_xlong(s, temp); len += i; s += i; - if (j<14) + if(j < 14) { *s++ = ':'; ++len; @@ -401,44 +478,47 @@ unsigned int fmt_ip6(char *s,const char ip[16]) if(compressing == 1) { - *s++=':'; + *s++ = ':'; ++len; } - *s=0; + *s = 0; return len; } -const char* inet_ntop(int AF, const void *CP, char *BUF, size_t LEN) +const char * inet_ntop(int AF, const void * CP, char * BUF, size_t LEN) { char buf[100]; size_t len; - if (AF==AF_INET) + if(AF == AF_INET) { - inet_ntoa_r(*(struct in_addr*)CP,buf); - len=strlen(buf); - } else if (AF==AF_INET6) + inet_ntoa_r(*(struct in_addr *)CP, buf); + len = strlen(buf); + } + else if(AF == AF_INET6) { - len=fmt_ip6(buf,(char *)CP); - } else return 0; + len = fmt_ip6(buf, (char *)CP); + } + else + return 0; - if (len -bool kvi_select(int fd,bool * bCanRead,bool * bCanWrite,int iUSecs) +bool kvi_select(int fd, bool * bCanRead, bool * bCanWrite, int iUSecs) { // FIXME: This stuff should DIE! fd_set rs; fd_set ws; FD_ZERO(&rs); FD_ZERO(&ws); - FD_SET(fd,&rs); - FD_SET(fd,&ws); + FD_SET(fd, &rs); + FD_SET(fd, &ws); struct timeval tv; tv.tv_sec = 0; tv.tv_usec = iUSecs; - int ret = select(fd + 1,&rs,&ws,0,&tv); - if(ret < 1)return false; // EINTR or ENOSTUFFATALL + int ret = select(fd + 1, &rs, &ws, 0, &tv); + if(ret < 1) + return false; // EINTR or ENOSTUFFATALL - *bCanRead = FD_ISSET(fd,&rs); - *bCanWrite = FD_ISSET(fd,&ws); + *bCanRead = FD_ISSET(fd, &rs); + *bCanWrite = FD_ISSET(fd, &ws); return true; } namespace KviNetUtils { - bool stringIpToBinaryIp(const QString &szStringIp,struct in_addr * address) + bool stringIpToBinaryIp(const QString & szStringIp, struct in_addr * address) { #ifndef HAVE_INET_ATON QString szAddr = szStringIp.simplified(); - quint32 iAddr=0; + quint32 iAddr = 0; QStringList ipv4 = szAddr.split(".", QString::KeepEmptyParts, Qt::CaseInsensitive); - if (ipv4.count() == 4) { + if(ipv4.count() == 4) + { int i = 0; bool ok = true; - while(ok && i < 4) { + while(ok && i < 4) + { uint byteValue = ipv4[i].toUInt(&ok); - if ( (byteValue > 255) && ok ) + if((byteValue > 255) && ok) ok = false; - if (ok) + if(ok) iAddr = (iAddr << 8) + byteValue; ++i; } - if (ok) + if(ok) { - if(address)address->s_addr = htonl(iAddr); + if(address) + address->s_addr = htonl(iAddr); return true; } } return false; -#else //HAVE_INET_ATON - if(szStringIp.isEmpty())return false; - return (inet_aton(szStringIp.toUtf8().data(),address) != 0); +#else //HAVE_INET_ATON + if(szStringIp.isEmpty()) + return false; + return (inet_aton(szStringIp.toUtf8().data(), address) != 0); #endif //HAVE_INET_ATON } - - bool isValidStringIp(const QString &szIp) + bool isValidStringIp(const QString & szIp) { struct in_addr address; - if(szIp.isEmpty())return false; - if(!szIp[0].isNumber())return false; - return stringIpToBinaryIp(szIp,&address); + if(szIp.isEmpty()) + return false; + if(!szIp[0].isNumber()) + return false; + return stringIpToBinaryIp(szIp, &address); } - #ifdef COMPILE_IPV6_SUPPORT - bool stringIpToBinaryIp_V6(const QString &szStringIp,struct in6_addr * address) + bool stringIpToBinaryIp_V6(const QString & szStringIp, struct in6_addr * address) { - return (inet_pton(AF_INET6,szStringIp.toUtf8().data(),(void *)address) == 1); + return (inet_pton(AF_INET6, szStringIp.toUtf8().data(), (void *)address) == 1); } - bool isValidStringIPv6(const QString &szIp) + bool isValidStringIPv6(const QString & szIp) { struct in6_addr address; - if(szIp.isEmpty())return false; - return stringIpToBinaryIp_V6(szIp,&address); + if(szIp.isEmpty()) + return false; + return stringIpToBinaryIp_V6(szIp, &address); } - bool binaryIpToStringIp_V6(struct in6_addr in,QString &szBuffer) + bool binaryIpToStringIp_V6(struct in6_addr in, QString & szBuffer) { char buf[46]; - bool bRet = inet_ntop(AF_INET6,(void *)&in,buf,46); - szBuffer= buf; + bool bRet = inet_ntop(AF_INET6, (void *)&in, buf, 46); + szBuffer = buf; return bRet; } #endif //COMPILE_IPV6_SUPPORT - bool binaryIpToStringIp(struct in_addr in,QString &szBuffer) + bool binaryIpToStringIp(struct in_addr in, QString & szBuffer) { char * ptr = inet_ntoa(in); - if(!ptr)return false; + if(!ptr) + return false; szBuffer = ptr; return true; } - bool isRoutableIpString(const QString &szIpString) + bool isRoutableIpString(const QString & szIpString) { struct in_addr a; - if(szIpString.isEmpty())return false; - stringIpToBinaryIp(szIpString,&a); + if(szIpString.isEmpty()) + return false; + stringIpToBinaryIp(szIpString, &a); return isRoutableIp((const char *)&a); } bool isRoutableIp(const char * ipaddr) { - if(!ipaddr)return false; + if(!ipaddr) + return false; const unsigned char * ip = (const unsigned char *)ipaddr; - if(ip[0] == 0)return false; // old-style broadcast - if(ip[0] == 10)return false; // Class A VPN - if(ip[0] == 127)return false; // loopback - if((ip[0] == 172) && (ip[1] >= 16) && (ip[1] <= 31))return false; // Class B VPN - if((ip[0] == 192) && (ip[1] == 168))return false; // Class C VPN - if((ip[0] == 169) && (ip[1] == 254))return false; // APIPA - if((ip[0] == 192) && (ip[1] == 0) && (ip[2] == 2))return false; // Class B VPN - if(ip[0] >= 224)return false; // class D multicast and class E reserved + if(ip[0] == 0) + return false; // old-style broadcast + if(ip[0] == 10) + return false; // Class A VPN + if(ip[0] == 127) + return false; // loopback + if((ip[0] == 172) && (ip[1] >= 16) && (ip[1] <= 31)) + return false; // Class B VPN + if((ip[0] == 192) && (ip[1] == 168)) + return false; // Class C VPN + if((ip[0] == 169) && (ip[1] == 254)) + return false; // APIPA + if((ip[0] == 192) && (ip[1] == 0) && (ip[2] == 2)) + return false; // Class B VPN + if(ip[0] >= 224) + return false; // class D multicast and class E reserved return true; } #ifdef COMPILE_GET_INTERFACE_ADDRESS - union sockaddr_union { + union sockaddr_union + { struct sockaddr sa; struct sockaddr_in sin; }; - bool getInterfaceAddress(const QString &szInterfaceName,QString &szBuffer) + bool getInterfaceAddress(const QString & szInterfaceName, QString & szBuffer) { - union sockaddr_union *su; + union sockaddr_union * su; struct ifreq ifr; int len = szInterfaceName.length(); - if(len > (IFNAMSIZ - 1))return false; // invalid interface anyway + if(len > (IFNAMSIZ - 1)) + return false; // invalid interface anyway - KviMemory::move(ifr.ifr_name,szInterfaceName.toUtf8().data(),len + 1); + KviMemory::move(ifr.ifr_name, szInterfaceName.toUtf8().data(), len + 1); - int fd = socket(AF_INET,SOCK_STREAM,0); - if(fd < 0)return false; + int fd = socket(AF_INET, SOCK_STREAM, 0); + if(fd < 0) + return false; - if(ioctl(fd,SIOCGIFADDR,&ifr) == -1)return false; // supports only IPV4 ? + if(ioctl(fd, SIOCGIFADDR, &ifr) == -1) + return false; // supports only IPV4 ? close(fd); su = (union sockaddr_union *)&(ifr.ifr_addr); - if (su->sa.sa_family != AF_INET) return false; + if(su->sa.sa_family != AF_INET) + return false; - return binaryIpToStringIp((struct in_addr)su->sin.sin_addr,szBuffer); + return binaryIpToStringIp((struct in_addr)su->sin.sin_addr, szBuffer); - // (this seems to work for AF_INET only anyway) -#else //!COMPILE_GET_INTERFACE_ADDRESS - bool getInterfaceAddress(const QString &,QString &) +// (this seems to work for AF_INET only anyway) +#else //!COMPILE_GET_INTERFACE_ADDRESS + bool getInterfaceAddress(const QString &, QString &) { return false; #endif //!COMPILE_GET_INTERFACE_ADDRESS } - void formatNetworkBandwidthString(QString &szBuffer,unsigned int uBytesPerSec) + void formatNetworkBandwidthString(QString & szBuffer, unsigned int uBytesPerSec) { if(uBytesPerSec > (1024 * 1024)) { @@ -625,47 +727,58 @@ namespace KviNetUtils } szBuffer = QString("%1 B/s").arg(uBytesPerSec); - } } bool kvi_isRoutableIpString(const char * ipstring) { struct in_addr a; - if(!ipstring)return false; - kvi_stringIpToBinaryIp(ipstring,&a); + if(!ipstring) + return false; + kvi_stringIpToBinaryIp(ipstring, &a); return kvi_isRoutableIp((const char *)&a); } bool kvi_isRoutableIp(const char * ipaddr) { - if(!ipaddr)return false; + if(!ipaddr) + return false; const unsigned char * ip = (const unsigned char *)ipaddr; - if(ip[0] == 0)return false; // old-style broadcast - if(ip[0] == 10)return false; // Class A VPN - if(ip[0] == 127)return false; // loopback - if((ip[0] == 172) && (ip[1] >= 16) && (ip[1] <= 31))return false; // Class B VPN - if((ip[0] == 192) && (ip[1] == 168))return false; // Class C VPN - if((ip[0] == 169) && (ip[1] == 254))return false; // APIPA - if((ip[0] == 192) && (ip[1] == 0) && (ip[2] == 2))return false; // Class B VPN - if(ip[0] >= 224)return false; // class D multicast and class E reserved + if(ip[0] == 0) + return false; // old-style broadcast + if(ip[0] == 10) + return false; // Class A VPN + if(ip[0] == 127) + return false; // loopback + if((ip[0] == 172) && (ip[1] >= 16) && (ip[1] <= 31)) + return false; // Class B VPN + if((ip[0] == 192) && (ip[1] == 168)) + return false; // Class C VPN + if((ip[0] == 169) && (ip[1] == 254)) + return false; // APIPA + if((ip[0] == 192) && (ip[1] == 0) && (ip[2] == 2)) + return false; // Class B VPN + if(ip[0] >= 224) + return false; // class D multicast and class E reserved return true; } -bool kvi_getLocalHostAddress(QString &buffer) +bool kvi_getLocalHostAddress(QString & buffer) { // This will work only on windoze... char buf[1024]; - if(gethostname(buf,1024) != 0)return false; + if(gethostname(buf, 1024) != 0) + return false; struct hostent * h = gethostbyname(buf); - if(!h)return false; + if(!h) + return false; QString tmp; - int i=0; + int i = 0; while(h->h_addr_list[i]) { - if(kvi_binaryIpToStringIp(*((struct in_addr *)(h->h_addr_list[i])),tmp)) + if(kvi_binaryIpToStringIp(*((struct in_addr *)(h->h_addr_list[i])), tmp)) { if(kvi_isRoutableIp(h->h_addr_list[i])) { @@ -680,10 +793,10 @@ bool kvi_getLocalHostAddress(QString &buffer) return true; } -KviSockaddr::KviSockaddr(const char * szIpAddress,kvi_u32_t uPort,bool bIPv6,bool bUdp) +KviSockaddr::KviSockaddr(const char * szIpAddress, kvi_u32_t uPort, bool bIPv6, bool bUdp) { struct addrinfo hints; - KviMemory::set((void *)&hints,0,sizeof(hints)); + KviMemory::set((void *)&hints, 0, sizeof(hints)); hints.ai_flags = AI_NUMERICHOST; #ifdef COMPILE_IPV6_SUPPORT hints.ai_family = bIPv6 ? PF_INET6 : PF_INET; @@ -695,15 +808,15 @@ KviSockaddr::KviSockaddr(const char * szIpAddress,kvi_u32_t uPort,bool bIPv6,boo hints.ai_protocol = 0; m_pData = 0; - KviCString szPort(KviCString::Format,"%u",uPort); - getaddrinfo(szIpAddress,szPort.ptr(),&hints,&m_pData); + KviCString szPort(KviCString::Format, "%u", uPort); + getaddrinfo(szIpAddress, szPort.ptr(), &hints, &m_pData); } -KviSockaddr::KviSockaddr(kvi_u32_t uPort,bool bIPv6,bool bUdp) // passive sockaddr +KviSockaddr::KviSockaddr(kvi_u32_t uPort, bool bIPv6, bool bUdp) // passive sockaddr { struct addrinfo hints; - KviMemory::set((void *)&hints,0,sizeof(hints)); + KviMemory::set((void *)&hints, 0, sizeof(hints)); hints.ai_flags = AI_NUMERICHOST | AI_PASSIVE; #ifdef COMPILE_IPV6_SUPPORT hints.ai_family = bIPv6 ? PF_INET6 : PF_INET; @@ -713,8 +826,8 @@ KviSockaddr::KviSockaddr(kvi_u32_t uPort,bool bIPv6,bool bUdp) // passive sockad hints.ai_socktype = bUdp ? SOCK_DGRAM : SOCK_STREAM; hints.ai_protocol = 0; m_pData = 0; - KviCString szPort(KviCString::Format,"%u",uPort); - getaddrinfo(0,szPort.ptr(),&hints,&m_pData); + KviCString szPort(KviCString::Format, "%u", uPort); + getaddrinfo(0, szPort.ptr(), &hints, &m_pData); } KviSockaddr::~KviSockaddr() @@ -728,25 +841,29 @@ KviSockaddr::~KviSockaddr() struct sockaddr * KviSockaddr::socketAddress() { - if(!m_pData)return 0; + if(!m_pData) + return 0; return (m_pData)->ai_addr; } size_t KviSockaddr::addressLength() { - if(!m_pData)return 0; + if(!m_pData) + return 0; return (m_pData)->ai_addrlen; } int KviSockaddr::addressFamily() { - if(!m_pData)return 0; + if(!m_pData) + return 0; return (m_pData)->ai_family; } bool KviSockaddr::isIPv6() { - if(!m_pData)return false; + if(!m_pData) + return false; #ifdef COMPILE_IPV6_SUPPORT return false; #else @@ -756,7 +873,8 @@ bool KviSockaddr::isIPv6() kvi_u32_t KviSockaddr::port() { - if(!m_pData)return 0; + if(!m_pData) + return 0; #ifdef COMPILE_IPV6_SUPPORT switch(m_pData->ai_family) { @@ -773,22 +891,23 @@ kvi_u32_t KviSockaddr::port() #endif } -bool KviSockaddr::getStringAddress(QString &szBuffer) +bool KviSockaddr::getStringAddress(QString & szBuffer) { - if(!m_pData)return 0; + if(!m_pData) + return 0; #ifdef COMPILE_IPV6_SUPPORT switch(((struct addrinfo *)m_pData)->ai_family) { case AF_INET: - return kvi_binaryIpToStringIp(((struct sockaddr_in *)(m_pData->ai_addr))->sin_addr,szBuffer); + return kvi_binaryIpToStringIp(((struct sockaddr_in *)(m_pData->ai_addr))->sin_addr, szBuffer); break; case AF_INET6: - return kvi_binaryIpToStringIp_V6(((struct sockaddr_in6 *)(m_pData->ai_addr))->sin6_addr,szBuffer); + return kvi_binaryIpToStringIp_V6(((struct sockaddr_in6 *)(m_pData->ai_addr))->sin6_addr, szBuffer); break; } return false; #else - return kvi_binaryIpToStringIp(((struct sockaddr_in *)(m_pData->ai_addr))->sin_addr,szBuffer); + return kvi_binaryIpToStringIp(((struct sockaddr_in *)(m_pData->ai_addr))->sin_addr, szBuffer); #endif } diff --git a/src/kvilib/net/KviNetUtils.h b/src/kvilib/net/KviNetUtils.h index e2aef2251..0a7145886 100644 --- a/src/kvilib/net/KviNetUtils.h +++ b/src/kvilib/net/KviNetUtils.h @@ -28,27 +28,27 @@ #include "kvi_inttypes.h" #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - #include - #ifdef COMPILE_IPV6_SUPPORT - #ifdef WIN2K - #include - #else - #include - //#include - #define in6_addr in_addr6 - #endif - #else - #ifdef WIN2K - #include - #else - #include - #endif - #endif +#include +#ifdef COMPILE_IPV6_SUPPORT +#ifdef WIN2K +#include +#else +#include +//#include +#define in6_addr in_addr6 +#endif +#else +#ifdef WIN2K +#include +#else +#include +#endif +#endif #else - #include - #include - #include //in_addr - #include //inet_ntoa inet_ntop and inet_pton depend on this one. +#include +#include +#include //in_addr +#include //inet_ntoa inet_ntop and inet_pton depend on this one. #endif #include "KviCString.h" @@ -56,44 +56,43 @@ class KVILIB_API KviSockaddr { public: - KviSockaddr(const char * szIpAddress,kvi_u32_t uPort,bool bIPv6,bool bUdp = false); - KviSockaddr(kvi_u32_t uPort,bool bIPv6,bool bUdp = false); // passive + KviSockaddr(const char * szIpAddress, kvi_u32_t uPort, bool bIPv6, bool bUdp = false); + KviSockaddr(kvi_u32_t uPort, bool bIPv6, bool bUdp = false); // passive ~KviSockaddr(); + private: struct addrinfo * m_pData; + public: struct sockaddr * socketAddress(); size_t addressLength(); int addressFamily(); bool isIPv6(); - bool getStringAddress(QString &szBuffer); + bool getStringAddress(QString & szBuffer); kvi_u32_t port(); - }; - -KVILIB_API extern bool kvi_select(int fd,bool * bCanRead,bool * bCanWrite,int iUSecs = 0); +KVILIB_API extern bool kvi_select(int fd, bool * bCanRead, bool * bCanWrite, int iUSecs = 0); // Warning : NOT THREAD SAFE! -KVILIB_API extern bool kvi_getLocalHostAddress(QString &buffer); +KVILIB_API extern bool kvi_getLocalHostAddress(QString & buffer); KVILIB_API extern bool kvi_isRoutableIp(const char * ipaddr); KVILIB_API extern bool kvi_isRoutableIpString(const char * ipstring); namespace KviNetUtils { - KVILIB_API bool stringIpToBinaryIp(const QString &szStringIp,struct in_addr * address); - KVILIB_API bool isValidStringIp(const QString &szStringIp); - KVILIB_API bool binaryIpToStringIp(struct in_addr in,QString &szBuffer); - KVILIB_API bool getInterfaceAddress(const QString &szInterfaceName,QString &szBuffer); + KVILIB_API bool stringIpToBinaryIp(const QString & szStringIp, struct in_addr * address); + KVILIB_API bool isValidStringIp(const QString & szStringIp); + KVILIB_API bool binaryIpToStringIp(struct in_addr in, QString & szBuffer); + KVILIB_API bool getInterfaceAddress(const QString & szInterfaceName, QString & szBuffer); #ifdef COMPILE_IPV6_SUPPORT - KVILIB_API bool isValidStringIPv6(const QString &szStringIp); - KVILIB_API bool stringIpToBinaryIp_V6(const QString &szStringIp,struct in6_addr * address); - KVILIB_API bool binaryIpToStringIp_V6(struct in6_addr in,QString &szBuffer); + KVILIB_API bool isValidStringIPv6(const QString & szStringIp); + KVILIB_API bool stringIpToBinaryIp_V6(const QString & szStringIp, struct in6_addr * address); + KVILIB_API bool binaryIpToStringIp_V6(struct in6_addr in, QString & szBuffer); #endif KVILIB_API bool isRoutableIp(const char * ipaddr); - KVILIB_API bool isRoutableIpString(const QString &szIpString); - KVILIB_API void formatNetworkBandwidthString(QString &szBuffer,unsigned int uBytesPerSec); + KVILIB_API bool isRoutableIpString(const QString & szIpString); + KVILIB_API void formatNetworkBandwidthString(QString & szBuffer, unsigned int uBytesPerSec); } - #endif //!_KVI_NETUTILS_H_ diff --git a/src/kvilib/net/KviNetworkAccessManager.h b/src/kvilib/net/KviNetworkAccessManager.h index 83c18ece9..f52c6a753 100644 --- a/src/kvilib/net/KviNetworkAccessManager.h +++ b/src/kvilib/net/KviNetworkAccessManager.h @@ -36,10 +36,11 @@ class KVILIB_API KviNetworkAccessManager private: KviNetworkAccessManager(); ~KviNetworkAccessManager(); + public: - static QNetworkAccessManager* getInstance() + static QNetworkAccessManager * getInstance() { - static QNetworkAccessManager* pInstance = NULL; + static QNetworkAccessManager * pInstance = NULL; if(!pInstance) pInstance = new QNetworkAccessManager(); return pInstance; diff --git a/src/kvilib/net/KviSASL.cpp b/src/kvilib/net/KviSASL.cpp index 2ecba10cb..7e37e284a 100644 --- a/src/kvilib/net/KviSASL.cpp +++ b/src/kvilib/net/KviSASL.cpp @@ -22,8 +22,6 @@ // //============================================================================= - - #include "KviSASL.h" #include "KviMemory.h" @@ -33,30 +31,29 @@ namespace KviSASL bool plainMethod(KviCString & szIn, KviCString & szOut, QByteArray & baNick, QByteArray & baPass) { - if(szIn=="+") + if(szIn == "+") { int answerLen = 2 + (2 * baNick.size()) + baPass.size(); - char * answer = (char *) KviMemory::allocate(answerLen); + char * answer = (char *)KviMemory::allocate(answerLen); char * answer2 = answer; memcpy(answer, baNick.data(), baNick.size()); - answer+=baNick.size(); + answer += baNick.size(); memset(answer, 0, 1); answer++; memcpy(answer, baNick.data(), baNick.size()); - answer+=baNick.size(); + answer += baNick.size(); memset(answer, 0, 1); answer++; memcpy(answer, baPass.data(), baPass.size()); - szOut.bufferToBase64(answer2,answerLen); + szOut.bufferToBase64(answer2, answerLen); KviMemory::free(answer2); return true; } return false; } - } diff --git a/src/kvilib/net/KviSSL.cpp b/src/kvilib/net/KviSSL.cpp index 2172f95cb..8e8b9f6c1 100644 --- a/src/kvilib/net/KviSSL.cpp +++ b/src/kvilib/net/KviSSL.cpp @@ -22,8 +22,6 @@ // //============================================================================= - - #include "KviSSL.h" #include "KviLocale.h" @@ -41,14 +39,13 @@ #include #if !(defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW)) - // linux, mac - #include +// linux, mac +#include #endif static bool g_bSSLInitialized = false; static KviMutex * g_pSSLMutex = 0; - static inline void my_ssl_lock() { g_pSSLMutex->lock(); @@ -59,7 +56,6 @@ static inline void my_ssl_unlock() g_pSSLMutex->unlock(); } - // THIS PART OF OpenSSL SUCKS static DH * dh_512 = 0; @@ -67,103 +63,103 @@ static DH * dh_1024 = 0; static DH * dh_2048 = 0; static DH * dh_4096 = 0; -static unsigned char dh512_p[]={ - 0x90,0x86,0xDD,0x06,0xE8,0x0F,0x10,0x86,0xF0,0x91,0xC5,0x55, - 0x4D,0x6B,0xAF,0x69,0x4F,0x01,0xED,0xF9,0x57,0x8F,0x3B,0xB8, - 0x9C,0x87,0xAE,0x85,0xC1,0xBF,0x57,0xA5,0xD5,0xBA,0x81,0x24, - 0xE7,0x99,0xE3,0xF6,0xCD,0xB4,0x41,0xB7,0x7F,0x6E,0x7B,0xB1, - 0xD2,0xF3,0xE9,0x0F,0xB9,0x0E,0x4D,0xEB,0x9D,0xD4,0xA9,0xE5, - 0x03,0x67,0xA7,0x27 +static unsigned char dh512_p[] = { + 0x90, 0x86, 0xDD, 0x06, 0xE8, 0x0F, 0x10, 0x86, 0xF0, 0x91, 0xC5, 0x55, + 0x4D, 0x6B, 0xAF, 0x69, 0x4F, 0x01, 0xED, 0xF9, 0x57, 0x8F, 0x3B, 0xB8, + 0x9C, 0x87, 0xAE, 0x85, 0xC1, 0xBF, 0x57, 0xA5, 0xD5, 0xBA, 0x81, 0x24, + 0xE7, 0x99, 0xE3, 0xF6, 0xCD, 0xB4, 0x41, 0xB7, 0x7F, 0x6E, 0x7B, 0xB1, + 0xD2, 0xF3, 0xE9, 0x0F, 0xB9, 0x0E, 0x4D, 0xEB, 0x9D, 0xD4, 0xA9, 0xE5, + 0x03, 0x67, 0xA7, 0x27 }; -static unsigned char dh512_g[]={ 0x05 }; - -static unsigned char dh1024_p[]={ - 0xA5,0x4C,0xB9,0xB9,0xC4,0x35,0x88,0x68,0x9B,0x79,0x48,0x6C, - 0x21,0xA7,0x8E,0xE2,0x9C,0xAF,0x2F,0x04,0xBF,0x45,0xBC,0xF5, - 0xAB,0x35,0x86,0xC8,0xBB,0x9B,0x75,0x18,0x7C,0x9B,0xAB,0xE8, - 0x52,0x7F,0x57,0x3E,0xD8,0x65,0x7D,0x2B,0xE1,0x6D,0x3D,0xA5, - 0x32,0xE8,0xA0,0x2B,0x7A,0x58,0x6B,0x47,0x16,0x4E,0xB1,0xFC, - 0x09,0xB7,0x7C,0xC6,0xE9,0x6E,0xC7,0xC7,0xA1,0x42,0x0F,0x4B, - 0x43,0xFB,0x58,0xBA,0xC7,0x66,0xD6,0xCA,0x6B,0xC7,0x45,0x7C, - 0x99,0xE4,0x46,0x02,0x93,0x3F,0x28,0xD2,0xCE,0x0C,0x8A,0xDD, - 0x6A,0x22,0x2E,0xA9,0x9A,0xCA,0x16,0x48,0x4E,0x67,0x4C,0xE9, - 0xC8,0x54,0xCD,0x18,0xC9,0xF3,0x30,0x3A,0x74,0xAB,0xF9,0xAF, - 0xE4,0xA4,0x0D,0x56,0x62,0x28,0x07,0xBF +static unsigned char dh512_g[] = { 0x05 }; + +static unsigned char dh1024_p[] = { + 0xA5, 0x4C, 0xB9, 0xB9, 0xC4, 0x35, 0x88, 0x68, 0x9B, 0x79, 0x48, 0x6C, + 0x21, 0xA7, 0x8E, 0xE2, 0x9C, 0xAF, 0x2F, 0x04, 0xBF, 0x45, 0xBC, 0xF5, + 0xAB, 0x35, 0x86, 0xC8, 0xBB, 0x9B, 0x75, 0x18, 0x7C, 0x9B, 0xAB, 0xE8, + 0x52, 0x7F, 0x57, 0x3E, 0xD8, 0x65, 0x7D, 0x2B, 0xE1, 0x6D, 0x3D, 0xA5, + 0x32, 0xE8, 0xA0, 0x2B, 0x7A, 0x58, 0x6B, 0x47, 0x16, 0x4E, 0xB1, 0xFC, + 0x09, 0xB7, 0x7C, 0xC6, 0xE9, 0x6E, 0xC7, 0xC7, 0xA1, 0x42, 0x0F, 0x4B, + 0x43, 0xFB, 0x58, 0xBA, 0xC7, 0x66, 0xD6, 0xCA, 0x6B, 0xC7, 0x45, 0x7C, + 0x99, 0xE4, 0x46, 0x02, 0x93, 0x3F, 0x28, 0xD2, 0xCE, 0x0C, 0x8A, 0xDD, + 0x6A, 0x22, 0x2E, 0xA9, 0x9A, 0xCA, 0x16, 0x48, 0x4E, 0x67, 0x4C, 0xE9, + 0xC8, 0x54, 0xCD, 0x18, 0xC9, 0xF3, 0x30, 0x3A, 0x74, 0xAB, 0xF9, 0xAF, + 0xE4, 0xA4, 0x0D, 0x56, 0x62, 0x28, 0x07, 0xBF }; -static unsigned char dh1024_g[]={ 0x05 }; - -static unsigned char dh2048_p[]={ - 0xBF,0x67,0x7B,0x79,0xA5,0x22,0xD3,0xB5,0x0C,0x13,0xE6,0x92, - 0x54,0xFD,0x64,0xBF,0x57,0x25,0xBD,0x02,0x7C,0xFD,0x72,0x97, - 0x82,0xA4,0xA6,0x0A,0xB9,0xE6,0x4B,0xFA,0xBD,0xFA,0x71,0x8A, - 0x2E,0x36,0xF9,0x03,0x58,0x1B,0xB6,0x3A,0xFD,0x15,0xCC,0x87, - 0x5D,0x04,0xF7,0x45,0xE0,0xE2,0x34,0x7F,0x54,0x5F,0x5D,0x14, - 0xD3,0xCA,0x3E,0xFD,0x2A,0x92,0x10,0x89,0xA0,0xB0,0xB4,0xE5, - 0x80,0x05,0x13,0xBE,0xA3,0xD0,0x42,0x4B,0x98,0x44,0x54,0xB3, - 0xE0,0x23,0x26,0xF5,0x6B,0x0E,0x4D,0x2A,0x81,0xB2,0x8A,0x06, - 0xC8,0x00,0x9E,0xAB,0x1B,0x77,0xDC,0x87,0x9C,0x6C,0xD5,0xEE, - 0xB4,0xB4,0xDD,0xDA,0x3F,0x40,0xA3,0xFA,0xC1,0x1E,0xC0,0xA2, - 0x9E,0xB8,0xAC,0x31,0xE8,0x12,0x93,0x9C,0x71,0xF6,0xE7,0xF0, - 0x65,0x7F,0xA5,0x20,0xF7,0x49,0x3D,0xD6,0xF9,0xD3,0xF0,0x3F, - 0xB3,0xF0,0xD0,0x23,0x22,0x82,0xA5,0xDD,0xFB,0xD9,0x9C,0x7D, - 0xE7,0xA0,0x78,0xE8,0xF9,0x02,0x0C,0x2F,0x1D,0x52,0xC7,0x61, - 0xED,0xA0,0xC9,0x06,0x14,0xDF,0xE7,0xB1,0x1E,0x50,0x98,0x4F, - 0x10,0xB9,0x87,0x4C,0x1C,0x9C,0xB3,0xD2,0x98,0x23,0x7C,0x47, - 0xD2,0x3C,0xC5,0x29,0x65,0xC5,0x67,0x4E,0xC0,0x76,0x0F,0x43, - 0x27,0x28,0x89,0x69,0x30,0x7D,0x04,0xFD,0xF7,0x89,0xE5,0xD6, - 0xE6,0x97,0x7D,0xBB,0x54,0x5F,0xB7,0x94,0x1D,0xBC,0x82,0xAB, - 0x9A,0xF5,0x0A,0x0C,0x89,0x68,0xE7,0x0A,0x8C,0x2D,0x0D,0x82, - 0x44,0xA7,0xB8,0xF9,0x0B,0x8E,0xCB,0xA4,0x6A,0xA7,0xEC,0x5F, - 0x0A,0xF8,0x5F,0xE7 +static unsigned char dh1024_g[] = { 0x05 }; + +static unsigned char dh2048_p[] = { + 0xBF, 0x67, 0x7B, 0x79, 0xA5, 0x22, 0xD3, 0xB5, 0x0C, 0x13, 0xE6, 0x92, + 0x54, 0xFD, 0x64, 0xBF, 0x57, 0x25, 0xBD, 0x02, 0x7C, 0xFD, 0x72, 0x97, + 0x82, 0xA4, 0xA6, 0x0A, 0xB9, 0xE6, 0x4B, 0xFA, 0xBD, 0xFA, 0x71, 0x8A, + 0x2E, 0x36, 0xF9, 0x03, 0x58, 0x1B, 0xB6, 0x3A, 0xFD, 0x15, 0xCC, 0x87, + 0x5D, 0x04, 0xF7, 0x45, 0xE0, 0xE2, 0x34, 0x7F, 0x54, 0x5F, 0x5D, 0x14, + 0xD3, 0xCA, 0x3E, 0xFD, 0x2A, 0x92, 0x10, 0x89, 0xA0, 0xB0, 0xB4, 0xE5, + 0x80, 0x05, 0x13, 0xBE, 0xA3, 0xD0, 0x42, 0x4B, 0x98, 0x44, 0x54, 0xB3, + 0xE0, 0x23, 0x26, 0xF5, 0x6B, 0x0E, 0x4D, 0x2A, 0x81, 0xB2, 0x8A, 0x06, + 0xC8, 0x00, 0x9E, 0xAB, 0x1B, 0x77, 0xDC, 0x87, 0x9C, 0x6C, 0xD5, 0xEE, + 0xB4, 0xB4, 0xDD, 0xDA, 0x3F, 0x40, 0xA3, 0xFA, 0xC1, 0x1E, 0xC0, 0xA2, + 0x9E, 0xB8, 0xAC, 0x31, 0xE8, 0x12, 0x93, 0x9C, 0x71, 0xF6, 0xE7, 0xF0, + 0x65, 0x7F, 0xA5, 0x20, 0xF7, 0x49, 0x3D, 0xD6, 0xF9, 0xD3, 0xF0, 0x3F, + 0xB3, 0xF0, 0xD0, 0x23, 0x22, 0x82, 0xA5, 0xDD, 0xFB, 0xD9, 0x9C, 0x7D, + 0xE7, 0xA0, 0x78, 0xE8, 0xF9, 0x02, 0x0C, 0x2F, 0x1D, 0x52, 0xC7, 0x61, + 0xED, 0xA0, 0xC9, 0x06, 0x14, 0xDF, 0xE7, 0xB1, 0x1E, 0x50, 0x98, 0x4F, + 0x10, 0xB9, 0x87, 0x4C, 0x1C, 0x9C, 0xB3, 0xD2, 0x98, 0x23, 0x7C, 0x47, + 0xD2, 0x3C, 0xC5, 0x29, 0x65, 0xC5, 0x67, 0x4E, 0xC0, 0x76, 0x0F, 0x43, + 0x27, 0x28, 0x89, 0x69, 0x30, 0x7D, 0x04, 0xFD, 0xF7, 0x89, 0xE5, 0xD6, + 0xE6, 0x97, 0x7D, 0xBB, 0x54, 0x5F, 0xB7, 0x94, 0x1D, 0xBC, 0x82, 0xAB, + 0x9A, 0xF5, 0x0A, 0x0C, 0x89, 0x68, 0xE7, 0x0A, 0x8C, 0x2D, 0x0D, 0x82, + 0x44, 0xA7, 0xB8, 0xF9, 0x0B, 0x8E, 0xCB, 0xA4, 0x6A, 0xA7, 0xEC, 0x5F, + 0x0A, 0xF8, 0x5F, 0xE7 }; -static unsigned char dh2048_g[]={ 0x05 }; - -static unsigned char dh4096_p[]={ - 0xFA,0x14,0x72,0x52,0xC1,0x4D,0xE1,0x5A,0x49,0xD4,0xEF,0x09, - 0x2D,0xC0,0xA8,0xFD,0x55,0xAB,0xD7,0xD9,0x37,0x04,0x28,0x09, - 0xE2,0xE9,0x3E,0x77,0xE2,0xA1,0x7A,0x18,0xDD,0x46,0xA3,0x43, - 0x37,0x23,0x90,0x97,0xF3,0x0E,0xC9,0x03,0x50,0x7D,0x65,0xCF, - 0x78,0x62,0xA6,0x3A,0x62,0x22,0x83,0xA1,0x2F,0xFE,0x79,0xBA, - 0x35,0xFF,0x59,0xD8,0x1D,0x61,0xDD,0x1E,0x21,0x13,0x17,0xFE, - 0xCD,0x38,0x87,0x9E,0xF5,0x4F,0x79,0x10,0x61,0x8D,0xD4,0x22, - 0xF3,0x5A,0xED,0x5D,0xEA,0x21,0xE9,0x33,0x6B,0x48,0x12,0x0A, - 0x20,0x77,0xD4,0x25,0x60,0x61,0xDE,0xF6,0xB4,0x4F,0x1C,0x63, - 0x40,0x8B,0x3A,0x21,0x93,0x8B,0x79,0x53,0x51,0x2C,0xCA,0xB3, - 0x7B,0x29,0x56,0xA8,0xC7,0xF8,0xF4,0x7B,0x08,0x5E,0xA6,0xDC, - 0xA2,0x45,0x12,0x56,0xDD,0x41,0x92,0xF2,0xDD,0x5B,0x8F,0x23, - 0xF0,0xF3,0xEF,0xE4,0x3B,0x0A,0x44,0xDD,0xED,0x96,0x84,0xF1, - 0xA8,0x32,0x46,0xA3,0xDB,0x4A,0xBE,0x3D,0x45,0xBA,0x4E,0xF8, - 0x03,0xE5,0xDD,0x6B,0x59,0x0D,0x84,0x1E,0xCA,0x16,0x5A,0x8C, - 0xC8,0xDF,0x7C,0x54,0x44,0xC4,0x27,0xA7,0x3B,0x2A,0x97,0xCE, - 0xA3,0x7D,0x26,0x9C,0xAD,0xF4,0xC2,0xAC,0x37,0x4B,0xC3,0xAD, - 0x68,0x84,0x7F,0x99,0xA6,0x17,0xEF,0x6B,0x46,0x3A,0x7A,0x36, - 0x7A,0x11,0x43,0x92,0xAD,0xE9,0x9C,0xFB,0x44,0x6C,0x3D,0x82, - 0x49,0xCC,0x5C,0x6A,0x52,0x42,0xF8,0x42,0xFB,0x44,0xF9,0x39, - 0x73,0xFB,0x60,0x79,0x3B,0xC2,0x9E,0x0B,0xDC,0xD4,0xA6,0x67, - 0xF7,0x66,0x3F,0xFC,0x42,0x3B,0x1B,0xDB,0x4F,0x66,0xDC,0xA5, - 0x8F,0x66,0xF9,0xEA,0xC1,0xED,0x31,0xFB,0x48,0xA1,0x82,0x7D, - 0xF8,0xE0,0xCC,0xB1,0xC7,0x03,0xE4,0xF8,0xB3,0xFE,0xB7,0xA3, - 0x13,0x73,0xA6,0x7B,0xC1,0x0E,0x39,0xC7,0x94,0x48,0x26,0x00, - 0x85,0x79,0xFC,0x6F,0x7A,0xAF,0xC5,0x52,0x35,0x75,0xD7,0x75, - 0xA4,0x40,0xFA,0x14,0x74,0x61,0x16,0xF2,0xEB,0x67,0x11,0x6F, - 0x04,0x43,0x3D,0x11,0x14,0x4C,0xA7,0x94,0x2A,0x39,0xA1,0xC9, - 0x90,0xCF,0x83,0xC6,0xFF,0x02,0x8F,0xA3,0x2A,0xAC,0x26,0xDF, - 0x0B,0x8B,0xBE,0x64,0x4A,0xF1,0xA1,0xDC,0xEE,0xBA,0xC8,0x03, - 0x82,0xF6,0x62,0x2C,0x5D,0xB6,0xBB,0x13,0x19,0x6E,0x86,0xC5, - 0x5B,0x2B,0x5E,0x3A,0xF3,0xB3,0x28,0x6B,0x70,0x71,0x3A,0x8E, - 0xFF,0x5C,0x15,0xE6,0x02,0xA4,0xCE,0xED,0x59,0x56,0xCC,0x15, - 0x51,0x07,0x79,0x1A,0x0F,0x25,0x26,0x27,0x30,0xA9,0x15,0xB2, - 0xC8,0xD4,0x5C,0xCC,0x30,0xE8,0x1B,0xD8,0xD5,0x0F,0x19,0xA8, - 0x80,0xA4,0xC7,0x01,0xAA,0x8B,0xBA,0x53,0xBB,0x47,0xC2,0x1F, - 0x6B,0x54,0xB0,0x17,0x60,0xED,0x79,0x21,0x95,0xB6,0x05,0x84, - 0x37,0xC8,0x03,0xA4,0xDD,0xD1,0x06,0x69,0x8F,0x4C,0x39,0xE0, - 0xC8,0x5D,0x83,0x1D,0xBE,0x6A,0x9A,0x99,0xF3,0x9F,0x0B,0x45, - 0x29,0xD4,0xCB,0x29,0x66,0xEE,0x1E,0x7E,0x3D,0xD7,0x13,0x4E, - 0xDB,0x90,0x90,0x58,0xCB,0x5E,0x9B,0xCD,0x2E,0x2B,0x0F,0xA9, - 0x4E,0x78,0xAC,0x05,0x11,0x7F,0xE3,0x9E,0x27,0xD4,0x99,0xE1, - 0xB9,0xBD,0x78,0xE1,0x84,0x41,0xA0,0xDF +static unsigned char dh2048_g[] = { 0x05 }; + +static unsigned char dh4096_p[] = { + 0xFA, 0x14, 0x72, 0x52, 0xC1, 0x4D, 0xE1, 0x5A, 0x49, 0xD4, 0xEF, 0x09, + 0x2D, 0xC0, 0xA8, 0xFD, 0x55, 0xAB, 0xD7, 0xD9, 0x37, 0x04, 0x28, 0x09, + 0xE2, 0xE9, 0x3E, 0x77, 0xE2, 0xA1, 0x7A, 0x18, 0xDD, 0x46, 0xA3, 0x43, + 0x37, 0x23, 0x90, 0x97, 0xF3, 0x0E, 0xC9, 0x03, 0x50, 0x7D, 0x65, 0xCF, + 0x78, 0x62, 0xA6, 0x3A, 0x62, 0x22, 0x83, 0xA1, 0x2F, 0xFE, 0x79, 0xBA, + 0x35, 0xFF, 0x59, 0xD8, 0x1D, 0x61, 0xDD, 0x1E, 0x21, 0x13, 0x17, 0xFE, + 0xCD, 0x38, 0x87, 0x9E, 0xF5, 0x4F, 0x79, 0x10, 0x61, 0x8D, 0xD4, 0x22, + 0xF3, 0x5A, 0xED, 0x5D, 0xEA, 0x21, 0xE9, 0x33, 0x6B, 0x48, 0x12, 0x0A, + 0x20, 0x77, 0xD4, 0x25, 0x60, 0x61, 0xDE, 0xF6, 0xB4, 0x4F, 0x1C, 0x63, + 0x40, 0x8B, 0x3A, 0x21, 0x93, 0x8B, 0x79, 0x53, 0x51, 0x2C, 0xCA, 0xB3, + 0x7B, 0x29, 0x56, 0xA8, 0xC7, 0xF8, 0xF4, 0x7B, 0x08, 0x5E, 0xA6, 0xDC, + 0xA2, 0x45, 0x12, 0x56, 0xDD, 0x41, 0x92, 0xF2, 0xDD, 0x5B, 0x8F, 0x23, + 0xF0, 0xF3, 0xEF, 0xE4, 0x3B, 0x0A, 0x44, 0xDD, 0xED, 0x96, 0x84, 0xF1, + 0xA8, 0x32, 0x46, 0xA3, 0xDB, 0x4A, 0xBE, 0x3D, 0x45, 0xBA, 0x4E, 0xF8, + 0x03, 0xE5, 0xDD, 0x6B, 0x59, 0x0D, 0x84, 0x1E, 0xCA, 0x16, 0x5A, 0x8C, + 0xC8, 0xDF, 0x7C, 0x54, 0x44, 0xC4, 0x27, 0xA7, 0x3B, 0x2A, 0x97, 0xCE, + 0xA3, 0x7D, 0x26, 0x9C, 0xAD, 0xF4, 0xC2, 0xAC, 0x37, 0x4B, 0xC3, 0xAD, + 0x68, 0x84, 0x7F, 0x99, 0xA6, 0x17, 0xEF, 0x6B, 0x46, 0x3A, 0x7A, 0x36, + 0x7A, 0x11, 0x43, 0x92, 0xAD, 0xE9, 0x9C, 0xFB, 0x44, 0x6C, 0x3D, 0x82, + 0x49, 0xCC, 0x5C, 0x6A, 0x52, 0x42, 0xF8, 0x42, 0xFB, 0x44, 0xF9, 0x39, + 0x73, 0xFB, 0x60, 0x79, 0x3B, 0xC2, 0x9E, 0x0B, 0xDC, 0xD4, 0xA6, 0x67, + 0xF7, 0x66, 0x3F, 0xFC, 0x42, 0x3B, 0x1B, 0xDB, 0x4F, 0x66, 0xDC, 0xA5, + 0x8F, 0x66, 0xF9, 0xEA, 0xC1, 0xED, 0x31, 0xFB, 0x48, 0xA1, 0x82, 0x7D, + 0xF8, 0xE0, 0xCC, 0xB1, 0xC7, 0x03, 0xE4, 0xF8, 0xB3, 0xFE, 0xB7, 0xA3, + 0x13, 0x73, 0xA6, 0x7B, 0xC1, 0x0E, 0x39, 0xC7, 0x94, 0x48, 0x26, 0x00, + 0x85, 0x79, 0xFC, 0x6F, 0x7A, 0xAF, 0xC5, 0x52, 0x35, 0x75, 0xD7, 0x75, + 0xA4, 0x40, 0xFA, 0x14, 0x74, 0x61, 0x16, 0xF2, 0xEB, 0x67, 0x11, 0x6F, + 0x04, 0x43, 0x3D, 0x11, 0x14, 0x4C, 0xA7, 0x94, 0x2A, 0x39, 0xA1, 0xC9, + 0x90, 0xCF, 0x83, 0xC6, 0xFF, 0x02, 0x8F, 0xA3, 0x2A, 0xAC, 0x26, 0xDF, + 0x0B, 0x8B, 0xBE, 0x64, 0x4A, 0xF1, 0xA1, 0xDC, 0xEE, 0xBA, 0xC8, 0x03, + 0x82, 0xF6, 0x62, 0x2C, 0x5D, 0xB6, 0xBB, 0x13, 0x19, 0x6E, 0x86, 0xC5, + 0x5B, 0x2B, 0x5E, 0x3A, 0xF3, 0xB3, 0x28, 0x6B, 0x70, 0x71, 0x3A, 0x8E, + 0xFF, 0x5C, 0x15, 0xE6, 0x02, 0xA4, 0xCE, 0xED, 0x59, 0x56, 0xCC, 0x15, + 0x51, 0x07, 0x79, 0x1A, 0x0F, 0x25, 0x26, 0x27, 0x30, 0xA9, 0x15, 0xB2, + 0xC8, 0xD4, 0x5C, 0xCC, 0x30, 0xE8, 0x1B, 0xD8, 0xD5, 0x0F, 0x19, 0xA8, + 0x80, 0xA4, 0xC7, 0x01, 0xAA, 0x8B, 0xBA, 0x53, 0xBB, 0x47, 0xC2, 0x1F, + 0x6B, 0x54, 0xB0, 0x17, 0x60, 0xED, 0x79, 0x21, 0x95, 0xB6, 0x05, 0x84, + 0x37, 0xC8, 0x03, 0xA4, 0xDD, 0xD1, 0x06, 0x69, 0x8F, 0x4C, 0x39, 0xE0, + 0xC8, 0x5D, 0x83, 0x1D, 0xBE, 0x6A, 0x9A, 0x99, 0xF3, 0x9F, 0x0B, 0x45, + 0x29, 0xD4, 0xCB, 0x29, 0x66, 0xEE, 0x1E, 0x7E, 0x3D, 0xD7, 0x13, 0x4E, + 0xDB, 0x90, 0x90, 0x58, 0xCB, 0x5E, 0x9B, 0xCD, 0x2E, 0x2B, 0x0F, 0xA9, + 0x4E, 0x78, 0xAC, 0x05, 0x11, 0x7F, 0xE3, 0x9E, 0x27, 0xD4, 0x99, 0xE1, + 0xB9, 0xBD, 0x78, 0xE1, 0x84, 0x41, 0xA0, 0xDF }; -static unsigned char dh4096_g[]={ 0x02 }; +static unsigned char dh4096_g[] = { 0x02 }; static DH * my_get_dh(int keylength) { @@ -176,44 +172,45 @@ static DH * my_get_dh(int keylength) { case 512: dh = dh_512; - p = dh512_p; - g = dh512_g; + p = dh512_p; + g = dh512_g; sp = sizeof(dh512_p); sg = sizeof(dh512_g); - break; + break; case 1024: dh = dh_1024; - p = dh1024_p; - g = dh1024_g; + p = dh1024_p; + g = dh1024_g; sp = sizeof(dh1024_p); sg = sizeof(dh1024_g); - break; + break; case 2048: dh = dh_2048; - p = dh2048_p; - g = dh2048_g; + p = dh2048_p; + g = dh2048_g; sp = sizeof(dh2048_p); sg = sizeof(dh2048_g); - break; + break; case 4096: dh = dh_4096; - p = dh4096_p; - g = dh4096_g; + p = dh4096_p; + g = dh4096_g; sp = sizeof(dh4096_p); sg = sizeof(dh4096_g); - break; + break; default: // What the hell do you want from me ? - qDebug("OpenSSL is asking for a DH param with keylen %d: no way :D",keylength); - break; - + qDebug("OpenSSL is asking for a DH param with keylen %d: no way :D", keylength); + break; } - if(dh)return dh; + if(dh) + return dh; dh = DH_new(); - if(!dh)return 0; - dh->p=BN_bin2bn(p,sp,0); - dh->g=BN_bin2bn(g,sg,0); + if(!dh) + return 0; + dh->p = BN_bin2bn(p, sp, 0); + dh->g = BN_bin2bn(g, sg, 0); if((dh->p == 0) || (dh->g == 0)) { DH_free(dh); @@ -225,24 +222,30 @@ static DH * my_get_dh(int keylength) DH * my_ugly_dh_callback(SSL *, int, int keylength) { my_ssl_lock(); - DH *dh = my_get_dh(keylength); + DH * dh = my_get_dh(keylength); my_ssl_unlock(); return dh; } void KviSSL::globalInit() { - if(g_pSSLMutex)return; + if(g_pSSLMutex) + return; g_pSSLMutex = new KviMutex(); } void KviSSL::globalDestroy() { - if(!g_pSSLMutex)return; - if(dh_512)DH_free(dh_512); - if(dh_1024)DH_free(dh_1024); - if(dh_2048)DH_free(dh_2048); - if(dh_4096)DH_free(dh_4096); + if(!g_pSSLMutex) + return; + if(dh_512) + DH_free(dh_512); + if(dh_1024) + DH_free(dh_1024); + if(dh_2048) + DH_free(dh_2048); + if(dh_4096) + DH_free(dh_4096); globalSSLDestroy(); delete g_pSSLMutex; g_pSSLMutex = 0; @@ -288,21 +291,21 @@ KviSSL::~KviSSL() #ifdef COMPILE_ON_WINDOWS - // On windows we need to override new and delete operators - // to ensure that always the right new/delete pair is called for an object instance - // This bug is present in all the classes exported by a module that - // can be instantiated/destroyed from external modules. - // (this is a well known bug described in Q122675 of MSDN) +// On windows we need to override new and delete operators +// to ensure that always the right new/delete pair is called for an object instance +// This bug is present in all the classes exported by a module that +// can be instantiated/destroyed from external modules. +// (this is a well known bug described in Q122675 of MSDN) - void * KviSSL::operator new(size_t tSize) - { - return KviMemory::allocate(tSize); - } +void * KviSSL::operator new(size_t tSize) +{ + return KviMemory::allocate(tSize); +} - void KviSSL::operator delete(void * p) - { - KviMemory::free(p); - } +void KviSSL::operator delete(void * p) +{ + KviMemory::free(p); +} #endif @@ -310,20 +313,20 @@ void KviSSL::shutdown() { if(m_pSSL) { - //avoid to die on a SIGPIPE if the connection has close (SSL_shutdown can call send()) - //see bug #440 +//avoid to die on a SIGPIPE if the connection has close (SSL_shutdown can call send()) +//see bug #440 - #if !(defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW)) - // ignore SIGPIPE - signal( SIGPIPE, SIG_IGN ); +#if !(defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW)) + // ignore SIGPIPE + signal(SIGPIPE, SIG_IGN); // At least attempt to shutdown the connection gracefully SSL_shutdown(m_pSSL); //restore normal SIGPIPE behaviour. - signal( SIGPIPE, SIG_DFL ); - #else + signal(SIGPIPE, SIG_DFL); +#else // At least attempt to shutdown the connection gracefully SSL_shutdown(m_pSSL); - #endif +#endif SSL_free(m_pSSL); m_pSSL = 0; } @@ -348,11 +351,13 @@ int verify_clientCallback(int, X509_STORE_CTX *) bool KviSSL::initContext(Method m) { - if(m_pSSL)return false; + if(m_pSSL) + return false; m_pSSLCtx = SSL_CTX_new(m == Client ? SSLv23_client_method() : SSLv23_server_method()); - if(!m_pSSLCtx)return false; + if(!m_pSSLCtx) + return false; - if (m == Server) + if(m == Server) { // we have to request the peer certificate, else only the client can see the peer identity, not the server SSL_CTX_set_verify(m_pSSLCtx, SSL_VERIFY_PEER, verify_clientCallback); @@ -362,49 +367,55 @@ bool KviSSL::initContext(Method m) // ADH are moved to the end since they are less secure, but they don't need a certificate // (so we can use secure dcc without a cert) // NOTE: see bug ticket #155 - SSL_CTX_set_cipher_list(m_pSSLCtx,"ALL:!eNULL:!EXP:!SSLv2:+ADH@STRENGTH"); - SSL_CTX_set_tmp_dh_callback(m_pSSLCtx,my_ugly_dh_callback); + SSL_CTX_set_cipher_list(m_pSSLCtx, "ALL:!eNULL:!EXP:!SSLv2:+ADH@STRENGTH"); + SSL_CTX_set_tmp_dh_callback(m_pSSLCtx, my_ugly_dh_callback); return true; } bool KviSSL::initSocket(kvi_socket_t fd) { - if(!m_pSSLCtx)return false; + if(!m_pSSLCtx) + return false; m_pSSL = SSL_new(m_pSSLCtx); - if(!m_pSSL)return false; - if(!SSL_set_fd(m_pSSL,fd))return false; + if(!m_pSSL) + return false; + if(!SSL_set_fd(m_pSSL, fd)) + return false; return true; } -static int cb(char *buf, int size, int, void *u) +static int cb(char * buf, int size, int, void * u) { KviCString * p = (KviCString *)u; int len = p->len(); - if(len >= size)return 0; - KviMemory::move(buf,p->ptr(),len + 1); -// qDebug("PASS REQYESTED: %s",p->ptr()); + if(len >= size) + return 0; + KviMemory::move(buf, p->ptr(), len + 1); + // qDebug("PASS REQYESTED: %s",p->ptr()); return len; } -KviSSL::Result KviSSL::useCertificateFile(QString cert,QString pass) +KviSSL::Result KviSSL::useCertificateFile(QString cert, QString pass) { - if(!m_pSSLCtx)return NotInitialized; + if(!m_pSSLCtx) + return NotInitialized; m_szPass = pass.toUtf8().data(); - if(m_szPass.len() < 4)m_szPass.append("xxxx"); + if(m_szPass.len() < 4) + m_szPass.append("xxxx"); X509 * x509 = 0; #ifdef COMPILE_ON_WINDOWS FILE * f = _wfopen(cert.toStdWString().data(), L"r"); #else - FILE * f = fopen(cert.toUtf8().data(),"r"); + FILE * f = fopen(cert.toUtf8().data(), "r"); #endif if(!f) return FileIoError; -// qDebug("READING CERTIFICATE %s",cert.Utf8().data()); - if(PEM_read_X509(f,&x509,cb,&m_szPass)) + // qDebug("READING CERTIFICATE %s",cert.Utf8().data()); + if(PEM_read_X509(f, &x509, cb, &m_szPass)) { - if(!SSL_CTX_use_certificate(m_pSSLCtx,x509)) + if(!SSL_CTX_use_certificate(m_pSSLCtx, x509)) { X509_free(x509); fclose(f); @@ -417,27 +428,28 @@ KviSSL::Result KviSSL::useCertificateFile(QString cert,QString pass) return Success; } - -KviSSL::Result KviSSL::usePrivateKeyFile(QString key,QString pass) +KviSSL::Result KviSSL::usePrivateKeyFile(QString key, QString pass) { - if(!m_pSSLCtx)return NotInitialized; + if(!m_pSSLCtx) + return NotInitialized; m_szPass = pass.toUtf8().data(); - if(m_szPass.len() < 4)m_szPass.append("xxxx"); + if(m_szPass.len() < 4) + m_szPass.append("xxxx"); EVP_PKEY * k = 0; #ifdef COMPILE_ON_WINDOWS FILE * f = _wfopen(key.toStdWString().data(), L"r"); #else - FILE * f = fopen(key.toUtf8().data(),"r"); + FILE * f = fopen(key.toUtf8().data(), "r"); #endif if(!f) return FileIoError; -// qDebug("READING KEY %s",key.toUtf8().data()); - if(PEM_read_PrivateKey(f,&k,cb,&m_szPass)) + // qDebug("READING KEY %s",key.toUtf8().data()); + if(PEM_read_PrivateKey(f, &k, cb, &m_szPass)) { - if(!SSL_CTX_use_PrivateKey(m_pSSLCtx,k)) + if(!SSL_CTX_use_PrivateKey(m_pSSLCtx, k)) { EVP_PKEY_free(k); fclose(f); @@ -455,7 +467,7 @@ unsigned long KviSSL::getLastError(bool bPeek) return bPeek ? ERR_peek_error() : ERR_get_error(); } -bool KviSSL::getLastErrorString(KviCString &buffer,bool bPeek) +bool KviSSL::getLastErrorString(KviCString & buffer, bool bPeek) { unsigned long uErr = getLastError(bPeek); if(uErr != 0) @@ -469,103 +481,142 @@ bool KviSSL::getLastErrorString(KviCString &buffer,bool bPeek) KviSSL::Result KviSSL::connect() { - if(!m_pSSL)return NotInitialized; + if(!m_pSSL) + return NotInitialized; int ret = SSL_connect(m_pSSL); return connectOrAcceptError(ret); } KviSSL::Result KviSSL::accept() { - if(!m_pSSL)return NotInitialized; + if(!m_pSSL) + return NotInitialized; int ret = SSL_accept(m_pSSL); return connectOrAcceptError(ret); } KviSSL::Result KviSSL::connectOrAcceptError(int ret) { - switch(SSL_get_error(m_pSSL,ret)) + switch(SSL_get_error(m_pSSL, ret)) { - case SSL_ERROR_NONE: return Success; break; - case SSL_ERROR_WANT_READ: return WantRead; break; - case SSL_ERROR_WANT_WRITE: return WantWrite; break; - case SSL_ERROR_ZERO_RETURN: return RemoteEndClosedConnection; break; - case SSL_ERROR_WANT_X509_LOOKUP: return ObscureError; break; + case SSL_ERROR_NONE: + return Success; + break; + case SSL_ERROR_WANT_READ: + return WantRead; + break; + case SSL_ERROR_WANT_WRITE: + return WantWrite; + break; + case SSL_ERROR_ZERO_RETURN: + return RemoteEndClosedConnection; + break; + case SSL_ERROR_WANT_X509_LOOKUP: + return ObscureError; + break; case SSL_ERROR_SYSCALL: { - if(getLastError(true) != 0)return SSLError; - if(ret == 0)return RemoteEndClosedConnection; + if(getLastError(true) != 0) + return SSLError; + if(ret == 0) + return RemoteEndClosedConnection; return SyscallError; } break; - case SSL_ERROR_SSL: return SSLError; break; - default: return UnknownError; break; + case SSL_ERROR_SSL: + return SSLError; + break; + default: + return UnknownError; + break; } return UnknownError; } -int KviSSL::read(char * buffer,int len) +int KviSSL::read(char * buffer, int len) { -// if(!m_pSSL)return -1; - return SSL_read(m_pSSL,buffer,len); + // if(!m_pSSL)return -1; + return SSL_read(m_pSSL, buffer, len); } -int KviSSL::write(const char * buffer,int len) +int KviSSL::write(const char * buffer, int len) { -// if(!m_pSSL)return -1; - return SSL_write(m_pSSL,buffer,len); + // if(!m_pSSL)return -1; + return SSL_write(m_pSSL, buffer, len); } KviSSL::Result KviSSL::getProtocolError(int ret) { - if(!m_pSSL)return NotInitialized; - switch(SSL_get_error(m_pSSL,ret)) + if(!m_pSSL) + return NotInitialized; + switch(SSL_get_error(m_pSSL, ret)) { - case SSL_ERROR_NONE: return Success; break; - case SSL_ERROR_WANT_READ: return WantRead; break; - case SSL_ERROR_WANT_WRITE: return WantWrite; break; - case SSL_ERROR_ZERO_RETURN: return ZeroReturn; break; - case SSL_ERROR_WANT_X509_LOOKUP: return ObscureError; break; - case SSL_ERROR_SYSCALL: return SyscallError; break; - case SSL_ERROR_SSL: return SSLError; break; - default: return UnknownError; break; + case SSL_ERROR_NONE: + return Success; + break; + case SSL_ERROR_WANT_READ: + return WantRead; + break; + case SSL_ERROR_WANT_WRITE: + return WantWrite; + break; + case SSL_ERROR_ZERO_RETURN: + return ZeroReturn; + break; + case SSL_ERROR_WANT_X509_LOOKUP: + return ObscureError; + break; + case SSL_ERROR_SYSCALL: + return SyscallError; + break; + case SSL_ERROR_SSL: + return SSLError; + break; + default: + return UnknownError; + break; } return UnknownError; } KviSSLCertificate * KviSSL::getPeerCertificate() { - if(!m_pSSL)return 0; + if(!m_pSSL) + return 0; X509 * x509 = SSL_get_peer_certificate(m_pSSL); - if(!x509)return 0; + if(!x509) + return 0; return new KviSSLCertificate(x509); } KviSSLCertificate * KviSSL::getLocalCertificate() { - if(!m_pSSL)return 0; + if(!m_pSSL) + return 0; X509 * x509 = SSL_get_certificate(m_pSSL); - if(!x509)return 0; + if(!x509) + return 0; return new KviSSLCertificate(x509); } KviSSLCipherInfo * KviSSL::getCurrentCipherInfo() { - if(!m_pSSL)return 0; + if(!m_pSSL) + return 0; #if OPENSSL_VERSION_NUMBER >= 0x10000000L const SSL_CIPHER * c = SSL_get_current_cipher(m_pSSL); #else SSL_CIPHER * c = SSL_get_current_cipher(m_pSSL); #endif - if(!c)return 0; + if(!c) + return 0; return new KviSSLCipherInfo(c, m_pSSL); } - - KviSSLCertificate::KviSSLCertificate(X509 * x509) { - m_pSubject = new KviPointerHashTable(17); + m_pSubject = new KviPointerHashTable(17); m_pSubject->setAutoDelete(true); - m_pIssuer = new KviPointerHashTable(17); + m_pIssuer = new KviPointerHashTable(17); m_pIssuer->setAutoDelete(true); m_pX509 = 0; setX509(x509); @@ -580,40 +631,41 @@ KviSSLCertificate::~KviSSLCertificate() char * KviSSLCertificate::getX509Base64() { - BUF_MEM *bptr; - BIO* mem = BIO_new(BIO_s_mem()); + BUF_MEM * bptr; + BIO * mem = BIO_new(BIO_s_mem()); PEM_write_bio_X509(mem, m_pX509); int iLen = BIO_get_mem_data(mem, &bptr); - char * szTmp = (char *) KviMemory::allocate(iLen+1); + char * szTmp = (char *)KviMemory::allocate(iLen + 1); KviMemory::copy(szTmp, bptr, iLen); - *(szTmp+iLen) = '\0'; + *(szTmp + iLen) = '\0'; BIO_free_all(mem); return szTmp; } #ifdef COMPILE_ON_WINDOWS - // On windows we need to override new and delete operators - // to ensure that always the right new/delete pair is called for an object instance - // This bug is present in all the classes exported by a module that - // can be instantiated/destroyed from external modules. - // (this is a well known bug described in Q122675 of MSDN) +// On windows we need to override new and delete operators +// to ensure that always the right new/delete pair is called for an object instance +// This bug is present in all the classes exported by a module that +// can be instantiated/destroyed from external modules. +// (this is a well known bug described in Q122675 of MSDN) - void * KviSSLCertificate::operator new(size_t tSize) - { - return KviMemory::allocate(tSize); - } +void * KviSSLCertificate::operator new(size_t tSize) +{ + return KviMemory::allocate(tSize); +} - void KviSSLCertificate::operator delete(void * p) - { - KviMemory::free(p); - } +void KviSSLCertificate::operator delete(void * p) +{ + KviMemory::free(p); +} #endif void KviSSLCertificate::setX509(X509 * x509) { - if(m_pX509)X509_free(m_pX509); + if(m_pX509) + X509_free(m_pX509); m_pX509 = x509; m_iVersion = X509_get_version(x509); extractSubject(); @@ -643,7 +695,7 @@ int KviSSLCertificate::fingerprintDigestId() return -1; int NID = OBJ_obj2nid(m_pX509->sig_alg->algorithm); - if (NID == NID_undef) + if(NID == NID_undef) { // unknown digest function: it means the signature can't be verified: the certificate can't be trusted return 0; @@ -652,7 +704,7 @@ int KviSSLCertificate::fingerprintDigestId() const EVP_MD * mdType = NULL; mdType = EVP_get_digestbyname(OBJ_nid2sn(NID)); - if (mdType == NULL) + if(mdType == NULL) { // Unknown digest return 0; @@ -676,18 +728,20 @@ const char * KviSSLCertificate::fingerprintContents(QString digestName) unsigned char bufferData[EVP_MAX_MD_SIZE]; unsigned int bufferLen = 0; const char * pDigestName; - if (digestName.isEmpty()) + if(digestName.isEmpty()) { // use the one used to create the signature pDigestName = OBJ_nid2sn(fingerprintDigestId()); - } else { + } + else + { pDigestName = digestName.toUtf8().data(); } if(getFingerprint(bufferData, &bufferLen, pDigestName) != 0) return ""; - QByteArray digestByteArray = QByteArray::fromRawData((char *) bufferData, bufferLen); + QByteArray digestByteArray = QByteArray::fromRawData((char *)bufferData, bufferLen); return digestByteArray.toHex().data(); } @@ -701,13 +755,13 @@ int KviSSLCertificate::getFingerprint(unsigned char * bufferData, unsigned int * const EVP_MD * mdType = NULL; mdType = EVP_get_digestbyname(digestName); - if (mdType == NULL) + if(mdType == NULL) { // Unknown digest return -98; } - if (!X509_digest(m_pX509, mdType, bufferData, bufferLen)) + if(!X509_digest(m_pX509, mdType, bufferData, bufferLen)) { return -97; } @@ -718,31 +772,33 @@ int KviSSLCertificate::getFingerprint(unsigned char * bufferData, unsigned int * void KviSSLCertificate::extractSubject() { char buffer[1024]; - char * t = X509_NAME_oneline(X509_get_subject_name(m_pX509),buffer,1024); - if (!t)return; + char * t = X509_NAME_oneline(X509_get_subject_name(m_pX509), buffer, 1024); + if(!t) + return; m_pSubject->clear(); - splitX509String(m_pSubject,t); + splitX509String(m_pSubject, t); } void KviSSLCertificate::extractIssuer() { char buffer[1024]; - char * t = X509_NAME_oneline(X509_get_issuer_name(m_pX509),buffer,1024); - if (!t)return; + char * t = X509_NAME_oneline(X509_get_issuer_name(m_pX509), buffer, 1024); + if(!t) + return; m_pIssuer->clear(); - splitX509String(m_pIssuer,t); + splitX509String(m_pIssuer, t); } -void KviSSLCertificate::splitX509String(KviPointerHashTable * dict,const char * t) +void KviSSLCertificate::splitX509String(KviPointerHashTable * dict, const char * t) { KviCString buf = t; int cnt; - KviCString ** arr = buf.splitToArray('/',50,&cnt); + KviCString ** arr = buf.splitToArray('/', 50, &cnt); if(arr) { if(cnt > 0) { - for(int i=0;ifindFirstIdx('='); if(idx != -1) @@ -751,7 +807,7 @@ void KviSSLCertificate::splitX509String(KviPointerHashTablecutLeft(idx + 1); if(szTok.hasData() && arr[i]->hasData()) { - dict->replace(szTok.ptr(),new KviCString(arr[i]->ptr())); + dict->replace(szTok.ptr(), new KviCString(arr[i]->ptr())); } } } @@ -761,15 +817,14 @@ void KviSSLCertificate::splitX509String(KviPointerHashTable * dict,const char * entry) +const char * KviSSLCertificate::dictEntry(KviPointerHashTable * dict, const char * entry) { KviCString * t = dict->find(entry); - if(!t)return __tr("Unknown"); + if(!t) + return __tr("Unknown"); return t->ptr(); } - /* void KviSSLCertificate::getPKeyType(int type,KviCString &buffer) { @@ -791,29 +846,32 @@ void KviSSLCertificate::getPKeyType(int type,KviCString &buffer) void KviSSLCertificate::extractPubKeyInfo() { - EVP_PKEY *p = X509_get_pubkey(m_pX509); + EVP_PKEY * p = X509_get_pubkey(m_pX509); if(p) { m_iPubKeyBits = EVP_PKEY_bits(p); m_szPubKeyType = (p->type == NID_undef) ? __tr("Unknown") : OBJ_nid2ln(p->type); -// getPKeyType(p->type,m_szPubKeyType); - } else { + // getPKeyType(p->type,m_szPubKeyType); + } + else + { m_iPubKeyBits = 0; m_szPubKeyType = "None"; } - } void KviSSLCertificate::extractSerialNumber() { ASN1_INTEGER * i = X509_get_serialNumber(m_pX509); - if(i)m_iSerialNumber = ASN1_INTEGER_get(i); - else m_iSerialNumber = -1; + if(i) + m_iSerialNumber = ASN1_INTEGER_get(i); + else + m_iSerialNumber = -1; } void KviSSLCertificate::extractSignature() { - static char hexdigits[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; + static char hexdigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; //getPKeyType(X509_get_signature_type(m_pX509),m_szSignatureType); @@ -822,9 +880,10 @@ void KviSSLCertificate::extractSignature() m_szSignatureContents = ""; - for(i = 0;i < m_pX509->signature->length;i++) + for(i = 0; i < m_pX509->signature->length; i++) { - if(m_szSignatureContents.hasData())m_szSignatureContents.append(":"); + if(m_szSignatureContents.hasData()) + m_szSignatureContents.append(":"); m_szSignatureContents.append(hexdigits[(m_pX509->signature->data[i] & 0xf0) >> 4]); m_szSignatureContents.append(hexdigits[(m_pX509->signature->data[i] & 0x0f)]); } @@ -844,10 +903,10 @@ KviSSLCipherInfo::KviSSLCipherInfo(SSL_CIPHER * c, SSL * s) #endif { m_szVersion = SSL_get_version(s); - m_iNumBitsUsed = SSL_CIPHER_get_bits(c,&m_iNumBits); + m_iNumBitsUsed = SSL_CIPHER_get_bits(c, &m_iNumBits); m_szName = SSL_CIPHER_get_name(c); char buf[1024]; - m_szDescription = SSL_CIPHER_description(c,buf,1024); + m_szDescription = SSL_CIPHER_description(c, buf, 1024); } KviSSLCipherInfo::~KviSSLCipherInfo() @@ -856,21 +915,21 @@ KviSSLCipherInfo::~KviSSLCipherInfo() #ifdef COMPILE_ON_WINDOWS - // On windows we need to override new and delete operators - // to ensure that always the right new/delete pair is called for an object instance - // This bug is present in all the classes exported by a module that - // can be instantiated/destroyed from external modules. - // (this is a well known bug described in Q122675 of MSDN) +// On windows we need to override new and delete operators +// to ensure that always the right new/delete pair is called for an object instance +// This bug is present in all the classes exported by a module that +// can be instantiated/destroyed from external modules. +// (this is a well known bug described in Q122675 of MSDN) - void * KviSSLCipherInfo::operator new(size_t tSize) - { - return KviMemory::allocate(tSize); - } +void * KviSSLCipherInfo::operator new(size_t tSize) +{ + return KviMemory::allocate(tSize); +} - void KviSSLCipherInfo::operator delete(void * p) - { - KviMemory::free(p); - } +void KviSSLCipherInfo::operator delete(void * p) +{ + KviMemory::free(p); +} #endif diff --git a/src/kvilib/net/KviSSL.h b/src/kvilib/net/KviSSL.h index b1d27db7a..fa7c705b1 100644 --- a/src/kvilib/net/KviSSL.h +++ b/src/kvilib/net/KviSSL.h @@ -36,64 +36,66 @@ // Apple deprecated openssl since osx 10.7: #ifdef DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER - #undef DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER - #define DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER +#undef DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER +#define DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER #endif #include - class KVILIB_API KviSSLCertificate { public: KviSSLCertificate(X509 * x509); ~KviSSLCertificate(); + protected: X509 * m_pX509; - KviPointerHashTable * m_pSubject; - KviPointerHashTable * m_pIssuer; - int m_iPubKeyBits; - KviCString m_szPubKeyType; - int m_iSerialNumber; - int m_iVersion; - KviCString m_szSignatureType; - KviCString m_szSignatureContents; + KviPointerHashTable * m_pSubject; + KviPointerHashTable * m_pIssuer; + int m_iPubKeyBits; + KviCString m_szPubKeyType; + int m_iSerialNumber; + int m_iVersion; + KviCString m_szSignatureType; + KviCString m_szSignatureContents; + private: void extractSubject(); void extractIssuer(); void extractPubKeyInfo(); void extractSerialNumber(); void extractSignature(); - const char * dictEntry(KviPointerHashTable * dict,const char * entry); - void splitX509String(KviPointerHashTable * dict,const char * t); + const char * dictEntry(KviPointerHashTable * dict, const char * entry); + void splitX509String(KviPointerHashTable * dict, const char * t); int getFingerprint(unsigned char * bufferData, unsigned int * bufferLen, const char * digestName); + public: void setX509(X509 * x509); char * getX509Base64(); //not owned, you'll need to free this - const char * signatureType(){ return m_szSignatureType.ptr(); }; - const char * signatureContents(){ return m_szSignatureContents.ptr(); }; + const char * signatureType() { return m_szSignatureType.ptr(); }; + const char * signatureContents() { return m_szSignatureContents.ptr(); }; - const char * subjectCountry(){ return dictEntry(m_pSubject,"C"); }; - const char * subjectStateOrProvince(){ return dictEntry(m_pSubject,"ST"); }; - const char * subjectLocality(){ return dictEntry(m_pSubject,"L"); }; - const char * subjectOrganization(){ return dictEntry(m_pSubject,"O"); }; - const char * subjectOrganizationalUnit(){ return dictEntry(m_pSubject,"OU"); }; - const char * subjectCommonName(){ return dictEntry(m_pSubject,"CN"); }; + const char * subjectCountry() { return dictEntry(m_pSubject, "C"); }; + const char * subjectStateOrProvince() { return dictEntry(m_pSubject, "ST"); }; + const char * subjectLocality() { return dictEntry(m_pSubject, "L"); }; + const char * subjectOrganization() { return dictEntry(m_pSubject, "O"); }; + const char * subjectOrganizationalUnit() { return dictEntry(m_pSubject, "OU"); }; + const char * subjectCommonName() { return dictEntry(m_pSubject, "CN"); }; - const char * issuerCountry(){ return dictEntry(m_pIssuer,"C"); }; - const char * issuerStateOrProvince(){ return dictEntry(m_pIssuer,"ST"); }; - const char * issuerLocality(){ return dictEntry(m_pIssuer,"L"); }; - const char * issuerOrganization(){ return dictEntry(m_pIssuer,"O"); }; - const char * issuerOrganizationalUnit(){ return dictEntry(m_pIssuer,"OU"); }; - const char * issuerCommonName(){ return dictEntry(m_pIssuer,"CN"); }; + const char * issuerCountry() { return dictEntry(m_pIssuer, "C"); }; + const char * issuerStateOrProvince() { return dictEntry(m_pIssuer, "ST"); }; + const char * issuerLocality() { return dictEntry(m_pIssuer, "L"); }; + const char * issuerOrganization() { return dictEntry(m_pIssuer, "O"); }; + const char * issuerOrganizationalUnit() { return dictEntry(m_pIssuer, "OU"); }; + const char * issuerCommonName() { return dictEntry(m_pIssuer, "CN"); }; - int publicKeyBits(){ return m_iPubKeyBits; }; - const char * publicKeyType(){ return m_szPubKeyType.ptr(); }; + int publicKeyBits() { return m_iPubKeyBits; }; + const char * publicKeyType() { return m_szPubKeyType.ptr(); }; - int serialNumber(){ return m_iSerialNumber; }; + int serialNumber() { return m_iSerialNumber; }; - int version(){ return m_iVersion; }; + int version() { return m_iVersion; }; bool fingerprintIsValid(); int fingerprintDigestId(); @@ -106,8 +108,8 @@ public: // This bug is present in all the classes exported by a module that // can be instantiated/destroyed from external modules. // (this is a well known bug described in Q122675 of MSDN) - void * operator new(size_t tSize); - void operator delete(void * p); + void * operator new(size_t tSize); + void operator delete(void * p); #endif }; @@ -120,84 +122,104 @@ public: KviSSLCipherInfo(SSL_CIPHER * c, SSL * s); #endif ~KviSSLCipherInfo(); + protected: - KviCString m_szVersion; - int m_iNumBits; - int m_iNumBitsUsed; - KviCString m_szName; - KviCString m_szDescription; + KviCString m_szVersion; + int m_iNumBits; + int m_iNumBitsUsed; + KviCString m_szName; + KviCString m_szDescription; + public: - const char * name(){ return m_szName.ptr(); }; - const char * description(){ return m_szDescription.ptr(); }; - int bits(){ return m_iNumBits; }; - int bitsUsed(){ return m_iNumBitsUsed; }; - const char * version(){ return m_szVersion.ptr(); }; + const char * name() { return m_szName.ptr(); }; + const char * description() { return m_szDescription.ptr(); }; + int bits() { return m_iNumBits; }; + int bitsUsed() { return m_iNumBitsUsed; }; + const char * version() { return m_szVersion.ptr(); }; #ifdef COMPILE_ON_WINDOWS // On windows we need to override new and delete operators // to ensure that always the right new/delete pair is called for an object instance // This bug is present in all the classes exported by a module that // can be instantiated/destroyed from external modules. // (this is a well known bug described in Q122675 of MSDN) - void * operator new(size_t tSize); - void operator delete(void * p); + void * operator new(size_t tSize); + void operator delete(void * p); #endif }; #ifdef Success - #undef Success +#undef Success #endif - class KVILIB_API KviSSL { public: - enum Method { Client, Server }; - enum Result { Success, NotInitialized, WantRead, WantWrite, ZeroReturn, FileIoError, - UnknownError, ObscureError, SSLError, SyscallError, RemoteEndClosedConnection }; + enum Method + { + Client, + Server + }; + enum Result + { + Success, + NotInitialized, + WantRead, + WantWrite, + ZeroReturn, + FileIoError, + UnknownError, + ObscureError, + SSLError, + SyscallError, + RemoteEndClosedConnection + }; + public: KviSSL(); ~KviSSL(); + public: - SSL * m_pSSL; - SSL_CTX * m_pSSLCtx; - KviCString m_szPass; + SSL * m_pSSL; + SSL_CTX * m_pSSLCtx; + KviCString m_szPass; + public: static void globalInit(); static void globalDestroy(); static void globalSSLInit(); static void globalSSLDestroy(); + public: bool initSocket(kvi_socket_t fd); bool initContext(KviSSL::Method m); void shutdown(); KviSSL::Result connect(); KviSSL::Result accept(); - int read(char * buffer,int len); - int write(const char * buffer,int len); + int read(char * buffer, int len); + int write(const char * buffer, int len); // SSL ERRORS unsigned long getLastError(bool bPeek = false); - bool getLastErrorString(KviCString &buffer,bool bPeek = false); + bool getLastErrorString(KviCString & buffer, bool bPeek = false); // Protocol error KviSSL::Result getProtocolError(int ret); KviSSLCertificate * getPeerCertificate(); KviSSLCertificate * getLocalCertificate(); KviSSLCipherInfo * getCurrentCipherInfo(); - KviSSL::Result useCertificateFile(QString cert,QString pass); - KviSSL::Result usePrivateKeyFile(QString key,QString pass); + KviSSL::Result useCertificateFile(QString cert, QString pass); + KviSSL::Result usePrivateKeyFile(QString key, QString pass); #ifdef COMPILE_ON_WINDOWS // On windows we need to override new and delete operators // to ensure that always the right new/delete pair is called for an object instance // This bug is present in all the classes exported by a module that // can be instantiated/destroyed from external modules. // (this is a well known bug described in Q122675 of MSDN) - void * operator new(size_t tSize); - void operator delete(void * p); + void * operator new(size_t tSize); + void operator delete(void * p); #endif private: KviSSL::Result connectOrAcceptError(int ret); }; - #endif //COMPILE_SSL_SUPPORT #endif //_KVI_SSL_H_ diff --git a/src/kvilib/net/KviUrl.cpp b/src/kvilib/net/KviUrl.cpp index 02a9a6468..96ca812c9 100644 --- a/src/kvilib/net/KviUrl.cpp +++ b/src/kvilib/net/KviUrl.cpp @@ -22,8 +22,6 @@ // //============================================================================= - - #include "KviUrl.h" #include @@ -42,7 +40,7 @@ KviUrl::KviUrl(const char * szUrl) parse(); } -KviUrl::KviUrl(const QString &szUrl) +KviUrl::KviUrl(const QString & szUrl) { m_szUrl = szUrl; parse(); @@ -50,7 +48,6 @@ KviUrl::KviUrl(const QString &szUrl) KviUrl::~KviUrl() { - } void KviUrl::parse() @@ -65,21 +62,21 @@ void KviUrl::parse() m_szPath.append(QChar('?')); m_szPath.append(url.query(QUrl::FullyEncoded)); } - if(m_szPath.isEmpty()) m_szPath=QString("/"); + if(m_szPath.isEmpty()) + m_szPath = QString("/"); m_szUser = url.userName(); m_szPass = url.password(); m_uPort = url.port(0); } - -KviUrl & KviUrl::operator=(const QString& szUrl) +KviUrl & KviUrl::operator=(const QString & szUrl) { m_szUrl = szUrl; parse(); return *this; } -KviUrl & KviUrl::operator=(const KviUrl &u) +KviUrl & KviUrl::operator=(const KviUrl & u) { m_szUrl = u.m_szUrl; m_szProtocol = u.m_szProtocol; @@ -90,5 +87,3 @@ KviUrl & KviUrl::operator=(const KviUrl &u) m_uPort = u.m_uPort; return *this; } - - diff --git a/src/kvilib/net/KviUrl.h b/src/kvilib/net/KviUrl.h index 12a086473..4871e1cf6 100644 --- a/src/kvilib/net/KviUrl.h +++ b/src/kvilib/net/KviUrl.h @@ -33,20 +33,23 @@ class KVILIB_API KviUrl : public KviHeapObject public: KviUrl(); KviUrl(const char * szUrl); - KviUrl(const QString &szUrl); - KviUrl(const KviUrl &u); + KviUrl(const QString & szUrl); + KviUrl(const KviUrl & u); ~KviUrl(); + protected: - QString m_szUrl; + QString m_szUrl; + + QString m_szProtocol; + QString m_szHost; + QString m_szPath; + QString m_szUser; + QString m_szPass; + kvi_u32_t m_uPort; - QString m_szProtocol; - QString m_szHost; - QString m_szPath; - QString m_szUser; - QString m_szPass; - kvi_u32_t m_uPort; protected: void parse(); + public: const QString & url() const { return m_szUrl; }; const QString & protocol() const { return m_szProtocol; }; @@ -56,10 +59,8 @@ public: const QString & pass() const { return m_szPass; }; kvi_u32_t port() const { return m_uPort; }; - KviUrl & operator = (const QString& szUrl); - KviUrl & operator = (const KviUrl &u); - + KviUrl & operator=(const QString & szUrl); + KviUrl & operator=(const KviUrl & u); }; - #endif //_KVI_URL_H_ diff --git a/src/kvilib/net/kvi_socket.cpp b/src/kvilib/net/kvi_socket.cpp index 918396fd3..51684d01a 100644 --- a/src/kvilib/net/kvi_socket.cpp +++ b/src/kvilib/net/kvi_socket.cpp @@ -24,7 +24,6 @@ #define _KVI_SOCKET_CPP_ - #include "kvi_socket.h" #include "kvi_inttypes.h" diff --git a/src/kvilib/net/kvi_socket.h b/src/kvilib/net/kvi_socket.h index 6cbc6398e..dc8d18b94 100644 --- a/src/kvilib/net/kvi_socket.h +++ b/src/kvilib/net/kvi_socket.h @@ -36,65 +36,62 @@ #include "kvi_inttypes.h" //#ifndef _KVI_SOCKET_CPP_ - extern KVILIB_API kvi_u64_t g_uOutgoingTraffic; - extern KVILIB_API kvi_u64_t g_uIncomingTraffic; +extern KVILIB_API kvi_u64_t g_uOutgoingTraffic; +extern KVILIB_API kvi_u64_t g_uIncomingTraffic; //#endif //!_KVI_SOCKET_CPP_ - - #if defined(COMPILE_ON_WINDOWS) || (defined(COMPILE_ON_MINGW) && !defined(OS2)) - #define KVI_INVALID_SOCKET INVALID_SOCKET +#define KVI_INVALID_SOCKET INVALID_SOCKET - //every decent win version should contain IPPROTO_IPV6 +//every decent win version should contain IPPROTO_IPV6 - //mingw win32 headers do not have this, mingw-w64-headers do however +//mingw win32 headers do not have this, mingw-w64-headers do however #if defined(COMPILE_ON_MINGW) - #ifndef IPV6_PROTECTION_LEVEL - #define IPV6_PROTECTION_LEVEL 23 - #define PROTECTION_LEVEL_UNRESTRICTED 10 /* for peer-to-peer apps */ - #define PROTECTION_LEVEL_DEFAULT 20 /* default level */ - #define PROTECTION_LEVEL_RESTRICTED 30 /* for Intranet apps */ - #endif +#ifndef IPV6_PROTECTION_LEVEL +#define IPV6_PROTECTION_LEVEL 23 +#define PROTECTION_LEVEL_UNRESTRICTED 10 /* for peer-to-peer apps */ +#define PROTECTION_LEVEL_DEFAULT 20 /* default level */ +#define PROTECTION_LEVEL_RESTRICTED 30 /* for Intranet apps */ +#endif #endif - #define KVI_IPV6_PROTECTION_LEVEL IPV6_PROTECTION_LEVEL - #define KVI_PROTECTION_LEVEL_RESTRICTED PROTECTION_LEVEL_RESTRICTED - #define KVI_PROTECTION_LEVEL_DEFAULT PROTECTION_LEVEL_DEFAULT - #define KVI_PROTECTION_LEVEL_UNRESTRICTED PROTECTION_LEVEL_UNRESTRICTED - #define KVI_IPPROTO_IPV6 IPPROTO_IPV6 +#define KVI_IPV6_PROTECTION_LEVEL IPV6_PROTECTION_LEVEL +#define KVI_PROTECTION_LEVEL_RESTRICTED PROTECTION_LEVEL_RESTRICTED +#define KVI_PROTECTION_LEVEL_DEFAULT PROTECTION_LEVEL_DEFAULT +#define KVI_PROTECTION_LEVEL_UNRESTRICTED PROTECTION_LEVEL_UNRESTRICTED +#define KVI_IPPROTO_IPV6 IPPROTO_IPV6 #else //!(defined(COMPILE_ON_WINDOWS) || (defined(COMPILE_ON_MINGW) && !defined(OS2)) - #include - #include - #include - #include - #include - #include - #include +#include +#include +#include +#include +#include +#include +#include - #define KVI_INVALID_SOCKET (-1) +#define KVI_INVALID_SOCKET (-1) #endif //!(defined(COMPILE_ON_WINDOWS) || (defined(COMPILE_ON_MINGW) && !defined(OS2)) #ifndef MSG_NOSIGNAL - // At least solaris seems to not have it - #define MSG_NOSIGNAL 0 +// At least solaris seems to not have it +#define MSG_NOSIGNAL 0 #endif //!MSG_NOSIGNAL - //================================================================================================ // Constants for kvi_socket_create // -#define KVI_SOCKET_PF_INET PF_INET -#define KVI_SOCKET_PF_INET6 PF_INET6 -#define KVI_SOCKET_PF_UNIX PF_UNIX +#define KVI_SOCKET_PF_INET PF_INET +#define KVI_SOCKET_PF_INET6 PF_INET6 +#define KVI_SOCKET_PF_UNIX PF_UNIX #define KVI_SOCKET_TYPE_STREAM SOCK_STREAM -#define KVI_SOCKET_TYPE_DGRAM SOCK_DGRAM +#define KVI_SOCKET_TYPE_DGRAM SOCK_DGRAM -#define KVI_SOCKET_PROTO_TCP 0 +#define KVI_SOCKET_PROTO_TCP 0 //================================================================================================ // kvi_socket_create @@ -108,19 +105,19 @@ #define kvi_socket_open kvi_socket_create -inline kvi_socket_t kvi_socket_create(int pf,int type,int proto) +inline kvi_socket_t kvi_socket_create(int pf, int type, int proto) { #ifdef COMPILE_ON_MAC /* * Ignore SIGPIPE. Under linux we set MSG_NOSIGNAL on send and recv calls, * but under OSX (and probably other *BSD) we need to set SO_NOSIGPIPE */ - kvi_socket_t fd = (kvi_socket_t)socket(pf,type,proto); + kvi_socket_t fd = (kvi_socket_t)socket(pf, type, proto); int set = 1; setsockopt(fd, SOL_SOCKET, SO_NOSIGPIPE, (void *)&set, sizeof(int)); return fd; #else - return (kvi_socket_t)socket(pf,type,proto); + return (kvi_socket_t)socket(pf, type, proto); #endif } @@ -169,9 +166,9 @@ inline bool kvi_socket_setNonBlocking(kvi_socket_t sock) { #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) unsigned long arg = 1; - return (ioctlsocket(sock,FIONBIO,(unsigned long FAR *)&arg) == 0); + return (ioctlsocket(sock, FIONBIO, (unsigned long FAR *)&arg) == 0); #else - return (fcntl(sock,F_SETFL,O_NONBLOCK) == 0); + return (fcntl(sock, F_SETFL, O_NONBLOCK) == 0); #endif } @@ -181,9 +178,9 @@ inline bool kvi_socket_setNonBlocking(kvi_socket_t sock) // Standard bind() call on the socket. Returns false in case of failure // -inline bool kvi_socket_bind(kvi_socket_t sock,const struct sockaddr * sa,int salen) +inline bool kvi_socket_bind(kvi_socket_t sock, const struct sockaddr * sa, int salen) { - return (::bind(sock,sa,salen) == 0); + return (::bind(sock, sa, salen) == 0); } //================================================================================================ @@ -194,12 +191,12 @@ inline bool kvi_socket_bind(kvi_socket_t sock,const struct sockaddr * sa,int sal // You might take a look at kvi_socket_errno() then. // -inline bool kvi_socket_connect(kvi_socket_t sock,const struct sockaddr *sa,int salen) +inline bool kvi_socket_connect(kvi_socket_t sock, const struct sockaddr * sa, int salen) { #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - return (WSAConnect(sock,sa,salen,0,0,0,0) == 0); + return (WSAConnect(sock, sa, salen, 0, 0, 0, 0) == 0); #else - return (::connect(sock,sa,salen) == 0); + return (::connect(sock, sa, salen) == 0); #endif } @@ -228,12 +225,12 @@ inline bool kvi_socket_recoverableError(int err) // You should check kvi_socket_errno() then. // -inline kvi_socket_t kvi_socket_accept(kvi_socket_t sock,struct sockaddr *sa,int * salen) +inline kvi_socket_t kvi_socket_accept(kvi_socket_t sock, struct sockaddr * sa, int * salen) { #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - return (kvi_socket_t)::accept(sock,sa,salen); + return (kvi_socket_t)::accept(sock, sa, salen); #else - return (kvi_socket_t)::accept(sock,sa,(socklen_t *)salen); + return (kvi_socket_t)::accept(sock, sa, (socklen_t *)salen); #endif } @@ -244,9 +241,9 @@ inline kvi_socket_t kvi_socket_accept(kvi_socket_t sock,struct sockaddr *sa,int // You should check kvi_socket_errno() then. // -inline bool kvi_socket_listen(kvi_socket_t sock,int backlog) +inline bool kvi_socket_listen(kvi_socket_t sock, int backlog) { - return (::listen(sock,backlog) == 0); + return (::listen(sock, backlog) == 0); } //================================================================================================ @@ -258,9 +255,9 @@ inline bool kvi_socket_listen(kvi_socket_t sock,int backlog) // or something that is less than 0 in case of error. You should check kvi_socket_errno() then. // -inline int kvi_socket_select(int nhpo,fd_set *r,fd_set *w,fd_set *e,struct timeval * t) +inline int kvi_socket_select(int nhpo, fd_set * r, fd_set * w, fd_set * e, struct timeval * t) { - return ::select(nhpo,r,w,e,t); + return ::select(nhpo, r, w, e, t); } //================================================================================================ @@ -273,13 +270,13 @@ inline int kvi_socket_select(int nhpo,fd_set *r,fd_set *w,fd_set *e,struct timev #define kvi_socket_write kvi_socket_send -inline int kvi_socket_send(kvi_socket_t sock,const void * buf,int size) +inline int kvi_socket_send(kvi_socket_t sock, const void * buf, int size) { - g_uOutgoingTraffic+=size; + g_uOutgoingTraffic += size; #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - return ::send(sock,(const char *)buf,size,0); + return ::send(sock, (const char *)buf, size, 0); #else - return ::send(sock,buf,size,MSG_NOSIGNAL | MSG_DONTWAIT); + return ::send(sock, buf, size, MSG_NOSIGNAL | MSG_DONTWAIT); #endif } @@ -293,15 +290,15 @@ inline int kvi_socket_send(kvi_socket_t sock,const void * buf,int size) #define kvi_socket_read kvi_socket_recv -inline int kvi_socket_recv(kvi_socket_t sock,void * buf,int maxlen) +inline int kvi_socket_recv(kvi_socket_t sock, void * buf, int maxlen) { int iReceived; #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - iReceived = ::recv(sock,(char *)buf,maxlen,0); + iReceived = ::recv(sock, (char *)buf, maxlen, 0); #else - iReceived = ::recv(sock,buf,maxlen,MSG_NOSIGNAL); + iReceived = ::recv(sock, buf, maxlen, MSG_NOSIGNAL); #endif - g_uIncomingTraffic+=iReceived; + g_uIncomingTraffic += iReceived; return iReceived; } @@ -312,12 +309,12 @@ inline int kvi_socket_recv(kvi_socket_t sock,void * buf,int maxlen) // You should check kvi_socket_errno() then. // -inline bool kvi_socket_getsockopt(kvi_socket_t sock,int level,int optname,void *optval,int *optlen) +inline bool kvi_socket_getsockopt(kvi_socket_t sock, int level, int optname, void * optval, int * optlen) { #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - return (::getsockopt(sock,level,optname,(char FAR *)optval,optlen) == 0); + return (::getsockopt(sock, level, optname, (char FAR *)optval, optlen) == 0); #else - return (::getsockopt(sock,level,optname,optval,(socklen_t *)optlen) == 0); + return (::getsockopt(sock, level, optname, optval, (socklen_t *)optlen) == 0); #endif } @@ -328,16 +325,15 @@ inline bool kvi_socket_getsockopt(kvi_socket_t sock,int level,int optname,void * // You should check kvi_socket_errno() then. // -inline bool kvi_socket_setsockopt(kvi_socket_t sock,int level,int optname,const void *optval,int optlen) +inline bool kvi_socket_setsockopt(kvi_socket_t sock, int level, int optname, const void * optval, int optlen) { #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - return (::setsockopt(sock,level,optname,(char FAR *)optval,optlen) == 0); + return (::setsockopt(sock, level, optname, (char FAR *)optval, optlen) == 0); #else - return (::setsockopt(sock,level,optname,optval,optlen) == 0); + return (::setsockopt(sock, level, optname, optval, optlen) == 0); #endif } - //================================================================================================ // kvi_socket_disableNagle // @@ -360,12 +356,12 @@ inline bool kvi_socket_disableNagle(kvi_socket_t sock) // You should check kvi_socket_errno() then. // -inline bool kvi_socket_getsockname(kvi_socket_t sock,struct sockaddr * addr,int * addrlen) +inline bool kvi_socket_getsockname(kvi_socket_t sock, struct sockaddr * addr, int * addrlen) { #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - return (::getsockname(sock,addr,addrlen) == 0); + return (::getsockname(sock, addr, addrlen) == 0); #else - return (::getsockname(sock,addr,(socklen_t *)addrlen) == 0); + return (::getsockname(sock, addr, (socklen_t *)addrlen) == 0); #endif } @@ -378,5 +374,4 @@ inline int kvi_socket_error() #endif } - #endif //_KVI_SOCKET_H_ diff --git a/src/kvilib/net/kvi_sockettype.h b/src/kvilib/net/kvi_sockettype.h index 7e0518443..745fcc4e3 100644 --- a/src/kvilib/net/kvi_sockettype.h +++ b/src/kvilib/net/kvi_sockettype.h @@ -31,13 +31,13 @@ #include "kvi_settings.h" #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - #include - #if defined(COMPILE_ON_WINDOWS) - #include - #endif - typedef SOCKET kvi_socket_t; +#include +#if defined(COMPILE_ON_WINDOWS) +#include +#endif +typedef SOCKET kvi_socket_t; #else - typedef int kvi_socket_t; +typedef int kvi_socket_t; #endif #endif //_KVI_SOCKETTYPE_H_ diff --git a/src/kvilib/system/KviByteOrder.h b/src/kvilib/system/KviByteOrder.h index 9e9a65274..d5bfa9402 100644 --- a/src/kvilib/system/KviByteOrder.h +++ b/src/kvilib/system/KviByteOrder.h @@ -41,14 +41,14 @@ namespace KviByteOrder inline kvi_u64_t swap64(kvi_u64_t i) { // abcdefgh to hgfedcba - return ((i << 56) | /* h to a */ - ((i & 0xff00) << 40) | /* g to b */ - ((i & 0xff0000) << 24) | /* f to c */ - ((i & 0xff000000) << 8) | /* e to d */ - ((i >> 8) & 0xff000000) | /* d to e */ - ((i >> 24) & 0xff0000) | /* c to f */ - ((i >> 40) & 0xff00) | /* b to g */ - (i >> 56)); /* a to h */ + return ((i << 56) | /* h to a */ + ((i & 0xff00) << 40) | /* g to b */ + ((i & 0xff0000) << 24) | /* f to c */ + ((i & 0xff000000) << 8) | /* e to d */ + ((i >> 8) & 0xff000000) | /* d to e */ + ((i >> 24) & 0xff0000) | /* c to f */ + ((i >> 40) & 0xff00) | /* b to g */ + (i >> 56)); /* a to h */ } /** @@ -75,18 +75,17 @@ namespace KviByteOrder return ((i << 8) | (i >> 8)); } - - // - // Byte Orders Reminder - // Number 0xaabbccdd - // Little Endian Stores 0xdd 0xcc 0xbb 0xaa - // Big Endian Stores 0xaa 0xbb 0xcc 0xdd - // Perverse Middle Endian 0xbb 0xaa 0xdd 0xcc or another braindamaged combination (unsupported) - // Network Byte Order is Big Endian - // Intel Stuff uses Little Endian - // PPC is Big Endian - // Universal binaries on MacOSX use both Big and Little Endian - // +// +// Byte Orders Reminder +// Number 0xaabbccdd +// Little Endian Stores 0xdd 0xcc 0xbb 0xaa +// Big Endian Stores 0xaa 0xbb 0xcc 0xdd +// Perverse Middle Endian 0xbb 0xaa 0xdd 0xcc or another braindamaged combination (unsupported) +// Network Byte Order is Big Endian +// Intel Stuff uses Little Endian +// PPC is Big Endian +// Universal binaries on MacOSX use both Big and Little Endian +// #ifdef BIG_ENDIAN_MACHINE_BYTE_ORDER @@ -180,12 +179,10 @@ namespace KviByteOrder return u; } - - #else //!BIG_ENDIAN_MACHINE_BYTE_ORDER - // We ASSUME that the local cpu is little endian.. if it isn't.. well :) - #define LOCAL_CPU_LITTLE_ENDIAN 1 +// We ASSUME that the local cpu is little endian.. if it isn't.. well :) +#define LOCAL_CPU_LITTLE_ENDIAN 1 inline kvi_u16_t localCpuToLittleEndian16(kvi_u16_t u) { @@ -247,8 +244,6 @@ namespace KviByteOrder return swap64(u); } - - inline kvi_u16_t localCpuToNetworkByteOrder16(kvi_u16_t u) { return swap16(u); @@ -283,10 +278,4 @@ namespace KviByteOrder } // namespace KviByteOrder - - - - - - #endif // !_KVI_BYTEORDER_H_ diff --git a/src/kvilib/system/KviEnvironment.cpp b/src/kvilib/system/KviEnvironment.cpp index 9615484cd..91cf19765 100644 --- a/src/kvilib/system/KviEnvironment.cpp +++ b/src/kvilib/system/KviEnvironment.cpp @@ -31,22 +31,22 @@ namespace KviEnvironment { -#if !defined(COMPILE_ON_WINDOWS) && ! defined(COMPILE_ON_MINGW) +#if !defined(COMPILE_ON_WINDOWS) && !defined(COMPILE_ON_MINGW) #ifdef HAVE_SETENV -bool setVariable(const char * name,const char * value) -{ - return (setenv(name,value,1) == 0); + bool setVariable(const char * name, const char * value) + { + return (setenv(name, value, 1) == 0); #else - #ifdef HAVE_PUTENV -bool setVariable(const char * name,const char * value) -{ +#ifdef HAVE_PUTENV + bool setVariable(const char * name, const char * value) + { int iLen1 = kvi_strLen(name); int iLen2 = kvi_strLen(value); char * buf = (char *)KviMemory::allocate(iLen1 + iLen2 + 2); - KviMemory::move(buf,name,iLen1); + KviMemory::move(buf, name, iLen1); *(buf + iLen1) = '='; - KviMemory::move(buf + iLen1 + 1,value,iLen2); + KviMemory::move(buf + iLen1 + 1, value, iLen2); *(buf + iLen1 + iLen2 + 1) = '\0'; int iRet = putenv(buf); if(iRet != 0) @@ -55,32 +55,34 @@ bool setVariable(const char * name,const char * value) return false; } return true; - #else -bool setVariable(const char *,const char *) -{ +#else + bool setVariable(const char *, const char *) + { // no setenv, no putenv.. what the hell of system is this ? return false; - #endif #endif -} +#endif + } #ifdef HAVE_UNSETENV -void unsetVariable(const char * name) -{ - unsetenv(name); + void unsetVariable(const char * name) + { + unsetenv(name); #else - #ifdef HAVE_PUTENV -void unsetVariable(const char * name) -{ +#ifdef HAVE_PUTENV + void unsetVariable(const char * name) + { int iLen1 = kvi_strLen(name); char * buf = (char *)KviMemory::allocate(iLen1 + 1); - KviMemory::move(buf,name,iLen1); + KviMemory::move(buf, name, iLen1); *(buf + iLen1) = '\0'; int iRet = putenv(buf); if(iRet != 0) { KviMemory::free(buf); - } else { + } + else + { // hmmm if(getVariable(name) == 0) { @@ -89,15 +91,13 @@ void unsetVariable(const char * name) KviMemory::free(buf); } // else this system sux } - #else -void unsetVariable(const char *) -{ - // no setenv, no putenv.. what the hell of system is this ? - #endif +#else + void unsetVariable(const char *) + { +// no setenv, no putenv.. what the hell of system is this ? #endif -} +#endif + } #endif //COMPILE_ON_WINDOWS - } - diff --git a/src/kvilib/system/KviEnvironment.h b/src/kvilib/system/KviEnvironment.h index b339d2386..76dd094e2 100644 --- a/src/kvilib/system/KviEnvironment.h +++ b/src/kvilib/system/KviEnvironment.h @@ -36,7 +36,7 @@ #include #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - #include +#include #endif namespace KviEnvironment @@ -54,14 +54,14 @@ namespace KviEnvironment #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - inline void setVariable(const char * szName,const char * szValue) + inline void setVariable(const char * szName, const char * szValue) { - SetEnvironmentVariable(szName,szValue); + SetEnvironmentVariable(szName, szValue); } inline void unsetVariable(const char * name) { - SetEnvironmentVariable(name,NULL); + SetEnvironmentVariable(name, NULL); } #else /** @@ -79,7 +79,6 @@ namespace KviEnvironment */ KVILIB_API void unsetVariable(const char * name); #endif - } #endif //_KVI_ENV_H_ diff --git a/src/kvilib/system/KviThread.cpp b/src/kvilib/system/KviThread.cpp index 9d3b7fb9b..bf8ece991 100644 --- a/src/kvilib/system/KviThread.cpp +++ b/src/kvilib/system/KviThread.cpp @@ -22,20 +22,18 @@ // //============================================================================= - - #ifndef _GNU_SOURCE - #define _GNU_SOURCE +#define _GNU_SOURCE #endif #include "KviThread.h" #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - #include // for _pipe() +#include // for _pipe() #else - #include //for pipe() and other tricks - #include // on Windows it is useless - #include +#include //for pipe() and other tricks +#include // on Windows it is useless +#include #endif #include @@ -47,58 +45,58 @@ #include #include - static void kvi_threadIgnoreSigalarm() { - // On Windows this stuff is useless anyway +// On Windows this stuff is useless anyway #ifdef COMPILE_IGNORE_SIGALARM - #if !defined(COMPILE_ON_WINDOWS) && !defined(COMPILE_ON_MINGW) - // Funky hack for some Solaris machines (maybe others ?) - // For an obscure (at least to me) reason - // when using threads,some part of the system - // starts kidding us by sending a SIGALRM in apparently - // "random" circumstances. (Xlib ?) (XServer ?) - // The default action for SIGALRM is to exit the application. - // Could not guess more about this stuff... - // Here goes a "blind" hack for that. - - // Update: now we have an explanation too - // - // From: "Andre Stechert" (astechert at email dot com) - // To: pragma at kvirc dot net - // Subject: sigalarm on solaris ... - // Date: 26/7/2005 09:36 - - // Hi, - //    I noticed in your readme that you were having problems with sigalarm - // in your solaris port and you weren't sure why.  I quickly scanned your - // source code and noticed that you use usleep and threads.  That's the problem, - // if you haven't already figured it out. On Solaris, usleep is implemented with - // SIGALARM. So is threading. So if you the active thread changes while - // a usleep is in progress, bang, the process is dead. - // - // There is no real feedback on this at the moment: if somebody - // experiences the problems please drop me a mail at pragma at kvirc dot net - // and we'll try to look for a better solution. - // If the explanation is correct then KVIrc could even lock up on those machines - // (never returning from an usleep() call ?)... - - struct sigaction ignr_act; - ignr_act.sa_handler = SIG_IGN; - sigemptyset(&ignr_act.sa_mask); - - #ifdef SA_NOMASK - ignr_act.sa_flags = SA_NOMASK; - #else - ignr_act.sa_flags = 0; - #endif - - #ifdef SA_RESTART - ignr_act.sa_flags |= SA_RESTART; - #endif - - if(sigaction(SIGALRM,&ignr_act,0) == -1)qDebug("Failed to set SIG_IGN for SIGALRM."); - #endif +#if !defined(COMPILE_ON_WINDOWS) && !defined(COMPILE_ON_MINGW) + // Funky hack for some Solaris machines (maybe others ?) + // For an obscure (at least to me) reason + // when using threads,some part of the system + // starts kidding us by sending a SIGALRM in apparently + // "random" circumstances. (Xlib ?) (XServer ?) + // The default action for SIGALRM is to exit the application. + // Could not guess more about this stuff... + // Here goes a "blind" hack for that. + + // Update: now we have an explanation too + // + // From: "Andre Stechert" (astechert at email dot com) + // To: pragma at kvirc dot net + // Subject: sigalarm on solaris ... + // Date: 26/7/2005 09:36 + + // Hi, + //    I noticed in your readme that you were having problems with sigalarm + // in your solaris port and you weren't sure why.  I quickly scanned your + // source code and noticed that you use usleep and threads.  That's the problem, + // if you haven't already figured it out. On Solaris, usleep is implemented with + // SIGALARM. So is threading. So if you the active thread changes while + // a usleep is in progress, bang, the process is dead. + // + // There is no real feedback on this at the moment: if somebody + // experiences the problems please drop me a mail at pragma at kvirc dot net + // and we'll try to look for a better solution. + // If the explanation is correct then KVIrc could even lock up on those machines + // (never returning from an usleep() call ?)... + + struct sigaction ignr_act; + ignr_act.sa_handler = SIG_IGN; + sigemptyset(&ignr_act.sa_mask); + +#ifdef SA_NOMASK + ignr_act.sa_flags = SA_NOMASK; +#else + ignr_act.sa_flags = 0; +#endif + +#ifdef SA_RESTART + ignr_act.sa_flags |= SA_RESTART; +#endif + + if(sigaction(SIGALRM, &ignr_act, 0) == -1) + qDebug("Failed to set SIG_IGN for SIGALRM."); +#endif #endif } @@ -113,25 +111,26 @@ static void kvi_threadSigpipeHandler(int) static void kvi_threadCatchSigpipe() { - // On windows this stuff is useless +// On windows this stuff is useless #if !defined(COMPILE_ON_WINDOWS) && !defined(COMPILE_ON_MINGW) struct sigaction act; - act.sa_handler=&kvi_threadSigpipeHandler; + act.sa_handler = &kvi_threadSigpipeHandler; sigemptyset(&(act.sa_mask)); sigaddset(&(act.sa_mask), SIGPIPE); - // CC: take care of SunOS which automatically restarts interrupted system - // calls (and thus does not have SA_RESTART) +// CC: take care of SunOS which automatically restarts interrupted system +// calls (and thus does not have SA_RESTART) #ifdef SA_NOMASK - act.sa_flags = SA_NOMASK; + act.sa_flags = SA_NOMASK; #else - act.sa_flags = 0; + act.sa_flags = 0; #endif #ifdef SA_RESTART - act.sa_flags |= SA_RESTART; + act.sa_flags |= SA_RESTART; #endif - if(sigaction(SIGPIPE,&act,0L) == -1)qDebug("Failed to set the handler for SIGPIPE."); + if(sigaction(SIGPIPE, &act, 0L) == -1) + qDebug("Failed to set the handler for SIGPIPE."); #endif } @@ -143,8 +142,6 @@ static void kvi_threadInitialize() #endif } - - #define KVI_THREAD_PIPE_SIDE_MASTER 0 #define KVI_THREAD_PIPE_SIDE_SLAVE 1 @@ -167,9 +164,10 @@ void KviThreadManager::globalDestroy() } KviThreadManager::KviThreadManager() -: QObject() + : QObject() { - if(g_pThreadManager)qDebug("Hey... what are ya doing?"); + if(g_pThreadManager) + qDebug("Hey... what are ya doing?"); m_pMutex = new KviMutex(); m_pThreadList = new KviPointerList; @@ -186,44 +184,43 @@ KviThreadManager::KviThreadManager() if(pipe(m_fd) != 0) { - qDebug("Oops! Thread manager pipe creation failed (%s)",KviError::getDescription(KviError::translateSystemError(errno)).toUtf8().data()); + qDebug("Oops! Thread manager pipe creation failed (%s)", KviError::getDescription(KviError::translateSystemError(errno)).toUtf8().data()); } - if(fcntl(m_fd[KVI_THREAD_PIPE_SIDE_SLAVE],F_SETFL,O_NONBLOCK) == -1) + if(fcntl(m_fd[KVI_THREAD_PIPE_SIDE_SLAVE], F_SETFL, O_NONBLOCK) == -1) { - qDebug("Oops! Thread manager slave pipe initialisation failed (%s)",KviError::getDescription(KviError::translateSystemError(errno)).toUtf8().data()); + qDebug("Oops! Thread manager slave pipe initialisation failed (%s)", KviError::getDescription(KviError::translateSystemError(errno)).toUtf8().data()); } - if(fcntl(m_fd[KVI_THREAD_PIPE_SIDE_MASTER],F_SETFL,O_NONBLOCK) == -1) + if(fcntl(m_fd[KVI_THREAD_PIPE_SIDE_MASTER], F_SETFL, O_NONBLOCK) == -1) { - qDebug("Oops! Thread manager master pipe initialisation failed (%s)",KviError::getDescription(KviError::translateSystemError(errno)).toUtf8().data()); + qDebug("Oops! Thread manager master pipe initialisation failed (%s)", KviError::getDescription(KviError::translateSystemError(errno)).toUtf8().data()); } - m_pSn = new QSocketNotifier(m_fd[KVI_THREAD_PIPE_SIDE_MASTER],QSocketNotifier::Read); - connect(m_pSn,SIGNAL(activated(int)),this,SLOT(eventsPending(int))); + m_pSn = new QSocketNotifier(m_fd[KVI_THREAD_PIPE_SIDE_MASTER], QSocketNotifier::Read); + connect(m_pSn, SIGNAL(activated(int)), this, SLOT(eventsPending(int))); m_pSn->setEnabled(true); #endif } - KviThreadManager::~KviThreadManager() { m_pMutex->lock(); // Terminate all the slaves - while(KviThread *t = m_pThreadList->first()) + while(KviThread * t = m_pThreadList->first()) { m_pMutex->unlock(); delete t; m_pMutex->lock(); } - // there are no more child threads - // thus no more slave events are sent. - // Disable the socket notifier, we no longer need it +// there are no more child threads +// thus no more slave events are sent. +// Disable the socket notifier, we no longer need it #if !defined(COMPILE_ON_WINDOWS) && !defined(COMPILE_ON_MINGW) m_pSn->setEnabled(false); delete m_pSn; - m_pSn = 0; + m_pSn = 0; #endif // we're no longer in this world @@ -234,7 +231,7 @@ KviThreadManager::~KviThreadManager() close(m_fd[KVI_THREAD_PIPE_SIDE_SLAVE]); close(m_fd[KVI_THREAD_PIPE_SIDE_MASTER]); // Kill the pending events - while(KviThreadPendingEvent *ev = m_pEventQueue->first()) + while(KviThreadPendingEvent * ev = m_pEventQueue->first()) { delete ev->e; m_pEventQueue->removeFirst(); @@ -257,7 +254,8 @@ KviThreadManager::~KviThreadManager() void KviThreadManager::killPendingEvents(QObject * receiver) { #if !defined(COMPILE_ON_WINDOWS) && !defined(COMPILE_ON_MINGW) - if(!g_pThreadManager)return; + if(!g_pThreadManager) + return; g_pThreadManager->killPendingEventsByReceiver(receiver); #endif } @@ -268,11 +266,12 @@ void KviThreadManager::killPendingEventsByReceiver(QObject * receiver) KviPointerList l; l.setAutoDelete(false); m_pMutex->lock(); - for(KviThreadPendingEvent * ev = m_pEventQueue->first();ev;ev = m_pEventQueue->next()) + for(KviThreadPendingEvent * ev = m_pEventQueue->first(); ev; ev = m_pEventQueue->next()) { - if(ev->o == receiver)l.append(ev); + if(ev->o == receiver) + l.append(ev); } - for(KviThreadPendingEvent * ev = l.first();ev;ev = l.next()) + for(KviThreadPendingEvent * ev = l.first(); ev; ev = l.next()) { delete ev->e; m_pEventQueue->removeRef(ev); @@ -281,24 +280,24 @@ void KviThreadManager::killPendingEventsByReceiver(QObject * receiver) #endif } -void KviThreadManager::registerSlaveThread(KviThread *t) +void KviThreadManager::registerSlaveThread(KviThread * t) { m_pMutex->lock(); m_pThreadList->append(t); m_pMutex->unlock(); } -void KviThreadManager::unregisterSlaveThread(KviThread *t) +void KviThreadManager::unregisterSlaveThread(KviThread * t) { m_pMutex->lock(); m_pThreadList->removeRef(t); m_pMutex->unlock(); } -void KviThreadManager::postSlaveEvent(QObject *o,QEvent *e) +void KviThreadManager::postSlaveEvent(QObject * o, QEvent * e) { #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - QApplication::postEvent(o,e); // we believe this to be thread-safe + QApplication::postEvent(o, e); // we believe this to be thread-safe #else KviThreadPendingEvent * ev = new KviThreadPendingEvent; ev->o = o; @@ -322,9 +321,9 @@ void KviThreadManager::postSlaveEvent(QObject *o,QEvent *e) m_pMutex->unlock(); - // WARNING : This will fail if for some reason - // the master thread gets here! It will wait indefinitely for itself - // if(pthread_self() != m_hMasterThread) ... ???? +// WARNING : This will fail if for some reason +// the master thread gets here! It will wait indefinitely for itself +// if(pthread_self() != m_hMasterThread) ... ???? #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) ::Sleep(1); // 1ms @@ -341,14 +340,16 @@ void KviThreadManager::postSlaveEvent(QObject *o,QEvent *e) { // I don't know if writing to a pipe is reentrant // thus, in doubt, the write is interlocked (it's non blocking anyway) - int written = write(m_fd[KVI_THREAD_PIPE_SIDE_SLAVE],"?",1); + int written = write(m_fd[KVI_THREAD_PIPE_SIDE_SLAVE], "?", 1); if(written < 1) { // ops.. failed to write down the event.. // this is quite irritating now... qDebug("Oops! Failed to write down the trigger"); // FIXME: maybe a single shot timer ? - } else { + } + else + { m_iTriggerCount++; } } // else no need to trigger : there is a wakeup pending in there @@ -363,23 +364,24 @@ void KviThreadManager::eventsPending(int fd) #if !defined(COMPILE_ON_WINDOWS) && !defined(COMPILE_ON_MINGW) char buf[10]; // do we need to check for errors here ? - int readed = read(fd,buf,10); + int readed = read(fd, buf, 10); m_pMutex->lock(); // welcome to the critical section :) // grab the first event in the queue - while(KviThreadPendingEvent *ev = m_pEventQueue->first()) + while(KviThreadPendingEvent * ev = m_pEventQueue->first()) { // allow the other threads to post events: // unlock the event queue m_pMutex->unlock(); // let the app process the event // DANGER ! - QApplication::postEvent(ev->o,ev->e); + QApplication::postEvent(ev->o, ev->e); // jump out of the loop if we have been destroyed - if(!g_pThreadManager)return; + if(!g_pThreadManager) + return; // ufff... we're still alive :))) // regrab the event queue @@ -394,7 +396,9 @@ void KviThreadManager::eventsPending(int fd) if(readed < m_iTriggerCount) { m_iTriggerCount -= readed; - } else { + } + else + { m_iTriggerCount = 0; } } @@ -425,12 +429,13 @@ void KviThreadManager::threadLeftWaitState() } #if !defined(COMPILE_ON_WINDOWS) && !defined(COMPILE_ON_MINGW) - bool KviMutex::locked() - { - if(!kvi_threadMutexTryLock(&m_mutex))return true; - kvi_threadMutexUnlock(&m_mutex); - return false; - } +bool KviMutex::locked() +{ + if(!kvi_threadMutexTryLock(&m_mutex)) + return true; + kvi_threadMutexUnlock(&m_mutex); + return false; +} #endif #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) @@ -459,11 +464,11 @@ KviThread::KviThread() KviThread::~KviThread() { -// qDebug(">> KviThread::~KviThread() : (this = %d)",this); + // qDebug(">> KviThread::~KviThread() : (this = %d)",this); wait(); delete m_pRunningMutex; g_pThreadManager->unregisterSlaveThread(this); -// qDebug("<< KviThread::~KviThread() : (this = %d)",this); + // qDebug("<< KviThread::~KviThread() : (this = %d)",this); } void KviThread::setRunning(bool bRunning) @@ -501,24 +506,26 @@ bool KviThread::isStartingUp() bool KviThread::start() { // We're on the master side thread here! - if(isStartingUp() || isRunning())return false; + if(isStartingUp() || isRunning()) + return false; setStartingUp(true); - return kvi_threadCreate(&m_thread,internal_start_thread,this); + return kvi_threadCreate(&m_thread, internal_start_thread, this); } void KviThread::wait() { // We're on the master side here...and we're waiting the slave to exit -// qDebug(">> KviThread::wait() (this=%d)",this); - while(isStartingUp())usleep(500); // sleep 500 microseconds -// qDebug("!! KviThread::wait() (this=%d)",this); + // qDebug(">> KviThread::wait() (this=%d)",this); + while(isStartingUp()) + usleep(500); // sleep 500 microseconds + // qDebug("!! KviThread::wait() (this=%d)",this); g_pThreadManager->threadEnteredWaitState(); while(isRunning()) { usleep(500); // sleep 500 microseconds } g_pThreadManager->threadLeftWaitState(); -// qDebug("<< KviThread::wait() (this=%d)",this); + // qDebug("<< KviThread::wait() (this=%d)",this); } void KviThread::exit() @@ -531,20 +538,21 @@ void KviThread::exit() void KviThread::internalThreadRun_doNotTouchThis() { // we're on the slave thread here! -// qDebug(">> KviThread::internalRun (this=%d)",this); + // qDebug(">> KviThread::internalRun (this=%d)",this); setRunning(true); setStartingUp(false); kvi_threadInitialize(); run(); setRunning(false); -// qDebug("<< KviThread::internalRun (this=%d",this); + // qDebug("<< KviThread::internalRun (this=%d",this); } void KviThread::usleep(unsigned long usec) { #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) int s = usec / 1000; - if(s < 1)s = 1; + if(s < 1) + s = 1; ::Sleep(s); // Sleep one millisecond...this is the best that we can do #else // FIXME : use nanosleep() ? @@ -571,16 +579,14 @@ void KviThread::sleep(unsigned long sec) #endif } -void KviThread::postEvent(QObject * o,QEvent *e) +void KviThread::postEvent(QObject * o, QEvent * e) { // slave side - g_pThreadManager->postSlaveEvent(o,e); + g_pThreadManager->postSlaveEvent(o, e); } - - KviSensitiveThread::KviSensitiveThread() -: KviThread() + : KviThread() { m_pLocalEventQueueMutex = new KviMutex(); m_pLocalEventQueue = new KviPointerList; @@ -589,22 +595,22 @@ KviSensitiveThread::KviSensitiveThread() KviSensitiveThread::~KviSensitiveThread() { -// qDebug("Entering KviSensitiveThread::~KviSensitiveThread (this=%d)",this); + // qDebug("Entering KviSensitiveThread::~KviSensitiveThread (this=%d)",this); terminate(); -// qDebug("KviSensitiveThread::~KviSensitiveThread : terminate called (This=%d)",this); + // qDebug("KviSensitiveThread::~KviSensitiveThread : terminate called (This=%d)",this); m_pLocalEventQueueMutex->lock(); m_pLocalEventQueue->setAutoDelete(true); delete m_pLocalEventQueue; m_pLocalEventQueue = 0; m_pLocalEventQueueMutex->unlock(); delete m_pLocalEventQueueMutex; - m_pLocalEventQueueMutex = 0; -// qDebug("Exiting KviSensitiveThread::~KviSensitiveThread (this=%d)",this); + m_pLocalEventQueueMutex = 0; + // qDebug("Exiting KviSensitiveThread::~KviSensitiveThread (this=%d)",this); } -void KviSensitiveThread::enqueueEvent(KviThreadEvent *e) +void KviSensitiveThread::enqueueEvent(KviThreadEvent * e) { -// qDebug(">>> KviSensitiveThread::enqueueEvent() (this=%d)",this); + // qDebug(">>> KviSensitiveThread::enqueueEvent() (this=%d)",this); m_pLocalEventQueueMutex->lock(); if(!m_pLocalEventQueue) { @@ -615,27 +621,27 @@ void KviSensitiveThread::enqueueEvent(KviThreadEvent *e) } m_pLocalEventQueue->append(e); m_pLocalEventQueueMutex->unlock(); -// qDebug("<<< KviSensitiveThread::enqueueEvent() (this=%d)",this); + // qDebug("<<< KviSensitiveThread::enqueueEvent() (this=%d)",this); } KviThreadEvent * KviSensitiveThread::dequeueEvent() { -// qDebug(">>> KviSensitiveThread::dequeueEvent() (this=%d)",this); + // qDebug(">>> KviSensitiveThread::dequeueEvent() (this=%d)",this); KviThreadEvent * ret; m_pLocalEventQueueMutex->lock(); ret = m_pLocalEventQueue->first(); - if(ret)m_pLocalEventQueue->removeFirst(); + if(ret) + m_pLocalEventQueue->removeFirst(); m_pLocalEventQueueMutex->unlock(); -// qDebug("<<< KviSensitiveThread::dequeueEvent() (this=%d)",this); + // qDebug("<<< KviSensitiveThread::dequeueEvent() (this=%d)",this); return ret; } void KviSensitiveThread::terminate() { -// qDebug("Entering KviSensitiveThread::terminate (this=%d)",this); + // qDebug("Entering KviSensitiveThread::terminate (this=%d)",this); enqueueEvent(new KviThreadEvent(KVI_THREAD_EVENT_TERMINATE)); -// qDebug("KviSensitiveThread::terminate() : event enqueued waiting (this=%d)",this); + // qDebug("KviSensitiveThread::terminate() : event enqueued waiting (this=%d)",this); wait(); -// qDebug("Exiting KviSensitiveThread::terminate (this=%d)",this); + // qDebug("Exiting KviSensitiveThread::terminate (this=%d)",this); } - diff --git a/src/kvilib/system/KviThread.h b/src/kvilib/system/KviThread.h index cdd339ad7..732fa9e65 100644 --- a/src/kvilib/system/KviThread.h +++ b/src/kvilib/system/KviThread.h @@ -39,109 +39,108 @@ class QSocketNotifier; // HANDLE WITH CARE // - // Portability stuff #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - #include - // Windoze thread abstraction layer - #define kvi_mutex_t HANDLE - inline void kvi_threadMutexInit(kvi_mutex_t * _pMutex_t) - { - *_pMutex_t = CreateMutex(0,0,NULL); - } - #define kvi_threadMutexLock(_pMutex_t) WaitForSingleObject(*_pMutex_t,INFINITE) - #define kvi_threadMutexUnlock(_pMutex_t) ReleaseMutex(*_pMutex_t) - #define kvi_threadMutexDestroy(_pMutex_t) CloseHandle(*_pMutex_t) - inline bool kvi_threadMutexTryLock(kvi_mutex_t *_pMutex_t) - { - return (WaitForSingleObject(*_pMutex_t,0) == WAIT_OBJECT_0); - } +#include +// Windoze thread abstraction layer +#define kvi_mutex_t HANDLE +inline void kvi_threadMutexInit(kvi_mutex_t * _pMutex_t) +{ + *_pMutex_t = CreateMutex(0, 0, NULL); +} +#define kvi_threadMutexLock(_pMutex_t) WaitForSingleObject(*_pMutex_t, INFINITE) +#define kvi_threadMutexUnlock(_pMutex_t) ReleaseMutex(*_pMutex_t) +#define kvi_threadMutexDestroy(_pMutex_t) CloseHandle(*_pMutex_t) +inline bool kvi_threadMutexTryLock(kvi_mutex_t * _pMutex_t) +{ + return (WaitForSingleObject(*_pMutex_t, 0) == WAIT_OBJECT_0); +} - #define kvi_thread_t HANDLE +#define kvi_thread_t HANDLE - inline bool kvi_threadCreate(kvi_thread_t *t,LPTHREAD_START_ROUTINE start_routine,void * arg) - { - DWORD dwThreadId; - *t = CreateThread(NULL,0,start_routine,arg,0,&dwThreadId); - return (*t != NULL); - } +inline bool kvi_threadCreate(kvi_thread_t * t, LPTHREAD_START_ROUTINE start_routine, void * arg) +{ + DWORD dwThreadId; + *t = CreateThread(NULL, 0, start_routine, arg, 0, &dwThreadId); + return (*t != NULL); +} - #define kvi_threadExit() ExitThread(0) +#define kvi_threadExit() ExitThread(0) #else - #ifdef COMPILE_THREADS_USE_POSIX - // Glibc pthread implementation - - #include - #include // for EBUSY - - // Mutex stuff - #define kvi_mutex_t pthread_mutex_t - #define kvi_threadMutexInit(_pMutex_t) pthread_mutex_init(_pMutex_t,0) - #define kvi_threadMutexLock(_pMutex_t) pthread_mutex_lock(_pMutex_t) - #define kvi_threadMutexUnlock(_pMutex_t) pthread_mutex_unlock(_pMutex_t) - #define kvi_threadMutexDestroy(_pMutex_t) pthread_mutex_destroy(_pMutex_t) - inline bool kvi_threadMutexTryLock(kvi_mutex_t *_pMutex_t) - { - return (pthread_mutex_trylock(_pMutex_t) != EBUSY); - } - // Actually unused - // #define kvi_threadMutexTryLock(_pMutex_t) pthread_mutex_trylock(_pMutex_t) - - // Thread stuff - #define kvi_thread_t pthread_t - - inline bool kvi_threadCreate(kvi_thread_t *t,void * (*start_routine)(void *),void * arg) - { - pthread_attr_t a; - pthread_attr_init(&a); - pthread_attr_setinheritsched(&a,PTHREAD_INHERIT_SCHED); - pthread_attr_setdetachstate(&a,PTHREAD_CREATE_DETACHED); - - int ret = pthread_create(t,&a,start_routine,arg); - - pthread_attr_destroy(&a); - return (ret == 0); - } - - // We don't care about exit codes at all - #define kvi_threadExit() pthread_exit(0) - #else - #ifdef COMPILE_THREADS_USE_SOLARIS_LIBTHREAD - // Native solaris implementation - #include - #include - #include - - // Mutex stuff - #define kvi_mutex_t mutex_t - #define kvi_threadMutexInit(_pMutex_t) mutex_init(_pMutex_t,0,0) - #define kvi_threadMutexLock(_pMutex_t) mutex_lock(_pMutex_t) - #define kvi_threadMutexUnlock(_pMutex_t) mutex_unlock(_pMutex_t) - #define kvi_threadMutexDestroy(_pMutex_t) mutex_destroy(_pMutex_t) - inline bool kvi_threadMutexTryLock(kvi_mutex_t *_pMutex_t) - { - return (mutex_trylock(_pMutex_t) != EBUSY); - }; - // Actually unused - // #define kvi_threadMutexTryLock(_pMutex_t) mutex_trylock(_pMutex_t) - - // Thread stuff - #define kvi_thread_t thread_t - - inline bool kvi_threadCreate(kvi_thread_t *t,void * (*start_routine)(void *),void *arg) - { - return (thr_create(0,0,start_routine,arg,THR_DETACHED,t) == 0); - } - - // We don't care about exit codes at all - #define kvi_threadExit() thr_exit(0) - #else +#ifdef COMPILE_THREADS_USE_POSIX +// Glibc pthread implementation + +#include +#include // for EBUSY + +// Mutex stuff +#define kvi_mutex_t pthread_mutex_t +#define kvi_threadMutexInit(_pMutex_t) pthread_mutex_init(_pMutex_t, 0) +#define kvi_threadMutexLock(_pMutex_t) pthread_mutex_lock(_pMutex_t) +#define kvi_threadMutexUnlock(_pMutex_t) pthread_mutex_unlock(_pMutex_t) +#define kvi_threadMutexDestroy(_pMutex_t) pthread_mutex_destroy(_pMutex_t) +inline bool kvi_threadMutexTryLock(kvi_mutex_t * _pMutex_t) +{ + return (pthread_mutex_trylock(_pMutex_t) != EBUSY); +} +// Actually unused +// #define kvi_threadMutexTryLock(_pMutex_t) pthread_mutex_trylock(_pMutex_t) + +// Thread stuff +#define kvi_thread_t pthread_t + +inline bool kvi_threadCreate(kvi_thread_t * t, void * (*start_routine)(void *), void * arg) +{ + pthread_attr_t a; + pthread_attr_init(&a); + pthread_attr_setinheritsched(&a, PTHREAD_INHERIT_SCHED); + pthread_attr_setdetachstate(&a, PTHREAD_CREATE_DETACHED); + + int ret = pthread_create(t, &a, start_routine, arg); + + pthread_attr_destroy(&a); + return (ret == 0); +} + +// We don't care about exit codes at all +#define kvi_threadExit() pthread_exit(0) +#else +#ifdef COMPILE_THREADS_USE_SOLARIS_LIBTHREAD +// Native solaris implementation +#include +#include +#include + +// Mutex stuff +#define kvi_mutex_t mutex_t +#define kvi_threadMutexInit(_pMutex_t) mutex_init(_pMutex_t, 0, 0) +#define kvi_threadMutexLock(_pMutex_t) mutex_lock(_pMutex_t) +#define kvi_threadMutexUnlock(_pMutex_t) mutex_unlock(_pMutex_t) +#define kvi_threadMutexDestroy(_pMutex_t) mutex_destroy(_pMutex_t) +inline bool kvi_threadMutexTryLock(kvi_mutex_t * _pMutex_t) +{ + return (mutex_trylock(_pMutex_t) != EBUSY); +}; +// Actually unused +// #define kvi_threadMutexTryLock(_pMutex_t) mutex_trylock(_pMutex_t) + +// Thread stuff +#define kvi_thread_t thread_t + +inline bool kvi_threadCreate(kvi_thread_t * t, void * (*start_routine)(void *), void * arg) +{ + return (thr_create(0, 0, start_routine, arg, THR_DETACHED, t) == 0); +} + +// We don't care about exit codes at all +#define kvi_threadExit() thr_exit(0) +#else // FIXME: #warning "Missing a decent thread implementation: we're going to fail, sorry!" - #endif - #endif +#endif +#endif #endif class KVILIB_API KviMutex : public KviHeapObject @@ -149,24 +148,34 @@ class KVILIB_API KviMutex : public KviHeapObject private: kvi_mutex_t m_mutex; #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - bool m_bLocked; + bool m_bLocked; #endif public: - KviMutex(){ kvi_threadMutexInit(&m_mutex); }; - virtual ~KviMutex(){ kvi_threadMutexDestroy(&m_mutex); }; + KviMutex() { kvi_threadMutexInit(&m_mutex); }; + virtual ~KviMutex() { kvi_threadMutexDestroy(&m_mutex); }; public: #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - void lock(){ kvi_threadMutexLock(&m_mutex); m_bLocked = true; }; - void unlock(){ m_bLocked = false; kvi_threadMutexUnlock(&m_mutex); }; - bool locked(){ return m_bLocked; }; + void lock() + { + kvi_threadMutexLock(&m_mutex); + m_bLocked = true; + }; + void unlock() + { + m_bLocked = false; + kvi_threadMutexUnlock(&m_mutex); + }; + bool locked() { return m_bLocked; }; #else - void lock(){ kvi_threadMutexLock(&m_mutex); }; - void unlock(){ kvi_threadMutexUnlock(&m_mutex); }; + void lock() + { + kvi_threadMutexLock(&m_mutex); + }; + void unlock() { kvi_threadMutexUnlock(&m_mutex); }; bool locked(); #endif }; - // simple thread class implementation // this is also called "Blind" thread class @@ -175,12 +184,14 @@ class KVILIB_API KviThread : public KviHeapObject public: KviThread(); virtual ~KviThread(); + private: - kvi_thread_t m_thread; - bool m_bRunning; - bool m_bStartingUp; - KviMutex * m_pRunningMutex; + kvi_thread_t m_thread; + bool m_bRunning; + bool m_bStartingUp; + KviMutex * m_pRunningMutex; KviPointerList * m_pLocalEventQueue; + public: // public KviThread interface // HANDLE WITH CARE @@ -204,6 +215,7 @@ public: static void sleep(unsigned long sec); static void msleep(unsigned long msec); static void usleep(unsigned long usec); + protected: // protected KviThread interface // HANDLE WITH CARE TOO! @@ -214,7 +226,8 @@ protected: void exit(); // The tricky part: threadsafe event dispatching // Slave thread -> main thread objects - void postEvent(QObject *o,QEvent *e); + void postEvent(QObject * o, QEvent * e); + private: void setRunning(bool bRunning); void setStartingUp(bool bStartingUp); @@ -263,31 +276,50 @@ private: class KVILIB_API KviThreadEvent : public QEvent, public KviHeapObject { protected: - int m_eventId; + int m_eventId; KviThread * m_pSender; + public: - KviThreadEvent(int evId,KviThread * sender = 0) - : QEvent((QEvent::Type)KVI_THREAD_EVENT), m_eventId(evId), m_pSender(sender) {}; + KviThreadEvent(int evId, KviThread * sender = 0) + : QEvent((QEvent::Type)KVI_THREAD_EVENT), m_eventId(evId), m_pSender(sender){}; virtual ~KviThreadEvent(){}; + public: // This is the sender of the event // WARNING : this MAY be null, threads CAN send anonymous events - KviThread * sender(){ return m_pSender; }; - int id(){ return m_eventId; }; + KviThread * sender() { return m_pSender; }; + int id() { return m_eventId; }; }; -template class KviThreadDataEvent : public KviThreadEvent +template +class KviThreadDataEvent : public KviThreadEvent { protected: TData * m_pData; + public: - KviThreadDataEvent(int evId,TData * pData = 0,KviThread * sender = 0) - : KviThreadEvent(evId,sender){ m_pData = pData; }; - virtual ~KviThreadDataEvent(){ if(m_pData)delete m_pData; }; + KviThreadDataEvent(int evId, TData * pData = 0, KviThread * sender = 0) + : KviThreadEvent(evId, sender) { m_pData = pData; }; + virtual ~KviThreadDataEvent() + { + if(m_pData) + delete m_pData; + }; + public: - void setData(TData * d){ if(m_pData)delete m_pData; m_pData = d; }; - TData * getData(){ TData * aux = m_pData; m_pData = 0; return aux; }; - TData * data(){ return m_pData; }; + void setData(TData * d) + { + if(m_pData) + delete m_pData; + m_pData = d; + }; + TData * getData() + { + TData * aux = m_pData; + m_pData = 0; + return aux; + }; + TData * data() { return m_pData; }; }; // A thread that has also an internal event queue @@ -298,23 +330,25 @@ public: // KVI_THREAD_EVENT_TERMINATE should be always handled by the reimplementation // and it should always exit (cleanly) when this event is received - class KVILIB_API KviSensitiveThread : public KviThread { public: KviSensitiveThread(); virtual ~KviSensitiveThread(); + protected: - KviMutex * m_pLocalEventQueueMutex; + KviMutex * m_pLocalEventQueueMutex; KviPointerList * m_pLocalEventQueue; + public: // enqueues an event directed to THIS thread // the event must be allocated with NEW and // will be destroyed on the slave side - void enqueueEvent(KviThreadEvent *e); + void enqueueEvent(KviThreadEvent * e); // enqueues a terminate event and waits() for the slave thread // the slave thread MUST handle KVI_THREAD_EVENT_TERMINATE void terminate(); + protected: // slave side: // returns the first event in the local queue @@ -328,8 +362,8 @@ protected: typedef struct _KviThreadPendingEvent { - QObject *o; - QEvent *e; + QObject * o; + QEvent * e; } KviThreadPendingEvent; class KVILIB_API KviThreadManager : public QObject @@ -342,8 +376,10 @@ protected: // Treat as private plz. KviThreadManager(); ~KviThreadManager(); + public: static void killPendingEvents(QObject * receiver); + private: #if !defined(COMPILE_ON_WINDOWS) && !defined(COMPILE_ON_MINGW) QSocketNotifier * m_pSn; @@ -358,13 +394,13 @@ private: #endif protected: // Public to KviThread only - void registerSlaveThread(KviThread *t); - void unregisterSlaveThread(KviThread *t); + void registerSlaveThread(KviThread * t); + void unregisterSlaveThread(KviThread * t); void threadEnteredWaitState(); void threadLeftWaitState(); - void postSlaveEvent(QObject *o,QEvent *e); + void postSlaveEvent(QObject * o, QEvent * e); void killPendingEventsByReceiver(QObject * receiver); // Public to KviApplication only static void globalInit(); @@ -373,5 +409,4 @@ private slots: void eventsPending(int fd); }; - #endif //!_KVI_THREAD_H_ diff --git a/src/kvilib/system/KviTimeUtils.cpp b/src/kvilib/system/KviTimeUtils.cpp index 55024e40c..dcb2f0485 100644 --- a/src/kvilib/system/KviTimeUtils.cpp +++ b/src/kvilib/system/KviTimeUtils.cpp @@ -22,40 +22,38 @@ // //============================================================================= - - #include "KviTimeUtils.h" #include "KviLocale.h" #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - // Call SystemTimeToFileTime to copy the system time to a FILETIME structure. - // Call GetSystemTime to get the current system time to pass to SystemTimeToFileTime. - // Copy the contents of the FILETIME structure to a ULARGE_INTEGER structure. - // Initialize a SYSTEMTIME structure with the date and time of the first second of January 1, 1970. - // Call SystemTimeToFileTime, passing the SYSTEMTIME structure initialized in Step 3 to the call. - // Copy the contents of the FILETIME structure returned by SystemTimeToFileTime in Step 4 to - // a second ULARGE_INTEGER. The copied value should be greater than or equal to the value copied - // in Step 2. Subtract the 64-bit value in the ULARGE_INTEGER structure initialized in Step 2 - // from the 64-bit value of the ULARGE_INTEGER structure initialized in Step 5. - // This produces a value in 100-nanosecond intervals since January 1, 1970. - // To convert this value to seconds, divide by 10,000,000. +// Call SystemTimeToFileTime to copy the system time to a FILETIME structure. +// Call GetSystemTime to get the current system time to pass to SystemTimeToFileTime. +// Copy the contents of the FILETIME structure to a ULARGE_INTEGER structure. +// Initialize a SYSTEMTIME structure with the date and time of the first second of January 1, 1970. +// Call SystemTimeToFileTime, passing the SYSTEMTIME structure initialized in Step 3 to the call. +// Copy the contents of the FILETIME structure returned by SystemTimeToFileTime in Step 4 to +// a second ULARGE_INTEGER. The copied value should be greater than or equal to the value copied +// in Step 2. Subtract the 64-bit value in the ULARGE_INTEGER structure initialized in Step 2 +// from the 64-bit value of the ULARGE_INTEGER structure initialized in Step 5. +// This produces a value in 100-nanosecond intervals since January 1, 1970. +// To convert this value to seconds, divide by 10,000,000. - // buah buah buahhhh lol ghgh :DDDDDDDDD +// buah buah buahhhh lol ghgh :DDDDDDDDD - void kvi_gettimeofday(struct timeval * tmv,struct timezone *) - { - SYSTEMTIME st; - GetSystemTime(&st); +void kvi_gettimeofday(struct timeval * tmv, struct timezone *) +{ + SYSTEMTIME st; + GetSystemTime(&st); - // this is simply fucked up.. - // to minimize the possibility of wrapping we use also the day field. - // we actually give something that is near the number of seconds from the beginning - // of the current month... - // We cannot use the wMonth field since the months have variable length :/ - tmv->tv_sec = (st.wDay * 86400) + (st.wHour * 3600) + (st.wMinute * 60) + (st.wSecond); - tmv->tv_usec = st.wMilliseconds * 1000; - } + // this is simply fucked up.. + // to minimize the possibility of wrapping we use also the day field. + // we actually give something that is near the number of seconds from the beginning + // of the current month... + // We cannot use the wMonth field since the months have variable length :/ + tmv->tv_sec = (st.wDay * 86400) + (st.wHour * 3600) + (st.wMinute * 60) + (st.wSecond); + tmv->tv_usec = st.wMilliseconds * 1000; +} #endif KviMSecTimeInterval::KviMSecTimeInterval() @@ -64,14 +62,15 @@ KviMSecTimeInterval::KviMSecTimeInterval() m_uReferenceUSecs = 0; } - unsigned long KviMSecTimeInterval::mark() { struct timeval tmv; - kvi_gettimeofday(&tmv,0); + kvi_gettimeofday(&tmv, 0); unsigned long uDiff = ((((unsigned long)(tmv.tv_sec)) - m_uReferenceSecs) * 1000); - if(((unsigned long)(tmv.tv_usec)) > m_uReferenceUSecs)uDiff += (((unsigned long)(tmv.tv_usec) - m_uReferenceUSecs) / 1000); - else uDiff -= ((m_uReferenceUSecs - (unsigned long)(tmv.tv_usec)) / 1000); + if(((unsigned long)(tmv.tv_usec)) > m_uReferenceUSecs) + uDiff += (((unsigned long)(tmv.tv_usec) - m_uReferenceUSecs) / 1000); + else + uDiff -= ((m_uReferenceUSecs - (unsigned long)(tmv.tv_usec)) / 1000); m_uReferenceSecs = (unsigned long)tmv.tv_sec; m_uReferenceUSecs = (unsigned long)tmv.tv_usec; return uDiff; @@ -82,13 +81,13 @@ namespace KviTimeUtils long long getCurrentTimeMills() { struct timeval tmv; - kvi_gettimeofday(&tmv,0); + kvi_gettimeofday(&tmv, 0); long long result = tmv.tv_sec * 1000 + tmv.tv_usec / 1000; return result; } void secondsToDaysHoursMinsSecs(unsigned int uSecs, - unsigned int * uD,unsigned int * uH,unsigned int * uM,unsigned int * uS) + unsigned int * uD, unsigned int * uH, unsigned int * uM, unsigned int * uS) { *uD = uSecs / 86400; uSecs = uSecs % 86400; @@ -98,16 +97,18 @@ namespace KviTimeUtils *uS = uSecs % 60; } - QString formatTimeInterval(unsigned int uSeconds,int iFlags) + QString formatTimeInterval(unsigned int uSeconds, int iFlags) { - unsigned int d,h,m,s; - secondsToDaysHoursMinsSecs(uSeconds,&d,&h,&m,&s); + unsigned int d, h, m, s; + secondsToDaysHoursMinsSecs(uSeconds, &d, &h, &m, &s); QString szRet; // the following tricks maybe will help translators a bit... if(iFlags & FillWithHypens) { szRet = __tr2qs("- d -- h -- m -- s"); - } else { + } + else + { if((iFlags & NoLeadingEmptyIntervals) && (d == 0)) { if(h > 0) @@ -116,18 +117,24 @@ namespace KviTimeUtils szRet = QString(__tr2qs("%1 h %2 m %3 s")).arg(h).arg(m).arg(s); else szRet = QString(__tr2qs("%1 h %2%3 m %4%5 s")).arg(h).arg(m / 10).arg(m % 10).arg(s / 10).arg(s % 10); - } else { + } + else + { if(m > 0) { if(iFlags & NoLeadingZeroes) szRet = QString(__tr2qs("%1 m %2 s")).arg(m).arg(s); else szRet = QString(__tr2qs("%1 m %2%3 s")).arg(m).arg(s / 10).arg(s % 10); - } else { + } + else + { szRet = QString(__tr2qs("%1 s")).arg(s); } } - } else { + } + else + { if(iFlags & NoLeadingZeroes) szRet = QString(__tr2qs("%1 d %2 h %3 m %4 s")).arg(d).arg(h).arg(m).arg(s); else diff --git a/src/kvilib/system/KviTimeUtils.h b/src/kvilib/system/KviTimeUtils.h index 1f215dc0b..104e35d99 100644 --- a/src/kvilib/system/KviTimeUtils.h +++ b/src/kvilib/system/KviTimeUtils.h @@ -37,34 +37,34 @@ class QString; #define kvi_unixTime() time(0) -#define kvi_timeSpan(_time_now,_time_before) ((_time_now) - (_time_before)) -#define kvi_secondsSince(_that_time_t) kvi_timeSpan(kvi_unixTime(),_that_time_t) +#define kvi_timeSpan(_time_now, _time_before) ((_time_now) - (_time_before)) +#define kvi_secondsSince(_that_time_t) kvi_timeSpan(kvi_unixTime(), _that_time_t) #define kvi_time_t time_t #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - #include // struct timeval +#include // struct timeval - /** +/** * \brief Gets the time of the day * \param tmv The time value * \param tmz The timezone * \return void */ - extern KVILIB_API void kvi_gettimeofday(struct timeval * tmv, struct timezone * tmz); +extern KVILIB_API void kvi_gettimeofday(struct timeval * tmv, struct timezone * tmz); #else - #include // gettimeofday(), struct timeval +#include // gettimeofday(), struct timeval - /** +/** * \brief Gets the time of the day * \param tmv The time value * \param tmz The timezone * \return void */ - inline void kvi_gettimeofday(struct timeval * tmv, struct timezone * tmz) - { - gettimeofday(tmv,tmz); - } +inline void kvi_gettimeofday(struct timeval * tmv, struct timezone * tmz) +{ + gettimeofday(tmv, tmz); +} #endif /** @@ -76,9 +76,11 @@ class KVILIB_API KviMSecTimeInterval { public: KviMSecTimeInterval(); + protected: unsigned long m_uReferenceSecs; unsigned long m_uReferenceUSecs; + public: /** * \brief Returns the number of milliseconds. @@ -95,7 +97,7 @@ public: * on windows) * \return unsigned long */ - unsigned long secondsCounter(){ return m_uReferenceSecs; }; + unsigned long secondsCounter() { return m_uReferenceSecs; }; }; /** @@ -120,14 +122,14 @@ namespace KviTimeUtils * \return void */ KVILIB_API void secondsToDaysHoursMinsSecs(unsigned int uSecs, - unsigned int * uD, unsigned int * uH, unsigned int * uM, unsigned int * uS); + unsigned int * uD, unsigned int * uH, unsigned int * uM, unsigned int * uS); /** \enum FormatTimeSpanFlags */ enum FormatTimeSpanFlags { - NoLeadingEmptyIntervals = 1, /**< Causes the leading empty intervals to be omitted */ - NoLeadingZeroes = 2, /**< No leading zeroes are printed in hours and seconds */ - FillWithHypens = 4 /**< Uses only -- %d -- %h -- etc.. discards all other flags */ + NoLeadingEmptyIntervals = 1, /**< Causes the leading empty intervals to be omitted */ + NoLeadingZeroes = 2, /**< No leading zeroes are printed in hours and seconds */ + FillWithHypens = 4 /**< Uses only -- %d -- %h -- etc.. discards all other flags */ }; /** @@ -136,7 +138,7 @@ namespace KviTimeUtils * \param iFlags The flags to format the time string * \return QString */ - KVILIB_API QString formatTimeInterval(unsigned int uSeconds,int iFlags = 0); + KVILIB_API QString formatTimeInterval(unsigned int uSeconds, int iFlags = 0); } #endif //_KVI_TIME_H_ diff --git a/src/kvilib/system/kvi_stdarg.h b/src/kvilib/system/kvi_stdarg.h index 06f05479c..f41c4c8ea 100644 --- a/src/kvilib/system/kvi_stdarg.h +++ b/src/kvilib/system/kvi_stdarg.h @@ -34,12 +34,11 @@ #define kvi_va_end va_end #ifdef va_copy - #define kvi_va_copy(a,b) va_copy(a,b) +#define kvi_va_copy(a, b) va_copy(a, b) #elif defined(__va_copy) - #define kvi_va_copy(a,b) __va_copy(a,b) +#define kvi_va_copy(a, b) __va_copy(a, b) #else - #define kvi_va_copy(a,b) ((a) = (b)) +#define kvi_va_copy(a, b) ((a) = (b)) #endif - #endif //_KVI_STDARG_H_ diff --git a/src/kvilib/tal/KviTalApplication.cpp b/src/kvilib/tal/KviTalApplication.cpp index a07c62be0..3ff6964fc 100644 --- a/src/kvilib/tal/KviTalApplication.cpp +++ b/src/kvilib/tal/KviTalApplication.cpp @@ -25,17 +25,17 @@ #include "KviTalApplication.h" #if defined(COMPILE_KDE4_SUPPORT) - KviTalApplication::KviTalApplication(int &, char **) - : KApplication() - { - } -#else //!defined(COMPILE_KDE4_SUPPORT) - KviTalApplication::KviTalApplication(int & iArgc, char ** ppcArgv) - : QApplication(iArgc,ppcArgv) - { - // Session management has been broken by source incompatible changes. - QObject::connect(this,SIGNAL(commitDataRequest(QSessionManager &)),this,SLOT(commitData(QSessionManager &))); - } +KviTalApplication::KviTalApplication(int &, char **) + : KApplication() +{ +} +#else //!defined(COMPILE_KDE4_SUPPORT) +KviTalApplication::KviTalApplication(int & iArgc, char ** ppcArgv) + : QApplication(iArgc, ppcArgv) +{ + // Session management has been broken by source incompatible changes. + QObject::connect(this, SIGNAL(commitDataRequest(QSessionManager &)), this, SLOT(commitData(QSessionManager &))); +} #endif //!defined(COMPILE_KDE4_SUPPORT) KviTalApplication::~KviTalApplication() diff --git a/src/kvilib/tal/KviTalApplication.h b/src/kvilib/tal/KviTalApplication.h index 0d0edc03b..b12d2f037 100644 --- a/src/kvilib/tal/KviTalApplication.h +++ b/src/kvilib/tal/KviTalApplication.h @@ -43,14 +43,14 @@ #if defined(COMPILE_KDE4_SUPPORT) - #include - class KVILIB_API KviTalApplication : public KApplication +#include +class KVILIB_API KviTalApplication : public KApplication #else //!defined(COMPILE_KDE4_SUPPORT) - // Either no KDE or KDE5 (which uses QApplication) - #include - class KVILIB_API KviTalApplication : public QApplication +// Either no KDE or KDE5 (which uses QApplication) +#include +class KVILIB_API KviTalApplication : public QApplication #endif //!defined(COMPILE_KDE4_SUPPORT) { diff --git a/src/kvilib/tal/KviTalFileDialog.cpp b/src/kvilib/tal/KviTalFileDialog.cpp index bdb65e515..962832322 100644 --- a/src/kvilib/tal/KviTalFileDialog.cpp +++ b/src/kvilib/tal/KviTalFileDialog.cpp @@ -22,14 +22,12 @@ // //============================================================================= - - #include "KviTalFileDialog.h" #if defined(COMPILE_KDE4_SUPPORT) KviTalFileDialog::KviTalFileDialog(const QString & szDirName, const QString & szFilter, QWidget * pParent, const char *, bool) -: KFileDialog(KUrl(szDirName),szFilter,pParent) + : KFileDialog(KUrl(szDirName), szFilter, pParent) { //clearWFlags(WDestructiveClose); } @@ -37,7 +35,7 @@ KviTalFileDialog::KviTalFileDialog(const QString & szDirName, const QString & sz #else //!defined(COMPILE_KDE4_SUPPORT)) KviTalFileDialog::KviTalFileDialog(const QString & szDirName, const QString & szFilter, QWidget * pParent, const char *, bool bModal) -: QFileDialog(pParent,"",szDirName,szFilter) + : QFileDialog(pParent, "", szDirName, szFilter) { setModal(bModal); } @@ -56,46 +54,46 @@ void KviTalFileDialog::setFileMode(FileMode m) case AnyFile: setMode(KFile::File | KFile::LocalOnly); setOperationMode(Saving); - break; + break; case ExistingFile: setMode(KFile::File | KFile::ExistingOnly | KFile::LocalOnly); setOperationMode(Opening); - break; + break; case ExistingFiles: setMode(KFile::Files | KFile::ExistingOnly | KFile::LocalOnly); setOperationMode(Opening); - break; + break; case Directory: setMode(KFile::Directory); - break; + break; case DirectoryOnly: setMode(KFile::Directory); - break; + break; default: setMode(KFile::File | KFile::LocalOnly); setOperationMode(Saving); - break; -#else //!defined(COMPILE_KDE4_SUPPORT) + break; +#else //!defined(COMPILE_KDE4_SUPPORT) case AnyFile: QFileDialog::setFileMode(QFileDialog::AnyFile); setAcceptMode(QFileDialog::AcceptSave); - break; + break; case ExistingFile: QFileDialog::setFileMode(QFileDialog::ExistingFile); - break; + break; case ExistingFiles: QFileDialog::setFileMode(QFileDialog::ExistingFiles); - break; + break; case Directory: QFileDialog::setFileMode(QFileDialog::Directory); - break; + break; case DirectoryOnly: QFileDialog::setFileMode(QFileDialog::DirectoryOnly); - break; + break; default: QFileDialog::setFileMode(QFileDialog::AnyFile); setAcceptMode(QFileDialog::AcceptSave); - break; + break; #endif //!defined(COMPILE_KDE4_SUPPORT) } } @@ -104,8 +102,7 @@ void KviTalFileDialog::setDirectory(const QString & szDirectory) { #if defined(COMPILE_KDE4_SUPPORT) setUrl(KUrl(szDirectory)); -#else //!defined(COMPILE_KDE4_SUPPORT) +#else //!defined(COMPILE_KDE4_SUPPORT) QFileDialog::setDirectory(szDirectory); #endif //!defined(COMPILE_KDE4_SUPPORT) } - diff --git a/src/kvilib/tal/KviTalFileDialog.h b/src/kvilib/tal/KviTalFileDialog.h index 992119e28..3aadf0924 100644 --- a/src/kvilib/tal/KviTalFileDialog.h +++ b/src/kvilib/tal/KviTalFileDialog.h @@ -34,7 +34,7 @@ #include "kvi_settings.h" #ifdef None - #undef None +#undef None #endif // otherwise gcc freaks out somewhere inside the include chain of KFileDialog /** @@ -44,15 +44,15 @@ #if defined(COMPILE_KDE4_SUPPORT) - #include - class KVILIB_API KviTalFileDialog : public KFileDialog +#include +class KVILIB_API KviTalFileDialog : public KFileDialog #else //!defined(COMPILE_KDE4_SUPPORT) - // no KDE or KDE5 (which has no KFileDialog) +// no KDE or KDE5 (which has no KFileDialog) - #include - class KVILIB_API KviTalFileDialog : public QFileDialog +#include +class KVILIB_API KviTalFileDialog : public QFileDialog #endif //!defined(COMPILE_KDE4_SUPPORT) { @@ -73,17 +73,19 @@ public: * \brief Destroys the filedialog object */ ~KviTalFileDialog(); + public: /** * \enum FileMode * \brief Indicate what the user may select in the file dialog */ - enum FileMode { - AnyFile, /**< The name of a file, whether it exists or not */ - ExistingFile, /**< The name of a single existing file */ - ExistingFiles, /**< The names of zero or more existing files */ - Directory, /**< The name of a directory. Both files and directories are displayed */ - DirectoryOnly /**< The name of a directory. The file dialog will only display directories */ + enum FileMode + { + AnyFile, /**< The name of a file, whether it exists or not */ + ExistingFile, /**< The name of a single existing file */ + ExistingFiles, /**< The names of zero or more existing files */ + Directory, /**< The name of a directory. Both files and directories are displayed */ + DirectoryOnly /**< The name of a directory. The file dialog will only display directories */ }; /** @@ -111,10 +113,10 @@ public: { #if defined(COMPILE_KDE4_SUPPORT) // QFileDialog allows making new directories...kfiledialog not :/ - return KFileDialog::getExistingDirectory(KUrl(szDir),pParent,szCaption); - //return getExistingDirectory(dir,parent,caption); -#else //!defined(COMPILE_KDE4_SUPPORT) - return getExistingDirectory(pParent,szCaption,szDir); + return KFileDialog::getExistingDirectory(KUrl(szDir), pParent, szCaption); +//return getExistingDirectory(dir,parent,caption); +#else //!defined(COMPILE_KDE4_SUPPORT) + return getExistingDirectory(pParent, szCaption, szDir); #endif //!defined(COMPILE_KDE4_SUPPORT) }; }; diff --git a/src/kvilib/tal/KviTalGroupBox.cpp b/src/kvilib/tal/KviTalGroupBox.cpp index 2d36c8772..10c948531 100644 --- a/src/kvilib/tal/KviTalGroupBox.cpp +++ b/src/kvilib/tal/KviTalGroupBox.cpp @@ -28,43 +28,43 @@ #include KviTalGroupBox::KviTalGroupBox(QWidget * pParent, char * pcName) -: QGroupBox(pParent) + : QGroupBox(pParent) { setObjectName(pcName); m_pLayout = new QHBoxLayout(this); m_pLayout->setMargin(4); - m_pLayout->setContentsMargins(8,8,8,8); + m_pLayout->setContentsMargins(8, 8, 8, 8); m_pLayout->setSpacing(6); QGroupBox::setLayout(m_pLayout); } KviTalGroupBox::KviTalGroupBox(QWidget * pParent) -: QGroupBox(pParent) + : QGroupBox(pParent) { m_pLayout = 0; } KviTalGroupBox::KviTalGroupBox(const QString & szTitle, QWidget * pParent) -: QGroupBox(szTitle,pParent) + : QGroupBox(szTitle, pParent) { m_pLayout = 0; } KviTalGroupBox::KviTalGroupBox(Qt::Orientation orientation, QWidget * pParent) -: QGroupBox(pParent) + : QGroupBox(pParent) { if(orientation == Qt::Vertical) m_pLayout = new QHBoxLayout(this); else m_pLayout = new QVBoxLayout(this); m_pLayout->setMargin(4); - m_pLayout->setContentsMargins(8,8,8,8); + m_pLayout->setContentsMargins(8, 8, 8, 8); m_pLayout->setSpacing(6); QGroupBox::setLayout(m_pLayout); } KviTalGroupBox::KviTalGroupBox(Qt::Orientation orientation, const QString & szTitle, QWidget * pParent) -: QGroupBox(szTitle,pParent) + : QGroupBox(szTitle, pParent) { mOrientation = orientation; if(orientation == Qt::Vertical) @@ -72,7 +72,7 @@ KviTalGroupBox::KviTalGroupBox(Qt::Orientation orientation, const QString & szTi else m_pLayout = new QVBoxLayout(this); m_pLayout->setMargin(4); - m_pLayout->setContentsMargins(8,8,8,8); + m_pLayout->setContentsMargins(8, 8, 8, 8); m_pLayout->setSpacing(6); QGroupBox::setLayout(m_pLayout); } @@ -107,12 +107,12 @@ void KviTalGroupBox::childEvent(QChildEvent * e) void KviTalGroupBox::addSpace(int iSpace) { - if(m_pLayout && m_pLayout==layout()) + if(m_pLayout && m_pLayout == layout()) { if(mOrientation == Qt::Vertical) - ((QHBoxLayout*)m_pLayout)->addSpacing(iSpace); + ((QHBoxLayout *)m_pLayout)->addSpacing(iSpace); else - ((QVBoxLayout*)m_pLayout)->addSpacing(iSpace); + ((QVBoxLayout *)m_pLayout)->addSpacing(iSpace); } } @@ -143,5 +143,3 @@ void KviTalGroupBox::setLayout(QLayout * layout) QGroupBox::setLayout(layout); } - - diff --git a/src/kvilib/tal/KviTalGroupBox.h b/src/kvilib/tal/KviTalGroupBox.h index fa25f99ef..2c653b65c 100644 --- a/src/kvilib/tal/KviTalGroupBox.h +++ b/src/kvilib/tal/KviTalGroupBox.h @@ -50,7 +50,7 @@ public: * \param pcName the name of the groupbox * \return KviTalGroupBox */ - KviTalGroupBox(QWidget * pParent, char * pcName=0); + KviTalGroupBox(QWidget * pParent, char * pcName = 0); /** * \brief Constructs the groupbox object @@ -88,9 +88,11 @@ public: * \brief Destroys the groupbox object */ ~KviTalGroupBox(); + protected: Qt::Orientation mOrientation; QLayout * m_pLayout; + public: /** * \brief Sets the inside margin @@ -98,7 +100,10 @@ public: * \return void */ void setInsideMargin(int iMargin) - { if(layout()) layout()->setMargin(iMargin); }; + { + if(layout()) + layout()->setMargin(iMargin); + }; /** * \brief Sets the inside spacing @@ -106,21 +111,32 @@ public: * \return void */ void setInsideSpacing(int iSpacing) - { if(layout()) layout()->setSpacing(iSpacing); }; + { + if(layout()) + layout()->setSpacing(iSpacing); + }; /** * \brief Returns the inside margin * \return int */ int insideMargin() - { if(layout()) return layout()->margin(); return 0; }; + { + if(layout()) + return layout()->margin(); + return 0; + }; /** * \brief Returns the inside spacing * \return int */ int insideSpacing() - { if(layout()) return layout()->spacing(); return 0; }; + { + if(layout()) + return layout()->spacing(); + return 0; + }; /** * \brief Adds a space @@ -142,6 +158,7 @@ public: * \return void */ void setLayout(QLayout * newLayout); + protected: virtual void childEvent(QChildEvent * e); }; diff --git a/src/kvilib/tal/KviTalHBox.cpp b/src/kvilib/tal/KviTalHBox.cpp index e2644a4b3..a43d1dea5 100644 --- a/src/kvilib/tal/KviTalHBox.cpp +++ b/src/kvilib/tal/KviTalHBox.cpp @@ -51,10 +51,10 @@ const int align_cod[] = { Qt::AlignJustify, }; -#define align_num (sizeof(align_tbl) / sizeof(align_tbl[0])) +#define align_num (sizeof(align_tbl) / sizeof(align_tbl[0])) KviTalHBox::KviTalHBox(QWidget * pParent, char * pcName) -: QWidget(pParent) + : QWidget(pParent) { setObjectName(pcName); @@ -91,7 +91,7 @@ void KviTalHBox::childEvent(QChildEvent * e) void KviTalHBox::setStretchFactor(QWidget * pChild, int iStretch) { - m_pLayout->setStretchFactor(pChild,iStretch); + m_pLayout->setStretchFactor(pChild, iStretch); } void KviTalHBox::setSpacing(int iSpacing) @@ -101,17 +101,17 @@ void KviTalHBox::setSpacing(int iSpacing) void KviTalHBox::setMargin(int iMargin) { - m_pLayout->setContentsMargins(iMargin,iMargin,iMargin,iMargin); + m_pLayout->setContentsMargins(iMargin, iMargin, iMargin, iMargin); } void KviTalHBox::setAlignment(Qt::Alignment alignment) { - m_pLayout->setAlignment(this,alignment); + m_pLayout->setAlignment(this, alignment); } void KviTalHBox::setAlignment(QWidget * pChild, Qt::Alignment alignment) { - m_pLayout->setAlignment(pChild,alignment); + m_pLayout->setAlignment(pChild, alignment); } void KviTalHBox::addStretch(int iStretch) @@ -123,5 +123,3 @@ void KviTalHBox::addSpacing(int iSpacing) { m_pLayout->addSpacing(iSpacing); } - - diff --git a/src/kvilib/tal/KviTalHBox.h b/src/kvilib/tal/KviTalHBox.h index 2447398bd..9aa37c09f 100644 --- a/src/kvilib/tal/KviTalHBox.h +++ b/src/kvilib/tal/KviTalHBox.h @@ -57,8 +57,10 @@ public: * \brief Destroys an horizontal box object */ ~KviTalHBox(); + private: QHBoxLayout * m_pLayout; + public: /** * \brief Sets the stretch factor for an object diff --git a/src/kvilib/tal/KviTalIconAndRichTextItemDelegate.cpp b/src/kvilib/tal/KviTalIconAndRichTextItemDelegate.cpp index c229e2226..fddb43a34 100644 --- a/src/kvilib/tal/KviTalIconAndRichTextItemDelegate.cpp +++ b/src/kvilib/tal/KviTalIconAndRichTextItemDelegate.cpp @@ -29,12 +29,10 @@ #include #include - #define LVI_AFTER_ICON (LVI_BORDER + LVI_ICON_SIZE + LVI_SPACING) - KviTalIconAndRichTextItemDelegate::KviTalIconAndRichTextItemDelegate(QAbstractItemView * pWidget) -: QStyledItemDelegate(pWidget), m_pParent(pWidget), m_oMinimumSize(0,0), m_oIconSize(LVI_ICON_SIZE,LVI_ICON_SIZE) + : QStyledItemDelegate(pWidget), m_pParent(pWidget), m_oMinimumSize(0, 0), m_oIconSize(LVI_ICON_SIZE, LVI_ICON_SIZE) { } @@ -48,8 +46,8 @@ void KviTalIconAndRichTextItemDelegate::paint(QPainter * pPainter, const QStyleO QStyleOptionViewItemV4 opt = option; initStyleOption(&opt, index); - if (opt.state & QStyle::State_Selected) - QApplication::style()->drawPrimitive(QStyle::PE_PanelItemViewItem,&opt, pPainter); + if(opt.state & QStyle::State_Selected) + QApplication::style()->drawPrimitive(QStyle::PE_PanelItemViewItem, &opt, pPainter); QString szText = index.data(Qt::DisplayRole).toString(); QPixmap pixmap; @@ -67,21 +65,22 @@ void KviTalIconAndRichTextItemDelegate::paint(QPainter * pPainter, const QStyleO pix = ico.pixmap(m_oIconSize); else pix = m_oDefaultPix; - } else { + } + else + { pix = m_oDefaultPix; } if(!pix.isNull()) { - int x = opt.rect.x()+LVI_BORDER; - int y = opt.rect.y()+LVI_BORDER; + int x = opt.rect.x() + LVI_BORDER; + int y = opt.rect.y() + LVI_BORDER; int w = m_oIconSize.width(); - + pPainter->drawPixmap( - x + ((w - pix.width()) / 2), - y, - pix - ); + x + ((w - pix.width()) / 2), + y, + pix); } QTextDocument doc; @@ -89,28 +88,28 @@ void KviTalIconAndRichTextItemDelegate::paint(QPainter * pPainter, const QStyleO doc.setDefaultFont(opt.font); int iIconAndSpace = LVI_BORDER + m_oIconSize.width() + LVI_SPACING; - - pPainter->translate(opt.rect.x() + iIconAndSpace,opt.rect.y()+LVI_BORDER); + + pPainter->translate(opt.rect.x() + iIconAndSpace, opt.rect.y() + LVI_BORDER); doc.setTextWidth(opt.rect.width() - iIconAndSpace - LVI_BORDER); - QRect cliprect = QRect(QPoint(0,0),QSize(opt.rect.width()-iIconAndSpace,opt.rect.height())); - doc.drawContents(pPainter,cliprect); + QRect cliprect = QRect(QPoint(0, 0), QSize(opt.rect.width() - iIconAndSpace, opt.rect.height())); + doc.drawContents(pPainter, cliprect); pPainter->restore(); } -QSize KviTalIconAndRichTextItemDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex & index) const +QSize KviTalIconAndRichTextItemDelegate::sizeHint(const QStyleOptionViewItem & option, const QModelIndex & index) const { QString szText = index.data(Qt::DisplayRole).toString(); QTextDocument doc; doc.setHtml(szText); doc.setDefaultFont(option.font); - doc.setTextWidth(((QListWidget *)parent())->viewport()->width()-LVI_AFTER_ICON-LVI_BORDER); + doc.setTextWidth(((QListWidget *)parent())->viewport()->width() - LVI_AFTER_ICON - LVI_BORDER); int iHeight = doc.documentLayout()->documentSize().toSize().height(); //qDebug("Size hint (%d,%d)",((QListWidget *)parent())->minimumWidth(), iHeight + (2 * LVI_BORDER)); int iIconWidth = m_oIconSize.width() + (2 * LVI_BORDER); int iIconHeight = m_oIconSize.height() + (2 * LVI_BORDER); - + int w = ((QListWidget *)parent())->minimumWidth(); if(w < iIconWidth) w = iIconWidth; @@ -122,6 +121,5 @@ QSize KviTalIconAndRichTextItemDelegate::sizeHint(const QStyleOptionViewItem &op if(h < m_oMinimumSize.height()) h = m_oMinimumSize.height(); - return QSize(w,h); + return QSize(w, h); } - diff --git a/src/kvilib/tal/KviTalIconAndRichTextItemDelegate.h b/src/kvilib/tal/KviTalIconAndRichTextItemDelegate.h index 2b7ae64d4..67f787acf 100644 --- a/src/kvilib/tal/KviTalIconAndRichTextItemDelegate.h +++ b/src/kvilib/tal/KviTalIconAndRichTextItemDelegate.h @@ -45,7 +45,6 @@ #define LVI_MINIMUM_CELL_WIDTH (LVI_MINIMUM_TEXT_WIDTH + LVI_BORDER + LVI_ICON_SIZE + LVI_SPACING + LVI_BORDER) - /** * \class KviTalIconAndRichTextItemDelegate * \brief Toolkit Abstraction Layer: itemdelegate class @@ -64,17 +63,19 @@ public: * \brief Destroys the icon and rich text item delegate object */ ~KviTalIconAndRichTextItemDelegate(); + protected: QAbstractItemView * m_pParent; - QPixmap m_oDefaultPix; - QSize m_oMinimumSize; - QSize m_oIconSize; + QPixmap m_oDefaultPix; + QSize m_oMinimumSize; + QSize m_oIconSize; + public: /** * \brief Set the absolute minimum size of the items. Should be set in the view constructor as * QListWidget caches the size hints and works really hard to keep them unchanged. */ - void setMinimumSize(const QSize &s) + void setMinimumSize(const QSize & s) { m_oMinimumSize = s; } @@ -82,7 +83,7 @@ public: /** * \brief Set the size of the icons. Should be set in the view constructor. */ - void setIconSize(const QSize &s) + void setIconSize(const QSize & s) { m_oIconSize = s; } @@ -109,8 +110,8 @@ public: * \param pPix The icon pixmap * \return void */ - void setDefaultIcon(QPixmap * pPix){ m_oDefaultPix = *pPix; }; - void setDefaultIcon(const QPixmap &oPix){ m_oDefaultPix = oPix; }; + void setDefaultIcon(QPixmap * pPix) { m_oDefaultPix = *pPix; }; + void setDefaultIcon(const QPixmap & oPix) { m_oDefaultPix = oPix; }; }; #endif // _KVI_TAL_LISTWIDGET_H_ diff --git a/src/kvilib/tal/KviTalListWidget.cpp b/src/kvilib/tal/KviTalListWidget.cpp index 1a6ada36b..6a2191968 100644 --- a/src/kvilib/tal/KviTalListWidget.cpp +++ b/src/kvilib/tal/KviTalListWidget.cpp @@ -30,19 +30,19 @@ #include #include -KviTalListWidget::KviTalListWidget(QWidget * pParent,QString name,Qt::WindowType f) -: QListWidget(pParent) +KviTalListWidget::KviTalListWidget(QWidget * pParent, QString name, Qt::WindowType f) + : QListWidget(pParent) { setObjectName(name); setWindowFlags(f); - + //setUniformItemSizes(true); //setResizeMode(QListWidget::Adjust); //setWordWrap(true); viewport()->installEventFilter(this); } -bool KviTalListWidget::eventFilter(QObject *o,QEvent * e) +bool KviTalListWidget::eventFilter(QObject * o, QEvent * e) { if(e->type() == QEvent::Resize) { @@ -61,32 +61,32 @@ bool KviTalListWidget::eventFilter(QObject *o,QEvent * e) //model()->endResetModel(); } } - return QListWidget::eventFilter(o,e); + return QListWidget::eventFilter(o, e); } bool KviTalListWidget::event(QEvent * e) { - if (e->type() == QEvent::ToolTip) + if(e->type() == QEvent::ToolTip) { - QHelpEvent *helpEvent = static_cast(e); - const QPoint &p=helpEvent->pos(); - QListWidgetItem *item=itemAt(p); - if (item) + QHelpEvent * helpEvent = static_cast(e); + const QPoint & p = helpEvent->pos(); + QListWidgetItem * item = itemAt(p); + if(item) { - emit tipRequest(item,p); + emit tipRequest(item, p); } } return QListWidget::event(e); } -KviTalListWidgetText::KviTalListWidgetText(KviTalListWidget *listbox, const QString &text) -:KviTalListWidgetItem(listbox) +KviTalListWidgetText::KviTalListWidgetText(KviTalListWidget * listbox, const QString & text) + : KviTalListWidgetItem(listbox) { setText(text); } -KviTalListWidgetText::KviTalListWidgetText(const QString &text) -:KviTalListWidgetItem() +KviTalListWidgetText::KviTalListWidgetText(const QString & text) + : KviTalListWidgetItem() { setText(text); } @@ -101,7 +101,7 @@ KviTalListWidgetText::~KviTalListWidgetText() { } -void KviTalListWidgetText::paint(QPainter *painter) +void KviTalListWidgetText::paint(QPainter * painter) { int itemHeight = height(listWidget()); QFontMetrics fm = painter->fontMetrics(); @@ -109,13 +109,13 @@ void KviTalListWidgetText::paint(QPainter *painter) painter->drawText(3, yPos, text()); } -int KviTalListWidgetText::height(const KviTalListWidget* lb) const +int KviTalListWidgetText::height(const KviTalListWidget * lb) const { int h = lb ? lb->fontMetrics().lineSpacing() + 2 : 0; return qMax(h, QApplication::globalStrut().height()); } -int KviTalListWidgetText::width(const KviTalListWidget* lb) const +int KviTalListWidgetText::width(const KviTalListWidget * lb) const { int w = lb ? lb->fontMetrics().width(text()) + 6 : 0; return qMax(w, QApplication::globalStrut().width()); @@ -126,14 +126,14 @@ int KviTalListWidgetText::rtti() const return RTTI; } -KviTalListWidgetPixmap::KviTalListWidgetPixmap(KviTalListWidget* listbox, const QPixmap &pixmap) -: KviTalListWidgetItem(listbox) +KviTalListWidgetPixmap::KviTalListWidgetPixmap(KviTalListWidget * listbox, const QPixmap & pixmap) + : KviTalListWidgetItem(listbox) { pm = pixmap; } -KviTalListWidgetPixmap::KviTalListWidgetPixmap(const QPixmap &pixmap) -: KviTalListWidgetItem() +KviTalListWidgetPixmap::KviTalListWidgetPixmap(const QPixmap & pixmap) + : KviTalListWidgetItem() { pm = pixmap; } @@ -148,16 +148,16 @@ KviTalListWidgetPixmap::~KviTalListWidgetPixmap() { } -KviTalListWidgetPixmap::KviTalListWidgetPixmap(KviTalListWidget* listbox, const QPixmap &pix, const QString& text) -: KviTalListWidgetItem(listbox) +KviTalListWidgetPixmap::KviTalListWidgetPixmap(KviTalListWidget * listbox, const QPixmap & pix, const QString & text) + : KviTalListWidgetItem(listbox) { pm = pix; setText(text); setIcon(QIcon(pix)); } -KviTalListWidgetPixmap::KviTalListWidgetPixmap(const QPixmap & pix, const QString& text) -: KviTalListWidgetItem() +KviTalListWidgetPixmap::KviTalListWidgetPixmap(const QPixmap & pix, const QString & text) + : KviTalListWidgetItem() { pm = pix; setText(text); @@ -170,45 +170,45 @@ KviTalListWidgetPixmap::KviTalListWidgetPixmap(const QPixmap & pix, const QStrin // setText(text); // } -void KviTalListWidgetPixmap::paint(QPainter *painter) +void KviTalListWidgetPixmap::paint(QPainter * painter) { int itemHeight = height(listWidget()); int yPos; - const QPixmap *pm = pixmap(); - if (pm && ! pm->isNull()) { - yPos = (itemHeight - pm->height()) / 2; - painter->drawPixmap(3, yPos, *pm); + const QPixmap * pm = pixmap(); + if(pm && !pm->isNull()) + { + yPos = (itemHeight - pm->height()) / 2; + painter->drawPixmap(3, yPos, *pm); } - if (!text().isEmpty()) { - QFontMetrics fm = painter->fontMetrics(); - yPos = ((itemHeight - fm.height()) / 2) + fm.ascent(); - painter->drawText(pm->width() + 5, yPos, text()); + if(!text().isEmpty()) + { + QFontMetrics fm = painter->fontMetrics(); + yPos = ((itemHeight - fm.height()) / 2) + fm.ascent(); + painter->drawText(pm->width() + 5, yPos, text()); } } -int KviTalListWidgetPixmap::height(const KviTalListWidget* lb) const +int KviTalListWidgetPixmap::height(const KviTalListWidget * lb) const { int h; - if (text().isEmpty()) - h = pm.height(); + if(text().isEmpty()) + h = pm.height(); else - h = qMax(pm.height(), lb->fontMetrics().lineSpacing() + 2); + h = qMax(pm.height(), lb->fontMetrics().lineSpacing() + 2); return qMax(h, QApplication::globalStrut().height()); } -int KviTalListWidgetPixmap::width(const KviTalListWidget* lb) const +int KviTalListWidgetPixmap::width(const KviTalListWidget * lb) const { - if (text().isEmpty()) - return qMax(pm.width() + 6, QApplication::globalStrut().width()); + if(text().isEmpty()) + return qMax(pm.width() + 6, QApplication::globalStrut().width()); return qMax(pm.width() + lb->fontMetrics().width(text()) + 6, - QApplication::globalStrut().width()); + QApplication::globalStrut().width()); } int KviTalListWidgetPixmap::rtti() const { return RTTI; } - - diff --git a/src/kvilib/tal/KviTalListWidget.h b/src/kvilib/tal/KviTalListWidget.h index 803ed3db1..07a0de776 100644 --- a/src/kvilib/tal/KviTalListWidget.h +++ b/src/kvilib/tal/KviTalListWidget.h @@ -28,80 +28,81 @@ #include "kvi_settings.h" #include "KviTalIconAndRichTextItemDelegate.h" - #include class KviTalListWidgetItem; - class KVILIB_API KviTalListWidget : public QListWidget { Q_OBJECT public: - KviTalListWidget(QWidget * pParent,QString name,Qt::WindowType f = Qt::Widget); + KviTalListWidget(QWidget * pParent, QString name, Qt::WindowType f = Qt::Widget); KviTalListWidget(QWidget * pParent) - : QListWidget (pParent){}; - virtual ~KviTalListWidget() {}; + : QListWidget(pParent){}; + virtual ~KviTalListWidget(){}; protected: virtual bool event(QEvent * e); - virtual bool eventFilter(QObject *o,QEvent * e); + virtual bool eventFilter(QObject * o, QEvent * e); signals: - void tipRequest(QListWidgetItem *,const QPoint &); - + void tipRequest(QListWidgetItem *, const QPoint &); }; class KVILIB_API KviTalListWidgetItem : public QListWidgetItem { public: KviTalListWidgetItem() - : QListWidgetItem() {}; + : QListWidgetItem(){}; KviTalListWidgetItem(KviTalListWidget * pParent) - : QListWidgetItem(pParent){}; - KviTalListWidgetItem(KviTalListWidget * pParent, QString& label) - : QListWidgetItem(label, pParent){}; - KviTalListWidget* listWidget() { return (KviTalListWidget*) QListWidgetItem::listWidget(); }; - virtual ~KviTalListWidgetItem() {}; - + : QListWidgetItem(pParent){}; + KviTalListWidgetItem(KviTalListWidget * pParent, QString & label) + : QListWidgetItem(label, pParent){}; + KviTalListWidget * listWidget() { return (KviTalListWidget *)QListWidgetItem::listWidget(); }; + virtual ~KviTalListWidgetItem(){}; }; class KVILIB_API KviTalListWidgetText : public KviTalListWidgetItem { public: - KviTalListWidgetText(KviTalListWidget* listbox, const QString & text=QString()); - KviTalListWidgetText(const QString & text=QString()); + KviTalListWidgetText(KviTalListWidget * listbox, const QString & text = QString()); + KviTalListWidgetText(const QString & text = QString()); ~KviTalListWidgetText(); int height(const KviTalListWidget *) const; - int width(const KviTalListWidget *) const; + int width(const KviTalListWidget *) const; int rtti() const; - enum { RTTI = 1 }; + enum + { + RTTI = 1 + }; protected: - virtual void paint(QPainter *); + virtual void paint(QPainter *); private: Q_DISABLE_COPY(KviTalListWidgetText) }; - class KVILIB_API KviTalListWidgetPixmap : public KviTalListWidgetItem { public: - KviTalListWidgetPixmap(KviTalListWidget* listbox, const QPixmap &); + KviTalListWidgetPixmap(KviTalListWidget * listbox, const QPixmap &); KviTalListWidgetPixmap(const QPixmap &); - KviTalListWidgetPixmap(KviTalListWidget* listbox, const QPixmap &, const QString&); - KviTalListWidgetPixmap(const QPixmap &, const QString&); + KviTalListWidgetPixmap(KviTalListWidget * listbox, const QPixmap &, const QString &); + KviTalListWidgetPixmap(const QPixmap &, const QString &); ~KviTalListWidgetPixmap(); - const QPixmap *pixmap() const { return ± } + const QPixmap * pixmap() const { return ± } int height(const KviTalListWidget *) const; - int width(const KviTalListWidget *) const; + int width(const KviTalListWidget *) const; int rtti() const; - enum { RTTI = 2 }; + enum + { + RTTI = 2 + }; protected: virtual void paint(QPainter *); diff --git a/src/kvilib/tal/KviTalMainWindow.cpp b/src/kvilib/tal/KviTalMainWindow.cpp index 539f453ed..f0f3c92bc 100644 --- a/src/kvilib/tal/KviTalMainWindow.cpp +++ b/src/kvilib/tal/KviTalMainWindow.cpp @@ -22,29 +22,26 @@ // //============================================================================= - #include "KviTalMainWindow.h" #ifdef COMPILE_KDE_SUPPORT - KviTalMainWindow::KviTalMainWindow(QWidget * pParent, const char * pcName) - : KMainWindow(pParent) - { - //setWindowTitle(pcName); - setObjectName(pcName); - } +KviTalMainWindow::KviTalMainWindow(QWidget * pParent, const char * pcName) + : KMainWindow(pParent) +{ + //setWindowTitle(pcName); + setObjectName(pcName); +} #else //!COMPILE_KDE_SUPPORT - KviTalMainWindow::KviTalMainWindow(QWidget * pParent, const char * pcName) - : QMainWindow(pParent) - { - setObjectName(pcName); - } +KviTalMainWindow::KviTalMainWindow(QWidget * pParent, const char * pcName) + : QMainWindow(pParent) +{ + setObjectName(pcName); +} #endif //!COMPILE_KDE_SUPPORT KviTalMainWindow::~KviTalMainWindow() { } - - diff --git a/src/kvilib/tal/KviTalMainWindow.h b/src/kvilib/tal/KviTalMainWindow.h index 55df44619..35c150004 100644 --- a/src/kvilib/tal/KviTalMainWindow.h +++ b/src/kvilib/tal/KviTalMainWindow.h @@ -66,7 +66,6 @@ public: * \return KviTalMainWindow */ ~KviTalMainWindow(); - }; #endif // _KVI_TAL_MAINWINDOW_H_ diff --git a/src/kvilib/tal/KviTalMenuBar.cpp b/src/kvilib/tal/KviTalMenuBar.cpp index 75c23c5a6..2f9b9ae1b 100644 --- a/src/kvilib/tal/KviTalMenuBar.cpp +++ b/src/kvilib/tal/KviTalMenuBar.cpp @@ -22,33 +22,30 @@ // //============================================================================= - #include "KviTalMenuBar.h" #ifdef COMPILE_KDE4_SUPPORT - KviTalMenuBar::KviTalMenuBar(QWidget * pParent, const char * pcName) - : KMenuBar(pParent) - { - setWindowTitle(pcName); - } +KviTalMenuBar::KviTalMenuBar(QWidget * pParent, const char * pcName) + : KMenuBar(pParent) +{ + setWindowTitle(pcName); +} #else //!COMPILE_KDE4_SUPPORT - KviTalMenuBar::KviTalMenuBar(QWidget * pParent, const char * pcName) +KviTalMenuBar::KviTalMenuBar(QWidget * pParent, const char * pcName) #ifdef COMPILE_ON_MAC - // global menubar must have 0 as its parent - : QMenuBar(0) + // global menubar must have 0 as its parent + : QMenuBar(0) #else - : QMenuBar(pParent) + : QMenuBar(pParent) #endif - { - } +{ +} #endif //!COMPILE_KDE4_SUPPORT KviTalMenuBar::~KviTalMenuBar() { } - - diff --git a/src/kvilib/tal/KviTalMenuBar.h b/src/kvilib/tal/KviTalMenuBar.h index ffec73e10..fa6df688e 100644 --- a/src/kvilib/tal/KviTalMenuBar.h +++ b/src/kvilib/tal/KviTalMenuBar.h @@ -67,5 +67,4 @@ public: ~KviTalMenuBar(); }; - #endif //_KVI_TAL_MENUBAR_H_ diff --git a/src/kvilib/tal/KviTalTabDialog.cpp b/src/kvilib/tal/KviTalTabDialog.cpp index aafc08cf3..e4589d058 100644 --- a/src/kvilib/tal/KviTalTabDialog.cpp +++ b/src/kvilib/tal/KviTalTabDialog.cpp @@ -30,18 +30,18 @@ #include #include -KviTalTabDialog::KviTalTabDialog(QWidget * pParent,const char * name,bool bModal) -: QDialog(pParent) +KviTalTabDialog::KviTalTabDialog(QWidget * pParent, const char * name, bool bModal) + : QDialog(pParent) { setObjectName(name); setModal(bModal); m_pLayout = new QGridLayout(this); - m_pLayout->setColumnStretch(0,10); + m_pLayout->setColumnStretch(0, 10); setLayout(m_pLayout); m_pTabWidget = new QTabWidget(this); - m_pLayout->addWidget(m_pTabWidget,0,0,1,3); + m_pLayout->addWidget(m_pTabWidget, 0, 0, 1, 3); } KviTalTabDialog::~KviTalTabDialog() @@ -50,21 +50,21 @@ KviTalTabDialog::~KviTalTabDialog() void KviTalTabDialog::addTab(QWidget * widget, const QString & label) { - m_pTabWidget->addTab(widget,label); + m_pTabWidget->addTab(widget, label); } void KviTalTabDialog::setOkButton(const QString & text) { - QPushButton * pBtnOk = new QPushButton(text,this); - m_pLayout->addWidget(pBtnOk,1,1); - connect(pBtnOk,SIGNAL(clicked()),this,SLOT(okPressed())); + QPushButton * pBtnOk = new QPushButton(text, this); + m_pLayout->addWidget(pBtnOk, 1, 1); + connect(pBtnOk, SIGNAL(clicked()), this, SLOT(okPressed())); } void KviTalTabDialog::setCancelButton(const QString & text) { - QPushButton * pBtnCancel = new QPushButton(text,this); - m_pLayout->addWidget(pBtnCancel,1,2); - connect(pBtnCancel,SIGNAL(clicked()),this,SLOT(cancelPressed())); + QPushButton * pBtnCancel = new QPushButton(text, this); + m_pLayout->addWidget(pBtnCancel, 1, 2); + connect(pBtnCancel, SIGNAL(clicked()), this, SLOT(cancelPressed())); } void KviTalTabDialog::okPressed() @@ -76,5 +76,3 @@ void KviTalTabDialog::cancelPressed() { emit cancelButtonPressed(); } - - diff --git a/src/kvilib/tal/KviTalTabDialog.h b/src/kvilib/tal/KviTalTabDialog.h index 184fefff6..b3bd9f443 100644 --- a/src/kvilib/tal/KviTalTabDialog.h +++ b/src/kvilib/tal/KviTalTabDialog.h @@ -37,18 +37,20 @@ class KVILIB_API KviTalTabDialog : public QDialog { Q_OBJECT public: - KviTalTabDialog(QWidget * pParent = 0,const char * name = 0,bool bModal = false); + KviTalTabDialog(QWidget * pParent = 0, const char * name = 0, bool bModal = false); ~KviTalTabDialog(); + protected: void setOkButton(const QString &); void setCancelButton(const QString &); - void addTab(QWidget *,const QString &); + void addTab(QWidget *, const QString &); protected slots: void okPressed(); void cancelPressed(); + private: QGridLayout * m_pLayout; - QTabWidget * m_pTabWidget; + QTabWidget * m_pTabWidget; signals: void applyButtonPressed(); void cancelButtonPressed(); diff --git a/src/kvilib/tal/KviTalTableWidget.cpp b/src/kvilib/tal/KviTalTableWidget.cpp index 376ba734c..0f07db0f9 100644 --- a/src/kvilib/tal/KviTalTableWidget.cpp +++ b/src/kvilib/tal/KviTalTableWidget.cpp @@ -22,7 +22,6 @@ // //============================================================================= - #include "KviTalTableWidget.h" /* #include "KviPointerHashTable.h" @@ -36,9 +35,9 @@ #include */ KviTalTableWidget::KviTalTableWidget(QWidget * pParent) -: QTableWidget(pParent) + : QTableWidget(pParent) { -/* + /* connect(this,SIGNAL(currentItemChanged(QTreeWidgetItem *,QTreeWidgetItem *)),this,SLOT(redirect_currentItemChanged(QTreeWidgetItem *,QTreeWidgetItem *))); connect(this,SIGNAL(itemActivated(QTreeWidgetItem *,int)),this,SLOT(redirect_itemActivated(QTreeWidgetItem *,int))); connect(this,SIGNAL(itemChanged(QTreeWidgetItem *,int)),this,SLOT(redirect_itemChanged(QTreeWidgetItem *,int))); @@ -96,4 +95,3 @@ void KviTalTreeWidget::redirect_itemPressed(QTreeWidgetItem *pItem,int col) emit itemPressed((KviTalTreeWidgetItem *)pItem,col); } */ - diff --git a/src/kvilib/tal/KviTalTableWidget.h b/src/kvilib/tal/KviTalTableWidget.h index 144dcd0b8..4e9d849d3 100644 --- a/src/kvilib/tal/KviTalTableWidget.h +++ b/src/kvilib/tal/KviTalTableWidget.h @@ -39,42 +39,42 @@ class KVILIB_API KviTalTableWidget : public QTableWidget Q_OBJECT public: KviTalTableWidget(QWidget * pParent); - virtual ~KviTalTableWidget() {}; + virtual ~KviTalTableWidget(){}; + public: }; - class KVILIB_API KviTalTableWidgetItem : public QTableWidgetItem { public: KviTalTableWidgetItem(KviTalTableWidget * pParent) - : QTableWidgetItem() + : QTableWidgetItem() { pParent->insertRow(pParent->rowCount()); - pParent->setItem(pParent->rowCount()-1, 0, this); + pParent->setItem(pParent->rowCount() - 1, 0, this); }; KviTalTableWidgetItem(KviTalTableWidget * pParent, int row, int column) - : QTableWidgetItem() + : QTableWidgetItem() { pParent->setItem(row, column, this); }; KviTalTableWidgetItem(const KviTalTableWidgetItem & other) - : QTableWidgetItem(other) {}; + : QTableWidgetItem(other){}; }; class KVILIB_API KviTalTableWidgetItemEx : public KviTalTableWidgetItem { public: KviTalTableWidgetItemEx(KviTalTableWidget * pParent) - : KviTalTableWidgetItem(pParent) {}; + : KviTalTableWidgetItem(pParent){}; KviTalTableWidgetItemEx(KviTalTableWidget * pParent, int row, int column) - : KviTalTableWidgetItem(pParent, row, column) {}; + : KviTalTableWidgetItem(pParent, row, column){}; KviTalTableWidgetItemEx(const KviTalTableWidgetItem & other) - : KviTalTableWidgetItem(other) {}; + : KviTalTableWidgetItem(other){}; virtual void displayUpdate() = 0; }; diff --git a/src/kvilib/tal/KviTalToolTip.cpp b/src/kvilib/tal/KviTalToolTip.cpp index ade2e850a..4ac018f13 100644 --- a/src/kvilib/tal/KviTalToolTip.cpp +++ b/src/kvilib/tal/KviTalToolTip.cpp @@ -27,8 +27,8 @@ #include #include -KviTalToolTipHelper::KviTalToolTipHelper(KviTalToolTip * pToolTip,QWidget * pWidget) -: QObject(pWidget) +KviTalToolTipHelper::KviTalToolTipHelper(KviTalToolTip * pToolTip, QWidget * pWidget) + : QObject(pWidget) { m_pToolTip = pToolTip; pWidget->installEventFilter(this); @@ -48,21 +48,20 @@ void KviTalToolTipHelper::toolTipDying() m_pToolTip = 0; } -bool KviTalToolTipHelper::eventFilter(QObject *,QEvent * pEvent) +bool KviTalToolTipHelper::eventFilter(QObject *, QEvent * pEvent) { if((pEvent->type() == QEvent::ToolTip) && m_pToolTip) { -// qDebug("TOOL TIP EVENT WITH POSITION %d,%d",((QHelpEvent *)pEvent)->pos().x(),((QHelpEvent *)pEvent)->pos().y()); + // qDebug("TOOL TIP EVENT WITH POSITION %d,%d",((QHelpEvent *)pEvent)->pos().x(),((QHelpEvent *)pEvent)->pos().y()); m_pToolTip->maybeTip(((QHelpEvent *)pEvent)->pos()); return true; } return false; } - KviTalToolTip::KviTalToolTip(QWidget * pParent) { - m_pHelper = new KviTalToolTipHelper(this,pParent); + m_pHelper = new KviTalToolTipHelper(this, pParent); m_pParent = pParent; } @@ -80,24 +79,24 @@ void KviTalToolTip::helperDying() m_pHelper = 0; } -void KviTalToolTip::add(QWidget * widget,const QString & text) +void KviTalToolTip::add(QWidget * widget, const QString & text) { widget->setToolTip(text); } -void KviTalToolTip::remove(QWidget *widget) +void KviTalToolTip::remove(QWidget * widget) { widget->setToolTip(""); } -void KviTalToolTip::tip(const QRect & rect,const QString & text) +void KviTalToolTip::tip(const QRect & rect, const QString & text) { -// qDebug("TOOL TIP AT %d,%d",rect.topLeft().x(),rect.topLeft().y()); - QPoint pnt=m_pParent->mapToGlobal(rect.topLeft()); - pnt.setX(pnt.x()+16); - pnt.setY(pnt.y()+16); - QToolTip::showText(m_pParent->mapToGlobal(rect.topLeft()),text, m_pParent, rect); + // qDebug("TOOL TIP AT %d,%d",rect.topLeft().x(),rect.topLeft().y()); + QPoint pnt = m_pParent->mapToGlobal(rect.topLeft()); + pnt.setX(pnt.x() + 16); + pnt.setY(pnt.y() + 16); + QToolTip::showText(m_pParent->mapToGlobal(rect.topLeft()), text, m_pParent, rect); } void KviTalToolTip::maybeTip(const QPoint &) diff --git a/src/kvilib/tal/KviTalToolTip.h b/src/kvilib/tal/KviTalToolTip.h index cc2aedc4f..b4f1bb93b 100644 --- a/src/kvilib/tal/KviTalToolTip.h +++ b/src/kvilib/tal/KviTalToolTip.h @@ -39,29 +39,34 @@ class KviTalToolTipHelper : public QObject friend class KviTalToolTip; Q_OBJECT public: - KviTalToolTipHelper(KviTalToolTip * pToolTip,QWidget * pWidget); + KviTalToolTipHelper(KviTalToolTip * pToolTip, QWidget * pWidget); ~KviTalToolTipHelper(); + protected: KviTalToolTip * m_pToolTip; + protected: - virtual bool eventFilter(QObject * pObject,QEvent * pEvent); + virtual bool eventFilter(QObject * pObject, QEvent * pEvent); void toolTipDying(); }; - class KVILIB_API KviTalToolTip { friend class KviTalToolTipHelper; + public: KviTalToolTip(QWidget * pParent); virtual ~KviTalToolTip(); + protected: KviTalToolTipHelper * m_pHelper; QWidget * m_pParent; + public: - static void add(QWidget * widget,const QString & text); + static void add(QWidget * widget, const QString & text); static void remove(QWidget * widget); - virtual void tip(const QRect & rect,const QString & text); + virtual void tip(const QRect & rect, const QString & text); + protected: virtual void maybeTip(const QPoint & p); void helperDying(); diff --git a/src/kvilib/tal/KviTalVBox.cpp b/src/kvilib/tal/KviTalVBox.cpp index be53e211f..91f2a8a8f 100644 --- a/src/kvilib/tal/KviTalVBox.cpp +++ b/src/kvilib/tal/KviTalVBox.cpp @@ -28,7 +28,7 @@ #include KviTalVBox::KviTalVBox(QWidget * pParent, char * pcName) -: QWidget(pParent) + : QWidget(pParent) { setObjectName(pcName); @@ -65,7 +65,7 @@ void KviTalVBox::childEvent(QChildEvent * e) void KviTalVBox::setStretchFactor(QWidget * pChild, int iStretch) { - m_pLayout->setStretchFactor(pChild,iStretch); + m_pLayout->setStretchFactor(pChild, iStretch); } void KviTalVBox::setSpacing(int iSpacing) @@ -80,7 +80,7 @@ void KviTalVBox::addStretch(int iStretch) void KviTalVBox::setMargin(int iMargin) { - m_pLayout->setContentsMargins(iMargin,iMargin,iMargin,iMargin); + m_pLayout->setContentsMargins(iMargin, iMargin, iMargin, iMargin); } void KviTalVBox::setAlignment(Qt::Alignment alignment) @@ -90,7 +90,5 @@ void KviTalVBox::setAlignment(Qt::Alignment alignment) void KviTalVBox::setAlignment(QWidget * pChild, Qt::Alignment alignment) { - m_pLayout->setAlignment(pChild,alignment); + m_pLayout->setAlignment(pChild, alignment); } - - diff --git a/src/kvilib/tal/KviTalVBox.h b/src/kvilib/tal/KviTalVBox.h index e2509802b..944056a45 100644 --- a/src/kvilib/tal/KviTalVBox.h +++ b/src/kvilib/tal/KviTalVBox.h @@ -57,8 +57,10 @@ public: * \brief Destroys a vertical box object */ ~KviTalVBox(); + private: QVBoxLayout * m_pLayout; + public: /** * \brief Sets the stretch factor for an object @@ -103,6 +105,7 @@ public: * \return void */ void addStretch(int iStretch); + protected: virtual void childEvent(QChildEvent * e); }; diff --git a/src/kvilib/tal/KviTalWizard.cpp b/src/kvilib/tal/KviTalWizard.cpp index 9d9621ca3..24f993889 100644 --- a/src/kvilib/tal/KviTalWizard.cpp +++ b/src/kvilib/tal/KviTalWizard.cpp @@ -35,7 +35,6 @@ #include #include - class KviTalWizardPageData { public: @@ -47,37 +46,40 @@ public: EnableCancel = 8, EnableFinish = 16 }; + public: QWidget * pWidget; - QString szTitle; - bool bEnabled; - int iEnableFlags; - int iVisibleIndex; + QString szTitle; + bool bEnabled; + int iEnableFlags; + int iVisibleIndex; }; class KviTalWizardPrivate { public: KviPointerList * pPageList; - int iEnabledPageCount; - KviTalWizardPageData * pCurrentPage; - QGridLayout * pLayout; - QLabel * pTitleLabel; - QLabel * pStepsLabel; - QPushButton * pBackButton; - QPushButton * pCancelButton; - QPushButton * pHelpButton; - QPushButton * pNextButton; - QWidget * pNextSpacer; - QPushButton * pFinishButton; - QWidget * pFinishSpacer; - QStackedWidget * pWidgetStack; + int iEnabledPageCount; + KviTalWizardPageData * pCurrentPage; + QGridLayout * pLayout; + QLabel * pTitleLabel; + QLabel * pStepsLabel; + QPushButton * pBackButton; + QPushButton * pCancelButton; + QPushButton * pHelpButton; + QPushButton * pNextButton; + QWidget * pNextSpacer; + QPushButton * pFinishButton; + QWidget * pFinishSpacer; + QStackedWidget * pWidgetStack; + public: KviTalWizardPageData * findPage(QWidget * pWidget) { - for(KviTalWizardPageData * pData = pPageList->first();pData;pData = pPageList->next()) + for(KviTalWizardPageData * pData = pPageList->first(); pData; pData = pPageList->next()) { - if(pData->pWidget == pWidget) return pData; + if(pData->pWidget == pWidget) + return pData; } return NULL; } @@ -85,9 +87,10 @@ public: KviTalWizardPageData * findFirstEnabledPage() { KviTalWizardPageData * pData; - for(pData = pPageList->first();pData;pData = pPageList->next()) + for(pData = pPageList->first(); pData; pData = pPageList->next()) { - if(pData->bEnabled) return pData; + if(pData->bEnabled) + return pData; } return NULL; } @@ -95,33 +98,40 @@ public: KviTalWizardPageData * findLastEnabledPage() { KviTalWizardPageData * pData; - for(pData = pPageList->last();pData;pData = pPageList->prev()) + for(pData = pPageList->last(); pData; pData = pPageList->prev()) { - if(pData->bEnabled) return pData; + if(pData->bEnabled) + return pData; } return NULL; } KviTalWizardPageData * findNextEnabledPage(QWidget * pReference) { - if(!pReference) return findFirstEnabledPage(); + if(!pReference) + return findFirstEnabledPage(); KviTalWizardPageData * pData = findPage(pReference); - if(!pData) return NULL; - for(pData = pPageList->next();pData;pData = pPageList->next()) + if(!pData) + return NULL; + for(pData = pPageList->next(); pData; pData = pPageList->next()) { - if(pData->bEnabled) return pData; + if(pData->bEnabled) + return pData; } return NULL; } KviTalWizardPageData * findPrevEnabledPage(QWidget * pReference) { - if(!pReference) return findLastEnabledPage(); + if(!pReference) + return findLastEnabledPage(); KviTalWizardPageData * pData = findPage(pReference); - if(!pData) return NULL; - for(pData = pPageList->prev();pData;pData = pPageList->prev()) + if(!pData) + return NULL; + for(pData = pPageList->prev(); pData; pData = pPageList->prev()) { - if(pData->bEnabled) return pData; + if(pData->bEnabled) + return pData; } return NULL; } @@ -129,7 +139,7 @@ public: int reindexPages() { int iEnabledCount = 0; - for(KviTalWizardPageData * pData = pPageList->first();pData;pData = pPageList->next()) + for(KviTalWizardPageData * pData = pPageList->first(); pData; pData = pPageList->next()) { if(pData->bEnabled) { @@ -141,9 +151,8 @@ public: } }; - KviTalWizard::KviTalWizard(QWidget * pParent) -: QDialog(pParent) + : QDialog(pParent) { m_p = new KviTalWizardPrivate; m_p->pPageList = new KviPointerList; @@ -153,97 +162,91 @@ KviTalWizard::KviTalWizard(QWidget * pParent) m_p->pLayout = new QGridLayout(this); m_p->pTitleLabel = new QLabel(this); - m_p->pLayout->addWidget(m_p->pTitleLabel,0,0,1,3); + m_p->pLayout->addWidget(m_p->pTitleLabel, 0, 0, 1, 3); m_p->pStepsLabel = new QLabel(this); m_p->pStepsLabel->setMinimumWidth(80); m_p->pStepsLabel->setAlignment(Qt::AlignRight); - m_p->pLayout->addWidget(m_p->pStepsLabel,0,4,1,3); + m_p->pLayout->addWidget(m_p->pStepsLabel, 0, 4, 1, 3); QFrame * f1 = new QFrame(this); f1->setFrameStyle(QFrame::Sunken | QFrame::HLine); - m_p->pLayout->addWidget(f1,1,0,1,7); + m_p->pLayout->addWidget(f1, 1, 0, 1, 7); m_p->pWidgetStack = new QStackedWidget(this); - m_p->pLayout->addWidget(m_p->pWidgetStack,2,0,1,7); + m_p->pLayout->addWidget(m_p->pWidgetStack, 2, 0, 1, 7); QFrame * f2 = new QFrame(this); f2->setFrameStyle(QFrame::Sunken | QFrame::HLine); - m_p->pLayout->addWidget(f2,3,0,1,7); + m_p->pLayout->addWidget(f2, 3, 0, 1, 7); KviTalHBox * pButtonBox = new KviTalHBox(this); - m_p->pLayout->addWidget(pButtonBox,4,0,1,7); + m_p->pLayout->addWidget(pButtonBox, 4, 0, 1, 7); pButtonBox->setMargin(0); pButtonBox->setSpacing(0); - - m_p->pCancelButton = new QPushButton(__tr("Cancel"),pButtonBox); + m_p->pCancelButton = new QPushButton(__tr("Cancel"), pButtonBox); m_p->pCancelButton->setMinimumWidth(80); QObject::connect( - m_p->pCancelButton, - SIGNAL(clicked()), - this, - SLOT(cancelButtonClicked()) - ); + m_p->pCancelButton, + SIGNAL(clicked()), + this, + SLOT(cancelButtonClicked())); QWidget * pSpacer = new QWidget(pButtonBox); pSpacer->setFixedWidth(4); - m_p->pHelpButton = new QPushButton(__tr("Help"),pButtonBox); + m_p->pHelpButton = new QPushButton(__tr("Help"), pButtonBox); m_p->pHelpButton->setMinimumWidth(80); QObject::connect( - m_p->pHelpButton, - SIGNAL(clicked()), - this, - SLOT(helpButtonClicked()) - ); + m_p->pHelpButton, + SIGNAL(clicked()), + this, + SLOT(helpButtonClicked())); QWidget * pLargeSpacer = new QWidget(pButtonBox); pLargeSpacer->setMinimumWidth(50); - pButtonBox->setStretchFactor(pLargeSpacer,100); + pButtonBox->setStretchFactor(pLargeSpacer, 100); QString szText = "< "; szText += __tr("Back"); - m_p->pBackButton = new QPushButton(szText,pButtonBox); + m_p->pBackButton = new QPushButton(szText, pButtonBox); m_p->pBackButton->setMinimumWidth(80); QObject::connect( - m_p->pBackButton, - SIGNAL(clicked()), - this, - SLOT(backButtonClicked()) - ); + m_p->pBackButton, + SIGNAL(clicked()), + this, + SLOT(backButtonClicked())); m_p->pNextSpacer = new QWidget(pButtonBox); m_p->pNextSpacer->setFixedWidth(4); szText = __tr("Next"); szText += " >"; - m_p->pNextButton = new QPushButton(szText,pButtonBox); + m_p->pNextButton = new QPushButton(szText, pButtonBox); m_p->pNextButton->setMinimumWidth(80); QObject::connect( - m_p->pNextButton, - SIGNAL(clicked()), - this, - SLOT(nextButtonClicked()) - ); + m_p->pNextButton, + SIGNAL(clicked()), + this, + SLOT(nextButtonClicked())); m_p->pFinishSpacer = new QWidget(pButtonBox); m_p->pFinishSpacer->setFixedWidth(4); - m_p->pFinishButton = new QPushButton(__tr("Finish"),pButtonBox); + m_p->pFinishButton = new QPushButton(__tr("Finish"), pButtonBox); m_p->pFinishButton->setMinimumWidth(80); QObject::connect( - m_p->pFinishButton, - SIGNAL(clicked()), - this, - SLOT(finishButtonClicked()) - ); + m_p->pFinishButton, + SIGNAL(clicked()), + this, + SLOT(finishButtonClicked())); m_p->pLayout->setMargin(8); m_p->pLayout->setSpacing(4); - m_p->pLayout->setRowStretch(2,1); - m_p->pLayout->setColumnStretch(0,1); + m_p->pLayout->setRowStretch(2, 1); + m_p->pLayout->setColumnStretch(0, 1); } KviTalWizard::~KviTalWizard() @@ -252,39 +255,37 @@ KviTalWizard::~KviTalWizard() delete m_p; } -void KviTalWizard::insertPage(QWidget * pWidget,const QString &szTitle,int iIndex) +void KviTalWizard::insertPage(QWidget * pWidget, const QString & szTitle, int iIndex) { KviTalWizardPageData * pPageData = m_p->findPage(pWidget); if(!pPageData) { pPageData = new KviTalWizardPageData; pPageData->pWidget = pWidget; - pPageData->iEnableFlags = \ - KviTalWizardPageData::EnableNext | \ - KviTalWizardPageData::EnableCancel | \ - KviTalWizardPageData::EnableBack; + pPageData->iEnableFlags = KviTalWizardPageData::EnableNext | KviTalWizardPageData::EnableCancel | KviTalWizardPageData::EnableBack; if(iIndex < 0) { m_p->pPageList->append(pPageData); m_p->iEnabledPageCount++; pPageData->iVisibleIndex = m_p->iEnabledPageCount; - } else { - m_p->pPageList->insert(iIndex,pPageData); + } + else + { + m_p->pPageList->insert(iIndex, pPageData); m_p->iEnabledPageCount = m_p->reindexPages(); } m_p->pWidgetStack->addWidget(pWidget); } pPageData->szTitle = szTitle; pPageData->bEnabled = true; - } -void KviTalWizard::addPage(QWidget * pWidget,const QString &szTitle) +void KviTalWizard::addPage(QWidget * pWidget, const QString & szTitle) { - insertPage(pWidget,szTitle,-1); + insertPage(pWidget, szTitle, -1); } -bool KviTalWizard::setPageEnabled(QWidget * pWidget,bool bEnabled) +bool KviTalWizard::setPageEnabled(QWidget * pWidget, bool bEnabled) { KviTalWizardPageData * pData = m_p->findPage(pWidget); if(!pData) @@ -295,7 +296,7 @@ bool KviTalWizard::setPageEnabled(QWidget * pWidget,bool bEnabled) return true; } -bool KviTalWizard::setPageTitle(QWidget * pWidget,const QString &szTitle) +bool KviTalWizard::setPageTitle(QWidget * pWidget, const QString & szTitle) { KviTalWizardPageData * pData = m_p->findPage(pWidget); if(!pData) @@ -340,7 +341,7 @@ void KviTalWizard::setCurrentPage(KviTalWizardPageData * pData) { bHavePrevPage = m_p->findPrevEnabledPage(pData->pWidget); bHaveNextPage = m_p->findNextEnabledPage(pData->pWidget); - + bNextEnabled = (pData->iEnableFlags & KviTalWizardPageData::EnableNext) && bHaveNextPage; bBackEnabled = (pData->iEnableFlags & KviTalWizardPageData::EnableBack) && bHavePrevPage; @@ -355,13 +356,12 @@ void KviTalWizard::setCurrentPage(KviTalWizardPageData * pData) szTitle += pData->szTitle; szTitle += ""; QPalette pal = m_p->pStepsLabel->palette(); - QColor clrWin = pal.color(QPalette::Normal,QPalette::Window); - QColor clrTxt = pal.color(QPalette::Normal,QPalette::WindowText); + QColor clrWin = pal.color(QPalette::Normal, QPalette::Window); + QColor clrTxt = pal.color(QPalette::Normal, QPalette::WindowText); QColor clrMid = qRgb( - (clrWin.red() + clrTxt.red()) / 2, - (clrWin.green() + clrTxt.green()) / 2, - (clrWin.blue() + clrTxt.blue()) / 2 - ); + (clrWin.red() + clrTxt.red()) / 2, + (clrWin.green() + clrTxt.green()) / 2, + (clrWin.blue() + clrTxt.blue()) / 2); szSteps = "pNextButton->show(); m_p->pNextSpacer->show(); m_p->pNextButton->setDefault(true); - } else { + } + else + { m_p->pNextButton->hide(); m_p->pNextSpacer->hide(); m_p->pNextButton->setDefault(false); @@ -405,7 +407,9 @@ void KviTalWizard::setCurrentPage(KviTalWizardPageData * pData) m_p->pFinishButton->show(); m_p->pFinishSpacer->show(); m_p->pFinishButton->setDefault(true); - } else { + } + else + { m_p->pFinishButton->hide(); m_p->pFinishSpacer->hide(); m_p->pFinishButton->setDefault(false); @@ -460,7 +464,7 @@ void KviTalWizard::finishButtonClicked() accept(); } -void KviTalWizard::setHelpEnabled(QWidget * pWidget,bool bEnabled) +void KviTalWizard::setHelpEnabled(QWidget * pWidget, bool bEnabled) { KviTalWizardPageData * pData = m_p->findPage(pWidget); if(!pData) @@ -473,7 +477,7 @@ void KviTalWizard::setHelpEnabled(QWidget * pWidget,bool bEnabled) setCurrentPage(pData); } -void KviTalWizard::setCancelEnabled(QWidget * pWidget,bool bEnabled) +void KviTalWizard::setCancelEnabled(QWidget * pWidget, bool bEnabled) { KviTalWizardPageData * pData = m_p->findPage(pWidget); if(!pData) @@ -486,7 +490,7 @@ void KviTalWizard::setCancelEnabled(QWidget * pWidget,bool bEnabled) setCurrentPage(pData); } -void KviTalWizard::setFinishEnabled(QWidget * pWidget,bool bEnabled) +void KviTalWizard::setFinishEnabled(QWidget * pWidget, bool bEnabled) { KviTalWizardPageData * pData = m_p->findPage(pWidget); if(!pData) @@ -499,7 +503,7 @@ void KviTalWizard::setFinishEnabled(QWidget * pWidget,bool bEnabled) setCurrentPage(pData); } -void KviTalWizard::setNextEnabled(QWidget * pWidget,bool bEnabled) +void KviTalWizard::setNextEnabled(QWidget * pWidget, bool bEnabled) { KviTalWizardPageData * pData = m_p->findPage(pWidget); if(!pData) @@ -512,7 +516,7 @@ void KviTalWizard::setNextEnabled(QWidget * pWidget,bool bEnabled) setCurrentPage(pData); } -void KviTalWizard::setBackEnabled(QWidget * pWidget,bool bEnabled) +void KviTalWizard::setBackEnabled(QWidget * pWidget, bool bEnabled) { KviTalWizardPageData * pData = m_p->findPage(pWidget); if(!pData) diff --git a/src/kvilib/tal/KviTalWizard.h b/src/kvilib/tal/KviTalWizard.h index a5b2c870c..ecbcb5ba4 100644 --- a/src/kvilib/tal/KviTalWizard.h +++ b/src/kvilib/tal/KviTalWizard.h @@ -29,7 +29,6 @@ #include - class QShowEvent; class QPushButton; class KviTalWizardPrivate; @@ -46,8 +45,10 @@ class KVILIB_API KviTalWizard : public QDialog public: KviTalWizard(QWidget * pParent); ~KviTalWizard(); + protected: KviTalWizardPrivate * m_p; + public: /// /// Adds a page to the wizard with the specified title. @@ -55,14 +56,14 @@ public: /// Adding a page a second time is equivalent to calling /// setPageTitle() and enabling the page. /// - void addPage(QWidget * pWidget,const QString &szTitle); + void addPage(QWidget * pWidget, const QString & szTitle); /// /// Adds a page to the wizard with the specified title /// and in the specified position. /// Adding a page a second time is equivalent to calling /// setPageTitle() and enabling the page. /// - void insertPage(QWidget * pWidget,const QString &szTitle,int iIndex); + void insertPage(QWidget * pWidget, const QString & szTitle, int iIndex); /// /// Enables or disables a page. A disabled page /// is skipped when the user presses "Next" in the @@ -72,14 +73,14 @@ public: /// Returns true on success or false if the pWidget /// does not identify a page that has been added to this wizard. /// - bool setPageEnabled(QWidget * pWidget,bool bEnabled); + bool setPageEnabled(QWidget * pWidget, bool bEnabled); /// /// Changes a page title. /// /// Returns true on success or false if the pWidget /// does not identify a page that has been added to this wizard. /// - bool setPageTitle(QWidget * pWidget,const QString &szTitle); + bool setPageTitle(QWidget * pWidget, const QString & szTitle); /// /// Switches the wizard to the specified page. /// Please note that this class handles page switching @@ -97,27 +98,27 @@ public: /// Enables or disables the help button for the specified page. /// By default the help button is always disabled. /// - void setHelpEnabled(QWidget * pWidget,bool bEnabled); + void setHelpEnabled(QWidget * pWidget, bool bEnabled); /// /// Enables or disables the cancel button for the specified page. /// By default the cancel button is always enabled. /// - void setCancelEnabled(QWidget * pWidget,bool bEnabled); + void setCancelEnabled(QWidget * pWidget, bool bEnabled); /// /// Enables or disables the finish button for the specified page. /// By default the finish button is always disabled. /// - void setFinishEnabled(QWidget * pWidget,bool bEnabled); + void setFinishEnabled(QWidget * pWidget, bool bEnabled); /// /// Enables or disables the next button for the specified page. /// By default the next button is always enabled. /// - void setNextEnabled(QWidget * pWidget,bool bEnabled); + void setNextEnabled(QWidget * pWidget, bool bEnabled); /// /// Enables or disables the prev button for the specified page. /// By default the prev button is always enabled. /// - void setBackEnabled(QWidget * pWidget,bool bEnabled); + void setBackEnabled(QWidget * pWidget, bool bEnabled); /// /// Returns a pointer to the cancel button displayed in the dialog. /// @@ -144,6 +145,7 @@ signals: /// void helpClicked(); void pageChanged(QString title); + protected: /// /// Displays the first page if no other page is shown yet. @@ -154,6 +156,7 @@ protected: /// Handles redirects the close button to the "cancel" operation. /// virtual void closeEvent(QCloseEvent * e); + protected: void setCurrentPage(KviTalWizardPageData * pData); protected slots: @@ -164,5 +167,4 @@ protected slots: void finishButtonClicked(); }; - #endif // _KVI_TAL_WIZARD_H_ diff --git a/src/kvirc/kernel/KviAction.cpp b/src/kvirc/kernel/KviAction.cpp index f67b171b1..f416198a0 100644 --- a/src/kvirc/kernel/KviAction.cpp +++ b/src/kvirc/kernel/KviAction.cpp @@ -36,7 +36,7 @@ #include KviActionCategory::KviActionCategory(const QString & szName, const QString & szVisibleName, const QString & szDescription) -: m_szName(szName), m_szVisibleName(szVisibleName), m_szDescription(szDescription) + : m_szName(szName), m_szVisibleName(szVisibleName), m_szDescription(szDescription) { } @@ -44,37 +44,36 @@ KviActionCategory::~KviActionCategory() { } - KviAction::KviAction(QObject * pParent, const QString & szName, const QString & szVisibleName, const QString & szDescription, KviActionCategory * pCategory, const QString & szBigIconId, const QString & szSmallIconId, unsigned int uFlags, const QString & szKeySequence) -: QObject(pParent), - m_szName(szName), - m_szVisibleName(szVisibleName), - m_szDescription(szDescription), - m_pCategory(pCategory), - m_szBigIconId(szBigIconId), - m_szSmallIconId(szSmallIconId), - m_eSmallIcon(KviIconManager::None), - m_pActionList(NULL), - m_uInternalFlags(KviAction::Enabled), - m_uFlags(uFlags), - m_szKeySequence(szKeySequence), - m_pAccel(NULL) + : QObject(pParent), + m_szName(szName), + m_szVisibleName(szVisibleName), + m_szDescription(szDescription), + m_pCategory(pCategory), + m_szBigIconId(szBigIconId), + m_szSmallIconId(szSmallIconId), + m_eSmallIcon(KviIconManager::None), + m_pActionList(NULL), + m_uInternalFlags(KviAction::Enabled), + m_uFlags(uFlags), + m_szKeySequence(szKeySequence), + m_pAccel(NULL) { } KviAction::KviAction(QObject * pParent, const QString & szName, const QString & szVisibleName, const QString & szDescription, KviActionCategory * pCategory, const QString & szBigIconId, KviIconManager::SmallIcon eSmallIcon, unsigned int uFlags, const QString & szKeySequence) -: QObject(pParent), - m_szName(szName), - m_szVisibleName(szVisibleName), - m_szDescription(szDescription), - m_pCategory(pCategory), - m_szBigIconId(szBigIconId), - m_eSmallIcon(eSmallIcon), - m_pActionList(NULL), - m_uInternalFlags(KviAction::Enabled), - m_uFlags(uFlags), - m_szKeySequence(szKeySequence), - m_pAccel(NULL) + : QObject(pParent), + m_szName(szName), + m_szVisibleName(szVisibleName), + m_szDescription(szDescription), + m_pCategory(pCategory), + m_szBigIconId(szBigIconId), + m_eSmallIcon(eSmallIcon), + m_pActionList(NULL), + m_uInternalFlags(KviAction::Enabled), + m_uFlags(uFlags), + m_szKeySequence(szKeySequence), + m_pAccel(NULL) { } @@ -83,7 +82,7 @@ KviAction::~KviAction() if(m_pActionList) { for(QAction * pAction = m_pActionList->first(); pAction; pAction = m_pActionList->next()) - disconnect(pAction,SIGNAL(destroyed()),this,SLOT(actionDestroyed())); + disconnect(pAction, SIGNAL(destroyed()), this, SLOT(actionDestroyed())); m_pActionList->setAutoDelete(true); delete m_pActionList; } @@ -116,11 +115,13 @@ void KviAction::registerAccelerator() { g_pMainWindow->freeAccelleratorKeySequence(m_szKeySequence); - m_pAccel = new QShortcut(m_szKeySequence,g_pMainWindow,0,0,Qt::ApplicationShortcut); - connect(m_pAccel,SIGNAL(activated()),this,SLOT(activate())); + m_pAccel = new QShortcut(m_szKeySequence, g_pMainWindow, 0, 0, Qt::ApplicationShortcut); + connect(m_pAccel, SIGNAL(activated()), this, SLOT(activate())); //no way to have Ctrl+Alt+Key events fired as no-ambiguous, probably qt bug - connect(m_pAccel,SIGNAL(activatedAmbiguously()),this,SLOT(activate())); - } else { + connect(m_pAccel, SIGNAL(activatedAmbiguously()), this, SLOT(activate())); + } + else + { m_pAccel = NULL; } } @@ -151,7 +152,9 @@ void KviAction::setEnabled(bool bEnabled) if(!pAction->isEnabled()) pAction->setEnabled(true); } - } else { + } + else + { for(QAction * pAction = m_pActionList->first(); pAction; pAction = m_pActionList->next()) { if(pAction->isEnabled()) @@ -197,39 +200,44 @@ QPixmap * KviAction::bigIcon() void KviAction::setup() { - connect(g_pApp,SIGNAL(reloadImages()),this,SLOT(reloadImages())); + connect(g_pApp, SIGNAL(reloadImages()), this, SLOT(reloadImages())); if(m_uFlags & InternalWindowMask) { - connect(g_pMainWindow,SIGNAL(activeWindowChanged()),this,SLOT(activeWindowChanged())); + connect(g_pMainWindow, SIGNAL(activeWindowChanged()), this, SLOT(activeWindowChanged())); if((m_uFlags & WindowOnlyIfUsersSelected) && (m_uFlags & (WindowChannel | WindowConsole | WindowQuery))) - connect(g_pMainWindow,SIGNAL(activeWindowSelectionStateChanged(bool)),this,SLOT(activeWindowSelectionStateChanged(bool))); + connect(g_pMainWindow, SIGNAL(activeWindowSelectionStateChanged(bool)), this, SLOT(activeWindowSelectionStateChanged(bool))); activeWindowChanged(); - } else { + } + else + { if(m_uFlags & NeedsConnection) { - connect(g_pMainWindow,SIGNAL(activeContextChanged()),this,SLOT(activeContextChanged())); - connect(g_pMainWindow,SIGNAL(activeContextStateChanged()),this,SLOT(activeContextStateChanged())); + connect(g_pMainWindow, SIGNAL(activeContextChanged()), this, SLOT(activeContextChanged())); + connect(g_pMainWindow, SIGNAL(activeContextStateChanged()), this, SLOT(activeContextStateChanged())); KviIrcContext * pContext = g_pMainWindow->activeContext(); if(!pContext) setEnabled(false); - else { + else + { switch(pContext->state()) { case KviIrcContext::LoggingIn: setEnabled(m_uFlags & EnableAtLogin); - break; + break; case KviIrcContext::Connected: setEnabled(true); - break; + break; default: setEnabled(false); - break; + break; } } - } else { + } + else + { if(m_uFlags & NeedsContext) { - connect(g_pMainWindow,SIGNAL(activeContextChanged()),this,SLOT(activeContextChanged())); + connect(g_pMainWindow, SIGNAL(activeContextChanged()), this, SLOT(activeContextChanged())); if(!g_pMainWindow->activeContext()) setEnabled(false); else @@ -241,7 +249,6 @@ void KviAction::setup() m_uInternalFlags |= KviAction::SetupDone; } - void KviAction::reloadImages() { if(!m_pActionList) @@ -288,15 +295,15 @@ void KviAction::activeWindowChanged() setEnabled(false); return; } - break; + break; case KviIrcContext::Connected: // this is ok - break; + break; default: if(isEnabled()) setEnabled(false); return; - break; + break; } } @@ -317,11 +324,15 @@ void KviAction::activeWindowChanged() bool bEnabled = ((KviConsoleWindow *)g_pActiveWindow)->selectedCount() > 0; if(bEnabled != isEnabled()) setEnabled(bEnabled); - } else { + } + else + { if(!isEnabled()) setEnabled(true); } - } else { + } + else + { if(isEnabled()) setEnabled(false); } @@ -334,11 +345,15 @@ void KviAction::activeWindowChanged() bool bEnabled = ((KviChannelWindow *)g_pActiveWindow)->selectedCount() > 0; if(bEnabled != isEnabled()) setEnabled(bEnabled); - } else { + } + else + { if(!isEnabled()) setEnabled(true); } - } else { + } + else + { if(isEnabled()) setEnabled(false); } @@ -351,11 +366,15 @@ void KviAction::activeWindowChanged() bool bEnabled = ((KviQueryWindow *)g_pActiveWindow)->selectedCount() > 0; if(bEnabled != isEnabled()) setEnabled(bEnabled); - } else { + } + else + { if(!isEnabled()) setEnabled(true); } - } else { + } + else + { if(isEnabled()) setEnabled(false); } @@ -365,7 +384,9 @@ void KviAction::activeWindowChanged() { if(!isEnabled()) setEnabled(true); - } else { + } + else + { if(isEnabled()) setEnabled(false); } @@ -375,7 +396,9 @@ void KviAction::activeWindowChanged() { if(isEnabled()) setEnabled(false); - } else { + } + else + { if(!isEnabled()) setEnabled(true); } @@ -394,7 +417,9 @@ void KviAction::activeWindowSelectionStateChanged(bool bSelectedNow) { if(bSelectedNow != isEnabled()) setEnabled(bSelectedNow); - } else { + } + else + { if(isEnabled()) setEnabled(false); } @@ -404,7 +429,9 @@ void KviAction::activeWindowSelectionStateChanged(bool bSelectedNow) { if(bSelectedNow != isEnabled()) setEnabled(bSelectedNow); - } else { + } + else + { if(isEnabled()) setEnabled(false); } @@ -414,7 +441,9 @@ void KviAction::activeWindowSelectionStateChanged(bool bSelectedNow) { if(bSelectedNow != isEnabled()) setEnabled(bSelectedNow); - } else { + } + else + { if(isEnabled()) setEnabled(false); } @@ -424,7 +453,9 @@ void KviAction::activeWindowSelectionStateChanged(bool bSelectedNow) { if(!isEnabled()) setEnabled(true); - } else { + } + else + { if(isEnabled()) setEnabled(false); } @@ -444,10 +475,11 @@ void KviAction::activeContextChanged() { if(m_uFlags & NeedsConnection) activeContextStateChanged(); - else - if(!isEnabled()) - setEnabled(true); - } else { + else if(!isEnabled()) + setEnabled(true); + } + else + { if(isEnabled()) setEnabled(false); } @@ -464,27 +496,31 @@ void KviAction::activeContextStateChanged() case KviIrcContext::Connecting: if(isEnabled()) setEnabled(false); - break; + break; case KviIrcContext::LoggingIn: if(m_uFlags & EnableAtLogin) { if(!isEnabled()) setEnabled(true); - } else { + } + else + { if(isEnabled()) setEnabled(false); } - break; + break; case KviIrcContext::Connected: if(!isEnabled()) setEnabled(true); - break; + break; default: if(isEnabled()) setEnabled(false); - break; + break; } - } else { + } + else + { if(isEnabled()) setEnabled(false); } @@ -500,14 +536,14 @@ bool KviAction::addToPopupMenu(QMenu * pMenu) if(!m_szKeySequence.isEmpty()) szTmp += '\t' + m_szKeySequence; - QAction *pAction; + QAction * pAction; if(pPix) - pAction = pMenu->addAction(*pPix,szTmp,this,SLOT(activate())); + pAction = pMenu->addAction(*pPix, szTmp, this, SLOT(activate())); else - pAction = pMenu->addAction(szTmp,this,SLOT(activate())); + pAction = pMenu->addAction(szTmp, this, SLOT(activate())); - // avoid Qt to put this action in the application menu based on its title - pAction->setMenuRole(QAction::NoRole); + // avoid Qt to put this action in the application menu based on its title + pAction->setMenuRole(QAction::NoRole); if(!isEnabled()) pAction->setEnabled(false); @@ -525,7 +561,7 @@ void KviAction::actionDestroyed() void KviAction::registerAction(QAction * pAction) { - connect(pAction,SIGNAL(destroyed()),this,SLOT(actionDestroyed())); + connect(pAction, SIGNAL(destroyed()), this, SLOT(actionDestroyed())); if(!m_pActionList) { m_pActionList = new KviPointerList; @@ -546,7 +582,7 @@ QAction * KviAction::addToCustomToolBar(KviCustomToolBar * pParentToolBar) pAction->setObjectName(m_szName); pParentToolBar->addAction(pAction); - connect(pAction,SIGNAL(triggered()),this,SLOT(activate())); + connect(pAction, SIGNAL(triggered()), this, SLOT(activate())); pAction->setVisible(true); if(!isEnabled()) diff --git a/src/kvirc/kernel/KviAction.h b/src/kvirc/kernel/KviAction.h index 4b3b3dd05..048fb5453 100644 --- a/src/kvirc/kernel/KviAction.h +++ b/src/kvirc/kernel/KviAction.h @@ -57,6 +57,7 @@ protected: QString m_szName; QString m_szVisibleName; QString m_szDescription; + public: /** * \brief Constructs an action category object @@ -71,24 +72,25 @@ public: * \brief Destroys an action category object */ ~KviActionCategory(); + public: /** * \brief Returns the name of the category * \return const QString & */ - const QString & name(){ return m_szName; }; + const QString & name() { return m_szName; }; /** * \brief Returns the visible name of the category * \return const QString & */ - const QString & visibleName(){ return m_szVisibleName; }; + const QString & visibleName() { return m_szVisibleName; }; /** * \brief Returns the description of the category * \return const QString & */ - const QString & description(){ return m_szDescription; }; + const QString & description() { return m_szDescription; }; }; /** @@ -104,25 +106,27 @@ public: * \enum InternalFlags * \brief Holds the internal flags of an action */ - enum InternalFlags { - Enabled = 1, /**< the action is enabled */ - SetupDone = 2 /**< the setup of the action is done */ + enum InternalFlags + { + Enabled = 1, /**< the action is enabled */ + SetupDone = 2 /**< the setup of the action is done */ }; /** * \enum Flags * \brief Holds the flags of an action */ - enum Flags { - NeedsContext = 1, /**< the action needs a context */ - NeedsConnection = 2, /**< the action needs a connection; implies NeedsContext */ - WindowConsole = 4, /**< the action is bound to a console window */ - WindowChannel = 8, /**< the action is bound to a channel window */ - WindowQuery = 16, /**< the action is bound to a query window */ - WindowDccChat = 32, /**< the action is bound to a DCC Chat window */ - InternalWindowMask = WindowConsole | WindowChannel | WindowQuery | WindowDccChat, /**< the action is bound to a window */ - EnableAtLogin = 64, /**< the action is enabled at login; implies NeedsConnection */ - WindowOnlyIfUsersSelected = 128 /**< the action is bound to a window only if it's selected by the user; implies at least one of WindowConsole | WindowChannel | WindowQuery */ + enum Flags + { + NeedsContext = 1, /**< the action needs a context */ + NeedsConnection = 2, /**< the action needs a connection; implies NeedsContext */ + WindowConsole = 4, /**< the action is bound to a console window */ + WindowChannel = 8, /**< the action is bound to a channel window */ + WindowQuery = 16, /**< the action is bound to a query window */ + WindowDccChat = 32, /**< the action is bound to a DCC Chat window */ + InternalWindowMask = WindowConsole | WindowChannel | WindowQuery | WindowDccChat, /**< the action is bound to a window */ + EnableAtLogin = 64, /**< the action is enabled at login; implies NeedsConnection */ + WindowOnlyIfUsersSelected = 128 /**< the action is bound to a window only if it's selected by the user; implies at least one of WindowConsole | WindowChannel | WindowQuery */ }; /** @@ -144,16 +148,15 @@ public: * \return KviAction */ KviAction( - QObject * pParent, - const QString & szName, - const QString & szVisibleName, - const QString & szDescription, - KviActionCategory * pCategory = NULL, - const QString & szBigIconId = QString(), - const QString & szSmallIconId = QString(), - unsigned int uFlags = 0, - const QString & szKeySequence = QString() - ); + QObject * pParent, + const QString & szName, + const QString & szVisibleName, + const QString & szDescription, + KviActionCategory * pCategory = NULL, + const QString & szBigIconId = QString(), + const QString & szSmallIconId = QString(), + unsigned int uFlags = 0, + const QString & szKeySequence = QString()); /** * \brief Constructs the action object @@ -174,34 +177,35 @@ public: * \return KviAction */ KviAction( - QObject * pParent, - const QString & szName, - const QString & szVisibleName, - const QString & szDescription, - KviActionCategory * pCategory = NULL, - const QString & szBigIconId = QString(), - KviIconManager::SmallIcon eSmallIcon = KviIconManager::None, - unsigned int uFlags = 0, - const QString & szKeySequence = QString() - ); + QObject * pParent, + const QString & szName, + const QString & szVisibleName, + const QString & szDescription, + KviActionCategory * pCategory = NULL, + const QString & szBigIconId = QString(), + KviIconManager::SmallIcon eSmallIcon = KviIconManager::None, + unsigned int uFlags = 0, + const QString & szKeySequence = QString()); /** * \brief Destroys the action object */ virtual ~KviAction(); + protected: - QString m_szName; - QString m_szVisibleName; - QString m_szDescription; - KviActionCategory * m_pCategory; - QString m_szBigIconId; - QString m_szSmallIconId; // this is alternative to m_eSmallIcon + QString m_szName; + QString m_szVisibleName; + QString m_szDescription; + KviActionCategory * m_pCategory; + QString m_szBigIconId; + QString m_szSmallIconId; // this is alternative to m_eSmallIcon KviIconManager::SmallIcon m_eSmallIcon; KviPointerList * m_pActionList; - unsigned short int m_uInternalFlags; - unsigned int m_uFlags; - QString m_szKeySequence; - QPointer m_pAccel; + unsigned short int m_uInternalFlags; + unsigned int m_uFlags; + QString m_szKeySequence; + QPointer m_pAccel; + public: /** * \brief Validates the flags of the action @@ -262,7 +266,7 @@ public: * \brief Returns the flag associated to the action * \return unsigned int */ - unsigned int flags(){ return m_uFlags; }; + unsigned int flags() { return m_uFlags; }; /** * \brief Returns true if the action is user-defined @@ -308,7 +312,7 @@ public: * \brief Destroys itself. Maybe the best function in the whole APIs :) * \return void */ - void suicide(){ delete this; }; + void suicide() { delete this; }; protected: /** * \brief Returns true if the setup is finished @@ -327,7 +331,7 @@ protected: * \brief Returns the list of actions associated to the action * \return KviPointerList * */ - KviPointerList * actionList(){ return m_pActionList; }; + KviPointerList * actionList() { return m_pActionList; }; /** * \brief Registers the action shortcut in the application diff --git a/src/kvirc/kernel/KviActionManager.cpp b/src/kvirc/kernel/KviActionManager.cpp index 715876e12..b2e700759 100644 --- a/src/kvirc/kernel/KviActionManager.cpp +++ b/src/kvirc/kernel/KviActionManager.cpp @@ -47,25 +47,25 @@ KviCustomToolBar * KviActionManager::m_pCurrentToolBar = 0; extern void register_core_actions(KviActionManager *); KviActionManager::KviActionManager() -: QObject() + : QObject() { - m_pActions = new KviPointerHashTable(101); + m_pActions = new KviPointerHashTable(101); m_pActions->setAutoDelete(false); - m_pCategories = new KviPointerHashTable(17,false); + m_pCategories = new KviPointerHashTable(17, false); m_pCategories->setAutoDelete(true); -#define CATEGORY(__var,__name,__vname,__descr) \ - __var = new KviActionCategory(__name,__vname,__descr); \ - m_pCategories->replace(__name,__var) +#define CATEGORY(__var, __name, __vname, __descr) \ + __var = new KviActionCategory(__name, __vname, __descr); \ + m_pCategories->replace(__name, __var) - CATEGORY(m_pCategoryIrc,"irc",__tr2qs("IRC"),__tr2qs("IRC context related actions")); - CATEGORY(m_pCategoryGeneric,"generic",__tr2qs("Generic"),__tr2qs("Generic actions")); - CATEGORY(m_pCategorySettings,"settings",__tr2qs("Settings"),__tr2qs("Actions related to settings")); - CATEGORY(m_pCategoryScripting,"scripting",__tr2qs("Scripting"),__tr2qs("Scripting related actions")); - CATEGORY(m_pCategoryGUI,"gui",__tr2qs("GUI"),__tr2qs("Actions related to the Graphic User Interface")); - CATEGORY(m_pCategoryChannel,"channel",__tr2qs("Channel"),__tr2qs("IRC channel related actions")); - CATEGORY(m_pCategoryTools,"tools",__tr2qs("Tools"),__tr2qs("Actions that will appear in the \"Tools\" menu")); + CATEGORY(m_pCategoryIrc, "irc", __tr2qs("IRC"), __tr2qs("IRC context related actions")); + CATEGORY(m_pCategoryGeneric, "generic", __tr2qs("Generic"), __tr2qs("Generic actions")); + CATEGORY(m_pCategorySettings, "settings", __tr2qs("Settings"), __tr2qs("Actions related to settings")); + CATEGORY(m_pCategoryScripting, "scripting", __tr2qs("Scripting"), __tr2qs("Scripting related actions")); + CATEGORY(m_pCategoryGUI, "gui", __tr2qs("GUI"), __tr2qs("Actions related to the Graphic User Interface")); + CATEGORY(m_pCategoryChannel, "channel", __tr2qs("Channel"), __tr2qs("IRC channel related actions")); + CATEGORY(m_pCategoryTools, "tools", __tr2qs("Tools"), __tr2qs("Actions that will appear in the \"Tools\" menu")); m_bCustomizingToolBars = false; m_pCurrentToolBar = 0; @@ -79,10 +79,10 @@ KviActionManager::~KviActionManager() // killed all the modules at this point... //KviActionDialog::cleanup(); - KviPointerHashTableIterator it(*m_pActions); + KviPointerHashTableIterator it(*m_pActions); while(KviAction * a = it.current()) { - disconnect(a,SIGNAL(destroyed()),this,SLOT(actionDestroyed())); + disconnect(a, SIGNAL(destroyed()), this, SLOT(actionDestroyed())); ++it; } delete m_pActions; @@ -90,27 +90,29 @@ KviActionManager::~KviActionManager() delete m_pCategories; } -void KviActionManager::load(const QString &szFileName) +void KviActionManager::load(const QString & szFileName) { - KviConfigurationFile cfg(szFileName,KviConfigurationFile::Read); + KviConfigurationFile cfg(szFileName, KviConfigurationFile::Read); KviConfigurationFileIterator it(*(cfg.dict())); while(it.current()) { cfg.setGroup(it.currentKey()); KviKvsUserAction * a = new KviKvsUserAction(this); - if(a->load(&cfg))registerAction(a); - else delete a; + if(a->load(&cfg)) + registerAction(a); + else + delete a; ++it; } } -void KviActionManager::save(const QString &szFileName) +void KviActionManager::save(const QString & szFileName) { - KviConfigurationFile cfg(szFileName,KviConfigurationFile::Write); + KviConfigurationFile cfg(szFileName, KviConfigurationFile::Write); cfg.clear(); - KviPointerHashTableIterator it(*m_pActions); + KviPointerHashTableIterator it(*m_pActions); while(KviAction * a = it.current()) { if(a->isKviUserActionNeverOverrideThis()) @@ -127,7 +129,7 @@ void KviActionManager::killAllKvsUserActions() KviPointerList dying; dying.setAutoDelete(true); - KviPointerHashTableIterator it(*m_pActions); + KviPointerHashTableIterator it(*m_pActions); while(KviAction * a = it.current()) { if(a->isKviUserActionNeverOverrideThis()) @@ -140,11 +142,11 @@ void KviActionManager::killAllKvsUserActions() dying.clear(); // bye :) } - -bool KviActionManager::coreActionExists(const QString &szName) +bool KviActionManager::coreActionExists(const QString & szName) { - KviAction *a = m_pActions->find(szName); - if(a)return (!a->isKviUserActionNeverOverrideThis()); + KviAction * a = m_pActions->find(szName); + if(a) + return (!a->isKviUserActionNeverOverrideThis()); return false; } @@ -153,7 +155,8 @@ QString KviActionManager::nameForAutomaticAction(const QString & szTemplate) QString szRet; int i = 1; - do { + do + { szRet = QString("%1%2").arg(szTemplate).arg(i); i++; } while(m_pActions->find(szRet)); @@ -166,12 +169,13 @@ void KviActionManager::emitRemoveActionsHintRequest() emit removeActionsHintRequest(); } -KviActionCategory * KviActionManager::category(const QString &szName) +KviActionCategory * KviActionManager::category(const QString & szName) { if(!szName.isEmpty()) { KviActionCategory * c = m_pCategories->find(szName); - if(c)return c; + if(c) + return c; } return m_pCategoryGeneric; } @@ -180,7 +184,8 @@ void KviActionManager::customizeToolBarsDialogCreated() { m_bCustomizingToolBars = true; m_pCurrentToolBar = KviCustomToolBarManager::instance()->firstExistingToolBar(); - if(m_pCurrentToolBar)m_pCurrentToolBar->update(); + if(m_pCurrentToolBar) + m_pCurrentToolBar->update(); emit beginCustomizeToolBars(); } @@ -198,13 +203,16 @@ void KviActionManager::customizeToolBarsDialogDestroyed() void KviActionManager::setCurrentToolBar(KviCustomToolBar * t) { - if(m_pCurrentToolBar == t)return; + if(m_pCurrentToolBar == t) + return; KviCustomToolBar * old = m_pCurrentToolBar; m_pCurrentToolBar = t; - if(old)old->update(); + if(old) + old->update(); if(!m_pCurrentToolBar && m_bCustomizingToolBars) m_pCurrentToolBar = KviCustomToolBarManager::instance()->firstExistingToolBar(); - if(m_pCurrentToolBar)m_pCurrentToolBar->update(); + if(m_pCurrentToolBar) + m_pCurrentToolBar->update(); emit currentToolBarChanged(); } @@ -221,7 +229,8 @@ void KviActionManager::loadAllAvailableActions() void KviActionManager::init() { - if(!m_pInstance)m_pInstance = new KviActionManager(); + if(!m_pInstance) + m_pInstance = new KviActionManager(); } void KviActionManager::done() @@ -235,7 +244,7 @@ void KviActionManager::done() void KviActionManager::delayedRegisterAccelerators() { - KviPointerHashTableIterator it(*m_pActions); + KviPointerHashTableIterator it(*m_pActions); while(KviAction * a = it.current()) { a->registerAccelerator(); @@ -245,10 +254,12 @@ void KviActionManager::delayedRegisterAccelerators() bool KviActionManager::registerAction(KviAction * a) { - if(m_pActions->find(a->name()))return false; - connect(a,SIGNAL(destroyed()),this,SLOT(actionDestroyed())); - m_pActions->insert(a->name(),a); - if(g_pMainWindow)a->registerAccelerator(); // otherwise it is delayed! + if(m_pActions->find(a->name())) + return false; + connect(a, SIGNAL(destroyed()), this, SLOT(actionDestroyed())); + m_pActions->insert(a->name(), a); + if(g_pMainWindow) + a->registerAccelerator(); // otherwise it is delayed! return true; } @@ -258,19 +269,21 @@ void KviActionManager::actionDestroyed() m_pActions->remove(a->name()); } -bool KviActionManager::unregisterAction(const QString &szName) +bool KviActionManager::unregisterAction(const QString & szName) { KviAction * a = m_pActions->find(szName); - if(!a)return false; - disconnect(a,SIGNAL(destroyed()),this,SLOT(actionDestroyed())); + if(!a) + return false; + disconnect(a, SIGNAL(destroyed()), this, SLOT(actionDestroyed())); a->unregisterAccelerator(); return m_pActions->remove(szName); } -KviAction * KviActionManager::getAction(const QString &szName) +KviAction * KviActionManager::getAction(const QString & szName) { KviAction * a = m_pActions->find(szName); - if(a)return a; + if(a) + return a; int idx = szName.indexOf('.'); if(idx < 0) { @@ -296,18 +309,20 @@ KviAction * KviActionManager::getAction(const QString &szName) } // try to preload the module that might register this action... QString szModule = szName.left(idx); - if(!g_pModuleManager->getModule(szModule))return 0; + if(!g_pModuleManager->getModule(szModule)) + return 0; return m_pActions->find(szName); } -void KviActionManager::listActionsByCategory(const QString &szCatName,KviPointerList * pBuffer) +void KviActionManager::listActionsByCategory(const QString & szCatName, KviPointerList * pBuffer) { loadAllAvailableActions(); KviActionCategory * pCat = category(szCatName); pBuffer->setAutoDelete(false); pBuffer->clear(); - if(!pCat)return; - KviPointerHashTableIterator it(*m_pActions); + if(!pCat) + return; + KviPointerHashTableIterator it(*m_pActions); while(KviAction * a = it.current()) { if(a->category() == pCat) diff --git a/src/kvirc/kernel/KviActionManager.h b/src/kvirc/kernel/KviActionManager.h index 1087e273d..8b6781ba5 100644 --- a/src/kvirc/kernel/KviActionManager.h +++ b/src/kvirc/kernel/KviActionManager.h @@ -43,10 +43,11 @@ class KVIRC_API KviActionManager : public QObject public: KviActionManager(); ~KviActionManager(); + protected: static KviActionManager * m_pInstance; - KviPointerHashTable * m_pActions; - KviPointerHashTable * m_pCategories; + KviPointerHashTable * m_pActions; + KviPointerHashTable * m_pCategories; static bool m_bCustomizingToolBars; // action categories @@ -60,42 +61,44 @@ protected: // internal, current toolbar to be edited (only when customizing) static KviCustomToolBar * m_pCurrentToolBar; bool m_bCoreActionsRegistered; + public: static void init(); static void done(); - static KviActionManager * instance(){ return m_pInstance; }; + static KviActionManager * instance() { return m_pInstance; }; static void loadAllAvailableActions(); - static bool customizingToolBars(){ return m_bCustomizingToolBars; }; - static KviActionCategory * categoryIrc(){ return m_pCategoryIrc; }; - static KviActionCategory * categoryGeneric(){ return m_pCategoryGeneric; }; - static KviActionCategory * categorySettings(){ return m_pCategorySettings; }; - static KviActionCategory * categoryScripting(){ return m_pCategoryScripting; }; - static KviActionCategory * categoryGUI(){ return m_pCategoryGUI; }; - static KviActionCategory * categoryChannel(){ return m_pCategoryChannel; }; - static KviActionCategory * categoryTools(){ return m_pCategoryTools; }; - - KviPointerHashTable * actions(){ return m_pActions; }; - KviActionCategory * category(const QString &szName); - KviPointerHashTable * categories(){ return m_pCategories; }; + static bool customizingToolBars() { return m_bCustomizingToolBars; }; + static KviActionCategory * categoryIrc() { return m_pCategoryIrc; }; + static KviActionCategory * categoryGeneric() { return m_pCategoryGeneric; }; + static KviActionCategory * categorySettings() { return m_pCategorySettings; }; + static KviActionCategory * categoryScripting() { return m_pCategoryScripting; }; + static KviActionCategory * categoryGUI() { return m_pCategoryGUI; }; + static KviActionCategory * categoryChannel() { return m_pCategoryChannel; }; + static KviActionCategory * categoryTools() { return m_pCategoryTools; }; + + KviPointerHashTable * actions() { return m_pActions; }; + KviActionCategory * category(const QString & szName); + KviPointerHashTable * categories() { return m_pCategories; }; void killAllKvsUserActions(); - static KviCustomToolBar * currentToolBar(){ return m_pCurrentToolBar; }; - KviAction * getAction(const QString &szName); - void listActionsByCategory(const QString &szCatName,KviPointerList * pBuffer); - QString nameForAutomaticAction(const QString &szTemplate); - bool coreActionExists(const QString &szName); + static KviCustomToolBar * currentToolBar() { return m_pCurrentToolBar; }; + KviAction * getAction(const QString & szName); + void listActionsByCategory(const QString & szCatName, KviPointerList * pBuffer); + QString nameForAutomaticAction(const QString & szTemplate); + bool coreActionExists(const QString & szName); - void load(const QString &szFileName); - void save(const QString &szFileName); + void load(const QString & szFileName); + void save(const QString & szFileName); bool registerAction(KviAction * a); - bool unregisterAction(const QString &szName); + bool unregisterAction(const QString & szName); void emitRemoveActionsHintRequest(); + protected: void setCurrentToolBar(KviCustomToolBar * t); - KviAction * findAction(const QString &szName){ return m_pActions->find(szName); }; + KviAction * findAction(const QString & szName) { return m_pActions->find(szName); }; void customizeToolBarsDialogCreated(); void customizeToolBarsDialogDestroyed(); void tryFindCurrentToolBar(); @@ -105,14 +108,17 @@ protected slots: signals: void beginCustomizeToolBars(); void endCustomizeToolBars(); - void currentToolBarChanged(); // emitted only when customizing! + void currentToolBarChanged(); // emitted only when customizing! void removeActionsHintRequest(); // connected by the KviCustomToolBarDialog to flash the trashcan // when the user tries to remove an action from the toolbar // and it fails to drag it on the trashcan }; -#define ACTION_POPUP_ITEM(__name,__popup) \ - { KviAction * a = KviActionManager::instance()->getAction(__name); if(a)a->addToPopupMenu(__popup); } - +#define ACTION_POPUP_ITEM(__name, __popup) \ + { \ + KviAction * a = KviActionManager::instance()->getAction(__name); \ + if(a) \ + a->addToPopupMenu(__popup); \ + } #endif //!_KVI_ACTIONMANAGER_H_ diff --git a/src/kvirc/kernel/KviApplication.cpp b/src/kvirc/kernel/KviApplication.cpp index c934e2459..3ec651d87 100644 --- a/src/kvirc/kernel/KviApplication.cpp +++ b/src/kvirc/kernel/KviApplication.cpp @@ -88,15 +88,15 @@ #include #ifndef COMPILE_NO_IPC - #include "KviIpcSentinel.h" +#include "KviIpcSentinel.h" #endif #ifdef COMPILE_CRYPT_SUPPORT - #include "KviCryptEngineManager.h" +#include "KviCryptEngineManager.h" #endif #ifdef COMPILE_SSL_SUPPORT - #include "KviSSL.h" +#include "KviSSL.h" #endif #include @@ -108,25 +108,25 @@ #include #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - #include - #include +#include +#include #endif #ifdef COMPILE_DBUS_SUPPORT - #include +#include #endif #ifdef COMPILE_KDE_SUPPORT - #ifdef COMPILE_KDE4_SUPPORT - #include - #else - #include - #endif - #include +#ifdef COMPILE_KDE4_SUPPORT +#include +#else +#include +#endif +#include #endif #ifdef COMPILE_QX11INFO_SUPPORT - #include +#include #endif /* @@ -135,68 +135,67 @@ which conflicts with QDir and KviApplication::KvircSubdir DO NOT REMOVE THEM EVEN IF THEY ARE DEFINED ALSO IN KviApplication.h */ #ifdef Unsorted - #undef Unsorted +#undef Unsorted #endif #ifdef None - #undef None +#undef None #endif #include #include // rand & srand -#include // time() in srand() +#include // time() in srand() // Global application pointer -KVIRC_API KviApplication * g_pApp = nullptr; +KVIRC_API KviApplication * g_pApp = nullptr; -KviConfigurationFile * g_pWinPropertiesConfig = nullptr; -KVIRC_API KviIrcServerDataBase * g_pServerDataBase = nullptr; -KVIRC_API KviProxyDataBase * g_pProxyDataBase = nullptr; +KviConfigurationFile * g_pWinPropertiesConfig = nullptr; +KVIRC_API KviIrcServerDataBase * g_pServerDataBase = nullptr; +KVIRC_API KviProxyDataBase * g_pProxyDataBase = nullptr; // Global windows -KVIRC_API KviColorWindow * g_pColorWindow = nullptr; -KVIRC_API KviTextIconWindow * g_pTextIconWindow = nullptr; -KVIRC_API QMenu * g_pInputPopup = nullptr; -KVIRC_API QStringList * g_pRecentTopicList = nullptr; -KVIRC_API KviPointerHashTable * g_pGlobalWindowDict = nullptr; -KVIRC_API KviMediaManager * g_pMediaManager = nullptr; -KVIRC_API KviSharedFilesManager * g_pSharedFilesManager = nullptr; -KVIRC_API KviNickServRuleSet * g_pNickServRuleSet = nullptr; -KVIRC_API KviCtcpPageDialog * g_pCtcpPageDialog = nullptr; -KVIRC_API KviRegisteredChannelDataBase * g_pRegisteredChannelDataBase = nullptr; -KVIRC_API KviHistoryWindowWidget * g_pHistoryWindow = nullptr; +KVIRC_API KviColorWindow * g_pColorWindow = nullptr; +KVIRC_API KviTextIconWindow * g_pTextIconWindow = nullptr; +KVIRC_API QMenu * g_pInputPopup = nullptr; +KVIRC_API QStringList * g_pRecentTopicList = nullptr; +KVIRC_API KviPointerHashTable * g_pGlobalWindowDict = nullptr; +KVIRC_API KviMediaManager * g_pMediaManager = nullptr; +KVIRC_API KviSharedFilesManager * g_pSharedFilesManager = nullptr; +KVIRC_API KviNickServRuleSet * g_pNickServRuleSet = nullptr; +KVIRC_API KviCtcpPageDialog * g_pCtcpPageDialog = nullptr; +KVIRC_API KviRegisteredChannelDataBase * g_pRegisteredChannelDataBase = nullptr; +KVIRC_API KviHistoryWindowWidget * g_pHistoryWindow = nullptr; // this is eventually set by libkviident -KVIRC_API int g_iIdentDaemonRunningUsers = 0; +KVIRC_API int g_iIdentDaemonRunningUsers = 0; // Loaded and destroyed by KviIconManager -QPixmap * g_pUserChanStatePixmap = nullptr; -QPixmap * g_pActivityMeterPixmap = nullptr; - +QPixmap * g_pUserChanStatePixmap = nullptr; +QPixmap * g_pActivityMeterPixmap = nullptr; #ifdef COMPILE_PSEUDO_TRANSPARENCY - #include +#include - KVIRC_API QPixmap * g_pShadedParentGlobalDesktopBackground = nullptr; // the pixmap that we use for MdiManager - KVIRC_API QPixmap * g_pShadedChildGlobalDesktopBackground = nullptr; // the pixmap that we use for MdiChild - #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - #include - #include - #endif +KVIRC_API QPixmap * g_pShadedParentGlobalDesktopBackground = nullptr; // the pixmap that we use for MdiManager +KVIRC_API QPixmap * g_pShadedChildGlobalDesktopBackground = nullptr; // the pixmap that we use for MdiChild +#if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) +#include +#include +#endif #endif #ifdef COMPILE_CRYPT_SUPPORT - #include "KviCryptEngine.h" - // global crypt engine manager - KVIRC_API KviCryptEngineManager * g_pCryptEngineManager = nullptr; +#include "KviCryptEngine.h" +// global crypt engine manager +KVIRC_API KviCryptEngineManager * g_pCryptEngineManager = nullptr; #endif #include -KviApplication::KviApplication(int &argc,char ** argv) -: KviTalApplication(argc,argv) +KviApplication::KviApplication(int & argc, char ** argv) + : KviTalApplication(argc, argv) { setApplicationName("KVIrc"); setApplicationVersion(KVIRC_VERSION_RELEASE); @@ -204,36 +203,35 @@ KviApplication::KviApplication(int &argc,char ** argv) setOrganizationName("KVIrc"); // Ok...everything begins here - g_pApp = this; - m_szConfigFile = QString(); - m_bCreateConfig = false; - m_bUpdateGuiPending = false; + g_pApp = this; + m_szConfigFile = QString(); + m_bCreateConfig = false; + m_bUpdateGuiPending = false; m_pPendingAvatarChanges = nullptr; - m_pRecentChannelDict = nullptr; + m_pRecentChannelDict = nullptr; #ifndef COMPILE_NO_IPC - m_pIpcSentinel = nullptr; + m_pIpcSentinel = nullptr; #endif - m_iHeartbeatTimerId = -1; - m_fntDefaultFont = font(); - m_bSetupDone = false; - m_bClosingDown = false; + m_iHeartbeatTimerId = -1; + m_fntDefaultFont = font(); + m_bSetupDone = false; + m_bClosingDown = false; kvi_socket_flushTrafficCounters(); // don't let qt quit the application by itself setQuitOnLastWindowClosed(false); #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - m_bPortable = KviFileUtils::fileExists(g_pApp->applicationDirPath()+KVI_PATH_SEPARATOR_CHAR+"portable"); + m_bPortable = KviFileUtils::fileExists(g_pApp->applicationDirPath() + KVI_PATH_SEPARATOR_CHAR + "portable"); #endif - //note: the early qApp->style() call leads to a crash on osx +//note: the early qApp->style() call leads to a crash on osx #if !defined(COMPILE_ENABLE_GTKSTYLE) && !defined(COMPILE_ON_MAC) // workaround for gtk+ style forcing a crappy white background (ticket #777, #964, #1009, ..) - if(QString("QGtkStyle").compare(qApp->style()->metaObject()->className())==0) + if(QString("QGtkStyle").compare(qApp->style()->metaObject()->className()) == 0) { setStyle(QStyleFactory::create("Fusion")); setPalette(style()->standardPalette()); } #endif - } void KviApplication::setup() @@ -249,7 +247,7 @@ void KviApplication::setup() #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) // setup winsock.dll WSADATA w; - WSAStartup(MAKELONG((unsigned short)2,(unsigned short)0),&w); + WSAStartup(MAKELONG((unsigned short)2, (unsigned short)0), &w); #endif #ifndef COMPILE_NO_IPC @@ -267,27 +265,27 @@ void KviApplication::setup() // Setup our filesystem and initialize locale loadDirectories(); - KviStringConversion::init(m_szGlobalKvircDir,m_szLocalKvircDir); + KviStringConversion::init(m_szGlobalKvircDir, m_szLocalKvircDir); g_pIconManager = new KviIconManager(); // add KVIrc common dirs to QT searchpath QString szPath; - getLocalKvircDirectory(szPath,None,"avatars"); - QDir::addSearchPath("avatars",szPath); - getLocalKvircDirectory(szPath,None,"pics"); - QDir::addSearchPath("pics",szPath); - getLocalKvircDirectory(szPath,None,"audio"); - QDir::addSearchPath("audio",szPath); + getLocalKvircDirectory(szPath, None, "avatars"); + QDir::addSearchPath("avatars", szPath); + getLocalKvircDirectory(szPath, None, "pics"); + QDir::addSearchPath("pics", szPath); + getLocalKvircDirectory(szPath, None, "audio"); + QDir::addSearchPath("audio", szPath); #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) // need to load image plugins :( QString szPluginsDir; - getGlobalKvircDirectory(szPluginsDir,None,"qt-plugins/"); + getGlobalKvircDirectory(szPluginsDir, None, "qt-plugins/"); addLibraryPath(szPluginsDir); - //MessageBox(0,QApplication::libraryPaths().join(";").toLocal8Bit().data(),"KVIrc",0); - //KviMessageBox::information(libraryPaths().join(";")); - //qDebug("%1",loader.isLoaded()); +//MessageBox(0,QApplication::libraryPaths().join(";").toLocal8Bit().data(),"KVIrc",0); +//KviMessageBox::information(libraryPaths().join(";")); +//qDebug("%1",loader.isLoaded()); #endif // Make sure that the C strings are translated to utf8 @@ -312,13 +310,13 @@ void KviApplication::setup() g_pModuleManager = new KviModuleManager(); - if(getReadOnlyConfigPath(szTmp,KVI_CONFIGFILE_USERACTIONS)) + if(getReadOnlyConfigPath(szTmp, KVI_CONFIGFILE_USERACTIONS)) KviActionManager::instance()->load(szTmp); // Initialize and load the identities KviUserIdentityManager::init(); - if(getReadOnlyConfigPath(szTmp,KVI_CONFIGFILE_IDENTITIES)) + if(getReadOnlyConfigPath(szTmp, KVI_CONFIGFILE_IDENTITIES)) KviUserIdentityManager::instance()->load(szTmp); KviAnimatedPixmapCache::init(); @@ -339,41 +337,41 @@ void KviApplication::setup() setAttribute(Qt::AA_DontShowIconsInMenus, !KVI_OPTION_BOOL(KviOption_boolShowIconsInPopupMenus)); // Load the win properties config - getLocalKvircDirectory(szTmp,Config,KVI_CONFIGFILE_WINPROPERTIES); - g_pWinPropertiesConfig = new KviConfigurationFile(szTmp,KviConfigurationFile::ReadWrite); + getLocalKvircDirectory(szTmp, Config, KVI_CONFIGFILE_WINPROPERTIES); + g_pWinPropertiesConfig = new KviConfigurationFile(szTmp, KviConfigurationFile::ReadWrite); // Load the server database - g_pServerDataBase = new KviIrcServerDataBase(); - if(getReadOnlyConfigPath(szTmp,KVI_CONFIGFILE_SERVERDB)) + g_pServerDataBase = new KviIrcServerDataBase(); + if(getReadOnlyConfigPath(szTmp, KVI_CONFIGFILE_SERVERDB)) g_pServerDataBase->load(szTmp); // Load the proxy database g_pProxyDataBase = new KviProxyDataBase(); - if(getReadOnlyConfigPath(szTmp,KVI_CONFIGFILE_PROXYDB)) + if(getReadOnlyConfigPath(szTmp, KVI_CONFIGFILE_PROXYDB)) g_pProxyDataBase->load(szTmp); // Event manager - if(getReadOnlyConfigPath(szTmp,KVI_CONFIGFILE_EVENTS)) + if(getReadOnlyConfigPath(szTmp, KVI_CONFIGFILE_EVENTS)) KviKvs::loadAppEvents(szTmp); - if(getReadOnlyConfigPath(szTmp,KVI_CONFIGFILE_RAWEVENTS)) + if(getReadOnlyConfigPath(szTmp, KVI_CONFIGFILE_RAWEVENTS)) KviKvs::loadRawEvents(szTmp); // Popup manager - if(getReadOnlyConfigPath(szTmp,KVI_CONFIGFILE_POPUPS)) + if(getReadOnlyConfigPath(szTmp, KVI_CONFIGFILE_POPUPS)) KviKvs::loadPopups(szTmp); KviCustomToolBarManager::init(); - if(getReadOnlyConfigPath(szTmp,KVI_CONFIGFILE_CUSTOMTOOLBARS)) + if(getReadOnlyConfigPath(szTmp, KVI_CONFIGFILE_CUSTOMTOOLBARS)) KviCustomToolBarManager::instance()->load(szTmp); // Alias manager - if(getReadOnlyConfigPath(szTmp,KVI_CONFIGFILE_ALIASES)) + if(getReadOnlyConfigPath(szTmp, KVI_CONFIGFILE_ALIASES)) KviKvs::loadAliases(szTmp); // Script addons manager (this in fact has delayed loading, so we don't even care // about showing up an entry in the splash screen) - if(getReadOnlyConfigPath(szTmp,KVI_CONFIGFILE_SCRIPTADDONS)) + if(getReadOnlyConfigPath(szTmp, KVI_CONFIGFILE_SCRIPTADDONS)) KviKvs::loadScriptAddons(szTmp); g_pTextIconManager = new KviTextIconManager(); @@ -387,50 +385,50 @@ void KviApplication::setup() // media manager g_pMediaManager = new KviMediaManager(); g_pMediaManager->lock(); - if(getReadOnlyConfigPath(szTmp,KVI_CONFIGFILE_MEDIATYPES)) + if(getReadOnlyConfigPath(szTmp, KVI_CONFIGFILE_MEDIATYPES)) g_pMediaManager->load(szTmp); g_pMediaManager->unlock(); // registered user data base g_pRegisteredUserDataBase = new KviRegisteredUserDataBase(); - if(getReadOnlyConfigPath(szTmp,KVI_CONFIGFILE_REGUSERDB)) + if(getReadOnlyConfigPath(szTmp, KVI_CONFIGFILE_REGUSERDB)) g_pRegisteredUserDataBase->load(szTmp); // registered channel data base g_pRegisteredChannelDataBase = new KviRegisteredChannelDataBase(); - if(getReadOnlyConfigPath(szTmp,KVI_CONFIGFILE_REGCHANDB)) + if(getReadOnlyConfigPath(szTmp, KVI_CONFIGFILE_REGCHANDB)) g_pRegisteredChannelDataBase->load(szTmp); // file trader g_pSharedFilesManager = new KviSharedFilesManager(); - if(getReadOnlyConfigPath(szTmp,KVI_CONFIGFILE_SHAREDFILES)) + if(getReadOnlyConfigPath(szTmp, KVI_CONFIGFILE_SHAREDFILES)) g_pSharedFilesManager->load(szTmp); // nick serv data base g_pNickServRuleSet = new KviNickServRuleSet(); - if(getReadOnlyConfigPath(szTmp,KVI_CONFIGFILE_NICKSERVDATABASE)) + if(getReadOnlyConfigPath(szTmp, KVI_CONFIGFILE_NICKSERVDATABASE)) g_pNickServRuleSet->load(szTmp); // Identity profiles database KviIdentityProfileSet::init(); - if(getReadOnlyConfigPath(szTmp,KVI_CONFIGFILE_PROFILESDATABASE)) + if(getReadOnlyConfigPath(szTmp, KVI_CONFIGFILE_PROFILESDATABASE)) KviIdentityProfileSet::instance()->load(szTmp); KviAvatarCache::init(); - if(getReadOnlyConfigPath(szTmp,KVI_CONFIGFILE_AVATARCACHE)) + if(getReadOnlyConfigPath(szTmp, KVI_CONFIGFILE_AVATARCACHE)) KviAvatarCache::instance()->load(szTmp); KviInputHistory::init(); - if(getReadOnlyConfigPath(szTmp,KVI_CONFIGFILE_INPUTHISTORY)) + if(getReadOnlyConfigPath(szTmp, KVI_CONFIGFILE_INPUTHISTORY)) KviInputHistory::instance()->load(szTmp); KviDefaultScriptManager::init(); - if(getReadOnlyConfigPath(szTmp,KVI_CONFIGFILE_DEFAULTSCRIPT)) + if(getReadOnlyConfigPath(szTmp, KVI_CONFIGFILE_DEFAULTSCRIPT)) KviDefaultScriptManager::instance()->load(szTmp); else KviDefaultScriptManager::instance()->loadEmptyConfig(); - // Eventually initialize the crypt engine manager +// Eventually initialize the crypt engine manager #ifdef COMPILE_CRYPT_SUPPORT g_pCryptEngineManager = new KviCryptEngineManager(); #endif @@ -444,19 +442,19 @@ void KviApplication::setup() g_pServerParser = new KviIrcServerParser(); // Global window dictionary - g_pGlobalWindowDict = new KviPointerHashTable(41); + g_pGlobalWindowDict = new KviPointerHashTable(41); g_pGlobalWindowDict->setAutoDelete(false); // Script object controller //g_pScriptObjectController = new KviScriptObjectController(); gone QString szStylesheetFile; - getGlobalKvircDirectory(szStylesheetFile,Config,"style.css"); + getGlobalKvircDirectory(szStylesheetFile, Config, "style.css"); if(KviFileUtils::fileExists(szStylesheetFile)) { QString szStyleData; - KviFileUtils::readFile(szStylesheetFile,szStyleData); - szStyleData.replace("global://",m_szGlobalKvircDir); - szStyleData.replace("local://",m_szLocalKvircDir); + KviFileUtils::readFile(szStylesheetFile, szStyleData); + szStyleData.replace("global://", m_szGlobalKvircDir); + szStyleData.replace("local://", m_szLocalKvircDir); setStyleSheet(szStyleData); } @@ -552,7 +550,8 @@ KviApplication::~KviApplication() delete g_pProxyDataBase; delete g_pWinPropertiesConfig; saveTextIcons(); - if(g_pTextIconWindow)delete g_pTextIconWindow; + if(g_pTextIconWindow) + delete g_pTextIconWindow; delete g_pTextIconManager; delete g_pIconManager; delete g_pServerParser; @@ -585,11 +584,12 @@ KviApplication::~KviApplication() saveScriptAddons(); // kill the remaining resources delete g_pColorWindow; - if(g_pHistoryWindow)delete g_pHistoryWindow; + if(g_pHistoryWindow) + delete g_pHistoryWindow; saveInputHistory(); KviInputHistory::done(); delete g_pInputPopup; - //delete g_pScriptObjectController; +//delete g_pScriptObjectController; #ifdef COMPILE_CRYPT_SUPPORT delete g_pCryptEngineManager; #endif @@ -599,7 +599,7 @@ KviApplication::~KviApplication() if(m_pPendingAvatarChanges) delete m_pPendingAvatarChanges; KviAnimatedPixmapCache::done(); - // Kill the thread manager.... all the slave threads should have been already terminated ... +// Kill the thread manager.... all the slave threads should have been already terminated ... #ifdef COMPILE_SSL_SUPPORT KviSSL::globalDestroy(); #endif @@ -700,7 +700,7 @@ void KviApplication::notifierMessage(KviWindow * pWnd, int iIconId, const QStrin if(!bKNotifyConfigFileChecked) { #ifdef COMPILE_KDE4_SUPPORT - QString szFileName = KStandardDirs::locateLocal("data",QString::fromUtf8("kvirc/kvirc.notifyrc")); + QString szFileName = KStandardDirs::locateLocal("data", QString::fromUtf8("kvirc/kvirc.notifyrc")); #else QString szFileName = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + "/" + QString::fromUtf8("kvirc/kvirc.notifyrc"); #endif @@ -714,19 +714,18 @@ void KviApplication::notifierMessage(KviWindow * pWnd, int iIconId, const QStrin KviFileUtils::makeDir(inf.absolutePath()); QString szKNotifyConfig = QString::fromUtf8( - "[Global]\n" \ - "IconName=kvirc\n" \ - "Comment=The K-Visual IRC Client\n" \ - "Name=kvirc\n" \ - "\n" \ - "[Event/incomingMessage]\n" \ - "Name=KVIrc\n" \ - "Comment=Someone sent us a message\n" \ - "Action=Popup|Taskbar\n" \ - "Persistent=true\n" \ - ); - - KviFileUtils::writeFile(szFileName,szKNotifyConfig); + "[Global]\n" + "IconName=kvirc\n" + "Comment=The K-Visual IRC Client\n" + "Name=kvirc\n" + "\n" + "[Event/incomingMessage]\n" + "Name=KVIrc\n" + "Comment=Someone sent us a message\n" + "Action=Popup|Taskbar\n" + "Persistent=true\n"); + + KviFileUtils::writeFile(szFileName, szKNotifyConfig); } bKNotifyConfigFileChecked = true; @@ -740,8 +739,12 @@ void KviApplication::notifierMessage(KviWindow * pWnd, int iIconId, const QStrin KviIconManager::SmallIcon eIcon = KviIconManager::None; switch(pWnd->type()) { - case KviWindow::Console: eIcon = KviIconManager::Links; break; - case KviWindow::Channel: eIcon = KviIconManager::Channel; break; + case KviWindow::Console: + eIcon = KviIconManager::Links; + break; + case KviWindow::Channel: + eIcon = KviIconManager::Channel; + break; case KviWindow::Query: { KviQueryWindow * pQuery = KVI_DYNAMIC(KviQueryWindow *, pWnd); @@ -761,11 +764,21 @@ void KviApplication::notifierMessage(KviWindow * pWnd, int iIconId, const QStrin eIcon = KviIconManager::Query; } break; - case KviWindow::SocketSpy: eIcon = KviIconManager::Spy; break; - case KviWindow::DccChat: eIcon = KviIconManager::DccMsg; break; - case KviWindow::DccTransfer: eIcon = KviIconManager::Dcc; break; - case KviWindow::UserWindow: eIcon = KviIconManager::UserWindow; break; - case KviWindow::Debug: eIcon = KviIconManager::Bomb; break; + case KviWindow::SocketSpy: + eIcon = KviIconManager::Spy; + break; + case KviWindow::DccChat: + eIcon = KviIconManager::DccMsg; + break; + case KviWindow::DccTransfer: + eIcon = KviIconManager::Dcc; + break; + case KviWindow::UserWindow: + eIcon = KviIconManager::UserWindow; + break; + case KviWindow::Debug: + eIcon = KviIconManager::Bomb; + break; //KviWindow::DeadChannel //KviWindow::DeadQuery //KviWindow::Editor @@ -784,22 +797,23 @@ void KviApplication::notifierMessage(KviWindow * pWnd, int iIconId, const QStrin //KviWindow::LogView //KviWindow::Offer case KviWindow::Unknown: - default: eIcon = KviIconManager::KVIrc; break; + default: + eIcon = KviIconManager::KVIrc; + break; } if(!pIcon) pIcon = g_pIconManager->getSmallIcon(eIcon); - KNotification * pNotify = nullptr; #if defined(COMPILE_KDE4_SUPPORT) - #if KDE_IS_VERSION(4,4,0) - pNotify = new KNotification("incomingMessage",KNotification::CloseWhenWidgetActivated,this); - #else - pNotify = new KNotification("incomingMessage",g_pMainWindow,KNotification::CloseWhenWidgetActivated); - #endif +#if KDE_IS_VERSION(4, 4, 0) + pNotify = new KNotification("incomingMessage", KNotification::CloseWhenWidgetActivated, this); #else - pNotify = new KNotification("incomingMessage",g_pMainWindow,KNotification::CloseWhenWidgetActivated); + pNotify = new KNotification("incomingMessage", g_pMainWindow, KNotification::CloseWhenWidgetActivated); +#endif +#else + pNotify = new KNotification("incomingMessage", g_pMainWindow, KNotification::CloseWhenWidgetActivated); #endif pNotify->setFlags(KNotification::Persistent); pNotify->setTitle(szTitle); @@ -813,13 +827,15 @@ void KviApplication::notifierMessage(KviWindow * pWnd, int iIconId, const QStrin pNotify->setComponentName("kvirc"); #endif - connect(pNotify,SIGNAL(activated()),this,SLOT(showParentFrame())); - connect(pNotify,SIGNAL(action1Activated()),this,SLOT(showParentFrame())); - connect(pNotify,SIGNAL(action2Activated()),pNotify,SLOT(close())); - connect(pNotify,SIGNAL(ignored()),pNotify,SLOT(close())); + connect(pNotify, SIGNAL(activated()), this, SLOT(showParentFrame())); + connect(pNotify, SIGNAL(action1Activated()), this, SLOT(showParentFrame())); + connect(pNotify, SIGNAL(action2Activated()), pNotify, SLOT(close())); + connect(pNotify, SIGNAL(ignored()), pNotify, SLOT(close())); pNotify->sendEvent(); - } else { + } + else + { #endif // COMPILE_KDE_SUPPORT #ifdef COMPILE_DBUS_SUPPORT if(KVI_OPTION_BOOL(KviOption_boolUseDBusNotifier)) @@ -829,23 +845,25 @@ void KviApplication::notifierMessage(KviWindow * pWnd, int iIconId, const QStrin // org.freedesktop.Notifications.Notify QVariantList args; - args << QString("KVIrc"); // application name - args << QVariant(QVariant::UInt); // notification id - args << szIcon; // application icon - args << szTitle; // summary text - args << szText; // detailed text - args << QStringList(); // actions, optional - args << QVariantMap(); // hints, optional - args << static_cast(uMessageLifetime*1000); // timeout in msecs - - QDBusInterface * pNotify = new QDBusInterface("org.freedesktop.Notifications","/org/freedesktop/Notifications","org.freedesktop.Notifications",QDBusConnection::sessionBus(),this); - QDBusMessage reply = pNotify->callWithArgumentList(QDBus::Block,"Notify",args); + args << QString("KVIrc"); // application name + args << QVariant(QVariant::UInt); // notification id + args << szIcon; // application icon + args << szTitle; // summary text + args << szText; // detailed text + args << QStringList(); // actions, optional + args << QVariantMap(); // hints, optional + args << static_cast(uMessageLifetime * 1000); // timeout in msecs + + QDBusInterface * pNotify = new QDBusInterface("org.freedesktop.Notifications", "/org/freedesktop/Notifications", "org.freedesktop.Notifications", QDBusConnection::sessionBus(), this); + QDBusMessage reply = pNotify->callWithArgumentList(QDBus::Block, "Notify", args); if(reply.type() == QDBusMessage::ErrorMessage) { QDBusError err = reply; - qDebug("D-Bus notify error\nID: %u\nName: %s\nMessage: %s\n",reply.arguments().first().toUInt(),qPrintable(err.name()),qPrintable(err.message())); + qDebug("D-Bus notify error\nID: %u\nName: %s\nMessage: %s\n", reply.arguments().first().toUInt(), qPrintable(err.name()), qPrintable(err.message())); } - } else { + } + else + { #endif // COMPILE_DBUS_SUPPORT // Scheme 1c-2b-3: KVIrc KviModule * m = g_pModuleManager->getModule("notifier"); @@ -854,11 +872,11 @@ void KviApplication::notifierMessage(KviWindow * pWnd, int iIconId, const QStrin KviNotifierMessageParam s; s.pWindow = pWnd; - s.szIcon.sprintf("%d",iIconId); + s.szIcon.sprintf("%d", iIconId); s.szMessage = szMsg; s.uMessageLifetime = uMessageLifetime; - m->ctrl("notifier::message",(void *)&s); + m->ctrl("notifier::message", (void *)&s); #ifdef COMPILE_DBUS_SUPPORT } #endif // COMPILE_DBUS_SUPPORT @@ -921,13 +939,13 @@ void KviApplication::loadDefaultScript(QString szItem) if(szItem.isEmpty()) szItem = "default"; - getGlobalKvircDirectory(szCmd,KviApplication::DefScript,QString("%1.kvs").arg(szItem)); + getGlobalKvircDirectory(szCmd, KviApplication::DefScript, QString("%1.kvs").arg(szItem)); szCmd.prepend("parse \""); szCmd.append("\""); #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - szCmd.replace("\\","\\\\"); + szCmd.replace("\\", "\\\\"); #endif - KviKvsScript::run(szCmd,g_pMainWindow->firstConsole()); + KviKvsScript::run(szCmd, g_pMainWindow->firstConsole()); } void KviApplication::checkSuggestRestoreDefaultScript() @@ -943,28 +961,27 @@ void KviApplication::checkSuggestRestoreDefaultScript() if(!KviDefaultScriptManager::instance()->isDefscriptUpToDate()) { switch( - QMessageBox::question(0,__tr2qs("Update Default Scripts - KVIrc"), - __tr2qs("Hi!

" \ - "It seems that you have just upgraded KVIrc from a previous version.

" \ - "The KVIrc default scripts needs to be updated too, to play nice with your fresh new KVIrc.
" \ - "You may want to avoid this update if you plan to revert to a previous KVIrc version soon," \ - "or if you have created a lot of custom scripts and want to stay safe and avoid any deletion or overwrite.
" \ - "If you want to update the default scripts, I can restore the new default script for you.
" \ - "Do you want the default script to be restored?

"), - __tr2qs("No and Don't Ask Me Again"),__tr2qs("No"),__tr2qs("Yes"),1,1) - ) + QMessageBox::question(0, __tr2qs("Update Default Scripts - KVIrc"), + __tr2qs("Hi!

" + "It seems that you have just upgraded KVIrc from a previous version.

" + "The KVIrc default scripts needs to be updated too, to play nice with your fresh new KVIrc.
" + "You may want to avoid this update if you plan to revert to a previous KVIrc version soon," + "or if you have created a lot of custom scripts and want to stay safe and avoid any deletion or overwrite.
" + "If you want to update the default scripts, I can restore the new default script for you.
" + "Do you want the default script to be restored?

"), + __tr2qs("No and Don't Ask Me Again"), __tr2qs("No"), __tr2qs("Yes"), 1, 1)) { case 0: KVI_OPTION_BOOL(KviOption_boolDoNotSuggestRestoreDefaultScript) = true; return; - break; + break; case 1: // we want to execute the next checks, don't return now - break; + break; default: restoreDefaultScript(); // we want to execute the next checks after the attempted restore, don't return now - break; + break; } } @@ -975,7 +992,8 @@ void KviApplication::checkSuggestRestoreDefaultScript() iScore += 100; // straight suggest else if(KviKvsPopupManager::instance()->popupCount() < 1) iScore += 100; // straight suggest - else { + else + { // other stuff is not that critical if(!KviKvsEventManager::instance()->hasAppHandlers(KviEvent_OnChannelNickPopupRequest)) iScore += 80; @@ -1009,32 +1027,31 @@ void KviApplication::checkSuggestRestoreDefaultScript() bSuggestedOnce = true; switch( - QMessageBox::question(0,__tr2qs("Detected Installation Issues - KVIrc"), - __tr2qs("Oops!

" \ - "There are some reasons that make me think your KVIrc installation is incomplete.

" \ - "You seem to be missing some of the features that the default KVIrc scripts provide." \ - "This may happen because a recent upgrade may have accidentally corrupted, " \ - "deleted or damaged your configuration files, or because you have hit a bug in KVIrc.

" \ - "Repeating the installation of the default scripts in order " \ - "to restore the missing features is a way to try to correct the issue.
" \ - "Do you want the default scripts to be restored?

" \ - "Hint: If you're a scripter and have intentionally removed some of the scripting features " \ - "then you may safely click on \"No and Don't Ask Me Again\", otherwise it might be " \ - "a good idea to click \"Yes\". If you still want to choose \"No\" you can always restore the " \ - "default script by choosing the appropriate entry from the \"Scripting\" menu."), - __tr2qs("No and Don't Ask Me Again"),__tr2qs("No"),__tr2qs("Yes"),1,1) - ) + QMessageBox::question(0, __tr2qs("Detected Installation Issues - KVIrc"), + __tr2qs("Oops!

" + "There are some reasons that make me think your KVIrc installation is incomplete.

" + "You seem to be missing some of the features that the default KVIrc scripts provide." + "This may happen because a recent upgrade may have accidentally corrupted, " + "deleted or damaged your configuration files, or because you have hit a bug in KVIrc.

" + "Repeating the installation of the default scripts in order " + "to restore the missing features is a way to try to correct the issue.
" + "Do you want the default scripts to be restored?

" + "Hint: If you're a scripter and have intentionally removed some of the scripting features " + "then you may safely click on \"No and Don't Ask Me Again\", otherwise it might be " + "a good idea to click \"Yes\". If you still want to choose \"No\" you can always restore the " + "default script by choosing the appropriate entry from the \"Scripting\" menu."), + __tr2qs("No and Don't Ask Me Again"), __tr2qs("No"), __tr2qs("Yes"), 1, 1)) { case 0: KVI_OPTION_BOOL(KviOption_boolDoNotSuggestRestoreDefaultScript) = true; return; - break; + break; case 1: return; - break; + break; default: restoreDefaultScript(); - break; + break; } } @@ -1070,15 +1087,15 @@ void KviApplication::ipcMessage(char * pcMessage) int iIdx = szCmd.findFirstIdx('\n'); if(iIdx != -1) szCmd.cutRight(szCmd.len() - (iIdx + 1)); - pConsole->output(KVI_OUT_SYSTEMMESSAGE,__tr2qs("Remote command received (%s ...)"),szCmd.ptr()); + pConsole->output(KVI_OUT_SYSTEMMESSAGE, __tr2qs("Remote command received (%s ...)"), szCmd.ptr()); } - KviKvsScript::run(pcMessage,pConsole); + KviKvsScript::run(pcMessage, pConsole); } #endif // COMPILE_NO_IPC void KviApplication::setAvatarFromOptions() { - KviPointerHashTableIterator it(*g_pGlobalWindowDict); + KviPointerHashTableIterator it(*g_pGlobalWindowDict); while(it.current()) { @@ -1091,12 +1108,11 @@ void KviApplication::setAvatarFromOptions() } void KviApplication::setAvatarOnFileReceived( - KviConsoleWindow * pConsole, - const QString & szRemoteUrl, - const QString & szNick, - const QString & szUser, - const QString & szHost - ) + KviConsoleWindow * pConsole, + const QString & szRemoteUrl, + const QString & szNick, + const QString & szUser, + const QString & szHost) { if(!m_pPendingAvatarChanges) { @@ -1120,10 +1136,9 @@ void KviApplication::setAvatarOnFileReceived( } KviPendingAvatarChange * KviApplication::findPendingAvatarChange( - KviConsoleWindow * pConsole, - const QString & szNick, - const QString & szRemoteUrl - ) + KviConsoleWindow * pConsole, + const QString & szNick, + const QString & szRemoteUrl) { if(!m_pPendingAvatarChanges) return NULL; @@ -1146,18 +1161,17 @@ KviPendingAvatarChange * KviApplication::findPendingAvatarChange( } void KviApplication::fileDownloadTerminated( - bool bSuccess, - const QString & szRemoteUrl, - const QString & szLocalFileName, - const QString & szNick, - const QString & szError, - bool bQuiet - ) + bool bSuccess, + const QString & szRemoteUrl, + const QString & szLocalFileName, + const QString & szNick, + const QString & szError, + bool bQuiet) { KviPendingAvatarChange * pAvatar; if(m_pPendingAvatarChanges) - pAvatar = findPendingAvatarChange(0,szNick,szRemoteUrl); + pAvatar = findPendingAvatarChange(0, szNick, szRemoteUrl); else pAvatar = nullptr; @@ -1186,7 +1200,9 @@ void KviApplication::fileDownloadTerminated( szMsg += " ("; szMsg += szLocalFileName; szMsg += ")"; - } else { + } + else + { iIconId = KviIconManager::DccMsg; if(szNick.isEmpty()) szMsg = __tr2qs("File download successfully complete"); @@ -1196,7 +1212,7 @@ void KviApplication::fileDownloadTerminated( szMsg += szLocalFileName; szMsg += ")"; } - notifierMessage(0,iIconId,KviQString::toHtmlEscaped(szMsg),KVI_OPTION_UINT(KviOption_uintNotifierAutoHideTime)); + notifierMessage(0, iIconId, KviQString::toHtmlEscaped(szMsg), KVI_OPTION_UINT(KviOption_uintNotifierAutoHideTime)); } return; } @@ -1206,19 +1222,19 @@ void KviApplication::fileDownloadTerminated( if(windowExists(pAvatar->pConsole)) { pAvatar->pConsole->setAvatar( - pAvatar->szNick, - pAvatar->szUser, - pAvatar->szHost, - szLocalFileName, - (KviQString::equalCIN("http://",szRemoteUrl,7) || KviQString::equalCIN("https://",szRemoteUrl,8)) ? - szRemoteUrl : QString() - ); + pAvatar->szNick, + pAvatar->szUser, + pAvatar->szHost, + szLocalFileName, + (KviQString::equalCIN("http://", szRemoteUrl, 7) || KviQString::equalCIN("https://", szRemoteUrl, 8)) ? szRemoteUrl : QString()); } - } else { + } + else + { if((!_OUTPUT_MUTE) && (!bQuiet)) { - pAvatar->pConsole->output(KVI_OUT_AVATAR,__tr2qs("Avatar download failed for %Q!%Q@%Q and URL %Q: %Q"), - &(pAvatar->szNick),&(pAvatar->szUser),&(pAvatar->szHost),&(szRemoteUrl),&(szError)); + pAvatar->pConsole->output(KVI_OUT_AVATAR, __tr2qs("Avatar download failed for %Q!%Q@%Q and URL %Q: %Q"), + &(pAvatar->szNick), &(pAvatar->szUser), &(pAvatar->szHost), &(szRemoteUrl), &(szError)); } } @@ -1251,7 +1267,7 @@ void KviApplication::triggerUpdatePseudoTransparency() if(m_bUpdatePseudoTransparencyPending) return; m_bUpdatePseudoTransparencyPending = true; - QTimer::singleShot(0,this,SLOT(updatePseudoTransparency())); + QTimer::singleShot(0, this, SLOT(updatePseudoTransparency())); } void KviApplication::createGlobalBackgrounds(QPixmap * pix) @@ -1261,25 +1277,25 @@ void KviApplication::createGlobalBackgrounds(QPixmap * pix) delete g_pShadedParentGlobalDesktopBackground; if(g_pShadedChildGlobalDesktopBackground) delete g_pShadedChildGlobalDesktopBackground; - g_pShadedParentGlobalDesktopBackground = new QPixmap(pix->width(),pix->height()); - g_pShadedChildGlobalDesktopBackground = new QPixmap(pix->width(),pix->height()); + g_pShadedParentGlobalDesktopBackground = new QPixmap(pix->width(), pix->height()); + g_pShadedChildGlobalDesktopBackground = new QPixmap(pix->width(), pix->height()); QPainter p; p.begin(g_pShadedParentGlobalDesktopBackground); - p.drawPixmap(0,0,*pix); + p.drawPixmap(0, 0, *pix); p.setCompositionMode(QPainter::CompositionMode_SourceAtop); - if(KVI_OPTION_UINT(KviOption_uintGlobalTransparencyParentFadeFactor)>100) + if(KVI_OPTION_UINT(KviOption_uintGlobalTransparencyParentFadeFactor) > 100) KVI_OPTION_UINT(KviOption_uintGlobalTransparencyParentFadeFactor) = 100; p.setOpacity((float)((float)KVI_OPTION_UINT(KviOption_uintGlobalTransparencyParentFadeFactor) / (float)100)); - p.fillRect(0,0,pix->width(),pix->height(),QBrush(KVI_OPTION_COLOR(KviOption_colorGlobalTransparencyFade))); + p.fillRect(0, 0, pix->width(), pix->height(), QBrush(KVI_OPTION_COLOR(KviOption_colorGlobalTransparencyFade))); p.end(); p.begin(g_pShadedChildGlobalDesktopBackground); - p.drawPixmap(0,0,*pix); + p.drawPixmap(0, 0, *pix); p.setCompositionMode(QPainter::CompositionMode_SourceAtop); - if(KVI_OPTION_UINT(KviOption_uintGlobalTransparencyChildFadeFactor)>100) + if(KVI_OPTION_UINT(KviOption_uintGlobalTransparencyChildFadeFactor) > 100) KVI_OPTION_UINT(KviOption_uintGlobalTransparencyChildFadeFactor) = 100; p.setOpacity((float)((float)KVI_OPTION_UINT(KviOption_uintGlobalTransparencyChildFadeFactor) / (float)100)); - p.fillRect(0,0,pix->width(),pix->height(),QBrush(KVI_OPTION_COLOR(KviOption_colorGlobalTransparencyFade))); + p.fillRect(0, 0, pix->width(), pix->height(), QBrush(KVI_OPTION_COLOR(KviOption_colorGlobalTransparencyFade))); p.end(); if(g_pMainWindow) @@ -1287,7 +1303,6 @@ void KviApplication::createGlobalBackgrounds(QPixmap * pix) } #endif //COMPILE_PSEUDO_TRANSPARENCY - void KviApplication::updatePseudoTransparency() { #ifdef COMPILE_PSEUDO_TRANSPARENCY @@ -1299,7 +1314,7 @@ void KviApplication::updatePseudoTransparency() { QSize size = g_pApp->desktop()->screenGeometry(g_pApp->desktop()->primaryScreen()).size(); // get the Program Manager - HWND hWnd = FindWindow ("Progman", "Program Manager"); + HWND hWnd = FindWindow("Progman", "Program Manager"); // Create and setup bitmap HDC bitmap_dc = CreateCompatibleDC(qt_win_display_dc()); HBITMAP bitmap = CreateCompatibleBitmap(qt_win_display_dc(), size.width(), size.height()); @@ -1314,16 +1329,19 @@ void KviApplication::updatePseudoTransparency() DeleteObject(bitmap); createGlobalBackgrounds(&pix); - } else + } + else #endif // COMPILE_ON_WINDOWS || COMPILE_ON_MINGW - if(KVI_OPTION_PIXMAP(KviOption_pixmapGlobalTransparencyBackground).pixmap()) + if(KVI_OPTION_PIXMAP(KviOption_pixmapGlobalTransparencyBackground).pixmap()) { createGlobalBackgrounds(KVI_OPTION_PIXMAP(KviOption_pixmapGlobalTransparencyBackground).pixmap()); - } else { + } + else + { //destroy pseudo transparency pixmaps - destroyPseudoTransparency(); - //if we get here, no pseudo transparency method can be used / is enabled. + destroyPseudoTransparency(); +//if we get here, no pseudo transparency method can be used / is enabled. #ifdef COMPILE_X11_SUPPORT //under x11, we still have to check real transparency methods if(!KVI_OPTION_BOOL(KviOption_boolUseCompositingForTransparency)) @@ -1336,7 +1354,9 @@ void KviApplication::updatePseudoTransparency() KVI_OPTION_BOOL(KviOption_boolUseGlobalPseudoTransparency) = false; #endif // COMPILE_X11_SUPPORT } - } else { + } + else + { //transparency is disabled //destroy pseudo transparency pixmaps @@ -1356,7 +1376,7 @@ void KviApplication::triggerUpdateGui() if(m_bUpdateGuiPending) return; m_bUpdateGuiPending = true; - QTimer::singleShot(0,this,SLOT(updateGui())); + QTimer::singleShot(0, this, SLOT(updateGui())); } void KviApplication::updateGui() @@ -1374,7 +1394,9 @@ void KviApplication::updateApplicationFont() setFont(KVI_OPTION_FONT(KviOption_fontApplication)); if(g_pMainWindow) g_pMainWindow->setFont(font()); - } else { + } + else + { setFont(m_fntDefaultFont); if(g_pMainWindow) g_pMainWindow->setFont(m_fntDefaultFont); @@ -1384,37 +1406,37 @@ void KviApplication::updateApplicationFont() void KviApplication::loadRecentEntries() { QString szTmp; - getLocalKvircDirectory(szTmp,Config,KVI_CONFIGFILE_RECENT); - KviConfigurationFile cfg(szTmp,KviConfigurationFile::Read); - *g_pRecentTopicList = cfg.readStringListEntry("RecentTopicList",QStringList()); + getLocalKvircDirectory(szTmp, Config, KVI_CONFIGFILE_RECENT); + KviConfigurationFile cfg(szTmp, KviConfigurationFile::Read); + *g_pRecentTopicList = cfg.readStringListEntry("RecentTopicList", QStringList()); } void KviApplication::saveRecentEntries() { QString szTmp; - getLocalKvircDirectory(szTmp,Config,KVI_CONFIGFILE_RECENT); - KviConfigurationFile cfg(szTmp,KviConfigurationFile::Write); - cfg.writeEntry("RecentTopicList",*g_pRecentTopicList); + getLocalKvircDirectory(szTmp, Config, KVI_CONFIGFILE_RECENT); + KviConfigurationFile cfg(szTmp, KviConfigurationFile::Write); + cfg.writeEntry("RecentTopicList", *g_pRecentTopicList); } void KviApplication::saveAvatarCache() { QString szTmp; - getLocalKvircDirectory(szTmp,Config,KVI_CONFIGFILE_AVATARCACHE); + getLocalKvircDirectory(szTmp, Config, KVI_CONFIGFILE_AVATARCACHE); KviAvatarCache::instance()->save(szTmp); } void KviApplication::saveToolBars() { QString szTmp; - getLocalKvircDirectory(szTmp,Config,KVI_CONFIGFILE_CUSTOMTOOLBARS); + getLocalKvircDirectory(szTmp, Config, KVI_CONFIGFILE_CUSTOMTOOLBARS); KviCustomToolBarManager::instance()->save(szTmp); } void KviApplication::savePopups() { QString szTmp; - getLocalKvircDirectory(szTmp,Config,KVI_CONFIGFILE_POPUPS); + getLocalKvircDirectory(szTmp, Config, KVI_CONFIGFILE_POPUPS); KviKvs::savePopups(szTmp); } @@ -1423,7 +1445,7 @@ void KviApplication::saveInputHistory() if(KVI_OPTION_BOOL(KviOption_boolEnableInputHistory)) { QString szTmp; - getLocalKvircDirectory(szTmp,Config,KVI_CONFIGFILE_INPUTHISTORY); + getLocalKvircDirectory(szTmp, Config, KVI_CONFIGFILE_INPUTHISTORY); KviInputHistory::instance()->save(szTmp); } } @@ -1431,14 +1453,14 @@ void KviApplication::saveInputHistory() void KviApplication::saveAliases() { QString szTmp; - getLocalKvircDirectory(szTmp,Config,KVI_CONFIGFILE_ALIASES); + getLocalKvircDirectory(szTmp, Config, KVI_CONFIGFILE_ALIASES); KviKvs::saveAliases(szTmp); } void KviApplication::saveScriptAddons() { QString szTmp; - getLocalKvircDirectory(szTmp,Config,KVI_CONFIGFILE_SCRIPTADDONS); + getLocalKvircDirectory(szTmp, Config, KVI_CONFIGFILE_SCRIPTADDONS); KviKvs::saveScriptAddons(szTmp); } @@ -1450,21 +1472,21 @@ void KviApplication::saveTextIcons() void KviApplication::saveAppEvents() { QString szTmp; - getLocalKvircDirectory(szTmp,Config,KVI_CONFIGFILE_EVENTS); + getLocalKvircDirectory(szTmp, Config, KVI_CONFIGFILE_EVENTS); KviKvs::saveAppEvents(szTmp); } void KviApplication::saveRawEvents() { QString szTmp; - getLocalKvircDirectory(szTmp,Config,KVI_CONFIGFILE_RAWEVENTS); + getLocalKvircDirectory(szTmp, Config, KVI_CONFIGFILE_RAWEVENTS); KviKvs::saveRawEvents(szTmp); } void KviApplication::saveMediaTypes() { QString szTmp; - getLocalKvircDirectory(szTmp,Config,KVI_CONFIGFILE_MEDIATYPES); + getLocalKvircDirectory(szTmp, Config, KVI_CONFIGFILE_MEDIATYPES); g_pMediaManager->lock(); g_pMediaManager->save(szTmp); g_pMediaManager->unlock(); @@ -1473,70 +1495,70 @@ void KviApplication::saveMediaTypes() void KviApplication::saveIrcServerDataBase() { QString szTmp; - getLocalKvircDirectory(szTmp,Config,KVI_CONFIGFILE_SERVERDB); + getLocalKvircDirectory(szTmp, Config, KVI_CONFIGFILE_SERVERDB); g_pServerDataBase->save(szTmp); } void KviApplication::saveProxyDataBase() { QString szTmp; - getLocalKvircDirectory(szTmp,Config,KVI_CONFIGFILE_PROXYDB); + getLocalKvircDirectory(szTmp, Config, KVI_CONFIGFILE_PROXYDB); g_pProxyDataBase->save(szTmp); } void KviApplication::saveRegisteredUsers() { QString szTmp; - getLocalKvircDirectory(szTmp,Config,KVI_CONFIGFILE_REGUSERDB); + getLocalKvircDirectory(szTmp, Config, KVI_CONFIGFILE_REGUSERDB); g_pRegisteredUserDataBase->save(szTmp); } void KviApplication::saveRegisteredChannels() { QString szTmp; - getLocalKvircDirectory(szTmp,Config,KVI_CONFIGFILE_REGCHANDB); + getLocalKvircDirectory(szTmp, Config, KVI_CONFIGFILE_REGCHANDB); g_pRegisteredChannelDataBase->save(szTmp); } void KviApplication::saveNickServ() { QString szTmp; - getLocalKvircDirectory(szTmp,Config,KVI_CONFIGFILE_NICKSERVDATABASE); + getLocalKvircDirectory(szTmp, Config, KVI_CONFIGFILE_NICKSERVDATABASE); g_pNickServRuleSet->save(szTmp); } void KviApplication::saveIdentityProfiles() { QString szTmp; - getLocalKvircDirectory(szTmp,Config,KVI_CONFIGFILE_PROFILESDATABASE); + getLocalKvircDirectory(szTmp, Config, KVI_CONFIGFILE_PROFILESDATABASE); KviIdentityProfileSet::instance()->save(szTmp); } void KviApplication::saveDefaultScripts() { QString szTmp; - getLocalKvircDirectory(szTmp,Config,KVI_CONFIGFILE_DEFAULTSCRIPT); + getLocalKvircDirectory(szTmp, Config, KVI_CONFIGFILE_DEFAULTSCRIPT); KviDefaultScriptManager::instance()->save(szTmp); } void KviApplication::saveSharedFiles() { QString szTmp; - getLocalKvircDirectory(szTmp,Config,KVI_CONFIGFILE_SHAREDFILES); + getLocalKvircDirectory(szTmp, Config, KVI_CONFIGFILE_SHAREDFILES); g_pSharedFilesManager->save(szTmp); } void KviApplication::saveActions() { QString szTmp; - getLocalKvircDirectory(szTmp,Config,KVI_CONFIGFILE_USERACTIONS); + getLocalKvircDirectory(szTmp, Config, KVI_CONFIGFILE_USERACTIONS); KviActionManager::instance()->save(szTmp); } void KviApplication::saveIdentities() { QString szTmp; - getLocalKvircDirectory(szTmp,Config,KVI_CONFIGFILE_IDENTITIES); + getLocalKvircDirectory(szTmp, Config, KVI_CONFIGFILE_IDENTITIES); KviUserIdentityManager::instance()->save(szTmp); } @@ -1582,7 +1604,7 @@ void KviApplication::autoConnectToServers() pServer->generateUniqueId(); szCommand += pServer->id(); szCommand += "\""; - KviKvsScript::run(szCommand,activeConsole()); + KviKvsScript::run(szCommand, activeConsole()); } g_pServerDataBase->clearAutoConnectOnStartupServers(); } @@ -1595,7 +1617,7 @@ void KviApplication::autoConnectToServers() QString szCommandx = "server -u \"net:"; szCommandx += pNetwork->name(); szCommandx += "\""; - KviKvsScript::run(szCommandx,activeConsole()); + KviKvsScript::run(szCommandx, activeConsole()); } g_pServerDataBase->clearAutoConnectOnStartupNetworks(); } @@ -1620,7 +1642,7 @@ void KviApplication::createFrame() if(!m_szExecAfterStartup.isEmpty()) { - KviKvsScript::run(m_szExecAfterStartup,g_pMainWindow->firstConsole()); + KviKvsScript::run(m_szExecAfterStartup, g_pMainWindow->firstConsole()); m_szExecAfterStartup = ""; } @@ -1639,7 +1661,7 @@ void KviApplication::createFrame() bool KviApplication::connectionExists(KviIrcConnection * pConn) { - KviPointerHashTableIterator it(*g_pGlobalWindowDict); + KviPointerHashTableIterator it(*g_pGlobalWindowDict); while(it.current()) { @@ -1652,7 +1674,7 @@ bool KviApplication::connectionExists(KviIrcConnection * pConn) bool KviApplication::windowExists(KviWindow * pWnd) { - KviPointerHashTableIterator it(*g_pGlobalWindowDict); + KviPointerHashTableIterator it(*g_pGlobalWindowDict); while(it.current()) { @@ -1668,9 +1690,9 @@ unsigned int KviApplication::windowCount() return g_pGlobalWindowDict->count(); } -KviConsoleWindow * KviApplication::findConsole(QString & szServer,QString & szNick) +KviConsoleWindow * KviApplication::findConsole(QString & szServer, QString & szNick) { - KviPointerHashTableIterator it(*g_pGlobalWindowDict); + KviPointerHashTableIterator it(*g_pGlobalWindowDict); while(it.current()) { @@ -1688,13 +1710,15 @@ KviConsoleWindow * KviApplication::findConsole(QString & szServer,QString & szNi if(szNick.isEmpty()) return pWindow; - if(KviQString::equalCI(szNick,pWindow->connection()->currentNickName())) + if(KviQString::equalCI(szNick, pWindow->connection()->currentNickName())) return pWindow; } - } else { + } + else + { if(!szNick.isEmpty()) { - if(KviQString::equalCI(szNick,pWindow->connection()->currentNickName())) + if(KviQString::equalCI(szNick, pWindow->connection()->currentNickName())) return pWindow; } } @@ -1706,7 +1730,7 @@ KviConsoleWindow * KviApplication::findConsole(QString & szServer,QString & szNi void KviApplication::restartLagMeters() { - KviPointerHashTableIterator it(*g_pGlobalWindowDict); + KviPointerHashTableIterator it(*g_pGlobalWindowDict); while(it.current()) { @@ -1719,7 +1743,7 @@ void KviApplication::restartLagMeters() void KviApplication::restartNotifyLists() { - KviPointerHashTableIterator it(*g_pGlobalWindowDict); + KviPointerHashTableIterator it(*g_pGlobalWindowDict); while(it.current()) { @@ -1732,7 +1756,7 @@ void KviApplication::restartNotifyLists() void KviApplication::resetAvatarForMatchingUsers(KviRegisteredUser * pUser) { - KviPointerHashTableIterator it(*g_pGlobalWindowDict); + KviPointerHashTableIterator it(*g_pGlobalWindowDict); while(it.current()) { @@ -1745,7 +1769,7 @@ void KviApplication::resetAvatarForMatchingUsers(KviRegisteredUser * pUser) KviConsoleWindow * KviApplication::findConsole(unsigned int uIrcContextId) { - KviPointerHashTableIterator it(*g_pGlobalWindowDict); + KviPointerHashTableIterator it(*g_pGlobalWindowDict); while(it.current()) { @@ -1769,7 +1793,7 @@ KviConsoleWindow * KviApplication::topmostConnectedConsole() // try ANY connected console - KviPointerHashTableIterator it(*g_pGlobalWindowDict); + KviPointerHashTableIterator it(*g_pGlobalWindowDict); while(it.current()) { @@ -1789,13 +1813,12 @@ KviWindow * KviApplication::findWindow(const QString & szWindowId) KviWindow * KviApplication::findWindowByCaption(const QString & szWindowCaption, int iContextId) { - KviPointerHashTableIterator it(*g_pGlobalWindowDict); + KviPointerHashTableIterator it(*g_pGlobalWindowDict); while(it.current()) { - if(KviQString::equalCI(szWindowCaption,it.current()->plainTextCaption()) && - (iContextId==-1 || it.current()->context()->id() == static_cast(iContextId))) - return it.current(); + if(KviQString::equalCI(szWindowCaption, it.current()->plainTextCaption()) && (iContextId == -1 || it.current()->context()->id() == static_cast(iContextId))) + return it.current(); ++it; } return NULL; @@ -1803,7 +1826,7 @@ KviWindow * KviApplication::findWindowByCaption(const QString & szWindowCaption, void KviApplication::registerWindow(KviWindow * pWnd) { - g_pGlobalWindowDict->insert(pWnd->id(),pWnd); + g_pGlobalWindowDict->insert(pWnd->id(), pWnd); } void KviApplication::unregisterWindow(KviWindow * pWnd) @@ -1823,17 +1846,16 @@ KviConsoleWindow * KviApplication::activeConsole() return g_pMainWindow->firstConsole(); } - /////////////////// RECENT STUFF LISTS & POPUPS HANDLING // Helper for KviApplication::addRecent*() static void merge_to_stringlist_option(const QString & szItem, int iOption, int iMaxEntries) { for(QStringList::Iterator it = KVI_OPTION_STRINGLIST(iOption).begin(); - it != KVI_OPTION_STRINGLIST(iOption).end(); ++it) + it != KVI_OPTION_STRINGLIST(iOption).end(); ++it) { // Do a case-insensitive search (for nicknames, servers, and channels) - if(!QString::compare(szItem.toLower(),(*it).toLower())) + if(!QString::compare(szItem.toLower(), (*it).toLower())) { // In the recent list, remove and put as first so more recent items // are always first @@ -1843,20 +1865,22 @@ static void merge_to_stringlist_option(const QString & szItem, int iOption, int } while(KVI_OPTION_STRINGLIST(iOption).count() >= iMaxEntries) { - KVI_OPTION_STRINGLIST(iOption).erase(KVI_OPTION_STRINGLIST(iOption).isEmpty() ? KVI_OPTION_STRINGLIST(iOption).end() : --KVI_OPTION_STRINGLIST(iOption).end()); + KVI_OPTION_STRINGLIST(iOption) + .erase(KVI_OPTION_STRINGLIST(iOption).isEmpty() ? KVI_OPTION_STRINGLIST(iOption).end() : --KVI_OPTION_STRINGLIST(iOption).end()); } - KVI_OPTION_STRINGLIST(iOption).prepend(szItem); + KVI_OPTION_STRINGLIST(iOption) + .prepend(szItem); } void KviApplication::addRecentUrl(const QString & szText) { - merge_to_stringlist_option(szText,KviOption_stringlistRecentIrcUrls,50); + merge_to_stringlist_option(szText, KviOption_stringlistRecentIrcUrls, 50); emit(recentUrlsChanged()); } void KviApplication::addRecentNickname(const QString & szNewNick) { - merge_to_stringlist_option(szNewNick,KviOption_stringlistRecentNicknames,KVI_MAX_RECENT_NICKNAMES); + merge_to_stringlist_option(szNewNick, KviOption_stringlistRecentNicknames, KVI_MAX_RECENT_NICKNAMES); } void KviApplication::addRecentChannel(const QString & szChan, const QString & szNet) @@ -1868,7 +1892,7 @@ void KviApplication::addRecentChannel(const QString & szChan, const QString & sz if(!pList) { pList = new QStringList(szChan); - m_pRecentChannelDict->insert(szNet,pList); + m_pRecentChannelDict->insert(szNet, pList); } if(!pList->contains(szChan)) @@ -1880,22 +1904,21 @@ void KviApplication::buildRecentChannels() if(m_pRecentChannelDict) delete m_pRecentChannelDict; - m_pRecentChannelDict = new KviPointerHashTable; + m_pRecentChannelDict = new KviPointerHashTable; m_pRecentChannelDict->setAutoDelete(true); - QString szChan,szNet; + QString szChan, szNet; for( - QStringList::Iterator it = KVI_OPTION_STRINGLIST(KviOption_stringlistRecentChannels).begin(); - it != KVI_OPTION_STRINGLIST(KviOption_stringlistRecentChannels).end(); - ++it - ) + QStringList::Iterator it = KVI_OPTION_STRINGLIST(KviOption_stringlistRecentChannels).begin(); + it != KVI_OPTION_STRINGLIST(KviOption_stringlistRecentChannels).end(); + ++it) { if((*it).isEmpty()) continue; - szChan = (*it).section(KVI_RECENT_CHANNELS_SEPARATOR,0,0); - szNet = (*it).section(KVI_RECENT_CHANNELS_SEPARATOR,1); + szChan = (*it).section(KVI_RECENT_CHANNELS_SEPARATOR, 0, 0); + szNet = (*it).section(KVI_RECENT_CHANNELS_SEPARATOR, 1); if(szNet.isEmpty()) continue; @@ -1904,7 +1927,7 @@ void KviApplication::buildRecentChannels() if(!pList) { pList = new QStringList(szChan); - m_pRecentChannelDict->insert(szNet,pList); + m_pRecentChannelDict->insert(szNet, pList); } if(!pList->contains(szChan)) @@ -1919,9 +1942,10 @@ void KviApplication::saveRecentChannels() QString szTmp; - KVI_OPTION_STRINGLIST(KviOption_stringlistRecentChannels).clear(); + KVI_OPTION_STRINGLIST(KviOption_stringlistRecentChannels) + .clear(); - KviPointerHashTableIterator it(*m_pRecentChannelDict); + KviPointerHashTableIterator it(*m_pRecentChannelDict); for(; it.current(); ++it) { @@ -1930,7 +1954,8 @@ void KviApplication::saveRecentChannels() szTmp = *it_str; szTmp.append(KVI_RECENT_CHANNELS_SEPARATOR); szTmp.append(it.currentKey()); - KVI_OPTION_STRINGLIST(KviOption_stringlistRecentChannels).append(szTmp); + KVI_OPTION_STRINGLIST(KviOption_stringlistRecentChannels) + .append(szTmp); } } } @@ -1944,7 +1969,7 @@ QStringList * KviApplication::recentChannelsForNetwork(const QString & szNet) void KviApplication::addRecentServer(const QString & szServer) { - merge_to_stringlist_option(szServer,KviOption_stringlistRecentServers,KVI_MAX_RECENT_SERVERS); + merge_to_stringlist_option(szServer, KviOption_stringlistRecentServers, KVI_MAX_RECENT_SERVERS); } void KviApplication::fillRecentServersPopup(QMenu * pMenu) @@ -1955,27 +1980,28 @@ void KviApplication::fillRecentServersPopup(QMenu * pMenu) { if(*it == "") continue; - pMenu->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Server)),*it); + pMenu->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Server)), *it); } } void KviApplication::fillRecentNicknamesPopup(QMenu * pMenu, KviConsoleWindow * pConsole) { pMenu->clear(); - QAction *pAction; + QAction * pAction; bool bAlreadyFound = false; for(QStringList::Iterator it = KVI_OPTION_STRINGLIST(KviOption_stringlistRecentNicknames).begin(); it != KVI_OPTION_STRINGLIST(KviOption_stringlistRecentNicknames).end(); ++it) { if(*it == "") continue; - pAction= pMenu->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Nick)),*it); + pAction = pMenu->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Nick)), *it); if(!pConsole->isConnected()) - pAction->setEnabled(false); - else { + pAction->setEnabled(false); + else + { if(!bAlreadyFound) { - bool bIsCurrent = KviQString::equalCS(pConsole->connection()->currentNickName(),*it); - pAction->setEnabled(!bIsCurrent); + bool bIsCurrent = KviQString::equalCS(pConsole->connection()->currentNickName(), *it); + pAction->setEnabled(!bIsCurrent); if(bIsCurrent) bAlreadyFound = true; } @@ -1986,7 +2012,7 @@ void KviApplication::fillRecentNicknamesPopup(QMenu * pMenu, KviConsoleWindow * void KviApplication::fillRecentChannelsPopup(QMenu * pMenu, KviConsoleWindow * pConsole) { pMenu->clear(); - QAction *pAction; + QAction * pAction; QStringList * pList = recentChannelsForNetwork(pConsole->currentNetworkName()); if(pList) { @@ -1994,11 +2020,11 @@ void KviApplication::fillRecentChannelsPopup(QMenu * pMenu, KviConsoleWindow * p { if(*it == "") continue; // ? - pAction = pMenu->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Channel)),*it); + pAction = pMenu->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Channel)), *it); if(!pConsole->isConnected()) - pAction->setEnabled(false); + pAction->setEnabled(false); else - pAction->setEnabled(!(pConsole->connection()->findChannel(*it))); + pAction->setEnabled(!(pConsole->connection()->findChannel(*it))); } } } @@ -2010,12 +2036,13 @@ void KviApplication::heartbeat(kvi_time_t tNow) if(g_pApp->topmostConnectedConsole()) { // FIXME: this has huge precision problems... - KVI_OPTION_UINT(KviOption_uintTotalConnectionTime)++; + KVI_OPTION_UINT(KviOption_uintTotalConnectionTime) + ++; } if(pTm && !pTm->tm_hour && !pTm->tm_min && !pTm->tm_sec) { - KviPointerHashTableIterator it(*g_pGlobalWindowDict); + KviPointerHashTableIterator it(*g_pGlobalWindowDict); while(it.current()) { if(it.current()->view() && it.current()->view()->isLogging()) @@ -2042,5 +2069,5 @@ void KviApplication::timerEvent(QTimerEvent * e) // qvariant.h uses this, and it is included by the qt generated moc file for Qt >= 3.0.0 #ifdef Bool - #undef Bool +#undef Bool #endif diff --git a/src/kvirc/kernel/KviApplication.h b/src/kvirc/kernel/KviApplication.h index 31bcf0b3f..2837c6107 100644 --- a/src/kvirc/kernel/KviApplication.h +++ b/src/kvirc/kernel/KviApplication.h @@ -37,20 +37,20 @@ #include #ifdef COMPILE_KDE_SUPPORT - #include +#include #endif #ifdef COMPILE_ON_WINDOWS - // The brain damaged MSVC compiler can't instantiate templates without this - #include "KviMainWindow.h" - #include "KviWindow.h" -#else // !COMPILE_ON_WINDOWS - class KviMainWindow; - class KviWindow; +// The brain damaged MSVC compiler can't instantiate templates without this +#include "KviMainWindow.h" +#include "KviWindow.h" +#else // !COMPILE_ON_WINDOWS +class KviMainWindow; +class KviWindow; #endif // !COMPILE_ON_WINDOWS #ifndef COMPILE_NO_IPC - class KviIpcSentinel; +class KviIpcSentinel; #endif // !COMPILE_NO_IPC class QMenu; @@ -68,10 +68,10 @@ class QStringList; typedef struct _KviPendingAvatarChange { KviConsoleWindow * pConsole; - QString szRemoteUrl; - QString szNick; - QString szUser; - QString szHost; + QString szRemoteUrl; + QString szNick; + QString szUser; + QString szHost; } KviPendingAvatarChange; /** @@ -81,10 +81,10 @@ typedef struct _KviPendingAvatarChange */ typedef struct _KviNotifierMessageParam { - KviWindow * pWindow; /**< The window where the notifier was triggered */ - QString szIcon; /**< The id of the icon (channel, query, ...) */ - QString szMessage; /**< The message which triggered the notifier */ - unsigned int uMessageLifetime; /**< The timeout of the notifier; 0 means no hide */ + KviWindow * pWindow; /**< The window where the notifier was triggered */ + QString szIcon; /**< The id of the icon (channel, query, ...) */ + QString szMessage; /**< The message which triggered the notifier */ + unsigned int uMessageLifetime; /**< The timeout of the notifier; 0 means no hide */ } KviNotifierMessageParam; typedef struct _KviDBusNotifierMessageQueue @@ -92,12 +92,11 @@ typedef struct _KviDBusNotifierMessageQueue QStringList lMessages; } KviDBusNotifierMessageQueue; - #ifdef Unsorted - #undef Unsorted +#undef Unsorted #endif #ifdef None - #undef None +#undef None #endif class KVIRC_API KviApplication : public KviTalApplication @@ -110,55 +109,79 @@ public: // FIXME: "Plugins" and "ConfigPlugins" should become "Modules" and "ConfigModules" enum KvircSubdir { - None, Pics, Config, - Help, HelpEN, HelpNoIntl, - Log, Incoming, Audio, - Scripts, Plugins, ConfigPlugins, - Trash, MsgColors, Charmaps, - Avatars, DefScript, License, - Modules, ConfigScripts, Filters, - Tmp, Locale, Themes, - Classes, SmallIcons, EasyPlugins + None, + Pics, + Config, + Help, + HelpEN, + HelpNoIntl, + Log, + Incoming, + Audio, + Scripts, + Plugins, + ConfigPlugins, + Trash, + MsgColors, + Charmaps, + Avatars, + DefScript, + License, + Modules, + ConfigScripts, + Filters, + Tmp, + Locale, + Themes, + Classes, + SmallIcons, + EasyPlugins }; - KviApplication(int &argc,char ** argv); + KviApplication(int & argc, char ** argv); ~KviApplication(); + public: // setup stuff (accessed from KviMain.cpp: consider private otherwise) - QString m_szConfigFile; // setup - bool m_bCreateConfig; // setup - QString m_szExecAfterStartup; + QString m_szConfigFile; // setup + bool m_bCreateConfig; // setup + QString m_szExecAfterStartup; + protected: #ifdef COMPILE_KDE_SUPPORT - KAboutData * m_pAboutData; + KAboutData * m_pAboutData; #endif // directories - QString m_szGlobalKvircDir; - QString m_szLocalKvircDir; - int m_iHeartbeatTimerId; - bool m_bFirstTimeRun; - bool m_bClosingDown; + QString m_szGlobalKvircDir; + QString m_szLocalKvircDir; + int m_iHeartbeatTimerId; + bool m_bFirstTimeRun; + bool m_bClosingDown; #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - bool m_bPortable; + bool m_bPortable; #endif - KviWindow * m_pActiveWindow; - bool m_bUpdateGuiPending; - KviPointerList * m_pPendingAvatarChanges; - bool m_bSetupDone; - KviPointerHashTable * m_pRecentChannelDict; + KviWindow * m_pActiveWindow; + bool m_bUpdateGuiPending; + KviPointerList * m_pPendingAvatarChanges; + bool m_bSetupDone; + KviPointerHashTable * m_pRecentChannelDict; #ifdef COMPILE_PSEUDO_TRANSPARENCY - bool m_bUpdatePseudoTransparencyPending; + bool m_bUpdatePseudoTransparencyPending; #endif #ifndef COMPILE_NO_IPC - KviIpcSentinel * m_pIpcSentinel; + KviIpcSentinel * m_pIpcSentinel; #endif - QFont m_fntDefaultFont; + QFont m_fntDefaultFont; + public: - void setup(); // THIS SHOULD BE PRIVATE! (but is accessed from KviMain.cpp) + void setup(); // THIS SHOULD BE PRIVATE! (but is accessed from KviMain.cpp) #ifdef COMPILE_KDE_SUPPORT - void setAboutData(KAboutData * pAboutData){ m_pAboutData = pAboutData; }; - KAboutData * aboutData(){ return m_pAboutData; }; + void setAboutData(KAboutData * pAboutData) + { + m_pAboutData = pAboutData; + }; + KAboutData * aboutData() { return m_pAboutData; }; #endif #ifndef COMPILE_NO_IPC @@ -169,7 +192,7 @@ public: bool firstTimeRun() const { return m_bFirstTimeRun; }; bool kviClosingDown() const { return m_bClosingDown; }; - void setKviClosingDown() { m_bClosingDown=true; }; + void setKviClosingDown() { m_bClosingDown = true; }; bool supportsCompositing(); @@ -208,35 +231,35 @@ public: void loadOptions(); void saveOptions(); - void listAvailableOptions(KviWindow *wnd); - bool getOptionString(const QString &optName,QString &buffer); - bool setOptionValue(const QString &optName,const QString &value); - bool setCommonOptionValue(const QString &optName,const QString &value); + void listAvailableOptions(KviWindow * wnd); + bool getOptionString(const QString & optName, QString & buffer); + bool setOptionValue(const QString & optName, const QString & value); + bool setCommonOptionValue(const QString & optName, const QString & value); void optionResetUpdate(int flags); // KviApplication_filesystem.cpp : Filesystem thingies - void getGlobalKvircDirectory(QString &szData,KvircSubdir dir,const QString &appendFile = QString()); - void getLocalKvircDirectory(QString &szData,KvircSubdir dir,const QString &appendFile = QString(),bool bCreateIfNeeded = true); + void getGlobalKvircDirectory(QString & szData, KvircSubdir dir, const QString & appendFile = QString()); + void getLocalKvircDirectory(QString & szData, KvircSubdir dir, const QString & appendFile = QString(), bool bCreateIfNeeded = true); - void getTmpFileName(QString &szBuffer,const QString &szEndingFileName = QString()); - void getChannelDumpLogFileName(QString &str); + void getTmpFileName(QString & szBuffer, const QString & szEndingFileName = QString()); + void getChannelDumpLogFileName(QString & str); static QTextCodec * defaultTextCodec(); static QTextCodec * defaultSrvCodec(); - bool findImageInImageSearchPath(QString &szRetPath,const QString &filename); + bool findImageInImageSearchPath(QString & szRetPath, const QString & filename); - bool findImage(QString &szRetPath,const QString &filename); - bool findImageThemeOnlyCompat(QString &szRetPath,const QString &filename); // temporary compat, will be removed soon (do not use) - bool findSmallIcon(QString &szRetPath,const QString &filename); + bool findImage(QString & szRetPath, const QString & filename); + bool findImageThemeOnlyCompat(QString & szRetPath, const QString & filename); // temporary compat, will be removed soon (do not use) + bool findSmallIcon(QString & szRetPath, const QString & filename); // tries to map the full path filename to one of the KVIrc's mapped directories // if it doesn't succeed it just returns the complete filename in szRetPath //bool mapImageFile(KviCString &szRetPath,const char * filename); - bool mapImageFile(QString &szRetPath,const QString &filename); + bool mapImageFile(QString & szRetPath, const QString & filename); //void getDefaultDccSaveFilePath(KviCString &path,const char *filename); - void completeDirectory(const QString &word,KviPointerList * matches); + void completeDirectory(const QString & word, KviPointerList * matches); // // Returns a config path suitable for reading (at least) // First lookups the user local config directory, @@ -246,8 +269,7 @@ public: // if no config file has been found: in this case the local config // directory is used // - bool getReadOnlyConfigPath(QString &buffer,const char *config_name,KvircSubdir sbd = Config,bool bNoFail = false); - + bool getReadOnlyConfigPath(QString & buffer, const char * config_name, KvircSubdir sbd = Config, bool bNoFail = false); /// /// Attempts to locate the audio file specified by szFileName and put it's @@ -258,18 +280,18 @@ public: /// then it's searched in the local KVIrc "audio" directory, then in the global one /// and finally in the user's home. /// - bool findAudioFile(QString &szRetPath,const QString &szFileName); + bool findAudioFile(QString & szRetPath, const QString & szFileName); // KviApplication.cpp : Window stuff - KviWindow * findWindow(const QString &windowId); - KviWindow * findWindowByCaption(const QString &windowCaption,int iContextId=-1); - KviConsoleWindow * findConsole(unsigned int ircContextId); - KviConsoleWindow * findConsole(QString & servr,QString & nick); - KviConsoleWindow * topmostConnectedConsole(); - KviConsoleWindow * activeConsole(); - bool windowExists(KviWindow *wnd); - bool connectionExists(KviIrcConnection *cnn); - unsigned int windowCount(); + KviWindow * findWindow(const QString & windowId); + KviWindow * findWindowByCaption(const QString & windowCaption, int iContextId = -1); + KviConsoleWindow * findConsole(unsigned int ircContextId); + KviConsoleWindow * findConsole(QString & servr, QString & nick); + KviConsoleWindow * topmostConnectedConsole(); + KviConsoleWindow * activeConsole(); + bool windowExists(KviWindow * wnd); + bool connectionExists(KviIrcConnection * cnn); + unsigned int windowCount(); // KviApplication.cpp : Utilities void resetAvatarForMatchingUsers(KviRegisteredUser * u); @@ -281,54 +303,54 @@ public: #endif // KviApplication.cpp : DCC (and CTCP AVATAR & SOUND) related stuff - void setAvatarOnFileReceived(KviConsoleWindow * pConsole,const QString &szRemoteUrl,const QString &szNick,const QString &szUser,const QString &szHost); - KviPendingAvatarChange * findPendingAvatarChange(KviConsoleWindow * pConsole,const QString &szNick,const QString &szRemoteUrl); - void fileDownloadTerminated(bool bSuccess,const QString &szRemoteUrl,const QString &szLocalFileName,const QString &szNick = QString(),const QString &szError = QString(),bool bQuiet = false); + void setAvatarOnFileReceived(KviConsoleWindow * pConsole, const QString & szRemoteUrl, const QString & szNick, const QString & szUser, const QString & szHost); + KviPendingAvatarChange * findPendingAvatarChange(KviConsoleWindow * pConsole, const QString & szNick, const QString & szRemoteUrl); + void fileDownloadTerminated(bool bSuccess, const QString & szRemoteUrl, const QString & szLocalFileName, const QString & szNick = QString(), const QString & szError = QString(), bool bQuiet = false); void setAvatarFromOptions(); // uMessageLifetime is in seconds! and 0 means "forever" - void notifierMessage(KviWindow * pWnd,int iIconId,const QString &szMsg,unsigned int uMessageLifetime); + void notifierMessage(KviWindow * pWnd, int iIconId, const QString & szMsg, unsigned int uMessageLifetime); - void addRecentNickname(const QString& newNick); - void addRecentChannel(const QString& chan,const QString& net); + void addRecentNickname(const QString & newNick); + void addRecentChannel(const QString & chan, const QString & net); - QStringList * recentChannelsForNetwork(const QString& net); + QStringList * recentChannelsForNetwork(const QString & net); - KviPointerHashTable * recentChannels() const + KviPointerHashTable * recentChannels() const { return m_pRecentChannelDict; } - - void addRecentServer(const QString& server); - void fillRecentServersPopup(QMenu * m); - void fillRecentNicknamesPopup(QMenu * m,KviConsoleWindow * pConsole); - void fillRecentChannelsPopup(QMenu * m,KviConsoleWindow * pConsole); -// + void addRecentServer(const QString & server); + void fillRecentServersPopup(QMenu * m); + void fillRecentNicknamesPopup(QMenu * m, KviConsoleWindow * pConsole); + void fillRecentChannelsPopup(QMenu * m, KviConsoleWindow * pConsole); + // void autoConnectToServers(); void checkSuggestRestoreDefaultScript(); void loadDefaultScript(QString szItem = QString()); QStyle * themedStyle(); + protected: void buildRecentChannels(); void saveRecentChannels(); // KviApplication.cpp : KviWindow global database - void registerWindow(KviWindow *wnd); - void unregisterWindow(KviWindow *wnd); + void registerWindow(KviWindow * wnd); + void unregisterWindow(KviWindow * wnd); void frameDestructorCallback(); void heartbeat(kvi_time_t tNow); - virtual void timerEvent(QTimerEvent *e); -private: + virtual void timerEvent(QTimerEvent * e); +private: // KviApplication_setup.cpp : Setup stuff void loadDirectories(); void findGlobalKvircDirectory(); bool findLocalKvircDirectory(); bool checkGlobalKvircDirectory(const QString); - bool checkLocalKvircDirectory(const QString &szSpecificPath); + bool checkLocalKvircDirectory(const QString & szSpecificPath); bool checkLocalKvircDirectory(); // check the m_szLocalKvircDirectory path bool checkFileAssociations(); void setupFileAssociations(); @@ -359,7 +381,7 @@ public slots: void updateGui(); void updatePseudoTransparency(); void restoreDefaultScript(); - void addRecentUrl(const QString& text); + void addRecentUrl(const QString & text); void showParentFrame(); signals: void reloadImages(); @@ -368,8 +390,8 @@ signals: }; #ifndef _KVI_APP_CPP_ - extern KVIRC_API KviApplication * g_pApp; - extern KVIRC_API KviIrcServerDataBase * g_pServerDataBase; +extern KVIRC_API KviApplication * g_pApp; +extern KVIRC_API KviIrcServerDataBase * g_pServerDataBase; #endif #endif //_KVI_APP_H_ diff --git a/src/kvirc/kernel/KviApplication_filesystem.cpp b/src/kvirc/kernel/KviApplication_filesystem.cpp index a65382585..e000aacb4 100644 --- a/src/kvirc/kernel/KviApplication_filesystem.cpp +++ b/src/kvirc/kernel/KviApplication_filesystem.cpp @@ -22,7 +22,6 @@ // //============================================================================= - #include "kvi_debug.h" #include "KviApplication.h" #include "KviLocale.h" @@ -40,27 +39,38 @@ extern KviMediaManager * g_pMediaManager; -void KviApplication::getGlobalKvircDirectory(QString &szData,KvircSubdir dir,const QString &appendFile) +void KviApplication::getGlobalKvircDirectory(QString & szData, KvircSubdir dir, const QString & appendFile) { - szData=m_szGlobalKvircDir; - KviQString::ensureLastCharIs(szData,KVI_PATH_SEPARATOR_CHAR); + szData = m_szGlobalKvircDir; + KviQString::ensureLastCharIs(szData, KVI_PATH_SEPARATOR_CHAR); switch(dir) { - case None : break; - case Pics : szData.append("pics"); break; - case Modules : - #ifdef KVIRC_MODULES_DIR - szData = KVIRC_MODULES_DIR; - #else - szData.append("modules"); - #endif - break; - case Plugins : szData.append("modules"); break; - case EasyPlugins : szData.append("easyplugins"); break; - case ConfigPlugins : KviQString::appendFormatted(szData,"config%smodules",KVI_PATH_SEPARATOR); break; - case ConfigScripts : KviQString::appendFormatted(szData,"config%sscripts",KVI_PATH_SEPARATOR); break; - case Help : + case None: + break; + case Pics: + szData.append("pics"); + break; + case Modules: +#ifdef KVIRC_MODULES_DIR + szData = KVIRC_MODULES_DIR; +#else + szData.append("modules"); +#endif + break; + case Plugins: + szData.append("modules"); + break; + case EasyPlugins: + szData.append("easyplugins"); + break; + case ConfigPlugins: + KviQString::appendFormatted(szData, "config%smodules", KVI_PATH_SEPARATOR); + break; + case ConfigScripts: + KviQString::appendFormatted(szData, "config%sscripts", KVI_PATH_SEPARATOR); + break; + case Help: szData.append("help"); { // Localized help @@ -69,63 +79,114 @@ void KviApplication::getGlobalKvircDirectory(QString &szData,KvircSubdir dir,con tmp.prepend(szData); if(KviFileUtils::directoryExists(tmp)) szData = tmp; - else { - tmp = szData; KviQString::appendFormatted(tmp,"%sen",KVI_PATH_SEPARATOR); + else + { + tmp = szData; + KviQString::appendFormatted(tmp, "%sen", KVI_PATH_SEPARATOR); if(KviFileUtils::directoryExists(tmp)) szData = tmp; } } - break; - case HelpEN : KviQString::appendFormatted(szData,"help%sen",KVI_PATH_SEPARATOR); break; - case HelpNoIntl : szData.append("help"); break; - case Log : qDebug("WARNING Global log directory requested!"); break; - case Incoming : qDebug("WARNING Global incoming directory requested!"); break; - case Trash : qDebug("WARNING Global trash directory requested!"); break; - case Config : szData.append("config"); break; - case Audio : szData.append("audio"); break; - case Scripts : szData.append("scripts"); break; - case MsgColors : szData.append("msgcolors"); break; - case Charmaps : szData.append("charmaps"); break; - case Avatars : szData.append("avatars"); break; - case DefScript : szData.append("defscript"); break; - case License : szData.append("license"); break; - case Filters : szData.append("filters"); break; - case Locale : szData.append("locale"); break; - case Tmp : qDebug("WARNING Global tmp directory requested!"); break; - case Themes : szData.append("themes"); break; - case Classes : szData.append("classes"); break; - case SmallIcons : szData.append("pics" KVI_PATH_SEPARATOR KVI_SMALLICONS_SUBDIRECTORY); break; + break; + case HelpEN: + KviQString::appendFormatted(szData, "help%sen", KVI_PATH_SEPARATOR); + break; + case HelpNoIntl: + szData.append("help"); + break; + case Log: + qDebug("WARNING Global log directory requested!"); + break; + case Incoming: + qDebug("WARNING Global incoming directory requested!"); + break; + case Trash: + qDebug("WARNING Global trash directory requested!"); + break; + case Config: + szData.append("config"); + break; + case Audio: + szData.append("audio"); + break; + case Scripts: + szData.append("scripts"); + break; + case MsgColors: + szData.append("msgcolors"); + break; + case Charmaps: + szData.append("charmaps"); + break; + case Avatars: + szData.append("avatars"); + break; + case DefScript: + szData.append("defscript"); + break; + case License: + szData.append("license"); + break; + case Filters: + szData.append("filters"); + break; + case Locale: + szData.append("locale"); + break; + case Tmp: + qDebug("WARNING Global tmp directory requested!"); + break; + case Themes: + szData.append("themes"); + break; + case Classes: + szData.append("classes"); + break; + case SmallIcons: + szData.append("pics" KVI_PATH_SEPARATOR KVI_SMALLICONS_SUBDIRECTORY); + break; } if(!appendFile.isEmpty()) { - KviQString::ensureLastCharIs(szData,KVI_PATH_SEPARATOR_CHAR); + KviQString::ensureLastCharIs(szData, KVI_PATH_SEPARATOR_CHAR); szData.append(appendFile); } KviFileUtils::adjustFilePath(szData); } -void KviApplication::getLocalKvircDirectory(QString &szData,KvircSubdir dir,const QString & appendFile,bool bCreateIfNeeded) +void KviApplication::getLocalKvircDirectory(QString & szData, KvircSubdir dir, const QString & appendFile, bool bCreateIfNeeded) { - szData=m_szLocalKvircDir; - KviQString::ensureLastCharIs(szData,KVI_PATH_SEPARATOR_CHAR); + szData = m_szLocalKvircDir; + KviQString::ensureLastCharIs(szData, KVI_PATH_SEPARATOR_CHAR); switch(dir) { - case None : break; - case Pics : szData.append("pics"); break; - case EasyPlugins : szData.append("easyplugins"); break; - case Config : szData.append("config"); break; - case ConfigPlugins : szData.append("config" KVI_PATH_SEPARATOR "modules"); break; - case ConfigScripts : szData.append("config" KVI_PATH_SEPARATOR "scripts"); break; - case Log : + case None: + break; + case Pics: + szData.append("pics"); + break; + case EasyPlugins: + szData.append("easyplugins"); + break; + case Config: + szData.append("config"); + break; + case ConfigPlugins: + szData.append("config" KVI_PATH_SEPARATOR "modules"); + break; + case ConfigScripts: + szData.append("config" KVI_PATH_SEPARATOR "scripts"); + break; + case Log: szData = KVI_OPTION_STRING(KviOption_stringLogsPath); // we should take special care here // the user is likely to mess the path behind our back // try to recover from most common problems while(szData.endsWith(KVI_PATH_SEPARATOR_CHAR)) - szData = szData.remove(szData.length()-1,1); + szData = szData.remove(szData.length() - 1, 1); if(szData.isEmpty()) { szData = m_szLocalKvircDir; @@ -134,21 +195,23 @@ void KviApplication::getLocalKvircDirectory(QString &szData,KvircSubdir dir,cons szData.append("log"); KVI_OPTION_STRING(KviOption_stringLogsPath) = szData; } - break; - case Incoming : + break; + case Incoming: szData = KVI_OPTION_STRING(KviOption_stringIncomingPath); // we should take special care here // the user is likely to mess the path behind our back // try to recover from most common problems while(szData.endsWith(KVI_PATH_SEPARATOR_CHAR)) - szData = szData.remove(szData.length()-1,1); + szData = szData.remove(szData.length() - 1, 1); if(szData.isEmpty()) { #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) if(m_bPortable) { szData = m_szLocalKvircDir; - } else { + } + else + { #endif szData = QDir::homePath(); #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) @@ -159,99 +222,143 @@ void KviApplication::getLocalKvircDirectory(QString &szData,KvircSubdir dir,cons szData.append(KVI_DEFAULT_INCOMING_SUBDIRECTORY_NAME); KVI_OPTION_STRING(KviOption_stringIncomingPath) = szData; } - break; - case Help : + break; + case Help: szData.append("help"); { // Localized help QString tmp = KviLocale::instance()->localeName().ptr(); tmp.prepend(KVI_PATH_SEPARATOR_CHAR); tmp.prepend(szData); - if(KviFileUtils::directoryExists(tmp))szData = tmp; - else { - tmp = szData; tmp.append(KVI_PATH_SEPARATOR"en"); - if(KviFileUtils::directoryExists(tmp))szData = tmp; + if(KviFileUtils::directoryExists(tmp)) + szData = tmp; + else + { + tmp = szData; + tmp.append(KVI_PATH_SEPARATOR "en"); + if(KviFileUtils::directoryExists(tmp)) + szData = tmp; } } - break; - case HelpEN : szData.append("help" KVI_PATH_SEPARATOR "en"); break; - case HelpNoIntl : szData.append("help"); break; - case Audio : szData.append("audio"); break; - case Scripts : szData.append("scripts"); break; - case Modules : - case Plugins : szData.append("modules"); break; - case Trash : szData.append("trash"); break; - case MsgColors : szData.append("msgcolors"); break; - case Charmaps : szData.append("charmaps"); break; - case Avatars : szData.append("avatars"); break; - case License : szData.append("license"); break; - case Filters : szData.append("filters"); break; - case Tmp : szData.append("tmp"); break; - case Locale : szData.append("locale"); break; - case Themes : szData.append("themes"); break; - case DefScript : szData.append("defscript"); /* should never happen! */ break; - case Classes : szData.append("classes"); break; - case SmallIcons : szData.append("pics" KVI_PATH_SEPARATOR KVI_SMALLICONS_SUBDIRECTORY); break; + break; + case HelpEN: + szData.append("help" KVI_PATH_SEPARATOR "en"); + break; + case HelpNoIntl: + szData.append("help"); + break; + case Audio: + szData.append("audio"); + break; + case Scripts: + szData.append("scripts"); + break; + case Modules: + case Plugins: + szData.append("modules"); + break; + case Trash: + szData.append("trash"); + break; + case MsgColors: + szData.append("msgcolors"); + break; + case Charmaps: + szData.append("charmaps"); + break; + case Avatars: + szData.append("avatars"); + break; + case License: + szData.append("license"); + break; + case Filters: + szData.append("filters"); + break; + case Tmp: + szData.append("tmp"); + break; + case Locale: + szData.append("locale"); + break; + case Themes: + szData.append("themes"); + break; + case DefScript: + szData.append("defscript"); /* should never happen! */ + break; + case Classes: + szData.append("classes"); + break; + case SmallIcons: + szData.append("pics" KVI_PATH_SEPARATOR KVI_SMALLICONS_SUBDIRECTORY); + break; } - if(bCreateIfNeeded)KviFileUtils::makeDir(szData); + if(bCreateIfNeeded) + KviFileUtils::makeDir(szData); if(!appendFile.isEmpty()) { - KviQString::ensureLastCharIs(szData,KVI_PATH_SEPARATOR_CHAR); + KviQString::ensureLastCharIs(szData, KVI_PATH_SEPARATOR_CHAR); szData.append(appendFile); } KviFileUtils::adjustFilePath(szData); } -void KviApplication::getTmpFileName(QString &szBuffer,const QString &szEndingFileName) +void KviApplication::getTmpFileName(QString & szBuffer, const QString & szEndingFileName) { QString tmp; - getLocalKvircDirectory(tmp,Tmp); - KviQString::ensureLastCharIs(tmp,KVI_PATH_SEPARATOR_CHAR); + getLocalKvircDirectory(tmp, Tmp); + KviQString::ensureLastCharIs(tmp, KVI_PATH_SEPARATOR_CHAR); struct timeval tmv; - kvi_gettimeofday(&tmv,0); + kvi_gettimeofday(&tmv, 0); QString szFileName = szEndingFileName.isNull() ? QString("file.tmp") : szEndingFileName; - do { + do + { szBuffer = tmp; - KviQString::appendFormatted(szBuffer,"kvirc_%d_%Q",tmv.tv_usec,&szFileName); + KviQString::appendFormatted(szBuffer, "kvirc_%d_%Q", tmv.tv_usec, &szFileName); tmv.tv_usec++; } while(KviFileUtils::fileExists(szBuffer)); } -void KviApplication::completeDirectory(const QString &word,KviPointerList * matches) +void KviApplication::completeDirectory(const QString & word, KviPointerList * matches) { QString szDir = word; QString szFile = word; - KviQString::cutToLast(szFile,KVI_PATH_SEPARATOR_CHAR); - KviQString::cutFromLast(szDir,KVI_PATH_SEPARATOR_CHAR); + KviQString::cutToLast(szFile, KVI_PATH_SEPARATOR_CHAR); + KviQString::cutFromLast(szDir, KVI_PATH_SEPARATOR_CHAR); KviFileUtils::adjustFilePath(szDir); - KviQString::ensureLastCharIs(szDir,KVI_PATH_SEPARATOR_CHAR); + KviQString::ensureLastCharIs(szDir, KVI_PATH_SEPARATOR_CHAR); QDir d(szDir); // FIXME: maybe check timestamps ? (old modules) QStringList sl = d.entryList(QDir::Dirs); QStringList::Iterator it; - for(it = sl.begin();it != sl.end();++it) + for(it = sl.begin(); it != sl.end(); ++it) { QString * t = new QString(*it); - if(KviQString::equalCS(*t,".") || KviQString::equalCS(*t,"..")) + if(KviQString::equalCS(*t, ".") || KviQString::equalCS(*t, "..")) { delete t; - } else { + } + else + { #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - if(KviQString::equalCIN(szFile,*t,szFile.length())) + if(KviQString::equalCIN(szFile, *t, szFile.length())) #else - if(KviQString::equalCSN(szFile,*t,szFile.length())) + if(KviQString::equalCSN(szFile, *t, szFile.length())) #endif { t->prepend(szDir); t->append(KVI_PATH_SEPARATOR_CHAR); matches->append(t); - } else { + } + else + { delete t; } } @@ -259,24 +366,25 @@ void KviApplication::completeDirectory(const QString &word,KviPointerListprepend(szDir); matches->append(t); - } else { + } + else + { delete t; } } } - //============= getChannelDumpLogFileName ==============// // // Returns a valid filename for the channel dump log @@ -286,9 +394,10 @@ void KviApplication::getChannelDumpLogFileName(QString & szStr) { unsigned int uLogN = 0; QString szPrefix = "kick_"; - do{ + do + { QString szName = QString("%1%2.log").arg(szPrefix).arg(uLogN); - getLocalKvircDirectory(szStr,Log,szName); + getLocalKvircDirectory(szStr, Log, szName); uLogN++; if(uLogN > 9999) { @@ -311,32 +420,35 @@ void KviApplication::getChannelDumpLogFileName(QString & szStr) // FIXME: #warning "Check WHEN findImage is used and when findUserFile is used...we have a mess here" -bool KviApplication::findImageInImageSearchPath(QString &szRetPath,const QString &filename) +bool KviApplication::findImageInImageSearchPath(QString & szRetPath, const QString & filename) { // first lookup the user defined paths for(QStringList::Iterator it = KVI_OPTION_STRINGLIST(KviOption_stringlistImageSearchPaths).begin(); - it != KVI_OPTION_STRINGLIST(KviOption_stringlistImageSearchPaths).end();++it) + it != KVI_OPTION_STRINGLIST(KviOption_stringlistImageSearchPaths).end(); ++it) { szRetPath = *it; - KviQString::ensureLastCharIs(szRetPath,KVI_PATH_SEPARATOR_CHAR); + KviQString::ensureLastCharIs(szRetPath, KVI_PATH_SEPARATOR_CHAR); szRetPath.append(filename); //qDebug("LOOK FOR %s",szRetPath.ptr()); - if(KviFileUtils::fileExists(szRetPath))return true; + if(KviFileUtils::fileExists(szRetPath)) + return true; } return false; } -static KviApplication::KvircSubdir pics_localsubdirs[2]={ KviApplication::Pics, KviApplication::Avatars }; -static KviApplication::KvircSubdir pics_globalsubdirs[2]={ KviApplication::Pics, KviApplication::Avatars }; +static KviApplication::KvircSubdir pics_localsubdirs[2] = { KviApplication::Pics, KviApplication::Avatars }; +static KviApplication::KvircSubdir pics_globalsubdirs[2] = { KviApplication::Pics, KviApplication::Avatars }; -bool KviApplication::mapImageFile(QString &szRetPath,const QString &filename) +bool KviApplication::mapImageFile(QString & szRetPath, const QString & filename) { szRetPath = filename; // can't map non absolute paths - if(!KviFileUtils::isAbsolutePath(filename))return false; + if(!KviFileUtils::isAbsolutePath(filename)) + return false; // can't map non existing paths - if(!KviFileUtils::fileExists(filename))return false; + if(!KviFileUtils::fileExists(filename)) + return false; QFileInfo fi = QFileInfo(filename); @@ -346,17 +458,18 @@ bool KviApplication::mapImageFile(QString &szRetPath,const QString &filename) while(szRetPath.indexOf(KVI_PATH_SEPARATOR) != -1) { - KviQString::cutToFirst(szRetPath,KVI_PATH_SEPARATOR); + KviQString::cutToFirst(szRetPath, KVI_PATH_SEPARATOR); - if(szRetPath.isEmpty())break; + if(szRetPath.isEmpty()) + break; QString szBuffer; int i; - for(i=0;i<2;i++) + for(i = 0; i < 2; i++) { - getLocalKvircDirectory(szBuffer,pics_localsubdirs[i],szRetPath); + getLocalKvircDirectory(szBuffer, pics_localsubdirs[i], szRetPath); if(KviFileUtils::fileExists(szBuffer)) { QFileInfo fi2(szBuffer); @@ -368,9 +481,9 @@ bool KviApplication::mapImageFile(QString &szRetPath,const QString &filename) } } - for(i=0;i<2;i++) + for(i = 0; i < 2; i++) { - getGlobalKvircDirectory(szBuffer,pics_globalsubdirs[i],szRetPath); + getGlobalKvircDirectory(szBuffer, pics_globalsubdirs[i], szRetPath); //qDebug("CHECK %s",szBuffer.ptr()); if(KviFileUtils::fileExists(szBuffer)) { @@ -385,7 +498,7 @@ bool KviApplication::mapImageFile(QString &szRetPath,const QString &filename) // Last resort szBuffer = QDir::homePath(); - KviQString::ensureLastCharIs(szBuffer,KVI_PATH_SEPARATOR_CHAR); + KviQString::ensureLastCharIs(szBuffer, KVI_PATH_SEPARATOR_CHAR); szBuffer.append(szRetPath); if(KviFileUtils::fileExists(szBuffer)) { @@ -404,18 +517,17 @@ bool KviApplication::mapImageFile(QString &szRetPath,const QString &filename) return true; } - // no way to map it :/ szRetPath = filename; return false; } -bool KviApplication::findImage(QString &szRetPath,const QString &filename) +bool KviApplication::findImage(QString & szRetPath, const QString & filename) { // Find a user file... if(KviFileUtils::isAbsolutePath(filename)) { - szRetPath=filename; + szRetPath = filename; return KviFileUtils::fileExists(filename); } @@ -425,41 +537,47 @@ bool KviApplication::findImage(QString &szRetPath,const QString &filename) QString szTmp = KVI_OPTION_STRING(KviOption_stringIconThemeSubdir); szTmp.append(KVI_PATH_SEPARATOR_CHAR); szTmp.append(filename); - getLocalKvircDirectory(szRetPath,KviApplication::Themes,szTmp); - if(KviFileUtils::fileExists(szRetPath))return true; + getLocalKvircDirectory(szRetPath, KviApplication::Themes, szTmp); + if(KviFileUtils::fileExists(szRetPath)) + return true; - getGlobalKvircDirectory(szRetPath,KviApplication::Themes,szTmp); - if(KviFileUtils::fileExists(szRetPath))return true; + getGlobalKvircDirectory(szRetPath, KviApplication::Themes, szTmp); + if(KviFileUtils::fileExists(szRetPath)) + return true; } int i; - for(i=0;i<2;i++) + for(i = 0; i < 2; i++) { - getLocalKvircDirectory(szRetPath,pics_localsubdirs[i],filename); - if(KviFileUtils::fileExists(szRetPath))return true; + getLocalKvircDirectory(szRetPath, pics_localsubdirs[i], filename); + if(KviFileUtils::fileExists(szRetPath)) + return true; } - for(i=0;i<2;i++) + for(i = 0; i < 2; i++) { - getGlobalKvircDirectory(szRetPath,pics_globalsubdirs[i],filename); - if(KviFileUtils::fileExists(szRetPath))return true; + getGlobalKvircDirectory(szRetPath, pics_globalsubdirs[i], filename); + if(KviFileUtils::fileExists(szRetPath)) + return true; } - if(findImageInImageSearchPath(szRetPath,filename))return true; + if(findImageInImageSearchPath(szRetPath, filename)) + return true; // Last resort szRetPath = QDir::homePath(); - KviQString::ensureLastCharIs(szRetPath,KVI_PATH_SEPARATOR_CHAR); + KviQString::ensureLastCharIs(szRetPath, KVI_PATH_SEPARATOR_CHAR); szRetPath.append(filename); - if(KviFileUtils::fileExists(szRetPath))return true; + if(KviFileUtils::fileExists(szRetPath)) + return true; szRetPath = filename; return false; } -bool KviApplication::findImageThemeOnlyCompat(QString &szRetPath,const QString &filename) +bool KviApplication::findImageThemeOnlyCompat(QString & szRetPath, const QString & filename) { // if we have a theme, look it up as first if(!KVI_OPTION_STRING(KviOption_stringIconThemeSubdir).isEmpty()) @@ -468,34 +586,37 @@ bool KviApplication::findImageThemeOnlyCompat(QString &szRetPath,const QString & szTmp.append(KVI_PATH_SEPARATOR_CHAR); szTmp.append(filename); - getLocalKvircDirectory(szRetPath,KviApplication::Themes,szTmp); - if(KviFileUtils::fileExists(szRetPath))return true; + getLocalKvircDirectory(szRetPath, KviApplication::Themes, szTmp); + if(KviFileUtils::fileExists(szRetPath)) + return true; - getGlobalKvircDirectory(szRetPath,KviApplication::Themes,szTmp); - if(KviFileUtils::fileExists(szRetPath))return true; + getGlobalKvircDirectory(szRetPath, KviApplication::Themes, szTmp); + if(KviFileUtils::fileExists(szRetPath)) + return true; } - getLocalKvircDirectory(szRetPath,KviApplication::Pics,filename); - if(KviFileUtils::fileExists(szRetPath))return true; - + getLocalKvircDirectory(szRetPath, KviApplication::Pics, filename); + if(KviFileUtils::fileExists(szRetPath)) + return true; - if(findImageInImageSearchPath(szRetPath,filename))return true; + if(findImageInImageSearchPath(szRetPath, filename)) + return true; szRetPath = filename; return false; } -bool KviApplication::findSmallIcon(QString &szRetPath,const QString &filename) +bool KviApplication::findSmallIcon(QString & szRetPath, const QString & filename) { // this is a bit optimized for the small builtin icons // looks up less places. //if(kvi_isAbsolutePath(filename)) //{ - // BUG!.. we should never - //szRetPath=filename; - //return KviFileUtils::fileExists(filename); + // BUG!.. we should never + //szRetPath=filename; + //return KviFileUtils::fileExists(filename); //} // if we have a theme, look it up as first @@ -507,38 +628,45 @@ bool KviApplication::findSmallIcon(QString &szRetPath,const QString &filename) szTmp.append(KVI_PATH_SEPARATOR_CHAR); szTmp.append(filename); - getLocalKvircDirectory(szRetPath,KviApplication::Themes,szTmp); - if(KviFileUtils::fileExists(szRetPath))return true; + getLocalKvircDirectory(szRetPath, KviApplication::Themes, szTmp); + if(KviFileUtils::fileExists(szRetPath)) + return true; - getGlobalKvircDirectory(szRetPath,KviApplication::Themes,szTmp); - if(KviFileUtils::fileExists(szRetPath))return true; + getGlobalKvircDirectory(szRetPath, KviApplication::Themes, szTmp); + if(KviFileUtils::fileExists(szRetPath)) + return true; } // unlikely - getLocalKvircDirectory(szRetPath,KviApplication::SmallIcons,filename); - if(KviFileUtils::fileExists(szRetPath))return true; + getLocalKvircDirectory(szRetPath, KviApplication::SmallIcons, filename); + if(KviFileUtils::fileExists(szRetPath)) + return true; - getLocalKvircDirectory(szRetPath,KviApplication::Pics,filename); - if(KviFileUtils::fileExists(szRetPath))return true; + getLocalKvircDirectory(szRetPath, KviApplication::Pics, filename); + if(KviFileUtils::fileExists(szRetPath)) + return true; // likely - getGlobalKvircDirectory(szRetPath,KviApplication::SmallIcons,filename); - if(KviFileUtils::fileExists(szRetPath))return true; + getGlobalKvircDirectory(szRetPath, KviApplication::SmallIcons, filename); + if(KviFileUtils::fileExists(szRetPath)) + return true; - if(findImageInImageSearchPath(szRetPath,filename))return true; + if(findImageInImageSearchPath(szRetPath, filename)) + return true; // Last resort... bleah :/ szRetPath = QDir::homePath(); - KviQString::ensureLastCharIs(szRetPath,KVI_PATH_SEPARATOR_CHAR); + KviQString::ensureLastCharIs(szRetPath, KVI_PATH_SEPARATOR_CHAR); szRetPath.append(filename); - if(KviFileUtils::fileExists(szRetPath))return true; + if(KviFileUtils::fileExists(szRetPath)) + return true; szRetPath = filename; return false; } -bool KviApplication::findAudioFile(QString &szRetPath,const QString &szFileName) +bool KviApplication::findAudioFile(QString & szRetPath, const QString & szFileName) { if(KviFileUtils::isAbsolutePath(szFileName)) { @@ -546,17 +674,17 @@ bool KviApplication::findAudioFile(QString &szRetPath,const QString &szFileName) return KviFileUtils::fileExists(szFileName); } - getLocalKvircDirectory(szRetPath,KviApplication::Audio,szFileName); + getLocalKvircDirectory(szRetPath, KviApplication::Audio, szFileName); if(KviFileUtils::fileExists(szRetPath)) return true; - getGlobalKvircDirectory(szRetPath,KviApplication::Audio,szFileName); + getGlobalKvircDirectory(szRetPath, KviApplication::Audio, szFileName); if(KviFileUtils::fileExists(szRetPath)) return true; // Last resort szRetPath = QDir::homePath(); - KviQString::ensureLastCharIs(szRetPath,KVI_PATH_SEPARATOR_CHAR); + KviQString::ensureLastCharIs(szRetPath, KVI_PATH_SEPARATOR_CHAR); szRetPath.append(szFileName); if(KviFileUtils::fileExists(szRetPath)) return true; @@ -566,28 +694,30 @@ bool KviApplication::findAudioFile(QString &szRetPath,const QString &szFileName) return false; } - //================== getReadOnlyConfigPath ====================// // // We want to READ a config file...find it // -bool KviApplication::getReadOnlyConfigPath(QString &buffer,const char *config_name,KvircSubdir sbd,bool bNoFail) +bool KviApplication::getReadOnlyConfigPath(QString & buffer, const char * config_name, KvircSubdir sbd, bool bNoFail) { // Take a look in the local directory.... - getLocalKvircDirectory(buffer,sbd,config_name); + getLocalKvircDirectory(buffer, sbd, config_name); //qDebug("%s %s %i |%s| %i",__FILE__,__FUNCTION__,__LINE__,buffer.ptr(),KviFileUtils::fileExists(buffer.ptr())); if(!KviFileUtils::fileExists(buffer)) { // No saved config yet... check for defaults QString tmp; - getGlobalKvircDirectory(tmp,sbd,config_name); + getGlobalKvircDirectory(tmp, sbd, config_name); if(!KviFileUtils::fileExists(tmp)) { // No defaults...no such config file at all. - if(bNoFail)getLocalKvircDirectory(buffer,sbd,config_name); + if(bNoFail) + getLocalKvircDirectory(buffer, sbd, config_name); return false; - } else buffer = tmp; // get the defaults this time - } // else file exists... + } + else + buffer = tmp; // get the defaults this time + } // else file exists... return true; } diff --git a/src/kvirc/kernel/KviApplication_setup.cpp b/src/kvirc/kernel/KviApplication_setup.cpp index abce6c3d0..d63d9ea0d 100644 --- a/src/kvirc/kernel/KviApplication_setup.cpp +++ b/src/kvirc/kernel/KviApplication_setup.cpp @@ -35,15 +35,15 @@ #include "KviConfigurationFile.h" #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - #include +#include #else - #include // for getenv() - #include // for symlink() <-- unused? +#include // for getenv() +#include // for symlink() <-- unused? - #ifdef COMPILE_KDE_SUPPORT - #include - #include - #endif +#ifdef COMPILE_KDE_SUPPORT +#include +#include +#endif #endif #include @@ -65,12 +65,12 @@ bool KviApplication::checkGlobalKvircDirectory(const QString szDir) { //First check if the help subdir exists QString szHelpDir = szDir; - szHelpDir += KVI_PATH_SEPARATOR"help"; + szHelpDir += KVI_PATH_SEPARATOR "help"; if(!KviFileUtils::directoryExists(szHelpDir)) return false; //Then check if the pics subdir exists QString szPicsDir = szDir; - szPicsDir += KVI_PATH_SEPARATOR"pics"; + szPicsDir += KVI_PATH_SEPARATOR "pics"; if(!KviFileUtils::directoryExists(szPicsDir)) return false; //Now make sure that it is the dir that we're looking for. @@ -80,7 +80,7 @@ bool KviApplication::checkGlobalKvircDirectory(const QString szDir) return KviFileUtils::isReadable(szPicsDir); } -bool KviApplication::checkLocalKvircDirectory(const QString &szSpecificPath) +bool KviApplication::checkLocalKvircDirectory(const QString & szSpecificPath) { QString szSavedLocalKvircDir = m_szLocalKvircDir; m_szLocalKvircDir = szSpecificPath; @@ -98,7 +98,7 @@ bool KviApplication::checkLocalKvircDirectory() return false; QString szBuff; - getLocalKvircDirectory(szBuff,Config); + getLocalKvircDirectory(szBuff, Config); if(!KviFileUtils::directoryExists(szBuff)) return false; @@ -114,21 +114,23 @@ bool KviApplication::checkFileAssociations() char * pcBuffer; DWORD len = QUERY_BUFFER; DWORD err; - pcBuffer = (char*)malloc(len*sizeof(char)); + pcBuffer = (char *)malloc(len * sizeof(char)); HKEY hKey; - if(RegOpenKeyEx(HKEY_CLASSES_ROOT,".kvs",0,KEY_READ,&hKey) != ERROR_SUCCESS) + if(RegOpenKeyEx(HKEY_CLASSES_ROOT, ".kvs", 0, KEY_READ, &hKey) != ERROR_SUCCESS) { free(pcBuffer); return false; } - if((err=RegQueryValueEx(hKey,0,0,0,(LPBYTE)pcBuffer,&len)) != ERROR_SUCCESS) + if((err = RegQueryValueEx(hKey, 0, 0, 0, (LPBYTE)pcBuffer, &len)) != ERROR_SUCCESS) { free(pcBuffer); return false; - } else { - if(!kvi_strEqualCIN("KVIrcScript",pcBuffer,11)) + } + else + { + if(!kvi_strEqualCIN("KVIrcScript", pcBuffer, 11)) { free(pcBuffer); return false; @@ -136,18 +138,20 @@ bool KviApplication::checkFileAssociations() } len = QUERY_BUFFER; - if(RegOpenKeyEx(HKEY_CLASSES_ROOT,"KVIrcScript",0,KEY_READ,&hKey) != ERROR_SUCCESS) + if(RegOpenKeyEx(HKEY_CLASSES_ROOT, "KVIrcScript", 0, KEY_READ, &hKey) != ERROR_SUCCESS) { free(pcBuffer); return false; } - if((err=RegQueryValueEx( hKey,0,0,0,(LPBYTE)pcBuffer,&len)) != ERROR_SUCCESS) + if((err = RegQueryValueEx(hKey, 0, 0, 0, (LPBYTE)pcBuffer, &len)) != ERROR_SUCCESS) { free(pcBuffer); return false; - } else { - if(!kvi_strEqualCI(__tr2qs("KVIrc KVS Script").toLocal8Bit().data(),pcBuffer)) + } + else + { + if(!kvi_strEqualCI(__tr2qs("KVIrc KVS Script").toLocal8Bit().data(), pcBuffer)) { free(pcBuffer); return false; @@ -155,20 +159,22 @@ bool KviApplication::checkFileAssociations() } len = QUERY_BUFFER; - if(RegOpenKeyEx(HKEY_CLASSES_ROOT,"KVIrcScript\\DefaultIcon",0,KEY_READ,&hKey) != ERROR_SUCCESS) + if(RegOpenKeyEx(HKEY_CLASSES_ROOT, "KVIrcScript\\DefaultIcon", 0, KEY_READ, &hKey) != ERROR_SUCCESS) { free(pcBuffer); return false; } - if(RegQueryValueEx(hKey,0,0,0,(LPBYTE)pcBuffer,&len) != ERROR_SUCCESS) + if(RegQueryValueEx(hKey, 0, 0, 0, (LPBYTE)pcBuffer, &len) != ERROR_SUCCESS) { free(pcBuffer); return false; - } else { - QString szIcon = applicationFilePath()+",1"; - szIcon.replace('/',"\\"); - if(!kvi_strEqualCI(szIcon.toLocal8Bit().data(),pcBuffer)) + } + else + { + QString szIcon = applicationFilePath() + ",1"; + szIcon.replace('/', "\\"); + if(!kvi_strEqualCI(szIcon.toLocal8Bit().data(), pcBuffer)) { free(pcBuffer); return false; @@ -176,18 +182,20 @@ bool KviApplication::checkFileAssociations() } len = QUERY_BUFFER; - if(RegOpenKeyEx(HKEY_CLASSES_ROOT,"KVIrcScript\\Shell\\Parse",0,KEY_READ,&hKey) != ERROR_SUCCESS) + if(RegOpenKeyEx(HKEY_CLASSES_ROOT, "KVIrcScript\\Shell\\Parse", 0, KEY_READ, &hKey) != ERROR_SUCCESS) { free(pcBuffer); return false; } - if(RegQueryValueEx( hKey,0,0,0,(LPBYTE)pcBuffer,&len) != ERROR_SUCCESS) + if(RegQueryValueEx(hKey, 0, 0, 0, (LPBYTE)pcBuffer, &len) != ERROR_SUCCESS) { free(pcBuffer); return false; - } else { - if(!kvi_strEqualCI(__tr2qs("Run KVS Script").toLocal8Bit().data(),pcBuffer)) + } + else + { + if(!kvi_strEqualCI(__tr2qs("Run KVS Script").toLocal8Bit().data(), pcBuffer)) { free(pcBuffer); return false; @@ -195,20 +203,22 @@ bool KviApplication::checkFileAssociations() } len = QUERY_BUFFER; - if(RegOpenKeyEx(HKEY_CLASSES_ROOT,"KVIrcScript\\Shell\\Parse\\command",0,KEY_READ,&hKey) != ERROR_SUCCESS) + if(RegOpenKeyEx(HKEY_CLASSES_ROOT, "KVIrcScript\\Shell\\Parse\\command", 0, KEY_READ, &hKey) != ERROR_SUCCESS) { free(pcBuffer); return false; } - if(RegQueryValueEx( hKey,0,0,0,(LPBYTE)pcBuffer,&len) != ERROR_SUCCESS) + if(RegQueryValueEx(hKey, 0, 0, 0, (LPBYTE)pcBuffer, &len) != ERROR_SUCCESS) { free(pcBuffer); return false; - } else { - QString szCmd = applicationFilePath()+" \"%1\""; - szCmd.replace('/',"\\"); - if(!kvi_strEqualCI(szCmd.toLocal8Bit().data(),pcBuffer)) + } + else + { + QString szCmd = applicationFilePath() + " \"%1\""; + szCmd.replace('/', "\\"); + if(!kvi_strEqualCI(szCmd.toLocal8Bit().data(), pcBuffer)) { free(pcBuffer); return false; @@ -216,18 +226,20 @@ bool KviApplication::checkFileAssociations() } //Config - if(RegOpenKeyEx(HKEY_CLASSES_ROOT,".kvc",0,KEY_READ,&hKey) != ERROR_SUCCESS) + if(RegOpenKeyEx(HKEY_CLASSES_ROOT, ".kvc", 0, KEY_READ, &hKey) != ERROR_SUCCESS) { free(pcBuffer); return false; } - if( (err=RegQueryValueEx( hKey,0,0,0,(LPBYTE)pcBuffer,&len)) != ERROR_SUCCESS) + if((err = RegQueryValueEx(hKey, 0, 0, 0, (LPBYTE)pcBuffer, &len)) != ERROR_SUCCESS) { free(pcBuffer); return false; - } else { - if(!kvi_strEqualCIN("KVIrcConfig",pcBuffer,11)) + } + else + { + if(!kvi_strEqualCIN("KVIrcConfig", pcBuffer, 11)) { free(pcBuffer); return false; @@ -235,25 +247,27 @@ bool KviApplication::checkFileAssociations() } len = QUERY_BUFFER; - if(RegOpenKeyEx(HKEY_CLASSES_ROOT,"KVIrcConfig",0,KEY_READ,&hKey) != ERROR_SUCCESS) + if(RegOpenKeyEx(HKEY_CLASSES_ROOT, "KVIrcConfig", 0, KEY_READ, &hKey) != ERROR_SUCCESS) { free(pcBuffer); return false; } //Addon - if(RegOpenKeyEx(HKEY_CLASSES_ROOT,".kva",0,KEY_READ,&hKey) != ERROR_SUCCESS) + if(RegOpenKeyEx(HKEY_CLASSES_ROOT, ".kva", 0, KEY_READ, &hKey) != ERROR_SUCCESS) { free(pcBuffer); return false; } - if((err=RegQueryValueEx( hKey,0,0,0,(LPBYTE)pcBuffer,&len)) != ERROR_SUCCESS) + if((err = RegQueryValueEx(hKey, 0, 0, 0, (LPBYTE)pcBuffer, &len)) != ERROR_SUCCESS) { free(pcBuffer); return false; - } else { - if(!kvi_strEqualCIN("KVIrcAddon",pcBuffer,11)) + } + else + { + if(!kvi_strEqualCIN("KVIrcAddon", pcBuffer, 11)) { free(pcBuffer); return false; @@ -261,25 +275,27 @@ bool KviApplication::checkFileAssociations() } len = QUERY_BUFFER; - if(RegOpenKeyEx(HKEY_CLASSES_ROOT,"KVIrcAddon",0,KEY_READ,&hKey) != ERROR_SUCCESS) + if(RegOpenKeyEx(HKEY_CLASSES_ROOT, "KVIrcAddon", 0, KEY_READ, &hKey) != ERROR_SUCCESS) { free(pcBuffer); return false; } //Theme - if(RegOpenKeyEx(HKEY_CLASSES_ROOT,".kvt",0,KEY_READ,&hKey) != ERROR_SUCCESS) + if(RegOpenKeyEx(HKEY_CLASSES_ROOT, ".kvt", 0, KEY_READ, &hKey) != ERROR_SUCCESS) { free(pcBuffer); return false; } - if((err=RegQueryValueEx( hKey,0,0,0,(LPBYTE)pcBuffer,&len)) != ERROR_SUCCESS) + if((err = RegQueryValueEx(hKey, 0, 0, 0, (LPBYTE)pcBuffer, &len)) != ERROR_SUCCESS) { free(pcBuffer); return false; - } else { - if(!kvi_strEqualCIN("KVIrcTheme",pcBuffer,11)) + } + else + { + if(!kvi_strEqualCIN("KVIrcTheme", pcBuffer, 11)) { free(pcBuffer); return false; @@ -287,7 +303,7 @@ bool KviApplication::checkFileAssociations() } len = QUERY_BUFFER; - if(RegOpenKeyEx(HKEY_CLASSES_ROOT,"KVIrcTheme",0,KEY_READ,&hKey) != ERROR_SUCCESS) + if(RegOpenKeyEx(HKEY_CLASSES_ROOT, "KVIrcTheme", 0, KEY_READ, &hKey) != ERROR_SUCCESS) { free(pcBuffer); return false; @@ -296,10 +312,8 @@ bool KviApplication::checkFileAssociations() free(pcBuffer); #endif return true; - } - #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) bool KviApplication::checkUriAssociations(const char * pcProto) { @@ -307,25 +321,27 @@ bool KviApplication::checkUriAssociations(const char * pcProto) char * pcBuffer; DWORD len = QUERY_BUFFER; DWORD err; - pcBuffer = (char*)malloc(len*sizeof(char)); + pcBuffer = (char *)malloc(len * sizeof(char)); HKEY hKey; KviCString szStoredKey = pcProto; KviCString szKey = szStoredKey; len = QUERY_BUFFER; - if(RegOpenKeyEx(HKEY_CLASSES_ROOT,szKey,0,KEY_READ,&hKey) != ERROR_SUCCESS) + if(RegOpenKeyEx(HKEY_CLASSES_ROOT, szKey, 0, KEY_READ, &hKey) != ERROR_SUCCESS) { free(pcBuffer); return false; } - if((err=RegQueryValueEx(hKey,0,0,0,(LPBYTE)pcBuffer,&len)) != ERROR_SUCCESS) + if((err = RegQueryValueEx(hKey, 0, 0, 0, (LPBYTE)pcBuffer, &len)) != ERROR_SUCCESS) { free(pcBuffer); return false; - } else { - if(!kvi_strEqualCI(__tr2qs("URL:IRC Protocol").toLocal8Bit().data(),pcBuffer)) + } + else + { + if(!kvi_strEqualCI(__tr2qs("URL:IRC Protocol").toLocal8Bit().data(), pcBuffer)) { free(pcBuffer); return false; @@ -333,7 +349,7 @@ bool KviApplication::checkUriAssociations(const char * pcProto) } len = QUERY_BUFFER; - if((err=RegQueryValueEx(hKey,"URL Protocol",0,0,(LPBYTE)pcBuffer,&len)) != ERROR_SUCCESS) + if((err = RegQueryValueEx(hKey, "URL Protocol", 0, 0, (LPBYTE)pcBuffer, &len)) != ERROR_SUCCESS) { free(pcBuffer); return false; @@ -341,20 +357,22 @@ bool KviApplication::checkUriAssociations(const char * pcProto) szKey = szStoredKey + "\\DefaultIcon"; len = QUERY_BUFFER; - if(RegOpenKeyEx(HKEY_CLASSES_ROOT,szKey,0,KEY_READ,&hKey) != ERROR_SUCCESS) + if(RegOpenKeyEx(HKEY_CLASSES_ROOT, szKey, 0, KEY_READ, &hKey) != ERROR_SUCCESS) { free(pcBuffer); return false; } - if(RegQueryValueEx(hKey,0,0,0,(LPBYTE)pcBuffer,&len) != ERROR_SUCCESS) + if(RegQueryValueEx(hKey, 0, 0, 0, (LPBYTE)pcBuffer, &len) != ERROR_SUCCESS) { free(pcBuffer); return false; - } else { + } + else + { QString szIcon = applicationFilePath() + ",0"; - szIcon.replace('/',"\\"); - if(!kvi_strEqualCI(szIcon.toLocal8Bit().data(),pcBuffer)) + szIcon.replace('/', "\\"); + if(!kvi_strEqualCI(szIcon.toLocal8Bit().data(), pcBuffer)) { free(pcBuffer); return false; @@ -363,18 +381,20 @@ bool KviApplication::checkUriAssociations(const char * pcProto) len = QUERY_BUFFER; szKey = szStoredKey + "\\Shell\\open"; - if(RegOpenKeyEx(HKEY_CLASSES_ROOT,szKey,0,KEY_READ,&hKey) != ERROR_SUCCESS) + if(RegOpenKeyEx(HKEY_CLASSES_ROOT, szKey, 0, KEY_READ, &hKey) != ERROR_SUCCESS) { free(pcBuffer); return false; } - if(RegQueryValueEx(hKey,0,0,0,(LPBYTE)pcBuffer,&len) != ERROR_SUCCESS) + if(RegQueryValueEx(hKey, 0, 0, 0, (LPBYTE)pcBuffer, &len) != ERROR_SUCCESS) { free(pcBuffer); return false; - } else { - if(!kvi_strEqualCI(__tr2qs("Open with KVIrc").toLocal8Bit().data(),pcBuffer)) + } + else + { + if(!kvi_strEqualCI(__tr2qs("Open with KVIrc").toLocal8Bit().data(), pcBuffer)) { free(pcBuffer); return false; @@ -383,20 +403,22 @@ bool KviApplication::checkUriAssociations(const char * pcProto) len = QUERY_BUFFER; szKey = szStoredKey + "\\Shell\\open\\command"; - if(RegOpenKeyEx(HKEY_CLASSES_ROOT,szKey,0,KEY_READ,&hKey) != ERROR_SUCCESS) + if(RegOpenKeyEx(HKEY_CLASSES_ROOT, szKey, 0, KEY_READ, &hKey) != ERROR_SUCCESS) { free(pcBuffer); return false; } - if(RegQueryValueEx(hKey,0,0,0,(LPBYTE)pcBuffer,&len) != ERROR_SUCCESS) + if(RegQueryValueEx(hKey, 0, 0, 0, (LPBYTE)pcBuffer, &len) != ERROR_SUCCESS) { free(pcBuffer); return false; - } else { + } + else + { QString szCmd = applicationFilePath() + " \"%1\""; - szCmd.replace('/',"\\"); - if(!kvi_strEqualCI(szCmd.toLocal8Bit().data(),pcBuffer)) + szCmd.replace('/', "\\"); + if(!kvi_strEqualCI(szCmd.toLocal8Bit().data(), pcBuffer)) { free(pcBuffer); return false; @@ -411,7 +433,6 @@ bool KviApplication::checkUriAssociations(const char *) return true; } - #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) void KviApplication::setupUriAssociations(const char * pcProto) { @@ -423,28 +444,28 @@ void KviApplication::setupUriAssociations(const char * pcProto) QByteArray tmp; QString szAppPath = applicationFilePath(); - szAppPath.replace('/',"\\"); + szAppPath.replace('/', "\\"); - SHDeleteKey(HKEY_CLASSES_ROOT,szKey); + SHDeleteKey(HKEY_CLASSES_ROOT, szKey); - err = RegCreateKeyEx(HKEY_CLASSES_ROOT,szKey,0,0,0,KEY_WRITE,0,&hKey,0); - RegSetValueEx(hKey,0,0,REG_SZ,(LPBYTE)"URL:IRC Protocol",16); - RegSetValueEx(hKey,"URL Protocol",0,REG_SZ,(LPBYTE)"",0); + err = RegCreateKeyEx(HKEY_CLASSES_ROOT, szKey, 0, 0, 0, KEY_WRITE, 0, &hKey, 0); + RegSetValueEx(hKey, 0, 0, REG_SZ, (LPBYTE) "URL:IRC Protocol", 16); + RegSetValueEx(hKey, "URL Protocol", 0, REG_SZ, (LPBYTE) "", 0); szKey = szStoredKey + "\\DefaultIcon"; - RegCreateKeyEx(HKEY_CLASSES_ROOT,szKey,0,0,0,KEY_WRITE,0,&hKey,0); + RegCreateKeyEx(HKEY_CLASSES_ROOT, szKey, 0, 0, 0, KEY_WRITE, 0, &hKey, 0); tmp = QString(szAppPath + ",0").toLocal8Bit(); - RegSetValueEx(hKey,0,0,REG_SZ,(LPBYTE)tmp.data(),tmp.length()); + RegSetValueEx(hKey, 0, 0, REG_SZ, (LPBYTE)tmp.data(), tmp.length()); szKey = szStoredKey + "\\Shell\\open"; - RegCreateKeyEx(HKEY_CLASSES_ROOT,szKey,0,0,0,KEY_WRITE,0,&hKey,0); + RegCreateKeyEx(HKEY_CLASSES_ROOT, szKey, 0, 0, 0, KEY_WRITE, 0, &hKey, 0); tmp = __tr2qs("Open with KVIrc").toLocal8Bit(); - RegSetValueEx(hKey,0,0,REG_SZ,(LPBYTE)tmp.data(),tmp.length()); + RegSetValueEx(hKey, 0, 0, REG_SZ, (LPBYTE)tmp.data(), tmp.length()); szKey = szStoredKey + "\\Shell\\open\\command"; - RegCreateKeyEx(HKEY_CLASSES_ROOT,szKey,0,0,0,KEY_WRITE,0,&hKey,0); + RegCreateKeyEx(HKEY_CLASSES_ROOT, szKey, 0, 0, 0, KEY_WRITE, 0, &hKey, 0); tmp = QString(szAppPath + " --external \"%1\"").toLocal8Bit(); - RegSetValueEx(hKey,0,0,REG_SZ,(LPBYTE)tmp.data(),tmp.length()); + RegSetValueEx(hKey, 0, 0, REG_SZ, (LPBYTE)tmp.data(), tmp.length()); #else void KviApplication::setupUriAssociations(const char *) { @@ -459,98 +480,98 @@ void KviApplication::setupFileAssociations() QByteArray tmp; QString szAppPath = applicationFilePath(); - szAppPath.replace('/',"\\"); + szAppPath.replace('/', "\\"); - SHDeleteKey(HKEY_CLASSES_ROOT,".kvs"); + SHDeleteKey(HKEY_CLASSES_ROOT, ".kvs"); - err = RegCreateKeyEx(HKEY_CLASSES_ROOT,".kvs",0,0,0,KEY_WRITE,0,&hKey,0); - RegSetValueEx(hKey,0,0,REG_SZ,(LPBYTE)"KVIrcScript",11); + err = RegCreateKeyEx(HKEY_CLASSES_ROOT, ".kvs", 0, 0, 0, KEY_WRITE, 0, &hKey, 0); + RegSetValueEx(hKey, 0, 0, REG_SZ, (LPBYTE) "KVIrcScript", 11); - SHDeleteKey(HKEY_CLASSES_ROOT,"KVIrcScript"); - RegCreateKeyEx(HKEY_CLASSES_ROOT,"KVIrcScript",0,0,0,KEY_WRITE,0,&hKey,0); + SHDeleteKey(HKEY_CLASSES_ROOT, "KVIrcScript"); + RegCreateKeyEx(HKEY_CLASSES_ROOT, "KVIrcScript", 0, 0, 0, KEY_WRITE, 0, &hKey, 0); tmp = __tr2qs("KVIrc KVS Script").toLocal8Bit(); - RegSetValueEx(hKey,0,0,REG_SZ,(LPBYTE)tmp.data(),tmp.length()); + RegSetValueEx(hKey, 0, 0, REG_SZ, (LPBYTE)tmp.data(), tmp.length()); - RegCreateKeyEx(HKEY_CLASSES_ROOT,"KVIrcScript\\DefaultIcon",0,0,0,KEY_WRITE,0,&hKey,0); + RegCreateKeyEx(HKEY_CLASSES_ROOT, "KVIrcScript\\DefaultIcon", 0, 0, 0, KEY_WRITE, 0, &hKey, 0); tmp = QString(szAppPath + ",1").toLocal8Bit(); - RegSetValueEx(hKey,0,0,REG_SZ,(LPBYTE)tmp.data(),tmp.length()); + RegSetValueEx(hKey, 0, 0, REG_SZ, (LPBYTE)tmp.data(), tmp.length()); - RegCreateKeyEx(HKEY_CLASSES_ROOT,"KVIrcScript\\Shell\\Parse",0,0,0,KEY_WRITE,0,&hKey,0); + RegCreateKeyEx(HKEY_CLASSES_ROOT, "KVIrcScript\\Shell\\Parse", 0, 0, 0, KEY_WRITE, 0, &hKey, 0); tmp = __tr2qs("Run KVS Script").toLocal8Bit(); - RegSetValueEx(hKey,0,0,REG_SZ,(LPBYTE)tmp.data(),tmp.length()); + RegSetValueEx(hKey, 0, 0, REG_SZ, (LPBYTE)tmp.data(), tmp.length()); - RegCreateKeyEx(HKEY_CLASSES_ROOT,"KVIrcScript\\Shell\\Parse\\command",0,0,0,KEY_WRITE,0,&hKey,0); + RegCreateKeyEx(HKEY_CLASSES_ROOT, "KVIrcScript\\Shell\\Parse\\command", 0, 0, 0, KEY_WRITE, 0, &hKey, 0); tmp = QString(szAppPath + " \"%1\"").toLocal8Bit(); - RegSetValueEx(hKey,0,0,REG_SZ,(LPBYTE)tmp.data(),tmp.length()); + RegSetValueEx(hKey, 0, 0, REG_SZ, (LPBYTE)tmp.data(), tmp.length()); //Configs - SHDeleteKey(HKEY_CLASSES_ROOT,".kvc"); + SHDeleteKey(HKEY_CLASSES_ROOT, ".kvc"); - err = RegCreateKeyEx(HKEY_CLASSES_ROOT,".kvc",0,0,0,KEY_WRITE,0,&hKey,0); - RegSetValueEx(hKey,0,0,REG_SZ,(LPBYTE)"KVIrcConfig",11); + err = RegCreateKeyEx(HKEY_CLASSES_ROOT, ".kvc", 0, 0, 0, KEY_WRITE, 0, &hKey, 0); + RegSetValueEx(hKey, 0, 0, REG_SZ, (LPBYTE) "KVIrcConfig", 11); - SHDeleteKey(HKEY_CLASSES_ROOT,"KVIrcConfig"); - RegCreateKeyEx(HKEY_CLASSES_ROOT,"KVIrcConfig",0,0,0,KEY_WRITE,0,&hKey,0); + SHDeleteKey(HKEY_CLASSES_ROOT, "KVIrcConfig"); + RegCreateKeyEx(HKEY_CLASSES_ROOT, "KVIrcConfig", 0, 0, 0, KEY_WRITE, 0, &hKey, 0); tmp = __tr2qs("KVIrc Configuration File").toLocal8Bit(); - RegSetValueEx(hKey,0,0,REG_SZ,(LPBYTE)tmp.data(),tmp.length()); + RegSetValueEx(hKey, 0, 0, REG_SZ, (LPBYTE)tmp.data(), tmp.length()); - RegCreateKeyEx(HKEY_CLASSES_ROOT,"KVIrcConfig\\DefaultIcon",0,0,0,KEY_WRITE,0,&hKey,0); + RegCreateKeyEx(HKEY_CLASSES_ROOT, "KVIrcConfig\\DefaultIcon", 0, 0, 0, KEY_WRITE, 0, &hKey, 0); tmp = QString(szAppPath + ",2").toLocal8Bit(); - RegSetValueEx(hKey,0,0,REG_SZ,(LPBYTE)tmp.data(),tmp.length()); + RegSetValueEx(hKey, 0, 0, REG_SZ, (LPBYTE)tmp.data(), tmp.length()); // Themes - SHDeleteKey(HKEY_CLASSES_ROOT,".kvt"); + SHDeleteKey(HKEY_CLASSES_ROOT, ".kvt"); - err = RegCreateKeyEx(HKEY_CLASSES_ROOT,".kvt",0,0,0,KEY_WRITE,0,&hKey,0); - RegSetValueEx(hKey,0,0,REG_SZ,(LPBYTE)"KVIrcTheme",11); + err = RegCreateKeyEx(HKEY_CLASSES_ROOT, ".kvt", 0, 0, 0, KEY_WRITE, 0, &hKey, 0); + RegSetValueEx(hKey, 0, 0, REG_SZ, (LPBYTE) "KVIrcTheme", 11); - SHDeleteKey(HKEY_CLASSES_ROOT,"KVIrcTheme"); - RegCreateKeyEx(HKEY_CLASSES_ROOT,"KVIrcTheme",0,0,0,KEY_WRITE,0,&hKey,0); + SHDeleteKey(HKEY_CLASSES_ROOT, "KVIrcTheme"); + RegCreateKeyEx(HKEY_CLASSES_ROOT, "KVIrcTheme", 0, 0, 0, KEY_WRITE, 0, &hKey, 0); tmp = __tr2qs("KVIrc Theme Package").toLocal8Bit(); - RegSetValueEx(hKey,0,0,REG_SZ,(LPBYTE)tmp.data(),tmp.length()); + RegSetValueEx(hKey, 0, 0, REG_SZ, (LPBYTE)tmp.data(), tmp.length()); - RegCreateKeyEx(HKEY_CLASSES_ROOT,"KVIrcTheme\\DefaultIcon",0,0,0,KEY_WRITE,0,&hKey,0); + RegCreateKeyEx(HKEY_CLASSES_ROOT, "KVIrcTheme\\DefaultIcon", 0, 0, 0, KEY_WRITE, 0, &hKey, 0); tmp = QString(szAppPath + ",3").toLocal8Bit(); - RegSetValueEx(hKey,0,0,REG_SZ,(LPBYTE)tmp.data(),tmp.length()); + RegSetValueEx(hKey, 0, 0, REG_SZ, (LPBYTE)tmp.data(), tmp.length()); - RegCreateKeyEx(HKEY_CLASSES_ROOT,"KVIrcTheme\\Shell\\Install",0,0,0,KEY_WRITE,0,&hKey,0); + RegCreateKeyEx(HKEY_CLASSES_ROOT, "KVIrcTheme\\Shell\\Install", 0, 0, 0, KEY_WRITE, 0, &hKey, 0); tmp = __tr2qs("Install Theme Package").toLocal8Bit(); - RegSetValueEx(hKey,0,0,REG_SZ,(LPBYTE)tmp.data(),tmp.length()); + RegSetValueEx(hKey, 0, 0, REG_SZ, (LPBYTE)tmp.data(), tmp.length()); - RegCreateKeyEx(HKEY_CLASSES_ROOT,"KVIrcTheme\\Shell\\Install\\command",0,0,0,KEY_WRITE,0,&hKey,0); + RegCreateKeyEx(HKEY_CLASSES_ROOT, "KVIrcTheme\\Shell\\Install\\command", 0, 0, 0, KEY_WRITE, 0, &hKey, 0); tmp = QString(szAppPath + " \"%1\"").toLocal8Bit(); - RegSetValueEx(hKey,0,0,REG_SZ,(LPBYTE)tmp.data(),tmp.length()); + RegSetValueEx(hKey, 0, 0, REG_SZ, (LPBYTE)tmp.data(), tmp.length()); //Addons - SHDeleteKey(HKEY_CLASSES_ROOT,".kva"); + SHDeleteKey(HKEY_CLASSES_ROOT, ".kva"); - err = RegCreateKeyEx(HKEY_CLASSES_ROOT,".kva",0,0,0,KEY_WRITE,0,&hKey,0); - RegSetValueEx(hKey,0,0,REG_SZ,(LPBYTE)"KVIrcAddon",11); + err = RegCreateKeyEx(HKEY_CLASSES_ROOT, ".kva", 0, 0, 0, KEY_WRITE, 0, &hKey, 0); + RegSetValueEx(hKey, 0, 0, REG_SZ, (LPBYTE) "KVIrcAddon", 11); - SHDeleteKey(HKEY_CLASSES_ROOT,"KVIrcAddon"); - RegCreateKeyEx(HKEY_CLASSES_ROOT,"KVIrcAddon",0,0,0,KEY_WRITE,0,&hKey,0); + SHDeleteKey(HKEY_CLASSES_ROOT, "KVIrcAddon"); + RegCreateKeyEx(HKEY_CLASSES_ROOT, "KVIrcAddon", 0, 0, 0, KEY_WRITE, 0, &hKey, 0); tmp = __tr2qs("KVIrc Addon Package").toLocal8Bit(); - RegSetValueEx(hKey,0,0,REG_SZ,(LPBYTE)tmp.data(),tmp.length()); + RegSetValueEx(hKey, 0, 0, REG_SZ, (LPBYTE)tmp.data(), tmp.length()); - RegCreateKeyEx(HKEY_CLASSES_ROOT,"KVIrcAddon\\DefaultIcon",0,0,0,KEY_WRITE,0,&hKey,0); + RegCreateKeyEx(HKEY_CLASSES_ROOT, "KVIrcAddon\\DefaultIcon", 0, 0, 0, KEY_WRITE, 0, &hKey, 0); tmp = QString(szAppPath + ",4").toLocal8Bit(); - RegSetValueEx(hKey,0,0,REG_SZ,(LPBYTE)tmp.data(),tmp.length()); + RegSetValueEx(hKey, 0, 0, REG_SZ, (LPBYTE)tmp.data(), tmp.length()); - RegCreateKeyEx(HKEY_CLASSES_ROOT,"KVIrcAddon\\Shell\\Install",0,0,0,KEY_WRITE,0,&hKey,0); + RegCreateKeyEx(HKEY_CLASSES_ROOT, "KVIrcAddon\\Shell\\Install", 0, 0, 0, KEY_WRITE, 0, &hKey, 0); tmp = __tr2qs("Install Package").toLocal8Bit(); - RegSetValueEx(hKey,0,0,REG_SZ,(LPBYTE)tmp.data(),tmp.length()); + RegSetValueEx(hKey, 0, 0, REG_SZ, (LPBYTE)tmp.data(), tmp.length()); - RegCreateKeyEx(HKEY_CLASSES_ROOT,"KVIrcAddon\\Shell\\Install\\command",0,0,0,KEY_WRITE,0,&hKey,0); + RegCreateKeyEx(HKEY_CLASSES_ROOT, "KVIrcAddon\\Shell\\Install\\command", 0, 0, 0, KEY_WRITE, 0, &hKey, 0); tmp = QString(szAppPath + " \"%1\"").toLocal8Bit(); - RegSetValueEx(hKey,0,0,REG_SZ,(LPBYTE)tmp.data(),tmp.length()); + RegSetValueEx(hKey, 0, 0, REG_SZ, (LPBYTE)tmp.data(), tmp.length()); #endif } void KviApplication::findGlobalKvircDirectory() { - // Look for the installation directory - // with the image and help files inside +// Look for the installation directory +// with the image and help files inside #ifdef GLOBAL_KVIRC_DIR m_szGlobalKvircDir = GLOBAL_KVIRC_DIR; KviFileUtils::adjustFilePath(m_szGlobalKvircDir); @@ -565,61 +586,61 @@ void KviApplication::findGlobalKvircDirectory() if(checkGlobalKvircDirectory(m_szGlobalKvircDir)) return; - KviMessageBox::warning("Unable to find the shared KVIrc directory.\n"\ - "I have tried %Q, but it seemed to fail\n" \ - "Trying to run anyway...\n",&m_szGlobalKvircDir); + KviMessageBox::warning("Unable to find the shared KVIrc directory.\n" + "I have tried %Q, but it seemed to fail\n" + "Trying to run anyway...\n", + &m_szGlobalKvircDir); #else - // Check for MacOS X Bundle compilation - #ifdef COMPILE_ON_MAC - m_szGlobalKvircDir = applicationDirPath(); - m_szGlobalKvircDir += "/../Resources/"; - #else - m_szGlobalKvircDir = KVIRC_RESOURCES_DIR; - #endif //COMPILE_ON_MAC +// Check for MacOS X Bundle compilation +#ifdef COMPILE_ON_MAC + m_szGlobalKvircDir = applicationDirPath(); + m_szGlobalKvircDir += "/../Resources/"; +#else + m_szGlobalKvircDir = KVIRC_RESOURCES_DIR; +#endif //COMPILE_ON_MAC if(checkGlobalKvircDirectory(m_szGlobalKvircDir)) return; m_szGlobalKvircDir = ""; - // DO NOT TRANSLATE THIS - // THE TRANSLATION DIRECTORY WAS NOT FOUND YET - // AND THE LOCALE IS NOT INITIALIZED AT ALL - - #ifdef COMPILE_KDE_SUPPORT - KviMessageBox::warning("Unable to find the shared KVIrc directory.\n"\ - "The usual path for this directory is $KDEDIR/share/apps/kvirc.\n"\ - "Are you sure that 'make install' worked correctly?\n"\ - "Please make sure that you have the read permission to that directory\n"\ - "and you have set KDEDIR correctly. You may also try to rerun 'make install'.\n"\ - "A detailed explanation of the KVIrc directory system is in the INSTALL document\n"\ - "shipped with the KVIrc source distribution.\n"\ - "Trying to run anyway..."); - #elif defined(COMPILE_ON_MAC) - KviMessageBox::warning("Unable to find the shared KVIrc directory.\n"\ - "The usual path for this directory is ./Contents/Resources/kvirc within your application bundle.\n"\ - "Something went wrong during the bundle creation.\n"\ - "Please read the documentation and make sure to set proper paths for --prefix, -bindir, -libdir and --datadir during the configure run.\n"\ - "Trying to run anyway...\n"); - #else //!defined(COMPILE_KDE_SUPPORT) && !defined(COMPILE_ON_MAC) - KviMessageBox::warning("Unable to find the shared KVIrc directory.\n"\ - "The usual path for this directory is /usr/local/share/kvirc.\n"\ - "Are you sure that 'make install' worked correctly?\n"\ - "Please make sure that you have the read permission to that directory.\n"\ - "You may also need to rerun 'make install'.\n"\ - "A detailed explanation of the KVIrc directory system is in the INSTALL document\n"\ - "shipped with the KVIrc source distribution.\n"\ - "Trying to run anyway...\n"); - #endif //!COMPILE_ON_MAC +// DO NOT TRANSLATE THIS +// THE TRANSLATION DIRECTORY WAS NOT FOUND YET +// AND THE LOCALE IS NOT INITIALIZED AT ALL + +#ifdef COMPILE_KDE_SUPPORT + KviMessageBox::warning("Unable to find the shared KVIrc directory.\n" + "The usual path for this directory is $KDEDIR/share/apps/kvirc.\n" + "Are you sure that 'make install' worked correctly?\n" + "Please make sure that you have the read permission to that directory\n" + "and you have set KDEDIR correctly. You may also try to rerun 'make install'.\n" + "A detailed explanation of the KVIrc directory system is in the INSTALL document\n" + "shipped with the KVIrc source distribution.\n" + "Trying to run anyway..."); +#elif defined(COMPILE_ON_MAC) + KviMessageBox::warning("Unable to find the shared KVIrc directory.\n" + "The usual path for this directory is ./Contents/Resources/kvirc within your application bundle.\n" + "Something went wrong during the bundle creation.\n" + "Please read the documentation and make sure to set proper paths for --prefix, -bindir, -libdir and --datadir during the configure run.\n" + "Trying to run anyway...\n"); +#else //!defined(COMPILE_KDE_SUPPORT) && !defined(COMPILE_ON_MAC) + KviMessageBox::warning("Unable to find the shared KVIrc directory.\n" + "The usual path for this directory is /usr/local/share/kvirc.\n" + "Are you sure that 'make install' worked correctly?\n" + "Please make sure that you have the read permission to that directory.\n" + "You may also need to rerun 'make install'.\n" + "A detailed explanation of the KVIrc directory system is in the INSTALL document\n" + "shipped with the KVIrc source distribution.\n" + "Trying to run anyway...\n"); +#endif //!COMPILE_ON_MAC #endif } - bool KviApplication::findLocalKvircDirectory() { - // Here we check if we already did the setup - // and we have the kvirc local directory saved somewhere +// Here we check if we already did the setup +// and we have the kvirc local directory saved somewhere #ifdef COMPILE_KDE_SUPPORT if(m_szConfigFile.isEmpty()) { @@ -658,22 +679,26 @@ bool KviApplication::findLocalKvircDirectory() szF = QDir::homePath(); szF += KVI_PATH_SEPARATOR; szF += m_szConfigFile; - } else { + } + else + { szF = szConfig; } - } else { + } + else + { szF = QDir::homePath(); szF += KVI_PATH_SEPARATOR; szF += KVI_HOME_CONFIG_FILE_NAME; } //If the file exists, read the first non empty line. - KviConfigurationFile cfgx(szF,KviConfigurationFile::Read); + KviConfigurationFile cfgx(szF, KviConfigurationFile::Read); cfgx.setGroup("Main"); - m_szLocalKvircDir = cfgx.readEntry("LocalKvircDirectory",""); + m_szLocalKvircDir = cfgx.readEntry("LocalKvircDirectory", ""); - unsigned int uSourcesDate = cfgx.readUIntEntry("SourcesDate",0); + unsigned int uSourcesDate = cfgx.readUIntEntry("SourcesDate", 0); if(uSourcesDate < KVI_SOURCES_DATE_NUMERIC_FORCE_SETUP) return false; // we force a setup anyway @@ -695,20 +720,25 @@ void KviApplication::loadDirectories() // Now look for the local (writable) one m_bFirstTimeRun = !findLocalKvircDirectory(); - KviLocale::init(this,szLocalePath, m_szLocalKvircDir); - + KviLocale::init(this, szLocalePath, m_szLocalKvircDir); if(m_bFirstTimeRun) setupBegin(); #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - if(m_bPortable) return; + if(m_bPortable) + return; #endif - if(!checkFileAssociations()) setupFileAssociations(); - if(!checkUriAssociations("irc")) setupUriAssociations("irc"); - if(!checkUriAssociations("ircs")) setupUriAssociations("ircs"); - if(!checkUriAssociations("irc6")) setupUriAssociations("irc6"); - if(!checkUriAssociations("ircs6")) setupUriAssociations("ircs6"); + if(!checkFileAssociations()) + setupFileAssociations(); + if(!checkUriAssociations("irc")) + setupUriAssociations("irc"); + if(!checkUriAssociations("ircs")) + setupUriAssociations("ircs"); + if(!checkUriAssociations("irc6")) + setupUriAssociations("irc6"); + if(!checkUriAssociations("ircs6")) + setupUriAssociations("ircs6"); } void KviApplication::setupBegin() @@ -719,7 +749,7 @@ void KviApplication::setupBegin() #ifdef KVIRC_MODULES_DIR szSetupLib = KVIRC_MODULES_DIR; #else - getGlobalKvircDirectory(szSetupLib,KviApplication::Modules); + getGlobalKvircDirectory(szSetupLib, KviApplication::Modules); #endif KviQString::ensureLastCharIs(szSetupLib, KVI_PATH_SEPARATOR_CHAR); @@ -734,28 +764,29 @@ void KviApplication::setupBegin() g_pSetupLibrary = new QLibrary(szSetupLib); if(!g_pSetupLibrary->load()) { - KviMessageBox::warning(__tr2qs("Oops! It looks like I can't load modules on this system.\n" \ - "I have been looking for the %s library but I haven't been able to load it\n" \ - "due to the following error: \"%s\"\nAborting."),szSetupLib.toUtf8().data(),g_pSetupLibrary->errorString().toUtf8().data()); + KviMessageBox::warning(__tr2qs("Oops! It looks like I can't load modules on this system.\n" + "I have been looking for the %s library but I haven't been able to load it\n" + "due to the following error: \"%s\"\nAborting."), + szSetupLib.toUtf8().data(), g_pSetupLibrary->errorString().toUtf8().data()); #if defined(COMPILE_ON_WINDOWS) ExitProcess(-1); #elif defined(COMPILE_ON_MINGW) - ExitProcess(1); + ExitProcess(1); #else ::exit(-1); #endif } - bool (*sfunc)() = (bool(*)())g_pSetupLibrary->resolve("setup_begin"); + bool (*sfunc)() = (bool (*)())g_pSetupLibrary->resolve("setup_begin"); if(!sfunc) { - KviMessageBox::warning(__tr2qs("Oops! It looks like you have a broken distribution.\n" \ - "The setup module does not export the \"setup_begin\" function.\n" \ - "Aborting!")); + KviMessageBox::warning(__tr2qs("Oops! It looks like you have a broken distribution.\n" + "The setup module does not export the \"setup_begin\" function.\n" + "Aborting!")); #if defined(COMPILE_ON_WINDOWS) ExitProcess(-1); #elif defined(COMPILE_ON_MINGW) - ExitProcess(1); + ExitProcess(1); #else ::exit(-1); #endif @@ -768,7 +799,7 @@ void KviApplication::setupBegin() #if defined(COMPILE_ON_WINDOWS) ExitProcess(-1); #elif defined(COMPILE_ON_MINGW) - ExitProcess(1); + ExitProcess(1); #else ::exit(-1); #endif @@ -776,7 +807,7 @@ void KviApplication::setupBegin() // Now save it //Let it be done by setup function -// saveKvircDirectory(); + // saveKvircDirectory(); } void KviApplication::setupFinish() @@ -787,12 +818,12 @@ void KviApplication::setupFinish() return; } - void (*sfunc)() = (void(*)())g_pSetupLibrary->resolve("setup_finish"); + void (*sfunc)() = (void (*)())g_pSetupLibrary->resolve("setup_finish"); if(!sfunc) { - KviMessageBox::warning(__tr2qs("Oops! It looks like you have a broken distribution.\n" \ - "The setup module does not export the \"setup_finish\" function.\n" \ - "Trying to continue anyway...")); + KviMessageBox::warning(__tr2qs("Oops! It looks like you have a broken distribution.\n" + "The setup module does not export the \"setup_finish\" function.\n" + "Trying to continue anyway...")); } sfunc(); @@ -804,20 +835,20 @@ void KviApplication::setupFinish() void KviApplication::saveKvircDirectory() { - // Here we save the local directory path +// Here we save the local directory path #ifdef COMPILE_KDE_SUPPORT // In KDE we use the application config file if(m_szConfigFile.isEmpty()) { // not if user supplied a config file KConfig * pCfg = new KConfig("kvirc"); - KConfigGroup * pCfgMainGroup = new KConfigGroup(pCfg,"Main"); + KConfigGroup * pCfgMainGroup = new KConfigGroup(pCfg, "Main"); if(pCfg) { if(pCfg->accessMode() == KConfig::ReadWrite) { - pCfgMainGroup->writeEntry("LocalKvircDirectory",m_szLocalKvircDir); - pCfgMainGroup->writeEntry("SourcesDate",KVI_SOURCES_DATE_NUMERIC); + pCfgMainGroup->writeEntry("LocalKvircDirectory", m_szLocalKvircDir); + pCfgMainGroup->writeEntry("SourcesDate", KVI_SOURCES_DATE_NUMERIC); pCfg->sync(); delete pCfgMainGroup; pCfgMainGroup = 0; @@ -836,18 +867,22 @@ void KviApplication::saveKvircDirectory() { szF += KVI_PATH_SEPARATOR; szF += szConfig; - } else { + } + else + { szF = szConfig; } - } else { + } + else + { szF += KVI_PATH_SEPARATOR; szF += KVI_HOME_CONFIG_FILE_NAME; } //FIXME: LOCALE BROKEN!!! - KviConfigurationFile cfgx(szF,KviConfigurationFile::Write); + KviConfigurationFile cfgx(szF, KviConfigurationFile::Write); cfgx.setGroup("Main"); - cfgx.writeEntry("LocalKvircDirectory",m_szLocalKvircDir); - cfgx.writeEntry("SourcesDate",KVI_SOURCES_DATE_NUMERIC); + cfgx.writeEntry("LocalKvircDirectory", m_szLocalKvircDir); + cfgx.writeEntry("SourcesDate", KVI_SOURCES_DATE_NUMERIC); } diff --git a/src/kvirc/kernel/KviAsynchronousConnectionData.cpp b/src/kvirc/kernel/KviAsynchronousConnectionData.cpp index 36ffb0c32..eeb413ecc 100644 --- a/src/kvirc/kernel/KviAsynchronousConnectionData.cpp +++ b/src/kvirc/kernel/KviAsynchronousConnectionData.cpp @@ -26,9 +26,9 @@ #include "KviIrcServerReconnectInfo.h" KviAsynchronousConnectionData::KviAsynchronousConnectionData() -: KviHeapObject() + : KviHeapObject() { - m_pReconnectInfo=0; + m_pReconnectInfo = 0; bUseLastServerInContext = false; } diff --git a/src/kvirc/kernel/KviAsynchronousConnectionData.h b/src/kvirc/kernel/KviAsynchronousConnectionData.h index df97a086d..747999b28 100644 --- a/src/kvirc/kernel/KviAsynchronousConnectionData.h +++ b/src/kvirc/kernel/KviAsynchronousConnectionData.h @@ -24,7 +24,6 @@ // //============================================================================= - #include "kvi_settings.h" #include "KviQString.h" #include "KviHeapObject.h" @@ -35,21 +34,22 @@ class KviAsynchronousConnectionData : public KviHeapObject public: KviAsynchronousConnectionData(); ~KviAsynchronousConnectionData(); + public: - QString szServer; - bool bUseLastServerInContext; // this is checked ONLY if szServer is empty - kvi_u32_t uPort; - bool bPortIsOk; - bool bUseIPv6; - bool bUseSSL; - bool bSTARTTLS; - QString szBindAddress; // ip address (or interface name) to bind the connection to - QString szCommandToExecAfterConnect; - QString szLinkFilter; - QString szPass; - QString szNick; - QString szInitUMode; - QString szServerId; + QString szServer; + bool bUseLastServerInContext; // this is checked ONLY if szServer is empty + kvi_u32_t uPort; + bool bPortIsOk; + bool bUseIPv6; + bool bUseSSL; + bool bSTARTTLS; + QString szBindAddress; // ip address (or interface name) to bind the connection to + QString szCommandToExecAfterConnect; + QString szLinkFilter; + QString szPass; + QString szNick; + QString szInitUMode; + QString szServerId; KviIrcServerReconnectInfo * m_pReconnectInfo; }; diff --git a/src/kvirc/kernel/KviCaster.h b/src/kvirc/kernel/KviCaster.h index 5aaa4d20b..cec9f68be 100644 --- a/src/kvirc/kernel/KviCaster.h +++ b/src/kvirc/kernel/KviCaster.h @@ -28,23 +28,21 @@ #define STRINGIFY(x) STRINGIFY_(x) #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) -# define KVI_CAST_FUNC __FUNCTION__ +#define KVI_CAST_FUNC __FUNCTION__ #else -# define KVI_CAST_FUNC __func__ +#define KVI_CAST_FUNC __func__ #endif -#define KVI_DYNAMIC(expr, expr2) \ - KviCast::dynamic \ - \ - (expr2, \ - __FILE__ ":" STRINGIFY(__LINE__), \ - KVI_CAST_FUNC, \ - #expr) \ +#define KVI_DYNAMIC(expr, expr2) \ + KviCast::dynamic(expr2, \ + __FILE__ ":" STRINGIFY(__LINE__), \ + KVI_CAST_FUNC, \ + #expr) namespace KviCast { - template - T dynamic(P p, const char *file, const char *func, const char *expr) + template + T dynamic(P p, const char * file, const char * func, const char * expr) { T newPointer = dynamic_cast(p); @@ -53,7 +51,7 @@ namespace KviCast if(newPointer == nullptr) { qDebug("KviCast::dynamic: Conversion from %s to %s failed: %s in %s (%s).", - typeid(P).name(), typeid(T).name(), func, file, expr); + typeid(P).name(), typeid(T).name(), func, file, expr); } return newPointer; diff --git a/src/kvirc/kernel/KviCoreActions.cpp b/src/kvirc/kernel/KviCoreActions.cpp index bc3d5b374..336cc5889 100644 --- a/src/kvirc/kernel/KviCoreActions.cpp +++ b/src/kvirc/kernel/KviCoreActions.cpp @@ -22,7 +22,6 @@ // //============================================================================= - #include "KviCoreActions.h" #include "KviShortcut.h" #include "KviMainWindow.h" @@ -62,408 +61,407 @@ void register_core_actions(KviActionManager * m) KviAction * a; -#define SCRIPT_ACTION(__name,__code,__visible,__description,__category,__icon,__smallicon,__flags,__accel) \ - a = new KviKvsAction(m, \ - QString(__name), \ - QString(__code), \ - QString(__visible), \ - QString(__description), \ - __category, \ - QString(__icon), \ - __smallicon, \ - __flags, \ - QKeySequence(__accel).toString()); \ +#define SCRIPT_ACTION(__name, __code, __visible, __description, __category, __icon, __smallicon, __flags, __accel) \ + a = new KviKvsAction(m, \ + QString(__name), \ + QString(__code), \ + QString(__visible), \ + QString(__description), \ + __category, \ + QString(__icon), \ + __smallicon, \ + __flags, \ + QKeySequence(__accel).toString()); \ m->registerAction(a) -#define SLOT_ACTION(__name,__object,__slot,__visible,__description,__category,__icon,__smallicon,__flags,__accel) \ - a = new KviAction(m, \ - QString(__name), \ - QString(__visible), \ - QString(__description), \ - __category, \ - QString(__icon), \ - __smallicon, \ - __flags, \ - QKeySequence(__accel).toString()); \ - QObject::connect(a,SIGNAL(activated()),__object,__slot); \ +#define SLOT_ACTION(__name, __object, __slot, __visible, __description, __category, __icon, __smallicon, __flags, __accel) \ + a = new KviAction(m, \ + QString(__name), \ + QString(__visible), \ + QString(__description), \ + __category, \ + QString(__icon), \ + __smallicon, \ + __flags, \ + QKeySequence(__accel).toString()); \ + QObject::connect(a, SIGNAL(activated()), __object, __slot); \ m->registerAction(a) SCRIPT_ACTION( - KVI_COREACTION_SERVEROPTIONS, - "options.edit -t OptionsWidget_servers", - __tr2qs("Configure Servers..."), - __tr2qs("Allows you to configure the servers and eventually to connect to them"), - KviActionManager::categorySettings(), - "kvi_bigicon_serverconfiguration.png", - KviIconManager::ServerConfiguration, - 0, - KVI_SHORTCUTS_SERVERS); + KVI_COREACTION_SERVEROPTIONS, + "options.edit -t OptionsWidget_servers", + __tr2qs("Configure Servers..."), + __tr2qs("Allows you to configure the servers and eventually to connect to them"), + KviActionManager::categorySettings(), + "kvi_bigicon_serverconfiguration.png", + KviIconManager::ServerConfiguration, + 0, + KVI_SHORTCUTS_SERVERS); SCRIPT_ACTION( - KVI_COREACTION_MANAGEADDONS, - "addon.dialog -t", - __tr2qs("Manage Addons..."), - __tr2qs("Allows you to manage the script-based addons"), - KviActionManager::categorySettings(), - "kvi_bigicon_addons.png", - KviIconManager::Addons, - 0, - KVI_SHORTCUTS_MANAGE_ADDONS); + KVI_COREACTION_MANAGEADDONS, + "addon.dialog -t", + __tr2qs("Manage Addons..."), + __tr2qs("Allows you to manage the script-based addons"), + KviActionManager::categorySettings(), + "kvi_bigicon_addons.png", + KviIconManager::Addons, + 0, + KVI_SHORTCUTS_MANAGE_ADDONS); SCRIPT_ACTION( - KVI_COREACTION_EDITREGUSERS, - "reguser.edit -t", - __tr2qs("Configure Registered Users..."), - __tr2qs("Shows a dialog that allows editing the registered user entries"), - KviActionManager::categorySettings(), - "kvi_bigicon_regusers.png", - KviIconManager::RegUsers, - 0, - KVI_SHORTCUTS_USERS); + KVI_COREACTION_EDITREGUSERS, + "reguser.edit -t", + __tr2qs("Configure Registered Users..."), + __tr2qs("Shows a dialog that allows editing the registered user entries"), + KviActionManager::categorySettings(), + "kvi_bigicon_regusers.png", + KviIconManager::RegUsers, + 0, + KVI_SHORTCUTS_USERS); SCRIPT_ACTION( - KVI_COREACTION_IDENTITYOPTIONS, - "options.edit -t OptionsWidget_identity", - __tr2qs("Configure Identity..."), - __tr2qs("Allows you to configure nickname, username, avatar etc..."), - KviActionManager::categorySettings(), - "kvi_bigicon_identity.png", - KviIconManager::Identity, - 0, - KVI_SHORTCUTS_IDENTITY); + KVI_COREACTION_IDENTITYOPTIONS, + "options.edit -t OptionsWidget_identity", + __tr2qs("Configure Identity..."), + __tr2qs("Allows you to configure nickname, username, avatar etc..."), + KviActionManager::categorySettings(), + "kvi_bigicon_identity.png", + KviIconManager::Identity, + 0, + KVI_SHORTCUTS_IDENTITY); SCRIPT_ACTION( - KVI_COREACTION_SOCKETSPY, - "socketspy.open", - __tr2qs("Show Socket Spy"), - __tr2qs("Shows a window that allows monitoring the socket traffic"), - KviActionManager::categoryScripting(), - "kvi_bigicon_socketspy.png", - KviIconManager::Spy, - KviAction::NeedsContext, - QString()); + KVI_COREACTION_SOCKETSPY, + "socketspy.open", + __tr2qs("Show Socket Spy"), + __tr2qs("Shows a window that allows monitoring the socket traffic"), + KviActionManager::categoryScripting(), + "kvi_bigicon_socketspy.png", + KviIconManager::Spy, + KviAction::NeedsContext, + QString()); SCRIPT_ACTION( - KVI_COREACTION_NETWORKLINKS, - "links.open", - __tr2qs("Get Network Links"), - __tr2qs("Shows a window that allows viewing the network links"), - KviActionManager::categoryIrc(), - "kvi_bigicon_links.png", - KviIconManager::Links, - KviAction::NeedsContext, - QString()); + KVI_COREACTION_NETWORKLINKS, + "links.open", + __tr2qs("Get Network Links"), + __tr2qs("Shows a window that allows viewing the network links"), + KviActionManager::categoryIrc(), + "kvi_bigicon_links.png", + KviIconManager::Links, + KviAction::NeedsContext, + QString()); SCRIPT_ACTION( - KVI_COREACTION_CHANNELLIST, - "list.open", - __tr2qs("Get Channel List"), - __tr2qs("Shows a window that allows listing the network channels"), - KviActionManager::categoryIrc(), - "kvi_bigicon_channellist.png", - KviIconManager::List, - KviAction::NeedsContext, - QString()); + KVI_COREACTION_CHANNELLIST, + "list.open", + __tr2qs("Get Channel List"), + __tr2qs("Shows a window that allows listing the network channels"), + KviActionManager::categoryIrc(), + "kvi_bigicon_channellist.png", + KviIconManager::List, + KviAction::NeedsContext, + QString()); SCRIPT_ACTION( - KVI_COREACTION_GENERALOPTIONS, - "options.dialog -t", - __tr2qs("Configure KVIrc..."), - __tr2qs("Shows the general options dialog"), - KviActionManager::categorySettings(), - "kvi_bigicon_settings.png", - KviIconManager::Options, - 0, - KVI_SHORTCUTS_OPTIONS); + KVI_COREACTION_GENERALOPTIONS, + "options.dialog -t", + __tr2qs("Configure KVIrc..."), + __tr2qs("Shows the general options dialog"), + KviActionManager::categorySettings(), + "kvi_bigicon_settings.png", + KviIconManager::Options, + 0, + KVI_SHORTCUTS_OPTIONS); SCRIPT_ACTION( - KVI_COREACTION_THEMEOPTIONS, - "options.dialog -t theme", - __tr2qs("Configure Theme..."), - __tr2qs("Shows the theme options dialog"), - KviActionManager::categorySettings(), - "kvi_bigicon_themeoptions.png", - KviIconManager::ThemeOptions, - 0, - KVI_SHORTCUTS_THEME); + KVI_COREACTION_THEMEOPTIONS, + "options.dialog -t theme", + __tr2qs("Configure Theme..."), + __tr2qs("Shows the theme options dialog"), + KviActionManager::categorySettings(), + "kvi_bigicon_themeoptions.png", + KviIconManager::ThemeOptions, + 0, + KVI_SHORTCUTS_THEME); SCRIPT_ACTION( - KVI_COREACTION_MANAGETHEMES, - "theme.dialog -t", - __tr2qs("Manage Themes..."), - __tr2qs("Allows you to manage the themes"), - KviActionManager::categorySettings(), - "kvi_bigicon_theme.png", - KviIconManager::Theme, - 0, - KVI_SHORTCUTS_MANAGE_THEMES); + KVI_COREACTION_MANAGETHEMES, + "theme.dialog -t", + __tr2qs("Manage Themes..."), + __tr2qs("Allows you to manage the themes"), + KviActionManager::categorySettings(), + "kvi_bigicon_theme.png", + KviIconManager::Theme, + 0, + KVI_SHORTCUTS_MANAGE_THEMES); SCRIPT_ACTION( - KVI_COREACTION_TOOLBAREDITOR, - "toolbareditor.open -t", - __tr2qs("Customize Toolbars..."), - __tr2qs("Shows a window that allows editing script toolbars"), - KviActionManager::categorySettings(), - "kvi_bigicon_toolbareditor.png", - KviIconManager::ToolBarEditor, - 0, - KVI_SHORTCUTS_EDITORS_TOOLBAR); + KVI_COREACTION_TOOLBAREDITOR, + "toolbareditor.open -t", + __tr2qs("Customize Toolbars..."), + __tr2qs("Shows a window that allows editing script toolbars"), + KviActionManager::categorySettings(), + "kvi_bigicon_toolbareditor.png", + KviIconManager::ToolBarEditor, + 0, + KVI_SHORTCUTS_EDITORS_TOOLBAR); SCRIPT_ACTION( - KVI_COREACTION_JOINCHANNELS, - "channelsjoin.open", - __tr2qs("Join Channels..."), - __tr2qs("Shows a dialog that allows you join channels"), - KviActionManager::categoryIrc(), - "kvi_bigicon_channels.png", - KviIconManager::Channel, - KviKvsAction::NeedsConnection | KviKvsAction::NeedsContext, - KVI_SHORTCUTS_JOIN); + KVI_COREACTION_JOINCHANNELS, + "channelsjoin.open", + __tr2qs("Join Channels..."), + __tr2qs("Shows a dialog that allows you join channels"), + KviActionManager::categoryIrc(), + "kvi_bigicon_channels.png", + KviIconManager::Channel, + KviKvsAction::NeedsConnection | KviKvsAction::NeedsContext, + KVI_SHORTCUTS_JOIN); SCRIPT_ACTION( - KVI_COREACTION_ACTIONEDITOR, - "actioneditor.open", - __tr2qs("Edit Actions..."), - __tr2qs("Shows a window that allows editing actions"), - KviActionManager::categoryScripting(), - "kvi_bigicon_actioneditor.png", - KviIconManager::ActionEditor, - 0, - KVI_SHORTCUTS_EDITORS_ACTION); + KVI_COREACTION_ACTIONEDITOR, + "actioneditor.open", + __tr2qs("Edit Actions..."), + __tr2qs("Shows a window that allows editing actions"), + KviActionManager::categoryScripting(), + "kvi_bigicon_actioneditor.png", + KviIconManager::ActionEditor, + 0, + KVI_SHORTCUTS_EDITORS_ACTION); SCRIPT_ACTION( - KVI_COREACTION_ALIASEDITOR, - "aliaseditor.open", - __tr2qs("Edit Aliases..."), - __tr2qs("Shows a window that allows editing aliases"), - KviActionManager::categoryScripting(), - "kvi_bigicon_aliaseditor.png", - KviIconManager::AliasEditor, - 0, - KVI_SHORTCUTS_EDITORS_ALIAS); + KVI_COREACTION_ALIASEDITOR, + "aliaseditor.open", + __tr2qs("Edit Aliases..."), + __tr2qs("Shows a window that allows editing aliases"), + KviActionManager::categoryScripting(), + "kvi_bigicon_aliaseditor.png", + KviIconManager::AliasEditor, + 0, + KVI_SHORTCUTS_EDITORS_ALIAS); SCRIPT_ACTION( - KVI_COREACTION_CLASSEDITOR, - "classeditor.open", - __tr2qs("Edit Classes..."), - __tr2qs("Shows a window that allows editing classes"), - KviActionManager::categoryScripting(), - "kvi_bigicon_classeditor.png", - KviIconManager::ClassEditor, - 0, - KVI_SHORTCUTS_EDITORS_CLASS); + KVI_COREACTION_CLASSEDITOR, + "classeditor.open", + __tr2qs("Edit Classes..."), + __tr2qs("Shows a window that allows editing classes"), + KviActionManager::categoryScripting(), + "kvi_bigicon_classeditor.png", + KviIconManager::ClassEditor, + 0, + KVI_SHORTCUTS_EDITORS_CLASS); SCRIPT_ACTION( - KVI_COREACTION_EVENTEDITOR, - "eventeditor.open", - __tr2qs("Edit Events..."), - __tr2qs("Shows a window that allows editing script events"), - KviActionManager::categoryScripting(), - "kvi_bigicon_eventeditor.png", - KviIconManager::EventEditor, - 0, - KVI_SHORTCUTS_EDITORS_EVENT); + KVI_COREACTION_EVENTEDITOR, + "eventeditor.open", + __tr2qs("Edit Events..."), + __tr2qs("Shows a window that allows editing script events"), + KviActionManager::categoryScripting(), + "kvi_bigicon_eventeditor.png", + KviIconManager::EventEditor, + 0, + KVI_SHORTCUTS_EDITORS_EVENT); SCRIPT_ACTION( - KVI_COREACTION_POPUPEDITOR, - "popupeditor.open", - __tr2qs("Edit Popups..."), - __tr2qs("Shows a window that allows editing popup menus"), - KviActionManager::categoryScripting(), - "kvi_bigicon_popupeditor.png", - KviIconManager::PopupEditor, - 0, - KVI_SHORTCUTS_EDITORS_POPUP); + KVI_COREACTION_POPUPEDITOR, + "popupeditor.open", + __tr2qs("Edit Popups..."), + __tr2qs("Shows a window that allows editing popup menus"), + KviActionManager::categoryScripting(), + "kvi_bigicon_popupeditor.png", + KviIconManager::PopupEditor, + 0, + KVI_SHORTCUTS_EDITORS_POPUP); SCRIPT_ACTION( - KVI_COREACTION_RAWEDITOR, - "raweditor.open", - __tr2qs("Edit RAW Events..."), - __tr2qs("Shows a window that allows editing RAW scripting events"), - KviActionManager::categoryScripting(), - "kvi_bigicon_raweditor.png", - KviIconManager::RawEventEditor, - 0, - KVI_SHORTCUTS_EDITORS_RAW); + KVI_COREACTION_RAWEDITOR, + "raweditor.open", + __tr2qs("Edit RAW Events..."), + __tr2qs("Shows a window that allows editing RAW scripting events"), + KviActionManager::categoryScripting(), + "kvi_bigicon_raweditor.png", + KviIconManager::RawEventEditor, + 0, + KVI_SHORTCUTS_EDITORS_RAW); SCRIPT_ACTION( - KVI_COREACTION_CODETESTER, - "codetester.open", - __tr2qs("Script Tester"), - __tr2qs("Creates an embedded editor for long scripts"), - KviActionManager::categoryScripting(), - "kvi_bigicon_codetester.png", - KviIconManager::Bomb, - 0, - KVI_SHORTCUTS_EDITORS_TESTER); + KVI_COREACTION_CODETESTER, + "codetester.open", + __tr2qs("Script Tester"), + __tr2qs("Creates an embedded editor for long scripts"), + KviActionManager::categoryScripting(), + "kvi_bigicon_codetester.png", + KviIconManager::Bomb, + 0, + KVI_SHORTCUTS_EDITORS_TESTER); SCRIPT_ACTION( - KVI_COREACTION_EXECUTEKVS, - "dialog.file(open,$tr(\"Select a File - KVIrc\")){ if(!$str.isEmpty($0))parse $0; }", - __tr2qs("Execute Script..."), - __tr2qs("Allows executing a KVS script from file"), - KviActionManager::categoryScripting(), - "kvi_bigicon_folder.png", - KviIconManager::Folder, - 0, - KVI_SHORTCUTS_EXEC); + KVI_COREACTION_EXECUTEKVS, + "dialog.file(open,$tr(\"Select a File - KVIrc\")){ if(!$str.isEmpty($0))parse $0; }", + __tr2qs("Execute Script..."), + __tr2qs("Allows executing a KVS script from file"), + KviActionManager::categoryScripting(), + "kvi_bigicon_folder.png", + KviIconManager::Folder, + 0, + KVI_SHORTCUTS_EXEC); SCRIPT_ACTION( - KVI_COREACTION_HELPINDEX, - "help -m", - __tr2qs("Help Index"), - __tr2qs("Shows the documentation index"), - KviActionManager::categoryGeneric(), - "kvi_bigicon_help.png", - KviIconManager::Help, - 0, - KVI_SHORTCUTS_HELP); + KVI_COREACTION_HELPINDEX, + "help -m", + __tr2qs("Help Index"), + __tr2qs("Shows the documentation index"), + KviActionManager::categoryGeneric(), + "kvi_bigicon_help.png", + KviIconManager::Help, + 0, + KVI_SHORTCUTS_HELP); SCRIPT_ACTION( - KVI_COREACTION_KVIRCMAILINGLIST, - "openurl http://www.kvirc.net/?id=mailinglist", - __tr2qs("Subscribe to the Mailing List"), - __tr2qs("Allows subscribing to the KVIrc mailing list"), - KviActionManager::categoryGeneric(), - "kvi_bigicon_mailinglist.png", - KviIconManager::Message, - 0, - QString()); + KVI_COREACTION_KVIRCMAILINGLIST, + "openurl http://www.kvirc.net/?id=mailinglist", + __tr2qs("Subscribe to the Mailing List"), + __tr2qs("Allows subscribing to the KVIrc mailing list"), + KviActionManager::categoryGeneric(), + "kvi_bigicon_mailinglist.png", + KviIconManager::Message, + 0, + QString()); SCRIPT_ACTION( - KVI_COREACTION_KVIRCHOMEPAGE, - "openurl http://www.kvirc.net", - __tr2qs("KVIrc WWW"), - __tr2qs("Opens the KVIrc homepage"), - KviActionManager::categoryGeneric(), - "kvi_bigicon_homepage.png", - KviIconManager::HomePage, - 0, - QString()); + KVI_COREACTION_KVIRCHOMEPAGE, + "openurl http://www.kvirc.net", + __tr2qs("KVIrc WWW"), + __tr2qs("Opens the KVIrc homepage"), + KviActionManager::categoryGeneric(), + "kvi_bigicon_homepage.png", + KviIconManager::HomePage, + 0, + QString()); SCRIPT_ACTION( - KVI_COREACTION_KVIRCRUHOMEPAGE, - "openurl http://www.kvirc.ru", - __tr2qs("KVIrc Russian WWW"), - __tr2qs("Opens the KVIrc homepage in Russian"), - KviActionManager::categoryGeneric(), - "kvi_bigicon_homepage.png", - KviIconManager::HomePage, - 0, - QString()); + KVI_COREACTION_KVIRCRUHOMEPAGE, + "openurl http://www.kvirc.ru", + __tr2qs("KVIrc Russian WWW"), + __tr2qs("Opens the KVIrc homepage in Russian"), + KviActionManager::categoryGeneric(), + "kvi_bigicon_homepage.png", + KviIconManager::HomePage, + 0, + QString()); SCRIPT_ACTION( - KVI_COREACTION_SCREENSHOT, - "theme.screenshot", - __tr2qs("Acquire Screenshot"), - __tr2qs("Acquires a screenshot of the KVIrc main window"), - KviActionManager::categoryGeneric(), - "kvi_bigicon_screenshot.png", - KviIconManager::ScreenShot, - 0, - QString()); + KVI_COREACTION_SCREENSHOT, + "theme.screenshot", + __tr2qs("Acquire Screenshot"), + __tr2qs("Acquires a screenshot of the KVIrc main window"), + KviActionManager::categoryGeneric(), + "kvi_bigicon_screenshot.png", + KviIconManager::ScreenShot, + 0, + QString()); SCRIPT_ACTION( - KVI_COREACTION_FILETRANSFER, - "filetransferwindow.open", - __tr2qs("Manage File &Transfers"), - __tr2qs("Shows a window that lists file transfers"), - KviActionManager::categoryGeneric(), - "kvi_bigicon_filetransfer.png", - KviIconManager::FileTransfer, - 0, - QString()); + KVI_COREACTION_FILETRANSFER, + "filetransferwindow.open", + __tr2qs("Manage File &Transfers"), + __tr2qs("Shows a window that lists file transfers"), + KviActionManager::categoryGeneric(), + "kvi_bigicon_filetransfer.png", + KviIconManager::FileTransfer, + 0, + QString()); SCRIPT_ACTION( - KVI_COREACTION_IOGRAPH, - "iograph.open", - __tr2qs("Show I/O &Traffic Graph"), - __tr2qs("Shows a graph representing I/O bandwidth traffic"), - KviActionManager::categoryGeneric(), - "kvi_bigicon_sysmonitor.png", - KviIconManager::SysMonitor, - 0, - QString()); + KVI_COREACTION_IOGRAPH, + "iograph.open", + __tr2qs("Show I/O &Traffic Graph"), + __tr2qs("Shows a graph representing I/O bandwidth traffic"), + KviActionManager::categoryGeneric(), + "kvi_bigicon_sysmonitor.png", + KviIconManager::SysMonitor, + 0, + QString()); SCRIPT_ACTION( - KVI_COREACTION_LOGVIEWER, - "logview.open", - __tr2qs("Browse Log Files"), - __tr2qs("Shows a window that lists and filter log files"), - KviActionManager::categoryGeneric(), - "kvi_bigicon_log.png", - KviIconManager::Log, - 0, - QString()); + KVI_COREACTION_LOGVIEWER, + "logview.open", + __tr2qs("Browse Log Files"), + __tr2qs("Shows a window that lists and filter log files"), + KviActionManager::categoryGeneric(), + "kvi_bigicon_log.png", + KviIconManager::Log, + 0, + QString()); SCRIPT_ACTION( - KVI_COREACTION_SHAREDFILES, - "sharedfileswindow.open", - __tr2qs("Manage S&hared Files"), - __tr2qs("Shows a window that list shared files"), - KviActionManager::categoryGeneric(), - "kvi_bigicon_sharedfiles.png", - KviIconManager::SharedFiles, - 0, - QString()); + KVI_COREACTION_SHAREDFILES, + "sharedfileswindow.open", + __tr2qs("Manage S&hared Files"), + __tr2qs("Shows a window that list shared files"), + KviActionManager::categoryGeneric(), + "kvi_bigicon_sharedfiles.png", + KviIconManager::SharedFiles, + 0, + QString()); SCRIPT_ACTION( - KVI_COREACTION_URLLIST, - "url.list", - __tr2qs("View URL List"), - __tr2qs("Shows a window that lists caught URLs"), - KviActionManager::categoryGeneric(), - "kvi_bigicon_url.png", - KviIconManager::Url, - 0, - QString()); + KVI_COREACTION_URLLIST, + "url.list", + __tr2qs("View URL List"), + __tr2qs("Shows a window that lists caught URLs"), + KviActionManager::categoryGeneric(), + "kvi_bigicon_url.png", + KviIconManager::Url, + 0, + QString()); SLOT_ACTION( - KVI_COREACTION_NEWIRCCONTEXT, - g_pMainWindow, - SLOT(newConsole()), - __tr2qs("New IRC Context"), - __tr2qs("Creates a new IRC context console"), - KviActionManager::categoryIrc(), - "kvi_bigicon_newitem.png", - KviIconManager::NewItem, - 0, - KVI_SHORTCUTS_CONTEXT); + KVI_COREACTION_NEWIRCCONTEXT, + g_pMainWindow, + SLOT(newConsole()), + __tr2qs("New IRC Context"), + __tr2qs("Creates a new IRC context console"), + KviActionManager::categoryIrc(), + "kvi_bigicon_newitem.png", + KviIconManager::NewItem, + 0, + KVI_SHORTCUTS_CONTEXT); SLOT_ACTION( - KVI_COREACTION_QUITKVIRC, - g_pApp, - SLOT(quit()), - __tr2qs("Quit KVIrc"), - __tr2qs("Quits KVIrc closing all the current connections"), - KviActionManager::categoryGeneric(), - "kvi_bigicon_quitapp.png", - KviIconManager::QuitApp, - 0, - KVI_SHORTCUTS_QUIT); + KVI_COREACTION_QUITKVIRC, + g_pApp, + SLOT(quit()), + __tr2qs("Quit KVIrc"), + __tr2qs("Quits KVIrc closing all the current connections"), + KviActionManager::categoryGeneric(), + "kvi_bigicon_quitapp.png", + KviIconManager::QuitApp, + 0, + KVI_SHORTCUTS_QUIT); } - KviIrcContextDisplayAction::KviIrcContextDisplayAction(QObject * pParent) -: KviAction(pParent, - QString(KVI_COREACTION_IRCCONTEXTDISPLAY), - __tr2qs("IRC Context Display"), - __tr2qs("Shows a small display with IRC context information"), - KviActionManager::categoryIrc(), - "kvi_bigicon_irccontextdisplay.png", - KviIconManager::PopupMenu, - NeedsContext | NeedsConnection) + : KviAction(pParent, + QString(KVI_COREACTION_IRCCONTEXTDISPLAY), + __tr2qs("IRC Context Display"), + __tr2qs("Shows a small display with IRC context information"), + KviActionManager::categoryIrc(), + "kvi_bigicon_irccontextdisplay.png", + KviIconManager::PopupMenu, + NeedsContext | NeedsConnection) { } void KviIrcContextDisplayAction::setup() { KviAction::setup(); - connect(g_pMainWindow,SIGNAL(activeConnectionServerInfoChanged()),this,SLOT(activeContextStateChanged())); - connect(g_pMainWindow,SIGNAL(activeConnectionNickNameChanged()),this,SLOT(activeContextStateChanged())); - connect(g_pMainWindow,SIGNAL(activeConnectionUserModeChanged()),this,SLOT(activeContextStateChanged())); - connect(g_pMainWindow,SIGNAL(activeConnectionAwayStateChanged()),this,SLOT(activeContextStateChanged())); - connect(g_pMainWindow,SIGNAL(activeConnectionLagChanged()),this,SLOT(activeContextStateChanged())); + connect(g_pMainWindow, SIGNAL(activeConnectionServerInfoChanged()), this, SLOT(activeContextStateChanged())); + connect(g_pMainWindow, SIGNAL(activeConnectionNickNameChanged()), this, SLOT(activeContextStateChanged())); + connect(g_pMainWindow, SIGNAL(activeConnectionUserModeChanged()), this, SLOT(activeContextStateChanged())); + connect(g_pMainWindow, SIGNAL(activeConnectionAwayStateChanged()), this, SLOT(activeContextStateChanged())); + connect(g_pMainWindow, SIGNAL(activeConnectionLagChanged()), this, SLOT(activeContextStateChanged())); } bool KviIrcContextDisplayAction::addToPopupMenu(QMenu *) @@ -472,10 +470,11 @@ bool KviIrcContextDisplayAction::addToPopupMenu(QMenu *) return true; } -QAction * KviIrcContextDisplayAction::addToCustomToolBar(KviCustomToolBar *t) +QAction * KviIrcContextDisplayAction::addToCustomToolBar(KviCustomToolBar * t) { - if(!setupDone()) setup(); - KviIrcContextDisplay * w = new KviIrcContextDisplay(t,KVI_COREACTION_IRCCONTEXTDISPLAY); + if(!setupDone()) + setup(); + KviIrcContextDisplay * w = new KviIrcContextDisplay(t, KVI_COREACTION_IRCCONTEXTDISPLAY); QAction * pAction = t->addWidget(w); // important: when customizing the toolbar, we'll get the action name from QAction::objectName(); pAction->setObjectName(KVI_COREACTION_IRCCONTEXTDISPLAY); @@ -487,12 +486,12 @@ void KviIrcContextDisplayAction::activeContextChanged() { if(m_pActionList) { - for(QAction * a = m_pActionList->first();a;a = m_pActionList->next()) + for(QAction * a = m_pActionList->first(); a; a = m_pActionList->next()) { - QToolBar *t = (QToolBar*) a->parentWidget(); + QToolBar * t = (QToolBar *)a->parentWidget(); if(t) { - KviIrcContextDisplay * w = (KviIrcContextDisplay *) t->widgetForAction(a); + KviIrcContextDisplay * w = (KviIrcContextDisplay *)t->widgetForAction(a); if(w) w->update(); } @@ -504,12 +503,12 @@ void KviIrcContextDisplayAction::activeContextStateChanged() { if(m_pActionList) { - for(QAction * a = m_pActionList->first();a;a = m_pActionList->next()) + for(QAction * a = m_pActionList->first(); a; a = m_pActionList->next()) { - QToolBar *t = (QToolBar*) a->parentWidget(); + QToolBar * t = (QToolBar *)a->parentWidget(); if(t) { - KviIrcContextDisplay * w = (KviIrcContextDisplay *) t->widgetForAction(a); + KviIrcContextDisplay * w = (KviIrcContextDisplay *)t->widgetForAction(a); if(w) w->update(); } @@ -522,31 +521,31 @@ void KviIrcContextDisplayAction::setEnabled(bool) // does nothing here : always enabled! } - KviSeparatorAction::KviSeparatorAction(QObject * pParent) -: KviAction(pParent, - QString(KVI_COREACTION_SEPARATOR), - __tr2qs("Separator"), - __tr2qs("Acts as a separator for other items: performs no action"), - KviActionManager::categoryGeneric(), - KVI_BIGICON_SEPARATOR, - KviIconManager::None, - 0) + : KviAction(pParent, + QString(KVI_COREACTION_SEPARATOR), + __tr2qs("Separator"), + __tr2qs("Acts as a separator for other items: performs no action"), + KviActionManager::categoryGeneric(), + KVI_BIGICON_SEPARATOR, + KviIconManager::None, + 0) { } - bool KviSeparatorAction::addToPopupMenu(QMenu * p) { - if(!setupDone()) setup(); + if(!setupDone()) + setup(); p->addSeparator(); return true; } QAction * KviSeparatorAction::addToCustomToolBar(KviCustomToolBar * t) { - if(!setupDone()) setup(); - QWidget * w = new KviCustomToolBarSeparator(t,KVI_COREACTION_SEPARATOR); + if(!setupDone()) + setup(); + QWidget * w = new KviCustomToolBarSeparator(t, KVI_COREACTION_SEPARATOR); QAction * pAction = t->addWidget(w); // important: when customizing the toolbar, we'll get the action name from QAction::objectName(); pAction->setObjectName(KVI_COREACTION_SEPARATOR); @@ -554,21 +553,19 @@ QAction * KviSeparatorAction::addToCustomToolBar(KviCustomToolBar * t) return pAction; } - KviConnectAction::KviConnectAction(QObject * pParent) -: KviAction(pParent, - QString(KVI_COREACTION_CONNECT), - __tr2qs("Connect/Disconnect"), - __tr2qs("Allows you to connect to a server or to terminate the current connection"), - KviActionManager::categoryIrc(), - KVI_BIGICON_CONNECTED, - KviIconManager::None, // no small icon for now - NeedsContext | NeedsConnection, - QString(KVI_SHORTCUTS_CONNECT)) + : KviAction(pParent, + QString(KVI_COREACTION_CONNECT), + __tr2qs("Connect/Disconnect"), + __tr2qs("Allows you to connect to a server or to terminate the current connection"), + KviActionManager::categoryIrc(), + KVI_BIGICON_CONNECTED, + KviIconManager::None, // no small icon for now + NeedsContext | NeedsConnection, + QString(KVI_SHORTCUTS_CONNECT)) { } - void KviConnectAction::reloadImages() { activeContextStateChanged(); @@ -583,7 +580,8 @@ void KviConnectAction::activeContextStateChanged() { KviPointerList * bl = actionList(); - if(!bl)return; + if(!bl) + return; bool bIconVisibleInMenu = KVI_OPTION_BOOL(KviOption_boolShowIconsInPopupMenus); QPixmap * p; @@ -596,38 +594,44 @@ void KviConnectAction::activeContextStateChanged() case KviIrcContext::Idle: p = g_pIconManager->getBigIcon(KVI_BIGICON_DISCONNECTED); txt = m_szConnectString; - break; + break; case KviIrcContext::PendingReconnection: case KviIrcContext::Connecting: case KviIrcContext::LoggingIn: p = g_pIconManager->getBigIcon(KVI_BIGICON_CONNECTING); txt = m_szAbortConnectionString; - break; + break; case KviIrcContext::Connected: p = g_pIconManager->getBigIcon(KVI_BIGICON_CONNECTED); txt = m_szDisconnectString; - break; + break; default: p = 0; - break; + break; } - } else { + } + else + { p = 0; } if(p) { - for(QAction * b = bl->first();b;b =bl->next()) + for(QAction * b = bl->first(); b; b = bl->next()) { - if(!b->isEnabled())b->setEnabled(true); + if(!b->isEnabled()) + b->setEnabled(true); b->setIcon(QIcon(*p)); b->setText(txt); b->setIconVisibleInMenu(bIconVisibleInMenu); } - } else { - for(QAction * b = bl->first();b;b = bl->next()) + } + else + { + for(QAction * b = bl->first(); b; b = bl->next()) { - if(b->isEnabled())b->setEnabled(false); + if(b->isEnabled()) + b->setEnabled(false); b->setIconVisibleInMenu(bIconVisibleInMenu); } } @@ -648,9 +652,10 @@ void KviConnectAction::activate() c->connectOrDisconnect(); } -bool KviConnectAction::addToPopupMenu(QMenu *p) +bool KviConnectAction::addToPopupMenu(QMenu * p) { - if(!setupDone())setup(); + if(!setupDone()) + setup(); KviIrcContext * c = g_pMainWindow->activeContext(); QAction * pAction; QString t; @@ -660,40 +665,48 @@ bool KviConnectAction::addToPopupMenu(QMenu *p) { case KviIrcContext::Idle: t = m_szConnectString; - if(!m_szKeySequence.isEmpty())t += '\t' + m_szKeySequence; - p->addAction(t,this,SLOT(activate())); - break; + if(!m_szKeySequence.isEmpty()) + t += '\t' + m_szKeySequence; + p->addAction(t, this, SLOT(activate())); + break; case KviIrcContext::PendingReconnection: case KviIrcContext::Connecting: case KviIrcContext::LoggingIn: t = m_szAbortConnectionString; - if(!m_szKeySequence.isEmpty())t += '\t' + m_szKeySequence; - p->addAction(t,this,SLOT(activate())); - break; + if(!m_szKeySequence.isEmpty()) + t += '\t' + m_szKeySequence; + p->addAction(t, this, SLOT(activate())); + break; case KviIrcContext::Connected: t = m_szDisconnectString; - if(!m_szKeySequence.isEmpty())t += '\t' + m_szKeySequence; - p->addAction(t,this,SLOT(activate())); - break; + if(!m_szKeySequence.isEmpty()) + t += '\t' + m_szKeySequence; + p->addAction(t, this, SLOT(activate())); + break; default: t = m_szConnectString; - if(!m_szKeySequence.isEmpty())t += '\t' + m_szKeySequence; - pAction = p->addAction(t,this,SLOT(activate())); + if(!m_szKeySequence.isEmpty()) + t += '\t' + m_szKeySequence; + pAction = p->addAction(t, this, SLOT(activate())); pAction->setEnabled(false); - break; + break; } - } else { + } + else + { t = m_szConnectString; - if(!m_szKeySequence.isEmpty())t += '\t' + m_szKeySequence; - pAction = p->addAction(t,this,SLOT(activate())); + if(!m_szKeySequence.isEmpty()) + t += '\t' + m_szKeySequence; + pAction = p->addAction(t, this, SLOT(activate())); pAction->setEnabled(false); } return true; } -QAction * KviConnectAction::addToCustomToolBar(KviCustomToolBar *t) +QAction * KviConnectAction::addToCustomToolBar(KviCustomToolBar * t) { - if(!setupDone())setup(); + if(!setupDone()) + setup(); QAction * pAction = new QAction(*(g_pIconManager->getBigIcon(KVI_BIGICON_DISCONNECTED)), m_szConnectString, t); pAction->setStatusTip(m_szConnectString); pAction->setObjectName(KVI_COREACTION_CONNECT); @@ -704,36 +717,34 @@ QAction * KviConnectAction::addToCustomToolBar(KviCustomToolBar *t) return pAction; } - KviSubmenuAction::KviSubmenuAction( - QObject * pParent, - const QString &szName, - const QString &szScriptCode, - const QString &szVisibleName, - const QString &szDescription, - KviActionCategory * pCategory, - const QString &szBigIconId, - KviIconManager::SmallIcon eSmallIcon, - unsigned int uFlags - ) -: KviKvsAction( - pParent, - szName, - szScriptCode, - szVisibleName, - szDescription, - pCategory, - szBigIconId, - eSmallIcon, - uFlags - ) + QObject * pParent, + const QString & szName, + const QString & szScriptCode, + const QString & szVisibleName, + const QString & szDescription, + KviActionCategory * pCategory, + const QString & szBigIconId, + KviIconManager::SmallIcon eSmallIcon, + unsigned int uFlags) + : KviKvsAction( + pParent, + szName, + szScriptCode, + szVisibleName, + szDescription, + pCategory, + szBigIconId, + eSmallIcon, + uFlags) { m_pPopup = 0; } KviSubmenuAction::~KviSubmenuAction() { - if(m_pPopup)delete m_pPopup; + if(m_pPopup) + delete m_pPopup; } void KviSubmenuAction::setup() @@ -742,8 +753,8 @@ void KviSubmenuAction::setup() if(!m_pPopup) { m_pPopup = new QMenu(); - connect(m_pPopup,SIGNAL(aboutToShow()),this,SLOT(popupAboutToShow())); - connect(m_pPopup,SIGNAL(triggered(QAction *)),this,SLOT(popupActivated(QAction *))); + connect(m_pPopup, SIGNAL(aboutToShow()), this, SLOT(popupAboutToShow())); + connect(m_pPopup, SIGNAL(triggered(QAction *)), this, SLOT(popupActivated(QAction *))); } } @@ -755,19 +766,21 @@ void KviSubmenuAction::popupActivated(QAction *) { } -bool KviSubmenuAction::addToPopupMenu(QMenu *p) +bool KviSubmenuAction::addToPopupMenu(QMenu * p) { - if(!setupDone()) setup(); - QAction *pAction = p->addAction(*(smallIcon()),visibleName()); + if(!setupDone()) + setup(); + QAction * pAction = p->addAction(*(smallIcon()), visibleName()); pAction->setMenu(m_pPopup); if(!isEnabled()) - pAction->setEnabled(false); + pAction->setEnabled(false); return true; } -QAction * KviSubmenuAction::addToCustomToolBar(KviCustomToolBar *t) +QAction * KviSubmenuAction::addToCustomToolBar(KviCustomToolBar * t) { - if(!setupDone()) setup(); + if(!setupDone()) + setup(); QPixmap * p = bigIcon(); QAction * pAction = new QAction(p ? *p : QPixmap(), visibleName(), t); @@ -777,46 +790,48 @@ QAction * KviSubmenuAction::addToCustomToolBar(KviCustomToolBar *t) connect(pAction, SIGNAL(triggered()), this, SLOT(activate())); pAction->setMenu(m_pPopup); - QToolButton * pButton = (QToolButton *) t->widgetForAction(pAction); + QToolButton * pButton = (QToolButton *)t->widgetForAction(pAction); if(pButton) - pButton->setPopupMode( scriptCode().isEmpty() ? QToolButton::InstantPopup : QToolButton::MenuButtonPopup); + pButton->setPopupMode(scriptCode().isEmpty() ? QToolButton::InstantPopup : QToolButton::MenuButtonPopup); registerAction(pAction); - if(!isEnabled()) pAction->setEnabled(false); - return pAction; + if(!isEnabled()) + pAction->setEnabled(false); + return pAction; } - KviJoinChannelAction::KviJoinChannelAction(QObject * pParent) -: KviSubmenuAction(pParent, - QString(KVI_COREACTION_CHANNELMENU), - QString("channelsjoin.open"), - __tr2qs("Join Channel"), - __tr2qs("Shows a popup menu that allows quickly selecting a channel to join"), - KviActionManager::categoryIrc(), - "kvi_bigicon_channelspopup.png", - KviIconManager::Channel, - NeedsConnection | NeedsContext) + : KviSubmenuAction(pParent, + QString(KVI_COREACTION_CHANNELMENU), + QString("channelsjoin.open"), + __tr2qs("Join Channel"), + __tr2qs("Shows a popup menu that allows quickly selecting a channel to join"), + KviActionManager::categoryIrc(), + "kvi_bigicon_channelspopup.png", + KviIconManager::Channel, + NeedsConnection | NeedsContext) { } void KviJoinChannelAction::popupAboutToShow() { KviConsoleWindow * c = g_pActiveWindow->console(); - if(!c) return; + if(!c) + return; - g_pApp->fillRecentChannelsPopup(m_pPopup,c); + g_pApp->fillRecentChannelsPopup(m_pPopup, c); m_pPopup->addSeparator(); - m_pPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Channel)),__tr2qs("Other...")); + m_pPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Channel)), __tr2qs("Other...")); m_pPopup->addSeparator(); - m_pPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Remove)),__tr2qs("Clear Recent Channels List")); + m_pPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Remove)), __tr2qs("Clear Recent Channels List")); } -void KviJoinChannelAction::popupActivated(QAction *pAction) +void KviJoinChannelAction::popupActivated(QAction * pAction) { KviConsoleWindow * c = g_pActiveWindow->console(); - if(!c)return; + if(!c) + return; QString szItemText = pAction->text(); if(!szItemText.isEmpty()) @@ -825,53 +840,54 @@ void KviJoinChannelAction::popupActivated(QAction *pAction) if(szItemText == __tr2qs("Other...")) { szText = "channelsjoin.open"; - } else if(szItemText == __tr2qs("Clear Recent Channels List")) + } + else if(szItemText == __tr2qs("Clear Recent Channels List")) { szText = "option stringlistRecentChannels"; - } else { + } + else + { szText = szItemText; szText.prepend("join "); } - KviKvsScript::run(szText,c); + KviKvsScript::run(szText, c); } } - KviChangeNickAction::KviChangeNickAction(QObject * pParent) -: KviSubmenuAction( - pParent, - QString(KVI_COREACTION_NICKNAMEMENU), - QString("dialog.textinput(\"" + __tr2qs("Change Nickname") + "\",\"" + - __tr2qs("Please enter the new nickname") + "\",\"" + - __tr2qs("OK") + "\",\"" + - __tr2qs("Cancel") + "\"){ if($0 == 0 && $1 != \"\")nick $1; }"), - __tr2qs("Change Nickname"), - __tr2qs("Shows a popup menu that allows quickly changing the nickname"), - KviActionManager::categoryIrc(), - "kvi_bigicon_nickpopup.png", - KviIconManager::NickPopup, - NeedsConnection | NeedsContext) + : KviSubmenuAction( + pParent, + QString(KVI_COREACTION_NICKNAMEMENU), + QString("dialog.textinput(\"" + __tr2qs("Change Nickname") + "\",\"" + __tr2qs("Please enter the new nickname") + "\",\"" + __tr2qs("OK") + "\",\"" + __tr2qs("Cancel") + "\"){ if($0 == 0 && $1 != \"\")nick $1; }"), + __tr2qs("Change Nickname"), + __tr2qs("Shows a popup menu that allows quickly changing the nickname"), + KviActionManager::categoryIrc(), + "kvi_bigicon_nickpopup.png", + KviIconManager::NickPopup, + NeedsConnection | NeedsContext) { } void KviChangeNickAction::popupAboutToShow() { KviConsoleWindow * c = g_pActiveWindow->console(); - if(!c)return; + if(!c) + return; - g_pApp->fillRecentNicknamesPopup(m_pPopup,c); + g_pApp->fillRecentNicknamesPopup(m_pPopup, c); m_pPopup->addSeparator(); - m_pPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::NickPopup)),__tr2qs("Other...")); + m_pPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::NickPopup)), __tr2qs("Other...")); m_pPopup->addSeparator(); - m_pPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Remove)),__tr2qs("Clear Recent Nicks List")); + m_pPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Remove)), __tr2qs("Clear Recent Nicks List")); } -void KviChangeNickAction::popupActivated(QAction *pAction) +void KviChangeNickAction::popupActivated(QAction * pAction) { KviConsoleWindow * c = g_pActiveWindow->console(); - if(!c)return; + if(!c) + return; QString text = pAction->text(); if(!text.isEmpty()) @@ -880,29 +896,31 @@ void KviChangeNickAction::popupActivated(QAction *pAction) if(__tr2qs("Other...") == text) { activate(); - } else if(__tr2qs("Clear Recent Nicks List") == text) + } + else if(__tr2qs("Clear Recent Nicks List") == text) + { + KviKvsScript::run("option stringlistRecentNicknames", c); + } + else { - KviKvsScript::run("option stringlistRecentNicknames",c); - } else { szText = text; szText.prepend("nick "); - KviKvsScript::run(szText,c); + KviKvsScript::run(szText, c); } } } - KviConnectToServerAction::KviConnectToServerAction(QObject * pParent) -: KviSubmenuAction( - pParent, - QString(KVI_COREACTION_SERVERMENU), - QString("options.edit OptionsWidget_servers"), - __tr2qs("Connect to"), - __tr2qs("Shows a popup menu that allows quickly connecting to a server"), - KviActionManager::categoryIrc(), - "kvi_bigicon_server.png", - KviIconManager::Server, - NeedsContext) + : KviSubmenuAction( + pParent, + QString(KVI_COREACTION_SERVERMENU), + QString("options.edit OptionsWidget_servers"), + __tr2qs("Connect to"), + __tr2qs("Shows a popup menu that allows quickly connecting to a server"), + KviActionManager::categoryIrc(), + "kvi_bigicon_server.png", + KviIconManager::Server, + NeedsContext) { } @@ -910,15 +928,16 @@ void KviConnectToServerAction::popupAboutToShow() { g_pApp->fillRecentServersPopup(m_pPopup); m_pPopup->addSeparator(); - m_pPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Server)),__tr2qs("Other...")); + m_pPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Server)), __tr2qs("Other...")); m_pPopup->addSeparator(); - m_pPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Remove)),__tr2qs("Clear Recent Servers List")); + m_pPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Remove)), __tr2qs("Clear Recent Servers List")); } -void KviConnectToServerAction::popupActivated(QAction *pAction) +void KviConnectToServerAction::popupActivated(QAction * pAction) { KviConsoleWindow * c = g_pActiveWindow->console(); - if(!c)return; + if(!c) + return; QString szItemText = pAction->text(); if(!szItemText.isEmpty()) @@ -926,68 +945,71 @@ void KviConnectToServerAction::popupActivated(QAction *pAction) if(szItemText == __tr2qs("Other...")) { activate(); - } else if(szItemText == __tr2qs("Clear Recent Servers List")) + } + else if(szItemText == __tr2qs("Clear Recent Servers List")) + { + KviKvsScript::run("option stringlistRecentServers", c); + } + else { - KviKvsScript::run("option stringlistRecentServers",c); - } else { KviCString szCommand; QString szText = szItemText; - if(KviIrcUrl::parse(szText.toUtf8().data(),szCommand,KVI_IRCURL_CONTEXT_FIRSTFREE)) + if(KviIrcUrl::parse(szText.toUtf8().data(), szCommand, KVI_IRCURL_CONTEXT_FIRSTFREE)) { - KviKvsScript::run(szCommand.ptr(),c); + KviKvsScript::run(szCommand.ptr(), c); } } } } - KviChangeUserModeAction::KviChangeUserModeAction(QObject * pParent) -: KviSubmenuAction( - pParent, - QString(KVI_COREACTION_USERMODEMENU), - QString(""), - __tr2qs("User Mode"), - __tr2qs("Shows a popup menu that allows quickly changing user modes"), - KviActionManager::categoryIrc(), - "kvi_bigicon_usermode.png", - KviIconManager::UserMode, - NeedsContext | NeedsConnection) + : KviSubmenuAction( + pParent, + QString(KVI_COREACTION_USERMODEMENU), + QString(""), + __tr2qs("User Mode"), + __tr2qs("Shows a popup menu that allows quickly changing user modes"), + KviActionManager::categoryIrc(), + "kvi_bigicon_usermode.png", + KviIconManager::UserMode, + NeedsContext | NeedsConnection) { } void KviChangeUserModeAction::popupAboutToShow() { KviConsoleWindow * c = g_pActiveWindow->console(); - if(!c)return; + if(!c) + return; m_pPopup->clear(); - QAction *pAction; + QAction * pAction; QString szModes = g_pActiveWindow->connection()->serverInfo()->supportedUserModes(); - pAction = m_pPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::WallOps)),__tr2qs("w: WALLOPS")); + pAction = m_pPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::WallOps)), __tr2qs("w: WALLOPS")); pAction->setCheckable(true); pAction->setChecked(c->connection()->userInfo()->hasUserMode('w')); if(szModes.contains('s')) { - pAction = m_pPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::ServerNotice)),__tr2qs("s: Server Notices")); + pAction = m_pPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::ServerNotice)), __tr2qs("s: Server Notices")); pAction->setCheckable(true); // Only if the IRCd allows us pAction->setEnabled(c->connection()->serverInfo()->getNeedsOperToSetS() ? c->connection()->userInfo()->hasUserMode('o') : true); pAction->setChecked(c->connection()->userInfo()->hasUserMode('s')); } - pAction = m_pPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Invisible)),__tr2qs("i: Invisible")); + pAction = m_pPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Invisible)), __tr2qs("i: Invisible")); pAction->setCheckable(true); pAction->setChecked(c->connection()->userInfo()->hasUserMode('i')); - szModes.replace("w",""); - szModes.replace("s",""); - szModes.replace("i",""); + szModes.replace("w", ""); + szModes.replace("s", ""); + szModes.replace("i", ""); while(!szModes.isEmpty()) { QChar ccc = szModes[0]; - szModes.remove(0,1); + szModes.remove(0, 1); QString modeDesc = c->connection()->serverInfo()->getUserModeDescription(ccc); QChar requiredMode = c->connection()->serverInfo()->getUserModeRequirement(ccc); bool canCheck = true; @@ -1004,20 +1026,22 @@ void KviChangeUserModeAction::popupAboutToShow() } pAction = m_pPopup->addAction(*(g_pIconManager->getSmallIcon(isSet ? KviIconManager::ChanMode : KviIconManager::UnsetMode)), - !modeDesc.isEmpty() ? modeDesc : QString("%1: Unknown").arg(ccc)); + !modeDesc.isEmpty() ? modeDesc : QString("%1: Unknown").arg(ccc)); pAction->setEnabled(canCheck); pAction->setCheckable(true); pAction->setChecked(isSet); } } -void KviChangeUserModeAction::popupActivated(QAction *pAction) +void KviChangeUserModeAction::popupActivated(QAction * pAction) { KviConsoleWindow * c = g_pActiveWindow->console(); - if(!c)return; + if(!c) + return; QString text = pAction->text(); - if(!c->isConnected())return; + if(!c->isConnected()) + return; if(!text.isEmpty() && text[0].isLetter()) { QChar m = text[0]; @@ -1027,24 +1051,22 @@ void KviChangeUserModeAction::popupActivated(QAction *pAction) command.append(szNick); command.append(c->connection()->userInfo()->hasUserMode(m) ? " -" : " +"); command.append(m); - KviKvsScript::run(command,c); + KviKvsScript::run(command, c); } } - KviGoAwayAction::KviGoAwayAction(QObject * pParent) -: KviKvsAction( - pParent, - QString(KVI_COREACTION_AWAYBACK), - QString("if($away())back; else away;"), - __tr2qs("Away/Back"), - __tr2qs("Allows entering and leaving away state"), - KviActionManager::categoryIrc(), - "kvi_bigicon_away.png", - KviIconManager::Away, - KviKvsAction::NeedsContext | KviKvsAction::NeedsConnection, - KVI_SHORTCUTS_AWAY - ) + : KviKvsAction( + pParent, + QString(KVI_COREACTION_AWAYBACK), + QString("if($away())back; else away;"), + __tr2qs("Away/Back"), + __tr2qs("Allows entering and leaving away state"), + KviActionManager::categoryIrc(), + "kvi_bigicon_away.png", + KviIconManager::Away, + KviKvsAction::NeedsContext | KviKvsAction::NeedsConnection, + KVI_SHORTCUTS_AWAY) { } @@ -1061,7 +1083,8 @@ void KviGoAwayAction::activeContextChanged() void KviGoAwayAction::activeContextStateChanged() { KviPointerList * bl = actionList(); - if(!bl)return; + if(!bl) + return; bool bIconVisibleInMenu = KVI_OPTION_BOOL(KviOption_boolShowIconsInPopupMenus); QPixmap * p; @@ -1075,32 +1098,42 @@ void KviGoAwayAction::activeContextStateChanged() { p = g_pIconManager->getBigIcon("kvi_bigicon_away.png"); txt = m_szBackString; - } else { + } + else + { p = g_pIconManager->getBigIcon("kvi_bigicon_notaway.png"); txt = m_szAwayString; } - } else { + } + else + { p = 0; } - } else { + } + else + { p = 0; } if(p) { - for(QAction * b = bl->first();b;b =bl->next()) + for(QAction * b = bl->first(); b; b = bl->next()) { - if(!b->isEnabled())b->setEnabled(true); + if(!b->isEnabled()) + b->setEnabled(true); b->setIcon(QIcon(*p)); b->setText(txt); b->setIconVisibleInMenu(bIconVisibleInMenu); } m_uInternalFlags |= KviAction::Enabled; setEnabled(true); - } else { - for(QAction * b = bl->first();b;b = bl->next()) + } + else + { + for(QAction * b = bl->first(); b; b = bl->next()) { - if(b->isEnabled())b->setEnabled(false); + if(b->isEnabled()) + b->setEnabled(false); b->setIconVisibleInMenu(bIconVisibleInMenu); } m_uInternalFlags &= ~KviAction::Enabled; @@ -1113,14 +1146,15 @@ void KviGoAwayAction::setup() KviKvsAction::setup(); m_szAwayString = __tr2qs("Enter Away Mode"); m_szBackString = __tr2qs("Leave Away Mode"); - connect(g_pMainWindow,SIGNAL(activeConnectionAwayStateChanged()),this,SLOT(activeContextStateChanged())); + connect(g_pMainWindow, SIGNAL(activeConnectionAwayStateChanged()), this, SLOT(activeContextStateChanged())); } -bool KviGoAwayAction::addToPopupMenu(QMenu *p) +bool KviGoAwayAction::addToPopupMenu(QMenu * p) { - if(!setupDone())setup(); + if(!setupDone()) + setup(); KviIrcContext * c = g_pMainWindow->activeContext(); - QAction *pAction; + QAction * pAction; QString t; if(c) { @@ -1129,31 +1163,42 @@ bool KviGoAwayAction::addToPopupMenu(QMenu *p) if(c->connection()->userInfo()->isAway()) { t = m_szBackString; - if(!m_szKeySequence.isEmpty())t += '\t' + m_szKeySequence; - p->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Away)),t,this,SLOT(activate())); - } else { + if(!m_szKeySequence.isEmpty()) + t += '\t' + m_szKeySequence; + p->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Away)), t, this, SLOT(activate())); + } + else + { t = m_szAwayString; - if(!m_szKeySequence.isEmpty())t += '\t' + m_szKeySequence; - p->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::NotAway)),t,this,SLOT(activate())); + if(!m_szKeySequence.isEmpty()) + t += '\t' + m_szKeySequence; + p->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::NotAway)), t, this, SLOT(activate())); } - } else { + } + else + { t = m_szAwayString; - if(!m_szKeySequence.isEmpty())t += '\t' + m_szKeySequence; - pAction = p->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::NotAway)),t,this,SLOT(activate())); + if(!m_szKeySequence.isEmpty()) + t += '\t' + m_szKeySequence; + pAction = p->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::NotAway)), t, this, SLOT(activate())); pAction->setEnabled(false); } - } else { + } + else + { t = m_szAwayString; - if(!m_szKeySequence.isEmpty())t += '\t' + m_szKeySequence; - pAction = p->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::NotAway)),t,this,SLOT(activate())); + if(!m_szKeySequence.isEmpty()) + t += '\t' + m_szKeySequence; + pAction = p->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::NotAway)), t, this, SLOT(activate())); pAction->setEnabled(false); } return true; } -QAction * KviGoAwayAction::addToCustomToolBar(KviCustomToolBar *t) +QAction * KviGoAwayAction::addToCustomToolBar(KviCustomToolBar * t) { - if(!setupDone())setup(); + if(!setupDone()) + setup(); QAction * pAction = new QAction(*(g_pIconManager->getBigIcon("kvi_bigicon_away.png")), m_szAwayString, t); pAction->setStatusTip(m_szAwayString); @@ -1166,18 +1211,17 @@ QAction * KviGoAwayAction::addToCustomToolBar(KviCustomToolBar *t) return pAction; } - KviIrcToolsAction::KviIrcToolsAction(QObject * pParent) -: KviSubmenuAction( - pParent, - QString(KVI_COREACTION_IRCTOOLS), - QString(""), - __tr2qs("IRC Tools"), - __tr2qs("Shows a popup menu with some IRC tools"), - KviActionManager::categoryIrc(), - "kvi_bigicon_tools.png", - KviIconManager::Tools, - NeedsConnection | NeedsContext) + : KviSubmenuAction( + pParent, + QString(KVI_COREACTION_IRCTOOLS), + QString(""), + __tr2qs("IRC Tools"), + __tr2qs("Shows a popup menu with some IRC tools"), + KviActionManager::categoryIrc(), + "kvi_bigicon_tools.png", + KviIconManager::Tools, + NeedsConnection | NeedsContext) { } @@ -1186,31 +1230,34 @@ void KviIrcToolsAction::popupAboutToShow() m_pPopup->clear(); KviAction * a; a = KviActionManager::instance()->getAction(KVI_COREACTION_SOCKETSPY); - if(a)a->addToPopupMenu(m_pPopup); + if(a) + a->addToPopupMenu(m_pPopup); a = KviActionManager::instance()->getAction(KVI_COREACTION_SEPARATOR); - if(a)a->addToPopupMenu(m_pPopup); + if(a) + a->addToPopupMenu(m_pPopup); a = KviActionManager::instance()->getAction(KVI_COREACTION_CHANNELLIST); - if(a)a->addToPopupMenu(m_pPopup); + if(a) + a->addToPopupMenu(m_pPopup); a = KviActionManager::instance()->getAction(KVI_COREACTION_NETWORKLINKS); - if(a)a->addToPopupMenu(m_pPopup); + if(a) + a->addToPopupMenu(m_pPopup); } void KviIrcToolsAction::popupActivated(QAction *) { } - KviIrcOperationsAction::KviIrcOperationsAction(QObject * pParent) -: KviSubmenuAction( - pParent, - QString(KVI_COREACTION_IRCACTIONS), - QString(""), - __tr2qs("IRC Actions"), - __tr2qs("Shows a popup menu with some IRC actions"), - KviActionManager::categoryIrc(), - "kvi_bigicon_actions.png", - KviIconManager::Action, - NeedsConnection | NeedsContext) + : KviSubmenuAction( + pParent, + QString(KVI_COREACTION_IRCACTIONS), + QString(""), + __tr2qs("IRC Actions"), + __tr2qs("Shows a popup menu with some IRC actions"), + KviActionManager::categoryIrc(), + "kvi_bigicon_actions.png", + KviIconManager::Action, + NeedsConnection | NeedsContext) { } @@ -1219,19 +1266,26 @@ void KviIrcOperationsAction::popupAboutToShow() m_pPopup->clear(); KviAction * a; a = KviActionManager::instance()->getAction(KVI_COREACTION_AWAYBACK); - if(a)a->addToPopupMenu(m_pPopup); + if(a) + a->addToPopupMenu(m_pPopup); a = KviActionManager::instance()->getAction(KVI_COREACTION_USERMODEMENU); - if(a)a->addToPopupMenu(m_pPopup); + if(a) + a->addToPopupMenu(m_pPopup); a = KviActionManager::instance()->getAction(KVI_COREACTION_SEPARATOR); - if(a)a->addToPopupMenu(m_pPopup); + if(a) + a->addToPopupMenu(m_pPopup); a = KviActionManager::instance()->getAction(KVI_COREACTION_CHANNELMENU); - if(a)a->addToPopupMenu(m_pPopup); + if(a) + a->addToPopupMenu(m_pPopup); a = KviActionManager::instance()->getAction(KVI_COREACTION_NICKNAMEMENU); - if(a)a->addToPopupMenu(m_pPopup); + if(a) + a->addToPopupMenu(m_pPopup); a = KviActionManager::instance()->getAction(KVI_COREACTION_SEPARATOR); - if(a)a->addToPopupMenu(m_pPopup); + if(a) + a->addToPopupMenu(m_pPopup); a = KviActionManager::instance()->getAction(KVI_COREACTION_SERVERMENU); - if(a)a->addToPopupMenu(m_pPopup); + if(a) + a->addToPopupMenu(m_pPopup); } void KviIrcOperationsAction::popupActivated(QAction *) diff --git a/src/kvirc/kernel/KviCoreActions.h b/src/kvirc/kernel/KviCoreActions.h index 7e36d19a6..dc650dbce 100644 --- a/src/kvirc/kernel/KviCoreActions.h +++ b/src/kvirc/kernel/KviCoreActions.h @@ -34,13 +34,16 @@ class KviConnectAction : public KviAction Q_OBJECT public: KviConnectAction(QObject * pParent); + protected: QString m_szConnectString; QString m_szAbortConnectionString; QString m_szDisconnectString; + public: virtual bool addToPopupMenu(QMenu * pMenu); virtual QAction * addToCustomToolBar(KviCustomToolBar * pTool); + protected: virtual void setup(); virtual void reloadImages(); @@ -54,6 +57,7 @@ class KviSeparatorAction : public KviAction Q_OBJECT public: KviSeparatorAction(QObject * pParent); + public: virtual bool addToPopupMenu(QMenu * pMenu); virtual QAction * addToCustomToolBar(KviCustomToolBar * pTool); @@ -66,27 +70,29 @@ class KviSubmenuAction : public KviKvsAction Q_OBJECT public: KviSubmenuAction( - QObject * pParent, - const QString & szName, - const QString & szScriptCode, - const QString & szVisibleName, - const QString & szDescription, - KviActionCategory * pCategory = NULL, - const QString & szBigIconId = QString(), - KviIconManager::SmallIcon eSmallIcon = KviIconManager::None, - unsigned int uFlags = 0 - ); + QObject * pParent, + const QString & szName, + const QString & szScriptCode, + const QString & szVisibleName, + const QString & szDescription, + KviActionCategory * pCategory = NULL, + const QString & szBigIconId = QString(), + KviIconManager::SmallIcon eSmallIcon = KviIconManager::None, + unsigned int uFlags = 0); ~KviSubmenuAction(); + protected: QMenu * m_pPopup; + protected: virtual void setup(); + public: virtual bool addToPopupMenu(QMenu * pMenu); virtual QAction * addToCustomToolBar(KviCustomToolBar * pTool); protected slots: virtual void popupAboutToShow(); - virtual void popupActivated(QAction *pAction); + virtual void popupActivated(QAction * pAction); }; class KviJoinChannelAction : public KviSubmenuAction @@ -96,7 +102,7 @@ public: KviJoinChannelAction(QObject * pParent); protected slots: virtual void popupAboutToShow(); - virtual void popupActivated(QAction *pAction); + virtual void popupActivated(QAction * pAction); }; class KviChangeNickAction : public KviSubmenuAction @@ -106,7 +112,7 @@ public: KviChangeNickAction(QObject * pParent); protected slots: void popupAboutToShow(); - void popupActivated(QAction *pAction); + void popupActivated(QAction * pAction); }; class KviConnectToServerAction : public KviSubmenuAction @@ -116,7 +122,7 @@ public: KviConnectToServerAction(QObject * pParent); protected slots: void popupAboutToShow(); - void popupActivated(QAction *pAction); + void popupActivated(QAction * pAction); }; class KviChangeUserModeAction : public KviSubmenuAction @@ -126,7 +132,7 @@ public: KviChangeUserModeAction(QObject * pParent); protected slots: void popupAboutToShow(); - void popupActivated(QAction *pAction); + void popupActivated(QAction * pAction); }; class KviIrcToolsAction : public KviSubmenuAction @@ -136,10 +142,9 @@ public: KviIrcToolsAction(QObject * pParent); protected slots: void popupAboutToShow(); - void popupActivated(QAction *pAction); + void popupActivated(QAction * pAction); }; - class KviIrcOperationsAction : public KviSubmenuAction { Q_OBJECT @@ -147,7 +152,7 @@ public: KviIrcOperationsAction(QObject * pParent); protected slots: void popupAboutToShow(); - void popupActivated(QAction *pAction); + void popupActivated(QAction * pAction); }; #include "KviIrcToolBar.h" @@ -157,6 +162,7 @@ class KviIrcContextDisplayAction : public KviAction Q_OBJECT public: KviIrcContextDisplayAction(QObject * pParent); + public: virtual bool addToPopupMenu(QMenu * pMenu); virtual QAction * addToCustomToolBar(KviCustomToolBar * pTool); @@ -166,18 +172,20 @@ public: virtual void setup(); }; - class KviGoAwayAction : public KviKvsAction { Q_OBJECT public: KviGoAwayAction(QObject * pParent); + protected: QString m_szAwayString; QString m_szBackString; + public: virtual bool addToPopupMenu(QMenu * pMenu); virtual QAction * addToCustomToolBar(KviCustomToolBar * pTool); + protected: virtual void setup(); virtual void reloadImages(); diff --git a/src/kvirc/kernel/KviCustomToolBarDescriptor.cpp b/src/kvirc/kernel/KviCustomToolBarDescriptor.cpp index e68a29b28..7e5ec238b 100644 --- a/src/kvirc/kernel/KviCustomToolBarDescriptor.cpp +++ b/src/kvirc/kernel/KviCustomToolBarDescriptor.cpp @@ -22,8 +22,6 @@ // //============================================================================= - - #include "KviCustomToolBarDescriptor.h" #include "KviCustomToolBar.h" #include "KviConfigurationFile.h" @@ -34,7 +32,7 @@ #include "KviKvsScript.h" #include "KviWindow.h" -KviCustomToolBarDescriptor::KviCustomToolBarDescriptor(const QString &szId,const QString &szLabelCode) +KviCustomToolBarDescriptor::KviCustomToolBarDescriptor(const QString & szId, const QString & szLabelCode) { m_iInternalId = g_pApp->getGloballyUniqueId(); m_szId = szId; @@ -47,22 +45,24 @@ KviCustomToolBarDescriptor::KviCustomToolBarDescriptor(const QString &szId,const KviCustomToolBarDescriptor::~KviCustomToolBarDescriptor() { - if(m_pToolBar)delete m_pToolBar; // first kill the toolbar (so eventually leave it sync the actions) - delete m_pActions; // THEN kill the actions + if(m_pToolBar) + delete m_pToolBar; // first kill the toolbar (so eventually leave it sync the actions) + delete m_pActions; // THEN kill the actions delete m_pLabelScript; } -void KviCustomToolBarDescriptor::createLabelScript(const QString &szLabelCode) +void KviCustomToolBarDescriptor::createLabelScript(const QString & szLabelCode) { QString szTmp = "toolbar::"; szTmp += m_szId; szTmp += "::label"; - m_pLabelScript = new KviKvsScript(szTmp,szLabelCode,KviKvsScript::Parameter); + m_pLabelScript = new KviKvsScript(szTmp, szLabelCode, KviKvsScript::Parameter); } const QString & KviCustomToolBarDescriptor::label() { - if(!m_pLabelScript->run(g_pActiveWindow,0,m_szParsedLabel))m_szParsedLabel = m_pLabelScript->code(); + if(!m_pLabelScript->run(g_pActiveWindow, 0, m_szParsedLabel)) + m_szParsedLabel = m_pLabelScript->code(); return m_szParsedLabel; } @@ -71,13 +71,14 @@ const QString & KviCustomToolBarDescriptor::labelCode() return m_pLabelScript->code(); } -bool KviCustomToolBarDescriptor::addAction(const QString &szAction) +bool KviCustomToolBarDescriptor::addAction(const QString & szAction) { - KviAction *a = KviActionManager::instance()->getAction(szAction); + KviAction * a = KviActionManager::instance()->getAction(szAction); if(a) { m_pActions->append(new QString(szAction)); - if(m_pToolBar)a->addToCustomToolBar(m_pToolBar); + if(m_pToolBar) + a->addToCustomToolBar(m_pToolBar); return true; } return false; @@ -85,8 +86,10 @@ bool KviCustomToolBarDescriptor::addAction(const QString &szAction) bool KviCustomToolBarDescriptor::removeAction(unsigned int iAction) { - if(iAction >= m_pActions->count())return false; - if(!m_pActions->remove(iAction))return false; + if(iAction >= m_pActions->count()) + return false; + if(!m_pActions->remove(iAction)) + return false; if(m_pToolBar) { // need to refill it :/ @@ -96,9 +99,9 @@ bool KviCustomToolBarDescriptor::removeAction(unsigned int iAction) return true; } -bool KviCustomToolBarDescriptor::removeAction(const QString &szAction) +bool KviCustomToolBarDescriptor::removeAction(const QString & szAction) { - for(QString *s = m_pActions->first();s;s = m_pActions->next()) + for(QString * s = m_pActions->first(); s; s = m_pActions->next()) { if(*s == szAction) { @@ -117,28 +120,32 @@ bool KviCustomToolBarDescriptor::removeAction(const QString &szAction) void KviCustomToolBarDescriptor::updateToolBar() { - if(!m_pToolBar)return; + if(!m_pToolBar) + return; m_pToolBar->clear(); fillToolBar(); } - void KviCustomToolBarDescriptor::fillToolBar() { if(m_pActions->count() == 0) { // force layout of the toolbar - QApplication::postEvent(m_pToolBar,new QEvent(QEvent::LayoutRequest)); - } else { + QApplication::postEvent(m_pToolBar, new QEvent(QEvent::LayoutRequest)); + } + else + { KviPointerList dying; dying.setAutoDelete(false); - for(QString *p = m_pActions->first();p;p = m_pActions->next()) + for(QString * p = m_pActions->first(); p; p = m_pActions->next()) { - KviAction *a = KviActionManager::instance()->getAction(*p); - if(a)a->addToCustomToolBar(m_pToolBar); - else dying.append(p); + KviAction * a = KviActionManager::instance()->getAction(*p); + if(a) + a->addToCustomToolBar(m_pToolBar); + else + dying.append(p); } - for(QString *d = dying.first();d;d = dying.next()) + for(QString * d = dying.first(); d; d = dying.next()) m_pActions->removeRef(d); } } @@ -147,7 +154,7 @@ KviCustomToolBar * KviCustomToolBarDescriptor::createToolBar() { if(!m_pToolBar) { - m_pToolBar = new KviCustomToolBar(this,label(),Qt::TopToolBarArea,id().toUtf8().data()); + m_pToolBar = new KviCustomToolBar(this, label(), Qt::TopToolBarArea, id().toUtf8().data()); fillToolBar(); } return m_pToolBar; @@ -163,11 +170,12 @@ void KviCustomToolBarDescriptor::unregisterToolBar(KviCustomToolBar *) m_pToolBar = 0; } -void KviCustomToolBarDescriptor::rename(const QString &szNewLabelCode) +void KviCustomToolBarDescriptor::rename(const QString & szNewLabelCode) { delete m_pLabelScript; createLabelScript(szNewLabelCode); - if(m_pToolBar)m_pToolBar->setWindowTitle(label()); + if(m_pToolBar) + m_pToolBar->setWindowTitle(label()); } void KviCustomToolBarDescriptor::clear() @@ -185,20 +193,23 @@ bool KviCustomToolBarDescriptor::load(KviConfigurationFile * cfg) m_pActions->clear(); m_szId = cfg->group(); QString szLabelCode = cfg->readEntry("Label"); - if(szLabelCode.isEmpty())szLabelCode = "$tr(Unnamed)"; + if(szLabelCode.isEmpty()) + szLabelCode = "$tr(Unnamed)"; delete m_pLabelScript; createLabelScript(szLabelCode); - m_szIconId = cfg->readEntry("IconId",""); - unsigned int n = cfg->readUIntEntry("Count",0); + m_szIconId = cfg->readEntry("IconId", ""); + unsigned int n = cfg->readUIntEntry("Count", 0); QString tmp; - for(unsigned int i=0;ireadEntry(tmp)); if(p->isEmpty()) { delete p; - } else { + } + else + { m_pActions->append(p); } } @@ -208,15 +219,16 @@ bool KviCustomToolBarDescriptor::load(KviConfigurationFile * cfg) void KviCustomToolBarDescriptor::save(KviConfigurationFile * cfg) { cfg->setGroup(m_szId); - cfg->writeEntry("Label",m_pLabelScript->code()); - cfg->writeEntry("Count",m_pActions->count()); - if(!m_szIconId.isEmpty())cfg->writeEntry("IconId",m_szIconId); + cfg->writeEntry("Label", m_pLabelScript->code()); + cfg->writeEntry("Count", m_pActions->count()); + if(!m_szIconId.isEmpty()) + cfg->writeEntry("IconId", m_szIconId); int i = 0; QString tmp; - for(QString * p = m_pActions->first();p;p = m_pActions->next()) + for(QString * p = m_pActions->first(); p; p = m_pActions->next()) { tmp.setNum(i); - cfg->writeEntry(tmp,*p); + cfg->writeEntry(tmp, *p); i++; } } diff --git a/src/kvirc/kernel/KviCustomToolBarDescriptor.h b/src/kvirc/kernel/KviCustomToolBarDescriptor.h index aca9be7b3..8df6a505c 100644 --- a/src/kvirc/kernel/KviCustomToolBarDescriptor.h +++ b/src/kvirc/kernel/KviCustomToolBarDescriptor.h @@ -32,42 +32,46 @@ class KviCustomToolBar; class KviConfigurationFile; class KviKvsScript; - class KVIRC_API KviCustomToolBarDescriptor { friend class KviCustomToolBar; friend class KviCustomToolBarManager; + protected: KviCustomToolBarDescriptor(const QString & szId, const QString & szLabelCode); + public: ~KviCustomToolBarDescriptor(); + protected: - QString m_szId; - QString m_szIconId; - QString m_szParsedLabel; + QString m_szId; + QString m_szIconId; + QString m_szParsedLabel; KviPointerList * m_pActions; - KviCustomToolBar * m_pToolBar; - int m_iInternalId; - bool m_bVisibleAtStartup; - KviKvsScript * m_pLabelScript; + KviCustomToolBar * m_pToolBar; + int m_iInternalId; + bool m_bVisibleAtStartup; + KviKvsScript * m_pLabelScript; + public: - const QString & iconId(){ return m_szIconId; }; + const QString & iconId() { return m_szIconId; }; const QString & label(); const QString & labelCode(); - const QString & id(){ return m_szId; }; - int internalId(){ return m_iInternalId; }; // useful only for KviMainWindow - KviCustomToolBar * toolBar(){ return m_pToolBar; }; + const QString & id() { return m_szId; }; + int internalId() { return m_iInternalId; }; // useful only for KviMainWindow + KviCustomToolBar * toolBar() { return m_pToolBar; }; KviCustomToolBar * createToolBar(); - void setIconId(const QString &szIconId){ m_szIconId = szIconId; }; - bool addAction(const QString &szAction); - bool removeAction(const QString &szAction); + void setIconId(const QString & szIconId) { m_szIconId = szIconId; }; + bool addAction(const QString & szAction); + bool removeAction(const QString & szAction); bool removeAction(unsigned int iAction); void clear(); - void rename(const QString &szNewName); - KviPointerList * actions(){ return m_pActions; }; + void rename(const QString & szNewName); + KviPointerList * actions() { return m_pActions; }; void updateToolBar(); + protected: - void createLabelScript(const QString &szNewLabelCode); + void createLabelScript(const QString & szNewLabelCode); void fillToolBar(); bool load(KviConfigurationFile * cfg); void save(KviConfigurationFile * cfg); diff --git a/src/kvirc/kernel/KviCustomToolBarManager.cpp b/src/kvirc/kernel/KviCustomToolBarManager.cpp index 9d8ade9c8..32d748512 100644 --- a/src/kvirc/kernel/KviCustomToolBarManager.cpp +++ b/src/kvirc/kernel/KviCustomToolBarManager.cpp @@ -22,8 +22,6 @@ // //============================================================================= - - #include "KviCustomToolBarManager.h" #include "KviCustomToolBarDescriptor.h" #include "KviConfigurationFile.h" @@ -33,7 +31,7 @@ KviCustomToolBarManager * KviCustomToolBarManager::m_pInstance = 0; KviCustomToolBarManager::KviCustomToolBarManager() { - m_pDescriptors = new KviPointerHashTable(17,false); + m_pDescriptors = new KviPointerHashTable(17, false); m_pDescriptors->setAutoDelete(true); } @@ -44,10 +42,11 @@ KviCustomToolBarManager::~KviCustomToolBarManager() KviCustomToolBar * KviCustomToolBarManager::firstExistingToolBar() { - KviPointerHashTableIterator it(*m_pDescriptors); + KviPointerHashTableIterator it(*m_pDescriptors); while(KviCustomToolBarDescriptor * d = it.current()) { - if(d->toolBar())return d->toolBar(); + if(d->toolBar()) + return d->toolBar(); ++it; } return 0; @@ -55,7 +54,8 @@ KviCustomToolBar * KviCustomToolBarManager::firstExistingToolBar() void KviCustomToolBarManager::init() { - if(!m_pInstance)m_pInstance = new KviCustomToolBarManager(); + if(!m_pInstance) + m_pInstance = new KviCustomToolBarManager(); } void KviCustomToolBarManager::done() @@ -67,7 +67,7 @@ void KviCustomToolBarManager::done() } } -QString KviCustomToolBarManager::idForNewToolBar(const QString &szTemplate) +QString KviCustomToolBarManager::idForNewToolBar(const QString & szTemplate) { QString s; QString szTT = szTemplate.toLower(); @@ -86,7 +86,8 @@ QString KviCustomToolBarManager::idForNewToolBar(const QString &szTemplate) tmp.setNum(idx); s += tmp; } - if(!m_pDescriptors->find(s))return s; + if(!m_pDescriptors->find(s)) + return s; idx++; } return s; @@ -94,32 +95,36 @@ QString KviCustomToolBarManager::idForNewToolBar(const QString &szTemplate) KviCustomToolBarDescriptor * KviCustomToolBarManager::findDescriptorByInternalId(int id) { - KviPointerHashTableIterator it(*m_pDescriptors); + KviPointerHashTableIterator it(*m_pDescriptors); while(KviCustomToolBarDescriptor * d = it.current()) { - if(d->internalId() == id)return d; + if(d->internalId() == id) + return d; ++it; } return 0; } -bool KviCustomToolBarManager::renameDescriptor(const QString &szId,const QString &szNewId,const QString &szNewLabelCode) +bool KviCustomToolBarManager::renameDescriptor(const QString & szId, const QString & szNewId, const QString & szNewLabelCode) { KviCustomToolBarDescriptor * d = m_pDescriptors->find(szId); - if(!d)return false; + if(!d) + return false; d->rename(szNewLabelCode); - if(szId == szNewId)return true; // already done + if(szId == szNewId) + return true; // already done m_pDescriptors->setAutoDelete(false); m_pDescriptors->remove(szId); - m_pDescriptors->replace(szNewId,d); + m_pDescriptors->replace(szNewId, d); m_pDescriptors->setAutoDelete(true); return true; } -bool KviCustomToolBarManager::destroyDescriptor(const QString &szId) +bool KviCustomToolBarManager::destroyDescriptor(const QString & szId) { KviCustomToolBarDescriptor * d = m_pDescriptors->find(szId); - if(!d)return false; + if(!d) + return false; m_pDescriptors->remove(szId); // will delete it too! return true; } @@ -129,33 +134,34 @@ void KviCustomToolBarManager::clear() m_pDescriptors->clear(); // bye! } -KviCustomToolBarDescriptor * KviCustomToolBarManager::create(const QString &szId,const QString &szLabelCode) +KviCustomToolBarDescriptor * KviCustomToolBarManager::create(const QString & szId, const QString & szLabelCode) { KviCustomToolBarDescriptor * d = m_pDescriptors->find(szId); - if(d)return d; - d = new KviCustomToolBarDescriptor(szId,szLabelCode); - m_pDescriptors->replace(szId,d); + if(d) + return d; + d = new KviCustomToolBarDescriptor(szId, szLabelCode); + m_pDescriptors->replace(szId, d); return d; } void KviCustomToolBarManager::storeVisibilityState() { - KviPointerHashTableIterator it(*m_pDescriptors); + KviPointerHashTableIterator it(*m_pDescriptors); while(KviCustomToolBarDescriptor * d = it.current()) { d->m_bVisibleAtStartup = d->toolBar() != 0; ++it; } - } int KviCustomToolBarManager::visibleToolBarCount() { int cnt = 0; - KviPointerHashTableIterator it(*m_pDescriptors); + KviPointerHashTableIterator it(*m_pDescriptors); while(KviCustomToolBarDescriptor * d = it.current()) { - if(d->toolBar() != 0)cnt++; + if(d->toolBar() != 0) + cnt++; ++it; } return cnt; @@ -163,7 +169,7 @@ int KviCustomToolBarManager::visibleToolBarCount() void KviCustomToolBarManager::createToolBarsVisibleAtStartup() { - KviPointerHashTableIterator it(*m_pDescriptors); + KviPointerHashTableIterator it(*m_pDescriptors); while(KviCustomToolBarDescriptor * d = it.current()) { if(d->m_bVisibleAtStartup && (!d->toolBar())) @@ -174,38 +180,41 @@ void KviCustomToolBarManager::createToolBarsVisibleAtStartup() void KviCustomToolBarManager::updateVisibleToolBars() { - KviPointerHashTableIterator it(*m_pDescriptors); + KviPointerHashTableIterator it(*m_pDescriptors); while(KviCustomToolBarDescriptor * d = it.current()) { - if(d->toolBar())d->updateToolBar(); + if(d->toolBar()) + d->updateToolBar(); ++it; } } -void KviCustomToolBarManager::load(const QString &szFileName) +void KviCustomToolBarManager::load(const QString & szFileName) { - KviConfigurationFile cfg(szFileName,KviConfigurationFile::Read); + KviConfigurationFile cfg(szFileName, KviConfigurationFile::Read); KviConfigurationFileIterator it(*(cfg.dict())); while(it.current()) { cfg.setGroup(it.currentKey()); - KviCustomToolBarDescriptor * d = new KviCustomToolBarDescriptor(it.currentKey(),QString()); - d->m_bVisibleAtStartup = (cfg.readIntEntry("Visible",0) > 0); - if(!d->load(&cfg))delete d; - else m_pDescriptors->replace(it.currentKey(),d); + KviCustomToolBarDescriptor * d = new KviCustomToolBarDescriptor(it.currentKey(), QString()); + d->m_bVisibleAtStartup = (cfg.readIntEntry("Visible", 0) > 0); + if(!d->load(&cfg)) + delete d; + else + m_pDescriptors->replace(it.currentKey(), d); ++it; } } -void KviCustomToolBarManager::save(const QString &szFileName) +void KviCustomToolBarManager::save(const QString & szFileName) { - KviConfigurationFile cfg(szFileName,KviConfigurationFile::Write); - KviPointerHashTableIterator it(*m_pDescriptors); + KviConfigurationFile cfg(szFileName, KviConfigurationFile::Write); + KviPointerHashTableIterator it(*m_pDescriptors); while(KviCustomToolBarDescriptor * d = it.current()) { cfg.setGroup(d->id()); - cfg.writeEntry("Visible",d->m_bVisibleAtStartup ? 1 : 0); + cfg.writeEntry("Visible", d->m_bVisibleAtStartup ? 1 : 0); d->save(&cfg); ++it; } diff --git a/src/kvirc/kernel/KviCustomToolBarManager.h b/src/kvirc/kernel/KviCustomToolBarManager.h index f47dd4c40..d60ce2bb3 100644 --- a/src/kvirc/kernel/KviCustomToolBarManager.h +++ b/src/kvirc/kernel/KviCustomToolBarManager.h @@ -28,9 +28,9 @@ #include "KviPointerHashTable.h" #ifdef COMPILE_ON_WINDOWS - #include "KviCustomToolBarDescriptor.h" +#include "KviCustomToolBarDescriptor.h" #else - class KviCustomToolBarDescriptor; +class KviCustomToolBarDescriptor; #endif class KviCustomToolBar; @@ -40,29 +40,31 @@ class KVIRC_API KviCustomToolBarManager protected: KviCustomToolBarManager(); ~KviCustomToolBarManager(); + protected: static KviCustomToolBarManager * m_pInstance; - KviPointerHashTable * m_pDescriptors; + KviPointerHashTable * m_pDescriptors; + public: - static KviCustomToolBarManager * instance(){ return m_pInstance; }; + static KviCustomToolBarManager * instance() { return m_pInstance; }; static void init(); static void done(); void clear(); - int descriptorCount(){ return m_pDescriptors->count(); }; + int descriptorCount() { return m_pDescriptors->count(); }; int visibleToolBarCount(); - QString idForNewToolBar(const QString &szTemplate); - KviPointerHashTable * descriptors(){ return m_pDescriptors; }; + QString idForNewToolBar(const QString & szTemplate); + KviPointerHashTable * descriptors() { return m_pDescriptors; }; KviCustomToolBar * firstExistingToolBar(); - KviCustomToolBarDescriptor * create(const QString &szId,const QString &szLabelCode); - KviCustomToolBarDescriptor * find(const QString &szId){ return m_pDescriptors->find(szId); }; + KviCustomToolBarDescriptor * create(const QString & szId, const QString & szLabelCode); + KviCustomToolBarDescriptor * find(const QString & szId) { return m_pDescriptors->find(szId); }; KviCustomToolBarDescriptor * findDescriptorByInternalId(int id); void updateVisibleToolBars(); void createToolBarsVisibleAtStartup(); void storeVisibilityState(); - bool renameDescriptor(const QString &szId,const QString &szNewId,const QString &szNewLabelCode); - bool destroyDescriptor(const QString &szId); - void load(const QString &szFileName); - void save(const QString &szFileName); + bool renameDescriptor(const QString & szId, const QString & szNewId, const QString & szNewLabelCode); + bool destroyDescriptor(const QString & szId); + void load(const QString & szFileName); + void save(const QString & szFileName); }; #endif //_KVI_CUSTOMTOOLBARMANAGER_H_ diff --git a/src/kvirc/kernel/KviDefaultScript.cpp b/src/kvirc/kernel/KviDefaultScript.cpp index 82ea73d1e..6736a92be 100644 --- a/src/kvirc/kernel/KviDefaultScript.cpp +++ b/src/kvirc/kernel/KviDefaultScript.cpp @@ -44,13 +44,13 @@ KviDefaultScriptManager * KviDefaultScriptManager::m_pSelf = NULL; unsigned int KviDefaultScriptManager::m_uCount = 0; KviDefaultScriptManager::KviDefaultScriptManager() -: QObject() + : QObject() { m_bNoNeedToRestore = false; // Check if versions' file exists in personal settings QString szLocal; - g_pApp->getLocalKvircDirectory(szLocal,KviApplication::Config,"default.kvc"); + g_pApp->getLocalKvircDirectory(szLocal, KviApplication::Config, "default.kvc"); if(!QFile::exists(szLocal)) { @@ -58,15 +58,19 @@ KviDefaultScriptManager::KviDefaultScriptManager() { // new installation, create it QString szGlobal; - g_pApp->getGlobalKvircDirectory(szGlobal,KviApplication::DefScript,"default.kvc"); - QFile::copy(szGlobal,szLocal); + g_pApp->getGlobalKvircDirectory(szGlobal, KviApplication::DefScript, "default.kvc"); + QFile::copy(szGlobal, szLocal); - m_bConfigFileMissing=false; - } else { + m_bConfigFileMissing = false; + } + else + { // update from a < 4.2.0 (previous installation) m_bConfigFileMissing = true; } - } else { + } + else + { m_bConfigFileMissing = false; } } @@ -98,12 +102,12 @@ bool KviDefaultScriptManager::isDefscriptUpToDate() if(m_bConfigFileMissing) return false; - g_pApp->getGlobalKvircDirectory(szConfig,KviApplication::DefScript,"default.kvc"); - KviConfigurationFile oConfig(szConfig,KviConfigurationFile::Read); + g_pApp->getGlobalKvircDirectory(szConfig, KviApplication::DefScript, "default.kvc"); + KviConfigurationFile oConfig(szConfig, KviConfigurationFile::Read); szTmp = oConfig.readEntry("Date"); - QDate cfgDate = QDate::fromString(szTmp,"yyyy-MM-dd"); - QDate userDate = QDate::fromString(m_szDate,"yyyy-MM-dd"); + QDate cfgDate = QDate::fromString(szTmp, "yyyy-MM-dd"); + QDate userDate = QDate::fromString(m_szDate, "yyyy-MM-dd"); return (cfgDate == userDate); } @@ -111,7 +115,7 @@ bool KviDefaultScriptManager::isDefscriptUpToDate() void KviDefaultScriptManager::restore() { QString szGlobal, szError, szLocal; - g_pApp->getGlobalKvircDirectory(szGlobal,KviApplication::DefScript,"default.kvc"); + g_pApp->getGlobalKvircDirectory(szGlobal, KviApplication::DefScript, "default.kvc"); m_pDialog = new KviDefaultScriptDialog(); if(m_pDialog->exec() == QDialog::Rejected) @@ -121,15 +125,15 @@ void KviDefaultScriptManager::restore() } // Check data - if(!compareVersions(szGlobal,&szError)) + if(!compareVersions(szGlobal, &szError)) { - QMessageBox::warning(0,__tr2qs("Restore Default - KVIrc"),szError,QMessageBox::Ok,QMessageBox::NoButton,QMessageBox::NoButton); + QMessageBox::warning(0, __tr2qs("Restore Default - KVIrc"), szError, QMessageBox::Ok, QMessageBox::NoButton, QMessageBox::NoButton); return; } if(m_bNoNeedToRestore) { - if(QMessageBox::warning(0,__tr2qs("Restore Default - KVIrc"),szError,QMessageBox::Yes, QMessageBox::No) != QMessageBox::Yes) + if(QMessageBox::warning(0, __tr2qs("Restore Default - KVIrc"), szError, QMessageBox::Yes, QMessageBox::No) != QMessageBox::Yes) return; } @@ -139,8 +143,8 @@ void KviDefaultScriptManager::restore() void KviDefaultScriptManager::restoreInternal() { QString szConfig, szTmp; - g_pApp->getGlobalKvircDirectory(szConfig,KviApplication::DefScript,"default.kvc"); - KviConfigurationFile oConfig(szConfig,KviConfigurationFile::Read); + g_pApp->getGlobalKvircDirectory(szConfig, KviApplication::DefScript, "default.kvc"); + KviConfigurationFile oConfig(szConfig, KviConfigurationFile::Read); m_szVersion = oConfig.readEntry("Version"); m_szDate = oConfig.readEntry("Date"); @@ -213,12 +217,12 @@ void KviDefaultScriptManager::restoreInternal() } } -#define CHECK(__name,__global,__local) \ - if(KviMiscUtils::compareVersions(__global,__local) == 1) \ - { \ - if(pszError) \ - *pszError = __tr2qs("There's something wrong in your personal data: my '%1' is %2, while yours is %3").arg(__name,__global,__local); \ - return false; \ +#define CHECK(__name, __global, __local) \ + if(KviMiscUtils::compareVersions(__global, __local) == 1) \ + { \ + if(pszError) \ + *pszError = __tr2qs("There's something wrong in your personal data: my '%1' is %2, while yours is %3").arg(__name, __global, __local); \ + return false; \ } bool KviDefaultScriptManager::compareVersions(QString & szConfig, QString * pszError) @@ -228,12 +232,12 @@ bool KviDefaultScriptManager::compareVersions(QString & szConfig, QString * pszE if(pszError) *pszError = ""; - KviConfigurationFile oConfig(szConfig,KviConfigurationFile::Read); + KviConfigurationFile oConfig(szConfig, KviConfigurationFile::Read); szTmp = "Date"; szTmp2 = oConfig.readEntry(szTmp); - QDate cfgDate = QDate::fromString(szTmp2,"yyyy-MM-dd"); - QDate userDate = QDate::fromString(m_szDate,"yyyy-MM-dd"); + QDate cfgDate = QDate::fromString(szTmp2, "yyyy-MM-dd"); + QDate userDate = QDate::fromString(m_szDate, "yyyy-MM-dd"); if(cfgDate <= userDate) { @@ -245,51 +249,51 @@ bool KviDefaultScriptManager::compareVersions(QString & szConfig, QString * pszE szTmp = "Version"; szTmp2 = oConfig.readEntry(szTmp); - CHECK(szTmp,szTmp2,m_szVersion) + CHECK(szTmp, szTmp2, m_szVersion) szTmp = "ActionVersion"; szTmp2 = oConfig.readEntry(szTmp); - CHECK(szTmp,szTmp2,m_szAction) + CHECK(szTmp, szTmp2, m_szAction) szTmp = "AddonVersion"; szTmp2 = oConfig.readEntry(szTmp); - CHECK(szTmp,szTmp2,m_szAction) + CHECK(szTmp, szTmp2, m_szAction) szTmp = "AliasVersion"; szTmp2 = oConfig.readEntry(szTmp); - CHECK(szTmp,szTmp2,m_szAlias) + CHECK(szTmp, szTmp2, m_szAlias) szTmp = "ClassVersion"; szTmp2 = oConfig.readEntry(szTmp); - CHECK(szTmp,szTmp2,m_szClass) + CHECK(szTmp, szTmp2, m_szClass) szTmp = "EventVersion"; szTmp2 = oConfig.readEntry(szTmp); - CHECK(szTmp,szTmp2,m_szEvent) + CHECK(szTmp, szTmp2, m_szEvent) szTmp = "PopupVersion"; szTmp2 = oConfig.readEntry(szTmp); - CHECK(szTmp,szTmp2,m_szPopup) + CHECK(szTmp, szTmp2, m_szPopup) szTmp = "RawVersion"; szTmp2 = oConfig.readEntry(szTmp); - CHECK(szTmp,szTmp2,m_szRaw) + CHECK(szTmp, szTmp2, m_szRaw) szTmp = "ToolbarVersion"; szTmp2 = oConfig.readEntry(szTmp); - CHECK(szTmp,szTmp2,m_szToolbar) + CHECK(szTmp, szTmp2, m_szToolbar) return true; } void KviDefaultScriptManager::load(const QString & szConfigFile) { - KviConfigurationFile cfg(szConfigFile,KviConfigurationFile::Read); + KviConfigurationFile cfg(szConfigFile, KviConfigurationFile::Read); loadInternal(&cfg); } -#define IS_EMPTY(__var,__default) \ - if(__var.isEmpty()) \ +#define IS_EMPTY(__var, __default) \ + if(__var.isEmpty()) \ __var = __default; void KviDefaultScriptManager::loadEmptyConfig() @@ -316,49 +320,49 @@ void KviDefaultScriptManager::loadInternal(KviConfigurationFile * pCfg) QString szEmptyVersion = QString("0.0.0"); szTmp = "Version"; - m_szVersion = pCfg->readEntry(szTmp,szEmptyVersion); - IS_EMPTY(m_szVersion,szEmptyVersion) + m_szVersion = pCfg->readEntry(szTmp, szEmptyVersion); + IS_EMPTY(m_szVersion, szEmptyVersion) szTmp = "Date"; - m_szDate = pCfg->readEntry(szTmp,szEmptyDate); - IS_EMPTY(m_szDate,szEmptyDate) + m_szDate = pCfg->readEntry(szTmp, szEmptyDate); + IS_EMPTY(m_szDate, szEmptyDate) szTmp = "ActionVersion"; - m_szAction = pCfg->readEntry(szTmp,szEmptyVersion); - IS_EMPTY(m_szAction,szEmptyVersion) + m_szAction = pCfg->readEntry(szTmp, szEmptyVersion); + IS_EMPTY(m_szAction, szEmptyVersion) szTmp = "AddonVersion"; - m_szAddon = pCfg->readEntry(szTmp,szEmptyVersion); - IS_EMPTY(m_szAddon,szEmptyVersion) + m_szAddon = pCfg->readEntry(szTmp, szEmptyVersion); + IS_EMPTY(m_szAddon, szEmptyVersion) szTmp = "AliasVersion"; - m_szAlias = pCfg->readEntry(szTmp,szEmptyVersion); - IS_EMPTY(m_szAlias,szEmptyVersion) + m_szAlias = pCfg->readEntry(szTmp, szEmptyVersion); + IS_EMPTY(m_szAlias, szEmptyVersion) szTmp = "ClassVersion"; - m_szClass = pCfg->readEntry(szTmp,szEmptyVersion); - IS_EMPTY(m_szClass,szEmptyVersion) + m_szClass = pCfg->readEntry(szTmp, szEmptyVersion); + IS_EMPTY(m_szClass, szEmptyVersion) szTmp = "EventVersion"; - m_szEvent = pCfg->readEntry(szTmp,szEmptyVersion); - IS_EMPTY(m_szEvent,szEmptyVersion) + m_szEvent = pCfg->readEntry(szTmp, szEmptyVersion); + IS_EMPTY(m_szEvent, szEmptyVersion) szTmp = "PopupVersion"; - m_szPopup = pCfg->readEntry(szTmp,szEmptyVersion); - IS_EMPTY(m_szPopup,szEmptyVersion) + m_szPopup = pCfg->readEntry(szTmp, szEmptyVersion); + IS_EMPTY(m_szPopup, szEmptyVersion) szTmp = "RawVersion"; - m_szRaw = pCfg->readEntry(szTmp,szEmptyVersion); - IS_EMPTY(m_szRaw,szEmptyVersion) + m_szRaw = pCfg->readEntry(szTmp, szEmptyVersion); + IS_EMPTY(m_szRaw, szEmptyVersion) szTmp = "ToolbarVersion"; - m_szToolbar = pCfg->readEntry(szTmp,szEmptyVersion); - IS_EMPTY(m_szToolbar,szEmptyVersion) + m_szToolbar = pCfg->readEntry(szTmp, szEmptyVersion); + IS_EMPTY(m_szToolbar, szEmptyVersion) } void KviDefaultScriptManager::save(const QString & szConfigFile) { - KviConfigurationFile cfg(szConfigFile,KviConfigurationFile::Write); + KviConfigurationFile cfg(szConfigFile, KviConfigurationFile::Write); cfg.clear(); saveInternal(&cfg); } @@ -368,39 +372,38 @@ void KviDefaultScriptManager::saveInternal(KviConfigurationFile * pCfg) QString szTmp; szTmp = "Version"; - pCfg->writeEntry(szTmp,m_szVersion); + pCfg->writeEntry(szTmp, m_szVersion); szTmp = "Date"; - pCfg->writeEntry(szTmp,m_szDate); + pCfg->writeEntry(szTmp, m_szDate); szTmp = "ActionVersion"; - pCfg->writeEntry(szTmp,m_szAction); + pCfg->writeEntry(szTmp, m_szAction); szTmp = "AddonVersion"; - pCfg->writeEntry(szTmp,m_szAddon); + pCfg->writeEntry(szTmp, m_szAddon); szTmp = "AliasVersion"; - pCfg->writeEntry(szTmp,m_szAlias); + pCfg->writeEntry(szTmp, m_szAlias); szTmp = "ClassVersion"; - pCfg->writeEntry(szTmp,m_szClass); + pCfg->writeEntry(szTmp, m_szClass); szTmp = "EventVersion"; - pCfg->writeEntry(szTmp,m_szEvent); + pCfg->writeEntry(szTmp, m_szEvent); szTmp = "PopupVersion"; - pCfg->writeEntry(szTmp,m_szPopup); + pCfg->writeEntry(szTmp, m_szPopup); szTmp = "RawVersion"; - pCfg->writeEntry(szTmp,m_szRaw); + pCfg->writeEntry(szTmp, m_szRaw); szTmp = "ToolbarVersion"; - pCfg->writeEntry(szTmp,m_szToolbar); + pCfg->writeEntry(szTmp, m_szToolbar); } - KviDefaultScriptDialog::KviDefaultScriptDialog() -: QDialog() + : QDialog() { setObjectName("restore_default_script"); setWindowTitle(__tr2qs("Restore Default - KVIrc")); @@ -411,86 +414,86 @@ KviDefaultScriptDialog::KviDefaultScriptDialog() QLabel * pLabel = new QLabel(this); pLabel->setText(__tr2qs("You are about to restore the default script.\nAny script changes you have made will be erased if\nrestore \"All\" or \"Clear custom scripts\" are selected.\n\nDo you wish to proceed?\n")); - pLayout->addWidget(pLabel,0,0,1,4); + pLayout->addWidget(pLabel, 0, 0, 1, 4); // Construct the advanced widget - m_pAdvanced = new QGroupBox(__tr2qs("Select the Items to Restore"),this); + m_pAdvanced = new QGroupBox(__tr2qs("Select the Items to Restore"), this); m_pAdvanced->hide(); QGridLayout * pAdvLayout = new QGridLayout(m_pAdvanced); - pAdvLayout->setContentsMargins(0,10,0,0); - pLayout->addWidget(m_pAdvanced,1,0,1,4); + pAdvLayout->setContentsMargins(0, 10, 0, 0); + pLayout->addWidget(m_pAdvanced, 1, 0, 1, 4); - m_pAll = new QCheckBox(__tr2qs("All"),m_pAdvanced); + m_pAll = new QCheckBox(__tr2qs("All"), m_pAdvanced); m_pAll->setChecked(true); - pAdvLayout->addWidget(m_pAll,0,0); - connect(m_pAll,SIGNAL(clicked(bool)),this,SLOT(toggleAll(bool))); + pAdvLayout->addWidget(m_pAll, 0, 0); + connect(m_pAll, SIGNAL(clicked(bool)), this, SLOT(toggleAll(bool))); - m_pData = new QCheckBox(__tr2qs("Clear custom scripts"),m_pAdvanced); + m_pData = new QCheckBox(__tr2qs("Clear custom scripts"), m_pAdvanced); m_pData->setChecked(false); m_pData->setEnabled(true); - pAdvLayout->addWidget(m_pData,0,1); + pAdvLayout->addWidget(m_pData, 0, 1); pLabel = new QLabel(m_pAdvanced); - pAdvLayout->addWidget(pLabel,1,1,1,2); + pAdvLayout->addWidget(pLabel, 1, 1, 1, 2); - m_pAction = new QCheckBox(__tr2qs("Actions"),m_pAdvanced); + m_pAction = new QCheckBox(__tr2qs("Actions"), m_pAdvanced); m_pAction->setChecked(true); m_pAction->setEnabled(false); - pAdvLayout->addWidget(m_pAction,2,0); + pAdvLayout->addWidget(m_pAction, 2, 0); - m_pAddon = new QCheckBox(__tr2qs("Addons"),m_pAdvanced); + m_pAddon = new QCheckBox(__tr2qs("Addons"), m_pAdvanced); m_pAddon->setChecked(true); m_pAddon->setEnabled(false); - pAdvLayout->addWidget(m_pAddon,2,1); + pAdvLayout->addWidget(m_pAddon, 2, 1); - m_pAlias = new QCheckBox(__tr2qs("Aliases"),m_pAdvanced); + m_pAlias = new QCheckBox(__tr2qs("Aliases"), m_pAdvanced); m_pAlias->setChecked(true); m_pAlias->setEnabled(false); - pAdvLayout->addWidget(m_pAlias,3,0); + pAdvLayout->addWidget(m_pAlias, 3, 0); - m_pClass = new QCheckBox(__tr2qs("Classes"),m_pAdvanced); + m_pClass = new QCheckBox(__tr2qs("Classes"), m_pAdvanced); m_pClass->setChecked(true); m_pClass->setEnabled(false); - pAdvLayout->addWidget(m_pClass,3,1); + pAdvLayout->addWidget(m_pClass, 3, 1); - m_pEvent = new QCheckBox(__tr2qs("Events"),m_pAdvanced); + m_pEvent = new QCheckBox(__tr2qs("Events"), m_pAdvanced); m_pEvent->setChecked(true); m_pEvent->setEnabled(false); - pAdvLayout->addWidget(m_pEvent,4,0); + pAdvLayout->addWidget(m_pEvent, 4, 0); - m_pPopup = new QCheckBox(__tr2qs("Popups"),m_pAdvanced); + m_pPopup = new QCheckBox(__tr2qs("Popups"), m_pAdvanced); m_pPopup->setChecked(true); m_pPopup->setEnabled(false); - pAdvLayout->addWidget(m_pPopup,4,1); + pAdvLayout->addWidget(m_pPopup, 4, 1); - m_pRaw = new QCheckBox(__tr2qs("RAW events"),m_pAdvanced); + m_pRaw = new QCheckBox(__tr2qs("RAW events"), m_pAdvanced); m_pRaw->setChecked(true); m_pRaw->setEnabled(false); - pAdvLayout->addWidget(m_pRaw,5,0); + pAdvLayout->addWidget(m_pRaw, 5, 0); - m_pToolbar = new QCheckBox(__tr2qs("Toolbars"),m_pAdvanced); + m_pToolbar = new QCheckBox(__tr2qs("Toolbars"), m_pAdvanced); m_pToolbar->setChecked(true); m_pToolbar->setEnabled(false); - pAdvLayout->addWidget(m_pToolbar,5,1); + pAdvLayout->addWidget(m_pToolbar, 5, 1); m_pAdvanced->setLayout(pAdvLayout); QPixmap * pImage = g_pIconManager->getSmallIcon(150); - m_pAdvancedButton = new QPushButton(*pImage,__tr2qs("Advanced..."),this); - connect(m_pAdvancedButton,SIGNAL(clicked()),this,SLOT(advanced())); - pLayout->addWidget(m_pAdvancedButton,2,0,1,1); + m_pAdvancedButton = new QPushButton(*pImage, __tr2qs("Advanced..."), this); + connect(m_pAdvancedButton, SIGNAL(clicked()), this, SLOT(advanced())); + pLayout->addWidget(m_pAdvancedButton, 2, 0, 1, 1); pImage = g_pIconManager->getSmallIcon(44); - QPushButton * pCancel = new QPushButton(*pImage,__tr2qs("Cancel"),this); + QPushButton * pCancel = new QPushButton(*pImage, __tr2qs("Cancel"), this); pCancel->setDefault(true); - connect(pCancel,SIGNAL(clicked()),this,SLOT(reject())); - pLayout->addWidget(pCancel,2,2,1,1); + connect(pCancel, SIGNAL(clicked()), this, SLOT(reject())); + pLayout->addWidget(pCancel, 2, 2, 1, 1); pImage = g_pIconManager->getSmallIcon(43); - QPushButton * pAccept = new QPushButton(*pImage,__tr2qs("Restore"),this); - connect(pAccept,SIGNAL(clicked()),this,SLOT(accept())); - pLayout->addWidget(pAccept,2,3,1,1); + QPushButton * pAccept = new QPushButton(*pImage, __tr2qs("Restore"), this); + connect(pAccept, SIGNAL(clicked()), this, SLOT(accept())); + pLayout->addWidget(pAccept, 2, 3, 1, 1); } KviDefaultScriptDialog::~KviDefaultScriptDialog() diff --git a/src/kvirc/kernel/KviDefaultScript.h b/src/kvirc/kernel/KviDefaultScript.h index 0806efaa9..800edb42d 100644 --- a/src/kvirc/kernel/KviDefaultScript.h +++ b/src/kvirc/kernel/KviDefaultScript.h @@ -58,22 +58,24 @@ public: * \brief Destroys the default script manager */ ~KviDefaultScriptManager(); + private: static KviDefaultScriptManager * m_pSelf; - static unsigned int m_uCount; - bool m_bNoNeedToRestore; - bool m_bConfigFileMissing; - KviDefaultScriptDialog * m_pDialog; - QString m_szVersion; - QString m_szDate; - QString m_szAction; - QString m_szAddon; - QString m_szAlias; - QString m_szClass; - QString m_szEvent; - QString m_szPopup; - QString m_szRaw; - QString m_szToolbar; + static unsigned int m_uCount; + bool m_bNoNeedToRestore; + bool m_bConfigFileMissing; + KviDefaultScriptDialog * m_pDialog; + QString m_szVersion; + QString m_szDate; + QString m_szAction; + QString m_szAddon; + QString m_szAlias; + QString m_szClass; + QString m_szEvent; + QString m_szPopup; + QString m_szRaw; + QString m_szToolbar; + public: /** * \brief Initializes the class instance @@ -91,13 +93,13 @@ public: * \brief Returns the instance of the class * \return KviDefaultScriptManager * */ - static inline KviDefaultScriptManager * instance(){ return m_pSelf; } + static inline KviDefaultScriptManager * instance() { return m_pSelf; } /** * \brief Returns the number of instances of the class * \return unsigned int */ - unsigned int count(){ return m_uCount; }; + unsigned int count() { return m_uCount; }; /** * \brief Checks if the local defscript is up to date @@ -141,6 +143,7 @@ public: * \return void */ void save(const QString & szConfigFile); + private: /** * \brief Restores the default script @@ -186,6 +189,7 @@ class KVIRC_API KviDefaultScriptDialog : public QDialog { Q_OBJECT friend class KviDefaultScriptManager; + public: /** * \brief Constructs the default script dialog @@ -197,6 +201,7 @@ public: * \brief Destroys the default script dialog */ ~KviDefaultScriptDialog(); + protected: QGroupBox * m_pAdvanced; QCheckBox * m_pAll; diff --git a/src/kvirc/kernel/KviFileTransfer.cpp b/src/kvirc/kernel/KviFileTransfer.cpp index 14edba353..cf16cc3e1 100644 --- a/src/kvirc/kernel/KviFileTransfer.cpp +++ b/src/kvirc/kernel/KviFileTransfer.cpp @@ -33,9 +33,8 @@ static KviFileTransferManager * g_pFileTransferManager = 0; - KviFileTransferManager::KviFileTransferManager() -: QObject() + : QObject() { m_pTransferList = 0; m_pTransferWindow = 0; @@ -48,7 +47,8 @@ KviFileTransferManager::~KviFileTransferManager() KviFileTransferManager * KviFileTransferManager::instance() { - if(!g_pFileTransferManager) { + if(!g_pFileTransferManager) + { g_pFileTransferManager = new KviFileTransferManager(); } return g_pFileTransferManager; @@ -56,7 +56,8 @@ KviFileTransferManager * KviFileTransferManager::instance() void KviFileTransferManager::cleanup() { - if(g_pFileTransferManager) { + if(g_pFileTransferManager) + { delete g_pFileTransferManager; g_pFileTransferManager = 0; } @@ -78,14 +79,15 @@ void KviFileTransferManager::killTerminatedTransfers() KviPointerList l; l.setAutoDelete(false); - for(KviFileTransfer * f = m_pTransferList->first();f;f = m_pTransferList->next()) + for(KviFileTransfer * f = m_pTransferList->first(); f; f = m_pTransferList->next()) { - if(f->terminated()) { + if(f->terminated()) + { l.append(f); } } - for(KviFileTransfer * d = l.first();d;d = l.next()) + for(KviFileTransfer * d = l.first(); d; d = l.next()) d->die(); } } @@ -99,7 +101,7 @@ void KviFileTransferManager::invokeTransferWindow(bool bCreateMinimized, bool bN szScript.append(" -m"); if(bNoRaise) szScript.append(" -n"); - KviKvsScript::run(szScript,g_pActiveWindow); + KviKvsScript::run(szScript, g_pActiveWindow); } } @@ -134,10 +136,8 @@ void KviFileTransferManager::unregisterTransfer(KviFileTransfer * t) } } - - KviFileTransfer::KviFileTransfer() -: QObject() + : QObject() { m_pDisplayItem = 0; m_iId = g_pApp->getGloballyUniqueId(); @@ -152,13 +152,14 @@ KviFileTransfer::~KviFileTransfer() KviWindow * KviFileTransfer::outputWindow() { KviWindow * o = transferWindow(); - if(o)return o; + if(o) + return o; return g_pActiveWindow; } void KviFileTransfer::invokeTransferWindow(bool bCreateMinimized, bool bNoRaise) { - manager()->invokeTransferWindow(bCreateMinimized,bNoRaise); + manager()->invokeTransferWindow(bCreateMinimized, bNoRaise); } QString KviFileTransfer::localFileName() @@ -188,7 +189,8 @@ int KviFileTransfer::displayHeight(int iLineSpacing) void KviFileTransfer::displayUpdate() { - if(m_pDisplayItem)m_pDisplayItem->displayUpdate(); + if(m_pDisplayItem) + m_pDisplayItem->displayUpdate(); } void KviFileTransfer::die() diff --git a/src/kvirc/kernel/KviFileTransfer.h b/src/kvirc/kernel/KviFileTransfer.h index faafc21f4..cf875ba64 100644 --- a/src/kvirc/kernel/KviFileTransfer.h +++ b/src/kvirc/kernel/KviFileTransfer.h @@ -39,7 +39,6 @@ class QPainter; // This is for the external extension #define KVI_FILE_TRANSFER_WINDOW_EXTENSION_NAME "File transfer extension" - class KVIRC_API KviFileTransferManager : public QObject { friend class KviApplication; @@ -49,25 +48,27 @@ class KVIRC_API KviFileTransferManager : public QObject public: KviFileTransferManager(); ~KviFileTransferManager(); + protected: KviPointerList * m_pTransferList; - KviWindow * m_pTransferWindow; + KviWindow * m_pTransferWindow; + protected: static void cleanup(); void registerTransfer(KviFileTransfer * t); void unregisterTransfer(KviFileTransfer * t); - void setTransferWindow(KviWindow * wnd){ m_pTransferWindow = wnd; }; + void setTransferWindow(KviWindow * wnd) { m_pTransferWindow = wnd; }; public: // might be zero! - KviWindow * transferWindow(){ return m_pTransferWindow; }; + KviWindow * transferWindow() { return m_pTransferWindow; }; static KviFileTransferManager * instance(); - KviPointerList * transferList(){ return m_pTransferList; }; + KviPointerList * transferList() { return m_pTransferList; }; void invokeTransferWindow(bool bCreateMinimized = false, bool bNoRaise = false); void killAllTransfers(); void killTerminatedTransfers(); signals: - void transferRegistered(KviFileTransfer *t); - void transferUnregistering(KviFileTransfer *t); + void transferRegistered(KviFileTransfer * t); + void transferUnregistering(KviFileTransfer * t); }; #define COLUMN_TRANSFERTYPE 0 @@ -80,20 +81,22 @@ class KVIRC_API KviFileTransfer : public QObject public: KviFileTransfer(); ~KviFileTransfer(); + protected: - int m_iId; - KviTalTableWidgetItemEx * m_pDisplayItem; + int m_iId; + KviTalTableWidgetItemEx * m_pDisplayItem; + public: // This is called by KviFileTransferItem at any time - void setDisplayItem(KviTalTableWidgetItemEx * i){ m_pDisplayItem = i; }; - int id(){ return m_iId; }; + void setDisplayItem(KviTalTableWidgetItemEx * i) { m_pDisplayItem = i; }; + int id() { return m_iId; }; // this is just a convenience function : it's equivalent to !active() bool terminated(); // This may be used to invoke the transfer window void invokeTransferWindow(bool bCreateMinimized = false, bool bNoRaise = false); - KviFileTransferManager * manager(){ return KviFileTransferManager::instance(); }; + KviFileTransferManager * manager() { return KviFileTransferManager::instance(); }; // this returns the pointer to the transfer window : may be 0! - KviWindow * transferWindow(){ return manager()->transferWindow(); }; + KviWindow * transferWindow() { return manager()->transferWindow(); }; // this returns transferWindow() if not 0, otherwise the application's active window KviWindow * outputWindow(); @@ -102,7 +105,7 @@ public: // this must be implemented by the transfer virtual bool active() = 0; - virtual void displayPaint(QPainter * p,int column, QRect rect) = 0; + virtual void displayPaint(QPainter * p, int column, QRect rect) = 0; virtual QString tipText(); virtual QString localFileName(); virtual QString retryCommand(); diff --git a/src/kvirc/kernel/KviHtmlGenerator.cpp b/src/kvirc/kernel/KviHtmlGenerator.cpp index 8ff72fd4a..f82ae217d 100644 --- a/src/kvirc/kernel/KviHtmlGenerator.cpp +++ b/src/kvirc/kernel/KviHtmlGenerator.cpp @@ -33,14 +33,14 @@ namespace KviHtmlGenerator { QString convertToHtml(const QString & szText, bool bEscape) { - QString szResult = ""; - bool bCurBold = false; - bool bCurUnderline = false; - bool bIgnoreIcons = false; - bool bShowIcons = KVI_OPTION_BOOL(KviOption_boolDrawEmoticons); + QString szResult = ""; + bool bCurBold = false; + bool bCurUnderline = false; + bool bIgnoreIcons = false; + bool bShowIcons = KVI_OPTION_BOOL(KviOption_boolDrawEmoticons); unsigned char uCurFore = Foreground; unsigned char uCurBack = Background; - unsigned int uIdx = 0; + unsigned int uIdx = 0; QString szTxt = bEscape ? KviQString::toHtmlEscaped(szText) : szText; @@ -50,30 +50,26 @@ namespace KviHtmlGenerator unsigned int uStart = uIdx; while( - (c != KviControlCodes::Color) && - (c != KviControlCodes::Bold) && - (c != KviControlCodes::Underline) && - (c != KviControlCodes::Reverse) && - (c != KviControlCodes::Reset) && - (c != KviControlCodes::Icon) && - ((c != ':') || bIgnoreIcons) && - ((c != ';') || bIgnoreIcons) && - ((c != '=') || bIgnoreIcons)) + (c != KviControlCodes::Color) && (c != KviControlCodes::Bold) && (c != KviControlCodes::Underline) && (c != KviControlCodes::Reverse) && (c != KviControlCodes::Reset) && (c != KviControlCodes::Icon) && ((c != ':') || bIgnoreIcons) && ((c != ';') || bIgnoreIcons) && ((c != '=') || bIgnoreIcons)) { bIgnoreIcons = false; if(c == '&') { //look for an html entity - QString szEntity = szTxt.mid((int)uIdx,6); + QString szEntity = szTxt.mid((int)uIdx, 6); if(szEntity == """) { uIdx += 5; - } else { + } + else + { szEntity.truncate(5); if(szEntity == "&") { - uIdx += 4; - } else { + uIdx += 4; + } + else + { szEntity.truncate(4); if(szEntity == "<" || szEntity == ">") uIdx += 3; @@ -108,7 +104,9 @@ namespace KviHtmlGenerator { szResult.append(""); - szResult.append(szTxt.mid(uStart,iLen)); + szResult.append(szTxt.mid(uStart, iLen)); if(bOpened) szResult.append(""); @@ -181,13 +183,15 @@ namespace KviHtmlGenerator ++uIdx; unsigned char ucFore; unsigned char ucBack; - uIdx = KviControlCodes::getUnicodeColorBytes(szTxt,uIdx,&ucFore,&ucBack); + uIdx = KviControlCodes::getUnicodeColorBytes(szTxt, uIdx, &ucFore, &ucBack); if(ucFore != KviControlCodes::NoChange) { uCurFore = ucFore; if(ucBack != KviControlCodes::NoChange) uCurBack = ucBack; - } else { + } + else + { // only a CTRL+K uCurBack = Background; uCurFore = Foreground; @@ -244,16 +248,18 @@ namespace KviHtmlGenerator if(uIdx < (unsigned int)szTxt.length()) { //look up for a space - if(szTxt[(int)uIdx]== ' ') + if(szTxt[(int)uIdx] == ' ') uIsEmoticon++; - } else { + } + else + { //got a smile at the end of the szTxt uIsEmoticon++; } if(uIsEmoticon > 1) { - KviTextIcon * pIcon = g_pTextIconManager->lookupTextIcon(szLookup); + KviTextIcon * pIcon = g_pTextIconManager->lookupTextIcon(szLookup); // do we have that emoticon-icon association ? if(pIcon) { @@ -265,15 +271,21 @@ namespace KviHtmlGenerator szResult.append(KVI_OPTION_MIRCCOLOR(uCurBack).name()); } szResult.append("\" />"); - } else { + } + else + { bIgnoreIcons = true; - uIdx = uIcoStart-1; + uIdx = uIcoStart - 1; } - } else { + } + else + { bIgnoreIcons = true; - uIdx = uIcoStart-1; + uIdx = uIcoStart - 1; } - } else { + } + else + { bIgnoreIcons = true; } @@ -288,7 +300,7 @@ namespace KviHtmlGenerator while((uIdx < (unsigned int)szTxt.length()) && (szTxt[(int)uIdx].unicode() > 32)) uIdx++; - QString szLookup = szTxt.mid(uIcoStart,uIdx - uIcoStart); + QString szLookup = szTxt.mid(uIcoStart, uIdx - uIcoStart); KviTextIcon * pIcon = g_pTextIconManager->lookupTextIcon(szLookup); if(pIcon) @@ -301,7 +313,9 @@ namespace KviHtmlGenerator szResult.append(KVI_OPTION_MIRCCOLOR(uCurBack).name()); } szResult.append("\" />"); - } else { + } + else + { uIdx = uIcoStart; } } diff --git a/src/kvirc/kernel/KviHtmlGenerator.h b/src/kvirc/kernel/KviHtmlGenerator.h index 93eecbe6a..13a64efcf 100644 --- a/src/kvirc/kernel/KviHtmlGenerator.h +++ b/src/kvirc/kernel/KviHtmlGenerator.h @@ -43,7 +43,8 @@ namespace KviHtmlGenerator * \enum DefaultColor * \brief Defines back and foreground colors */ - enum DefaultColor { + enum DefaultColor + { Background = 100, Foreground = 101 }; diff --git a/src/kvirc/kernel/KviIconManager.cpp b/src/kvirc/kernel/KviIconManager.cpp index fbdfb52c9..c8153fdad 100644 --- a/src/kvirc/kernel/KviIconManager.cpp +++ b/src/kvirc/kernel/KviIconManager.cpp @@ -22,7 +22,6 @@ // //============================================================================= - #define _KVI_ICONMANAGER_CPP_ #include "KviIconManager.h" @@ -81,357 +80,356 @@ extern QPixmap * g_pActivityMeterPixmap; KviIconManager * g_pIconManager = 0; -static const char * g_szIconNames[KviIconManager::IconCount] = -{ - "none", // 0 - "close", // 1 - "history", // 2 - "historyoff", // 3 - "usermode", // 4 - "defaulticon", // 5 - "dock", // 6 - "undock", // 7 - "quitapp", // 8 - "console", // 9 - "save", // 10 - "parsererror", // 11 - "parserwarning", // 12 - "server", // 13 - "world", // 14 - "proxy", // 15 - "kvirc", // 16 - "cut", // 17 - "copy", // 18 - "paste", // 19 - "options", // 20 - "socketmessage", // 21 - "socketwarning", // 22 - "socketerror", // 23 - "systemerror", // 24 - "raw", // 25 - "systemwarning", // 26 - "systemmessage", // 27 - "unhandled", // 28 - "serverinfo", // 29 - "motd", // 30 - "channel", // 31 - "hidedoubleview", // 32 - "showdoubleview", // 33 - "op", // 34 - "voice", // 35 - "serverping", // 36 - "showlistview", // 37 - "hidelistview", // 38 - "join", // 39 - "part", // 40 - "unrecognized", // 41 - "topic", // 42 - "accept", // 43 - "discard", // 44 - "ownprivmsg", // 45 - "chanprivmsg", // 46 - "query", // 48 - "queryprivmsg", // 49 - "help", // 49 - "questionmark", // 50 - "ctcpreply", // 51 - "ctcprequestreplied", // 52 - "ctcprequestignored", // 53 - "ctcprequestflood", // 54 - "ctcprequestunknown", // 55 - "action", // 56 - "avatar", // 57 - "quit", // 58 - "split", // 59 - "quitsplit", // 60 - "nick", // 61 - "deop", // 62 - "devoice", // 63 - "mode", // 64 - "key", // 65 - "limit", // 66 - "ban", // 67 - "unban", // 68 - "banexcept", // 69 - "banunexcept", // 70 - "inviteexcept", // 71 - "inviteunexcept", // 72 - "chanmode", // 73 - "chanmodehide", // 74 - "who", // 75 - "editor", // 76 - "dccrequest", // 77 - "dccmsg", // 78 - "dccerror", // 79 - "iconmanager", // 80 - "scriptcenter", // 81 - "bomb", // 82 - "event", // 83 - "eventnohandlers", // 84 - "handler", // 85 - "handlerdisabled", // 86 - "nicknameproblem", // 87 - "whoisuser", // 88 - "whoischannels", // 89 - "whoisidle", // 90 - "whoisserver", // 91 - "whoisother", // 92 - "time", // 93 - "notifyonline", // 94 - "notifyoffline", // 95 - "locked", // 96 - "unlocked", // 97 - "lockedoff", // 98 - "unlockedoff", // 99 - "ownprivmsgcrypted", // 100 - "chanprivmsgcrypted", // 101 - "queryprivmsgcrypted", // 102 - "dccchatmsg", // 103 - "dccchatmsgcrypted", // 104 - "irc", // 105 - "folder", // 106 - "home", // 107 - "bookmarks", // 108 - "spy", // 109 - "kick", // 110 - "linux", // 111 - "links", // 112 - "regusers", // 113 - "trayicon", // 114 - "unsetmode", // 115 - "favorite", // 116 - "toolbar", // 117 - "serverfavorite", // 118 - "log", // 119 - "remove", // 120 - "file", // 121 - "icq", // 122 - "icqyellow", // 123 - "icqred", // 124 - "icqblue", // 125 - "icqlightgreen", // 126 - "icqlightyellow", // 127 - "message", // 128 - "messagesent", // 129 - "bluesquare", // 130 - "violetsquare", // 131 - "yellowsquare", // 132 - "greensquare", // 133 - "blacksquare", // 134 - "redsquare", // 135 - "cyansquare", // 136 - "dkgreensquare", // 137 - "terminal", // 138 - "wallops", // 139 - "invisible", // 140 - "servernotice", // 141 - "gnutella", // 142 - "search", // 143 - "files", // 144 - "newnetwork", // 145 - "package", // 146 - "newserver", // 147 - "idea", // 148 - "colors", // 149 - "gui", // 150 - "ircview", // 151 - "alias", // 152 - "channelnotice", // 153 - "channelnoticecrypted",// 154 - "querynotice", // 155 - "querynoticecrypted", // 156 - "menubar", // 157 - "popup", // 158 - "prologue", // 159 - "epilogue", // 160 - "sharedfiles", // 161 - "ctcpreplyunknown", // 162 - "canvas", // 163 - "nickserv", // 164 - "chanserv", // 165 - "dccvoice", // 166 - "play", // 167 - "record", // 168 - "kickoff", // 169 - "away", // 170 - "ident", // 171 - "homepage", // 172 - "list", // 173 - "halfop", // 174 - "halfdeop", // 175 - "invite", // 176 - "multimedia", // 177 - "user", // 178 - "input", // 179 - "messages", // 180 - "querytrace", // 181 - "nochannel", // 182 - "broadcastprivmsg", // 183 - "broadcastnotice", // 184 - "url", // 185 - "rawevent", // 186 - "raweventnohandlers", // 187 - "mekick", // 188 - "meop", // 189 - "mevoice", // 190 - "medeop", // 191 - "medevoice", // 192 - "mehalfop", // 193 - "medehalfop", // 194 - "meban", // 195 - "meunban", // 196 - "mebanexcept", // 197 - "mebanunexcept", // 198 - "meinviteexcept", // 199 - "meinviteunexcept", // 200 - "classicwindowlist", // 201 - "treewindowlist", // 202 - "ignore", // 203 - "userlist", // 204 - "stats", // 205 - "popupmenu", // 206 - "serverconfiguration", // 207 - "irc0", // 208 - "irc1", // 209 - "irc2", // 210 - "irc3", // 211 - "irc4", // 212 - "irc5", // 213 - "heart", // 214 - "heartbroken", // 215 - "rose", // 215 - "biggrin", // 217 - "biggringlasses", // 218 - "biggrineyes", // 219 - "textexclamative", // 220 - "textpoints", // 221 - "kiss", // 222 - "surprised1", // 223 - "ugly", // 224 - "angry", // 225 - "surprised2", // 226 - "smile", // 227 - "tongue", // 228 - "ssl", // 229 - "cry", // 230 - "eye", // 231 - "deadchannel", // 232 - "deadquery", // 233 - "sound", // 234 - "toolbareditor", // 235 - "textencoding", // 236 - "newitem", // 237 - "newitembywizard", // 238 - "deleteitem", // 239 - "edititem", // 240 - "filetransfer", // 241 - "chanadmin", // 242 - "chanunadmin", // 243 - "mechanadmin", // 244 - "mechanunadmin", // 245 - "userop", // 246 - "deuserop", // 247 - "meuserop", // 248 - "medeuserop", // 249 - "applet", // 250 - "spam", // 251 - "transparent", // 252 - "notifier", // 253 - "userwindow", // 254 - "statusbar", // 255 - "notaway", // 256 - "plus", // 257 - "minus", // 258 - "binarytext", // 259 - "chanowner", // 260 - "chanunowner", // 261 - "mechanowner", // 262 - "mechanunowner", // 263 - "afraid", // 264 - "teeth", // 265 - "sysmonitor", // 266 - "saycolors", // 267 - "finger", // 268 - "highlighttext", // 269 - "tearsmile", // 270 - "shy", // 271 - "servererror", // 272 - "cafe", // 273 - "addons", // 274 - "chanowneraway", // 275 - "opaway", // 276 - "voiceaway", // 277 - "chanadminaway", // 278 - "useropaway", // 279 - "halfopaway", // 280 - "classeditor", // 281 - "demoralized", // 282 - "slurp", // 283 - "namespace", // 284 - "saysmile", // 285 - "saykvs", // 286 - "themeoptions", // 287 - "bug", // 288 - "refresh", // 289 - "theme", // 290 - "screenshot", // 291 - "update", // 292 - "notupdate", // 293 - "failupdate", // 294 - "unreadtext", // 295 - "ircop", // 296 - "ircopaway", // 297 - "deircop", // 298 - "meircop", // 299 - "medeircop", // 300 - "angel", // 301 - "clown", // 302 - "devil", // 303 - "inlove", // 304 - "ninja", // 305 - "pirate", // 306 - "puke", // 307 - "rage", // 308 - "class", // 309 - "classnotbuilt", // 310 - "function", // 311 - "sexmale", // 312 - "sexfemale", // 313 - "ircbot", // 314 - "alienircop", // 315 - "memoserv", // 316 - "info", // 317 - "warning", // 318 - "shield", // 319 - "raweventeditor", // 320 - "eventeditor", // 321 - "actioneditor", // 322 - "aliaseditor", // 323 - "popupeditor", // 324 - "dcc", // 325 - "socket", // 326 - "cake", // 327 - "handily", // 328 - "thumbdown", // 329 - "thumbup", // 330 - "facepalm", // 331 - "identity", // 332 - "nickpopup", // 333 - "tools", // 334 - "favoriteoff", // 335 - "newproxy" // 336 +static const char * g_szIconNames[KviIconManager::IconCount] = { + "none", // 0 + "close", // 1 + "history", // 2 + "historyoff", // 3 + "usermode", // 4 + "defaulticon", // 5 + "dock", // 6 + "undock", // 7 + "quitapp", // 8 + "console", // 9 + "save", // 10 + "parsererror", // 11 + "parserwarning", // 12 + "server", // 13 + "world", // 14 + "proxy", // 15 + "kvirc", // 16 + "cut", // 17 + "copy", // 18 + "paste", // 19 + "options", // 20 + "socketmessage", // 21 + "socketwarning", // 22 + "socketerror", // 23 + "systemerror", // 24 + "raw", // 25 + "systemwarning", // 26 + "systemmessage", // 27 + "unhandled", // 28 + "serverinfo", // 29 + "motd", // 30 + "channel", // 31 + "hidedoubleview", // 32 + "showdoubleview", // 33 + "op", // 34 + "voice", // 35 + "serverping", // 36 + "showlistview", // 37 + "hidelistview", // 38 + "join", // 39 + "part", // 40 + "unrecognized", // 41 + "topic", // 42 + "accept", // 43 + "discard", // 44 + "ownprivmsg", // 45 + "chanprivmsg", // 46 + "query", // 48 + "queryprivmsg", // 49 + "help", // 49 + "questionmark", // 50 + "ctcpreply", // 51 + "ctcprequestreplied", // 52 + "ctcprequestignored", // 53 + "ctcprequestflood", // 54 + "ctcprequestunknown", // 55 + "action", // 56 + "avatar", // 57 + "quit", // 58 + "split", // 59 + "quitsplit", // 60 + "nick", // 61 + "deop", // 62 + "devoice", // 63 + "mode", // 64 + "key", // 65 + "limit", // 66 + "ban", // 67 + "unban", // 68 + "banexcept", // 69 + "banunexcept", // 70 + "inviteexcept", // 71 + "inviteunexcept", // 72 + "chanmode", // 73 + "chanmodehide", // 74 + "who", // 75 + "editor", // 76 + "dccrequest", // 77 + "dccmsg", // 78 + "dccerror", // 79 + "iconmanager", // 80 + "scriptcenter", // 81 + "bomb", // 82 + "event", // 83 + "eventnohandlers", // 84 + "handler", // 85 + "handlerdisabled", // 86 + "nicknameproblem", // 87 + "whoisuser", // 88 + "whoischannels", // 89 + "whoisidle", // 90 + "whoisserver", // 91 + "whoisother", // 92 + "time", // 93 + "notifyonline", // 94 + "notifyoffline", // 95 + "locked", // 96 + "unlocked", // 97 + "lockedoff", // 98 + "unlockedoff", // 99 + "ownprivmsgcrypted", // 100 + "chanprivmsgcrypted", // 101 + "queryprivmsgcrypted", // 102 + "dccchatmsg", // 103 + "dccchatmsgcrypted", // 104 + "irc", // 105 + "folder", // 106 + "home", // 107 + "bookmarks", // 108 + "spy", // 109 + "kick", // 110 + "linux", // 111 + "links", // 112 + "regusers", // 113 + "trayicon", // 114 + "unsetmode", // 115 + "favorite", // 116 + "toolbar", // 117 + "serverfavorite", // 118 + "log", // 119 + "remove", // 120 + "file", // 121 + "icq", // 122 + "icqyellow", // 123 + "icqred", // 124 + "icqblue", // 125 + "icqlightgreen", // 126 + "icqlightyellow", // 127 + "message", // 128 + "messagesent", // 129 + "bluesquare", // 130 + "violetsquare", // 131 + "yellowsquare", // 132 + "greensquare", // 133 + "blacksquare", // 134 + "redsquare", // 135 + "cyansquare", // 136 + "dkgreensquare", // 137 + "terminal", // 138 + "wallops", // 139 + "invisible", // 140 + "servernotice", // 141 + "gnutella", // 142 + "search", // 143 + "files", // 144 + "newnetwork", // 145 + "package", // 146 + "newserver", // 147 + "idea", // 148 + "colors", // 149 + "gui", // 150 + "ircview", // 151 + "alias", // 152 + "channelnotice", // 153 + "channelnoticecrypted", // 154 + "querynotice", // 155 + "querynoticecrypted", // 156 + "menubar", // 157 + "popup", // 158 + "prologue", // 159 + "epilogue", // 160 + "sharedfiles", // 161 + "ctcpreplyunknown", // 162 + "canvas", // 163 + "nickserv", // 164 + "chanserv", // 165 + "dccvoice", // 166 + "play", // 167 + "record", // 168 + "kickoff", // 169 + "away", // 170 + "ident", // 171 + "homepage", // 172 + "list", // 173 + "halfop", // 174 + "halfdeop", // 175 + "invite", // 176 + "multimedia", // 177 + "user", // 178 + "input", // 179 + "messages", // 180 + "querytrace", // 181 + "nochannel", // 182 + "broadcastprivmsg", // 183 + "broadcastnotice", // 184 + "url", // 185 + "rawevent", // 186 + "raweventnohandlers", // 187 + "mekick", // 188 + "meop", // 189 + "mevoice", // 190 + "medeop", // 191 + "medevoice", // 192 + "mehalfop", // 193 + "medehalfop", // 194 + "meban", // 195 + "meunban", // 196 + "mebanexcept", // 197 + "mebanunexcept", // 198 + "meinviteexcept", // 199 + "meinviteunexcept", // 200 + "classicwindowlist", // 201 + "treewindowlist", // 202 + "ignore", // 203 + "userlist", // 204 + "stats", // 205 + "popupmenu", // 206 + "serverconfiguration", // 207 + "irc0", // 208 + "irc1", // 209 + "irc2", // 210 + "irc3", // 211 + "irc4", // 212 + "irc5", // 213 + "heart", // 214 + "heartbroken", // 215 + "rose", // 215 + "biggrin", // 217 + "biggringlasses", // 218 + "biggrineyes", // 219 + "textexclamative", // 220 + "textpoints", // 221 + "kiss", // 222 + "surprised1", // 223 + "ugly", // 224 + "angry", // 225 + "surprised2", // 226 + "smile", // 227 + "tongue", // 228 + "ssl", // 229 + "cry", // 230 + "eye", // 231 + "deadchannel", // 232 + "deadquery", // 233 + "sound", // 234 + "toolbareditor", // 235 + "textencoding", // 236 + "newitem", // 237 + "newitembywizard", // 238 + "deleteitem", // 239 + "edititem", // 240 + "filetransfer", // 241 + "chanadmin", // 242 + "chanunadmin", // 243 + "mechanadmin", // 244 + "mechanunadmin", // 245 + "userop", // 246 + "deuserop", // 247 + "meuserop", // 248 + "medeuserop", // 249 + "applet", // 250 + "spam", // 251 + "transparent", // 252 + "notifier", // 253 + "userwindow", // 254 + "statusbar", // 255 + "notaway", // 256 + "plus", // 257 + "minus", // 258 + "binarytext", // 259 + "chanowner", // 260 + "chanunowner", // 261 + "mechanowner", // 262 + "mechanunowner", // 263 + "afraid", // 264 + "teeth", // 265 + "sysmonitor", // 266 + "saycolors", // 267 + "finger", // 268 + "highlighttext", // 269 + "tearsmile", // 270 + "shy", // 271 + "servererror", // 272 + "cafe", // 273 + "addons", // 274 + "chanowneraway", // 275 + "opaway", // 276 + "voiceaway", // 277 + "chanadminaway", // 278 + "useropaway", // 279 + "halfopaway", // 280 + "classeditor", // 281 + "demoralized", // 282 + "slurp", // 283 + "namespace", // 284 + "saysmile", // 285 + "saykvs", // 286 + "themeoptions", // 287 + "bug", // 288 + "refresh", // 289 + "theme", // 290 + "screenshot", // 291 + "update", // 292 + "notupdate", // 293 + "failupdate", // 294 + "unreadtext", // 295 + "ircop", // 296 + "ircopaway", // 297 + "deircop", // 298 + "meircop", // 299 + "medeircop", // 300 + "angel", // 301 + "clown", // 302 + "devil", // 303 + "inlove", // 304 + "ninja", // 305 + "pirate", // 306 + "puke", // 307 + "rage", // 308 + "class", // 309 + "classnotbuilt", // 310 + "function", // 311 + "sexmale", // 312 + "sexfemale", // 313 + "ircbot", // 314 + "alienircop", // 315 + "memoserv", // 316 + "info", // 317 + "warning", // 318 + "shield", // 319 + "raweventeditor", // 320 + "eventeditor", // 321 + "actioneditor", // 322 + "aliaseditor", // 323 + "popupeditor", // 324 + "dcc", // 325 + "socket", // 326 + "cake", // 327 + "handily", // 328 + "thumbdown", // 329 + "thumbup", // 330 + "facepalm", // 331 + "identity", // 332 + "nickpopup", // 333 + "tools", // 334 + "favoriteoff", // 335 + "newproxy" // 336 }; KviIconWidget::KviIconWidget() -: QWidget(0) + : QWidget(0) { setObjectName("global_icon_widget"); init(); } KviIconWidget::KviIconWidget(QWidget * pPar) -: QWidget(pPar) + : QWidget(pPar) { setObjectName("global_icon_widget"); init(); @@ -450,25 +448,25 @@ void KviIconWidget::init() int i; for(i = 0; i < 20; i++) { - KviCString szTmp(KviCString::Format,"%d",i); - QLabel * pLabel = new QLabel(szTmp.ptr(),this); - pLayout->addWidget(pLabel,0,i + 1); + KviCString szTmp(KviCString::Format, "%d", i); + QLabel * pLabel = new QLabel(szTmp.ptr(), this); + pLayout->addWidget(pLabel, 0, i + 1); } for(i = 0; i < iRows; i++) { - KviCString szTmp(KviCString::Format,"%d",i * 20); - QLabel * pLabel = new QLabel(szTmp.ptr(),this); - pLayout->addWidget(pLabel,i + 1,0); + KviCString szTmp(KviCString::Format, "%d", i * 20); + QLabel * pLabel = new QLabel(szTmp.ptr(), this); + pLayout->addWidget(pLabel, i + 1, 0); } for(i = 0; i < KviIconManager::IconCount; i++) { - KviCString szTmp(KviCString::Format,"%d",i); + KviCString szTmp(KviCString::Format, "%d", i); QLabel * pLabel = new QLabel(this); pLabel->setObjectName(szTmp.ptr()); pLabel->setPixmap(*(g_pIconManager->getSmallIcon(i))); pLabel->installEventFilter(this); pLabel->setAcceptDrops(true); - pLayout->addWidget(pLabel,(i / 20) + 1,(i % 20) + 1); + pLayout->addWidget(pLabel, (i / 20) + 1, (i % 20) + 1); } } @@ -490,7 +488,7 @@ bool KviIconWidget::eventFilter(QObject * pObject, QEvent * pEvent) { KviCString szName = ((QLabel *)pObject)->objectName(); bool bOk; - KviIconManager::SmallIcon eIcon = (KviIconManager::SmallIcon) szName.toInt(&bOk); + KviIconManager::SmallIcon eIcon = (KviIconManager::SmallIcon)szName.toInt(&bOk); if(bOk) emit selected(eIcon); @@ -498,7 +496,9 @@ bool KviIconWidget::eventFilter(QObject * pObject, QEvent * pEvent) { parentWidget()->close(); return true; - } else { + } + else + { if(const QPixmap * pPix = ((QLabel *)pObject)->pixmap()) { QDrag * pDrag = new QDrag(this); @@ -511,15 +511,15 @@ bool KviIconWidget::eventFilter(QObject * pObject, QEvent * pEvent) } } } - } else if(pEvent->type() == QEvent::DragEnter) + } + else if(pEvent->type() == QEvent::DragEnter) { ((QDragEnterEvent *)pEvent)->setAccepted(true); return true; } - return QWidget::eventFilter(pObject,pEvent); + return QWidget::eventFilter(pObject, pEvent); } - KviCachedPixmap::KviCachedPixmap(QPixmap * pPix, const QString & szPath) { m_szPath = szPath; @@ -538,16 +538,15 @@ void KviCachedPixmap::updateLastAccessTime() m_tLastAccess = kvi_unixTime(); } - KviIconManager::KviIconManager() { - int i=0; - for(i=0; i < IconCount; i++) + int i = 0; + for(i = 0; i < IconCount; i++) m_smallIcons[i] = 0; initQResourceBackend(); - m_pCachedImages = new KviPointerHashTable(21,true); + m_pCachedImages = new KviPointerHashTable(21, true); m_pCachedImages->setAutoDelete(true); m_uCacheTotalSize = 0; @@ -558,10 +557,10 @@ KviIconManager::KviIconManager() QString szBuffer; // Load the userchanstate image - g_pApp->findImage(szBuffer,KVI_USERCHANSTATE_IMAGE_NAME); + g_pApp->findImage(szBuffer, KVI_USERCHANSTATE_IMAGE_NAME); g_pUserChanStatePixmap = new QPixmap(szBuffer); - g_pApp->findImage(szBuffer,KVI_ACTIVITYMETER_IMAGE_NAME); + g_pApp->findImage(szBuffer, KVI_ACTIVITYMETER_IMAGE_NAME); g_pActivityMeterPixmap = new QPixmap(szBuffer); m_pIconNames = 0; @@ -577,7 +576,7 @@ KviIconManager::~KviIconManager() int i; - for(i=0; i < KviIconManager::IconCount; i++) + for(i = 0; i < KviIconManager::IconCount; i++) { if(m_smallIcons[i]) delete m_smallIcons[i]; @@ -591,18 +590,17 @@ void KviIconManager::initQResourceBackend() { QString szPath; - g_pApp->getLocalKvircDirectory(szPath,KviApplication::Pics); + g_pApp->getLocalKvircDirectory(szPath, KviApplication::Pics); QDir::addSearchPath("icons", szPath); - g_pApp->getGlobalKvircDirectory(szPath,KviApplication::Pics); + g_pApp->getGlobalKvircDirectory(szPath, KviApplication::Pics); QDir::addSearchPath("icons", szPath); - g_pApp->getLocalKvircDirectory(szPath,KviApplication::SmallIcons); + g_pApp->getLocalKvircDirectory(szPath, KviApplication::SmallIcons); QDir::addSearchPath("smallicons", szPath); - g_pApp->getGlobalKvircDirectory(szPath,KviApplication::SmallIcons); + g_pApp->getGlobalKvircDirectory(szPath, KviApplication::SmallIcons); QDir::addSearchPath("smallicons", szPath); - } QString KviIconManager::getSmallIconResourceName(SmallIcon eIcon) @@ -617,345 +615,1019 @@ KviIconManager::SmallIcon KviIconManager::iconName(int iIcon) { switch(iIcon) { - case 1: return KviIconManager::Close; break; - case 2: return KviIconManager::History; break; - case 3: return KviIconManager::HistoryOff; break; - case 4: return KviIconManager::UserMode; break; - case 5: return KviIconManager::DefaultIcon; break; - case 6: return KviIconManager::Dock; break; - case 7: return KviIconManager::UnDock; break; - case 8: return KviIconManager::QuitApp; break; - case 9: return KviIconManager::Console; break; - case 10: return KviIconManager::Save; break; - case 11: return KviIconManager::ParserError; break; - case 12: return KviIconManager::ParserWarning; break; - case 13: return KviIconManager::Server; break; - case 14: return KviIconManager::World; break; - case 15: return KviIconManager::Proxy; break; - case 16: return KviIconManager::KVIrc; break; - case 17: return KviIconManager::Cut; break; - case 18: return KviIconManager::Copy; break; - case 19: return KviIconManager::Paste; break; - case 20: return KviIconManager::Options; break; - case 21: return KviIconManager::SocketMessage; break; - case 22: return KviIconManager::SocketWarning; break; - case 23: return KviIconManager::SocketError; break; - case 24: return KviIconManager::SystemError; break; - case 25: return KviIconManager::Raw; break; - case 26: return KviIconManager::SystemWarning; break; - case 27: return KviIconManager::SystemMessage; break; - case 28: return KviIconManager::UnHandled; break; - case 29: return KviIconManager::ServerInfo; break; - case 30: return KviIconManager::Motd; break; - case 31: return KviIconManager::Channel; break; - case 32: return KviIconManager::HideDoubleView; break; - case 33: return KviIconManager::ShowDoubleView; break; - case 34: return KviIconManager::Op; break; - case 35: return KviIconManager::Voice; break; - case 36: return KviIconManager::ServerPing; break; - case 37: return KviIconManager::ShowListView; break; - case 38: return KviIconManager::HideListView; break; - case 39: return KviIconManager::Join; break; - case 40: return KviIconManager::Part; break; - case 41: return KviIconManager::Unrecognized; break; - case 42: return KviIconManager::Topic; break; - case 43: return KviIconManager::Accept; break; - case 44: return KviIconManager::Discard; break; - case 45: return KviIconManager::OwnPrivMsg; break; - case 46: return KviIconManager::ChanPrivMsg; break; - case 47: return KviIconManager::Query; break; - case 48: return KviIconManager::QueryPrivMsg; break; - case 49: return KviIconManager::Help; break; - case 50: return KviIconManager::QuestionMark; break; - case 51: return KviIconManager::CtcpReply; break; - case 52: return KviIconManager::CtcpRequestReplied; break; - case 53: return KviIconManager::CtcpRequestIgnored; break; - case 54: return KviIconManager::CtcpRequestFlood; break; - case 55: return KviIconManager::CtcpRequestUnknown; break; - case 56: return KviIconManager::Action; break; - case 57: return KviIconManager::Avatar; break; - case 58: return KviIconManager::Quit; break; - case 59: return KviIconManager::Split; break; - case 60: return KviIconManager::QuitSplit; break; - case 61: return KviIconManager::Nick; break; - case 62: return KviIconManager::DeOp; break; - case 63: return KviIconManager::DeVoice; break; - case 64: return KviIconManager::Mode; break; - case 65: return KviIconManager::Key; break; - case 66: return KviIconManager::Limit; break; - case 67: return KviIconManager::Ban; break; - case 68: return KviIconManager::UnBan; break; - case 69: return KviIconManager::BanExcept; break; - case 70: return KviIconManager::BanUnExcept; break; - case 71: return KviIconManager::InviteExcept; break; - case 72: return KviIconManager::InviteUnExcept; break; - case 73: return KviIconManager::ChanMode; break; - case 74: return KviIconManager::ChanModeHide; break; - case 75: return KviIconManager::Who; break; - case 76: return KviIconManager::Editor; break; - case 77: return KviIconManager::DccRequest; break; - case 78: return KviIconManager::DccMsg; break; - case 79: return KviIconManager::DccError; break; - case 80: return KviIconManager::IconManager; break; - case 81: return KviIconManager::ScriptCenter; break; - case 82: return KviIconManager::Bomb; break; - case 83: return KviIconManager::Event; break; - case 84: return KviIconManager::EventNoHandlers; break; - case 85: return KviIconManager::Handler; break; - case 86: return KviIconManager::HandlerDisabled; break; - case 87: return KviIconManager::NickNameProblem; break; - case 88: return KviIconManager::WhoisUser; break; - case 89: return KviIconManager::WhoisChannels; break; - case 90: return KviIconManager::WhoisIdle; break; - case 91: return KviIconManager::WhoisServer; break; - case 92: return KviIconManager::WhoisOther; break; - case 93: return KviIconManager::Time; break; - case 94: return KviIconManager::NotifyOnLine; break; - case 95: return KviIconManager::NotifyOffLine; break; - case 96: return KviIconManager::Locked; break; - case 97: return KviIconManager::UnLocked; break; - case 98: return KviIconManager::LockedOff; break; - case 99: return KviIconManager::UnLockedOff; break; - case 100: return KviIconManager::OwnPrivMsgCrypted; break; - case 101: return KviIconManager::ChanPrivMsgCrypted; break; - case 102: return KviIconManager::QueryPrivMsgCrypted; break; - case 103: return KviIconManager::DccChatMsg; break; - case 104: return KviIconManager::DccChatMsgCrypted; break; - case 105: return KviIconManager::Irc; break; - case 106: return KviIconManager::Folder; break; - case 107: return KviIconManager::Home; break; - case 108: return KviIconManager::BookMarks; break; - case 109: return KviIconManager::Spy; break; - case 110: return KviIconManager::Kick; break; - case 111: return KviIconManager::Linux; break; - case 112: return KviIconManager::Links; break; - case 113: return KviIconManager::RegUsers; break; - case 114: return KviIconManager::TrayIcon; break; - case 115: return KviIconManager::UnsetMode; break; - case 116: return KviIconManager::Favorite; break; - case 117: return KviIconManager::Toolbar; break; - case 118: return KviIconManager::ServerFavorite; break; - case 119: return KviIconManager::Log; break; - case 120: return KviIconManager::Remove; break; - case 121: return KviIconManager::File; break; - case 122: return KviIconManager::Icq; break; - case 123: return KviIconManager::IcqYellow; break; - case 124: return KviIconManager::IcqRed; break; - case 125: return KviIconManager::IcqBlue; break; - case 126: return KviIconManager::IcqLightGreen; break; - case 127: return KviIconManager::IcqLightYellow; break; - case 128: return KviIconManager::Message; break; - case 129: return KviIconManager::MessageSent; break; - case 130: return KviIconManager::BlueSquare; break; - case 131: return KviIconManager::VioletSquare; break; - case 132: return KviIconManager::YellowSquare; break; - case 133: return KviIconManager::GreenSquare; break; - case 134: return KviIconManager::BlackSquare; break; - case 135: return KviIconManager::RedSquare; break; - case 136: return KviIconManager::CyanSquare; break; - case 137: return KviIconManager::DarkGreenSquare; break; - case 138: return KviIconManager::Terminal; break; - case 139: return KviIconManager::WallOps; break; - case 140: return KviIconManager::Invisible; break; - case 141: return KviIconManager::ServerNotice; break; - case 142: return KviIconManager::Gnutella; break; - case 143: return KviIconManager::Search; break; - case 144: return KviIconManager::Files; break; - case 145: return KviIconManager::NewNetwork; break; - case 146: return KviIconManager::Package; break; - case 147: return KviIconManager::NewServer; break; - case 148: return KviIconManager::Idea; break; - case 149: return KviIconManager::Colors; break; - case 150: return KviIconManager::Gui; break; - case 151: return KviIconManager::IrcView; break; - case 152: return KviIconManager::Alias; break; - case 153: return KviIconManager::ChannelNotice; break; - case 154: return KviIconManager::ChannelNoticeCrypted; break; - case 155: return KviIconManager::QueryNotice; break; - case 156: return KviIconManager::QueryNoticeCrypted; break; - case 157: return KviIconManager::MenuBar; break; - case 158: return KviIconManager::Popup; break; - case 159: return KviIconManager::Prologue; break; - case 160: return KviIconManager::Epilogue; break; - case 161: return KviIconManager::SharedFiles; break; - case 162: return KviIconManager::CtcpReplyUnknown; break; - case 163: return KviIconManager::Canvas; break; - case 164: return KviIconManager::NickServ; break; - case 165: return KviIconManager::ChanServ; break; - case 166: return KviIconManager::DccVoice; break; - case 167: return KviIconManager::Play; break; - case 168: return KviIconManager::Record; break; - case 169: return KviIconManager::KickOff; break; - case 170: return KviIconManager::Away; break; - case 171: return KviIconManager::Ident; break; - case 172: return KviIconManager::HomePage; break; - case 173: return KviIconManager::List; break; - case 174: return KviIconManager::HalfOp; break; - case 175: return KviIconManager::HalfDeOp; break; - case 176: return KviIconManager::Invite; break; - case 177: return KviIconManager::MultiMedia; break; - case 178: return KviIconManager::User; break; - case 179: return KviIconManager::Input; break; - case 180: return KviIconManager::Messages; break; - case 181: return KviIconManager::QueryTrace; break; - case 182: return KviIconManager::NoChannel; break; - case 183: return KviIconManager::BroadcastPrivMsg; break; - case 184: return KviIconManager::BroadcastNotice; break; - case 185: return KviIconManager::Url; break; - case 186: return KviIconManager::RawEvent; break; - case 187: return KviIconManager::RawEventNoHandlers; break; - case 188: return KviIconManager::MeKick; break; - case 189: return KviIconManager::MeOp; break; - case 190: return KviIconManager::MeVoice; break; - case 191: return KviIconManager::MeDeOp; break; - case 192: return KviIconManager::MeDeVoice; break; - case 193: return KviIconManager::MeHalfOp; break; - case 194: return KviIconManager::MeDeHalfOp; break; - case 195: return KviIconManager::MeBan; break; - case 196: return KviIconManager::MeUnBan; break; - case 197: return KviIconManager::MeBanExcept; break; - case 198: return KviIconManager::MeBanUnExcept; break; - case 199: return KviIconManager::MeInviteExcept; break; - case 200: return KviIconManager::MeInviteUnExcept; break; - case 201: return KviIconManager::ClassicWindowList; break; - case 202: return KviIconManager::TreeWindowList; break; - case 203: return KviIconManager::Ignore; break; - case 204: return KviIconManager::UserList; break; - case 205: return KviIconManager::Stats; break; - case 206: return KviIconManager::PopupMenu; break; - case 207: return KviIconManager::ServerConfiguration; break; - case 208: return KviIconManager::Irc0; break; - case 209: return KviIconManager::Irc1; break; - case 210: return KviIconManager::Irc2; break; - case 211: return KviIconManager::Irc3; break; - case 212: return KviIconManager::Irc4; break; - case 213: return KviIconManager::Irc5; break; - case 214: return KviIconManager::Heart; break; - case 215: return KviIconManager::HeartBroken; break; - case 216: return KviIconManager::Rose; break; - case 217: return KviIconManager::BigGrin; break; - case 218: return KviIconManager::BigGrinGlasses; break; - case 219: return KviIconManager::BigGrinEyes; break; - case 220: return KviIconManager::TextExclamative; break; - case 221: return KviIconManager::TextPoints; break; - case 222: return KviIconManager::Kiss; break; - case 223: return KviIconManager::Surprised1; break; - case 224: return KviIconManager::Ugly; break; - case 225: return KviIconManager::Angry; break; - case 226: return KviIconManager::Surprised2; break; - case 227: return KviIconManager::Smile; break; - case 228: return KviIconManager::Tongue; break; - case 229: return KviIconManager::Ssl; break; - case 230: return KviIconManager::Cry; break; - case 231: return KviIconManager::Eye; break; - case 232: return KviIconManager::DeadChannel; break; - case 233: return KviIconManager::DeadQuery; break; - case 234: return KviIconManager::Sound; break; - case 235: return KviIconManager::ToolBarEditor; break; - case 236: return KviIconManager::TextEncoding; break; - case 237: return KviIconManager::NewItem; break; - case 238: return KviIconManager::NewItemByWizard; break; - case 239: return KviIconManager::DeleteItem; break; - case 240: return KviIconManager::EditItem; break; - case 241: return KviIconManager::FileTransfer; break; - case 242: return KviIconManager::ChanAdmin; break; - case 243: return KviIconManager::ChanUnAdmin; break; - case 244: return KviIconManager::MeChanAdmin; break; - case 245: return KviIconManager::MeChanUnAdmin; break; - case 246: return KviIconManager::UserOp; break; - case 247: return KviIconManager::DeUserOp; break; - case 248: return KviIconManager::MeUserOp; break; - case 249: return KviIconManager::MeDeUserOp; break; - case 250: return KviIconManager::Applet; break; - case 251: return KviIconManager::Spam; break; - case 252: return KviIconManager::Transparent; break; - case 253: return KviIconManager::Notifier; break; - case 254: return KviIconManager::UserWindow; break; - case 255: return KviIconManager::StatusBar; break; - case 256: return KviIconManager::NotAway; break; - case 257: return KviIconManager::Plus; break; - case 258: return KviIconManager::Minus; break; - case 259: return KviIconManager::BinaryText; break; - case 260: return KviIconManager::ChanOwner; break; - case 261: return KviIconManager::ChanUnOwner; break; - case 262: return KviIconManager::MeChanOwner; break; - case 263: return KviIconManager::MeChanUnOwner; break; - case 264: return KviIconManager::Afraid; break; - case 265: return KviIconManager::Teeth; break; - case 266: return KviIconManager::SysMonitor; break; - case 267: return KviIconManager::SayColors; break; - case 268: return KviIconManager::Finger; break; - case 269: return KviIconManager::HighlightText; break; - case 270: return KviIconManager::TearSmile; break; - case 271: return KviIconManager::Shy; break; - case 272: return KviIconManager::ServerError; break; - case 273: return KviIconManager::Cafe; break; - case 274: return KviIconManager::Addons; break; - case 275: return KviIconManager::ChanOwnerAway; break; - case 276: return KviIconManager::OpAway; break; - case 277: return KviIconManager::VoiceAway; break; - case 278: return KviIconManager::ChanAdminAway; break; - case 279: return KviIconManager::UserOpAway; break; - case 280: return KviIconManager::HalfOpAway; break; - case 281: return KviIconManager::ClassEditor; break; - case 282: return KviIconManager::Demoralized; break; - case 283: return KviIconManager::Slurp; break; - case 284: return KviIconManager::NameSpace; break; - case 285: return KviIconManager::SaySmile; break; - case 286: return KviIconManager::SayKvs; break; - case 287: return KviIconManager::ThemeOptions; break; - case 288: return KviIconManager::Bug; break; - case 289: return KviIconManager::Refresh; break; - case 290: return KviIconManager::Theme; break; - case 291: return KviIconManager::ScreenShot; break; - case 292: return KviIconManager::Update; break; - case 293: return KviIconManager::NotUpdate; break; - case 294: return KviIconManager::FailUpdate; break; - case 295: return KviIconManager::UnreadText; break; - case 296: return KviIconManager::IrcOp; break; - case 297: return KviIconManager::IrcOpAway; break; - case 298: return KviIconManager::DeIrcOp; break; - case 299: return KviIconManager::MeIrcOp; break; - case 300: return KviIconManager::MeDeIrcOp; break; - case 301: return KviIconManager::Angel; break; - case 302: return KviIconManager::Clown; break; - case 303: return KviIconManager::Devil; break; - case 304: return KviIconManager::InLove; break; - case 305: return KviIconManager::Ninja; break; - case 306: return KviIconManager::Pirate; break; - case 307: return KviIconManager::Puke; break; - case 308: return KviIconManager::Rage; break; - case 309: return KviIconManager::Class; break; - case 310: return KviIconManager::ClassNotBuilt; break; - case 311: return KviIconManager::Function; break; - case 312: return KviIconManager::SexMale; break; - case 313: return KviIconManager::SexFemale; break; - case 314: return KviIconManager::IrcBot; break; - case 315: return KviIconManager::AlienIrcOp; break; - case 316: return KviIconManager::MemoServ; break; - case 317: return KviIconManager::Info; break; - case 318: return KviIconManager::Warning; break; - case 319: return KviIconManager::Shield; break; - case 320: return KviIconManager::RawEventEditor; break; - case 321: return KviIconManager::EventEditor; break; - case 322: return KviIconManager::ActionEditor; break; - case 323: return KviIconManager::AliasEditor; break; - case 324: return KviIconManager::PopupEditor; break; - case 325: return KviIconManager::Dcc; break; - case 326: return KviIconManager::Socket; break; - case 327: return KviIconManager::Cake; break; - case 328: return KviIconManager::HandIly; break; - case 329: return KviIconManager::ThumbDown; break; - case 330: return KviIconManager::ThumbUp; break; - case 331: return KviIconManager::FacePalm; break; - case 332: return KviIconManager::Identity; break; - case 333: return KviIconManager::NickPopup; break; - case 334: return KviIconManager::Tools; break; - case 335: return KviIconManager::FavoriteOff; break; - case 336: return KviIconManager::NewProxy; break; - case 0: + case 1: + return KviIconManager::Close; + break; + case 2: + return KviIconManager::History; + break; + case 3: + return KviIconManager::HistoryOff; + break; + case 4: + return KviIconManager::UserMode; + break; + case 5: + return KviIconManager::DefaultIcon; + break; + case 6: + return KviIconManager::Dock; + break; + case 7: + return KviIconManager::UnDock; + break; + case 8: + return KviIconManager::QuitApp; + break; + case 9: + return KviIconManager::Console; + break; + case 10: + return KviIconManager::Save; + break; + case 11: + return KviIconManager::ParserError; + break; + case 12: + return KviIconManager::ParserWarning; + break; + case 13: + return KviIconManager::Server; + break; + case 14: + return KviIconManager::World; + break; + case 15: + return KviIconManager::Proxy; + break; + case 16: + return KviIconManager::KVIrc; + break; + case 17: + return KviIconManager::Cut; + break; + case 18: + return KviIconManager::Copy; + break; + case 19: + return KviIconManager::Paste; + break; + case 20: + return KviIconManager::Options; + break; + case 21: + return KviIconManager::SocketMessage; + break; + case 22: + return KviIconManager::SocketWarning; + break; + case 23: + return KviIconManager::SocketError; + break; + case 24: + return KviIconManager::SystemError; + break; + case 25: + return KviIconManager::Raw; + break; + case 26: + return KviIconManager::SystemWarning; + break; + case 27: + return KviIconManager::SystemMessage; + break; + case 28: + return KviIconManager::UnHandled; + break; + case 29: + return KviIconManager::ServerInfo; + break; + case 30: + return KviIconManager::Motd; + break; + case 31: + return KviIconManager::Channel; + break; + case 32: + return KviIconManager::HideDoubleView; + break; + case 33: + return KviIconManager::ShowDoubleView; + break; + case 34: + return KviIconManager::Op; + break; + case 35: + return KviIconManager::Voice; + break; + case 36: + return KviIconManager::ServerPing; + break; + case 37: + return KviIconManager::ShowListView; + break; + case 38: + return KviIconManager::HideListView; + break; + case 39: + return KviIconManager::Join; + break; + case 40: + return KviIconManager::Part; + break; + case 41: + return KviIconManager::Unrecognized; + break; + case 42: + return KviIconManager::Topic; + break; + case 43: + return KviIconManager::Accept; + break; + case 44: + return KviIconManager::Discard; + break; + case 45: + return KviIconManager::OwnPrivMsg; + break; + case 46: + return KviIconManager::ChanPrivMsg; + break; + case 47: + return KviIconManager::Query; + break; + case 48: + return KviIconManager::QueryPrivMsg; + break; + case 49: + return KviIconManager::Help; + break; + case 50: + return KviIconManager::QuestionMark; + break; + case 51: + return KviIconManager::CtcpReply; + break; + case 52: + return KviIconManager::CtcpRequestReplied; + break; + case 53: + return KviIconManager::CtcpRequestIgnored; + break; + case 54: + return KviIconManager::CtcpRequestFlood; + break; + case 55: + return KviIconManager::CtcpRequestUnknown; + break; + case 56: + return KviIconManager::Action; + break; + case 57: + return KviIconManager::Avatar; + break; + case 58: + return KviIconManager::Quit; + break; + case 59: + return KviIconManager::Split; + break; + case 60: + return KviIconManager::QuitSplit; + break; + case 61: + return KviIconManager::Nick; + break; + case 62: + return KviIconManager::DeOp; + break; + case 63: + return KviIconManager::DeVoice; + break; + case 64: + return KviIconManager::Mode; + break; + case 65: + return KviIconManager::Key; + break; + case 66: + return KviIconManager::Limit; + break; + case 67: + return KviIconManager::Ban; + break; + case 68: + return KviIconManager::UnBan; + break; + case 69: + return KviIconManager::BanExcept; + break; + case 70: + return KviIconManager::BanUnExcept; + break; + case 71: + return KviIconManager::InviteExcept; + break; + case 72: + return KviIconManager::InviteUnExcept; + break; + case 73: + return KviIconManager::ChanMode; + break; + case 74: + return KviIconManager::ChanModeHide; + break; + case 75: + return KviIconManager::Who; + break; + case 76: + return KviIconManager::Editor; + break; + case 77: + return KviIconManager::DccRequest; + break; + case 78: + return KviIconManager::DccMsg; + break; + case 79: + return KviIconManager::DccError; + break; + case 80: + return KviIconManager::IconManager; + break; + case 81: + return KviIconManager::ScriptCenter; + break; + case 82: + return KviIconManager::Bomb; + break; + case 83: + return KviIconManager::Event; + break; + case 84: + return KviIconManager::EventNoHandlers; + break; + case 85: + return KviIconManager::Handler; + break; + case 86: + return KviIconManager::HandlerDisabled; + break; + case 87: + return KviIconManager::NickNameProblem; + break; + case 88: + return KviIconManager::WhoisUser; + break; + case 89: + return KviIconManager::WhoisChannels; + break; + case 90: + return KviIconManager::WhoisIdle; + break; + case 91: + return KviIconManager::WhoisServer; + break; + case 92: + return KviIconManager::WhoisOther; + break; + case 93: + return KviIconManager::Time; + break; + case 94: + return KviIconManager::NotifyOnLine; + break; + case 95: + return KviIconManager::NotifyOffLine; + break; + case 96: + return KviIconManager::Locked; + break; + case 97: + return KviIconManager::UnLocked; + break; + case 98: + return KviIconManager::LockedOff; + break; + case 99: + return KviIconManager::UnLockedOff; + break; + case 100: + return KviIconManager::OwnPrivMsgCrypted; + break; + case 101: + return KviIconManager::ChanPrivMsgCrypted; + break; + case 102: + return KviIconManager::QueryPrivMsgCrypted; + break; + case 103: + return KviIconManager::DccChatMsg; + break; + case 104: + return KviIconManager::DccChatMsgCrypted; + break; + case 105: + return KviIconManager::Irc; + break; + case 106: + return KviIconManager::Folder; + break; + case 107: + return KviIconManager::Home; + break; + case 108: + return KviIconManager::BookMarks; + break; + case 109: + return KviIconManager::Spy; + break; + case 110: + return KviIconManager::Kick; + break; + case 111: + return KviIconManager::Linux; + break; + case 112: + return KviIconManager::Links; + break; + case 113: + return KviIconManager::RegUsers; + break; + case 114: + return KviIconManager::TrayIcon; + break; + case 115: + return KviIconManager::UnsetMode; + break; + case 116: + return KviIconManager::Favorite; + break; + case 117: + return KviIconManager::Toolbar; + break; + case 118: + return KviIconManager::ServerFavorite; + break; + case 119: + return KviIconManager::Log; + break; + case 120: + return KviIconManager::Remove; + break; + case 121: + return KviIconManager::File; + break; + case 122: + return KviIconManager::Icq; + break; + case 123: + return KviIconManager::IcqYellow; + break; + case 124: + return KviIconManager::IcqRed; + break; + case 125: + return KviIconManager::IcqBlue; + break; + case 126: + return KviIconManager::IcqLightGreen; + break; + case 127: + return KviIconManager::IcqLightYellow; + break; + case 128: + return KviIconManager::Message; + break; + case 129: + return KviIconManager::MessageSent; + break; + case 130: + return KviIconManager::BlueSquare; + break; + case 131: + return KviIconManager::VioletSquare; + break; + case 132: + return KviIconManager::YellowSquare; + break; + case 133: + return KviIconManager::GreenSquare; + break; + case 134: + return KviIconManager::BlackSquare; + break; + case 135: + return KviIconManager::RedSquare; + break; + case 136: + return KviIconManager::CyanSquare; + break; + case 137: + return KviIconManager::DarkGreenSquare; + break; + case 138: + return KviIconManager::Terminal; + break; + case 139: + return KviIconManager::WallOps; + break; + case 140: + return KviIconManager::Invisible; + break; + case 141: + return KviIconManager::ServerNotice; + break; + case 142: + return KviIconManager::Gnutella; + break; + case 143: + return KviIconManager::Search; + break; + case 144: + return KviIconManager::Files; + break; + case 145: + return KviIconManager::NewNetwork; + break; + case 146: + return KviIconManager::Package; + break; + case 147: + return KviIconManager::NewServer; + break; + case 148: + return KviIconManager::Idea; + break; + case 149: + return KviIconManager::Colors; + break; + case 150: + return KviIconManager::Gui; + break; + case 151: + return KviIconManager::IrcView; + break; + case 152: + return KviIconManager::Alias; + break; + case 153: + return KviIconManager::ChannelNotice; + break; + case 154: + return KviIconManager::ChannelNoticeCrypted; + break; + case 155: + return KviIconManager::QueryNotice; + break; + case 156: + return KviIconManager::QueryNoticeCrypted; + break; + case 157: + return KviIconManager::MenuBar; + break; + case 158: + return KviIconManager::Popup; + break; + case 159: + return KviIconManager::Prologue; + break; + case 160: + return KviIconManager::Epilogue; + break; + case 161: + return KviIconManager::SharedFiles; + break; + case 162: + return KviIconManager::CtcpReplyUnknown; + break; + case 163: + return KviIconManager::Canvas; + break; + case 164: + return KviIconManager::NickServ; + break; + case 165: + return KviIconManager::ChanServ; + break; + case 166: + return KviIconManager::DccVoice; + break; + case 167: + return KviIconManager::Play; + break; + case 168: + return KviIconManager::Record; + break; + case 169: + return KviIconManager::KickOff; + break; + case 170: + return KviIconManager::Away; + break; + case 171: + return KviIconManager::Ident; + break; + case 172: + return KviIconManager::HomePage; + break; + case 173: + return KviIconManager::List; + break; + case 174: + return KviIconManager::HalfOp; + break; + case 175: + return KviIconManager::HalfDeOp; + break; + case 176: + return KviIconManager::Invite; + break; + case 177: + return KviIconManager::MultiMedia; + break; + case 178: + return KviIconManager::User; + break; + case 179: + return KviIconManager::Input; + break; + case 180: + return KviIconManager::Messages; + break; + case 181: + return KviIconManager::QueryTrace; + break; + case 182: + return KviIconManager::NoChannel; + break; + case 183: + return KviIconManager::BroadcastPrivMsg; + break; + case 184: + return KviIconManager::BroadcastNotice; + break; + case 185: + return KviIconManager::Url; + break; + case 186: + return KviIconManager::RawEvent; + break; + case 187: + return KviIconManager::RawEventNoHandlers; + break; + case 188: + return KviIconManager::MeKick; + break; + case 189: + return KviIconManager::MeOp; + break; + case 190: + return KviIconManager::MeVoice; + break; + case 191: + return KviIconManager::MeDeOp; + break; + case 192: + return KviIconManager::MeDeVoice; + break; + case 193: + return KviIconManager::MeHalfOp; + break; + case 194: + return KviIconManager::MeDeHalfOp; + break; + case 195: + return KviIconManager::MeBan; + break; + case 196: + return KviIconManager::MeUnBan; + break; + case 197: + return KviIconManager::MeBanExcept; + break; + case 198: + return KviIconManager::MeBanUnExcept; + break; + case 199: + return KviIconManager::MeInviteExcept; + break; + case 200: + return KviIconManager::MeInviteUnExcept; + break; + case 201: + return KviIconManager::ClassicWindowList; + break; + case 202: + return KviIconManager::TreeWindowList; + break; + case 203: + return KviIconManager::Ignore; + break; + case 204: + return KviIconManager::UserList; + break; + case 205: + return KviIconManager::Stats; + break; + case 206: + return KviIconManager::PopupMenu; + break; + case 207: + return KviIconManager::ServerConfiguration; + break; + case 208: + return KviIconManager::Irc0; + break; + case 209: + return KviIconManager::Irc1; + break; + case 210: + return KviIconManager::Irc2; + break; + case 211: + return KviIconManager::Irc3; + break; + case 212: + return KviIconManager::Irc4; + break; + case 213: + return KviIconManager::Irc5; + break; + case 214: + return KviIconManager::Heart; + break; + case 215: + return KviIconManager::HeartBroken; + break; + case 216: + return KviIconManager::Rose; + break; + case 217: + return KviIconManager::BigGrin; + break; + case 218: + return KviIconManager::BigGrinGlasses; + break; + case 219: + return KviIconManager::BigGrinEyes; + break; + case 220: + return KviIconManager::TextExclamative; + break; + case 221: + return KviIconManager::TextPoints; + break; + case 222: + return KviIconManager::Kiss; + break; + case 223: + return KviIconManager::Surprised1; + break; + case 224: + return KviIconManager::Ugly; + break; + case 225: + return KviIconManager::Angry; + break; + case 226: + return KviIconManager::Surprised2; + break; + case 227: + return KviIconManager::Smile; + break; + case 228: + return KviIconManager::Tongue; + break; + case 229: + return KviIconManager::Ssl; + break; + case 230: + return KviIconManager::Cry; + break; + case 231: + return KviIconManager::Eye; + break; + case 232: + return KviIconManager::DeadChannel; + break; + case 233: + return KviIconManager::DeadQuery; + break; + case 234: + return KviIconManager::Sound; + break; + case 235: + return KviIconManager::ToolBarEditor; + break; + case 236: + return KviIconManager::TextEncoding; + break; + case 237: + return KviIconManager::NewItem; + break; + case 238: + return KviIconManager::NewItemByWizard; + break; + case 239: + return KviIconManager::DeleteItem; + break; + case 240: + return KviIconManager::EditItem; + break; + case 241: + return KviIconManager::FileTransfer; + break; + case 242: + return KviIconManager::ChanAdmin; + break; + case 243: + return KviIconManager::ChanUnAdmin; + break; + case 244: + return KviIconManager::MeChanAdmin; + break; + case 245: + return KviIconManager::MeChanUnAdmin; + break; + case 246: + return KviIconManager::UserOp; + break; + case 247: + return KviIconManager::DeUserOp; + break; + case 248: + return KviIconManager::MeUserOp; + break; + case 249: + return KviIconManager::MeDeUserOp; + break; + case 250: + return KviIconManager::Applet; + break; + case 251: + return KviIconManager::Spam; + break; + case 252: + return KviIconManager::Transparent; + break; + case 253: + return KviIconManager::Notifier; + break; + case 254: + return KviIconManager::UserWindow; + break; + case 255: + return KviIconManager::StatusBar; + break; + case 256: + return KviIconManager::NotAway; + break; + case 257: + return KviIconManager::Plus; + break; + case 258: + return KviIconManager::Minus; + break; + case 259: + return KviIconManager::BinaryText; + break; + case 260: + return KviIconManager::ChanOwner; + break; + case 261: + return KviIconManager::ChanUnOwner; + break; + case 262: + return KviIconManager::MeChanOwner; + break; + case 263: + return KviIconManager::MeChanUnOwner; + break; + case 264: + return KviIconManager::Afraid; + break; + case 265: + return KviIconManager::Teeth; + break; + case 266: + return KviIconManager::SysMonitor; + break; + case 267: + return KviIconManager::SayColors; + break; + case 268: + return KviIconManager::Finger; + break; + case 269: + return KviIconManager::HighlightText; + break; + case 270: + return KviIconManager::TearSmile; + break; + case 271: + return KviIconManager::Shy; + break; + case 272: + return KviIconManager::ServerError; + break; + case 273: + return KviIconManager::Cafe; + break; + case 274: + return KviIconManager::Addons; + break; + case 275: + return KviIconManager::ChanOwnerAway; + break; + case 276: + return KviIconManager::OpAway; + break; + case 277: + return KviIconManager::VoiceAway; + break; + case 278: + return KviIconManager::ChanAdminAway; + break; + case 279: + return KviIconManager::UserOpAway; + break; + case 280: + return KviIconManager::HalfOpAway; + break; + case 281: + return KviIconManager::ClassEditor; + break; + case 282: + return KviIconManager::Demoralized; + break; + case 283: + return KviIconManager::Slurp; + break; + case 284: + return KviIconManager::NameSpace; + break; + case 285: + return KviIconManager::SaySmile; + break; + case 286: + return KviIconManager::SayKvs; + break; + case 287: + return KviIconManager::ThemeOptions; + break; + case 288: + return KviIconManager::Bug; + break; + case 289: + return KviIconManager::Refresh; + break; + case 290: + return KviIconManager::Theme; + break; + case 291: + return KviIconManager::ScreenShot; + break; + case 292: + return KviIconManager::Update; + break; + case 293: + return KviIconManager::NotUpdate; + break; + case 294: + return KviIconManager::FailUpdate; + break; + case 295: + return KviIconManager::UnreadText; + break; + case 296: + return KviIconManager::IrcOp; + break; + case 297: + return KviIconManager::IrcOpAway; + break; + case 298: + return KviIconManager::DeIrcOp; + break; + case 299: + return KviIconManager::MeIrcOp; + break; + case 300: + return KviIconManager::MeDeIrcOp; + break; + case 301: + return KviIconManager::Angel; + break; + case 302: + return KviIconManager::Clown; + break; + case 303: + return KviIconManager::Devil; + break; + case 304: + return KviIconManager::InLove; + break; + case 305: + return KviIconManager::Ninja; + break; + case 306: + return KviIconManager::Pirate; + break; + case 307: + return KviIconManager::Puke; + break; + case 308: + return KviIconManager::Rage; + break; + case 309: + return KviIconManager::Class; + break; + case 310: + return KviIconManager::ClassNotBuilt; + break; + case 311: + return KviIconManager::Function; + break; + case 312: + return KviIconManager::SexMale; + break; + case 313: + return KviIconManager::SexFemale; + break; + case 314: + return KviIconManager::IrcBot; + break; + case 315: + return KviIconManager::AlienIrcOp; + break; + case 316: + return KviIconManager::MemoServ; + break; + case 317: + return KviIconManager::Info; + break; + case 318: + return KviIconManager::Warning; + break; + case 319: + return KviIconManager::Shield; + break; + case 320: + return KviIconManager::RawEventEditor; + break; + case 321: + return KviIconManager::EventEditor; + break; + case 322: + return KviIconManager::ActionEditor; + break; + case 323: + return KviIconManager::AliasEditor; + break; + case 324: + return KviIconManager::PopupEditor; + break; + case 325: + return KviIconManager::Dcc; + break; + case 326: + return KviIconManager::Socket; + break; + case 327: + return KviIconManager::Cake; + break; + case 328: + return KviIconManager::HandIly; + break; + case 329: + return KviIconManager::ThumbDown; + break; + case 330: + return KviIconManager::ThumbUp; + break; + case 331: + return KviIconManager::FacePalm; + break; + case 332: + return KviIconManager::Identity; + break; + case 333: + return KviIconManager::NickPopup; + break; + case 334: + return KviIconManager::Tools; + break; + case 335: + return KviIconManager::FavoriteOff; + break; + case 336: + return KviIconManager::NewProxy; + break; + case 0: case KviIconManager::IconCount: - default: return KviIconManager::None; break; + default: + return KviIconManager::None; + break; } } @@ -973,14 +1645,14 @@ int KviIconManager::getSmallIconIdFromName(const QString & szName) { if(!m_pIconNames) { - m_pIconNames = new KviPointerHashTable(257,false); + m_pIconNames = new KviPointerHashTable(257, false); m_pIconNames->setAutoDelete(true); - for(int i=0; i< IconCount; i++) + for(int i = 0; i < IconCount; i++) { int * pInt = new int; *pInt = i; - m_pIconNames->replace(QString(g_szIconNames[i]),pInt); + m_pIconNames->replace(QString(g_szIconNames[i]), pInt); } } int * pInt = m_pIconNames->find(szName); @@ -994,7 +1666,7 @@ void KviIconManager::showIconWidget() if(!m_pIconWidget) { m_pIconWidget = new KviIconWidget(); - connect(m_pIconWidget,SIGNAL(closed()),this,SLOT(iconWidgetClosed())); + connect(m_pIconWidget, SIGNAL(closed()), this, SLOT(iconWidgetClosed())); } m_pIconWidget->show(); m_pIconWidget->raise(); @@ -1024,7 +1696,7 @@ KviCachedPixmap * KviIconManager::getPixmapWithCache(const QString & szName) QString szRetPath; - if(!g_pApp->findImage(szRetPath,szName)) + if(!g_pApp->findImage(szRetPath, szName)) return 0; pPix = new QPixmap(szRetPath); @@ -1035,8 +1707,8 @@ KviCachedPixmap * KviIconManager::getPixmapWithCache(const QString & szName) return 0; } - pCache = new KviCachedPixmap(pPix,QString(szRetPath)); - addToCache(szName,pCache); + pCache = new KviCachedPixmap(pPix, QString(szRetPath)); + addToCache(szName, pCache); return pCache; } @@ -1058,8 +1730,7 @@ KviCachedPixmap * KviIconManager::getPixmapWithCacheScaleOnLoad(const QString & QString szRetPath; - - if(!g_pApp->findImage(szRetPath,szName)) + if(!g_pApp->findImage(szRetPath, szName)) return 0; pPix = new QPixmap(szRetPath); @@ -1082,11 +1753,11 @@ KviCachedPixmap * KviIconManager::getPixmapWithCacheScaleOnLoad(const QString & } QImage img = pPix->toImage(); - *pPix = QPixmap::fromImage(img.scaled(scaleW,scaleH,Qt::IgnoreAspectRatio,Qt::SmoothTransformation)); + *pPix = QPixmap::fromImage(img.scaled(scaleW, scaleH, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); } - pCache = new KviCachedPixmap(pPix,QString(szRetPath)); - addToCache(szName,pCache); + pCache = new KviCachedPixmap(pPix, QString(szRetPath)); + addToCache(szName, pCache); return pCache; } @@ -1096,7 +1767,7 @@ void KviIconManager::addToCache(const QString & szName, KviCachedPixmap * pCache //if((m_uCacheTotalSize + pCache->size()) >= m_uCacheMaxSize) // cacheCleanup(); - m_pCachedImages->insert(szName,pCache); + m_pCachedImages->insert(szName, pCache); m_uCacheTotalSize += pCache->size(); } @@ -1114,18 +1785,19 @@ QPixmap * KviIconManager::getImage(const QString & szId, bool bCanBeNumber, QStr // was a number : this is not a filename if(iIdx >= 0) return getSmallIcon(iIdx % KviIconManager::IconCount); - } else { + } + else + { if(szId.startsWith("$icon")) { QString szTmp = szId.trimmed(); - szTmp.replace("$icon(",""); - szTmp.replace(")",""); + szTmp.replace("$icon(", ""); + szTmp.replace(")", ""); szTmp = szTmp.trimmed(); - szTmp.replace("\"",""); + szTmp.replace("\"", ""); iIdx = getSmallIconIdFromName(szTmp.trimmed()); if(iIdx >= 0) return getSmallIcon(iIdx % KviIconManager::IconCount); - } } } @@ -1161,11 +1833,11 @@ QPixmap * KviIconManager::getBigIcon(const QString & szName) if(pPix) { QImage tmp = pPix->toImage(); - QImage tmp2 = tmp.scaled(32,32,Qt::IgnoreAspectRatio,Qt::SmoothTransformation); + QImage tmp2 = tmp.scaled(32, 32, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); QPixmap * pPix2 = new QPixmap(); *pPix2 = QPixmap::fromImage(tmp2); - KviCachedPixmap * pCache = new KviCachedPixmap(pPix2,QString()); - addToCache(szTmpName,pCache); + KviCachedPixmap * pCache = new KviCachedPixmap(pPix2, QString()); + addToCache(szTmpName, pCache); return pCache->pixmap(); } } @@ -1173,23 +1845,23 @@ QPixmap * KviIconManager::getBigIcon(const QString & szName) pPix = getPixmap("kvi_bigicon_unknown.png"); if(pPix) return pPix; - KviCachedPixmap * pCache = new KviCachedPixmap(new QPixmap(32,32),QString()); - addToCache(szName,pCache); + KviCachedPixmap * pCache = new KviCachedPixmap(new QPixmap(32, 32), QString()); + addToCache(szName, pCache); return pCache->pixmap(); } void KviIconManager::urlToCachedFileName(QString & szName) { - szName.replace(":","_"); - szName.replace(";","_"); - szName.replace("/","_"); - szName.replace("\\","_"); - szName.replace("\"","_"); - szName.replace("\'","_"); - szName.replace("(","_"); - szName.replace(")","_"); - szName.replace("?","_"); - szName.replace("___","."); + szName.replace(":", "_"); + szName.replace(";", "_"); + szName.replace("/", "_"); + szName.replace("\\", "_"); + szName.replace("\"", "_"); + szName.replace("\'", "_"); + szName.replace("(", "_"); + szName.replace(")", "_"); + szName.replace("?", "_"); + szName.replace("___", "."); //cut filenames to 255 chars, trying to preserve file name/extension (bug #616) if(szName.size() > 255) { @@ -1208,25 +1880,30 @@ KviAvatar * KviIconManager::getAvatar(const QString & szLocalPath, const QString //both path and name empty => fail if(szName.isEmpty()) return 0; - if(KviQString::equalCIN("http://",szName,7) || KviQString::equalCIN("https://",szName,8)) + if(KviQString::equalCIN("http://", szName, 7) || KviQString::equalCIN("https://", szName, 8)) { // it's a URL, cache it locally szN = szName; urlToCachedFileName(szN); - g_pApp->getLocalKvircDirectory(szP,KviApplication::Avatars,szN); + g_pApp->getLocalKvircDirectory(szP, KviApplication::Avatars, szN); szN = szName; // keep the remote URL as name - } else { + } + else + { //locally cached avatar, called only by its szName szN = KviFileUtils::extractFileName(szName); - g_pApp->getLocalKvircDirectory(szP,KviApplication::Avatars,szN); + g_pApp->getLocalKvircDirectory(szP, KviApplication::Avatars, szN); } - } else if(szName.isEmpty()) + } + else if(szName.isEmpty()) { if(szLocalPath.isEmpty()) return 0; szP = szLocalPath; szN = KviFileUtils::extractFileName(szLocalPath); - } else { + } + else + { szP = szLocalPath; szN = szName; } @@ -1237,21 +1914,20 @@ KviAvatar * KviIconManager::getAvatar(const QString & szLocalPath, const QString // ,KVI_OPTION_UINT(KviOption_uintScaleAvatarsOnLoadHeight)) : getPixmapWithCache(szP); //if(!p)return 0; - KviAvatar * pResult = 0; if(KviFileUtils::fileExists(szP)) { if(KVI_OPTION_BOOL(KviOption_boolScaleAvatarsOnLoad)) { - pResult = new KviAvatar(szP,szN, - QSize( - KVI_OPTION_UINT(KviOption_uintScaleAvatarsOnLoadWidth), - KVI_OPTION_UINT(KviOption_uintScaleAvatarsOnLoadHeight) - ) - ); - } else { - pResult = new KviAvatar(szP,szN); + pResult = new KviAvatar(szP, szN, + QSize( + KVI_OPTION_UINT(KviOption_uintScaleAvatarsOnLoadWidth), + KVI_OPTION_UINT(KviOption_uintScaleAvatarsOnLoadHeight))); + } + else + { + pResult = new KviAvatar(szP, szN); } } @@ -1273,7 +1949,7 @@ void KviIconManager::clearCache() void KviIconManager::reloadImages() { clearCache(); - for(int i=0; i < KviIconManager::IconCount; i++) + for(int i = 0; i < KviIconManager::IconCount; i++) { if(m_smallIcons[i]) delete m_smallIcons[i]; @@ -1292,14 +1968,14 @@ QPixmap * KviIconManager::loadSmallIcon(int iIdx) //KviQString::sprintf(szPath,KVI_SMALLICONS_PREFIX "%s.png",g_szIconNames[iIdx]); QString szBuffer; - g_pApp->findSmallIcon(szBuffer,szPath); + g_pApp->findSmallIcon(szBuffer, szPath); m_smallIcons[iIdx] = new QPixmap(szBuffer); return m_smallIcons[iIdx]; } #ifdef __GNUC__ - #warning IMPLEMENT CLEANUP +#warning IMPLEMENT CLEANUP #endif /* void KviIconManager::cacheCleanup() diff --git a/src/kvirc/kernel/KviIconManager.h b/src/kvirc/kernel/KviIconManager.h index dd42ed57a..ed48d822b 100644 --- a/src/kvirc/kernel/KviIconManager.h +++ b/src/kvirc/kernel/KviIconManager.h @@ -103,35 +103,37 @@ public: * \brief Destroys the KviCachedPixmap object */ ~KviCachedPixmap(); + private: - QString m_szPath; - kvi_time_t m_tLastAccess; - QPixmap * m_pPixmap; - unsigned int m_uSize; + QString m_szPath; + kvi_time_t m_tLastAccess; + QPixmap * m_pPixmap; + unsigned int m_uSize; + public: /** * \brief Returns the image * \return QPixmap * */ - QPixmap * pixmap(){ return m_pPixmap; }; + QPixmap * pixmap() { return m_pPixmap; }; /** * \brief Returns the path of the image * \return const QString & */ - const QString & path(){ return m_szPath; }; + const QString & path() { return m_szPath; }; /** * \brief Returns the size of the image * \return unsigned int */ - unsigned int size(){ return m_uSize; }; + unsigned int size() { return m_uSize; }; /** * \brief Returns the time the image was last accessed * \return kvi_time_t */ - kvi_time_t lastAccessTime(){ return m_tLastAccess; }; + kvi_time_t lastAccessTime() { return m_tLastAccess; }; /** * \brief Updates the time the image was last accessed @@ -140,7 +142,6 @@ public: void updateLastAccessTime(); }; - /** * \class KviIconManager * \brief This class manages the images used by KVIrc. @@ -164,345 +165,346 @@ public: * \enum SmallIcon * \brief Contains all KVIrc's small icons */ - enum SmallIcon { - None = 0, - Close = 1, - History = 2, - HistoryOff = 3, - UserMode = 4, - DefaultIcon = 5, - Dock = 6, - UnDock = 7, - QuitApp = 8, - Console = 9, - Save = 10, - ParserError = 11, - ParserWarning = 12, - Server = 13, - World = 14, - Proxy = 15, - KVIrc = 16, - Cut = 17, - Copy = 18, - Paste = 19, - Options = 20, - SocketMessage = 21, - SocketWarning = 22, - SocketError = 23, - SystemError = 24, - Raw = 25, - SystemWarning = 26, - SystemMessage = 27, - UnHandled = 28, - ServerInfo = 29, - Motd = 30, - Channel = 31, - HideDoubleView = 32, - ShowDoubleView = 33, - Op = 34, - Voice = 35, - ServerPing = 36, - ShowListView = 37, - HideListView = 38, - Join = 39, - Part = 40, - Unrecognized = 41, - Topic = 42, - Accept = 43, - Discard = 44, - OwnPrivMsg = 45, - ChanPrivMsg = 46, - Query = 47, - QueryPrivMsg = 48, - Help = 49, - QuestionMark = 50, - CtcpReply = 51, - CtcpRequestReplied = 52, - CtcpRequestIgnored = 53, - CtcpRequestFlood = 54, - CtcpRequestUnknown = 55, - Action = 56, - Avatar = 57, - Quit = 58, - Split = 59, - QuitSplit = 60, - Nick = 61, - DeOp = 62, - DeVoice = 63, - Mode = 64, - Key = 65, - Limit = 66, - Ban = 67, - UnBan = 68, - BanExcept = 69, - BanUnExcept = 70, - InviteExcept = 71, - InviteUnExcept = 72, - ChanMode = 73, - ChanModeHide = 74, - Who = 75, - Editor = 76, - DccRequest = 77, - DccMsg = 78, - DccError = 79, - IconManager = 80, - ScriptCenter = 81, - Bomb = 82, - Event = 83, - EventNoHandlers = 84, - Handler = 85, - HandlerDisabled = 86, - NickNameProblem = 87, - WhoisUser = 88, - WhoisChannels = 89, - WhoisIdle = 90, - WhoisServer = 91, - WhoisOther = 92, - Time = 93, - NotifyOnLine = 94, - NotifyOffLine = 95, - Locked = 96, - UnLocked = 97, - LockedOff = 98, - UnLockedOff = 99, - OwnPrivMsgCrypted = 100, - ChanPrivMsgCrypted = 101, - QueryPrivMsgCrypted = 102, - DccChatMsg = 103, - DccChatMsgCrypted = 104, - Irc = 105, - Folder = 106, - Home = 107, - BookMarks = 108, - Spy = 109, - Kick = 110, - Linux = 111, - Links = 112, - RegUsers = 113, - TrayIcon = 114, - UnsetMode = 115, - Favorite = 116, - Toolbar = 117, - ServerFavorite = 118, - Log = 119, - Remove = 120, - File = 121, - Icq = 122, - IcqYellow = 123, - IcqRed = 124, - IcqBlue = 125, - IcqLightGreen = 126, - IcqLightYellow = 127, - Message = 128, - MessageSent = 129, - BlueSquare = 130, - VioletSquare = 131, - YellowSquare = 132, - GreenSquare = 133, - BlackSquare = 134, - RedSquare = 135, - CyanSquare = 136, - DarkGreenSquare = 137, - Terminal = 138, - WallOps = 139, - Invisible = 140, - ServerNotice = 141, - Gnutella = 142, - Search = 143, - Files = 144, - NewNetwork = 145, - Package = 146, - NewServer = 147, - Idea = 148, - Colors = 149, - Gui = 150, - IrcView = 151, - Alias = 152, - ChannelNotice = 153, + enum SmallIcon + { + None = 0, + Close = 1, + History = 2, + HistoryOff = 3, + UserMode = 4, + DefaultIcon = 5, + Dock = 6, + UnDock = 7, + QuitApp = 8, + Console = 9, + Save = 10, + ParserError = 11, + ParserWarning = 12, + Server = 13, + World = 14, + Proxy = 15, + KVIrc = 16, + Cut = 17, + Copy = 18, + Paste = 19, + Options = 20, + SocketMessage = 21, + SocketWarning = 22, + SocketError = 23, + SystemError = 24, + Raw = 25, + SystemWarning = 26, + SystemMessage = 27, + UnHandled = 28, + ServerInfo = 29, + Motd = 30, + Channel = 31, + HideDoubleView = 32, + ShowDoubleView = 33, + Op = 34, + Voice = 35, + ServerPing = 36, + ShowListView = 37, + HideListView = 38, + Join = 39, + Part = 40, + Unrecognized = 41, + Topic = 42, + Accept = 43, + Discard = 44, + OwnPrivMsg = 45, + ChanPrivMsg = 46, + Query = 47, + QueryPrivMsg = 48, + Help = 49, + QuestionMark = 50, + CtcpReply = 51, + CtcpRequestReplied = 52, + CtcpRequestIgnored = 53, + CtcpRequestFlood = 54, + CtcpRequestUnknown = 55, + Action = 56, + Avatar = 57, + Quit = 58, + Split = 59, + QuitSplit = 60, + Nick = 61, + DeOp = 62, + DeVoice = 63, + Mode = 64, + Key = 65, + Limit = 66, + Ban = 67, + UnBan = 68, + BanExcept = 69, + BanUnExcept = 70, + InviteExcept = 71, + InviteUnExcept = 72, + ChanMode = 73, + ChanModeHide = 74, + Who = 75, + Editor = 76, + DccRequest = 77, + DccMsg = 78, + DccError = 79, + IconManager = 80, + ScriptCenter = 81, + Bomb = 82, + Event = 83, + EventNoHandlers = 84, + Handler = 85, + HandlerDisabled = 86, + NickNameProblem = 87, + WhoisUser = 88, + WhoisChannels = 89, + WhoisIdle = 90, + WhoisServer = 91, + WhoisOther = 92, + Time = 93, + NotifyOnLine = 94, + NotifyOffLine = 95, + Locked = 96, + UnLocked = 97, + LockedOff = 98, + UnLockedOff = 99, + OwnPrivMsgCrypted = 100, + ChanPrivMsgCrypted = 101, + QueryPrivMsgCrypted = 102, + DccChatMsg = 103, + DccChatMsgCrypted = 104, + Irc = 105, + Folder = 106, + Home = 107, + BookMarks = 108, + Spy = 109, + Kick = 110, + Linux = 111, + Links = 112, + RegUsers = 113, + TrayIcon = 114, + UnsetMode = 115, + Favorite = 116, + Toolbar = 117, + ServerFavorite = 118, + Log = 119, + Remove = 120, + File = 121, + Icq = 122, + IcqYellow = 123, + IcqRed = 124, + IcqBlue = 125, + IcqLightGreen = 126, + IcqLightYellow = 127, + Message = 128, + MessageSent = 129, + BlueSquare = 130, + VioletSquare = 131, + YellowSquare = 132, + GreenSquare = 133, + BlackSquare = 134, + RedSquare = 135, + CyanSquare = 136, + DarkGreenSquare = 137, + Terminal = 138, + WallOps = 139, + Invisible = 140, + ServerNotice = 141, + Gnutella = 142, + Search = 143, + Files = 144, + NewNetwork = 145, + Package = 146, + NewServer = 147, + Idea = 148, + Colors = 149, + Gui = 150, + IrcView = 151, + Alias = 152, + ChannelNotice = 153, ChannelNoticeCrypted = 154, - QueryNotice = 155, - QueryNoticeCrypted = 156, - MenuBar = 157, - Popup = 158, - Prologue = 159, - Epilogue = 160, - SharedFiles = 161, - CtcpReplyUnknown = 162, - Canvas = 163, - NickServ = 164, - ChanServ = 165, - DccVoice = 166, - Play = 167, - Record = 168, - KickOff = 169, - Away = 170, - Ident = 171, - HomePage = 172, - List = 173, - HalfOp = 174, - HalfDeOp = 175, - Invite = 176, - MultiMedia = 177, - User = 178, - Input = 179, - Messages = 180, - QueryTrace = 181, - NoChannel = 182, - BroadcastPrivMsg = 183, - BroadcastNotice = 184, - Url = 185, - RawEvent = 186, - RawEventNoHandlers = 187, - MeKick = 188, - MeOp = 189, - MeVoice = 190, - MeDeOp = 191, - MeDeVoice = 192, - MeHalfOp = 193, - MeDeHalfOp = 194, - MeBan = 195, - MeUnBan = 196, - MeBanExcept = 197, - MeBanUnExcept = 198, - MeInviteExcept = 199, - MeInviteUnExcept = 200, - ClassicWindowList = 201, - TreeWindowList = 202, - Ignore = 203, - UserList = 204, - Stats = 205, - PopupMenu = 206, - ServerConfiguration = 207, - Irc0 = 208, - Irc1 = 209, - Irc2 = 210, - Irc3 = 211, - Irc4 = 212, - Irc5 = 213, - Heart = 214, - HeartBroken = 215, - Rose = 216, - BigGrin = 217, - BigGrinGlasses = 218, - BigGrinEyes = 219, - TextExclamative = 220, - TextPoints = 221, - Kiss = 222, - Surprised1 = 223, - Ugly = 224, - Angry = 225, - Surprised2 = 226, - Smile = 227, - Tongue = 228, - Ssl = 229, - Cry = 230, - Eye = 231, - DeadChannel = 232, - DeadQuery = 233, - Sound = 234, - ToolBarEditor = 235, - TextEncoding = 236, - NewItem = 237, - NewItemByWizard = 238, - DeleteItem = 239, - EditItem = 240, - FileTransfer = 241, - ChanAdmin = 242, - ChanUnAdmin = 243, - MeChanAdmin = 244, - MeChanUnAdmin = 245, - UserOp = 246, - DeUserOp = 247, - MeUserOp = 248, - MeDeUserOp = 249, - Applet = 250, - Spam = 251, - Transparent = 252, - Notifier = 253, - UserWindow = 254, - StatusBar = 255, - NotAway = 256, - Plus = 257, - Minus = 258, - BinaryText = 259, - ChanOwner = 260, - ChanUnOwner = 261, - MeChanOwner = 262, - MeChanUnOwner = 263, - Afraid = 264, - Teeth = 265, - SysMonitor = 266, - SayColors = 267, - Finger = 268, - HighlightText = 269, - TearSmile = 270, - Shy = 271, - ServerError = 272, - Cafe = 273, - Addons = 274, - ChanOwnerAway = 275, - OpAway = 276, - VoiceAway = 277, - ChanAdminAway = 278, - UserOpAway = 279, - HalfOpAway = 280, - ClassEditor = 281, - Demoralized = 282, - Slurp = 283, - NameSpace = 284, - SaySmile = 285, - SayKvs = 286, - ThemeOptions = 287, - Bug = 288, - Refresh = 289, - Theme = 290, - ScreenShot = 291, - Update = 292, - NotUpdate = 293, - FailUpdate = 294, - UnreadText = 295, - IrcOp = 296, - IrcOpAway = 297, - DeIrcOp = 298, - MeIrcOp = 299, - MeDeIrcOp = 300, - Angel = 301, - Clown = 302, - Devil = 303, - InLove = 304, - Ninja = 305, - Pirate = 306, - Puke = 307, - Rage = 308, - Class = 309, - ClassNotBuilt = 310, - Function = 311, - SexMale = 312, - SexFemale = 313, - IrcBot = 314, - AlienIrcOp = 315, - MemoServ = 316, - Info = 317, - Warning = 318, - Shield = 319, - RawEventEditor = 320, - EventEditor = 321, - ActionEditor = 322, - AliasEditor = 323, - PopupEditor = 324, - Dcc = 325, - Socket = 326, - Cake = 327, - HandIly = 328, - ThumbDown = 329, - ThumbUp = 330, - FacePalm = 331, - Identity = 332, - NickPopup = 333, - Tools = 334, - FavoriteOff = 335, - NewProxy = 336, - IconCount = 337 + QueryNotice = 155, + QueryNoticeCrypted = 156, + MenuBar = 157, + Popup = 158, + Prologue = 159, + Epilogue = 160, + SharedFiles = 161, + CtcpReplyUnknown = 162, + Canvas = 163, + NickServ = 164, + ChanServ = 165, + DccVoice = 166, + Play = 167, + Record = 168, + KickOff = 169, + Away = 170, + Ident = 171, + HomePage = 172, + List = 173, + HalfOp = 174, + HalfDeOp = 175, + Invite = 176, + MultiMedia = 177, + User = 178, + Input = 179, + Messages = 180, + QueryTrace = 181, + NoChannel = 182, + BroadcastPrivMsg = 183, + BroadcastNotice = 184, + Url = 185, + RawEvent = 186, + RawEventNoHandlers = 187, + MeKick = 188, + MeOp = 189, + MeVoice = 190, + MeDeOp = 191, + MeDeVoice = 192, + MeHalfOp = 193, + MeDeHalfOp = 194, + MeBan = 195, + MeUnBan = 196, + MeBanExcept = 197, + MeBanUnExcept = 198, + MeInviteExcept = 199, + MeInviteUnExcept = 200, + ClassicWindowList = 201, + TreeWindowList = 202, + Ignore = 203, + UserList = 204, + Stats = 205, + PopupMenu = 206, + ServerConfiguration = 207, + Irc0 = 208, + Irc1 = 209, + Irc2 = 210, + Irc3 = 211, + Irc4 = 212, + Irc5 = 213, + Heart = 214, + HeartBroken = 215, + Rose = 216, + BigGrin = 217, + BigGrinGlasses = 218, + BigGrinEyes = 219, + TextExclamative = 220, + TextPoints = 221, + Kiss = 222, + Surprised1 = 223, + Ugly = 224, + Angry = 225, + Surprised2 = 226, + Smile = 227, + Tongue = 228, + Ssl = 229, + Cry = 230, + Eye = 231, + DeadChannel = 232, + DeadQuery = 233, + Sound = 234, + ToolBarEditor = 235, + TextEncoding = 236, + NewItem = 237, + NewItemByWizard = 238, + DeleteItem = 239, + EditItem = 240, + FileTransfer = 241, + ChanAdmin = 242, + ChanUnAdmin = 243, + MeChanAdmin = 244, + MeChanUnAdmin = 245, + UserOp = 246, + DeUserOp = 247, + MeUserOp = 248, + MeDeUserOp = 249, + Applet = 250, + Spam = 251, + Transparent = 252, + Notifier = 253, + UserWindow = 254, + StatusBar = 255, + NotAway = 256, + Plus = 257, + Minus = 258, + BinaryText = 259, + ChanOwner = 260, + ChanUnOwner = 261, + MeChanOwner = 262, + MeChanUnOwner = 263, + Afraid = 264, + Teeth = 265, + SysMonitor = 266, + SayColors = 267, + Finger = 268, + HighlightText = 269, + TearSmile = 270, + Shy = 271, + ServerError = 272, + Cafe = 273, + Addons = 274, + ChanOwnerAway = 275, + OpAway = 276, + VoiceAway = 277, + ChanAdminAway = 278, + UserOpAway = 279, + HalfOpAway = 280, + ClassEditor = 281, + Demoralized = 282, + Slurp = 283, + NameSpace = 284, + SaySmile = 285, + SayKvs = 286, + ThemeOptions = 287, + Bug = 288, + Refresh = 289, + Theme = 290, + ScreenShot = 291, + Update = 292, + NotUpdate = 293, + FailUpdate = 294, + UnreadText = 295, + IrcOp = 296, + IrcOpAway = 297, + DeIrcOp = 298, + MeIrcOp = 299, + MeDeIrcOp = 300, + Angel = 301, + Clown = 302, + Devil = 303, + InLove = 304, + Ninja = 305, + Pirate = 306, + Puke = 307, + Rage = 308, + Class = 309, + ClassNotBuilt = 310, + Function = 311, + SexMale = 312, + SexFemale = 313, + IrcBot = 314, + AlienIrcOp = 315, + MemoServ = 316, + Info = 317, + Warning = 318, + Shield = 319, + RawEventEditor = 320, + EventEditor = 321, + ActionEditor = 322, + AliasEditor = 323, + PopupEditor = 324, + Dcc = 325, + Socket = 326, + Cake = 327, + HandIly = 328, + ThumbDown = 329, + ThumbUp = 330, + FacePalm = 331, + Identity = 332, + NickPopup = 333, + Tools = 334, + FavoriteOff = 335, + NewProxy = 336, + IconCount = 337 }; /** @@ -515,13 +517,15 @@ public: * \brief Destroys the icon manager object */ ~KviIconManager(); + private: - QPixmap * m_smallIcons[IconCount]; - KviIconWidget * m_pIconWidget; - KviPointerHashTable * m_pCachedImages; - KviPointerHashTable * m_pIconNames; - unsigned int m_uCacheTotalSize; - unsigned int m_uCacheMaxSize; + QPixmap * m_smallIcons[IconCount]; + KviIconWidget * m_pIconWidget; + KviPointerHashTable * m_pCachedImages; + KviPointerHashTable * m_pIconNames; + unsigned int m_uCacheTotalSize; + unsigned int m_uCacheMaxSize; + public: /** * \brief Returns the image @@ -565,7 +569,10 @@ public: * \return QPixmap * */ QPixmap * getPixmap(const QString & szName) - { KviCachedPixmap * pPix = getPixmapWithCache(szName); return pPix ? pPix->pixmap() : 0; }; + { + KviCachedPixmap * pPix = getPixmapWithCache(szName); + return pPix ? pPix->pixmap() : 0; + }; /** * \brief Returns the big icon @@ -583,7 +590,7 @@ public: * is returned * \return QPixmap * */ - QPixmap * getSmallIcon(SmallIcon eIcon){ return eIcon < IconCount ? (m_smallIcons[eIcon] ? m_smallIcons[eIcon] : loadSmallIcon(eIcon) ) : 0; }; + QPixmap * getSmallIcon(SmallIcon eIcon) { return eIcon < IconCount ? (m_smallIcons[eIcon] ? m_smallIcons[eIcon] : loadSmallIcon(eIcon)) : 0; }; /** * \brief Returns the small icon @@ -592,7 +599,7 @@ public: * is returned. This is provided for convenience * \return QPixmap * */ - QPixmap * getSmallIcon(int iIcon){ return iIcon < IconCount ? (m_smallIcons[iIcon] ? m_smallIcons[iIcon] : loadSmallIcon(iIcon)) : 0; }; + QPixmap * getSmallIcon(int iIcon) { return iIcon < IconCount ? (m_smallIcons[iIcon] ? m_smallIcons[iIcon] : loadSmallIcon(iIcon)) : 0; }; /** * \brief Returns the name of the small icon @@ -715,6 +722,7 @@ public: * \brief Destroys the icon table widget */ ~KviIconWidget(); + protected: /** * \brief Initializes the table containing the icons diff --git a/src/kvirc/kernel/KviInternalCommand.cpp b/src/kvirc/kernel/KviInternalCommand.cpp index 44a3300ce..4c271b437 100644 --- a/src/kvirc/kernel/KviInternalCommand.cpp +++ b/src/kvirc/kernel/KviInternalCommand.cpp @@ -28,32 +28,30 @@ // FIXME: #warning "LOCALIZE THIS!" -#define JOIN_CHANNEL_ON_NETWORK(_szChan,_szNet) \ - "foreach(%ctx,$context.list)" \ - "{" \ - " if(" \ +#define JOIN_CHANNEL_ON_NETWORK(_szChan, _szNet) \ + "foreach(%ctx,$context.list)" \ + "{" \ + " if(" \ " $str.contains($my.server(%ctx),\"" _szNet "\",false) ||" \ - " $str.contains($my.network(%ctx),\"" _szNet "\",false)" \ - " )" \ - " {" \ - " foreach(%chan,$window.list(channel,%ctx))" \ - " {" \ - " if($target(%chan) == \"" _szChan "\")" \ - " {" \ - " window.activate %chan;" \ - " return;" \ - " }" \ - " }" \ - " rebind $console(%ctx);" \ - " join \"" _szChan "\";" \ - " return;" \ - " }" \ - "}" \ + " $str.contains($my.network(%ctx),\"" _szNet "\",false)" \ + " )" \ + " {" \ + " foreach(%chan,$window.list(channel,%ctx))" \ + " {" \ + " if($target(%chan) == \"" _szChan "\")" \ + " {" \ + " window.activate %chan;" \ + " return;" \ + " }" \ + " }" \ + " rebind $console(%ctx);" \ + " join \"" _szChan "\";" \ + " return;" \ + " }" \ + "}" \ "server -u -c=\"join " _szChan "\" net:" _szNet "" - -static const char * internalCommandTable[KVI_NUM_INTERNAL_COMMANDS] = -{ +static const char * internalCommandTable[KVI_NUM_INTERNAL_COMMANDS] = { "echo Internal command error: index out of range", "help.open -n -m", "help.open -n", @@ -88,10 +86,9 @@ static const char * internalCommandTable[KVI_NUM_INTERNAL_COMMANDS] = "actioneditor.open", "quit", "openurl http://www.kvirc.ru", - JOIN_CHANNEL_ON_NETWORK("#KVIrc","freenode") + JOIN_CHANNEL_ON_NETWORK("#KVIrc", "freenode") }; - const char * kvi_getInternalCommandBuffer(int idx) { if(idx > 0 && idx < KVI_NUM_INTERNAL_COMMANDS) diff --git a/src/kvirc/kernel/KviIpcSentinel.cpp b/src/kvirc/kernel/KviIpcSentinel.cpp index 3a265585d..9313f8f7a 100644 --- a/src/kvirc/kernel/KviIpcSentinel.cpp +++ b/src/kvirc/kernel/KviIpcSentinel.cpp @@ -27,345 +27,348 @@ #include #include "KviIpcSentinel.h" - #ifndef COMPILE_NO_IPC - #include "KviMemory.h" - #include "KviApplication.h" - #include "KviQString.h" +#include "KviMemory.h" +#include "KviApplication.h" +#include "KviQString.h" #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - static HWND kvi_win_findIpcSentinel() - { - HWND hWnd = ::FindWindow("QWidget","[Non-Commercial] - kvirc4_ipc_sentinel"); - if(hWnd)return hWnd; - hWnd = ::FindWindow("QWidget","[Freeware] - kvirc4_ipc_sentinel"); - if(hWnd)return hWnd; - hWnd = ::FindWindow("QWidget","kvirc4_ipc_sentinel"); +static HWND kvi_win_findIpcSentinel() +{ + HWND hWnd = ::FindWindow("QWidget", "[Non-Commercial] - kvirc4_ipc_sentinel"); + if(hWnd) return hWnd; - } + hWnd = ::FindWindow("QWidget", "[Freeware] - kvirc4_ipc_sentinel"); + if(hWnd) + return hWnd; + hWnd = ::FindWindow("QWidget", "kvirc4_ipc_sentinel"); + return hWnd; +} #else - #if defined(COMPILE_X11_SUPPORT) && defined(COMPILE_QX11INFO_SUPPORT) +#if defined(COMPILE_X11_SUPPORT) && defined(COMPILE_QX11INFO_SUPPORT) - #include +#include - #include "KviXlib.h" // for XEvent +#include "KviXlib.h" // for XEvent - #include // for getuid, getpid - #include // for getuid, getpid - #include // for memcpy - #include // for malloc +#include // for getuid, getpid +#include // for getuid, getpid +#include // for memcpy +#include // for malloc - #include +#include - #define kvi_ipc_get_xdisplay QX11Info::display - #define kvi_ipc_get_xrootwin QX11Info::appRootWindow +#define kvi_ipc_get_xdisplay QX11Info::display +#define kvi_ipc_get_xrootwin QX11Info::appRootWindow - static Atom kvi_atom_ipc_sentinel_window; - static Atom kvi_atom_ipc_remote_command; - static Atom kvi_atom_ipc_remote_message; - static KviCString kvi_sentinel_id; - static bool g_bIpcAtomsLoaded = false; +static Atom kvi_atom_ipc_sentinel_window; +static Atom kvi_atom_ipc_remote_command; +static Atom kvi_atom_ipc_remote_message; +static KviCString kvi_sentinel_id; +static bool g_bIpcAtomsLoaded = false; - static kvi_u64_t g_uLocalInstanceId = 0; +static kvi_u64_t g_uLocalInstanceId = 0; - static void kvi_ipcLoadAtoms() - { - if(g_bIpcAtomsLoaded) - return; - g_bIpcAtomsLoaded = true; - g_uLocalInstanceId = (kvi_u64_t)::getpid(); - kvi_sentinel_id.sprintf("pane tonno e mistero - %d",getuid()); - kvi_atom_ipc_sentinel_window = XInternAtom(kvi_ipc_get_xdisplay(),"XA_KVI4_IPC_SENTINEL_WINDOW",False); - kvi_atom_ipc_remote_command = XInternAtom(kvi_ipc_get_xdisplay(),"XA_KVI4_IPC_REMOTE_COMMAND",False); - kvi_atom_ipc_remote_message = XInternAtom(kvi_ipc_get_xdisplay(),"XA_KVI4_IPC_REMOTE_MESSAGE",False); - } +static void kvi_ipcLoadAtoms() +{ + if(g_bIpcAtomsLoaded) + return; + g_bIpcAtomsLoaded = true; + g_uLocalInstanceId = (kvi_u64_t)::getpid(); + kvi_sentinel_id.sprintf("pane tonno e mistero - %d", getuid()); + kvi_atom_ipc_sentinel_window = XInternAtom(kvi_ipc_get_xdisplay(), "XA_KVI4_IPC_SENTINEL_WINDOW", False); + kvi_atom_ipc_remote_command = XInternAtom(kvi_ipc_get_xdisplay(), "XA_KVI4_IPC_REMOTE_COMMAND", False); + kvi_atom_ipc_remote_message = XInternAtom(kvi_ipc_get_xdisplay(), "XA_KVI4_IPC_REMOTE_MESSAGE", False); +} - static void kvi_ipcSetRemoteCommand(Window w,const char * command) - { - if(!command) - return; +static void kvi_ipcSetRemoteCommand(Window w, const char * command) +{ + if(!command) + return; - int len = kvi_strLen(command) + 1; + int len = kvi_strLen(command) + 1; - char * buffer = (char *)::malloc(len + 8); + char * buffer = (char *)::malloc(len + 8); - *((kvi_u64_t *)buffer) = g_uLocalInstanceId; + *((kvi_u64_t *)buffer) = g_uLocalInstanceId; - ::memcpy(buffer+8,command,len); + ::memcpy(buffer + 8, command, len); - XChangeProperty(kvi_ipc_get_xdisplay(),w,kvi_atom_ipc_remote_command, - XA_STRING,8,PropModeReplace,(const unsigned char *)buffer,len+8); + XChangeProperty(kvi_ipc_get_xdisplay(), w, kvi_atom_ipc_remote_command, + XA_STRING, 8, PropModeReplace, (const unsigned char *)buffer, len + 8); - ::free(buffer); - } + ::free(buffer); +} - static Window kvi_x11_findIpcSentinel(Window win) +static Window kvi_x11_findIpcSentinel(Window win) +{ + Atom type; + int format; + unsigned long nItems, after; + unsigned char * data = 0; + if(XGetWindowProperty(kvi_ipc_get_xdisplay(), win, kvi_atom_ipc_sentinel_window, 0, 32, false, XA_STRING, + &type, &format, &nItems, &after, &data) + == Success) + { + if((type == XA_STRING) && (format == 8)) { - Atom type; - int format; - unsigned long nItems,after; - unsigned char * data = 0; - if(XGetWindowProperty(kvi_ipc_get_xdisplay(),win,kvi_atom_ipc_sentinel_window,0,32,false,XA_STRING, - &type,&format,&nItems,&after,&data) == Success) + if((nItems == ((unsigned long)(kvi_sentinel_id.len()))) && data) { - if((type == XA_STRING) && (format == 8)) + if(kvi_strEqualCSN((const char *)data, kvi_sentinel_id.ptr(), kvi_sentinel_id.len())) { - if((nItems == ((unsigned long)(kvi_sentinel_id.len()))) && data) - { - if(kvi_strEqualCSN((const char *)data,kvi_sentinel_id.ptr(),kvi_sentinel_id.len())) - { - XFree((char *)data); - return win; - } - } + XFree((char *)data); + return win; } } + } + } - Window root,parent; - Window * children; - unsigned int nChildren; + Window root, parent; + Window * children; + unsigned int nChildren; - if(!XQueryTree(kvi_ipc_get_xdisplay(),win,&root,&parent,&children,&nChildren)) - { - if(children)XFree((char *)children); - return 0; - } + if(!XQueryTree(kvi_ipc_get_xdisplay(), win, &root, &parent, &children, &nChildren)) + { + if(children) + XFree((char *)children); + return 0; + } - Window found = 0; + Window found = 0; - for(int i=nChildren-1;(!found) && (i >= 0);i--) - found = kvi_x11_findIpcSentinel(children[i]); + for(int i = nChildren - 1; (!found) && (i >= 0); i--) + found = kvi_x11_findIpcSentinel(children[i]); - if(children)XFree((char *)children); + if(children) + XFree((char *)children); - return found; - } - #endif //!COMPILE_NO_X + return found; +} +#endif //!COMPILE_NO_X #endif +#define KVI_WINDOWS_IPC_MESSAGE 0x2FACE5 - #define KVI_WINDOWS_IPC_MESSAGE 0x2FACE5 +bool kvi_sendIpcMessage(const char * message) +{ +#if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - bool kvi_sendIpcMessage(const char * message) + HWND hSentinel = kvi_win_findIpcSentinel(); + if(hSentinel != NULL) { -#if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) + COPYDATASTRUCT cpd; + cpd.cbData = strlen(message) + 1; + cpd.dwData = KVI_WINDOWS_IPC_MESSAGE; + cpd.lpData = (void *)message; + DWORD_PTR dwResult; - HWND hSentinel = kvi_win_findIpcSentinel(); - if(hSentinel != NULL) + if(!::SendMessageTimeout(hSentinel, WM_COPYDATA, (WPARAM)NULL, (LPARAM)&cpd, SMTO_BLOCK, 1000, &dwResult)) { - COPYDATASTRUCT cpd; - cpd.cbData = strlen(message)+1; - cpd.dwData = KVI_WINDOWS_IPC_MESSAGE; - cpd.lpData = (void *)message; - DWORD_PTR dwResult; - - if(!::SendMessageTimeout(hSentinel,WM_COPYDATA,(WPARAM)NULL,(LPARAM)&cpd,SMTO_BLOCK,1000,&dwResult)) - { - qDebug("Failed to send IPC message: error code 0x%x",::GetLastError()); - } - return true; + qDebug("Failed to send IPC message: error code 0x%x", ::GetLastError()); } + return true; + } #else - #if defined(COMPILE_X11_SUPPORT) && defined(COMPILE_QX11INFO_SUPPORT) +#if defined(COMPILE_X11_SUPPORT) && defined(COMPILE_QX11INFO_SUPPORT) - kvi_ipcLoadAtoms(); + kvi_ipcLoadAtoms(); - Window sentinel = kvi_x11_findIpcSentinel(kvi_ipc_get_xrootwin()); - if(sentinel != 0) - { -// XChangeProperty(kvi_ipc_get_xdisplay(),sentinel,kvi_atom_ipc_remote_command,XA_STRING,8, -// PropModeReplace,(const unsigned char *)message,kvi_strLen(message)); - kvi_ipcSetRemoteCommand(sentinel,message); + Window sentinel = kvi_x11_findIpcSentinel(kvi_ipc_get_xrootwin()); + if(sentinel != 0) + { + // XChangeProperty(kvi_ipc_get_xdisplay(),sentinel,kvi_atom_ipc_remote_command,XA_STRING,8, + // PropModeReplace,(const unsigned char *)message,kvi_strLen(message)); + kvi_ipcSetRemoteCommand(sentinel, message); -#if (QT_VERSION < 0x050000) +#if(QT_VERSION < 0x050000) - XEvent e; - KviMemory::set(&e,0,sizeof(XEvent)); - e.type = ClientMessage; - e.xclient.display = kvi_ipc_get_xdisplay(); - e.xclient.window = sentinel; - e.xclient.message_type = kvi_atom_ipc_remote_message; - e.xclient.format = 8; + XEvent e; + KviMemory::set(&e, 0, sizeof(XEvent)); + e.type = ClientMessage; + e.xclient.display = kvi_ipc_get_xdisplay(); + e.xclient.window = sentinel; + e.xclient.message_type = kvi_atom_ipc_remote_message; + e.xclient.format = 8; - Status ret = XSendEvent(kvi_ipc_get_xdisplay(),sentinel,False,0,&e); + Status ret = XSendEvent(kvi_ipc_get_xdisplay(), sentinel, False, 0, &e); #else - // On Qt5 the ClientMessage events aren't propagated at all.. we have to rely on the property change only +// On Qt5 the ClientMessage events aren't propagated at all.. we have to rely on the property change only #endif - return true; - } - #endif //!COMPILE_NO_X -#endif - return false; + return true; } +#endif //!COMPILE_NO_X +#endif + return false; +} +////////////////////////////////////////////////////////////////////// +// class KviIpcSentinel +// +// hidden sentinel of ipc messages +// +////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////// - // class KviIpcSentinel - // - // hidden sentinel of ipc messages - // - ////////////////////////////////////////////////////////////////////// - - KviIpcSentinel::KviIpcSentinel() - : QWidget(0) - { - setObjectName("kvirc4_ipc_sentinel"); +KviIpcSentinel::KviIpcSentinel() + : QWidget(0) +{ + setObjectName("kvirc4_ipc_sentinel"); #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - setWindowFlags(Qt::FramelessWindowHint); + setWindowFlags(Qt::FramelessWindowHint); #else - #if defined(COMPILE_X11_SUPPORT) && defined(COMPILE_QX11INFO_SUPPORT) - kvi_ipcLoadAtoms(); +#if defined(COMPILE_X11_SUPPORT) && defined(COMPILE_QX11INFO_SUPPORT) + kvi_ipcLoadAtoms(); - XChangeProperty(kvi_ipc_get_xdisplay(),winId(),kvi_atom_ipc_sentinel_window,XA_STRING,8, - PropModeReplace,(const unsigned char *)kvi_sentinel_id.ptr(),kvi_sentinel_id.len()); + XChangeProperty(kvi_ipc_get_xdisplay(), winId(), kvi_atom_ipc_sentinel_window, XA_STRING, 8, + PropModeReplace, (const unsigned char *)kvi_sentinel_id.ptr(), kvi_sentinel_id.len()); - kvi_ipcSetRemoteCommand(winId(),""); - #endif //!COMPILE_NO_X + kvi_ipcSetRemoteCommand(winId(), ""); +#endif //!COMPILE_NO_X #endif - move(-50,-50); - resize(1,1); + move(-50, -50); + resize(1, 1); #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - // we need to show the window once otherwise it will never get "realized" - // and we will not be able to find it via FindWindow() - show(); + // we need to show the window once otherwise it will never get "realized" + // and we will not be able to find it via FindWindow() + show(); #endif - hide(); + hide(); +} - } - - KviIpcSentinel::~KviIpcSentinel() - { - } +KviIpcSentinel::~KviIpcSentinel() +{ +} #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - bool KviIpcSentinel::winEvent(MSG * msg, long * result) +bool KviIpcSentinel::winEvent(MSG * msg, long * result) +{ + if(msg->message == WM_COPYDATA) { - if(msg->message == WM_COPYDATA) + COPYDATASTRUCT * cpd = (COPYDATASTRUCT *)msg->lParam; + if(cpd) { - COPYDATASTRUCT * cpd = (COPYDATASTRUCT *)msg->lParam; - if(cpd) + if(cpd->dwData == KVI_WINDOWS_IPC_MESSAGE) { - if(cpd->dwData == KVI_WINDOWS_IPC_MESSAGE) - { - if(g_pApp) - g_pApp->ipcMessage((char *)(cpd->lpData)); - if(result) - *result = 0; - return true; - } + if(g_pApp) + g_pApp->ipcMessage((char *)(cpd->lpData)); + if(result) + *result = 0; + return true; } } - return false; } + return false; +} #else - #if defined(COMPILE_X11_SUPPORT) && defined(COMPILE_QX11INFO_SUPPORT) - - bool KviIpcSentinel::x11GetRemoteMessage() +#if defined(COMPILE_X11_SUPPORT) && defined(COMPILE_QX11INFO_SUPPORT) + +bool KviIpcSentinel::x11GetRemoteMessage() +{ + Atom type; + int format; + unsigned long nItems, after; + unsigned char * data = 0; + KviCString szData; + + if(XGetWindowProperty(kvi_ipc_get_xdisplay(), winId(), kvi_atom_ipc_remote_command, 0, 1024, false, XA_STRING, + &type, &format, &nItems, &after, &data) + == Success) + { + if((type == XA_STRING) && (format == 8) && (nItems > 8) && data) { - Atom type; - int format; - unsigned long nItems,after; - unsigned char * data = 0; - KviCString szData; - - if(XGetWindowProperty(kvi_ipc_get_xdisplay(),winId(),kvi_atom_ipc_remote_command,0,1024,false,XA_STRING, - &type,&format,&nItems,&after,&data) == Success) - { - if((type == XA_STRING) && (format == 8) && (nItems > 8) && data) - { - kvi_u32_t uSenderId = *((kvi_u32_t *)(data)); - if(uSenderId != g_uLocalInstanceId) - szData = (char *)(data + 8); - XFree((char *)data); - } - } + kvi_u32_t uSenderId = *((kvi_u32_t *)(data)); + if(uSenderId != g_uLocalInstanceId) + szData = (char *)(data + 8); + XFree((char *)data); + } + } - if(szData.isEmpty()) - return false; // no command, or our own command + if(szData.isEmpty()) + return false; // no command, or our own command - kvi_ipcSetRemoteCommand(winId(),""); + kvi_ipcSetRemoteCommand(winId(), ""); - if(g_pApp) - g_pApp->ipcMessage(szData.ptr()); - return true; - } + if(g_pApp) + g_pApp->ipcMessage(szData.ptr()); + return true; +} - bool KviIpcSentinel::x11Event(XEvent *e) - { - if(e->type == ClientMessage) - { - if((e->xclient.message_type = kvi_atom_ipc_remote_message) && (e->xclient.format == 8)) - return x11GetRemoteMessage(); - } - return false; - } - #endif //!COMPILE_NO_X +bool KviIpcSentinel::x11Event(XEvent * e) +{ + if(e->type == ClientMessage) + { + if((e->xclient.message_type = kvi_atom_ipc_remote_message) && (e->xclient.format == 8)) + return x11GetRemoteMessage(); + } + return false; +} +#endif //!COMPILE_NO_X #endif -#if (QT_VERSION >= 0x050000) - #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - - #else - #if defined(COMPILE_X11_SUPPORT) && defined(COMPILE_QX11INFO_SUPPORT) - // This is not an XEvent anymore.... it's a xcb_generic_event_t actually. - // But we don't want to add yet another dependency. - // Also it turns out that Qt5 filters out ClientMessage events (it uses them for its own purposes) - // Have to rely on the sole PropertyNotify instead :( - - extern "C" { - - typedef struct { - kvi_u8_t response_type; - kvi_u8_t pad0; - kvi_u16_t sequence; - kvi_u32_t pad[7]; - kvi_u32_t full_sequence; - } fake_xcb_generic_event_t; - - typedef struct xcb_property_notify_event_t { - kvi_u8_t response_type; - kvi_u8_t pad0; - kvi_u16_t sequence; - kvi_u32_t window; - kvi_u32_t atom; - // .. other stuff follows, but we don't care - } fake_xcb_property_notify_event_t; - - #define FAKE_XCB_PROPERTY_NOTIFY 28 +#if(QT_VERSION >= 0x050000) +#if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - } - #endif - #endif +#else +#if defined(COMPILE_X11_SUPPORT) && defined(COMPILE_QX11INFO_SUPPORT) +// This is not an XEvent anymore.... it's a xcb_generic_event_t actually. +// But we don't want to add yet another dependency. +// Also it turns out that Qt5 filters out ClientMessage events (it uses them for its own purposes) +// Have to rely on the sole PropertyNotify instead :( + +extern "C" { + +typedef struct +{ + kvi_u8_t response_type; + kvi_u8_t pad0; + kvi_u16_t sequence; + kvi_u32_t pad[7]; + kvi_u32_t full_sequence; +} fake_xcb_generic_event_t; + +typedef struct xcb_property_notify_event_t +{ + kvi_u8_t response_type; + kvi_u8_t pad0; + kvi_u16_t sequence; + kvi_u32_t window; + kvi_u32_t atom; + // .. other stuff follows, but we don't care +} fake_xcb_property_notify_event_t; + +#define FAKE_XCB_PROPERTY_NOTIFY 28 +} +#endif +#endif - bool KviIpcSentinel::nativeEvent(const QByteArray &id,void * msg,long * res) - { - #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - return winEvent((MSG *)msg,res); - #else - #if defined(COMPILE_X11_SUPPORT) && defined(COMPILE_QX11INFO_SUPPORT) +bool KviIpcSentinel::nativeEvent(const QByteArray & id, void * msg, long * res) +{ +#if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) + return winEvent((MSG *)msg, res); +#else +#if defined(COMPILE_X11_SUPPORT) && defined(COMPILE_QX11INFO_SUPPORT) - fake_xcb_generic_event_t *event = static_cast(msg); + fake_xcb_generic_event_t * event = static_cast(msg); - if(event->response_type == FAKE_XCB_PROPERTY_NOTIFY) - { - fake_xcb_property_notify_event_t * ev = static_cast(msg); + if(event->response_type == FAKE_XCB_PROPERTY_NOTIFY) + { + fake_xcb_property_notify_event_t * ev = static_cast(msg); - if(ev->atom == (kvi_u32_t)kvi_atom_ipc_remote_command) - return x11GetRemoteMessage(); - } - #endif - return false; - #endif + if(ev->atom == (kvi_u32_t)kvi_atom_ipc_remote_command) + return x11GetRemoteMessage(); } +#endif + return false; +#endif +} #endif #endif diff --git a/src/kvirc/kernel/KviIpcSentinel.h b/src/kvirc/kernel/KviIpcSentinel.h index 0be2baffc..1512e95da 100644 --- a/src/kvirc/kernel/KviIpcSentinel.h +++ b/src/kvirc/kernel/KviIpcSentinel.h @@ -27,45 +27,46 @@ #include "kvi_settings.h" #ifndef COMPILE_NO_IPC - #include "KviCString.h" - #include +#include "KviCString.h" +#include #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - #include +#include #else - #if defined(COMPILE_X11_SUPPORT) && defined(COMPILE_QX11INFO_SUPPORT) - #if (QT_VERSION >= 0x050000) - #include "KviXlib.h" // for XEvent - #else - #include - #endif - #endif +#if defined(COMPILE_X11_SUPPORT) && defined(COMPILE_QX11INFO_SUPPORT) +#if(QT_VERSION >= 0x050000) +#include "KviXlib.h" // for XEvent +#else +#include +#endif +#endif #endif - ////////////////////////////////////////////////////////////////////// - // class KviIpcSentinel - // - ////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////// +// class KviIpcSentinel +// +////////////////////////////////////////////////////////////////////// + +class KVIRC_API KviIpcSentinel : public QWidget +{ + Q_OBJECT +public: + KviIpcSentinel(); + ~KviIpcSentinel(); - class KVIRC_API KviIpcSentinel : public QWidget - { - Q_OBJECT - public: - KviIpcSentinel(); - ~KviIpcSentinel(); - protected: // protected members +protected: // protected members #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - virtual bool winEvent(MSG * msg, long * result); + virtual bool winEvent(MSG * msg, long * result); #else - #if defined(COMPILE_X11_SUPPORT) && defined(COMPILE_QX11INFO_SUPPORT) - virtual bool x11Event(XEvent *e); - bool x11GetRemoteMessage(); - #endif //!COMPILE_X11_SUPPORT +#if defined(COMPILE_X11_SUPPORT) && defined(COMPILE_QX11INFO_SUPPORT) + virtual bool x11Event(XEvent * e); + bool x11GetRemoteMessage(); +#endif //!COMPILE_X11_SUPPORT #endif -#if (QT_VERSION >= 0x050000) - virtual bool nativeEvent(const QByteArray &id,void * msg,long * res); +#if(QT_VERSION >= 0x050000) + virtual bool nativeEvent(const QByteArray & id, void * msg, long * res); #endif - }; +}; #endif //!COMPILE_NO_IPC #endif //_KVI_IPC_H_ diff --git a/src/kvirc/kernel/KviIrcConnection.cpp b/src/kvirc/kernel/KviIrcConnection.cpp index e5dd2e808..e7a591d68 100644 --- a/src/kvirc/kernel/KviIrcConnection.cpp +++ b/src/kvirc/kernel/KviIrcConnection.cpp @@ -22,8 +22,6 @@ // //============================================================================= - - #include "KviIrcConnection.h" #include "KviIrcConnectionTarget.h" #include "KviIrcConnectionUserInfo.h" @@ -76,11 +74,11 @@ #include #include -extern KVIRC_API KviIrcServerDataBase * g_pServerDataBase; -extern KVIRC_API KviProxyDataBase * g_pProxyDataBase; +extern KVIRC_API KviIrcServerDataBase * g_pServerDataBase; +extern KVIRC_API KviProxyDataBase * g_pProxyDataBase; -KviIrcConnection::KviIrcConnection(KviIrcContext * pContext,KviIrcConnectionTarget * pTarget,KviUserIdentity * pIdentity) -: QObject() +KviIrcConnection::KviIrcConnection(KviIrcContext * pContext, KviIrcConnectionTarget * pTarget, KviUserIdentity * pIdentity) + : QObject() { m_bIdentdAttached = false; m_pContext = pContext; @@ -118,14 +116,13 @@ KviIrcConnection::~KviIrcConnection() m_bIdentdAttached = false; if(m_pLocalhostDns) { - QObject::disconnect(m_pLocalhostDns,SIGNAL(lookupDone(KviDnsResolver *)),0,0); + QObject::disconnect(m_pLocalhostDns, SIGNAL(lookupDone(KviDnsResolver *)), 0, 0); if(m_pLocalhostDns->isRunning()) m_pLocalhostDns->deleteLater(); else delete m_pLocalhostDns; } - delete m_pNotifyListTimer; m_pNotifyListTimer = nullptr; @@ -168,7 +165,7 @@ void KviIrcConnection::setEncoding(const QString & szEncoding) return; if(!c) { - m_pConsole->output(KVI_OUT_SYSTEMERROR,__tr2qs("Failed to set the encoding to %Q: mapping not available."),&szEncoding); + m_pConsole->output(KVI_OUT_SYSTEMERROR, __tr2qs("Failed to set the encoding to %Q: mapping not available."), &szEncoding); return; } @@ -179,7 +176,7 @@ void KviIrcConnection::setEncoding(const QString & szEncoding) { ch->forceTextCodec(c); if(_OUTPUT_VERBOSE) - ch->output(KVI_OUT_VERBOSE,__tr2qs("Changed text encoding to %Q"),&szTmp); + ch->output(KVI_OUT_VERBOSE, __tr2qs("Changed text encoding to %Q"), &szTmp); } } @@ -189,7 +186,7 @@ void KviIrcConnection::setEncoding(const QString & szEncoding) { q->forceTextCodec(c); if(_OUTPUT_VERBOSE) - q->output(KVI_OUT_VERBOSE,__tr2qs("Changed text encoding to %Q"),&szTmp); + q->output(KVI_OUT_VERBOSE, __tr2qs("Changed text encoding to %Q"), &szTmp); } } @@ -206,7 +203,7 @@ void KviIrcConnection::setupSrvCodec() { m_pSrvCodec = KviLocale::instance()->codecForName(m_pTarget->server()->encoding().toLatin1()); if(!m_pSrvCodec) - qDebug("KviIrcConnection: can't find QTextCodec for encoding %s",m_pTarget->server()->encoding().toUtf8().data()); + qDebug("KviIrcConnection: can't find QTextCodec for encoding %s", m_pTarget->server()->encoding().toUtf8().data()); } if(!m_pSrvCodec) @@ -216,7 +213,7 @@ void KviIrcConnection::setupSrvCodec() { m_pSrvCodec = KviLocale::instance()->codecForName(m_pTarget->network()->encoding().toLatin1()); if(!m_pSrvCodec) - qDebug("KviIrcConnection: can't find QTextCodec for encoding %s",m_pTarget->network()->encoding().toUtf8().data()); + qDebug("KviIrcConnection: can't find QTextCodec for encoding %s", m_pTarget->network()->encoding().toUtf8().data()); } } @@ -234,7 +231,7 @@ void KviIrcConnection::setupTextCodec() { m_pTextCodec = KviLocale::instance()->codecForName(m_pTarget->server()->textEncoding().toLatin1()); if(!m_pTextCodec) - qDebug("KviIrcConnection: can't find QTextCodec for encoding %s",m_pTarget->server()->textEncoding().toUtf8().data()); + qDebug("KviIrcConnection: can't find QTextCodec for encoding %s", m_pTarget->server()->textEncoding().toUtf8().data()); } if(!m_pTextCodec) @@ -244,7 +241,7 @@ void KviIrcConnection::setupTextCodec() { m_pTextCodec = KviLocale::instance()->codecForName(m_pTarget->network()->textEncoding().toLatin1()); if(!m_pTextCodec) - qDebug("KviIrcConnection: can't find QTextCodec for encoding %s",m_pTarget->network()->textEncoding().toUtf8().data()); + qDebug("KviIrcConnection: can't find QTextCodec for encoding %s", m_pTarget->network()->textEncoding().toUtf8().data()); } } @@ -314,7 +311,7 @@ void KviIrcConnection::linkEstablished() // FIXME: With STARTTLS this is called TWICE! if(KviPointerList * l = context()->monitorList()) { - for(KviIrcDataStreamMonitor *m = l->first();m;m = l->next()) + for(KviIrcDataStreamMonitor * m = l->first(); m; m = l->next()) m->connectionInitiated(); } @@ -351,7 +348,7 @@ void KviIrcConnection::linkEstablished() // FIXME: The PING method does NOT work with bouncers. We need a timeout here. - if(sendFmtData("CAP LS\r\nPING :%Q",&(target()->server()->hostName()))) + if(sendFmtData("CAP LS\r\nPING :%Q", &(target()->server()->hostName()))) return; //m_pConsole->output(KVI_OUT_SYSTEMMESSAGE,__tr2qs("Failed to send the CAP LS request. Server capabilities will not be detected.")); @@ -361,9 +358,7 @@ void KviIrcConnection::linkEstablished() return; if( - (!link()->socket()->usingSSL()) && - target()->server()->enabledSTARTTLS() - ) + (!link()->socket()->usingSSL()) && target()->server()->enabledSTARTTLS()) { #ifdef COMPILE_SSL_SUPPORT // STARTTLS without CAP (forced request) @@ -388,12 +383,12 @@ bool KviIrcConnection::trySTARTTLS(bool bAppendPing) { // Check if the server supports STARTTLS protocol and we want to // connect through it - bool bRet = bAppendPing ? sendFmtData("STARTTLS\r\nPING :%Q",&(target()->server()->hostName())) : sendFmtData("STARTTLS"); + bool bRet = bAppendPing ? sendFmtData("STARTTLS\r\nPING :%Q", &(target()->server()->hostName())) : sendFmtData("STARTTLS"); if(!bRet) { // Cannot send command - m_pConsole->output(KVI_OUT_SOCKETERROR,__tr2qs("Impossible to send STARTTLS command to the IRC server. Your connection will NOT be encrypted")); + m_pConsole->output(KVI_OUT_SOCKETERROR, __tr2qs("Impossible to send STARTTLS command to the IRC server. Your connection will NOT be encrypted")); return false; } @@ -417,9 +412,11 @@ void KviIrcConnection::enableStartTlsSupport(bool bEnable) // ssl handshake e switch del socket //qDebug("Starting SSL handshake..."); link()->socket()->enterSSLMode(); // FIXME: this should be forwarded through KviIrcLink, probably - } else { + } + else + { // The server does not support STARTTLS - m_pConsole->output(KVI_OUT_SOCKETERROR,__tr2qs("The server does not support STARTTLS command. Your connection will NOT be encrypted")); + m_pConsole->output(KVI_OUT_SOCKETERROR, __tr2qs("The server does not support STARTTLS command. Your connection will NOT be encrypted")); } } #endif // COMPILE_SSL_SUPPORT @@ -431,14 +428,11 @@ void KviIrcConnection::handleInitialCapLs() m_pStateData->setInsideInitialCapLs(false); - // STARTTLS support: this has to be checked first because it could imply - // a full cap renegotiation +// STARTTLS support: this has to be checked first because it could imply +// a full cap renegotiation #ifdef COMPILE_SSL_SUPPORT if( - (!link()->socket()->usingSSL()) && - target()->server()->enabledSTARTTLS() && - serverInfo()->supportedCaps().contains("tls",Qt::CaseInsensitive) - ) + (!link()->socket()->usingSSL()) && target()->server()->enabledSTARTTLS() && serverInfo()->supportedCaps().contains("tls", Qt::CaseInsensitive)) { if(trySTARTTLS(false)) return; // STARTTLS negotiation in progress @@ -447,9 +441,9 @@ void KviIrcConnection::handleInitialCapLs() QString szRequests; - auto cap_add = [&](const char *c) + auto cap_add = [&](const char * c) { - if(serverInfo()->supportedCaps().contains(c,Qt::CaseInsensitive)) + if(serverInfo()->supportedCaps().contains(c, Qt::CaseInsensitive)) { szRequests.append(c); szRequests.append(" "); @@ -468,10 +462,13 @@ void KviIrcConnection::handleInitialCapLs() cap_add("userhost-in-names"); cap_add("chghost"); - if(szRequests.isEmpty()) { + if(szRequests.isEmpty()) + { endInitialCapNegotiation(); - } else { - sendFmtData("CAP REQ :%s",szRequests.trimmed().toUtf8().data()); + } + else + { + sendFmtData("CAP REQ :%s", szRequests.trimmed().toUtf8().data()); m_pStateData->setInsideInitialCapReq(true); } } @@ -487,9 +484,7 @@ void KviIrcConnection::handleInitialCapAck() //SASL if( - target()->server()->enabledSASL() && - m_pStateData->enabledCaps().contains("sasl",Qt::CaseInsensitive) - ) + target()->server()->enabledSASL() && m_pStateData->enabledCaps().contains("sasl", Qt::CaseInsensitive)) { m_pStateData->setInsideAuthenticate(true); bUsed = true; @@ -512,8 +507,8 @@ void KviIrcConnection::handleAuthenticate(KviCString & szAuth) //PLAIN KviCString szOut; - if(KviSASL::plainMethod(szAuth,szOut,szNick,szPass)) - sendFmtData("AUTHENTICATE %s",szOut.ptr()); + if(KviSASL::plainMethod(szAuth, szOut, szNick, szPass)) + sendFmtData("AUTHENTICATE %s", szOut.ptr()); else sendFmtData("AUTHENTICATE *"); } @@ -532,7 +527,7 @@ void KviIrcConnection::endInitialCapNegotiation() void KviIrcConnection::handleFailedInitialCapLs() { - m_pConsole->output(KVI_OUT_SYSTEMMESSAGE,__tr2qs("Extended Capabilities don't seem to be supported by the server")); + m_pConsole->output(KVI_OUT_SYSTEMMESSAGE, __tr2qs("Extended Capabilities don't seem to be supported by the server")); m_pStateData->setInsideInitialCapLs(false); loginToIrcServer(); @@ -555,7 +550,7 @@ void KviIrcConnection::linkTerminated() if(KviPointerList * l = context()->monitorList()) { - for(KviIrcDataStreamMonitor *m = l->first();m;m = l->next()) + for(KviIrcDataStreamMonitor * m = l->first(); m; m = l->next()) m->connectionTerminated(); } @@ -578,7 +573,7 @@ KviChannelWindow * KviIrcConnection::findChannel(const QString & szName) { for(KviChannelWindow * c = m_pChannelList->first(); c; c = m_pChannelList->next()) { - if(KviQString::equalCI(szName,c->windowName())) + if(KviQString::equalCI(szName, c->windowName())) return c; } return 0; @@ -597,11 +592,14 @@ int KviIrcConnection::getCommonChannels(const QString & szNick, QString & szChan char uFlag = c->getUserFlag(szNick); if(uFlag) { - KviQString::appendFormatted(szChansBuffer,bAddEscapeSequences ? "%c\r!c\r%Q\r" : "%c%Q",uFlag,&(c->windowName())); - } else { + KviQString::appendFormatted(szChansBuffer, bAddEscapeSequences ? "%c\r!c\r%Q\r" : "%c%Q", uFlag, &(c->windowName())); + } + else + { if(bAddEscapeSequences) - KviQString::appendFormatted(szChansBuffer,"\r!c\r%Q\r",&(c->windowName())); - else szChansBuffer.append(c->windowName()); + KviQString::appendFormatted(szChansBuffer, "\r!c\r%Q\r", &(c->windowName())); + else + szChansBuffer.append(c->windowName()); } iCount++; } @@ -649,9 +647,11 @@ KviChannelWindow * KviIrcConnection::createChannel(const QString & szName) { g_pMainWindow->setActiveWindow(c); } - } else { + } + else + { c = new KviChannelWindow(m_pConsole, szName); - g_pMainWindow->addWindow(c,!KVI_OPTION_BOOL(KviOption_boolCreateMinimizedChannels)); + g_pMainWindow->addWindow(c, !KVI_OPTION_BOOL(KviOption_boolCreateMinimizedChannels)); if(KVI_OPTION_BOOL(KviOption_boolPasteLastLogOnChannelJoin)) c->pasteLastLog(); @@ -659,7 +659,7 @@ KviChannelWindow * KviIrcConnection::createChannel(const QString & szName) return c; } -KviQueryWindow * KviIrcConnection::createQuery(const QString & szNick,CreateQueryVisibilityMode eVisibilityMode) +KviQueryWindow * KviIrcConnection::createQuery(const QString & szNick, CreateQueryVisibilityMode eVisibilityMode) { KviQueryWindow * q = m_pContext->findDeadQuery(szNick); if(!q) @@ -677,13 +677,13 @@ KviQueryWindow * KviIrcConnection::createQuery(const QString & szNick,CreateQuer //case CreateQueryFollowGlobalVisibilitySetting: case CreateQueryVisibilityMinimized: bShowIt = false; - break; + break; case CreateQueryVisibilityVisible: bShowIt = true; - break; + break; default: bShowIt = !KVI_OPTION_BOOL(KviOption_boolCreateIncomingQueriesAsMinimized); - break; + break; } if(q) @@ -693,9 +693,11 @@ KviQueryWindow * KviIrcConnection::createQuery(const QString & szNick,CreateQuer { g_pMainWindow->setActiveWindow(q); } - } else { + } + else + { q = new KviQueryWindow(m_pConsole, szNick); - g_pMainWindow->addWindow(q,bShowIt); + g_pMainWindow->addWindow(q, bShowIt); } return q; } @@ -704,7 +706,7 @@ KviQueryWindow * KviIrcConnection::findQuery(const QString & szName) { for(KviQueryWindow * c = m_pQueryList->first(); c; c = m_pQueryList->next()) { - if(KviQString::equalCI(szName,c->windowName())) + if(KviQString::equalCI(szName, c->windowName())) return c; } return 0; @@ -714,7 +716,7 @@ void KviIrcConnection::registerChannel(KviChannelWindow * c) { m_pChannelList->append(c); if(KVI_OPTION_BOOL(KviOption_boolLogChannelHistory)) - g_pApp->addRecentChannel(c->windowName(),m_pServerInfo->networkName()); + g_pApp->addRecentChannel(c->windowName(), m_pServerInfo->networkName()); emit(channelRegistered(c)); emit(chanListChanged()); } @@ -742,7 +744,7 @@ void KviIrcConnection::keepChannelsOpenAfterDisconnect() { while(KviChannelWindow * c = m_pChannelList->first()) { - c->outputNoFmt(KVI_OUT_SOCKETERROR,__tr2qs("Connection to server lost")); + c->outputNoFmt(KVI_OUT_SOCKETERROR, __tr2qs("Connection to server lost")); c->setDeadChan(); } } @@ -751,7 +753,7 @@ void KviIrcConnection::keepQueriesOpenAfterDisconnect() { while(KviQueryWindow * q = m_pQueryList->first()) { - q->outputNoFmt(KVI_OUT_SOCKETERROR,__tr2qs("Connection to server lost")); + q->outputNoFmt(KVI_OUT_SOCKETERROR, __tr2qs("Connection to server lost")); q->setDeadQuery(); } } @@ -760,12 +762,11 @@ void KviIrcConnection::resurrectDeadQueries() { while(KviQueryWindow * q = m_pContext->firstDeadQuery()) { - q->outputNoFmt(KVI_OUT_SOCKETMESSAGE,__tr2qs("Connection to server established")); + q->outputNoFmt(KVI_OUT_SOCKETMESSAGE, __tr2qs("Connection to server established")); q->setAliveQuery(); } } - //=== Message send stuff ====================================================// // Max buffer that can be sent to an IRC server is 512 bytes // including CRLF. (ircd simply 'cuts' messages to 512 bytes @@ -791,10 +792,10 @@ bool KviIrcConnection::sendFmtData(const char * pcFmt, ...) { KviDataBuffer * pData = new KviDataBuffer(512); kvi_va_list(list); - kvi_va_start(list,pcFmt); + kvi_va_start(list, pcFmt); bool bTruncated; //sprintf the buffer up to 512 chars (adds a CRLF too) - int iLen = kvi_irc_vsnprintf((char *)(pData->data()),pcFmt,list,&bTruncated); + int iLen = kvi_irc_vsnprintf((char *)(pData->data()), pcFmt, list, &bTruncated); kvi_va_end(list); //adjust the buffer size @@ -804,10 +805,10 @@ bool KviIrcConnection::sendFmtData(const char * pcFmt, ...) if(bTruncated) { if(!_OUTPUT_MUTE) - m_pConsole->outputNoFmt(KVI_OUT_SOCKETWARNING,__tr2qs("[LINK WARNING]: Socket message truncated to 512 bytes.")); + m_pConsole->outputNoFmt(KVI_OUT_SOCKETWARNING, __tr2qs("[LINK WARNING]: Socket message truncated to 512 bytes.")); } - QString szMsg = QString::fromLatin1((const char *)(pData->data()), iLen-2); + QString szMsg = QString::fromLatin1((const char *)(pData->data()), iLen - 2); // notify the monitors if(KviPointerList * l = context()->monitorList()) @@ -820,7 +821,7 @@ bool KviIrcConnection::sendFmtData(const char * pcFmt, ...) } // Trigger OnOutboundTraffic event - KVS_TRIGGER_EVENT_1(KviEvent_OnOutboundTraffic,m_pConsole->activeWindow(),szMsg); + KVS_TRIGGER_EVENT_1(KviEvent_OnOutboundTraffic, m_pConsole->activeWindow(), szMsg); return m_pLink->sendPacket(pData); } @@ -833,11 +834,11 @@ bool KviIrcConnection::sendData(const char * pcBuffer, int iBuflen) { iBuflen = 510; if(!_OUTPUT_MUTE) - m_pConsole->outputNoFmt(KVI_OUT_SOCKETWARNING,__tr2qs("[LINK WARNING]: Socket message truncated to 512 bytes.")); + m_pConsole->outputNoFmt(KVI_OUT_SOCKETWARNING, __tr2qs("[LINK WARNING]: Socket message truncated to 512 bytes.")); } KviDataBuffer * pData = new KviDataBuffer(iBuflen + 2); - KviMemory::move(pData->data(),pcBuffer,iBuflen); + KviMemory::move(pData->data(), pcBuffer, iBuflen); *(pData->data() + iBuflen) = '\r'; *(pData->data() + iBuflen + 1) = '\n'; @@ -855,7 +856,7 @@ bool KviIrcConnection::sendData(const char * pcBuffer, int iBuflen) } // Trigger OnOutboundTraffic event - KVS_TRIGGER_EVENT_1(KviEvent_OnOutboundTraffic,m_pConsole->activeWindow(),szMsg); + KVS_TRIGGER_EVENT_1(KviEvent_OnOutboundTraffic, m_pConsole->activeWindow(), szMsg); return m_pLink->sendPacket(pData); } @@ -874,7 +875,7 @@ void KviIrcConnection::delayedStartNotifyList() m_pNotifyListTimer->setInterval(15000); m_pNotifyListTimer->setSingleShot(true); m_pNotifyListTimer->start(); - connect(m_pNotifyListTimer,SIGNAL(timeout()),this,SLOT(restartNotifyList())); + connect(m_pNotifyListTimer, SIGNAL(timeout()), this, SLOT(restartNotifyList())); // This delay is large enough to fire after the MOTD has been sent, // even on the weirdest network. @@ -909,9 +910,11 @@ void KviIrcConnection::restartNotifyList() if(serverInfo()->supportsWatchList() && KVI_OPTION_BOOL(KviOption_boolUseWatchListIfAvailable)) { if(_OUTPUT_VERBOSE) - m_pConsole->output(KVI_OUT_VERBOSE,__tr2qs("The server seems to support the WATCH notify list method, will try to use it")); + m_pConsole->output(KVI_OUT_VERBOSE, __tr2qs("The server seems to support the WATCH notify list method, will try to use it")); m_pNotifyListManager = new KviWatchNotifyListManager(this); - } else { + } + else + { if(KVI_OPTION_BOOL(KviOption_boolUseIntelligentNotifyListManager)) m_pNotifyListManager = new KviIsOnNotifyListManager(this); else @@ -934,7 +937,7 @@ void KviIrcConnection::resolveLocalHost() { QString szIp; - if(!link()->socket()->getLocalHostIp(szIp,target()->server()->isIPv6())) + if(!link()->socket()->getLocalHostIp(szIp, target()->server()->isIPv6())) { bool bGotIp = false; if(!KVI_OPTION_STRING(KviOption_stringLocalHostIp).isEmpty()) @@ -944,7 +947,9 @@ void KviIrcConnection::resolveLocalHost() { if(KviNetUtils::isValidStringIPv6(KVI_OPTION_STRING(KviOption_stringLocalHostIp))) bGotIp = true; - } else { + } + else + { #endif if(KviNetUtils::isValidStringIp(KVI_OPTION_STRING(KviOption_stringLocalHostIp))) bGotIp = true; @@ -957,21 +962,24 @@ void KviIrcConnection::resolveLocalHost() { m_pUserInfo->setLocalHostIp(KVI_OPTION_STRING(KviOption_stringLocalHostIp)); if(!_OUTPUT_MUTE) - m_pConsole->output(KVI_OUT_SYSTEMWARNING,__tr2qs("Can't resolve local host address, using user supplied one (%Q)"), - &(m_pUserInfo->localHostIp())); - - } else { + m_pConsole->output(KVI_OUT_SYSTEMWARNING, __tr2qs("Can't resolve local host address, using user supplied one (%Q)"), + &(m_pUserInfo->localHostIp())); + } + else + { // FIXME : Maybe check for IPv6 here too ? m_pUserInfo->setLocalHostIp("127.0.0.1"); if(!_OUTPUT_MUTE) - m_pConsole->output(KVI_OUT_SYSTEMWARNING,__tr2qs("Can't resolve local host address, using default 127.0.0.1"), - &(m_pUserInfo->localHostIp())); + m_pConsole->output(KVI_OUT_SYSTEMWARNING, __tr2qs("Can't resolve local host address, using default 127.0.0.1"), + &(m_pUserInfo->localHostIp())); } - } else { + } + else + { m_pUserInfo->setLocalHostIp(szIp); if(!_OUTPUT_QUIET) - m_pConsole->output(KVI_OUT_SYSTEMMESSAGE,__tr2qs("Local host address is %Q"), - &(m_pUserInfo->localHostIp())); + m_pConsole->output(KVI_OUT_SYSTEMMESSAGE, __tr2qs("Local host address is %Q"), + &(m_pUserInfo->localHostIp())); } // For now this is the only we know @@ -1001,20 +1009,21 @@ void KviIrcConnection::userInfoReceived(const QString & szUserName, const QStrin if(e) // should be there! (we have the permanent entry in the notify list view) { e->setUser(szUserName); - if(!szHostName.isEmpty())e->setHost(szHostName); + if(!szHostName.isEmpty()) + e->setHost(szHostName); } // else buuug if(szHostName.isEmpty()) return; // nothing to do anyway - if(KviQString::equalCS(m_pUserInfo->hostName(),szHostName)) + if(KviQString::equalCS(m_pUserInfo->hostName(), szHostName)) return; // again nothing to do static bool warned_once = false; if(!warned_once) { - if(!(m_pUserInfo->hostName().isEmpty() || KviQString::equalCS(m_pUserInfo->hostName(),m_pUserInfo->localHostIp()))) + if(!(m_pUserInfo->hostName().isEmpty() || KviQString::equalCS(m_pUserInfo->hostName(), m_pUserInfo->localHostIp()))) { // ok, something weird is probably going on // is is non-empty and it is NOT the IP address we have set @@ -1022,8 +1031,8 @@ void KviIrcConnection::userInfoReceived(const QString & szUserName, const QStrin // ...the server (or more likely the bouncer) must have changed his mind... if(!_OUTPUT_MUTE) { - m_pConsole->output(KVI_OUT_SYSTEMWARNING,__tr2qs("The server reports a hostname differing from what KVIrc set for the local hostname.")); - m_pConsole->output(KVI_OUT_SYSTEMWARNING,__tr2qs("This can happen if you use a broken bouncer, the IRC server masks your IP/Hostname or something weird is happening on the IRC server.")); + m_pConsole->output(KVI_OUT_SYSTEMWARNING, __tr2qs("The server reports a hostname differing from what KVIrc set for the local hostname.")); + m_pConsole->output(KVI_OUT_SYSTEMWARNING, __tr2qs("This can happen if you use a broken bouncer, the IRC server masks your IP/Hostname or something weird is happening on the IRC server.")); } warned_once = true; } @@ -1034,29 +1043,25 @@ void KviIrcConnection::userInfoReceived(const QString & szUserName, const QStrin bool bChangeIp = true; - // if we don't have any routable IP yet, then it is worth to lookup the new hostname +// if we don't have any routable IP yet, then it is worth to lookup the new hostname #ifdef COMPILE_IPV6_SUPPORT - if((KviNetUtils::isValidStringIp(m_pUserInfo->hostIp()) && - KviNetUtils::isRoutableIpString(m_pUserInfo->hostIp())) || - KviNetUtils::isValidStringIPv6(m_pUserInfo->hostIp())) + if((KviNetUtils::isValidStringIp(m_pUserInfo->hostIp()) && KviNetUtils::isRoutableIpString(m_pUserInfo->hostIp())) || KviNetUtils::isValidStringIPv6(m_pUserInfo->hostIp())) #else - if((KviNetUtils::isValidStringIp(m_pUserInfo->hostIp()) && - KviNetUtils::isRoutableIpString(m_pUserInfo->hostIp()))) + if((KviNetUtils::isValidStringIp(m_pUserInfo->hostIp()) && KviNetUtils::isRoutableIpString(m_pUserInfo->hostIp()))) #endif { - if(KVI_OPTION_BOOL(KviOption_boolDccGuessIpFromServerWhenLocalIsUnroutable) && - KVI_OPTION_BOOL(KviOption_boolDccBrokenBouncerHack)) + if(KVI_OPTION_BOOL(KviOption_boolDccGuessIpFromServerWhenLocalIsUnroutable) && KVI_OPTION_BOOL(KviOption_boolDccBrokenBouncerHack)) { if(!_OUTPUT_MUTE) - m_pConsole->outputNoFmt(KVI_OUT_SYSTEMMESSAGE,__tr2qs("Here goes your \"broken bouncer hack\": The server has changed the hostname but I'll ignore the IP address change")); + m_pConsole->outputNoFmt(KVI_OUT_SYSTEMMESSAGE, __tr2qs("Here goes your \"broken bouncer hack\": The server has changed the hostname but I'll ignore the IP address change")); bChangeIp = false; } } if(bChangeIp) { - // lookup the new hostname then... +// lookup the new hostname then... #ifdef COMPILE_IPV6_SUPPORT if(KviNetUtils::isValidStringIp(szHostName) || KviNetUtils::isValidStringIPv6(szHostName)) #else @@ -1064,38 +1069,42 @@ void KviIrcConnection::userInfoReceived(const QString & szUserName, const QStrin #endif { if(!_OUTPUT_MUTE) - m_pConsole->output(KVI_OUT_SYSTEMMESSAGE,__tr2qs("The local IP address as seen by the IRC server is %Q"),&szHostName); + m_pConsole->output(KVI_OUT_SYSTEMMESSAGE, __tr2qs("The local IP address as seen by the IRC server is %Q"), &szHostName); m_pUserInfo->setHostIp(szHostName); - } else + } + else #ifdef COMPILE_IPV6_SUPPORT - if(KviNetUtils::isValidStringIp(szUnmaskedHost) || KviNetUtils::isValidStringIPv6(szUnmaskedHost)) + if(KviNetUtils::isValidStringIp(szUnmaskedHost) || KviNetUtils::isValidStringIPv6(szUnmaskedHost)) #else - if(KviNetUtils::isValidStringIp(szUnmaskedHost)) + if(KviNetUtils::isValidStringIp(szUnmaskedHost)) #endif { if(!_OUTPUT_MUTE) - m_pConsole->output(KVI_OUT_SYSTEMMESSAGE,__tr2qs("The local IP address as seen by the IRC server is %Q"),&szUnmaskedHost); + m_pConsole->output(KVI_OUT_SYSTEMMESSAGE, __tr2qs("The local IP address as seen by the IRC server is %Q"), &szUnmaskedHost); m_pUserInfo->setHostIp(szUnmaskedHost); - - } else { + } + else + { // look it up too delete m_pLocalhostDns; // it could be only another local host lookup m_pLocalhostDns = new KviDnsResolver(); - connect(m_pLocalhostDns,SIGNAL(lookupDone(KviDnsResolver *)),this,SLOT(hostNameLookupTerminated(KviDnsResolver *))); + connect(m_pLocalhostDns, SIGNAL(lookupDone(KviDnsResolver *)), this, SLOT(hostNameLookupTerminated(KviDnsResolver *))); - if(!m_pLocalhostDns->lookup(szHostName,KviDnsResolver::Any)) + if(!m_pLocalhostDns->lookup(szHostName, KviDnsResolver::Any)) { if(!_OUTPUT_MUTE) { // don't change the string to aid the translators QString szTmp = __tr2qs("Can't start the DNS slave thread"); - m_pConsole->output(KVI_OUT_SYSTEMMESSAGE,__tr2qs("Unable to resolve the local hostname as seen by the IRC server: %Q"),&szTmp); + m_pConsole->output(KVI_OUT_SYSTEMMESSAGE, __tr2qs("Unable to resolve the local hostname as seen by the IRC server: %Q"), &szTmp); } delete m_pLocalhostDns; m_pLocalhostDns = nullptr; - } else { + } + else + { if(!_OUTPUT_MUTE) - m_pConsole->output(KVI_OUT_SYSTEMMESSAGE,__tr2qs("Looking up the local hostname as seen by the IRC server (%Q)"),&szHostName); + m_pConsole->output(KVI_OUT_SYSTEMMESSAGE, __tr2qs("Looking up the local hostname as seen by the IRC server (%Q)"), &szHostName); } } } @@ -1113,14 +1122,16 @@ void KviIrcConnection::hostNameLookupTerminated(KviDnsResolver *) { QString szErr = KviError::getDescription(m_pLocalhostDns->error()); if(!m_pUserInfo->hostIp().isEmpty()) - m_pConsole->output(KVI_OUT_SYSTEMMESSAGE,__tr2qs("Unable to resolve the local hostname as seen by the IRC server: %Q, using previously resolved %Q"), - &szErr,&(m_pUserInfo->hostIp())); + m_pConsole->output(KVI_OUT_SYSTEMMESSAGE, __tr2qs("Unable to resolve the local hostname as seen by the IRC server: %Q, using previously resolved %Q"), + &szErr, &(m_pUserInfo->hostIp())); else - m_pConsole->output(KVI_OUT_SYSTEMMESSAGE,__tr2qs("Unable to resolve the local hostname as seen by the IRC server: %Q"), - &szErr); - } else { + m_pConsole->output(KVI_OUT_SYSTEMMESSAGE, __tr2qs("Unable to resolve the local hostname as seen by the IRC server: %Q"), + &szErr); + } + else + { QString szIpAddr = m_pLocalhostDns->firstIpAddress(); - m_pConsole->output(KVI_OUT_SYSTEMMESSAGE,__tr2qs("Local hostname as seen by the IRC server resolved to %Q"),&szIpAddr); + m_pConsole->output(KVI_OUT_SYSTEMMESSAGE, __tr2qs("Local hostname as seen by the IRC server resolved to %Q"), &szIpAddr); m_pUserInfo->setHostIp(m_pLocalhostDns->firstIpAddress()); } @@ -1128,7 +1139,7 @@ void KviIrcConnection::hostNameLookupTerminated(KviDnsResolver *) m_pLocalhostDns = nullptr; } -void KviIrcConnection::useRealName(const QString &szRealName) +void KviIrcConnection::useRealName(const QString & szRealName) { // Evaluate functions in the real name (so we can have $version() inside) @@ -1139,7 +1150,7 @@ void KviIrcConnection::useRealName(const QString &szRealName) KviQString::escapeKvs(&szRealNameBuffer, KviQString::PermitVariables | KviQString::PermitFunctions); KviKvsVariant vRet; - if(KviKvsScript::evaluate(szRealNameBuffer,console(),0,&vRet)) + if(KviKvsScript::evaluate(szRealNameBuffer, console(), 0, &vRet)) vRet.asString(szRealNameBuffer); } @@ -1149,7 +1160,8 @@ void KviIrcConnection::useRealName(const QString &szRealName) void KviIrcConnection::useProfileData(KviIdentityProfileSet * pSet, const QString & szNetwork) { KviIdentityProfile * pProfile = pSet->findNetwork(szNetwork); - if(!pProfile) return; + if(!pProfile) + return; // Update connection data //m_pUserInfo->setNickName(pProfile->nick()); @@ -1157,7 +1169,7 @@ void KviIrcConnection::useProfileData(KviIdentityProfileSet * pSet, const QStrin useRealName(pProfile->realName()); } -QString KviIrcConnection::pickNextLoginNickName(bool bForceDefaultIfPrimaryNicknamesEmpty,const QString & szBaseNickForRandomChoices,QString &szChoiceDescriptionBuffer) +QString KviIrcConnection::pickNextLoginNickName(bool bForceDefaultIfPrimaryNicknamesEmpty, const QString & szBaseNickForRandomChoices, QString & szChoiceDescriptionBuffer) { QString szNick; @@ -1387,14 +1399,18 @@ void KviIrcConnection::loginToIrcServer() if(!szTmpUser.isEmpty()) { if(!_OUTPUT_MUTE) - m_pConsole->output(KVI_OUT_VERBOSE,__tr2qs("Using server specific username (%Q)"),&(szTmpUser)); - } else { + m_pConsole->output(KVI_OUT_VERBOSE, __tr2qs("Using server specific username (%Q)"), &(szTmpUser)); + } + else + { szTmpUser = pNet->userName().trimmed(); if(!szTmpUser.isEmpty()) { if(!_OUTPUT_MUTE) - m_pConsole->output(KVI_OUT_VERBOSE,__tr2qs("Using network specific username (%Q)"),&(szTmpUser)); - } else { + m_pConsole->output(KVI_OUT_VERBOSE, __tr2qs("Using network specific username (%Q)"), &(szTmpUser)); + } + else + { szTmpUser = KVI_OPTION_STRING(KviOption_stringUsername).trimmed(); if(szTmpUser.isEmpty()) szTmpUser = KVI_DEFAULT_USERNAME; @@ -1412,10 +1428,13 @@ void KviIrcConnection::loginToIrcServer() QString szChoiceDescription; - if(!szTmpNick.isEmpty()) { + if(!szTmpNick.isEmpty()) + { szChoiceDescription = __tr2qs("connection specific"); - } else { - szTmpNick = pickNextLoginNickName(true,QString(),szChoiceDescription); + } + else + { + szTmpNick = pickNextLoginNickName(true, QString(), szChoiceDescription); KVI_ASSERT(!szTmpNick.isEmpty()); } @@ -1425,7 +1444,7 @@ void KviIrcConnection::loginToIrcServer() if(_OUTPUT_VERBOSE) szOut += QString::fromLatin1(" (%1)").arg(szChoiceDescription); - m_pConsole->outputNoFmt(KVI_OUT_VERBOSE,szOut); + m_pConsole->outputNoFmt(KVI_OUT_VERBOSE, szOut); } m_pUserInfo->setNickName(szTmpNick); @@ -1435,14 +1454,18 @@ void KviIrcConnection::loginToIrcServer() if(!szTmpName.isEmpty()) { if(!_OUTPUT_MUTE) - m_pConsole->output(KVI_OUT_VERBOSE,__tr2qs("Using server specific real name (%Q)"),&(szTmpName)); - } else { + m_pConsole->output(KVI_OUT_VERBOSE, __tr2qs("Using server specific real name (%Q)"), &(szTmpName)); + } + else + { szTmpName = pNet->realName().trimmed(); if(!szTmpName.isEmpty()) { if(!_OUTPUT_MUTE) - m_pConsole->output(KVI_OUT_VERBOSE,__tr2qs("Using network specific real name (%Q)"),&(szTmpName)); - } else { + m_pConsole->output(KVI_OUT_VERBOSE, __tr2qs("Using network specific real name (%Q)"), &(szTmpName)); + } + else + { szTmpName = KVI_OPTION_STRING(KviOption_stringRealname); } } @@ -1458,25 +1481,29 @@ void KviIrcConnection::loginToIrcServer() if(!_OUTPUT_MUTE) { QString szHidden = QString(szTmpPass.length(), QChar('*')); - m_pConsole->output(KVI_OUT_VERBOSE,__tr2qs("Using connection specific password (%Q)"),&(szHidden)); + m_pConsole->output(KVI_OUT_VERBOSE, __tr2qs("Using connection specific password (%Q)"), &(szHidden)); } - } else { + } + else + { szTmpPass = pServer->password().trimmed(); if(!szTmpPass.isEmpty()) { if(!_OUTPUT_MUTE) { QString szHidden = QString(szTmpPass.length(), QChar('*')); - m_pConsole->output(KVI_OUT_VERBOSE,__tr2qs("Using server specific password (%Q)"),&(szHidden)); + m_pConsole->output(KVI_OUT_VERBOSE, __tr2qs("Using server specific password (%Q)"), &(szHidden)); } - } else { + } + else + { szTmpPass = pNet->password().trimmed(); if(!szTmpPass.isEmpty()) { if(!_OUTPUT_MUTE) { QString szHidden = QString(szTmpPass.length(), QChar('*')); - m_pConsole->output(KVI_OUT_VERBOSE,__tr2qs("Using network specific password (%Q)"),&(szHidden)); + m_pConsole->output(KVI_OUT_VERBOSE, __tr2qs("Using network specific password (%Q)"), &(szHidden)); } } } @@ -1489,7 +1516,8 @@ void KviIrcConnection::loginToIrcServer() // FIXME: Shouldn't this be inside the code above ? KviIdentityProfileSet * pSet = KviIdentityProfileSet::instance(); bool bProfilesEnabled = pSet ? (pSet->isEnabled() && !pSet->isEmpty()) : false; - if(bProfilesEnabled) useProfileData(pSet,pNet->name()); + if(bProfilesEnabled) + useProfileData(pSet, pNet->name()); // FIXME: The server's encoding! setupTextCodec(); @@ -1498,12 +1526,14 @@ void KviIrcConnection::loginToIrcServer() QByteArray szReal = encodeText(m_pUserInfo->realName()); // may be empty QByteArray szPass = encodeText(m_pUserInfo->password()); // may be empty - if(!szReal.data())szReal = ""; - if(!szPass.data())szPass = ""; + if(!szReal.data()) + szReal = ""; + if(!szPass.data()) + szPass = ""; if(!_OUTPUT_MUTE) - m_pConsole->output(KVI_OUT_SYSTEMMESSAGE,__tr2qs("Logging in as %Q!%Q :%Q"), - &(m_pUserInfo->nickName()),&(m_pUserInfo->userName()),&(m_pUserInfo->realName())); + m_pConsole->output(KVI_OUT_SYSTEMMESSAGE, __tr2qs("Logging in as %Q!%Q :%Q"), + &(m_pUserInfo->nickName()), &(m_pUserInfo->userName()), &(m_pUserInfo->realName())); // spity, 27.03.2005: follow the RFC2812 suggested order for connection registration // first the PASS, then NICK and then USER @@ -1511,7 +1541,7 @@ void KviIrcConnection::loginToIrcServer() // The pass ? if(!m_pUserInfo->password().isEmpty()) { - if(!sendFmtData("PASS :%s",szPass.data())) + if(!sendFmtData("PASS :%s", szPass.data())) { // disconnected in the meantime return; @@ -1519,16 +1549,16 @@ void KviIrcConnection::loginToIrcServer() } // disconnected :( - if(!sendFmtData("NICK %s",szNick.data())) + if(!sendFmtData("NICK %s", szNick.data())) return; unsigned int iGenderAvatarTag = 0; if(KVI_OPTION_BOOL(KviOption_boolPrependGenderInfoToRealname) && !KVI_OPTION_STRING(KviOption_stringCtcpUserInfoGender).isEmpty()) { - if(KVI_OPTION_STRING(KviOption_stringCtcpUserInfoGender).startsWith("m",Qt::CaseInsensitive)) + if(KVI_OPTION_STRING(KviOption_stringCtcpUserInfoGender).startsWith("m", Qt::CaseInsensitive)) iGenderAvatarTag |= 1; - else if(KVI_OPTION_STRING(KviOption_stringCtcpUserInfoGender).startsWith("f",Qt::CaseInsensitive)) + else if(KVI_OPTION_STRING(KviOption_stringCtcpUserInfoGender).startsWith("f", Qt::CaseInsensitive)) iGenderAvatarTag |= 2; } @@ -1537,18 +1567,17 @@ void KviIrcConnection::loginToIrcServer() iGenderAvatarTag |= 4; } - if(KVI_OPTION_BOOL(KviOption_boolPrependNickColorInfoToRealname) && - KVI_OPTION_BOOL(KviOption_boolUseSpecifiedSmartColorForOwnNick)) + if(KVI_OPTION_BOOL(KviOption_boolPrependNickColorInfoToRealname) && KVI_OPTION_BOOL(KviOption_boolUseSpecifiedSmartColorForOwnNick)) { QString szTags; int iBack = KVI_OPTION_UINT(KviOption_uintUserIrcViewOwnBackground); if(iBack != KviControlCodes::Transparent) { - szTags.sprintf("%c%d,%d%c", - KviControlCodes::Color, - KVI_OPTION_UINT(KviOption_uintUserIrcViewOwnForeground), - iBack, - KviControlCodes::Reset); + szTags.sprintf("%c%d,%d%c", + KviControlCodes::Color, + KVI_OPTION_UINT(KviOption_uintUserIrcViewOwnForeground), + iBack, + KviControlCodes::Reset); } szReal.prepend(szTags.toUtf8()); } @@ -1557,18 +1586,18 @@ void KviIrcConnection::loginToIrcServer() { QString szTags; szTags.sprintf("%c%d%c", - KviControlCodes::Color, - iGenderAvatarTag, - KviControlCodes::Reset); + KviControlCodes::Color, + iGenderAvatarTag, + KviControlCodes::Reset); szReal.prepend(szTags.toUtf8()); } // disconnected in the meantime! - if(!sendFmtData("USER %s 0 %s :%s",szUser.data(),pServer->hostName().toUtf8().data(),szReal.data())) + if(!sendFmtData("USER %s 0 %s :%s", szUser.data(), pServer->hostName().toUtf8().data(), szReal.data())) return; // permanent info in the user database - m_pConsole->notifyListView()->join(m_pUserInfo->nickName(),"*","*"); + m_pConsole->notifyListView()->join(m_pUserInfo->nickName(), "*", "*"); // set own avatar if we have it KviIrcUserEntry * e = userDataBase()->find(userInfo()->nickName()); @@ -1584,9 +1613,9 @@ void KviIrcConnection::loginToIrcServer() } } // else buuug, couldn't find our nick - if(KVI_OPTION_STRING(KviOption_stringCtcpUserInfoGender).startsWith("m",Qt::CaseInsensitive)) + if(KVI_OPTION_STRING(KviOption_stringCtcpUserInfoGender).startsWith("m", Qt::CaseInsensitive)) e->setGender(KviIrcUserEntry::Male); - else if(KVI_OPTION_STRING(KviOption_stringCtcpUserInfoGender).startsWith("f",Qt::CaseInsensitive)) + else if(KVI_OPTION_STRING(KviOption_stringCtcpUserInfoGender).startsWith("f", Qt::CaseInsensitive)) e->setGender(KviIrcUserEntry::Female); // on connect stuff ? @@ -1595,24 +1624,24 @@ void KviIrcConnection::loginToIrcServer() if(!szTmp.isEmpty()) { if(_OUTPUT_VERBOSE) - m_pConsole->output(KVI_OUT_VERBOSE,__tr2qs("Executing scheduled network specific \"on connect\" commands")); - KviKvsScript::run(szTmp,m_pConsole); + m_pConsole->output(KVI_OUT_VERBOSE, __tr2qs("Executing scheduled network specific \"on connect\" commands")); + KviKvsScript::run(szTmp, m_pConsole); } szTmp = pServer->onConnectCommand().trimmed(); if(!szTmp.isEmpty()) { if(_OUTPUT_VERBOSE) - m_pConsole->output(KVI_OUT_VERBOSE,__tr2qs("Executing scheduled server specific \"on connect\" commands")); - KviKvsScript::run(szTmp,m_pConsole); + m_pConsole->output(KVI_OUT_VERBOSE, __tr2qs("Executing scheduled server specific \"on connect\" commands")); + KviKvsScript::run(szTmp, m_pConsole); } szTmp = m_pUserIdentity->onConnectCommand().trimmed(); if(!szTmp.isEmpty()) { if(_OUTPUT_VERBOSE) - m_pConsole->output(KVI_OUT_VERBOSE,__tr2qs("Executing scheduled identity specific \"on connect\" commands")); - KviKvsScript::run(szTmp,m_pConsole); + m_pConsole->output(KVI_OUT_VERBOSE, __tr2qs("Executing scheduled identity specific \"on connect\" commands")); + KviKvsScript::run(szTmp, m_pConsole); } // and wait for the server to agree... @@ -1621,7 +1650,7 @@ void KviIrcConnection::loginToIrcServer() void KviIrcConnection::nickChange(const QString & szNewNick) { // FIXME: should the new nickname be decoded in some way ? - m_pConsole->notifyListView()->nickChange(m_pUserInfo->nickName(),szNewNick); + m_pConsole->notifyListView()->nickChange(m_pUserInfo->nickName(), szNewNick); m_pUserInfo->setNickName(szNewNick); m_pConsole->updateCaption(); g_pMainWindow->childConnectionNickNameChange(this); @@ -1636,7 +1665,9 @@ bool KviIrcConnection::changeUserMode(char cMode, bool bSet) if(m_pUserInfo->hasUserMode(cMode)) return false; m_pUserInfo->addUserMode(cMode); - } else { + } + else + { if(!m_pUserInfo->hasUserMode(cMode)) return false; m_pUserInfo->removeUserMode(cMode); @@ -1647,33 +1678,31 @@ bool KviIrcConnection::changeUserMode(char cMode, bool bSet) return true; } -void KviIrcConnection::gatherChannelAndPasswordPairs(QList< QPair< QString,QString > > &lChannelsAndPasses) +void KviIrcConnection::gatherChannelAndPasswordPairs(QList> & lChannelsAndPasses) { - for(KviChannelWindow * c = m_pChannelList->first();c;c = m_pChannelList->next()) + for(KviChannelWindow * c = m_pChannelList->first(); c; c = m_pChannelList->next()) lChannelsAndPasses.append( - QPair( - c->windowName(), - c->hasChannelMode('k') ? c->channelModeParam('k') : QString() - ) - ); + QPair( + c->windowName(), + c->hasChannelMode('k') ? c->channelModeParam('k') : QString())); } -void KviIrcConnection::gatherQueryNames(QStringList &lQueryNames) +void KviIrcConnection::gatherQueryNames(QStringList & lQueryNames) { for(KviQueryWindow * q = m_pQueryList->first(); q; q = m_pQueryList->next()) lQueryNames.append(q->target()); } -void KviIrcConnection::joinChannels(const QList< QPair< QString,QString > > &lChannelsAndPasses) +void KviIrcConnection::joinChannels(const QList> & lChannelsAndPasses) { if(lChannelsAndPasses.count() < 1) return; // Sort the list so the channels with passwords come first - QList< QPair< QString,QString> > lSorted; + QList> lSorted; - QPair oChanAndPass; - Q_FOREACH(oChanAndPass,lChannelsAndPasses) + QPair oChanAndPass; + Q_FOREACH(oChanAndPass, lChannelsAndPasses) { if(oChanAndPass.second.isEmpty()) lSorted.append(oChanAndPass); @@ -1682,12 +1711,12 @@ void KviIrcConnection::joinChannels(const QList< QPair< QString,QString > > &lCh } // We send the channel list in chunks to avoid overflowing the 510 character limit on the message. - QString szChans,szPasses; + QString szChans, szPasses; QString szCommand; while(lSorted.count() > 0) { - QPair oChanAndPass = lSorted.takeFirst(); + QPair oChanAndPass = lSorted.takeFirst(); if(!szChans.isEmpty()) szChans.append(','); @@ -1709,7 +1738,7 @@ void KviIrcConnection::joinChannels(const QList< QPair< QString,QString > > &lCh szCommand.append(" "); szCommand.append(szPasses); } - sendFmtData("JOIN %s",encodeText(szCommand).data()); + sendFmtData("JOIN %s", encodeText(szCommand).data()); szChans = QString(); szPasses = QString(); } @@ -1721,7 +1750,7 @@ void KviIrcConnection::joinChannels(const QList< QPair< QString,QString > > &lCh szCommand.append(" "); szCommand.append(szPasses); } - sendFmtData("JOIN %s",encodeText(szCommand).data()); + sendFmtData("JOIN %s", encodeText(szCommand).data()); } void KviIrcConnection::loginComplete(const QString & szNickName) @@ -1746,18 +1775,18 @@ void KviIrcConnection::loginComplete(const QString & szNickName) if(szNickName != m_pUserInfo->nickName()) { - m_pConsole->output(KVI_OUT_SYSTEMMESSAGE,__tr2qs("The server refused the suggested nickname (%s) and named you %s instead"),m_pUserInfo->nickName().toUtf8().data(),szNickName.toUtf8().data()); - m_pConsole->notifyListView()->nickChange(m_pUserInfo->nickName(),szNickName); + m_pConsole->output(KVI_OUT_SYSTEMMESSAGE, __tr2qs("The server refused the suggested nickname (%s) and named you %s instead"), m_pUserInfo->nickName().toUtf8().data(), szNickName.toUtf8().data()); + m_pConsole->notifyListView()->nickChange(m_pUserInfo->nickName(), szNickName); m_pUserInfo->setNickName(szNickName); } g_pApp->addRecentNickname(szNickName); bool bHaltOutput = false; - bHaltOutput = KVS_TRIGGER_EVENT_0_HALTED(KviEvent_OnIRC,m_pConsole); + bHaltOutput = KVS_TRIGGER_EVENT_0_HALTED(KviEvent_OnIRC, m_pConsole); if(!bHaltOutput) - m_pConsole->outputNoFmt(KVI_OUT_IRC,__tr2qs("Login operations complete, happy ircing!")); + m_pConsole->outputNoFmt(KVI_OUT_IRC, __tr2qs("Login operations complete, happy ircing!")); resurrectDeadQueries(); @@ -1766,24 +1795,24 @@ void KviIrcConnection::loginComplete(const QString & szNickName) if(!szTmp.isEmpty()) { if(_OUTPUT_VERBOSE) - m_pConsole->output(KVI_OUT_VERBOSE,__tr2qs("Executing scheduled network specific \"on login\" commands")); - KviKvsScript::run(szTmp,m_pConsole); + m_pConsole->output(KVI_OUT_VERBOSE, __tr2qs("Executing scheduled network specific \"on login\" commands")); + KviKvsScript::run(szTmp, m_pConsole); } szTmp = target()->server()->onLoginCommand().trimmed(); if(!szTmp.isEmpty()) { if(_OUTPUT_VERBOSE) - m_pConsole->output(KVI_OUT_VERBOSE,__tr2qs("Executing scheduled server specific \"on login\" commands")); - KviKvsScript::run(szTmp,m_pConsole); + m_pConsole->output(KVI_OUT_VERBOSE, __tr2qs("Executing scheduled server specific \"on login\" commands")); + KviKvsScript::run(szTmp, m_pConsole); } szTmp = m_pUserIdentity->onLoginCommand().trimmed(); if(!szTmp.isEmpty()) { if(_OUTPUT_VERBOSE) - m_pConsole->output(KVI_OUT_VERBOSE,__tr2qs("Executing scheduled identity specific \"on login\" commands")); - KviKvsScript::run(szTmp,m_pConsole); + m_pConsole->output(KVI_OUT_VERBOSE, __tr2qs("Executing scheduled identity specific \"on login\" commands")); + KviKvsScript::run(szTmp, m_pConsole); } // Set the configured umode @@ -1795,8 +1824,8 @@ void KviIrcConnection::loginComplete(const QString & szNickName) if(!szModeStr.isEmpty()) // may be still empty if there are no default modes, if so, don't send the MODE command at all { if(_OUTPUT_VERBOSE) - m_pConsole->output(KVI_OUT_VERBOSE,__tr2qs("Setting configured user mode")); - sendFmtData("MODE %s +%s",encodeText(m_pUserInfo->nickName()).data(),encodeText(szModeStr).data()); + m_pConsole->output(KVI_OUT_VERBOSE, __tr2qs("Setting configured user mode")); + sendFmtData("MODE %s +%s", encodeText(m_pUserInfo->nickName()).data(), encodeText(szModeStr).data()); } delayedStartNotifyList(); @@ -1805,7 +1834,6 @@ void KviIrcConnection::loginComplete(const QString & szNickName) if(KVI_OPTION_BOOL(KviOption_boolShowChannelsJoinOnIrc)) g_pMainWindow->executeInternalCommand(KVI_INTERNALCOMMAND_CHANNELSJOIN_OPEN); - // join saved channels // FIXME: It should be possible to delay the channel join process after identification @@ -1817,12 +1845,12 @@ void KviIrcConnection::loginComplete(const QString & szNickName) // but the format is not well defined and we would need to make it user configurable. // Not very reliable, actually :/ - QString szChannels,szProtectedChannels,szPasswords,szCurPass,szCurChan; + QString szChannels, szProtectedChannels, szPasswords, szCurPass, szCurChan; if(!(m_pStateData->commandToExecAfterConnect().isEmpty())) { KviCString tmp = m_pStateData->commandToExecAfterConnect(); - KviKvsScript::run(tmp.ptr(),m_pConsole); + KviKvsScript::run(tmp.ptr(), m_pConsole); } bool bJoinStdChannels = true; @@ -1837,7 +1865,7 @@ void KviIrcConnection::loginComplete(const QString & szNickName) KviQueryWindow * pQuery; - for(const auto& it : target()->server()->reconnectInfo()->m_lOpenQueries) + for(const auto & it : target()->server()->reconnectInfo()->m_lOpenQueries) { QString szNick = it; pQuery = findQuery(szNick); @@ -1857,7 +1885,7 @@ void KviIrcConnection::loginComplete(const QString & szNickName) szHost = e->host(); } } - pQuery->setTarget(szNick,szUser,szHost); + pQuery->setTarget(szNick, szUser, szHost); } } target()->server()->clearReconnectInfo(); @@ -1865,41 +1893,41 @@ void KviIrcConnection::loginComplete(const QString & szNickName) if(bJoinStdChannels) { - QList< QPair< QString,QString > > lChansAndPass; + QList> lChansAndPass; if(target()->network()->autoJoinChannelList()) { if(_OUTPUT_VERBOSE) - m_pConsole->output(KVI_OUT_VERBOSE,__tr2qs("Auto-joining network specific channels")); + m_pConsole->output(KVI_OUT_VERBOSE, __tr2qs("Auto-joining network specific channels")); QStringList * l = target()->network()->autoJoinChannelList(); - for(const auto& it : *l) + for(const auto & it : *l) { - szCurPass= it.section(':',1); - szCurChan = it.section(':',0,0); + szCurPass = it.section(':', 1); + szCurChan = it.section(':', 0, 0); if(szCurChan.isEmpty()) continue; if(!m_pServerInfo->isSupportedChannelType(szCurChan[0])) szCurChan.prepend('#'); - lChansAndPass.append(QPair(szCurChan,szCurPass)); + lChansAndPass.append(QPair(szCurChan, szCurPass)); } } if(target()->server()->autoJoinChannelList()) { if(_OUTPUT_VERBOSE) - m_pConsole->output(KVI_OUT_VERBOSE,__tr2qs("Auto-joining server specific channels")); + m_pConsole->output(KVI_OUT_VERBOSE, __tr2qs("Auto-joining server specific channels")); QStringList * l = target()->server()->autoJoinChannelList(); - for(const auto& it : *l) + for(const auto & it : *l) { - szCurPass = it.section(':',1); - szCurChan = it.section(':',0,0); + szCurPass = it.section(':', 1); + szCurChan = it.section(':', 0, 0); if(szCurChan.isEmpty()) continue; if(!m_pServerInfo->isSupportedChannelType(szCurChan[0])) szCurChan.prepend('#'); - lChansAndPass.append(QPair(szCurChan,szCurPass)); + lChansAndPass.append(QPair(szCurChan, szCurPass)); } } @@ -1925,7 +1953,7 @@ void KviIrcConnection::incomingMessage(const char * pcMessage) // set the last message time m_pStatistics->setLastMessageTime(kvi_unixTime()); // and pass it to the server parser for processing - g_pServerParser->parseMessage(pcMessage,this); + g_pServerParser->parseMessage(pcMessage, this); } void KviIrcConnection::incomingMessageNoFilter(const char * pcMessage) @@ -1933,7 +1961,7 @@ void KviIrcConnection::incomingMessageNoFilter(const char * pcMessage) // set the last message time m_pStatistics->setLastMessageTime(kvi_unixTime()); // and pass it to the server parser for processing - g_pServerParser->parseMessage(pcMessage,this); + g_pServerParser->parseMessage(pcMessage, this); } void KviIrcConnection::heartbeat(kvi_time_t tNow) @@ -1958,7 +1986,7 @@ void KviIrcConnection::heartbeat(kvi_time_t tNow) // find the channel that has the older list now kvi_time_t tOldest = tNow; KviChannelWindow * pOldest = 0; - for(KviChannelWindow * pChan = m_pChannelList->first();pChan;pChan = m_pChannelList->next()) + for(KviChannelWindow * pChan = m_pChannelList->first(); pChan; pChan = m_pChannelList->next()) { if(pChan->lastReceivedWhoReply() < tOldest) { @@ -1973,23 +2001,25 @@ void KviIrcConnection::heartbeat(kvi_time_t tNow) stateData()->setLastSentChannelWhoRequest(tNow); QString szChanName = encodeText(pOldest->windowName()).data(); if(_OUTPUT_PARANOIC) - console()->output(KVI_OUT_VERBOSE,__tr2qs("Updating away state for channel %Q"),&szChanName); + console()->output(KVI_OUT_VERBOSE, __tr2qs("Updating away state for channel %Q"), &szChanName); if(lagMeter()) { KviCString tmp; if(serverInfo()->supportsWhox()) - tmp.append(KviCString::Format,"WHO %s %acdfhlnrsu",encodeText(pOldest->windowName()).data()); + tmp.append(KviCString::Format, "WHO %s %acdfhlnrsu", encodeText(pOldest->windowName()).data()); else - tmp.append(KviCString::Format,"WHO %s",encodeText(pOldest->windowName()).data()); - lagMeter()->lagCheckRegister(tmp.ptr(),70); + tmp.append(KviCString::Format, "WHO %s", encodeText(pOldest->windowName()).data()); + lagMeter()->lagCheckRegister(tmp.ptr(), 70); } pOldest->setSentSyncWhoRequest(); if(serverInfo()->supportsWhox()) { - if(!sendFmtData("WHO %s %acdfhlnrsu",encodeText(pOldest->windowName()).data())) + if(!sendFmtData("WHO %s %acdfhlnrsu", encodeText(pOldest->windowName()).data())) return; - } else { - if(!sendFmtData("WHO %s",encodeText(pOldest->windowName()).data())) + } + else + { + if(!sendFmtData("WHO %s", encodeText(pOldest->windowName()).data())) return; } } diff --git a/src/kvirc/kernel/KviIrcConnection.h b/src/kvirc/kernel/KviIrcConnection.h index 363530765..ba19fe70f 100644 --- a/src/kvirc/kernel/KviIrcConnection.h +++ b/src/kvirc/kernel/KviIrcConnection.h @@ -71,7 +71,6 @@ class KviUserIdentity; class KviIdentityProfileSet; class KviCString; - /** * \class KviIrcConnection * \brief An abstraction of a connection to an IRC server @@ -120,12 +119,13 @@ protected: * \param pIdentity User information to use in this connection * \return KviIrcConnection */ - KviIrcConnection(KviIrcContext * pContext,KviIrcConnectionTarget * pTarget,KviUserIdentity * pIdentity); + KviIrcConnection(KviIrcContext * pContext, KviIrcConnectionTarget * pTarget, KviUserIdentity * pIdentity); /** * \brief Destroys a KviIrcConnection object. KviConsoleWindow uses this. */ ~KviIrcConnection(); + public: /** * \enum State @@ -137,49 +137,50 @@ public: Connecting, /**< A connection attempt is in progress */ Connected /**< We're connected to an IRC server */ }; + private: - KviConsoleWindow * m_pConsole; // shallow, never null - KviIrcContext * m_pContext; // shallow, never null + KviConsoleWindow * m_pConsole; // shallow, never null + KviIrcContext * m_pContext; // shallow, never null - State m_eState; - bool m_bIdentdAttached; + State m_eState; + bool m_bIdentdAttached; - KviIrcConnectionTarget * m_pTarget; // owned, never null + KviIrcConnectionTarget * m_pTarget; // owned, never null - KviIrcLink * m_pLink; // owned, never null + KviIrcLink * m_pLink; // owned, never null // The initial information about the user we'll send out to the server // Note that the ACTUAL user information are in m_pUserInfo instead - KviUserIdentity * m_pUserIdentity; // owned, never null + KviUserIdentity * m_pUserIdentity; // owned, never null // The ACTUAL user information - KviIrcConnectionUserInfo * m_pUserInfo; // owned, never null + KviIrcConnectionUserInfo * m_pUserInfo; // owned, never null // The ACTUAL server information - KviIrcConnectionServerInfo * m_pServerInfo; // owned, never null + KviIrcConnectionServerInfo * m_pServerInfo; // owned, never null - KviIrcConnectionStateData * m_pStateData; // owned, never null + KviIrcConnectionStateData * m_pStateData; // owned, never null - KviPointerList * m_pChannelList; // owned, never null, elements shallow - KviPointerList * m_pQueryList; // owned, never null, elements shallow + KviPointerList * m_pChannelList; // owned, never null, elements shallow + KviPointerList * m_pQueryList; // owned, never null, elements shallow - KviIrcUserDataBase * m_pUserDataBase; // owned, never null + KviIrcUserDataBase * m_pUserDataBase; // owned, never null - KviNotifyListManager * m_pNotifyListManager; // owned, see restartNotifyList() - QTimer * m_pNotifyListTimer; // delayed startup timer for the notify lists + KviNotifyListManager * m_pNotifyListManager; // owned, see restartNotifyList() + QTimer * m_pNotifyListTimer; // delayed startup timer for the notify lists - KviLagMeter * m_pLagMeter; // owned, may be null (when not running) + KviLagMeter * m_pLagMeter; // owned, may be null (when not running) - KviIrcConnectionAntiCtcpFloodData * m_pAntiCtcpFloodData; // owned, never null + KviIrcConnectionAntiCtcpFloodData * m_pAntiCtcpFloodData; // owned, never null KviIrcConnectionNetsplitDetectorData * m_pNetsplitDetectorData; // owned, never null - KviIrcConnectionAsyncWhoisData * m_pAsyncWhoisData; // owned, never null + KviIrcConnectionAsyncWhoisData * m_pAsyncWhoisData; // owned, never null - KviIrcConnectionStatistics * m_pStatistics; // owned, never null + KviIrcConnectionStatistics * m_pStatistics; // owned, never null - KviDnsResolver * m_pLocalhostDns; // FIXME: this should go to an aux structure + KviDnsResolver * m_pLocalhostDns; // FIXME: this should go to an aux structure - QTextCodec * m_pSrvCodec; // connection codec: never null - QTextCodec * m_pTextCodec; // connection codec: never null - KviIrcConnectionRequestQueue * m_pRequestQueue; // owned, never null + QTextCodec * m_pSrvCodec; // connection codec: never null + QTextCodec * m_pTextCodec; // connection codec: never null + KviIrcConnectionRequestQueue * m_pRequestQueue; // owned, never null public: /** * \brief Returns a pointer to the owning console @@ -187,7 +188,7 @@ public: * The pointer is never NULL * \return KviConsoleWindow * */ - inline KviConsoleWindow * console(){ return m_pConsole; }; + inline KviConsoleWindow * console() { return m_pConsole; }; /** * \brief Returns a pointer to the owning KviIrcContext. @@ -195,7 +196,7 @@ public: * The returned value is never NULL * \return KviIrcContext * */ - inline KviIrcContext * context(){ return m_pContext; }; + inline KviIrcContext * context() { return m_pContext; }; /** * \brief Returns the target of this connection. @@ -205,7 +206,7 @@ public: * The returned pointer is never NULL. * \return KviIrcConnectionTarget * */ - inline KviIrcConnectionTarget * target(){ return m_pTarget; }; + inline KviIrcConnectionTarget * target() { return m_pTarget; }; /** * \brief Returns the underlying KviIrcLink object @@ -213,13 +214,13 @@ public: * The returned pointer is never NULL. * \return KviIrcLink * */ - inline KviIrcLink * link(){ return m_pLink; }; + inline KviIrcLink * link() { return m_pLink; }; /** * \brief Returns the current state of the connection * \return State */ - inline State state(){ return m_eState; }; + inline State state() { return m_eState; }; /** * \brief Returns a pointer to the big connection user database. @@ -228,7 +229,7 @@ public: * The returned pointer is never NULL. * \return KviIrcUserDataBase * */ - inline KviIrcUserDataBase * userDataBase(){ return m_pUserDataBase; }; + inline KviIrcUserDataBase * userDataBase() { return m_pUserDataBase; }; /** * \brief Returns a pointer to the KviIrcConnectionUserInfo object @@ -241,7 +242,7 @@ public: * forwarded here. * \return KviIrcConnectionUserInfo * */ - inline KviIrcConnectionUserInfo * userInfo(){ return m_pUserInfo; }; + inline KviIrcConnectionUserInfo * userInfo() { return m_pUserInfo; }; /** * \brief Returns a pointer to the KviIrcConnectionServerInfo object @@ -255,7 +256,7 @@ public: * forwarded here. * \return KviIrcConnectionServerInfo * */ - inline KviIrcConnectionServerInfo * serverInfo(){ return m_pServerInfo; }; + inline KviIrcConnectionServerInfo * serverInfo() { return m_pServerInfo; }; /** * \brief Returns a pointer to the KviIrcConnectionStateData object @@ -269,7 +270,7 @@ public: * forwarded here. * \return KviIrcConnectionStateData * */ - inline KviIrcConnectionStateData * stateData(){ return m_pStateData; }; + inline KviIrcConnectionStateData * stateData() { return m_pStateData; }; /** * \brief Returns a pointer to the KviIrcConnectionAntiCtcpFloodData object @@ -282,7 +283,9 @@ public: * \return KviIrcConnectionAntiCtcpFloodData * */ inline KviIrcConnectionAntiCtcpFloodData * antiCtcpFloodData() - { return m_pAntiCtcpFloodData; }; + { + return m_pAntiCtcpFloodData; + }; /** * \brief Returns a pointer to the KviIrcConnectionNetsplitDetectorData object @@ -295,7 +298,9 @@ public: * \return KviIrcConnectionNetsplitDetectorData * */ inline KviIrcConnectionNetsplitDetectorData * netsplitDetectorData() - { return m_pNetsplitDetectorData; }; + { + return m_pNetsplitDetectorData; + }; /** * \brief Returns a pointer to the KviIrcConnectionAsyncWhoisData object @@ -308,7 +313,9 @@ public: * \return KviIrcConnectionAsyncWhoisData * */ inline KviIrcConnectionAsyncWhoisData * asyncWhoisData() - { return m_pAsyncWhoisData; }; + { + return m_pAsyncWhoisData; + }; /** * \brief Returns a pointer to the KviIrcConnectionStatistics object @@ -320,7 +327,7 @@ public: * forwarded here. * \return KviIrcConnectionStatistics * */ - inline KviIrcConnectionStatistics * statistics(){ return m_pStatistics; }; + inline KviIrcConnectionStatistics * statistics() { return m_pStatistics; }; /** * \brief Returns a pointer to the current KviNotifyListManager. @@ -330,7 +337,9 @@ public: * \return KviNotifyListManager * */ inline KviNotifyListManager * notifyListManager() - { return m_pNotifyListManager; }; + { + return m_pNotifyListManager; + }; /** * \brief Returns a pointer to the current KviLagMeter. @@ -339,13 +348,13 @@ public: * current connection. * \return KviLagMeter * */ - inline KviLagMeter * lagMeter(){ return m_pLagMeter; }; + inline KviLagMeter * lagMeter() { return m_pLagMeter; }; /** * \brief Returns a pointer to the current KviIrcConnectionRequestQueue. * \return KviIrcConnectionRequestQueue * */ - inline KviIrcConnectionRequestQueue * requestQueue(){ return m_pRequestQueue; }; + inline KviIrcConnectionRequestQueue * requestQueue() { return m_pRequestQueue; }; /** * \brief Returns the list of the channels bound to the current connection. @@ -353,7 +362,7 @@ public: * The pointer itself is never null (though the list may be empty). * \return KviPointerList * */ - inline KviPointerList * channelList(){ return m_pChannelList; }; + inline KviPointerList * channelList() { return m_pChannelList; }; /** * \brief Helper that provides a shortcut for really common access to serverInfo()->networkName() @@ -430,14 +439,14 @@ public: /// /// FIXME: Could be made protected. /// - void registerChannel(KviChannelWindow *c); + void registerChannel(KviChannelWindow * c); /// /// This is called by KviChannelWindow just before destruction. You shouldn't need to call it. /// /// FIXME: Could be made protected. /// - void unregisterChannel(KviChannelWindow *c); + void unregisterChannel(KviChannelWindow * c); /** * \brief Marks all the currently existing channels as DEAD @@ -484,7 +493,7 @@ public: * The returned pointer is never NULL (the list may be empty though). * \return KviPointerList * */ - inline KviPointerList * queryList(){ return m_pQueryList; }; + inline KviPointerList * queryList() { return m_pQueryList; }; /// /// Visibility mode for createQuery() @@ -514,21 +523,21 @@ public: * \param eShowMode Specifies the show mode for the window * \return KviQueryWindow * */ - KviQueryWindow * createQuery(const QString & szNick,CreateQueryVisibilityMode eVisibilityMode = CreateQueryVisibilityFollowSettings); + KviQueryWindow * createQuery(const QString & szNick, CreateQueryVisibilityMode eVisibilityMode = CreateQueryVisibilityFollowSettings); /// /// This is called by KviQueryWindow upon creation, you shouldn't need to use it. /// /// FIXME: Could be made protected. /// - void registerQuery(KviQueryWindow *q); + void registerQuery(KviQueryWindow * q); /// /// This is called by KviQueryWindow just before destruction, you shouldn't need to use it. /// /// FIXME: Could be made protected. /// - void unregisterQuery(KviQueryWindow *q); + void unregisterQuery(KviQueryWindow * q); /** * \brief Marks all the currently open queries as DEAD @@ -657,7 +666,7 @@ public: * windows. The returned pointer may be null if things really went wrong. * \return QTextCodec * */ - inline QTextCodec * textCodec(){ return m_pTextCodec; }; + inline QTextCodec * textCodec() { return m_pTextCodec; }; /** * \brief Returns a pointer to the current global codec for inbound data. @@ -666,7 +675,7 @@ public: * windows. The returned pointer may be null if things really went wrong. * \return QTextCodec * */ - inline QTextCodec * serverCodec(){ return m_pSrvCodec; }; + inline QTextCodec * serverCodec() { return m_pSrvCodec; }; /** * \brief Sets the global encoding for this connection. @@ -701,6 +710,7 @@ public: * \return QByteArray */ QByteArray encodeText(const QString & szText); + protected: // // Notify list management @@ -747,7 +757,7 @@ protected: * evaluating it via KVS engine (so identifiers are substituted). * Call this function instead of m_pUserInfo->setRealName(). */ - void useRealName(const QString &szRealName); + void useRealName(const QString & szRealName); /** * \brief Logins to the irc server @@ -760,17 +770,17 @@ protected: * The first element of the pair is the channel name, the second element of the pair is the eventual password. * May send multiple JOIN messages. */ - void joinChannels(const QList< QPair< QString,QString > > &lChannelsAndPasses); + void joinChannels(const QList> & lChannelsAndPasses); /** * Gather the list of currently joined channels with the relative passwords. */ - void gatherChannelAndPasswordPairs(QList< QPair< QString,QString > > &lChannelsAndPasses); + void gatherChannelAndPasswordPairs(QList> & lChannelsAndPasses); /** * Gather the list of currently open query names. */ - void gatherQueryNames(QStringList &lQueryNames); + void gatherQueryNames(QStringList & lQueryNames); /** * Picks the next login nickname to be tried. If bForceDefaultIfPrimaryNicknamesEmpty is true then the algorithm @@ -782,7 +792,7 @@ protected: * used for the random alternatives as the first left 7 characters. Upon return szChoiceDescriptionBuffer will contain * the textual description of the choice made (network specific, alternative, server specific, global etc...). */ - QString pickNextLoginNickName(bool bForceDefaultIfPrimaryNicknamesEmpty,const QString & szBaseNickForRandomChoices,QString &szChoiceDescriptionBuffer); + QString pickNextLoginNickName(bool bForceDefaultIfPrimaryNicknamesEmpty, const QString & szBaseNickForRandomChoices, QString & szChoiceDescriptionBuffer); // // KviIrcServerParser interface @@ -927,6 +937,7 @@ protected: * \return void */ void linkTerminated(); + private: /** * \brief Setups the codec for the text @@ -1003,7 +1014,6 @@ signals: void chanListChanged(); }; - // TODO: KviIdentity #endif //_KVI_IRCCONNECTION_H_ diff --git a/src/kvirc/kernel/KviIrcConnectionAntiCtcpFloodData.cpp b/src/kvirc/kernel/KviIrcConnectionAntiCtcpFloodData.cpp index 43f72434f..6c3cc310f 100644 --- a/src/kvirc/kernel/KviIrcConnectionAntiCtcpFloodData.cpp +++ b/src/kvirc/kernel/KviIrcConnectionAntiCtcpFloodData.cpp @@ -22,8 +22,6 @@ // //============================================================================= - - #include "KviIrcConnectionAntiCtcpFloodData.h" KviIrcConnectionAntiCtcpFloodData::KviIrcConnectionAntiCtcpFloodData() diff --git a/src/kvirc/kernel/KviIrcConnectionAntiCtcpFloodData.h b/src/kvirc/kernel/KviIrcConnectionAntiCtcpFloodData.h index f1cf3e7ed..685df2273 100644 --- a/src/kvirc/kernel/KviIrcConnectionAntiCtcpFloodData.h +++ b/src/kvirc/kernel/KviIrcConnectionAntiCtcpFloodData.h @@ -32,17 +32,17 @@ class KVIRC_API KviIrcConnectionAntiCtcpFloodData public: KviIrcConnectionAntiCtcpFloodData(); ~KviIrcConnectionAntiCtcpFloodData(); + protected: // ctcp antiflood mechanism - kvi_time_t m_tLastCtcp; // the time we have received the last "may flood" ctcp request - unsigned int m_uCtcpCount; // the ctcp counter for the antiflooder + kvi_time_t m_tLastCtcp; // the time we have received the last "may flood" ctcp request + unsigned int m_uCtcpCount; // the ctcp counter for the antiflooder public: - kvi_time_t lastCtcpTime(){ return m_tLastCtcp; }; - unsigned int ctcpCount(){ return m_uCtcpCount; }; - void setLastCtcpTime(kvi_time_t tLastCtcp){ m_tLastCtcp = tLastCtcp; }; - void increaseCtcpCount(){ m_uCtcpCount++; }; - void setCtcpCount(unsigned int uCtcpCount){ m_uCtcpCount = uCtcpCount; }; + kvi_time_t lastCtcpTime() { return m_tLastCtcp; }; + unsigned int ctcpCount() { return m_uCtcpCount; }; + void setLastCtcpTime(kvi_time_t tLastCtcp) { m_tLastCtcp = tLastCtcp; }; + void increaseCtcpCount() { m_uCtcpCount++; }; + void setCtcpCount(unsigned int uCtcpCount) { m_uCtcpCount = uCtcpCount; }; }; - #endif //!_KVI_IRCCONNECTIONANTICTCPFLOODDATA_H_ diff --git a/src/kvirc/kernel/KviIrcConnectionAsyncData.h b/src/kvirc/kernel/KviIrcConnectionAsyncData.h index 98b0c7482..f296a7c3d 100644 --- a/src/kvirc/kernel/KviIrcConnectionAsyncData.h +++ b/src/kvirc/kernel/KviIrcConnectionAsyncData.h @@ -44,7 +44,8 @@ public: ~KviIrcConnectionAsyncData() { - if(m_pInfoList)delete m_pInfoList; + if(m_pInfoList) + delete m_pInfoList; } protected: @@ -60,19 +61,22 @@ public: m_pInfoList->append(i); } - T * lookup(const QString &nick) + T * lookup(const QString & nick) { - if(!m_pInfoList)return 0; - for(T * i = m_pInfoList->first();i;i = m_pInfoList->next()) + if(!m_pInfoList) + return 0; + for(T * i = m_pInfoList->first(); i; i = m_pInfoList->next()) { - if(KviQString::equalCI(nick,i->szNick))return i; + if(KviQString::equalCI(nick, i->szNick)) + return i; } return 0; } void remove(T * i) { - if(!m_pInfoList)return; + if(!m_pInfoList) + return; m_pInfoList->removeRef(i); if(m_pInfoList->isEmpty()) { diff --git a/src/kvirc/kernel/KviIrcConnectionAsyncWhoisData.cpp b/src/kvirc/kernel/KviIrcConnectionAsyncWhoisData.cpp index 0524d03ab..1c7dc703e 100644 --- a/src/kvirc/kernel/KviIrcConnectionAsyncWhoisData.cpp +++ b/src/kvirc/kernel/KviIrcConnectionAsyncWhoisData.cpp @@ -22,8 +22,6 @@ // //============================================================================= - - #include "KviIrcConnectionAsyncWhoisData.h" #include "KviKvsScript.h" @@ -35,6 +33,8 @@ KviAsyncWhoisInfo::KviAsyncWhoisInfo() KviAsyncWhoisInfo::~KviAsyncWhoisInfo() { - if(pCallback)delete pCallback; - if(pMagic)delete pMagic; + if(pCallback) + delete pCallback; + if(pMagic) + delete pMagic; } diff --git a/src/kvirc/kernel/KviIrcConnectionAsyncWhoisData.h b/src/kvirc/kernel/KviIrcConnectionAsyncWhoisData.h index 9218f0506..e6d8c513c 100644 --- a/src/kvirc/kernel/KviIrcConnectionAsyncWhoisData.h +++ b/src/kvirc/kernel/KviIrcConnectionAsyncWhoisData.h @@ -44,19 +44,18 @@ public: QString szIdle; QString szSignon; QString szChannels; - QString szAway; // The szSpecial member is renamed szAway as its sole purpose is to tell whether the user is away or not + QString szAway; // The szSpecial member is renamed szAway as its sole purpose is to tell whether the user is away or not QString szAuth; QString szAdditional; KviKvsScript * pCallback; KviKvsVariant * pMagic; KviWindow * pWindow; + public: KviAsyncWhoisInfo(); ~KviAsyncWhoisInfo(); }; - - // KviIrcConnectionAsyncWhoisData is now recreated using a template // I'm using inheritance as i haven't been able to use a typedef // This line didn't build diff --git a/src/kvirc/kernel/KviIrcConnectionNetsplitDetectorData.cpp b/src/kvirc/kernel/KviIrcConnectionNetsplitDetectorData.cpp index 95179ea5d..67e1225ee 100644 --- a/src/kvirc/kernel/KviIrcConnectionNetsplitDetectorData.cpp +++ b/src/kvirc/kernel/KviIrcConnectionNetsplitDetectorData.cpp @@ -22,8 +22,6 @@ // //============================================================================= - - #include "KviIrcConnectionNetsplitDetectorData.h" KviIrcConnectionNetsplitDetectorData::KviIrcConnectionNetsplitDetectorData() diff --git a/src/kvirc/kernel/KviIrcConnectionNetsplitDetectorData.h b/src/kvirc/kernel/KviIrcConnectionNetsplitDetectorData.h index ef949a87c..c88d9b80a 100644 --- a/src/kvirc/kernel/KviIrcConnectionNetsplitDetectorData.h +++ b/src/kvirc/kernel/KviIrcConnectionNetsplitDetectorData.h @@ -33,14 +33,16 @@ class KVIRC_API KviIrcConnectionNetsplitDetectorData public: KviIrcConnectionNetsplitDetectorData(); ~KviIrcConnectionNetsplitDetectorData(); + protected: - QString m_szLastNetsplitOnQuitReason; - kvi_time_t m_tLastNetsplitOnQuit; + QString m_szLastNetsplitOnQuitReason; + kvi_time_t m_tLastNetsplitOnQuit; + public: - const QString & lastNetsplitOnQuitReason(){ return m_szLastNetsplitOnQuitReason; }; - void setLastNetsplitOnQuitReason(const QString &szReason){ m_szLastNetsplitOnQuitReason = szReason; }; - kvi_time_t lastNetsplitOnQuitTime(){ return m_tLastNetsplitOnQuit; }; - void setLastNetsplitOnQuitTime(kvi_time_t t){ m_tLastNetsplitOnQuit = t; }; + const QString & lastNetsplitOnQuitReason() { return m_szLastNetsplitOnQuitReason; }; + void setLastNetsplitOnQuitReason(const QString & szReason) { m_szLastNetsplitOnQuitReason = szReason; }; + kvi_time_t lastNetsplitOnQuitTime() { return m_tLastNetsplitOnQuit; }; + void setLastNetsplitOnQuitTime(kvi_time_t t) { m_tLastNetsplitOnQuit = t; }; }; #endif //!_KVI_IRCCONNECTIONNETSPLITDETECTORDATA_H_ diff --git a/src/kvirc/kernel/KviIrcConnectionRequestQueue.cpp b/src/kvirc/kernel/KviIrcConnectionRequestQueue.cpp index be2cf75b2..06c817bfc 100644 --- a/src/kvirc/kernel/KviIrcConnectionRequestQueue.cpp +++ b/src/kvirc/kernel/KviIrcConnectionRequestQueue.cpp @@ -50,7 +50,7 @@ void KviIrcConnectionRequestQueue::enqueueChannel(KviChannelWindow * pChan) m_channels.enqueue(pChan); if(!m_timer.isActive()) { - m_timer.start(KVI_OPTION_UINT(KviOption_uintOnJoinRequestsDelay)*1000); + m_timer.start(KVI_OPTION_UINT(KviOption_uintOnJoinRequestsDelay) * 1000); } } } @@ -77,7 +77,9 @@ void KviIrcConnectionRequestQueue::timerSlot() if(m_channels.isEmpty()) { m_timer.stop(); - } else { + } + else + { KviChannelWindow * pChan = m_channels.head(); QByteArray encodedChan = pChan->connection()->encodeText(pChan->target()).data(); /* The following switch will let the execution flow pass-through if any request type @@ -87,40 +89,32 @@ void KviIrcConnectionRequestQueue::timerSlot() switch(m_curType) { case BanException: - if(pChan->serverInfo()->supportedListModes().contains('e') && - !KVI_OPTION_BOOL(KviOption_boolDisableBanExceptionListRequestOnJoin) && - !( pChan->serverInfo()->getNeedsOpToListModeseI() && - !pChan->isMeOp() - ) - ) + if(pChan->serverInfo()->supportedListModes().contains('e') && !KVI_OPTION_BOOL(KviOption_boolDisableBanExceptionListRequestOnJoin) && !(pChan->serverInfo()->getNeedsOpToListModeseI() && !pChan->isMeOp())) { - if(!pChan->connection()->sendFmtData("MODE %s e",encodedChan.data())) + if(!pChan->connection()->sendFmtData("MODE %s e", encodedChan.data())) clearAll(); // disconnected - else pChan->setSentListRequest('e'); + else + pChan->setSentListRequest('e'); m_curType = Invite; break; } case Invite: - if(pChan->serverInfo()->supportedListModes().contains('I') && - !KVI_OPTION_BOOL(KviOption_boolDisableInviteListRequestOnJoin) && - !( pChan->serverInfo()->getNeedsOpToListModeseI() && - !pChan->isMeOp() - ) - ) + if(pChan->serverInfo()->supportedListModes().contains('I') && !KVI_OPTION_BOOL(KviOption_boolDisableInviteListRequestOnJoin) && !(pChan->serverInfo()->getNeedsOpToListModeseI() && !pChan->isMeOp())) { - if(!pChan->connection()->sendFmtData("MODE %s I",encodedChan.data())) + if(!pChan->connection()->sendFmtData("MODE %s I", encodedChan.data())) clearAll(); // disconnected - else pChan->setSentListRequest('I'); + else + pChan->setSentListRequest('I'); m_curType = QuietBan; break; } case QuietBan: - if(pChan->serverInfo()->supportedListModes().contains('q') && - !KVI_OPTION_BOOL(KviOption_boolDisableQuietBanListRequestOnJoin)) + if(pChan->serverInfo()->supportedListModes().contains('q') && !KVI_OPTION_BOOL(KviOption_boolDisableQuietBanListRequestOnJoin)) { - if(!pChan->connection()->sendFmtData("MODE %s q",encodedChan.data())) + if(!pChan->connection()->sendFmtData("MODE %s q", encodedChan.data())) clearAll(); // disconnected - else pChan->setSentListRequest('q'); + else + pChan->setSentListRequest('q'); m_curType = Who; break; } @@ -133,20 +127,24 @@ void KviIrcConnectionRequestQueue::timerSlot() { KviCString tmp; if(pChan->serverInfo()->supportsWhox()) - tmp.sprintf("WHO %s %acdfhlnrsu",encodedChan.data()); + tmp.sprintf("WHO %s %acdfhlnrsu", encodedChan.data()); else - tmp.sprintf("WHO %s",encodedChan.data()); - pChan->connection()->lagMeter()->lagCheckRegister(tmp.ptr(),60); + tmp.sprintf("WHO %s", encodedChan.data()); + pChan->connection()->lagMeter()->lagCheckRegister(tmp.ptr(), 60); } if(pChan->serverInfo()->supportsWhox()) { - if(!pChan->connection()->sendFmtData("WHO %s %acdfhlnrsu",encodedChan.data())) + if(!pChan->connection()->sendFmtData("WHO %s %acdfhlnrsu", encodedChan.data())) clearAll(); // disconnected - else pChan->setSentWhoRequest(); - } else { - if(!pChan->connection()->sendFmtData("WHO %s",encodedChan.data())) + else + pChan->setSentWhoRequest(); + } + else + { + if(!pChan->connection()->sendFmtData("WHO %s", encodedChan.data())) clearAll(); // disconnected - else pChan->setSentWhoRequest(); + else + pChan->setSentWhoRequest(); } m_curType = Ban; break; @@ -154,10 +152,12 @@ void KviIrcConnectionRequestQueue::timerSlot() case Ban: if(!KVI_OPTION_BOOL(KviOption_boolDisableBanListRequestOnJoin)) { - if(!pChan->connection()->sendFmtData("MODE %s b",encodedChan.data())) + if(!pChan->connection()->sendFmtData("MODE %s b", encodedChan.data())) { clearAll(); // disconnected - } else { + } + else + { pChan->setSentListRequest('b'); m_channels.dequeue(); } @@ -177,7 +177,7 @@ void KviIrcConnectionRequestQueue::timerSlot() pChan = m_channels.head(); encodedChan = pChan->connection()->encodeText(pChan->target()); case Mode: - if(!pChan->connection()->sendFmtData("MODE %s",encodedChan.data())) + if(!pChan->connection()->sendFmtData("MODE %s", encodedChan.data())) { clearAll(); // disconnected break; diff --git a/src/kvirc/kernel/KviIrcConnectionRequestQueue.h b/src/kvirc/kernel/KviIrcConnectionRequestQueue.h index 857e8e60a..77f63494c 100644 --- a/src/kvirc/kernel/KviIrcConnectionRequestQueue.h +++ b/src/kvirc/kernel/KviIrcConnectionRequestQueue.h @@ -44,7 +44,7 @@ class KviChannelWindow; * This class is designed to delay channel requests like MODE and WHO to avoid * excess floods on some servers */ -class KVIRC_API KviIrcConnectionRequestQueue: public QObject +class KVIRC_API KviIrcConnectionRequestQueue : public QObject { Q_OBJECT public: @@ -58,6 +58,7 @@ public: * \brief Destroys the request queue objects */ virtual ~KviIrcConnectionRequestQueue(); + protected: /** * \enum RequestTypes @@ -65,7 +66,8 @@ protected: * \warning MODE %s b MUST BE THE LAST AUTOMATIC CHANNEL QUERY so we get * RPL_ENDOFBANLIST as the last reply and we know that the channel is in sync */ - enum RequestTypes { + enum RequestTypes + { Mode = 0, /**< Channel modes request */ BanException = 1, /**< Ban exceptions request */ Invite = 2, /**< Invites request */ @@ -75,8 +77,9 @@ protected: }; QQueue m_channels; - QTimer m_timer; - RequestTypes m_curType; + QTimer m_timer; + RequestTypes m_curType; + public: /** * \brief Enqueues the channel in the queue stack diff --git a/src/kvirc/kernel/KviIrcConnectionServerInfo.cpp b/src/kvirc/kernel/KviIrcConnectionServerInfo.cpp index 0326ca0a1..07a1f5320 100644 --- a/src/kvirc/kernel/KviIrcConnectionServerInfo.cpp +++ b/src/kvirc/kernel/KviIrcConnectionServerInfo.cpp @@ -22,8 +22,6 @@ // //============================================================================= - - #include "KviIrcConnectionServerInfo.h" #include "KviLocale.h" #include "KviMemory.h" @@ -64,12 +62,12 @@ bool KviIrcConnectionServerInfo::isSupportedChannelType(QChar c) return m_szSupportedChannelTypes.contains(c); } -void KviIrcConnectionServerInfo::addSupportedCaps(const QString &szCapList) +void KviIrcConnectionServerInfo::addSupportedCaps(const QString & szCapList) { m_bSupportsCap = true; - QStringList lTmp = szCapList.split(' ',QString::SkipEmptyParts); - foreach(QString szCap,lTmp) + QStringList lTmp = szCapList.split(' ', QString::SkipEmptyParts); + foreach(QString szCap, lTmp) { // cap modifiers are: // '-' : disable a capability (should not be present in a LS message...) @@ -84,11 +82,11 @@ void KviIrcConnectionServerInfo::addSupportedCaps(const QString &szCapList) case '-': case '~': case '=': - szCap.remove(0,1); - break; + szCap.remove(0, 1); + break; default: // ok - break; + break; } szCap = szCap.toLower(); @@ -98,7 +96,7 @@ void KviIrcConnectionServerInfo::addSupportedCaps(const QString &szCapList) } } -void KviIrcConnectionServerInfo::setSupportedChannelModes(const QString &szSupportedChannelModes) +void KviIrcConnectionServerInfo::setSupportedChannelModes(const QString & szSupportedChannelModes) { QStringList szAllModes = szSupportedChannelModes.split(',', QString::KeepEmptyParts); @@ -116,7 +114,7 @@ void KviIrcConnectionServerInfo::setSupportedChannelModes(const QString &szSuppo m_szSupportedChannelModes = szSupportedChannelModes; } -void KviIrcConnectionServerInfo::setSupportedModePrefixes(const QString &szSupportedModePrefixes,const QString &szSupportedModeFlags) +void KviIrcConnectionServerInfo::setSupportedModePrefixes(const QString & szSupportedModePrefixes, const QString & szSupportedModeFlags) { m_szSupportedModeFlags = szSupportedModeFlags; m_szSupportedModePrefixes = szSupportedModePrefixes; @@ -125,43 +123,51 @@ void KviIrcConnectionServerInfo::setSupportedModePrefixes(const QString &szSuppo void KviIrcConnectionServerInfo::buildModePrefixTable() { - if(m_pModePrefixTable) KviMemory::free(m_pModePrefixTable); + if(m_pModePrefixTable) + KviMemory::free(m_pModePrefixTable); const QChar * cPrefix = m_szSupportedModePrefixes.constData(); const QChar * cFlag = m_szSupportedModeFlags.constData(); - if(!cPrefix || !cFlag)return; // eh ? + if(!cPrefix || !cFlag) + return; // eh ? - m_uPrefixes=qMin(m_szSupportedModePrefixes.length(),m_szSupportedModePrefixes.length()); - m_pModePrefixTable=(kvi_u32_t*)KviMemory::allocate(sizeof(kvi_u32_t)*3*m_uPrefixes); + m_uPrefixes = qMin(m_szSupportedModePrefixes.length(), m_szSupportedModePrefixes.length()); + m_pModePrefixTable = (kvi_u32_t *)KviMemory::allocate(sizeof(kvi_u32_t) * 3 * m_uPrefixes); - unsigned short uPrefix,uFlag; + unsigned short uPrefix, uFlag; // Pragma: FIXME: The whole mode handling needs rethinking! // Alexey: FIXED: rethinked:) // Pragma: LOL :DDDD - unsigned int i=0; - while( (uPrefix = cPrefix->unicode()) && (uFlag = cFlag->unicode()) && iunicode()) && (uFlag = cFlag->unicode()) && i < m_uPrefixes * 3) { - m_pModePrefixTable[i]=uPrefix; - m_pModePrefixTable[i+1]=uFlag; + m_pModePrefixTable[i] = uPrefix; + m_pModePrefixTable[i + 1] = uFlag; switch(uFlag) { - case 'o': m_pModePrefixTable[i+2] = KviIrcUserEntry::Op; + case 'o': + m_pModePrefixTable[i + 2] = KviIrcUserEntry::Op; break; - case 'v': m_pModePrefixTable[i+2] = KviIrcUserEntry::Voice; + case 'v': + m_pModePrefixTable[i + 2] = KviIrcUserEntry::Voice; break; - case 'h': m_pModePrefixTable[i+2] = KviIrcUserEntry::HalfOp; + case 'h': + m_pModePrefixTable[i + 2] = KviIrcUserEntry::HalfOp; break; - case 'a': m_pModePrefixTable[i+2] = KviIrcUserEntry::ChanAdmin; + case 'a': + m_pModePrefixTable[i + 2] = KviIrcUserEntry::ChanAdmin; break; - case 'u': m_pModePrefixTable[i+2] = KviIrcUserEntry::UserOp; + case 'u': + m_pModePrefixTable[i + 2] = KviIrcUserEntry::UserOp; break; - case 'q': m_pModePrefixTable[i+2] = KviIrcUserEntry::ChanOwner; + case 'q': + m_pModePrefixTable[i + 2] = KviIrcUserEntry::ChanOwner; break; default: - m_pModePrefixTable[i+2]=0; - break; + m_pModePrefixTable[i + 2] = 0; + break; } - i+=3; + i += 3; cPrefix++; cFlag++; } @@ -169,102 +175,115 @@ void KviIrcConnectionServerInfo::buildModePrefixTable() bool KviIrcConnectionServerInfo::isSupportedModePrefix(QChar c) { - if(!m_pModePrefixTable) return false; - for(unsigned int i=0;i