aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Szymon Tomasz Stefanek2007-01-16 01:28:40 +0000
committerGravatar Szymon Tomasz Stefanek2007-01-16 01:28:40 +0000
commitf82d9bed8be9d4374dc219def31b6a516687db48 (patch)
treeb30fba3a355ecf15b1c6fdc6ad9e41bccee4ddb2
parent*AUTOMATICALLY* updated KVI_SOURCES_DATE variable (diff)
downloadKVIrc-f82d9bed8be9d4374dc219def31b6a516687db48.tar.gz
KVIrc-f82d9bed8be9d4374dc219def31b6a516687db48.tar.bz2
KVIrc-f82d9bed8be9d4374dc219def31b6a516687db48.zip
First step in the Qt 4.x port
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@174 17fca916-40b9-46aa-a4ea-0a15b648b75c
-rw-r--r--ChangeLog18
-rw-r--r--admin/acinclude.m4.in548
-rwxr-xr-xadmin/config.guess128
-rwxr-xr-xadmin/config.sub84
-rw-r--r--admin/ltmain.sh114
-rwxr-xr-xconfigure.in17
-rw-r--r--data/pics/coresmall/kcs_screenshot.pngbin0 -> 689 bytes
-rw-r--r--data/pics/kvi_bigicon_screenshot.pngbin0 -> 1974 bytes
-rw-r--r--po/kvirc/kvirc_es.po3675
-rw-r--r--src/config.h.in23
-rw-r--r--src/kvilib/build/Makefile.am3
-rw-r--r--src/kvilib/config/kvi_settings.h4
-rw-r--r--src/kvilib/config/kvi_wincfg.h3
-rw-r--r--src/kvilib/core/kvi_asciidict.h39
-rw-r--r--src/kvilib/core/kvi_dict.h39
-rw-r--r--src/kvilib/core/kvi_list.h27
-rw-r--r--src/kvilib/core/kvi_qstring.cpp137
-rw-r--r--src/kvilib/core/kvi_string.cpp41
-rw-r--r--src/kvilib/core/kvi_string.h19
-rw-r--r--src/kvilib/core/kvi_valuelist.h37
-rw-r--r--src/kvilib/ext/kvi_cmdformatter.cpp22
-rw-r--r--src/kvilib/ext/kvi_config.cpp22
-rw-r--r--src/kvilib/ext/kvi_config.h18
-rw-r--r--src/kvilib/system/kvi_locale.cpp200
-rw-r--r--src/kvilib/system/kvi_locale.h12
-rw-r--r--src/kvirc/kernel/kvi_app.h2
-rw-r--r--src/kvirc/kernel/kvi_app_fs.cpp12
-rw-r--r--src/kvirc/kernel/kvi_coreactionnames.h1
-rw-r--r--src/kvirc/kernel/kvi_coreactions.cpp11
-rw-r--r--src/kvirc/kernel/kvi_iconmanager.cpp3
-rw-r--r--src/kvirc/kernel/kvi_iconmanager.h4
-rw-r--r--src/kvirc/kernel/kvi_theme.cpp161
-rw-r--r--src/kvirc/kernel/kvi_theme.h17
-rw-r--r--src/kvirc/kvs/kvi_kvs_coresimplecommands_mr.cpp2
-rw-r--r--src/kvirc/ui/kvi_menubar.cpp52
-rw-r--r--src/kvirc/ui/kvi_window.cpp6
-rw-r--r--src/modules/mircimport/libkvimircimport.cpp4
-rw-r--r--src/modules/str/libkvistr.cpp2
-rw-r--r--src/modules/theme/libkvitheme.cpp53
-rw-r--r--src/modules/theme/managementdialog.cpp30
-rw-r--r--src/modules/theme/managementdialog.h6
-rw-r--r--src/modules/theme/packthemedialog.cpp70
-rw-r--r--src/modules/theme/packthemedialog.h5
-rw-r--r--src/modules/theme/savethemedialog.cpp217
-rw-r--r--src/modules/theme/savethemedialog.h27
-rw-r--r--src/modules/theme/themefunctions.cpp79
-rw-r--r--src/modules/theme/themefunctions.h6
47 files changed, 2070 insertions, 3930 deletions
diff --git a/ChangeLog b/ChangeLog
index 379b4d90f..32c837106 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,20 @@
+15 Jan 2007
+ [Pragma]
+ - Fixed the smart encoders a bit more
+ - Theme management: rewritten the theme save dialog as a wizard, added screenshot management.
+ - Really first step to Qt 4.x support: added ./configure switches to handle qt4 and
+ fiddled the makefile variables to contain the right include and library paths.
+ Still have no idea if everything works correctly since compilation bails out
+ very early in kvilib.
+ You're likely to have problems with moc since the configure script tends
+ to find the Qt 3.x moc instead of the correct one. Use the --with-qt4-moc option
+ to force the right moc compiler path.
+ In Qt 4.x mode the COMPILE_USE_QT4 preprocessor variable is set: use it for conditionals...
+ an #ifdef COMPILE_USE_QT4 is more or less equivalent to #if QT_VERSION >= 0x040000.
+ We will need to "abstract" several collection classes to make everything
+ work with both Qt 3.x and Qt 4.x. The goal is (or better would be) to hide everything in
+ kvilib in order to have almost no conditional compilation in the kvirc core and in the modules.
+
12 Jan 2007
[Pragma]
- Added a set of smart encoders that send in UTF-8 instead of the child encoding
@@ -5,6 +22,7 @@
to certain messages from server
- Added corrections and null checks in some places to make KVIrc resist to
the ircfuzz.c attack.
+ - Committed the spanish translation by Roberto Ciria
08 Jan 2007
[Pragma]
diff --git a/admin/acinclude.m4.in b/admin/acinclude.m4.in
index 719e89ae6..9423c0a52 100644
--- a/admin/acinclude.m4.in
+++ b/admin/acinclude.m4.in
@@ -16,10 +16,10 @@ AC_DEFUN([AC_SS_INIT_VARIABLES],
dnl # // Qt Stuff
- SS_QT_GENERAL_DIR=""
- SS_QT_INCDIR=""
- SS_QT_LIBDIR=""
- SS_QT_MOC=""
+ SS_QT3_GENERAL_DIR=""
+ SS_QT3_INCDIR=""
+ SS_QT3_LIBDIR=""
+ SS_QT3_MOC=""
dnl # // KDE Stuff
@@ -528,8 +528,8 @@ AC_DEFUN([AC_SS_MISC_OPTIONS],
AC_DEFINE([COMPILE_ONLY_NEW_KVS], 1, [define if you want to use only the new KVS parser])
AC_MSG_CHECKING([if you want to link to the embedded version of qt])
- AC_ARG_WITH(qt-embedded,[ --with-qt-embedded Link to qt-embedded (see INSTALL)],SS_QT_EMBEDDED="true")
- if test "$SS_QT_EMBEDDED" = "true"; then
+ AC_ARG_WITH(qt-embedded,[ --with-qt-embedded Link to qt-embedded (see INSTALL)],SS_QT3_EMBEDDED="true")
+ if test "$SS_QT3_EMBEDDED" = "true"; then
AC_MSG_RESULT(yes)
SS_BUILD_FLAGS="E$SS_BUILD_FLAGS"
else
@@ -1063,9 +1063,9 @@ AC_DEFUN([AC_SS_CHECK_ARTS],
ss_save_CXXFLAGS="$CXXFLAGS"
ss_save_LDFLAGS="$LDFLAGS"
ss_save_LIBS="$LIBS"
- CPPFLAGS="-I$SS_X_INCDIR -I$SS_QT_INCDIR -I$SS_KDE_INCDIR $CPPFLAGS $X_CFLAGS"
+ CPPFLAGS="-I$SS_X_INCDIR -I$SS_QT3_INCDIR -I$SS_KDE_INCDIR $CPPFLAGS $X_CFLAGS"
CXXFLAGS="-O2 -Wall $CXXFLAGS"
- LIBS="-L$SS_KDE_LIBDIR -L$SS_X_LIBDIR $SS_X_LDFLAGS $SS_X_LIBLINK -L$SS_QT_LIBDIR $LIBS -lsoundserver_idl -lkdecore -l$SS_QTLIB_NAME -Wl,-rpath $SS_KDE_LIBDIR"
+ LIBS="-L$SS_KDE_LIBDIR -L$SS_X_LIBDIR $SS_X_LDFLAGS $SS_X_LIBLINK -L$SS_QT3_LIBDIR $LIBS -lsoundserver_idl -lkdecore -l$SS_QTLIB_NAME -Wl,-rpath $SS_KDE_LIBDIR"
if test "$SS_LINK_TO_LIBDL" = "yes"; then
LIBS="$LIBS -ldl";
fi
@@ -1412,28 +1412,48 @@ AC_DEFUN([AC_SS_FIND_QT],
AC_ARG_ENABLE(qt-check,
AC_HELP_STRING([--disable-qt-check],[Do not check if Qt and X compile]),
SS_CHECK_QTX_COMPILE="$withval",SS_CHECK_QTX_COMPILE="NOTGIVEN")
+
+ AC_ARG_ENABLE(qt4,
+ AC_HELP_STRING([--enable-qt4],[Enable WORK IN PROGRESS Qt4 support]),
+ SS_USE_QT4="$withval",SS_USE_QT4="no")
+ if test "$SS_USE_QT4" = "no"; then
+
+ AC_SS_FIND_QT3_NAME
+ AC_SS_FIND_QT3_GENERAL_DIR
+ AC_SS_FIND_QT3_LIBRARY_DIR
+ AC_SS_FIND_QT3_INCLUDE_DIR
+ AC_SS_FIND_QT3_MOC
+ AC_SS_FIND_QT3_MT
+
if test "$SS_CHECK_QTX_COMPILE" = "NOTGIVEN"; then
- AC_SS_FIND_QT_NAME
- AC_SS_FIND_QT_GENERAL_DIR
- AC_SS_FIND_QT_LIBRARY_DIR
- AC_SS_FIND_QT_INCLUDE_DIR
- AC_SS_FIND_QT_MOC
- AC_SS_FIND_QT_MT
- AC_SS_ENSURE_CAN_COMPILE_X_AND_QT
+ AC_SS_ENSURE_CAN_COMPILE_X_AND_QT3
fi
+ else
+
+ AC_SS_FIND_QT4_GENERAL_DIR
+ AC_SS_FIND_QT4_LIBRARY_DIR
+ AC_SS_FIND_QT4_INCLUDE_DIR
+ AC_SS_FIND_QT4_MOC
+
+
+ if test "$SS_CHECK_QTX_COMPILE" = "NOTGIVEN"; then
+ AC_SS_ENSURE_CAN_COMPILE_X_AND_QT4
+ fi
+
+ fi
])
-AC_DEFUN([AC_SS_FIND_QT_NAME],
+AC_DEFUN([AC_SS_FIND_QT3_NAME],
[
AC_MSG_CHECKING([for the Qt library name])
AC_ARG_WITH(qt-name,[ --with-qt-name=NAME Use NAME instead of \"qt\" as Qt library name],SS_QTLIB_NAME="$withval",SS_QTLIB_NAME="qt")
AC_MSG_RESULT("$SS_QTLIB_NAME")
])
-AC_DEFUN([AC_SS_FIND_QT_GENERAL_DIR],
+AC_DEFUN([AC_SS_FIND_QT3_GENERAL_DIR],
[
- AC_MSG_CHECKING([for the general Qt directory])
+ AC_MSG_CHECKING([for the general Qt3.x directory])
ss_qt_general_test_dirs="/usr/local /usr /usr/X11R6 /usr/lib /opt /opt/kde /kde /usr/kde /usr/build /usr/src /usr/local/lib /"
ss_qt_general_test_dirs="$ss_qt_general_test_dirs /usr/local/kde /usr/opt/kde"
@@ -1446,53 +1466,94 @@ AC_DEFUN([AC_SS_FIND_QT_GENERAL_DIR],
ss_qt_general_test_dirs="$QTDIR $ss_qt_general_test_dirs"
fi
- ss_qt_general_test_path_suffix="qt$SS_QT_MAJOR_VERSION_REQUIRED.$SS_QT_MINOR_VERSION_REQUIRED.$SS_QT_PATCH_LEVEL_REQUIRED"
- ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt.$SS_QT_MAJOR_VERSION_REQUIRED.$SS_QT_MINOR_VERSION_REQUIRED.$SS_QT_PATCH_LEVEL_REQUIRED"
- ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt.$SS_QT_MAJOR_VERSION_REQUIRED$SS_QT_MINOR_VERSION_REQUIRED$SS_QT_PATCH_LEVEL_REQUIRED"
- ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt-$SS_QT_MAJOR_VERSION_REQUIRED.$SS_QT_MINOR_VERSION_REQUIRED.$SS_QT_PATCH_LEVEL_REQUIRED"
- ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt-$SS_QT_MAJOR_VERSION_REQUIRED$SS_QT_MINOR_VERSION_REQUIRED$SS_QT_PATCH_LEVEL_REQUIRED"
- ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt$SS_QT_MAJOR_VERSION_REQUIRED.$SS_QT_MINOR_VERSION_REQUIRED"
- ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt.$SS_QT_MAJOR_VERSION_REQUIRED.$SS_QT_MINOR_VERSION_REQUIRED"
- ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt.$SS_QT_MAJOR_VERSION_REQUIRED$SS_QT_MINOR_VERSION_REQUIRED"
- ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt-$SS_QT_MAJOR_VERSION_REQUIRED.$SS_QT_MINOR_VERSION_REQUIRED"
- ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt-$SS_QT_MAJOR_VERSION_REQUIRED$SS_QT_MINOR_VERSION_REQUIRED"
- ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt$SS_QT_MAJOR_VERSION_REQUIRED"
- ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt.$SS_QT_MAJOR_VERSION_REQUIRED"
- ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt-$SS_QT_MAJOR_VERSION_REQUIRED"
+ ss_qt_general_test_path_suffix="qt$SS_QT3_MAJOR_VERSION_REQUIRED.$SS_QT3_MINOR_VERSION_REQUIRED.$SS_QT3_PATCH_LEVEL_REQUIRED"
+ ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt.$SS_QT3_MAJOR_VERSION_REQUIRED.$SS_QT3_MINOR_VERSION_REQUIRED.$SS_QT3_PATCH_LEVEL_REQUIRED"
+ ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt.$SS_QT3_MAJOR_VERSION_REQUIRED$SS_QT3_MINOR_VERSION_REQUIRED$SS_QT3_PATCH_LEVEL_REQUIRED"
+ ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt-$SS_QT3_MAJOR_VERSION_REQUIRED.$SS_QT3_MINOR_VERSION_REQUIRED.$SS_QT3_PATCH_LEVEL_REQUIRED"
+ ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt-$SS_QT3_MAJOR_VERSION_REQUIRED$SS_QT3_MINOR_VERSION_REQUIRED$SS_QT3_PATCH_LEVEL_REQUIRED"
+ ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt$SS_QT3_MAJOR_VERSION_REQUIRED.$SS_QT3_MINOR_VERSION_REQUIRED"
+ ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt.$SS_QT3_MAJOR_VERSION_REQUIRED.$SS_QT3_MINOR_VERSION_REQUIRED"
+ ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt.$SS_QT3_MAJOR_VERSION_REQUIRED$SS_QT3_MINOR_VERSION_REQUIRED"
+ ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt-$SS_QT3_MAJOR_VERSION_REQUIRED.$SS_QT3_MINOR_VERSION_REQUIRED"
+ ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt-$SS_QT3_MAJOR_VERSION_REQUIRED$SS_QT3_MINOR_VERSION_REQUIRED"
+ ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt$SS_QT3_MAJOR_VERSION_REQUIRED"
+ ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt.$SS_QT3_MAJOR_VERSION_REQUIRED"
+ ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt-$SS_QT3_MAJOR_VERSION_REQUIRED"
+ ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix lib"
+ ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt ."
+
+ AC_SS_FIND_FILE_PATH_EXT($SS_QT3_GENERAL_FILE_TO_SEARCH,$ss_qt_general_test_dirs,$ss_qt_general_test_path_suffix,SS_QT3_GENERAL_DIR)
+ if test "$SS_QT3_GENERAL_DIR" = "FAILED"; then
+ AC_MSG_RESULT([failed...continuing with normal checks])
+ unset SS_QT3_GENERAL_DIR
+ else
+ AC_MSG_RESULT([Seems to be $SS_QT3_GENERAL_DIR])
+ fi
+])
+
+AC_DEFUN([AC_SS_FIND_QT4_GENERAL_DIR],
+[
+ AC_MSG_CHECKING([for the general Qt4.x directory])
+
+ ss_qt_general_test_dirs="/usr/local /usr /usr/X11R6 /usr/lib /opt /opt/kde /kde /usr/kde /usr/build /usr/src /usr/local/lib /"
+ ss_qt_general_test_dirs="$ss_qt_general_test_dirs /usr/local/kde /usr/opt/kde /usr/lib/qt4 /usr/local/lib/qt4"
+
+ if test -n "$HOME"; then
+ ss_qt_general_test_dirs="$ss_qt_general_test_dirs $HOME $HOME/lib"
+ fi
+
+ if test -n "$QTDIR"; then
+ ss_qt_general_test_dirs="$QTDIR $ss_qt_general_test_dirs"
+ fi
+
+ ss_qt_general_test_path_suffix="qt$SS_QT4_MAJOR_VERSION_REQUIRED.$SS_QT4_MINOR_VERSION_REQUIRED.$SS_QT4_PATCH_LEVEL_REQUIRED"
+ ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt.$SS_QT4_MAJOR_VERSION_REQUIRED.$SS_QT4_MINOR_VERSION_REQUIRED.$SS_QT4_PATCH_LEVEL_REQUIRED"
+ ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt.$SS_QT4_MAJOR_VERSION_REQUIRED$SS_QT4_MINOR_VERSION_REQUIRED$SS_QT4_PATCH_LEVEL_REQUIRED"
+ ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt-$SS_QT4_MAJOR_VERSION_REQUIRED.$SS_QT4_MINOR_VERSION_REQUIRED.$SS_QT4_PATCH_LEVEL_REQUIRED"
+ ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt-$SS_QT4_MAJOR_VERSION_REQUIRED$SS_QT4_MINOR_VERSION_REQUIRED$SS_QT4_PATCH_LEVEL_REQUIRED"
+ ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt$SS_QT4_MAJOR_VERSION_REQUIRED.$SS_QT4_MINOR_VERSION_REQUIRED"
+ ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt.$SS_QT4_MAJOR_VERSION_REQUIRED.$SS_QT4_MINOR_VERSION_REQUIRED"
+ ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt.$SS_QT4_MAJOR_VERSION_REQUIRED$SS_QT4_MINOR_VERSION_REQUIRED"
+ ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt-$SS_QT4_MAJOR_VERSION_REQUIRED.$SS_QT4_MINOR_VERSION_REQUIRED"
+ ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt-$SS_QT4_MAJOR_VERSION_REQUIRED$SS_QT4_MINOR_VERSION_REQUIRED"
+ ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt$SS_QT4_MAJOR_VERSION_REQUIRED"
+ ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt.$SS_QT4_MAJOR_VERSION_REQUIRED"
+ ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt-$SS_QT4_MAJOR_VERSION_REQUIRED"
ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix lib"
ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt ."
- AC_SS_FIND_FILE_PATH_EXT($SS_QT_GENERAL_FILE_TO_SEARCH,$ss_qt_general_test_dirs,$ss_qt_general_test_path_suffix,SS_QT_GENERAL_DIR)
- if test "$SS_QT_GENERAL_DIR" = "FAILED"; then
+ AC_SS_FIND_FILE_PATH_EXT($SS_QT4_GENERAL_FILE_TO_SEARCH,$ss_qt_general_test_dirs,$ss_qt_general_test_path_suffix,SS_QT4_GENERAL_DIR)
+ if test "$SS_QT4_GENERAL_DIR" = "FAILED"; then
AC_MSG_RESULT([failed...continuing with normal checks])
- unset SS_QT_GENERAL_DIR
+ unset SS_QT4_GENERAL_DIR
else
- AC_MSG_RESULT([Seems to be $SS_QT_GENERAL_DIR])
+ AC_MSG_RESULT([Seems to be $SS_QT4_GENERAL_DIR])
fi
])
-AC_DEFUN([AC_SS_FIND_QT_INCLUDE_DIR],
+
+AC_DEFUN([AC_SS_FIND_QT3_INCLUDE_DIR],
[
- AC_ARG_WITH(qt-include-dir,[ --with-qt-include-dir path to the Qt headers ],SS_QT_INCDIR="$withval",SS_QT_INCDIR="NOTGIVEN")
- if test "$SS_QT_INCDIR" = "NOTGIVEN"; then
+ AC_ARG_WITH(qt-include-dir,[ --with-qt-include-dir path to the Qt 3.x headers ],SS_QT3_INCDIR="$withval",SS_QT3_INCDIR="NOTGIVEN")
+ if test "$SS_QT3_INCDIR" = "NOTGIVEN"; then
- AC_MSG_CHECKING([for the Qt header files])
+ AC_MSG_CHECKING([for the Qt 3.x header files])
- ss_qt_include_test_dirs="$SS_QT_GENERAL_DIR/include /include /usr/include /usr/local/include /usr/qt/include /usr/local/qt/include /usr/X11R6/include /usr/lib/qt/include /usr/lib/qt /usr/include/X11"
+ ss_qt_include_test_dirs="$SS_QT3_GENERAL_DIR/include /include /usr/include /usr/local/include /usr/qt/include /usr/local/qt/include /usr/X11R6/include /usr/lib/qt/include /usr/lib/qt /usr/include/X11"
test -n "$QTDIR" && ss_qt_include_test_dirs="$QTDIR/include $QTDIR $ss_qt_include_test_dirs"
ss_qt_include_test_dirs="$ss_qt_include_test_dirs /usr/include/qt /usr/include/qt3 /usr/local/include/qt /include/qt /usr/X11R6/include/qt /usr/build/qt/include"
- ss_qt_include_test_dirs="$ss_qt_include_test_dirs /usr/include/qt$SS_QT_MAJOR_VERSION_REQUIRED /usr/include/qt-$SS_QT_MAJOR_VERSION_REQUIRED /usr/local/include/qt$SS_QT_MAJOR_VERSION_REQUIRED"
- ss_qt_include_test_dirs="$ss_qt_include_test_dirs /include/qt$SS_QT_MAJOR_VERSION_REQUIRED /usr/X11R6/include/qt$SS_QT_MAJOR_VERSION_REQUIRED"
- ss_qt_include_test_dirs="$ss_qt_include_test_dirs /usr/include/X11/qt$SS_QT_MAJOR_VERSION_REQUIRED /opt/qt /opt/kde/qt"
+ ss_qt_include_test_dirs="$ss_qt_include_test_dirs /usr/include/qt$SS_QT3_MAJOR_VERSION_REQUIRED /usr/include/qt-$SS_QT3_MAJOR_VERSION_REQUIRED /usr/local/include/qt$SS_QT3_MAJOR_VERSION_REQUIRED"
+ ss_qt_include_test_dirs="$ss_qt_include_test_dirs /include/qt$SS_QT3_MAJOR_VERSION_REQUIRED /usr/X11R6/include/qt$SS_QT3_MAJOR_VERSION_REQUIRED"
+ ss_qt_include_test_dirs="$ss_qt_include_test_dirs /usr/include/X11/qt$SS_QT3_MAJOR_VERSION_REQUIRED /opt/qt /opt/kde/qt"
- AC_SS_FIND_FILE_PATH($SS_QT_INCLUDE_FILE_TO_SEARCH,$ss_qt_include_test_dirs,SS_QT_INCDIR)
+ AC_SS_FIND_FILE_PATH($SS_QT3_INCLUDE_FILE_TO_SEARCH,$ss_qt_include_test_dirs,SS_QT3_INCDIR)
- if test "$SS_QT_INCDIR" = "FAILED"; then
+ if test "$SS_QT3_INCDIR" = "FAILED"; then
AC_MSG_RESULT([FAILED])
AC_SS_SET_REDINK
echo "################################################################################"
echo "### CONFIGURE ERROR:"
- echo "### Can not find the qt $QT_MAJOR_VERSION_REQUIRED.$QT_MINOR_VERSION_REQUIRED.$QT_PATCH_LEVEL_REQUIRED header files."
+ echo "### Can not find the qt 3.x header files."
echo "### Make sure that qt is correctly installed on your system,"
echo "### and the qt version is the one requested by this version of kvirc."
echo "### Try to run configure again, this time passing the --with-qt-include-dir"
@@ -1507,51 +1568,99 @@ AC_DEFUN([AC_SS_FIND_QT_INCLUDE_DIR],
AC_SS_SET_NORMALINK
AC_MSG_ERROR([This was a fatal one...aborting])
else
- AC_MSG_RESULT([found in $SS_QT_INCDIR])
+ AC_MSG_RESULT([found in $SS_QT3_INCDIR])
fi
else
- AC_MSG_RESULT([using user supplied path for the Qt include files $SS_QT_INCDIR])
+ AC_MSG_RESULT([using user supplied path for the Qt 3.x include files $SS_QT3_INCDIR])
fi
])
-AC_DEFUN([AC_SS_FIND_QT_LIBRARY_DIR],
+
+AC_DEFUN([AC_SS_FIND_QT4_INCLUDE_DIR],
[
- AC_ARG_WITH(qt-library-dir,[ --with-qt-library-dir path to the Qt library ],SS_QT_LIBDIR="$withval",SS_QT_LIBDIR="NOTGIVEN")
- if test "$SS_QT_LIBDIR" = "NOTGIVEN"; then
+ AC_ARG_WITH(qt4-include-dir,[ --with-qt4-include-dir path to the Qt 4.x headers ],SS_QT4_INCDIR="$withval",SS_QT4_INCDIR="NOTGIVEN")
+ if test "$SS_QT4_INCDIR" = "NOTGIVEN"; then
+
+ AC_MSG_CHECKING([for the Qt 4.x header files])
+
+ ss_qt_include_test_dirs="$SS_QT4_GENERAL_DIR/include /include /usr/include /usr/local/include /usr/qt/include /usr/include/qt4 /usr/qt4/include /usr/local/qt/include /usr/X11R6/include /usr/lib/qt/include /usr/lib/qt /usr/include/X11"
+ test -n "$QTDIR" && ss_qt_include_test_dirs="$QTDIR/include $QTDIR $ss_qt_include_test_dirs"
+ ss_qt_include_test_dirs="$ss_qt_include_test_dirs /usr/include/qt /usr/include/qt4 /usr/local/include/qt /include/qt /usr/X11R6/include/qt /usr/build/qt/include"
+ ss_qt_include_test_dirs="$ss_qt_include_test_dirs /usr/include/qt$SS_QT4_MAJOR_VERSION_REQUIRED /usr/include/qt-$SS_QT4_MAJOR_VERSION_REQUIRED /usr/local/include/qt$SS_QT4_MAJOR_VERSION_REQUIRED"
+ ss_qt_include_test_dirs="$ss_qt_include_test_dirs /include/qt$SS_QT4_MAJOR_VERSION_REQUIRED /usr/X11R6/include/qt$SS_QT4_MAJOR_VERSION_REQUIRED"
+ ss_qt_include_test_dirs="$ss_qt_include_test_dirs /usr/include/X11/qt$SS_QT4_MAJOR_VERSION_REQUIRED /opt/qt /opt/kde/qt"
+
+ AC_SS_FIND_FILE_PATH($SS_QT4_INCLUDE_FILE_TO_SEARCH,$ss_qt_include_test_dirs,SS_QT4_INCDIR)
+
+ if test "$SS_QT4_INCDIR" = "FAILED"; then
+ AC_MSG_RESULT([FAILED])
+ AC_SS_SET_REDINK
+ echo "################################################################################"
+ echo "### CONFIGURE ERROR:"
+ echo "### Can not find the qt 4.x header files."
+ echo "### Make sure that qt is correctly installed on your system,"
+ echo "### and the qt version is the one requested by this version of kvirc."
+ echo "### Try to run configure again, this time passing the --with-qt4-include-dir"
+ echo "### option (see ./configure --help)."
+ echo "### You may also take a look at the config.log file in this directory,"
+ echo "### that will tell you which check has failed and maybe more about the reason"
+ echo "### of the failure."
+ echo "### If you're feeling that this may be a bug in this configure script"
+ echo "### and want to report this to me , please include your configure script,"
+ echo "### the config.log file as well as the complete configure output."
+ echo "################################################################################"
+ AC_SS_SET_NORMALINK
+ AC_MSG_ERROR([This was a fatal one...aborting])
+ else
+ AC_MSG_RESULT([found in $SS_QT4_INCDIR])
+ fi
+
+ else
+ AC_MSG_RESULT([using user supplied path for the Qt 4.x include files $SS_QT4_INCDIR])
+ fi
+
+ SS_QT4_INCDIRECTORIES="-I$SS_QT4_INCDIR -I$SS_QT4_INCDIR/Qt/ -I$SS_QT4_INCDIR/QtCore/ -I$SS_QT4_INCDIR/QtGui/";
+])
+
+
+AC_DEFUN([AC_SS_FIND_QT3_LIBRARY_DIR],
+[
+ AC_ARG_WITH(qt-library-dir,[ --with-qt-library-dir path to the Qt 3.x library ],SS_QT3_LIBDIR="$withval",SS_QT3_LIBDIR="NOTGIVEN")
+ if test "$SS_QT3_LIBDIR" = "NOTGIVEN"; then
AC_MSG_CHECKING([for the Qt library])
- ss_qt_library_test_dirs="$SS_QT_GENERAL_DIR/lib /lib /usr/lib /usr/local/lib /usr/qt/lib /usr/local/qt/lib /usr/X11R6/lib /usr/lib/qt/lib /usr/lib/qt /usr/local/lib/qt/lib"
+ ss_qt_library_test_dirs="$SS_QT3_GENERAL_DIR/lib /lib /usr/lib /usr/local/lib /usr/qt/lib /usr/local/qt/lib /usr/X11R6/lib /usr/lib/qt/lib /usr/lib/qt /usr/local/lib/qt/lib"
test -n "$QTDIR" && ss_qt_library_test_dirs="$QTDIR/lib $QTDIR $ss_qt_library_test_dirs"
ss_qt_library_test_dirs="$ss_qt_library_test_dirs /usr/local/lib/qt /usr/X11R6/lib/qt /usr/build/qt/lib /opt/lib /opt/qt/lib"
- ss_qt_libs_to_find="lib$SS_QTLIB_NAME-mt.so.$SS_QT_MAJOR_VERSION_REQUIRED.$SS_QT_MINOR_VERSION_REQUIRED.$SS_QT_PATCH_LEVEL_REQUIRED"
- ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.so.$SS_QT_MAJOR_VERSION_REQUIRED.$SS_QT_MINOR_VERSION_REQUIRED"
- ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.so.$SS_QT_MAJOR_VERSION_REQUIRED"
+ ss_qt_libs_to_find="lib$SS_QTLIB_NAME-mt.so.$SS_QT3_MAJOR_VERSION_REQUIRED.$SS_QT3_MINOR_VERSION_REQUIRED.$SS_QT3_PATCH_LEVEL_REQUIRED"
+ ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.so.$SS_QT3_MAJOR_VERSION_REQUIRED.$SS_QT3_MINOR_VERSION_REQUIRED"
+ ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.so.$SS_QT3_MAJOR_VERSION_REQUIRED"
ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.so"
- ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME.so.$SS_QT_MAJOR_VERSION_REQUIRED.$SS_QT_MINOR_VERSION_REQUIRED.$SS_QT_PATCH_LEVEL_REQUIRED"
- ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME.so.$SS_QT_MAJOR_VERSION_REQUIRED.$SS_QT_MINOR_VERSION_REQUIRED"
- ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME.so.$SS_QT_MAJOR_VERSION_REQUIRED"
+ ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME.so.$SS_QT3_MAJOR_VERSION_REQUIRED.$SS_QT3_MINOR_VERSION_REQUIRED.$SS_QT3_PATCH_LEVEL_REQUIRED"
+ ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME.so.$SS_QT3_MAJOR_VERSION_REQUIRED.$SS_QT3_MINOR_VERSION_REQUIRED"
+ ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME.so.$SS_QT3_MAJOR_VERSION_REQUIRED"
ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME.so"
- ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.$SS_QT_MAJOR_VERSION_REQUIRED.$SS_QT_MINOR_VERSION_REQUIRED.$SS_QT_PATCH_LEVEL_REQUIRED.dylib"
- ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.$SS_QT_MAJOR_VERSION_REQUIRED.$SS_QT_MINOR_VERSION_REQUIRED.dylib"
- ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.$SS_QT_MAJOR_VERSION_REQUIRED.dylib"
+ ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.$SS_QT3_MAJOR_VERSION_REQUIRED.$SS_QT3_MINOR_VERSION_REQUIRED.$SS_QT3_PATCH_LEVEL_REQUIRED.dylib"
+ ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.$SS_QT3_MAJOR_VERSION_REQUIRED.$SS_QT3_MINOR_VERSION_REQUIRED.dylib"
+ ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.$SS_QT3_MAJOR_VERSION_REQUIRED.dylib"
ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.dylib"
- ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME.$SS_QT_MAJOR_VERSION_REQUIRED.$SS_QT_MINOR_VERSION_REQUIRED.$SS_QT_PATCH_LEVEL_REQUIRED.dylib"
- ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME.$SS_QT_MAJOR_VERSION_REQUIRED.$SS_QT_MINOR_VERSION_REQUIRED.dylib"
- ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME.$SS_QT_MAJOR_VERSION_REQUIRED.dylib"
+ ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME.$SS_QT3_MAJOR_VERSION_REQUIRED.$SS_QT3_MINOR_VERSION_REQUIRED.$SS_QT3_PATCH_LEVEL_REQUIRED.dylib"
+ ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME.$SS_QT3_MAJOR_VERSION_REQUIRED.$SS_QT3_MINOR_VERSION_REQUIRED.dylib"
+ ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME.$SS_QT3_MAJOR_VERSION_REQUIRED.dylib"
ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME.dylib"
ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.a"
ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME.a"
- AC_SS_FIND_FILE_PATH($ss_qt_libs_to_find,$ss_qt_library_test_dirs,SS_QT_LIBDIR)
+ AC_SS_FIND_FILE_PATH($ss_qt_libs_to_find,$ss_qt_library_test_dirs,SS_QT3_LIBDIR)
- if test "$SS_QT_LIBDIR" = "FAILED"; then
+ if test "$SS_QT3_LIBDIR" = "FAILED"; then
AC_MSG_RESULT([FAILED])
AC_SS_SET_REDINK
echo "################################################################################"
echo "### CONFIGURE ERROR:"
- echo "### Can not find the qt $SS_QT_MAJOR_VERSION_REQUIRED.$SS_QT_MINOR_VERSION_REQUIRED library file."
+ echo "### Can not find the qt 3.x library file."
echo "### Make sure that qt is correctly installed on your system,"
echo "### and the qt version is the one requested by this version of kvirc."
echo "### (Usually a greater version is OK too)"
@@ -1567,29 +1676,82 @@ AC_DEFUN([AC_SS_FIND_QT_LIBRARY_DIR],
AC_SS_SET_NORMALINK
AC_MSG_ERROR([This was a fatal one...aborting])
else
- AC_MSG_RESULT([found in $SS_QT_LIBDIR])
+ AC_MSG_RESULT([found in $SS_QT3_LIBDIR])
fi
else
- AC_MSG_RESULT([using user supplied path for the Qt library $SS_QT_LIBDIR])
+ AC_MSG_RESULT([using user supplied path for the Qt library $SS_QT3_LIBDIR])
fi
])
-AC_DEFUN([AC_SS_FIND_QT_MOC],
+
+AC_DEFUN([AC_SS_FIND_QT4_LIBRARY_DIR],
+[
+ AC_ARG_WITH(qt4-library-dir,[ --with-qt4-library-dir path to the Qt 4.x library ],SS_QT4_LIBDIR="$withval",SS_QT4_LIBDIR="NOTGIVEN")
+ if test "$SS_QT4_LIBDIR" = "NOTGIVEN"; then
+ AC_MSG_CHECKING([for the Qt 4.x libraries])
+
+ ss_qt_library_test_dirs="$SS_QT4_GENERAL_DIR/lib /lib /usr/lib /usr/local/lib /usr/qt/lib /usr/local/qt/lib /usr/X11R6/lib /usr/lib/qt/lib /usr/lib/qt /usr/local/lib/qt/lib"
+ test -n "$QTDIR" && ss_qt_library_test_dirs="$QTDIR/lib $QTDIR $ss_qt_library_test_dirs"
+ ss_qt_library_test_dirs="$ss_qt_library_test_dirs /usr/local/lib/qt /usr/X11R6/lib/qt /usr/build/qt/lib /opt/lib /opt/qt/lib"
+ ss_qt_library_test_dirs="$ss_qt_library_test_dirs /usr/lib/qt4 /usr/local/lib/qt4 /usr/X11R6/lib/qt4"
+ ss_qt_library_test_dirs="$ss_qt_library_test_dirs /usr/build/qt4/lib /opt/qt4/lib"
+
+ ss_qt_libs_to_find="libQtCore.so.$SS_QT4_MAJOR_VERSION_REQUIRED.$SS_QT4_MINOR_VERSION_REQUIRED.$SS_QT4_PATCH_LEVEL_REQUIRED"
+ ss_qt_libs_to_find="$ss_qt_libs_to_find libQtCore.so.$SS_QT4_MAJOR_VERSION_REQUIRED.$SS_QT4_MINOR_VERSION_REQUIRED"
+ ss_qt_libs_to_find="$ss_qt_libs_to_find libQtCore.so.$SS_QT4_MAJOR_VERSION_REQUIRED"
+ ss_qt_libs_to_find="$ss_qt_libs_to_find libQtCore.so"
+ ss_qt_libs_to_find="$ss_qt_libs_to_find libQtCore.so.$SS_QT4_MAJOR_VERSION_REQUIRED.$SS_QT4_MINOR_VERSION_REQUIRED.dylib"
+ ss_qt_libs_to_find="$ss_qt_libs_to_find libQtCore.so.$SS_QT4_MAJOR_VERSION_REQUIRED.dylib"
+ ss_qt_libs_to_find="$ss_qt_libs_to_find libQtCore.so.dylib"
+ ss_qt_libs_to_find="$ss_qt_libs_to_find libQtCore.so.a"
+
+ AC_SS_FIND_FILE_PATH($ss_qt_libs_to_find,$ss_qt_library_test_dirs,SS_QT4_LIBDIR)
+
+ if test "$SS_QT4_LIBDIR" = "FAILED"; then
+ AC_MSG_RESULT([FAILED])
+ AC_SS_SET_REDINK
+ echo "################################################################################"
+ echo "### CONFIGURE ERROR:"
+ echo "### Can not find the qt 4.x library files."
+ echo "### Make sure that qt is correctly installed on your system,"
+ echo "### and the qt version is the one requested by this version of kvirc."
+ echo "### (Usually a greater version is OK too)"
+ echo "### Try to run configure again, this time passing the --with-qt4-library-dir"
+ echo "### option (see ./configure --help)."
+ echo "### You may also take a look at the config.log file in this directory,"
+ echo "### that will tell you which check has failed and maybe more about the reason"
+ echo "### of the failure."
+ echo "### If you're feeling that this may be a bug in this configure script"
+ echo "### and want to report this to me , please include your configure script,"
+ echo "### the config.log file as well as the complete configure output."
+ echo "################################################################################"
+ AC_SS_SET_NORMALINK
+ AC_MSG_ERROR([This was a fatal one...aborting])
+ else
+ AC_MSG_RESULT([found in $SS_QT4_LIBDIR])
+ fi
+ else
+ AC_MSG_RESULT([using user supplied path for the Qt 4.x library $SS_QT4_LIBDIR])
+ fi
+])
+
+
+AC_DEFUN([AC_SS_FIND_QT3_MOC],
[
- AC_ARG_WITH(qt-moc,[ --with-qt-moc filename of the Qt meta object compiler ],SS_QT_MOC="$withval",SS_QT_MOC="NOTGIVEN")
+ AC_ARG_WITH(qt-moc,[ --with-qt-moc filename of the Qt 3.x meta object compiler ],SS_QT3_MOC="$withval",SS_QT3_MOC="NOTGIVEN")
- if test "$SS_QT_MOC" = "NOTGIVEN"; then
- AC_MSG_CHECKING([for the Qt moc])
+ if test "$SS_QT3_MOC" = "NOTGIVEN"; then
+ AC_MSG_CHECKING([for the Qt 3.x moc])
- unset SS_QT_MOC
+ unset SS_QT3_MOC
ss_moc_test_dirs="$QTDIR/bin $PATH /usr/bin /bin /usr/local/bin /usr/X11R6/bin /usr/lib/qt/bin /usr/local/qt/bin /usr/X11R6/qt/bin /usr/qt/bin /usr/build/qt/bin"
- if test -n "$SS_QT_GENERAL_DIR"; then
- ss_moc_test_dirs="$ss_moc_test_dirs $SS_QT_GENERAL_DIR/bin"
+ if test -n "$SS_QT3_GENERAL_DIR"; then
+ ss_moc_test_dirs="$SS_QT3_GENERAL_DIR/bin $ss_moc_test_dirs"
fi
- AC_SS_FIND_FILE_PATH(moc,$ss_moc_test_dirs,SS_QT_MOC)
+ AC_SS_FIND_FILE_PATH(moc,$ss_moc_test_dirs,SS_QT3_MOC)
- if test "$SS_QT_MOC" = "FAILED"; then
+ if test "$SS_QT3_MOC" = "FAILED"; then
AC_MSG_RESULT([FAILED])
AC_SS_SET_REDINK
echo "################################################################################"
@@ -1609,32 +1771,79 @@ AC_DEFUN([AC_SS_FIND_QT_MOC],
AC_SS_SET_NORMALINK
AC_MSG_ERROR([This was a fatal one...aborting])
else
- SS_QT_MOC="$SS_QT_MOC/moc"
- AC_MSG_RESULT([found as $SS_QT_MOC])
+ SS_QT3_MOC="$SS_QT3_MOC/moc"
+ AC_MSG_RESULT([found as $SS_QT3_MOC])
fi
else
- AC_MSG_RESULT([trusting you: using $SS_QT_MOC])
+ AC_MSG_RESULT([trusting you: using $SS_QT3_MOC])
fi
])
-AC_DEFUN([AC_SS_FIND_QT_MT],
+
+AC_DEFUN([AC_SS_FIND_QT4_MOC],
+[
+ AC_ARG_WITH(qt4-moc,[ --with-qt4-moc filename of the Qt 4.x meta object compiler ],SS_QT4_MOC="$withval",SS_QT4_MOC="NOTGIVEN")
+
+ if test "$SS_QT4_MOC" = "NOTGIVEN"; then
+ AC_MSG_CHECKING([for the Qt 4.x moc])
+
+ unset SS_QT4_MOC
+ ss_moc_test_dirs="$QTDIR/bin $PATH /usr/bin /bin /usr/local/bin /usr/X11R6/bin /usr/lib/qt/bin /usr/local/qt/bin /usr/X11R6/qt/bin /usr/qt/bin /usr/build/qt/bin"
+ if test -n "$SS_QT4_GENERAL_DIR"; then
+ ss_moc_test_dirs="$SS_QT4_GENERAL_DIR/bin $ss_moc_test_dirs"
+ fi
+
+ AC_SS_FIND_FILE_PATH(moc,$ss_moc_test_dirs,SS_QT4_MOC)
+
+ if test "$SS_QT4_MOC" = "FAILED"; then
+ AC_MSG_RESULT([FAILED])
+ AC_SS_SET_REDINK
+ echo "################################################################################"
+ echo "### CONFIGURE ERROR:"
+ echo "### The Qt 4.x meta object compiler can not be found."
+ echo "### Make sure that qt is correctly installed on your system, it is on your path,"
+ echo "### and the qt version is the one requested by this version of kvirc."
+ echo "### In particular you should make sure that the moc compiler is NOT the one"
+ echo "### shipped with Qt 3.x."
+ echo "### Try to run configure again, this time passing the --with-qt4-moc"
+ echo "### option (see ./configure --help)."
+ echo "### You may also take a look at the config.log file in this directory,"
+ echo "### that will tell you which check has failed and maybe more about the reason"
+ echo "### of the failure."
+ echo "### If you're feeling that this may be a bug in this configure script"
+ echo "### and want to report this to me , please include your configure script,"
+ echo "### the config.log file as well as the complete configure output."
+ echo "################################################################################"
+ AC_SS_SET_NORMALINK
+ AC_MSG_ERROR([This was a fatal one...aborting])
+ else
+ SS_QT4_MOC="$SS_QT4_MOC/moc"
+ AC_MSG_RESULT([found as $SS_QT4_MOC])
+ fi
+ else
+ AC_MSG_RESULT([trusting you: using $SS_QT4_MOC])
+ fi
+])
+
+
+AC_DEFUN([AC_SS_FIND_QT3_MT],
[
- AC_ARG_ENABLE(qt-mt,[ --disable-qt-mt ignore the threaded version of Qt],SS_QT_NOMT="$withval",SS_QT_NOMT="NOTGIVEN")
+ AC_ARG_ENABLE(qt-mt,[ --disable-qt-mt ignore the threaded version of Qt],SS_QT3_NOMT="$withval",SS_QT3_NOMT="NOTGIVEN")
AC_MSG_CHECKING([for the multithreaded version of Qt])
- if test "$SS_QT_NOMT" = "NOTGIVEN"; then
- ss_qt_libs_to_find="lib$SS_QTLIB_NAME-mt.so.$SS_QT_MAJOR_VERSION_REQUIRED.$SS_QT_MINOR_VERSION_REQUIRED.$SS_QT_PATCH_LEVEL_REQUIRED"
- ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.so.$SS_QT_MAJOR_VERSION_REQUIRED.$SS_QT_MINOR_VERSION_REQUIRED"
- ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.so.$SS_QT_MAJOR_VERSION_REQUIRED"
+ if test "$SS_QT3_NOMT" = "NOTGIVEN"; then
+ ss_qt_libs_to_find="lib$SS_QTLIB_NAME-mt.so.$SS_QT3_MAJOR_VERSION_REQUIRED.$SS_QT3_MINOR_VERSION_REQUIRED.$SS_QT3_PATCH_LEVEL_REQUIRED"
+ ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.so.$SS_QT3_MAJOR_VERSION_REQUIRED.$SS_QT3_MINOR_VERSION_REQUIRED"
+ ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.so.$SS_QT3_MAJOR_VERSION_REQUIRED"
ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.so"
- ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.$SS_QT_MAJOR_VERSION_REQUIRED.$SS_QT_MINOR_VERSION_REQUIRED.$SS_QT_PATCH_LEVEL_REQUIRED.dylib"
- ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.$SS_QT_MAJOR_VERSION_REQUIRED.$SS_QT_MINOR_VERSION_REQUIRED.dylib"
- ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.$SS_QT_MAJOR_VERSION_REQUIRED.dylib"
+ ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.$SS_QT3_MAJOR_VERSION_REQUIRED.$SS_QT3_MINOR_VERSION_REQUIRED.$SS_QT3_PATCH_LEVEL_REQUIRED.dylib"
+ ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.$SS_QT3_MAJOR_VERSION_REQUIRED.$SS_QT3_MINOR_VERSION_REQUIRED.dylib"
+ ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.$SS_QT3_MAJOR_VERSION_REQUIRED.dylib"
ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.dylib"
ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.a"
- AC_SS_FIND_FILE_PATH($ss_qt_libs_to_find,$SS_QT_LIBDIR,SS_QTMTLIBDIR)
+ AC_SS_FIND_FILE_PATH($ss_qt_libs_to_find,$SS_QT3_LIBDIR,SS_QTMTLIBDIR)
if test "$SS_QTMTLIBDIR" = "FAILED"; then
AC_MSG_RESULT([not found])
else
@@ -1646,10 +1855,10 @@ AC_DEFUN([AC_SS_FIND_QT_MT],
fi
])
-AC_DEFUN([AC_SS_ENSURE_CAN_COMPILE_X_AND_QT],
+AC_DEFUN([AC_SS_ENSURE_CAN_COMPILE_X_AND_QT3],
[
- AC_MSG_CHECKING([if we can compile an X-Qt application])
+ AC_MSG_CHECKING([if we can compile an X-Qt 3.x application])
AC_LANG_CPLUSPLUS
ss_save_CPPFLAGS="$CPPFLAGS"
ss_save_CXXFLAGS="$CXXFLAGS"
@@ -1660,14 +1869,14 @@ AC_DEFUN([AC_SS_ENSURE_CAN_COMPILE_X_AND_QT],
else
CPPFLAGS=""
fi
- CPPFLAGS="$CPPFLAGS -I$SS_QT_INCDIR"
+ CPPFLAGS="$CPPFLAGS -I$SS_QT3_INCDIR"
CXXFLAGS="-O2 -Wall $CXXFLAGS"
if test -n "$SS_X_LIBDIR"; then
LIBS="-L$SS_X_LIBDIR"
else
LIBS=""
fi
- LIBS="$LIBS -L$SS_QT_LIBDIR -l$SS_QTLIB_NAME"
+ LIBS="$LIBS -L$SS_QT3_LIBDIR -l$SS_QTLIB_NAME"
if test -n "$SS_X_LDFLAGS"; then
LIBS="$LIBS $SS_X_LDFLAGS"
fi
@@ -1727,6 +1936,89 @@ AC_DEFUN([AC_SS_ENSURE_CAN_COMPILE_X_AND_QT],
AC_MSG_RESULT([success])
])
+
+AC_DEFUN([AC_SS_ENSURE_CAN_COMPILE_X_AND_QT4],
+[
+
+ AC_MSG_CHECKING([if we can compile an X-Qt 4.x application])
+ AC_LANG_CPLUSPLUS
+ ss_save_CPPFLAGS="$CPPFLAGS"
+ ss_save_CXXFLAGS="$CXXFLAGS"
+ ss_save_LDFLAGS="$LDFLAGS"
+ ss_save_LIBS="$LIBS"
+ if test -n "$SS_X_INCDIR"; then
+ CPPFLAGS="-I$SS_X_INCDIR"
+ else
+ CPPFLAGS=""
+ fi
+ CPPFLAGS="$CPPFLAGS $SS_QT4_INCDIRECTORIES"
+ CXXFLAGS="-O2 -Wall $CXXFLAGS"
+ if test -n "$SS_X_LIBDIR"; then
+ LIBS="-L$SS_X_LIBDIR"
+ else
+ LIBS=""
+ fi
+ LIBS="$LIBS -L$SS_QT4_LIBDIR -lQtCore"
+ if test -n "$SS_X_LDFLAGS"; then
+ LIBS="$LIBS $SS_X_LDFLAGS"
+ fi
+ if test -n "$SS_X_LIBLINK"; then
+ LIBS="$LIBS $SS_X_LIBLINK"
+ fi
+ LDFLAGS="-s $LDFLAGS"
+ AC_TRY_LINK([
+ #include <qglobal.h>
+ #if (QT_VERSION < 0x040000)
+ #error "Bad qt version: too old"
+ #endif
+ ],[return 0; ],SS_QTX_LINKED_OK="TRUE",SS_QTX_LINKED_OK="FALSE")
+ if test "$SS_QTX_LINKED_OK" = "FALSE"; then
+ AC_MSG_RESULT([FAILED]);
+ AC_SS_SET_REDINK
+ echo "################################################################################"
+ echo "### CONFIGURE ERROR:"
+ echo "### Failed to compile the Qt 4.x library test program."
+ echo "### This may be a bad sign :)"
+ echo "### First of all, make sure that qt is correctly installed on your system,"
+ echo "### and the qt version is the one requested by this version of kvirc."
+ echo "### Ensure that you have only one copy of qt visible at a time."
+ echo "### You may also take a look at the config.log file in this directory,"
+ echo "### that will tell you which check has failed and maybe more about the reason"
+ echo "### of the failure."
+ echo "### The CPPFLAGS used were:"
+ for a_flag in $CPPFLAGS ; do
+ echo "### $a_flag"
+ done
+ echo "### The CXXFLAGS used were:"
+ for a_flag in $CXXFLAGS ; do
+ echo "### $a_flag"
+ done
+ echo "### The LIBS used were:"
+ for a_flag in $LIBS ; do
+ echo "### $a_flag"
+ done
+ echo "### The LDFLAGS used were:"
+ for a_flag in $LDFLAGS ; do
+ echo "### $a_flag"
+ done
+ echo "### If you're sure that qt is correctly installed , you may force configure"
+ echo "### to skip this check and try to compile kvirc anyway."
+ echo "### Try using the --without-qt-check option."
+ echo "### If you're feeling that this may be a bug in this configure script"
+ echo "### and want to report this to me , please include your configure script,"
+ echo "### the config.log file as well as the complete configure output."
+ echo "################################################################################"
+ AC_SS_SET_NORMALINK
+ AC_MSG_ERROR([This was a fatal one...aborting])
+ fi
+ LIBS="$ss_save_LIBS"
+ LDFLAGS="$ss_save_LDFLAGS"
+ CXXFLAGS="$ss_save_CXXFLAGS"
+ CPPFLAGS="$ss_save_CPPFLAGS"
+ AC_MSG_RESULT([success])
+])
+
+
dnl ###################################################################################################################
dnl ### KDE
dnl ###################################################################################################################
@@ -1742,7 +2034,7 @@ AC_DEFUN([AC_SS_FIND_KDE],
if test "$SS_KDE_REQUESTED" = "yes"; then
AC_SS_FIND_KDE_INCLUDE_DIR
if test "$SS_KDE_REQUESTED" = "yes"; then
- AC_SS_ENSURE_CAN_COMPILE_X_QT_AND_KDE
+ AC_SS_ENSURE_CAN_COMPILE_X_QT3_AND_KDE
fi
fi
fi
@@ -1752,12 +2044,17 @@ AC_DEFUN([AC_SS_FIND_KDE],
AC_DEFUN([AC_SS_CHECK_IF_KDE_IS_REQUESTED],
[
AC_MSG_CHECKING([if KDE support is requested])
- SS_KDE_REQUESTED="yes"
- AC_ARG_WITH(kde-support,[ --without-kde-support Disable the KDE support even if it is detected ],SS_KDE_REQUESTED="$withval")
- if test "$SS_KDE_REQUESTED" = "yes"; then
- AC_MSG_RESULT([yes])
+ if test "$SS_USE_QT4" = "no"; then
+ SS_KDE_REQUESTED="yes"
+ AC_ARG_WITH(kde-support,[ --without-kde-support Disable the KDE support even if it is detected ],SS_KDE_REQUESTED="$withval")
+ if test "$SS_KDE_REQUESTED" = "yes"; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ fi
else
- AC_MSG_RESULT([no])
+ SS_KDE_REQUESTED="no"
+ AC_MSG_RESULT([unsupported with qt 4.x])
fi
])
@@ -1887,7 +2184,7 @@ AC_DEFUN([AC_SS_FIND_KDE_LIBRARY_DIR],
fi
])
-AC_DEFUN([AC_SS_ENSURE_CAN_COMPILE_X_QT_AND_KDE],
+AC_DEFUN([AC_SS_ENSURE_CAN_COMPILE_X_QT3_AND_KDE],
[
AC_ARG_WITH(kde-check,[ --without-kde-check Do not check if Qt,KDE and X compile ],SS_CHECK_QTX_COMPILE="$withval",SS_CHECK_KQTX_COMPILE="yes")
if test "$SS_CHECK_KQTX_COMPILE" = "yes"; then
@@ -1902,7 +2199,7 @@ AC_DEFUN([AC_SS_ENSURE_CAN_COMPILE_X_QT_AND_KDE],
else
CPPFLAGS=""
fi
- CPPFLAGS="$CPPFLAGS -I$SS_X_INCDIR -I$SS_QT_INCDIR -I$SS_KDE_INCDIR"
+ CPPFLAGS="$CPPFLAGS -I$SS_X_INCDIR -I$SS_QT3_INCDIR -I$SS_KDE_INCDIR"
CXXFLAGS="-O2 -Wall $CXXFLAGS"
if test -n "$SS_X_LIBDIR"; then
LIBS="-L$SS_X_LIBDIR"
@@ -1915,7 +2212,7 @@ AC_DEFUN([AC_SS_ENSURE_CAN_COMPILE_X_QT_AND_KDE],
if test -n "$SS_X_LIBLINK"; then
LIBS="$LIBS $SS_X_LIBLINK"
fi
- LIBS="-L$SS_KDE_LIBDIR -L$SS_QT_LIBDIR -lkdecore -l$SS_QTLIB_NAME $LIBS -Wl,-rpath $SS_KDE_LIBDIR"
+ LIBS="-L$SS_KDE_LIBDIR -L$SS_QT3_LIBDIR -lkdecore -l$SS_QTLIB_NAME $LIBS -Wl,-rpath $SS_KDE_LIBDIR"
if test "$SS_LINK_TO_LIBDL" = "yes"; then
LIBS="$LIBS -ldl";
fi
@@ -2056,7 +2353,13 @@ AC_DEFUN([AC_SS_FINAL_CONFIG],
SS_CPPFLAGS="$SS_CPPFLAGS $SS_X_CPPFLAGS"
fi
- SS_INCDIRS="-I$SS_QT_INCDIR -I$SS_X_INCDIR"
+ if test "$SS_USE_QT4" = "no"; then
+ SS_INCDIRS="-I$SS_QT3_INCDIR -I$SS_X_INCDIR"
+ else
+ AC_DEFINE([COMPILE_USE_QT4], 1, [define if you want to compile the Qt 4.x support])
+ SS_INCDIRS="$SS_QT4_INCDIRECTORIES -I$SS_X_INCDIR"
+ fi
+
if test -n "$SS_X_INCDIR"; then
SS_INCDIRS="$SS_INCDIRS -I$SS_X_INCDIR"
fi
@@ -2067,17 +2370,32 @@ AC_DEFUN([AC_SS_FINAL_CONFIG],
SS_LDFLAGS=""
fi
- SS_RPATH="-rpath $SS_QT_LIBDIR -rpath $libdir"
+ if test "$SS_USE_QT4" = "no"; then
+ SS_RPATH="-rpath $SS_QT3_LIBDIR -rpath $libdir"
+ else
+ SS_RPATH="-rpath $SS_QT4_LIBDIR -rpath $libdir"
+ fi
+
if test -n "$SS_X_LIBDIR"; then
SS_RPATH="$SS_RPATH -rpath $SS_X_LIBDIR"
fi
- SS_LIBDIRS="-L$SS_TOPSRCDIR/src/kvilib/build/ -L$SS_QT_LIBDIR"
+ if test "$SS_USE_QT4" = "no"; then
+ SS_LIBDIRS="-L$SS_TOPSRCDIR/src/kvilib/build/ -L$SS_QT3_LIBDIR"
+ else
+ SS_LIBDIRS="-L$SS_TOPSRCDIR/src/kvilib/build/ -L$SS_QT4_LIBDIR"
+ fi
+
if test -n "$SS_X_LIBDIR"; then
SS_LIBDIRS="$SS_LIBDIRS -L$SS_X_LIBDIR"
fi
- SS_LIBLINK="-l$SS_QTLIB_NAME"
+ if test "$SS_USE_QT4" = "no"; then
+ SS_LIBLINK="-l$SS_QTLIB_NAME"
+ else
+ SS_LIBLINK="-lQtCore -lQtGui"
+ fi
+
if test -n "$SS_X_LIBLINK"; then
SS_LIBLINK="$SS_LIBLINK $SS_X_LIBLINK"
fi
@@ -2096,9 +2414,10 @@ AC_DEFUN([AC_SS_FINAL_CONFIG],
fi
if test "$SS_LOCAL_8BIT" = "true"; then
- SS_CPPFLAGS="$SS_CPPFLAGS -DQT_NO_ASCII_CAST -DQT_NO_COMPAT"
+ SS_CPPFLAGS="$SS_CPPFLAGS -DQT3_NO_ASCII_CAST -DQT3_NO_COMPAT"
fi
- if test "$SS_QT_EMBEDDED" = "true"; then
+
+ if test "$SS_QT3_EMBEDDED" = "true"; then
SS_CPPFLAGS="$SS_CPPFLAGS -DQWS"
fi
@@ -2107,7 +2426,7 @@ AC_DEFUN([AC_SS_FINAL_CONFIG],
SS_RPATH="$SS_RPATH -rpath $SS_KDE_LIBDIR"
SS_LIBDIRS="$SS_LIBDIRS -L$SS_KDE_LIBDIR"
SS_LIBLINK="-lkdecore -lkdeui -lkparts $SS_LIBLINK"
- AC_DEFINE([COMPILE_KDE_SUPPORT], 1, [define if you want to compile the KDE 2.x support])
+ AC_DEFINE([COMPILE_KDE_SUPPORT], 1, [define if you want to compile the KDE 3.x support])
SS_BUILD_FLAGS="k$SS_BUILD_FLAGS"
fi
@@ -2142,6 +2461,13 @@ AC_DEFUN([AC_SS_FINAL_CONFIG],
AC_SUBST(SS_RPATH)
AC_SUBST(SS_LIBDIRS)
AC_SUBST(SS_LIBLINK)
+
+ if test "$SS_USE_QT4" = "no"; then
+ SS_QT_MOC=$SS_QT3_MOC
+ else
+ SS_QT_MOC=$SS_QT4_MOC
+ fi
+
AC_SUBST(SS_QT_MOC)
build_date=`date -u`
diff --git a/admin/config.guess b/admin/config.guess
index 917bbc50f..d870848e0 100755
--- a/admin/config.guess
+++ b/admin/config.guess
@@ -1,9 +1,10 @@
#! /bin/sh
# Attempt to guess a canonical system name.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
+# Inc.
-timestamp='2005-07-08'
+timestamp='2006-02-27'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -106,7 +107,7 @@ set_cc_for_build='
trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
: ${TMPDIR=/tmp} ;
- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
@@ -138,6 +139,23 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+if [ "${UNAME_SYSTEM}" = "Linux" ] ; then
+ eval $set_cc_for_build
+ cat << EOF > $dummy.c
+ #include <features.h>
+ #ifdef __UCLIBC__
+ # ifdef __UCLIBC_CONFIG_VERSION__
+ LIBC=uclibc __UCLIBC_CONFIG_VERSION__
+ # else
+ LIBC=uclibc
+ # endif
+ #else
+ LIBC=gnu
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep LIBC= | sed -e 's: ::g'`
+fi
+
# Note: order is significant - the case branches are not exclusive.
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
@@ -206,6 +224,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
*:ekkoBSD:*:*)
echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
exit ;;
+ *:SolidBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+ exit ;;
macppc:MirBSD:*:*)
echo powerppc-unknown-mirbsd${UNAME_RELEASE}
exit ;;
@@ -764,7 +785,12 @@ EOF
echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
exit ;;
*:FreeBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+ case ${UNAME_MACHINE} in
+ pc98)
+ echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ *)
+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ esac
exit ;;
i*:CYGWIN*:*)
echo ${UNAME_MACHINE}-pc-cygwin
@@ -772,6 +798,9 @@ EOF
i*:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32
exit ;;
+ i*:MSYS_NT-*:*:*)
+ echo ${UNAME_MACHINE}-pc-mingw32
+ exit ;;
i*:windows32*:*)
# uname -m includes "-pc" on this system.
echo ${UNAME_MACHINE}-mingw32
@@ -779,8 +808,11 @@ EOF
i*:PW*:*)
echo ${UNAME_MACHINE}-pc-pw32
exit ;;
- x86:Interix*:[34]*)
- echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
+ x86:Interix*:[345]*)
+ echo i586-pc-interix${UNAME_RELEASE}
+ exit ;;
+ EM64T:Interix*:[345]*)
+ echo x86_64-unknown-interix${UNAME_RELEASE}
exit ;;
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
echo i${UNAME_MACHINE}-pc-mks
@@ -794,7 +826,7 @@ EOF
i*:UWIN*:*)
echo ${UNAME_MACHINE}-pc-uwin
exit ;;
- amd64:CYGWIN*:*:*)
+ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
echo x86_64-unknown-cygwin
exit ;;
p*:CYGWIN*:*)
@@ -815,25 +847,25 @@ EOF
echo ${UNAME_MACHINE}-pc-minix
exit ;;
arm*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
cris:Linux:*:*)
- echo cris-axis-linux-gnu
+ echo cris-axis-linux-${LIBC}
exit ;;
crisv32:Linux:*:*)
- echo crisv32-axis-linux-gnu
+ echo crisv32-axis-linux-${LIBC}
exit ;;
frv:Linux:*:*)
- echo frv-unknown-linux-gnu
+ echo frv-unknown-linux-${LIBC}
exit ;;
ia64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
m32r*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
m68*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
mips:Linux:*:*)
eval $set_cc_for_build
@@ -851,8 +883,12 @@ EOF
#endif
#endif
EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
+ /^CPU/{
+ s: ::g
+ p
+ }'`"
+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
;;
mips64:Linux:*:*)
eval $set_cc_for_build
@@ -870,14 +906,21 @@ EOF
#endif
#endif
EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
+ /^CPU/{
+ s: ::g
+ p
+ }'`"
+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
;;
+ or32:Linux:*:*)
+ echo or32-unknown-linux-${LIBC}
+ exit ;;
ppc:Linux:*:*)
- echo powerpc-unknown-linux-gnu
+ echo powerpc-unknown-linux-${LIBC}
exit ;;
ppc64:Linux:*:*)
- echo powerpc64-unknown-linux-gnu
+ echo powerpc64-unknown-linux-${LIBC}
exit ;;
alpha:Linux:*:*)
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
@@ -890,34 +933,37 @@ EOF
EV68*) UNAME_MACHINE=alphaev68 ;;
esac
objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+ if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
- PA7*) echo hppa1.1-unknown-linux-gnu ;;
- PA8*) echo hppa2.0-unknown-linux-gnu ;;
- *) echo hppa-unknown-linux-gnu ;;
+ PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
+ PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
+ *) echo hppa-unknown-linux-${LIBC} ;;
esac
exit ;;
parisc64:Linux:*:* | hppa64:Linux:*:*)
- echo hppa64-unknown-linux-gnu
+ echo hppa64-unknown-linux-${LIBC}
exit ;;
s390:Linux:*:* | s390x:Linux:*:*)
echo ${UNAME_MACHINE}-ibm-linux
exit ;;
sh64*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
sh*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
sparc:Linux:*:* | sparc64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ vax:Linux:*:*)
+ echo ${UNAME_MACHINE}-dec-linux-${LIBC}
exit ;;
x86_64:Linux:*:*)
- echo x86_64-unknown-linux-gnu
+ echo x86_64-unknown-linux-${LIBC}
exit ;;
i*86:Linux:*:*)
# The BFD linker knows what the default object file format is, so
@@ -932,20 +978,22 @@ EOF
p'`
case "$ld_supported_targets" in
elf32-i386)
- TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
+ TENTATIVE="${UNAME_MACHINE}-pc-linux-${LIBC}"
;;
a.out-i386-linux)
- echo "${UNAME_MACHINE}-pc-linux-gnuaout"
+ echo "${UNAME_MACHINE}-pc-linux-${LIBC}aout"
exit ;;
coff-i386)
- echo "${UNAME_MACHINE}-pc-linux-gnucoff"
+ echo "${UNAME_MACHINE}-pc-linux-${LIBC}coff"
exit ;;
"")
# Either a pre-BFD a.out linker (linux-gnuoldld) or
# one that does not give us useful --help.
- echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
+ echo "${UNAME_MACHINE}-pc-linux-${LIBC}oldld"
exit ;;
esac
+ # This should get integrated into the C code below, but now we hack
+ if [ "$LIBC" != "gnu" ] ; then echo "$TENTATIVE" && exit 0 ; fi
# Determine whether the default compiler is a.out or elf
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
@@ -961,7 +1009,7 @@ EOF
LIBC=gnulibc1
# endif
#else
- #ifdef __INTEL_COMPILER
+ #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__sun)
LIBC=gnu
#else
LIBC=gnuaout
@@ -971,7 +1019,11 @@ EOF
LIBC=dietlibc
#endif
EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
+ /^LIBC/{
+ s: ::g
+ p
+ }'`"
test x"${LIBC}" != x && {
echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
exit
@@ -1182,7 +1234,6 @@ EOF
*:Darwin:*:*)
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
case $UNAME_PROCESSOR in
- *86) UNAME_PROCESSOR=i686 ;;
unknown) UNAME_PROCESSOR=powerpc ;;
esac
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
@@ -1261,6 +1312,9 @@ EOF
i*86:skyos:*:*)
echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
exit ;;
+ i*86:rdos:*:*)
+ echo ${UNAME_MACHINE}-pc-rdos
+ exit ;;
esac
#echo '(No uname command or uname output not recognized.)' 1>&2
diff --git a/admin/config.sub b/admin/config.sub
index 1c366dfde..bb394190f 100755
--- a/admin/config.sub
+++ b/admin/config.sub
@@ -1,9 +1,10 @@
#! /bin/sh
# Configuration validation subroutine script.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
+# Inc.
-timestamp='2005-07-08'
+timestamp='2006-02-27'
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
@@ -119,8 +120,9 @@ esac
# Here we must recognize all the valid KERNEL-OS combinations.
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in
- nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \
- kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
+ nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
+ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
+ storm-chaos* | os2-emx* | rtmk-nova*)
os=-$maybe_os
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
;;
@@ -171,6 +173,10 @@ case $os in
-hiux*)
os=-hiuxwe2
;;
+ -sco6)
+ os=-sco5v6
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
-sco5)
os=-sco3.2v5
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
@@ -187,6 +193,10 @@ case $os in
# Don't forget version if it is 3.2v4 or newer.
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
+ -sco5v6*)
+ # Don't forget version if it is 3.2v4 or newer.
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
-sco*)
os=-sco3.2v2
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
@@ -234,12 +244,12 @@ case $basic_machine in
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
| bfin \
| c4x | clipper \
- | d10v | d30v | dlx | dsp16xx \
+ | d10v | d30v | dlx | dsp16xx | dvp \
| fr30 | frv \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| i370 | i860 | i960 | ia64 \
| ip2k | iq2000 \
- | m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \
+ | m32r | m32rle | m68000 | m68k | m88k | maxq | mb | microblaze | mcore \
| mips | mipsbe | mipseb | mipsel | mipsle \
| mips16 \
| mips64 | mips64el \
@@ -257,17 +267,18 @@ case $basic_machine in
| mipsisa64sr71k | mipsisa64sr71kel \
| mipstx39 | mipstx39el \
| mn10200 | mn10300 \
- | ms1 \
+ | mt \
| msp430 \
+ | nios | nios2 \
| ns16k | ns32k \
| or32 \
| pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
| pyramid \
- | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
+ | sh | sh[1234] | sh[24]a | sh[24]a*eb | sh[23]e | sh[34]eb | shbe | sheb | shle | sh[1234]le | sh3ele \
| sh64 | sh64le \
- | sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \
- | sparcv8 | sparcv9 | sparcv9b \
+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
| strongarm \
| tahoe | thumb | tic4x | tic80 | tron \
| v850 | v850e \
@@ -286,6 +297,9 @@ case $basic_machine in
;;
m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
;;
+ ms1)
+ basic_machine=mt-unknown
+ ;;
# We use `pc' rather than `unknown'
# because (1) that's what they normally are, and
@@ -336,19 +350,20 @@ case $basic_machine in
| mipsisa64sr71k-* | mipsisa64sr71kel-* \
| mipstx39-* | mipstx39el-* \
| mmix-* \
- | ms1-* \
+ | mt-* \
| msp430-* \
+ | nios-* | nios2-* \
| none-* | np1-* | ns16k-* | ns32k-* \
| orion-* \
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
| pyramid-* \
| romp-* | rs6000-* \
- | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | shbe-* \
+ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]a*eb-* | sh[23]e-* | sh[34]eb-* | shbe-* | sheb-* \
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
- | sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \
+ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
| sparclite-* \
- | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
| tahoe-* | thumb-* \
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
| tron-* \
@@ -678,6 +693,24 @@ case $basic_machine in
basic_machine=m68k-atari
os=-mint
;;
+ mipsEE* | ee | ps2)
+ basic_machine=mips64r5900el-scei
+ case $os in
+ -linux*)
+ ;;
+ *)
+ os=-elf
+ ;;
+ esac
+ ;;
+ iop)
+ basic_machine=mipsel-scei
+ os=-irx
+ ;;
+ dvp)
+ basic_machine=dvp-scei
+ os=-elf
+ ;;
mips3*-*)
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
;;
@@ -696,6 +729,9 @@ case $basic_machine in
basic_machine=i386-pc
os=-msdos
;;
+ ms1-*)
+ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+ ;;
mvs)
basic_machine=i370-ibm
os=-mvs
@@ -803,6 +839,12 @@ case $basic_machine in
pc532 | pc532-*)
basic_machine=ns32k-pc532
;;
+ pc98)
+ basic_machine=i386-pc
+ ;;
+ pc98-*)
+ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
pentium | p5 | k5 | k6 | nexgen | viac3)
basic_machine=i586-pc
;;
@@ -859,6 +901,10 @@ case $basic_machine in
basic_machine=i586-unknown
os=-pw32
;;
+ rdos)
+ basic_machine=i386-pc
+ os=-rdos
+ ;;
rom68k)
basic_machine=m68k-rom68k
os=-coff
@@ -1101,7 +1147,7 @@ case $basic_machine in
sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
basic_machine=sh-unknown
;;
- sparc | sparcv8 | sparcv9 | sparcv9b)
+ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
basic_machine=sparc-sun
;;
cydra)
@@ -1174,21 +1220,23 @@ case $os in
| -aos* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
- | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \
+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
+ | -openbsd* | -solidbsd* \
| -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -chorusos* | -chorusrdb* \
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
- | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \
+ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
+ | -uxpv* | -beos* | -mpeix* | -udk* \
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
- | -skyos* | -haiku*)
+ | -skyos* | -haiku* | -rdos* | -irx*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
diff --git a/admin/ltmain.sh b/admin/ltmain.sh
index 06823e057..8f7a6ac10 100644
--- a/admin/ltmain.sh
+++ b/admin/ltmain.sh
@@ -33,6 +33,9 @@ basename="s,^.*/,,g"
# function.
progpath="$0"
+# define SED for historic ltconfig's generated by Libtool 1.3
+test -z "$SED" && SED=sed
+
# The name of this program:
progname=`echo "$progpath" | $SED $basename`
modename="$progname"
@@ -51,6 +54,13 @@ TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)"
if test -n "${ZSH_VERSION+set}" ; then
setopt NO_GLOB_SUBST
fi
+# Same for EGREP, and just to be sure, do LTCC as well
+if test "X$EGREP" = X ; then
+ EGREP=egrep
+fi
+if test "X$LTCC" = X ; then
+ LTCC=${CC-gcc}
+fi
# Check that we have a working $echo.
if test "X$1" = X--no-reexec; then
@@ -137,6 +147,30 @@ preserve_args=
lo2o="s/\\.lo\$/.${objext}/"
o2lo="s/\\.${objext}\$/.lo/"
+if test -z "$max_cmd_len"; then
+ i=0
+ testring="ABCD"
+ new_result=
+
+ # If test is not a shell built-in, we'll probably end up computing a
+ # maximum length that is only half of the actual maximum length, but
+ # we can't tell.
+ while (test "X"`$SHELL $0 --fallback-echo "X$testring" 2>/dev/null` \
+ = "XX$testring") >/dev/null 2>&1 &&
+ new_result=`expr "X$testring" : ".*" 2>&1` &&
+ max_cmd_len="$new_result" &&
+ test "$i" != 17 # 1/2 MB should be enough
+ do
+ i=`expr $i + 1`
+ testring="$testring$testring"
+ done
+ testring=
+ # Add a significant safety factor because C++ compilers can tack on massive
+ # amounts of additional arguments before passing them to the linker.
+ # It appears as though 1/2 is a usable value.
+ max_cmd_len=`expr $max_cmd_len \/ 2`
+fi
+
#####################################
# Shell function definitions:
# This seems to be the best place for them
@@ -257,7 +291,21 @@ func_infer_tag ()
esac
CC_quoted="$CC_quoted $arg"
done
+ # user sometimes does CC=<HOST>-gcc so we need to match that to 'gcc'
+ trimedcc=`echo ${CC} | $SED -e "s/${host}-//g"`
+ # and sometimes libtool has CC=<HOST>-gcc but user does CC=gcc
+ extendcc=${host}-${CC}
+ # and sometimes libtool has CC=<OLDHOST>-gcc but user has CC=<NEWHOST>-gcc
+ # (Gentoo-specific hack because we always export $CHOST)
+ mungedcc=${CHOST-${host}}-${trimedcc}
case "$@ " in
+ "cc "* | " cc "* | "${host}-cc "* | " ${host}-cc "*|\
+ "gcc "* | " gcc "* | "${host}-gcc "* | " ${host}-gcc "*)
+ tagname=CC
+ break ;;
+ "$trimedcc "* | " $trimedcc "* | "`$echo $trimedcc` "* | " `$echo $trimedcc` "*|\
+ "$extendcc "* | " $extendcc "* | "`$echo $extendcc` "* | " `$echo $extendcc` "*|\
+ "$mungedcc "* | " $mungedcc "* | "`$echo $mungedcc` "* | " `$echo $mungedcc` "*|\
" $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
# The compiler in the base compile command matches
# the one in the tagged configuration.
@@ -851,7 +899,7 @@ if test -z "$show_help"; then
# Lock this critical section if it is needed
# We use this script file to make the link, it avoids creating a new file
if test "$need_locks" = yes; then
- until $run ln "$progpath" "$lockfile" 2>/dev/null; do
+ until $run ln "$srcfile" "$lockfile" 2>/dev/null; do
$show "Waiting for $lockfile to be removed"
sleep 2
done
@@ -3642,6 +3690,13 @@ EOF
*) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
esac
done
+ # It is ok to link against an archive when
+ # building a shared library.
+ if $AR -t $potlib > /dev/null 2>&1; then
+ newdeplibs="$newdeplibs $a_deplib"
+ a_deplib=""
+ break 2
+ fi
if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
| ${SED} 10q \
| $EGREP "$file_magic_regex" > /dev/null; then
@@ -5379,6 +5434,11 @@ else
$echo >> $output "\
if test \"\$libtool_execute_magic\" != \"$magic\"; then
# Run the actual program with our arguments.
+
+ # Make sure env LD_LIBRARY_PATH does not mess us up
+ if test -n \"\${LD_LIBRARY_PATH+set}\"; then
+ export LD_LIBRARY_PATH=\$progdir:\$LD_LIBRARY_PATH
+ fi
"
case $host in
# Backslashes separate directories on plain windows
@@ -5606,9 +5666,53 @@ fi\
$echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
exit $EXIT_FAILURE
fi
- newdependency_libs="$newdependency_libs $libdir/$name"
+ if test "X$EGREP" = X ; then
+ EGREP=egrep
+ fi
+ # We do not want portage's install root ($D) present. Check only for
+ # this if the .la is being installed.
+ if test "$installed" = yes && test "$D"; then
+ eval mynewdependency_lib=`echo "$libdir/$name" |sed -e "s:$D:/:g" -e 's:/\+:/:g'`
+ else
+ mynewdependency_lib="$libdir/$name"
+ fi
+ # Do not add duplicates
+ if test "$mynewdependency_lib"; then
+ my_little_ninja_foo_1=`echo $newdependency_libs |$EGREP -e "$mynewdependency_lib"`
+ if test -z "$my_little_ninja_foo_1"; then
+ newdependency_libs="$newdependency_libs $mynewdependency_lib"
+ fi
+ fi
+ ;;
+ *)
+ if test "$installed" = yes; then
+ # Rather use S=WORKDIR if our version of portage supports it.
+ # This is because some ebuild (gcc) do not use $S as buildroot.
+ if test "$PWORKDIR"; then
+ S="$PWORKDIR"
+ fi
+ # We do not want portage's build root ($S) present.
+ my_little_ninja_foo_2=`echo $deplib |$EGREP -e "$S"`
+ # We do not want portage's install root ($D) present.
+ my_little_ninja_foo_3=`echo $deplib |$EGREP -e "$D"`
+ if test -n "$my_little_ninja_foo_2" && test "$S"; then
+ mynewdependency_lib=""
+ elif test -n "$my_little_ninja_foo_3" && test "$D"; then
+ eval mynewdependency_lib=`echo "$deplib" |sed -e "s:$D:/:g" -e 's:/\+:/:g'`
+ else
+ mynewdependency_lib="$deplib"
+ fi
+ else
+ mynewdependency_lib="$deplib"
+ fi
+ # Do not add duplicates
+ if test "$mynewdependency_lib"; then
+ my_little_ninja_foo_4=`echo $newdependency_libs |$EGREP -e "$mynewdependency_lib"`
+ if test -z "$my_little_ninja_foo_4"; then
+ newdependency_libs="$newdependency_libs $mynewdependency_lib"
+ fi
+ fi
;;
- *) newdependency_libs="$newdependency_libs $deplib" ;;
esac
done
dependency_libs="$newdependency_libs"
@@ -5660,6 +5764,10 @@ fi\
case $host,$output,$installed,$module,$dlname in
*cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
esac
+ # Do not add duplicates
+ if test "$installed" = yes && test "$D"; then
+ install_libdir=`echo "$install_libdir" |sed -e "s:$D:/:g" -e 's:/\+:/:g'`
+ fi
$echo > $output "\
# $outputname - a libtool library file
# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
diff --git a/configure.in b/configure.in
index 021b0f283..7e4b4b206 100755
--- a/configure.in
+++ b/configure.in
@@ -81,11 +81,18 @@ AC_SS_FIND_X
AC_SS_CHECK_XSS
AC_SS_HEADER([Looking for Qt])
-SS_QT_MAJOR_VERSION_REQUIRED="3"
-SS_QT_MINOR_VERSION_REQUIRED="0"
-SS_QT_PATCH_LEVEL_REQUIRED="0"
-SS_QT_GENERAL_FILE_TO_SEARCH="include/qinputdialog.h"
-SS_QT_INCLUDE_FILE_TO_SEARCH="qiconview.h"
+SS_QT3_MAJOR_VERSION_REQUIRED="3"
+SS_QT3_MINOR_VERSION_REQUIRED="0"
+SS_QT3_PATCH_LEVEL_REQUIRED="0"
+SS_QT3_GENERAL_FILE_TO_SEARCH="include/qinputdialog.h"
+SS_QT3_INCLUDE_FILE_TO_SEARCH="qiconview.h"
+
+SS_QT4_MAJOR_VERSION_REQUIRED="4"
+SS_QT4_MINOR_VERSION_REQUIRED="0"
+SS_QT4_PATCH_LEVEL_REQUIRED="0"
+SS_QT4_GENERAL_FILE_TO_SEARCH="include/QtCore/QtPlugin"
+SS_QT4_INCLUDE_FILE_TO_SEARCH="QtCore/QtPlugin"
+
AC_SS_FIND_QT
diff --git a/data/pics/coresmall/kcs_screenshot.png b/data/pics/coresmall/kcs_screenshot.png
new file mode 100644
index 000000000..3005d3c93
--- /dev/null
+++ b/data/pics/coresmall/kcs_screenshot.png
Binary files differ
diff --git a/data/pics/kvi_bigicon_screenshot.png b/data/pics/kvi_bigicon_screenshot.png
new file mode 100644
index 000000000..b41b44c3a
--- /dev/null
+++ b/data/pics/kvi_bigicon_screenshot.png
Binary files differ
diff --git a/po/kvirc/kvirc_es.po b/po/kvirc/kvirc_es.po
index f69b8b9c5..353831d74 100644
--- a/po/kvirc/kvirc_es.po
+++ b/po/kvirc/kvirc_es.po
@@ -1,21 +1,21 @@
-# translation of kvirc_es.po to Spanish
+# translation of kvirc_es.po to castellano
+#
# Juanjo Alvarez Martinez <juanjux@yahoo.es>, 2004.
# José Luis Sánchez Villanueva <jsanchezv@teleline.es>, 2004-2006.
# Roberto Ciria <rciria@gmail.com>, 2007.
-#
msgid ""
msgstr ""
"Project-Id-Version: kvirc_es\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2006-07-26 11:07+0400\n"
-"PO-Revision-Date: 2006-01-15 22:32+0100\n"
-"Last-Translator: Jose Luis Sanchez <jsanchezv@teleline.es>\n"
-"Language-Team: Spanish <es@li.org>\n"
+"PO-Revision-Date: 2007-01-11 15:20+0100\n"
+"Last-Translator: Roberto Ciria <rciria@gmail.com>\n"
+"Language-Team: castellano <es@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"First-Translator: Juan José Álvarez Martínez <juanjux@yahoo.es>\n"
-"X-Generator: KBabel 1.11\n"
+"X-Generator: KBabel 1.11.4\n"
#: /home/alexey/kvirccvs/kvirc/src/modules/aliaseditor/aliaseditor.cpp:216
#: /home/alexey/kvirccvs/kvirc/src/modules/aliaseditor/aliaseditor.cpp:1076
@@ -83,8 +83,7 @@ msgstr "Exportar alias"
#: /home/alexey/kvirccvs/kvirc/src/modules/aliaseditor/aliaseditor.cpp:588
msgid "There exported file would be empty: cowardly refusing to write it"
-msgstr ""
-"El archivo exportado podría estar vacío: por precaució, no se grabar"
+msgstr "El archivo exportado podría estar vacío: por precaución, no se grabar"
#: /home/alexey/kvirccvs/kvirc/src/modules/aliaseditor/aliaseditor.cpp:588
#: /home/alexey/kvirccvs/kvirc/src/modules/aliaseditor/aliaseditor.cpp:613
@@ -154,7 +153,7 @@ msgstr "Borrar elemento"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_app.cpp:751
#: /home/alexey/kvirccvs/kvirc/src/kvirc/ui/kvi_input.cpp:2254
msgid "Yes"
-msgstr "S"
+msgstr "Sí"
#: /home/alexey/kvirccvs/kvirc/src/modules/aliaseditor/aliaseditor.cpp:697
msgid "Yes to All"
@@ -192,7 +191,7 @@ msgstr "OK, permítame intentarlo de nuevo..."
#: /home/alexey/kvirccvs/kvirc/src/modules/aliaseditor/aliaseditor.cpp:798
#: /home/alexey/kvirccvs/kvirc/src/modules/aliaseditor/aliaseditor.cpp:809
msgid "Bad Alias Name"
-msgstr "Nombre de alias erroneo"
+msgstr "Nombre de alias erróneo"
#: /home/alexey/kvirccvs/kvirc/src/modules/aliaseditor/aliaseditor.cpp:785
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_corecallbackcommands.cpp:253
@@ -205,10 +204,9 @@ msgstr ""
#: /home/alexey/kvirccvs/kvirc/src/modules/aliaseditor/aliaseditor.cpp:799
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_corecallbackcommands.cpp:262
-msgid ""
-"Stray ':' character in alias name: did you mean ...<namespace>::<name> ?"
+msgid "Stray ':' character in alias name: did you mean ...<namespace>::<name> ?"
msgstr ""
-"Se perdió el caracter ':' en el nombre de alias: quería decir..."
+"Se perdió el carácter ':' en el nombre de alias: quería decir..."
"<namespace>::<nombre>?"
#: /home/alexey/kvirccvs/kvirc/src/modules/aliaseditor/aliaseditor.cpp:810
@@ -228,7 +226,7 @@ msgstr "Debe especificar un nombre válido para el espacio de nombres"
#: /home/alexey/kvirccvs/kvirc/src/modules/aliaseditor/aliaseditor.cpp:867
#: /home/alexey/kvirccvs/kvirc/src/modules/aliaseditor/aliaseditor.cpp:878
msgid "Bad Namespace Name"
-msgstr "Nombre de espacio de nombres erroneo"
+msgstr "Nombre de espacio de nombres erróneo"
#: /home/alexey/kvirccvs/kvirc/src/modules/aliaseditor/aliaseditor.cpp:854
msgid ""
@@ -239,8 +237,7 @@ msgstr ""
"dígitos, subrayados y separadores de espacios de nombres ('::')"
#: /home/alexey/kvirccvs/kvirc/src/modules/aliaseditor/aliaseditor.cpp:868
-msgid ""
-"Stray ':' character in namespace name: did you mean ...<namespace>::<name> ?"
+msgid "Stray ':' character in namespace name: did you mean ...<namespace>::<name> ?"
msgstr ""
"Carácter ':' perdido en el nombre del espacio de nombres: quería decir... "
"<namespace>::<nombre>?"
@@ -267,7 +264,7 @@ msgstr "Por favor, teclee el nuevo nombre para el alias"
#: /home/alexey/kvirccvs/kvirc/src/modules/aliaseditor/aliaseditor.cpp:979
msgid "Rename Namespace"
-msgstr "Remombrar espacio de nombres"
+msgstr "Renombrar espacio de nombres"
#: /home/alexey/kvirccvs/kvirc/src/modules/aliaseditor/aliaseditor.cpp:979
msgid "Please enter the new name for the namespace"
@@ -392,8 +389,7 @@ msgstr "Conectado a %s (%s)"
#: /home/alexey/kvirccvs/kvirc/src/modules/links/linkswindow.cpp:128
msgid "Links cannot be requested: Not connected to a server"
-msgstr ""
-"Los enlaces no pueden ser solicitados: No está conectado a un servidor"
+msgstr "Los enlaces no pueden ser solicitados: No está conectado a un servidor"
#: /home/alexey/kvirccvs/kvirc/src/modules/links/linkswindow.cpp:153
msgid "Links for %Q [IRC Context %u]"
@@ -414,8 +410,7 @@ msgstr "Recibido final de enlaces."
#: /home/alexey/kvirccvs/kvirc/src/modules/links/linkswindow.cpp:235
#, c-format
-msgid ""
-"Broken link: Missing parent (%s) for %s (%d hops): %s (used /LINKS <mask> ?)"
+msgid "Broken link: Missing parent (%s) for %s (%d hops): %s (used /LINKS <mask> ?)"
msgstr ""
"Enlace roto: falta el padre (%s) para (%s) (%d saltos): %s (se usó /LINKS "
"<máscara> ?)"
@@ -467,7 +462,7 @@ msgstr "Enlaces lejanos (7 <= saltos): %d (~%d.%d %)"
#: /home/alexey/kvirccvs/kvirc/src/modules/links/linkswindow.cpp:287
#, c-format
msgid "Broken (unknown) links: %d"
-msgstr "Enlaces erroneos (desconocidos): %d"
+msgstr "Enlaces erróneos (desconocidos): %d"
#: /home/alexey/kvirccvs/kvirc/src/modules/links/linkswindow.cpp:288
#, c-format
@@ -518,8 +513,7 @@ msgstr "Procesando enlace: %s"
#: /home/alexey/kvirccvs/kvirc/src/modules/links/linkswindow.cpp:419
msgid "Broken message syntax, can't extract hops number, assuming 0"
-msgstr ""
-"Sintaxis de mensaje erronea, no puedo extraer el número de saltos, se asume 0"
+msgstr "Sintaxis de mensaje errónea, no puedo extraer el número de saltos, se asume 0"
#: /home/alexey/kvirccvs/kvirc/src/modules/links/libkvilinks.cpp:74
msgid "Links window alread open for this IRC context"
@@ -586,7 +580,7 @@ msgstr "Detener la descarga de la lista..."
#: /home/alexey/kvirccvs/kvirc/src/modules/list/listwindow.cpp:348
msgid "Cannot stop list download, no active connection."
-msgstr "No puedo detener la descarga de la lista, no hay una conexión activa"
+msgstr "No puedo detener la descarga de la lista, no hay una conexión activa."
#: /home/alexey/kvirccvs/kvirc/src/modules/list/listwindow.cpp:365
msgid "List cannot be requested: Not connected to a server"
@@ -625,12 +619,11 @@ msgstr "Procesando lista: %Q"
#: /home/alexey/kvirccvs/kvirc/src/modules/help/helpwindow.cpp:60
msgid "Indexing help files"
-msgstr ""
+msgstr "Indexando archivos de ayuda"
#: /home/alexey/kvirccvs/kvirc/src/modules/help/helpwindow.cpp:79
-#, fuzzy
msgid "Index"
-msgstr "Indice de la Ayuda"
+msgstr "Índice de la Ayuda"
#: /home/alexey/kvirccvs/kvirc/src/modules/help/helpwindow.cpp:91
msgid "Refresh index"
@@ -648,11 +641,11 @@ msgstr ""
#: /home/alexey/kvirccvs/kvirc/src/modules/help/helpwindow.cpp:164
msgid "Using a wildcard within phrases is not allowed."
-msgstr ""
+msgstr "El uso de comodines con frases no está permitido."
#: /home/alexey/kvirccvs/kvirc/src/modules/help/helpwindow.cpp:173
msgid "The closing quotation mark is missing."
-msgstr ""
+msgstr "No hay cierre de comillas."
#: /home/alexey/kvirccvs/kvirc/src/modules/help/helpwindow.cpp:265
msgid "Help Browser"
@@ -660,13 +653,12 @@ msgstr "Navegador de la Ayuda"
#: /home/alexey/kvirccvs/kvirc/src/modules/help/index.cpp:636
msgid "Untitled"
-msgstr ""
+msgstr "Sin Título"
#: /home/alexey/kvirccvs/kvirc/src/modules/regchan/libkviregchan.cpp:121
#: /home/alexey/kvirccvs/kvirc/src/modules/regchan/libkviregchan.cpp:178
msgid "No such channel/netmask entry in the database"
-msgstr ""
-"No existe una entrada para ese canal/máscara de red en la base de datos"
+msgstr "No existe una entrada para ese canal/máscara de red en la base de datos"
#: /home/alexey/kvirccvs/kvirc/src/modules/regchan/libkviregchan.cpp:198
msgid "Registered channel list:"
@@ -927,7 +919,7 @@ msgid ""
"Please report to <pragma at kvirc dot net>"
msgstr ""
"Oops... no puedo encontrar el archivo de licencia.\n"
-"DEBE estar incluído en la distribución...\n"
+"DEBE estar incluido en la distribución...\n"
"Por favor, informe de esto a <pragma at kvirc dot net>"
#: /home/alexey/kvirccvs/kvirc/src/modules/setup/setupwizard.cpp:177
@@ -975,7 +967,7 @@ msgid ""
"preserved.</p>"
msgstr ""
"<p>Por favor, escoja un directorio para que KVIrc guarde su configuración y "
-"datos varios, y otro para los archivos descargados. Asegrese de que posee "
+"datos varios, y otro para los archivos descargados. Asegúrese de que posee "
"permisos para escribir en ambos directorios.<br><br>La configuración "
"sugerida es correcta casi siempre, por ello, si no entiende qué es esto, "
"solo pulse \"<b>Siguiente</b>\".<br><br>Si tiene instalada una versión "
@@ -1016,7 +1008,7 @@ msgstr ""
"minimalista está diseñado para pantallas con pocos colores o para "
"extremistas de la \"consola\"; más o menos es texto blanco sobre fondo "
"negro.<br><br>Si tenía instalada una versión previa de KVIrc, puede "
-"escoger no aplicar ningn tema para preservar sus configuraciones visuales "
+"escoger no aplicar ningún tema para preservar sus configuraciones visuales "
"actuales.<br><br>Si no sabe que quiere escoger, use la configuración por "
"defecto.</p>"
@@ -1041,7 +1033,7 @@ msgid ""
"<p>Setup can make a shortcut to the KVIrc program on your desktop, so you "
"can access it quickly.</p><p>Do you want this shortcut to be created?</p>"
msgstr ""
-"<p>La configuración puede crear un acceso directo al ejectable de KVIrc en "
+"<p>La configuración puede crear un acceso directo al ejecutable de KVIrc en "
"su escritorio.</p><p>Quiere crearlo?</p>"
#: /home/alexey/kvirccvs/kvirc/src/modules/setup/setupwizard.cpp:368
@@ -1104,8 +1096,7 @@ msgstr "Escoja un directorio de configuración - Asistente de KVIrc"
#: /home/alexey/kvirccvs/kvirc/src/modules/setup/setupwizard.cpp:448
msgid "Choose a Download Folder - KVIrc Setup"
-msgstr ""
-"Escoja un directorio para los archivos descargados - Asistente de KVIrc"
+msgstr "Escoja un directorio para los archivos descargados - Asistente de KVIrc"
#: /home/alexey/kvirccvs/kvirc/src/modules/setup/setupwizard.cpp:629
msgid "Abort Setup - KVIrc Setup"
@@ -1182,8 +1173,7 @@ msgstr ""
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_combobox.cpp:170
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_listbox.cpp:176
msgid "No string parameter given - using empty string"
-msgstr ""
-"No se proporcionó una cadena como parámetro - usando una cadena vacía"
+msgstr "No se proporcionó una cadena como parámetro - usando una cadena vacía"
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_combobox.cpp:173
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_combobox.cpp:193
@@ -1372,10 +1362,8 @@ msgid "Can't start the DNS thread"
msgstr "No se pudo iniciar el hilo de DNS"
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_socket.cpp:1896
-msgid ""
-"Too much unprocessed incoming data (you've left this socket unmanaged ?)"
-msgstr ""
-"Demasiados datos de entrada sin procesar (dejó el socket sin gestionar?)"
+msgid "Too much unprocessed incoming data (you've left this socket unmanaged ?)"
+msgstr "Demasiados datos de entrada sin procesar (dejó el socket sin gestionar?)"
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_toolbutton.cpp:264
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_popupmenu.cpp:254
@@ -1450,7 +1438,7 @@ msgstr " Se proporcionó un índice de archivo negativo !"
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_file.cpp:668
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_file.cpp:700
msgid "Argument to long, using only first char"
-msgstr "Argumento demasiado largo, utilizando solo el primer caracter"
+msgstr "Argumento demasiado largo, utilizando solo el primer carácter "
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_file.cpp:339
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_file.cpp:379
@@ -1505,8 +1493,7 @@ msgstr "Uno de los parámetros del vector de geometría está vacío"
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_painter.cpp:401
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_widget.cpp:927
msgid "One of the geometry array parameters didn't evaluate to an integer"
-msgstr ""
-"Uno de los parámetros del vector de geometría no se evalua a un entero"
+msgstr "Uno de los parámetros del vector de geometría no se evalúa a un entero"
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_painter.cpp:413
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_painter.cpp:447
@@ -1519,7 +1506,7 @@ msgstr ""
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_widget.cpp:1353
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_widget.cpp:1410
msgid "The first parameter didn't evaluate to an array nor an integer"
-msgstr "El primer parámetro no se evalua como un vector ni como un entero"
+msgstr "El primer parámetro no se evalúa como un vector ni como un entero"
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_painter.cpp:423
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_widget.cpp:1329
@@ -1535,7 +1522,7 @@ msgstr "Uno de los parámetros del vector está vacío"
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_painter.cpp:435
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_painter.cpp:470
msgid "One of the array parameters didn't evaluate to an integer"
-msgstr "Uno de los parámetros del vector no se evalua como un entero"
+msgstr "Uno de los parámetros del vector no se evalúa como un entero"
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_painter.cpp:457
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_multilineedit.cpp:784
@@ -1591,8 +1578,7 @@ msgstr ""
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_wrapper.cpp:165
#, fuzzy
msgid "Failed to find one of the wrap path widgets (%Q::%Q)"
-msgstr ""
-"No se encontró una de las trayectorias de envoltura al widget (%s::%s)"
+msgstr "No se encontró una de las trayectorias de envoltura al widget (%s::%s)"
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_wrapper.cpp:174
msgid "Failed to find the widget to wrap"
@@ -1641,22 +1627,21 @@ msgstr "Uno de los parámetros del vector de colores está vacío"
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_widget.cpp:1020
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_widget.cpp:1095
msgid "One of the colors array parameters didn't evaluate to an integer"
-msgstr ""
-"Uno de los parámetros del vector de colores no se evalua como un entero"
+msgstr "Uno de los parámetros del vector de colores no se evalúa como un entero"
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_multilineedit.cpp:811
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_multilineedit.cpp:1000
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_widget.cpp:1033
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_widget.cpp:1108
msgid "A string of 6 digits hex is required"
-msgstr ""
+msgstr "Se requiere una cadena hexadecimal de 6 dígitos"
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_multilineedit.cpp:822
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_multilineedit.cpp:1011
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_widget.cpp:1044
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_widget.cpp:1119
msgid "Not an hex digits"
-msgstr ""
+msgstr "No son dígitos hexadecimales"
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_multilineedit.cpp:830
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_multilineedit.cpp:1019
@@ -1690,7 +1675,7 @@ msgstr "Alineación desconocida: %Q"
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_mainwindow.cpp:125
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_mainwindow.cpp:148
msgid "Unknown dock area '%Q'"
-msgstr "Area de anclaje desconocida '%Q'"
+msgstr "Área de anclaje desconocida '%Q'"
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/libkviobjects.cpp:174
#, fuzzy
@@ -1699,11 +1684,11 @@ msgstr "La clase \"%Q\" no está definida"
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/libkviobjects.cpp:271
msgid "Inexisting target object for objects.connect"
-msgstr ""
+msgstr "Objetivo inexistente para objects.connect"
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/libkviobjects.cpp:276
msgid "Inexisting source object for objects.connect"
-msgstr ""
+msgstr "Fuente inexistente para objects.connect"
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/libkviobjects.cpp:418
#, fuzzy
@@ -1725,7 +1710,7 @@ msgstr "Necesita un objeto Pixmap"
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/libkviobjects.cpp:531
msgid "Values for background are out of image size "
-msgstr ""
+msgstr "Los valores del fondo exceden el tamaño de pantalla"
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/libkviobjects.cpp:536
msgid "Values for foreground are out of image size "
@@ -1759,26 +1744,22 @@ msgid "Invalid selection mode 'Q'"
msgstr "Modo de selección no válido \"%Q\": asumiendo \"single\""
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_widget.cpp:937
-msgid ""
-"$setGeometry() requires either an array as first parameter or four integers"
-msgstr ""
-"$setGeometry() necesita un vector como primer parámetro o cuatro enteros"
+msgid "$setGeometry() requires either an array as first parameter or four integers"
+msgstr "$setGeometry() necesita un vector como primer parámetro o cuatro enteros"
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_widget.cpp:1054
#, fuzzy
msgid ""
"$setForegroundColor requires either an array as first parameter, one hex "
"string or three integers"
-msgstr ""
-"$setBackgroundColor necesita un vector como primer parámetro o tres enteros"
+msgstr "$setBackgroundColor necesita un vector como primer parámetro o tres enteros"
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_widget.cpp:1129
#, fuzzy
msgid ""
"$setBackgroundColor requires either an array as first parameter, one hex "
"string or three integers"
-msgstr ""
-"$setBackgroundColor necesita un vector como primer parámetro o tres enteros"
+msgstr "$setBackgroundColor necesita un vector como primer parámetro o tres enteros"
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_widget.cpp:1336
#, fuzzy
@@ -1786,15 +1767,13 @@ msgid "One of the move array parameters is empty"
msgstr "Uno de los parámetros del vector está vacío"
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_widget.cpp:1341
-#, fuzzy
msgid "One of the move array parameters didn't evaluate to an integer"
-msgstr "Uno de los parámetros del vector no se evalua como un entero"
+msgstr "Uno de los parámetros del vector no se evalúa como un entero"
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_widget.cpp:1348
#, fuzzy
msgid "$move() requires either an array as first parameter or two integers"
-msgstr ""
-"$setGeometry() necesita un vector como primer parámetro o cuatro enteros"
+msgstr "$setGeometry() necesita un vector como primer parámetro o cuatro enteros"
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_widget.cpp:1393
#, fuzzy
@@ -1802,15 +1781,13 @@ msgid "One of the resize array parameters is empty"
msgstr "Uno de los parámetros del vector está vacío"
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_widget.cpp:1398
-#, fuzzy
msgid "One of the resize array parameters didn't evaluate to an integer"
-msgstr "Uno de los parámetros del vector no se evalua como un entero"
+msgstr "Uno de los parámetros del vector no se evalúa como un entero"
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_widget.cpp:1405
#, fuzzy
msgid "$resize() requires either an array as first parameter or two integers"
-msgstr ""
-"$setGeometry() necesita un vector como primer parámetro o cuatro enteros"
+msgstr "$setGeometry() necesita un vector como primer parámetro o cuatro enteros"
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_widget.cpp:1438
msgid "Invalid parameters"
@@ -1847,7 +1824,7 @@ msgstr "Modo de eco desconocido %Q"
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_toolbar.cpp:83
msgid "the toolbar cannot be a parent-widget!"
-msgstr "la barra de herramientas no puede ser un widget padre"
+msgstr "la barra de herramientas no puede ser un widget padre!"
#: /home/alexey/kvirccvs/kvirc/src/modules/objects/class_toolbar.cpp:92
msgid "The parent-widget isn't a MainWindow."
@@ -2054,13 +2031,11 @@ msgstr "No puedo poner el avatar actual a '%Q': no puedo cargar la imagen"
#: /home/alexey/kvirccvs/kvirc/src/modules/avatar/libkviavatar.cpp:352
msgid "Invalid timeout specified, using default"
-msgstr ""
-"Se especificó un tiempo de expiración no válido, usando valor por defecto"
+msgstr "Se especificó un tiempo de expiración no válido, usando valor por defecto"
#: /home/alexey/kvirccvs/kvirc/src/modules/avatar/libkviavatar.cpp:390
msgid "Can't add a file offer for file %Q (huh ? file not readable ?)"
-msgstr ""
-"No puedo añadir un ofrecimiento de archivo para %Q (archivo no legible?)"
+msgstr "No puedo añadir un ofrecimiento de archivo para %Q (archivo no legible?)"
#: /home/alexey/kvirccvs/kvirc/src/modules/avatar/libkviavatar.cpp:397
msgid "Added %d secs file offer for file %Q (%Q) and receiver %Q"
@@ -2073,8 +2048,7 @@ msgstr "Notificando avatar '%Q' a %Q"
#: /home/alexey/kvirccvs/kvirc/src/modules/system/libkvisystem.cpp:200
#, fuzzy, c-format
msgid "No environment variable found, please don't use the %% in the request"
-msgstr ""
-"No se encontró la variable de entorno, por favor no use %% en la petición"
+msgstr "No se encontró la variable de entorno, por favor no use %% en la petición"
#: /home/alexey/kvirccvs/kvirc/src/modules/system/libkvisystem.cpp:440
msgid "Invalid DCOP parameter syntax"
@@ -2111,7 +2085,7 @@ msgstr "Submenu"
#: /home/alexey/kvirccvs/kvirc/src/modules/popupeditor/popupeditor.cpp:83
msgid "External Menu"
-msgstr "Men Externo"
+msgstr "Menú Externo"
#: /home/alexey/kvirccvs/kvirc/src/modules/popupeditor/popupeditor.cpp:87
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_coreactions.cpp:491
@@ -2364,7 +2338,7 @@ msgstr "Error 0: Éxito ?"
#: /home/alexey/kvirccvs/kvirc/src/modules/rijndael/libkvirijndael.cpp:169
msgid "Unsupported crypt mode"
-msgstr "Mode de cifrado no soportado"
+msgstr "Modo de cifrado no soportado"
#: /home/alexey/kvirccvs/kvirc/src/modules/rijndael/libkvirijndael.cpp:170
msgid "Unsupported direction"
@@ -2376,7 +2350,7 @@ msgstr "Longitud de clave no soportada"
#: /home/alexey/kvirccvs/kvirc/src/modules/rijndael/libkvirijndael.cpp:172
msgid "Bad key data"
-msgstr "Datos de clave erroneos"
+msgstr "Datos de clave erróneos"
#: /home/alexey/kvirccvs/kvirc/src/modules/rijndael/libkvirijndael.cpp:173
msgid "Engine not initialized"
@@ -2388,7 +2362,7 @@ msgstr "Dirección no válida para este motor"
#: /home/alexey/kvirccvs/kvirc/src/modules/rijndael/libkvirijndael.cpp:175
msgid "Corrupted message data or invalid decrypt key"
-msgstr "Datos del mensaje corruptos o clave de descrifrado no válida"
+msgstr "Datos del mensaje corruptos o clave de descifrado no válida"
#: /home/alexey/kvirccvs/kvirc/src/modules/rijndael/libkvirijndael.cpp:176
#: /home/alexey/kvirccvs/kvirc/src/kvilib/core/kvi_error.cpp:47
@@ -2406,7 +2380,7 @@ msgstr "Buffer de datos demasiado largo"
#: /home/alexey/kvirccvs/kvirc/src/modules/rijndael/libkvirijndael.cpp:221
msgid "Ops...decrypt cipher not initialized"
-msgstr "Ups...motor de descrifrado no inicializado"
+msgstr "Ups...motor de descifrado no inicializado"
#: /home/alexey/kvirccvs/kvirc/src/modules/rijndael/libkvirijndael.cpp:277
msgid "The message is not a hexadecimal string: this is not my stuff"
@@ -2503,7 +2477,7 @@ msgstr "Tráfico entrante"
#: /home/alexey/kvirccvs/kvirc/src/modules/ident/libkviident.cpp:106
msgid "[IDENT]: Service shutdown (spontaneous)"
-msgstr "[IDENT]: Servicio parado (espontaneo)"
+msgstr "[IDENT]: Servicio parado (espontáneo)"
#: /home/alexey/kvirccvs/kvirc/src/modules/ident/libkviident.cpp:110
msgid "[IDENT]: Service shutdown (on request)"
@@ -2666,19 +2640,19 @@ msgstr "Mostrar Ventana"
#: /home/alexey/kvirccvs/kvirc/src/modules/dockwidget/libkvidockwidget.cpp:412
msgid "Away on all"
-msgstr ""
+msgstr "Ausentar en todos"
#: /home/alexey/kvirccvs/kvirc/src/modules/dockwidget/libkvidockwidget.cpp:415
msgid "Back on all"
-msgstr ""
+msgstr "Regresar en todos"
#: /home/alexey/kvirccvs/kvirc/src/modules/dockwidget/libkvidockwidget.cpp:434
msgid "Back on %1"
-msgstr ""
+msgstr "Regresar a %1"
#: /home/alexey/kvirccvs/kvirc/src/modules/dockwidget/libkvidockwidget.cpp:437
msgid "Away on %1"
-msgstr ""
+msgstr "Ausentar de %1"
#: /home/alexey/kvirccvs/kvirc/src/modules/lamerizer/libkvilamerizer.cpp:219
msgid "A really lame text transformation engine :D"
@@ -2686,8 +2660,7 @@ msgstr "Un motor de transformación de texto verdaderamente simple :D"
#: /home/alexey/kvirccvs/kvirc/src/modules/lamerizer/libkvilamerizer.cpp:229
msgid "A really lame text transformation engine: Light Version."
-msgstr ""
-"Un motor de transformación de texto verdaderamente simple: Versión Light."
+msgstr "Un motor de transformación de texto verdaderamente simple: Versión Light."
#: /home/alexey/kvirccvs/kvirc/src/modules/window/libkviwindow.cpp:78
#: /home/alexey/kvirccvs/kvirc/src/modules/window/libkviwindow.cpp:1083
@@ -2736,11 +2709,11 @@ msgstr "Pixmap nulo"
#: /home/alexey/kvirccvs/kvirc/src/modules/window/libkviwindow.cpp:1330
msgid "The encrypt key wasn't a valid hexadecimal string"
-msgstr ""
+msgstr "La clave para cifrar no es una cadena hexadecimal válida."
#: /home/alexey/kvirccvs/kvirc/src/modules/window/libkviwindow.cpp:1344
msgid "The decrypt key wasn't a valid hexadecimal string"
-msgstr ""
+msgstr "La clave para descifrar no es una cadena hexadecimal válida"
#: /home/alexey/kvirccvs/kvirc/src/modules/window/libkviwindow.cpp:1381
msgid "Both -n and -m switchess specified, -n takes precedence"
@@ -2791,7 +2764,7 @@ msgstr ""
"el usuario, añadirlo a la lista de notificaciones y mostrar su avatar "
"asociado.<br><br>Primeramente, debes escribir el <b>nombre de la entrada o "
"el nombre real</b> del usuario que vas a registrar. El nombre será usado "
-"para identificar la entrada de la base de datos y no tiene ningn "
+"para identificar la entrada de la base de datos y no tiene ningún "
"requerimiento específico, puede ser un nombre, un nick o solo un texto que "
"te recuerde a la persona.<br>Ejemplos: \"Lorena Bernal\", \"Mamifufi\".\n"
"</p>"
@@ -2813,7 +2786,7 @@ msgstr ""
"<p>Un usuario registrado es identificado por una o más <b>máscaras de IRC</"
"b>.<br>Una máscara debe cumplir con el siguiente formato:<br><b>nick!"
"nombre_usuario@máquina</b><br>y puede contener los comodines '*' y '?'."
-"Séa cuidadoso al escoger las máscaras: son el único método para verificar "
+"Sea cuidadoso al escoger las máscaras: son el único método para verificar "
"la identidad de un usuario registrado.<br><br>Puedes introducir hasta dos "
"máscaras; si deseas añadir más, utiliza el botón \"<b>Editar</b>\" en el "
"diálogo de Usuarios Registrados. Debes poner como mínimo una máscara.</p>"
@@ -3053,8 +3026,7 @@ msgstr "Notificar nicks:"
#: /home/alexey/kvirccvs/kvirc/src/modules/reguser/edituser.cpp:389
msgid "<center>You can enter a space separated list of nicknames.</center>"
-msgstr ""
-"<center>Puedes entrar una lista de nicks separados por espacios.</center>"
+msgstr "<center>Puedes entrar una lista de nicks separados por espacios.</center>"
#: /home/alexey/kvirccvs/kvirc/src/modules/reguser/edituser.cpp:414
#: /home/alexey/kvirccvs/kvirc/data/defscript/default.kvs:1012
@@ -3117,13 +3089,12 @@ msgid "Open the edit dialog to create a new user entry."
msgstr "Abrir el diálogo de edición para crear una nueva entrada de usuario."
#: /home/alexey/kvirccvs/kvirc/src/modules/reguser/edituser.cpp:800
-#, fuzzy
msgid "&Add Group..."
-msgstr "&Añadir..."
+msgstr "&Añadir Grupo..."
#: /home/alexey/kvirccvs/kvirc/src/modules/reguser/edituser.cpp:803
msgid "Adds a new group"
-msgstr ""
+msgstr "Añade un nuevo grupo"
#: /home/alexey/kvirccvs/kvirc/src/modules/reguser/edituser.cpp:811
msgid "Remove the currently selected entries."
@@ -3172,7 +3143,7 @@ msgstr "Nombre de menú emergente"
#: /home/alexey/kvirccvs/kvirc/src/modules/reguser/edituser.cpp:1023
msgid "Move to group"
-msgstr ""
+msgstr "Mover al grupo"
#: /home/alexey/kvirccvs/kvirc/src/modules/reguser/edituser.cpp:1066
#: /home/alexey/kvirccvs/kvirc/src/modules/reguser/edituser.cpp:1069
@@ -3227,8 +3198,7 @@ msgstr ""
#: /home/alexey/kvirccvs/kvirc/src/modules/toolbareditor/toolbareditor.cpp:59
msgid "Drop here the icons from the toolbars to remove them"
-msgstr ""
-"Soltar aquí los iconos desde la barra de herramientas para eliminarlos"
+msgstr "Soltar aquí los iconos desde la barra de herramientas para eliminarlos"
#: /home/alexey/kvirccvs/kvirc/src/modules/toolbareditor/toolbareditor.cpp:126
msgid "ToolBar Properties"
@@ -3350,13 +3320,11 @@ msgstr "No fue posible escribir en el archivo de barra de herramientas."
#: /home/alexey/kvirccvs/kvirc/src/modules/toolbareditor/toolbareditor.cpp:463
msgid "Please specify the properties for the toolbar \"%1\""
-msgstr ""
-"Por favor, especifica las propiedades de la barra de herramientas \"%1\""
+msgstr "Por favor, especifica las propiedades de la barra de herramientas \"%1\""
#: /home/alexey/kvirccvs/kvirc/src/modules/toolbareditor/toolbareditor.cpp:489
msgid "Please specify the properties for the new toolbar"
-msgstr ""
-"Por favor, especifica las propiedades de la nueva barra de herramientas"
+msgstr "Por favor, especifica las propiedades de la nueva barra de herramientas"
#: /home/alexey/kvirccvs/kvirc/src/modules/toolbareditor/toolbareditor.cpp:490
#: /home/alexey/kvirccvs/kvirc/src/modules/toolbareditor/toolbareditor.cpp:491
@@ -3416,7 +3384,7 @@ msgid ""
"so it is a good idea to use $tr() here"
msgstr ""
"Nombre visible para esta acción.<br>Esta cadena será mostrada al usuario, "
-"por eso es una buena idea usar $tr() aqu"
+"por eso es una buena idea usar $tr() aquí"
#: /home/alexey/kvirccvs/kvirc/src/modules/actioneditor/actioneditor.cpp:164
msgid "Action code"
@@ -3498,7 +3466,7 @@ msgid ""
"Check this option if this action should be enabled only when the active "
"window belongs to an irc context"
msgstr ""
-"Activa esta opción si esta acción debería ser habilitada unicamente "
+"Activa esta opción si esta acción debería ser habilitada únicamente "
"cuando la ventana activa pertenezca a un contexto de IRC"
#: /home/alexey/kvirccvs/kvirc/src/modules/actioneditor/actioneditor.cpp:248
@@ -3528,7 +3496,7 @@ msgstr ""
#: /home/alexey/kvirccvs/kvirc/src/modules/actioneditor/actioneditor.cpp:263
msgid "Enable Only in Specified Windows"
-msgstr "Habilitar unicamente en Ventanas Especificadas"
+msgstr "Habilitar únicamente en Ventanas Especificadas"
#: /home/alexey/kvirccvs/kvirc/src/modules/actioneditor/actioneditor.cpp:265
msgid ""
@@ -3564,7 +3532,7 @@ msgid ""
"window"
msgstr ""
"Esto activará la opción únicamente si hay usuarios seleccionados en "
-"laventana activa"
+"la ventana activa"
#: /home/alexey/kvirccvs/kvirc/src/modules/actioneditor/actioneditor.cpp:280
msgid "Enable in Channel Windows"
@@ -3676,8 +3644,7 @@ msgstr "No es posible reproducir el sonido '%Q'"
#: /home/alexey/kvirccvs/kvirc/src/modules/snd/libkvisnd.cpp:609
msgid "Sorry , I can't find a sound system to use on this machine"
-msgstr ""
-"Lo siento, no puedo encontrar un sistema de sonido para usar en esta máquina"
+msgstr "Lo siento, no puedo encontrar un sistema de sonido para usar en esta máquina"
#: /home/alexey/kvirccvs/kvirc/src/modules/snd/libkvisnd.cpp:611
#, c-format
@@ -3719,8 +3686,7 @@ msgstr "Confirmar la desinstalación de la funcionalidad adicional"
#: /home/alexey/kvirccvs/kvirc/src/modules/addon/managementdialog.cpp:322
msgid "Please select the addon installation file"
-msgstr ""
-"Por favor, selecciona el archivo de instalación de la funcionalidad adicional"
+msgstr "Por favor, selecciona el archivo de instalación de la funcionalidad adicional"
#: /home/alexey/kvirccvs/kvirc/src/modules/addon/libkviaddon.cpp:145
msgid "%cAddon id %Q, version %Q%c"
@@ -3756,13 +3722,12 @@ msgstr "La funcionalidad adicional \"%1\" no existe"
#: /home/alexey/kvirccvs/kvirc/src/modules/addon/libkviaddon.cpp:239
msgid "The addon \"%1\" has no configure callback set"
msgstr ""
-"La funcionalidad adicional \"%1\" no tiene definida una funcion de "
-"configuracion"
+"La funcionalidad adicional \"%1\" no tiene definida una función de "
+"configuración"
#: /home/alexey/kvirccvs/kvirc/src/modules/addon/libkviaddon.cpp:286
msgid "The addon \"%1\" has no help callback set"
-msgstr ""
-"La funcionalidad adicional \"%1\" no tiene definida una funcion de ayuda"
+msgstr "La funcionalidad adicional \"%1\" no tiene definida una función de ayuda"
#: /home/alexey/kvirccvs/kvirc/src/modules/addon/libkviaddon.cpp:528
#: /home/alexey/kvirccvs/kvirc/src/modules/action/libkviaction.cpp:379
@@ -3775,8 +3740,7 @@ msgstr "La versión especificada \"%Q\" no es una cadena de versión válida"
#: /home/alexey/kvirccvs/kvirc/src/modules/addon/libkviaddon.cpp:543
msgid "The specified KVIrc version \"%Q\" is not a valid version string"
-msgstr ""
-"La versión de KVIrc especificada \"%Q\" no es una cadena válida de versión"
+msgstr "La versión de KVIrc especificada \"%Q\" no es una cadena válida de versión"
#: /home/alexey/kvirccvs/kvirc/src/modules/addon/libkviaddon.cpp:549
msgid ""
@@ -3788,8 +3752,7 @@ msgstr ""
#: /home/alexey/kvirccvs/kvirc/src/modules/addon/libkviaddon.cpp:554
msgid "Attempting to register addon \"%Q\" with version %Q"
-msgstr ""
-"Intentando registrar la funcionalidad adicional \"%Q\" con la versión %Q"
+msgstr "Intentando registrar la funcionalidad adicional \"%Q\" con la versión %Q"
#: /home/alexey/kvirccvs/kvirc/src/modules/addon/libkviaddon.cpp:566
msgid ""
@@ -3825,7 +3788,7 @@ msgstr "Falló la escritura al archivo %Q: el destino no puede ser abierto"
#: /home/alexey/kvirccvs/kvirc/src/modules/file/libkvifile.cpp:244
msgid "Destination file exists: file not renamed"
-msgstr "El archivo de destino existe: no se renombr"
+msgstr "El archivo de destino existe: no se renombra"
#: /home/alexey/kvirccvs/kvirc/src/modules/file/libkvifile.cpp:247
msgid "Failed to rename %Q to %Q"
@@ -3951,7 +3914,7 @@ msgstr "Sabía usted que..."
#: /home/alexey/kvirccvs/kvirc/src/modules/tip/libkvitip.cpp:205
msgid "<b>Can't find any tip... :(</b>"
-msgstr "<b>No se ha podido encontrar ningn consejo... :(</b>"
+msgstr "<b>No se ha podido encontrar ningún consejo... :(</b>"
#: /home/alexey/kvirccvs/kvirc/src/modules/lag/libkvilag.cpp:66
msgid "Lag meter was not enabled"
@@ -4024,12 +3987,11 @@ msgstr "Editor Puro"
#: /home/alexey/kvirccvs/kvirc/src/modules/str/libkvistr.cpp:1534
msgid "%Q algorytm is not supported"
-msgstr ""
+msgstr "el algoritmo %Q no está soportado"
#: /home/alexey/kvirccvs/kvirc/src/modules/str/libkvistr.cpp:1556
-msgid ""
-"KVIrc is compiled without OpenSSL support. $str.digest function disabled"
-msgstr ""
+msgid "KVIrc is compiled without OpenSSL support. $str.digest function disabled"
+msgstr "Kvirc fue compilado sin soporte OpenSSL. Función $str.digest desactivada"
#: /home/alexey/kvirccvs/kvirc/src/modules/str/libkvistr.cpp:2019
msgid "Invalid argument for ?d escape sequence, 0 assumed"
@@ -4108,12 +4070,10 @@ msgstr "La opción -l necesita -c"
#: /home/alexey/kvirccvs/kvirc/src/modules/action/libkviaction.cpp:411
msgid "The switch -s requires -w with a combination of flags 'c','x' and 'q'"
-msgstr ""
-"La opción -s necesita -w con una combinación de indicadores 'c', 'x' y 'q'"
+msgstr "La opción -s necesita -w con una combinación de indicadores 'c', 'x' y 'q'"
#: /home/alexey/kvirccvs/kvirc/src/modules/action/libkviaction.cpp:422
-msgid ""
-"The action \"%1\" is already defined as core action and cannot be overridden"
+msgid "The action \"%1\" is already defined as core action and cannot be overridden"
msgstr ""
"La acción \"%1\" ya está definida como una acción principal y no puede "
"ser sobreescrita"
@@ -4136,7 +4096,7 @@ msgid ""
"Broken slot '%s' in target object '%s' while emitting signal '%s' from "
"object '%s': disconnecting"
msgstr ""
-"Slot '%s' erroneo en objeto destino '%s' mientras se emitía la señal '%s' "
+"Slot '%s' erróneo en objeto destino '%s' mientras se emitía la señal '%s' "
"desde el objeto '%s': desconectando"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/uparser/kvi_scriptobject.cpp:601
@@ -4301,7 +4261,7 @@ msgstr "Error en palabra clave: %c%Q"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/uparser/kvi_uparser.cpp:150
#, c-format
msgid "Parsing stopped at %cline %d , character %d"
-msgstr "Análisis detenido en %clínea %d , caracter %d"
+msgstr "Análisis detenido en %clínea %d , carácter %d"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/uparser/kvi_uparser.cpp:152
#, c-format
@@ -4311,16 +4271,16 @@ msgstr " %s"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/uparser/kvi_uparser.cpp:158
#, c-format
msgid "Object scope: name (%s), class (%s)"
-msgstr "Ambito de objeto: nombre (%s), clase (%s)"
+msgstr "Ámbito de objeto: nombre (%s), clase (%s)"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/uparser/kvi_uparser.cpp:161
msgid "Object scope: deleted object"
-msgstr "Ambito de objeto: objeto borrado"
+msgstr "Ámbito de objeto: objeto borrado"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/uparser/kvi_uparser.cpp:168
#, c-format
msgid "This pointer: name (%s), class (%s)"
-msgstr "Puntero this: nombre (%s), clase (%s)"
+msgstr "Éste puntero : nombre (%s), clase (%s)"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/uparser/kvi_uparser.cpp:171
msgid "This pointer: deleted object"
@@ -4332,8 +4292,7 @@ msgstr "Pila de llamadas interna:"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/uparser/kvi_uparser.cpp:198
#, c-format
-msgid ""
-" Current command stack depth: %d frames (stopping output at 25th frame)"
+msgid " Current command stack depth: %d frames (stopping output at 25th frame)"
msgstr ""
"Profundidad de la pila de comandos actual: %d cuadros (deteniendo la salida "
"en el marco 25)"
@@ -4414,8 +4373,7 @@ msgid "Say parse error: Broken command"
msgstr "Dice error del analizador: comando erroneo"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_coresimplecommands_sz.cpp:250
-msgid ""
-"Couldn't find a suitable IRC context for the connection, try using -n or -u"
+msgid "Couldn't find a suitable IRC context for the connection, try using -n or -u"
msgstr ""
"No puedo encontrar un contexto de IRC satisfactorio para la conexión, "
"inténtalo usando -n o -u"
@@ -4440,8 +4398,7 @@ msgstr "El menú emergente '%Q' no está definido"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_coresimplecommands_sz.cpp:604
msgid "No target channel specified and the current window is not a channel"
-msgstr ""
-"No se especificó un canal de destino y la ventana actual no es un canal"
+msgstr "No se especificó un canal de destino y la ventana actual no es un canal"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_coresimplecommands_sz.cpp:705
msgid "No catalogue %Q for the current language found"
@@ -4543,7 +4500,7 @@ msgstr ""
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_command.cpp:69
msgid "Stray dot ('.') character or invalid following module command name"
msgstr ""
-"Caracter punto ('.') sobrante o sigue un nombre de comando del módulo no "
+"Carácter punto ('.') sobrante o sigue un nombre de comando del módulo no "
"válido"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_command.cpp:70
@@ -4562,8 +4519,7 @@ msgstr "Error de sintaxis: identificador de alias mal formado"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_command.cpp:102
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_dollar.cpp:196
msgid "Stray ':' character: did you mean '...<namespace>::<alias_name>' ?"
-msgstr ""
-"Caracter ':' perdido: quería decir '...<namespace>::<nombre de alias>' ?"
+msgstr "Carácter ':' perdido: quería decir '...<namespace>::<nombre de alias>' ?"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_command.cpp:103
msgid "Syntax error: malformed (alias?) command identifier"
@@ -4662,8 +4618,7 @@ msgstr ""
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_treenode_modulefunctioncall.cpp:70
#, fuzzy
msgid "Module function call failed: can't load the module '%Q': %Q"
-msgstr ""
-"Falló la llamada a la función del módulo: no puedo cargar el módulo '%Q'"
+msgstr "Falló la llamada a la función del módulo: no puedo cargar el módulo '%Q'"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_treenode_modulefunctioncall.cpp:77
msgid ""
@@ -4709,7 +4664,7 @@ msgstr "El manejador de evento %Q es erroneo: deshabilitando"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_runtimecontext.cpp:110
#, c-format
msgid "line %d, near character %d"
-msgstr "línea %d, cerca del caracter %d"
+msgstr "línea %d, cerca del carácter %d"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser.cpp:109
msgid "beginning of input"
@@ -4720,7 +4675,7 @@ msgid ""
"Found character '%q' (unicode 0x%x) where '%c' was expected: see \"/help %s"
"\" for the command syntax"
msgstr ""
-"Encontrado el caracter '%q' (unicode 0x%x) donde se esperaba '%c': mira \"/"
+"Encontrado el carácter '%q' (unicode 0x%x) donde se esperaba '%c': mira \"/"
"help %s\" para la sintaxis de los comandos"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser.cpp:124
@@ -4729,7 +4684,7 @@ msgid ""
"Found end of input where character '%c' was expected: see \"/help %s\" for "
"the command syntax"
msgstr ""
-"Encontrado el final de la entrada donde se esperaba el caracter '%c': mira "
+"Encontrado el final de la entrada donde se esperaba el carácter '%c': mira "
"\"/help %s\" para la sintaxis del comando"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser.cpp:158
@@ -4761,7 +4716,7 @@ msgstr ""
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser.cpp:2244
msgid "Found character '%q' (unicode %x) where an instruction was expected"
msgstr ""
-"Se encontró el caracter '%q' (unicode %x) donde se esperaba una "
+"Se encontró el carácter '%q' (unicode %x) donde se esperaba una "
"instrucción"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser.cpp:2277
@@ -4770,8 +4725,7 @@ msgstr "Bloque de instrucciones sin terminar"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser.cpp:2278
msgid "Unexpected end of script in instruction block (missing closing brace)"
-msgstr ""
-"Fin de script inesperado en bloque de instrucciones (falta llave de cierre)"
+msgstr "Fin de script inesperado en bloque de instrucciones (falta llave de cierre)"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser.cpp:2355
msgid ""
@@ -4783,7 +4737,7 @@ msgstr ""
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser.cpp:2359
msgid "Unexpected character '%q' (unicode %x) after a switch dash"
-msgstr "Caracter inesperado '%q' (unicode %x) después de barra de cambio"
+msgstr "Carácter inesperado '%q' (unicode %x) después de barra de cambio"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser.cpp:2361
msgid "Unexpected end of script after a switch dash"
@@ -4812,12 +4766,12 @@ msgid ""
"Nested character %q corresponding to expected terminator, this might confuse "
"me a bit: it is a good idea to enclose it in quotes"
msgstr ""
-"Caracter anidado %q correspondiente al terminador esperado, esto puede "
+"Carácter anidado %q correspondiente al terminador esperado, esto puede "
"confundirme un poco: es una buena idea encerrarlo entre comillas"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser.cpp:2610
msgid "Skipping nested terminator character %q"
-msgstr "Saltando caracter terminador anidado %q"
+msgstr "Saltando carácter terminador anidado %q"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser.cpp:2637
msgid "Stray backslash at the end of the script"
@@ -4830,14 +4784,14 @@ msgstr "Clave hash sin terminar"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser.cpp:2904
msgid "Unexpected end of script in hash key (missing '}' character ?)"
-msgstr "Fin de script inesperado en clave hash (falta el caracter '}'?)"
+msgstr "Fin de script inesperado en clave hash (falta el carácter '}'?)"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser.cpp:2911
msgid ""
"Unexpected end of line in hash key (missing '}' character or unescaped "
"newline)"
msgstr ""
-"Fin de línea inesperado en clave hash (falta el caracter '}' o una nueva "
+"Fin de línea inesperado en clave hash (falta el carácter '}' o una nueva "
"línea sin escapar)"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser.cpp:3189
@@ -4847,15 +4801,14 @@ msgstr "Constante de cadena sin terminar"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser.cpp:3190
msgid "Unexpected end of script in string constant (missing \" character ?)"
-msgstr ""
-"Fin de script inesperado en constante de cadena (falta el caracter \"?)"
+msgstr "Fin de script inesperado en constante de cadena (falta el carácter \"?)"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser.cpp:3197
msgid ""
"Unexpected end of line in string constant (missing \" character or unescaped "
"newline)"
msgstr ""
-"Fin de línea inesperado en constante de cadena (falta el caracter \" o una "
+"Fin de línea inesperado en constante de cadena (falta el carácter \" o una "
"nueva línea sin escapar)"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_corefunctions_af.cpp:811
@@ -4884,7 +4837,7 @@ msgid ""
"Unexpected character %q (unicode %h) in expression. If it meant to be a "
"string use the quotes."
msgstr ""
-"Caracter inesperado %q (unicode %h) en expresión. Si pretende ser una "
+"Carácter inesperado %q (unicode %h) en expresión. Si pretende ser una "
"cadena debería estar entre comillas."
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_expression.cpp:466
@@ -4914,8 +4867,7 @@ msgstr "Error interno: se llamó al método virtual puro evaluateReadOnly"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_treenode_data.cpp:91
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_treenode_data.cpp:104
-msgid ""
-"Internal error: trying to evaluate as read-write a read-only data location"
+msgid "Internal error: trying to evaluate as read-write a read-only data location"
msgstr ""
"Error interno: intentando evaluar una posición de datos de solo lectura "
"como de lectura-escritura"
@@ -4928,13 +4880,11 @@ msgstr ""
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_processmanager.cpp:221
msgid "Error triggered from process callback handler: killing process"
-msgstr ""
-"Error lanzado desde el proceso de manejo de la callback: matando el proceso"
+msgstr "Error lanzado desde el proceso de manejo de la callback: matando el proceso"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_runtimecontext.cpp:187
msgid "This command can be used only in windows bound to an IRC context"
-msgstr ""
-"Este comando solo puede ser usado en ventanas asociadas a un contexto IRC"
+msgstr "Este comando solo puede ser usado en ventanas asociadas a un contexto IRC"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_runtimecontext.cpp:193
msgid "You're not connected to an IRC server"
@@ -4955,8 +4905,7 @@ msgstr "Llamada a un comando sin definir '%Q'"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_treenode_aliassimplecommand.cpp:115
msgid "Error in inner alias command call '%Q', called from this context"
-msgstr ""
-"Error en comando de llamada a alias interno '%Q', llamado desde este contexto"
+msgstr "Error en comando de llamada a alias interno '%Q', llamado desde este contexto"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_treenode_specialcommandclass.cpp:98
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_treenode_specialcommandclass.cpp:111
@@ -4965,7 +4914,7 @@ msgstr "Falta el nombre de clase"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_treenode_specialcommandclass.cpp:120
msgid "A class can't be a subclass of itself"
-msgstr ""
+msgstr "Una clase no puede ser una subclase de si misma"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_treenode_specialcommandclass.cpp:127
msgid "Couln't find base class named \"%Q\""
@@ -4997,8 +4946,7 @@ msgstr "La ventana especificada no es un canal"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_corefunctions_sz.cpp:264
msgid "Module function call failed: can't load the module 'str'"
-msgstr ""
-"Falló la llamada a la función del módulo: no puedo cargar el módulo 'str'"
+msgstr "Falló la llamada a la función del módulo: no puedo cargar el módulo 'str'"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_corefunctions_sz.cpp:271
msgid ""
@@ -5026,8 +4974,7 @@ msgstr ""
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_treenode_modulesimplecommand.cpp:70
#, fuzzy
msgid "Module command call failed: can't load the module '%Q': %Q"
-msgstr ""
-"Falló la llamada al comando del módulo: no puedo cargar el módulo '%Q'"
+msgstr "Falló la llamada al comando del módulo: no puedo cargar el módulo '%Q'"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_treenode_modulecallbackcommand.cpp:78
msgid ""
@@ -5044,7 +4991,7 @@ msgstr "Fin de script inesperado después del prefijo de llamada a función"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_dollar.cpp:53
msgid "Unexpected character %q (unicode %x) after '$' function call prefix"
msgstr ""
-"Caracter inesperado '%q' (unicode %x) después del prefijo de llamada a "
+"Carácter inesperado '%q' (unicode %x) después del prefijo de llamada a "
"función '$'"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_dollar.cpp:54
@@ -5068,8 +5015,7 @@ msgid "Empty instruction block for command evaluation"
msgstr "Bloque de instrucciones vacío para la evaluación del comando"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_dollar.cpp:101
-msgid ""
-"Parameter identifiers are forbidden in object scope (after the '->' operator)"
+msgid "Parameter identifiers are forbidden in object scope (after the '->' operator)"
msgstr ""
"Los identificadores de los parámetros están prohibidos en el ámbito del "
"objeto (después del operador '->')"
@@ -5104,8 +5050,7 @@ msgid "Array index didn't evaluate to an integer"
msgstr "Indice de un vector no puede evaluarse como un entero"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_treenode_arrayelement.cpp:79
-msgid ""
-"Array index evaluated to a negative integer (non negative integer expected)"
+msgid "Array index evaluated to a negative integer (non negative integer expected)"
msgstr ""
"Indice del vector evaluado como un entero negativo (se esperaba un entero no "
"negativo"
@@ -5151,7 +5096,7 @@ msgid ""
"Unexpected character '%q' (unicode %x) after a slash (it is a typo or a "
"malformed comment begin ?)"
msgstr ""
-"Caracter inesperado '%q' (unicode %x) después de la barra (es un error o "
+"Carácter inesperado '%q' (unicode %x) después de la barra (es un error o "
"un comienzo de comentario mal puesto?)"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_treenode_specialcommanddefpopup.cpp:401
@@ -5313,13 +5258,11 @@ msgstr "No hay manejador '%Q' para el evento '%Q'"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_corecallbackcommands.cpp:936
msgid "The specified ping time is invalid: assuming zero (no ping)"
-msgstr ""
-"El tiempo especificado para ping no es válido: asumiendo cero (sin ping)"
+msgstr "El tiempo especificado para ping no es válido: asumiendo cero (sin ping)"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_corecallbackcommands.cpp:946
msgid "The specified maximum run time is invalid: assuming zero (infinite)"
-msgstr ""
-"El tiempo máximo de ejecución no es válido: asumiendo cero (infinito)"
+msgstr "El tiempo máximo de ejecución no es válido: asumiendo cero (infinito)"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_corecallbackcommands.cpp:965
msgid "Failed to start the process"
@@ -5346,15 +5289,13 @@ msgid "Unable to add the timer: insufficient system resources"
msgstr "Imposible añadir el cronómetro: recursos del sistema insuficientes"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_treenode_scopeoperator.cpp:94
-msgid ""
-"The left side of the scope operator didn't evaluate as an object reference"
+msgid "The left side of the scope operator didn't evaluate as an object reference"
msgstr ""
"El lado izquierdo del operador de ámbito no se evalua como una referencia a "
"un objeto"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_treenode_scopeoperator.cpp:100
-msgid ""
-"The left side of the scope operator evaluated to a null object reference"
+msgid "The left side of the scope operator evaluated to a null object reference"
msgstr ""
"El lado izquierdo del operador de ámbito se evaluó como una referencia a "
"un objeto nulo"
@@ -5376,8 +5317,7 @@ msgstr ""
"Q' desde el objeto '%Q::%Q': desconectando"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_object.cpp:866
-msgid ""
-"Slot target object destroyed while emitting signal '%Q' from object '%Q::%Q'"
+msgid "Slot target object destroyed while emitting signal '%Q' from object '%Q::%Q'"
msgstr ""
"Slot del objeto destino destruido mientras se emitía la señal '%Q' desde "
"el objeto '%Q::%Q': desconectando"
@@ -5411,8 +5351,7 @@ msgstr "El objeto llamado \"%Q\" de clase %Q no tiene propiedades Qt"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_object.cpp:1096
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_object.cpp:1314
msgid "No Qt property named \"%Q\" for object named \"%Q\" of class %Q"
-msgstr ""
-"No hay una propiedad Qt \"%Q\" para el objeto llamado \"%Q\" de clase %Q"
+msgstr "No hay una propiedad Qt \"%Q\" para el objeto llamado \"%Q\" de clase %Q"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_object.cpp:1102
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_object.cpp:1322
@@ -5488,8 +5427,7 @@ msgstr ""
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_lside.cpp:849
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_lside.cpp:872
msgid "Found character '%q' (unicode %x) where a slash '/' was expected"
-msgstr ""
-"Se encontró el caracter '%q' (unicode %x) donde se esperaba una barra '/'"
+msgstr "Se encontró el carácter '%q' (unicode %x) donde se esperaba una barra '/'"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_lside.cpp:842
msgid ""
@@ -5500,8 +5438,7 @@ msgstr ""
"barras (/)"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_lside.cpp:865
-msgid ""
-"Unexpected end of command in binding operation, at least one slash is missing"
+msgid "Unexpected end of command in binding operation, at least one slash is missing"
msgstr ""
"Fin de comando inesperado en operación de asociación, falta al menos una "
"barra (/)"
@@ -5512,8 +5449,7 @@ msgstr "Operación de asociación desconocida '%Q'"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_lside.cpp:926
msgid "Missing right side operand for the binding operator '=~'"
-msgstr ""
-"Falta la parte derecha del operando para el operador de asociación '=~'"
+msgstr "Falta la parte derecha del operando para el operador de asociación '=~'"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_lside.cpp:948
msgid "Trailing garbage ignored after operator '++'"
@@ -5596,12 +5532,12 @@ msgid ""
"Unexpected character '%q' (unicode %x) after a void function call: end of "
"instruction expected"
msgstr ""
-"Caracter inesperado '%q' (unicode %x) después de una llamada vacía a "
+"Carácter inesperado '%q' (unicode %x) después de una llamada vacía a "
"función: se esperaba fin de la instrucción"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_lside.cpp:1179
msgid "Unexpected character '%q' (unicode %x)"
-msgstr "Caracter inesperado '%q' (unicode %x)"
+msgstr "Carácter inesperado '%q' (unicode %x)"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_coresimplecommands_af.cpp:249
msgid "Invalid pitch value: using default"
@@ -5625,13 +5561,11 @@ msgid "Can't delete an inexisting object"
msgstr "No puedo borrar un objeto inexistente"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_coresimplecommands_af.cpp:637
-#, fuzzy
msgid "Inexisting popup \"%Q\""
-msgstr "Men emergente \"%s\" inexistente"
+msgstr "Menú emergente \"%s\" inexistente"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_coresimplecommands_af.cpp:643
-msgid ""
-"Popup menu self-modification is not allowed (the popup is probably open)"
+msgid "Popup menu self-modification is not allowed (the popup is probably open)"
msgstr ""
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_coresimplecommands_af.cpp:650
@@ -5648,10 +5582,8 @@ msgstr ""
"valor por defecto"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_coresimplecommands_af.cpp:814
-msgid ""
-"The argument of the i switch did not evaluate to a number: using default"
-msgstr ""
-"El argumento del indicador i no evala a un número: usando valor por defecto"
+msgid "The argument of the i switch did not evaluate to a number: using default"
+msgstr "El argumento del indicador i no evala a un número: usando valor por defecto"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_coresimplecommands_af.cpp:926
msgid "Invalid color-set specification, using default"
@@ -5753,10 +5685,8 @@ msgstr "No hay variables de ámbito extendido en este ámbito"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_specialcommands.cpp:99
#, fuzzy
-msgid ""
-"Unexpected end of command buffer while looking for the \"perl.end\" statement"
-msgstr ""
-"Fin de buffer inesperado mientras se buscaba el caracter ')' del 'for'"
+msgid "Unexpected end of command buffer while looking for the \"perl.end\" statement"
+msgstr "Fin de buffer inesperado mientras se buscaba el carácter ')' del 'for'"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_specialcommands.cpp:147
msgid "Trailing garbage at the end of the break command: ignored"
@@ -5769,8 +5699,7 @@ msgstr "El comando 'unset' necesita una lista de variables"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_specialcommands.cpp:210
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_specialcommands.cpp:284
msgid "Found character %q (unicode %x) where a variable was expected"
-msgstr ""
-"Encontrado el caracter '%q' (unicode %x) donde se esperaba una variable"
+msgstr "Encontrado el carácter '%q' (unicode %x) donde se esperaba una variable"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_specialcommands.cpp:219
msgid "'unset' command used without a variable list"
@@ -5783,7 +5712,7 @@ msgstr "El comando 'global' necesita una lista de variables"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_specialcommands.cpp:383
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_specialcommands.cpp:635
msgid "Found character %q (unicode %x) where an open parenthesis was expected"
-msgstr "Encontrado el caracter '%q' (unicode %x) donde se esperaba un '('"
+msgstr "Encontrado el carácter '%q' (unicode %x) donde se esperaba un '('"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_specialcommands.cpp:443
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_specialcommands.cpp:471
@@ -5797,7 +5726,7 @@ msgstr "Fin de buffer inesperado en definición de clase"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_specialcommands.cpp:505
msgid "Found character %q (unicode %x) where a function name was expected"
msgstr ""
-"Se encontró el caracter '%q' (unicode %x) donde se esperaba un nombre de "
+"Se encontró el carácter '%q' (unicode %x) donde se esperaba un nombre de "
"función"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_specialcommands.cpp:526
@@ -5837,7 +5766,7 @@ msgstr ""
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_specialcommands.cpp:747
msgid "Found character %q (unicode %x) where a 'while' keyword was expected"
msgstr ""
-"Encontrado el caracter %q (unicode %x) donde se esperaba la palabra clave "
+"Encontrado el carácter %q (unicode %x) donde se esperaba la palabra clave "
"'while'"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_specialcommands.cpp:763
@@ -5878,8 +5807,7 @@ msgstr ""
msgid ""
"Unexpected end of buffer while looking for the closing ')' in the 'for' "
"command"
-msgstr ""
-"Fin de buffer inesperado mientras se buscaba el caracter ')' del 'for'"
+msgstr "Fin de buffer inesperado mientras se buscaba el carácter ')' del 'for'"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_specialcommands.cpp:1019
#, fuzzy
@@ -5891,7 +5819,7 @@ msgid ""
"Found char %q (unicode %x) while looking for the terminating ')' in 'for' "
"command"
msgstr ""
-"Se encontró el caracter %q (unicode %x) mientras se buscaba el terminador "
+"Se encontró el carácter %q (unicode %x) mientras se buscaba el terminador "
"')' para el 'for'"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_specialcommands.cpp:1126
@@ -5901,8 +5829,7 @@ msgstr "Bucle 'for' infinito: arregla el script"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_specialcommands.cpp:1185
#, fuzzy
msgid "The 'foreach' command needs an expression enclosed in parenthesis"
-msgstr ""
-"El comando 'foreach' necesita una expresión encerrada entre paréntesis"
+msgstr "El comando 'foreach' necesita una expresión encerrada entre paréntesis"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_specialcommands.cpp:1199
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_specialcommands.cpp:1209
@@ -5918,7 +5845,7 @@ msgid ""
"Found character '%q' (unicode %x) where '%' or '$' was expected: see /help "
"foreach for the command syntax"
msgstr ""
-"Encontrado caracter '%q' (unicode %x) donde se esperaba '%' o '$': "
+"Encontrado carácter '%q' (unicode %x) donde se esperaba '%' o '$': "
"consulta /help foreach para ver la sintaxis del comando"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_specialcommands.cpp:1211
@@ -5927,8 +5854,7 @@ msgstr "Llamada inesperada a función como variable de iteración 'foreach'"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_specialcommands.cpp:1213
msgid "Unexpected read-only variable as 'foreach' iteration variable"
-msgstr ""
-"Variable de solo lectura inesperada como variable de iteración 'foreach'"
+msgstr "Variable de solo lectura inesperada como variable de iteración 'foreach'"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_specialcommands.cpp:1223
msgid ""
@@ -5948,15 +5874,13 @@ msgstr ""
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_specialcommands.cpp:1248
#, fuzzy
-msgid ""
-"Found empty 'foreach' execution block: maybe you need to fix your script ?"
+msgid "Found empty 'foreach' execution block: maybe you need to fix your script ?"
msgstr "Bloque de ejecución vacío para 'foreach': arregla el script"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_specialcommands.cpp:1369
#, fuzzy
msgid "The 'switch' command needs an expression enclosed in parenthesis"
-msgstr ""
-"El comando 'switch' necesita una expresión encerrada entre paréntesis"
+msgstr "El comando 'switch' necesita una expresión encerrada entre paréntesis"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_specialcommands.cpp:1419
msgid "Unexpected end of buffer in switch condition block"
@@ -5967,7 +5891,7 @@ msgid ""
"Found character %q (unicode %x) where a 'case','match','regexp','default' or "
"'break' label was expected"
msgstr ""
-"Encontrado caracter %q (unicode %x) donde se esperaba un 'case', 'regexp', "
+"Encontrado carácter %q (unicode %x) donde se esperaba un 'case', 'regexp', "
"'default' o 'break'"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_specialcommands.cpp:1464
@@ -6000,7 +5924,7 @@ msgid ""
"'prologue','separator','label','popup','item','extpopup' or 'epilogue' label "
"was expected"
msgstr ""
-"Encontrado caracter %q (unicode %x) donde se esperaba una etiqueta "
+"Encontrado carácter %q (unicode %x) donde se esperaba una etiqueta "
"'prologue', 'separator', 'label', 'popup', 'item', 'extpopup' o 'epilogue'"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_specialcommands.cpp:1672
@@ -6033,8 +5957,7 @@ msgstr ""
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_specialcommands.cpp:1781
#, fuzzy
-msgid ""
-"Found empty instruction for popup item: maybe you need to fix the script?"
+msgid "Found empty instruction for popup item: maybe you need to fix the script?"
msgstr "Instrucción vacía para elemento de popup: arregla el script"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_specialcommands.cpp:1813
@@ -6057,8 +5980,7 @@ msgstr ""
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_parser_specialcommands.cpp:1935
#, fuzzy
msgid "The 'defpopup' command needs an expression enclosed in parenthesis"
-msgstr ""
-"El comando 'defpopup' necesita una expresión encerrada entre paréntesis"
+msgstr "El comando 'defpopup' necesita una expresión encerrada entre paréntesis"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kvs/kvi_kvs_treenode_modulesimplecommand.cpp:77
msgid ""
@@ -6092,8 +6014,7 @@ msgstr "Recibido un mensaje JOIN de un canal desconocido, posible desync?"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/sparser/kvi_sp_literal.cpp:323
#, fuzzy
-msgid ""
-"\r!n\r%Q\r [%Q@\r!h\r%Q\r] has joined \r!c\r%Q\r [implicit +%c umode change]"
+msgid "\r!n\r%Q\r [%Q@\r!h\r%Q\r] has joined \r!c\r%Q\r [implicit +%c umode change]"
msgstr ""
"\r!n\r%Q\r [%Q@\r!h\r%Q\r] se ha unido a \r!c\r%Q\r [cambio de modo-u "
"implícito +%c]"
@@ -6150,8 +6071,7 @@ msgstr "\r!n\r%Q\r [%Q@\r!h\r%Q\r] se ha marchado del IRC: %Q"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/sparser/kvi_sp_literal.cpp:607
msgid "Received a kick message for an unknown channel, possible desync"
-msgstr ""
-"Recibido un mensaje de expulsión de un canal desconocido, posible desync?"
+msgstr "Recibido un mensaje de expulsión de un canal desconocido, posible desync?"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/sparser/kvi_sp_literal.cpp:634
#: /home/alexey/kvirccvs/kvirc/src/kvirc/sparser/kvi_sp_literal.cpp:644
@@ -6193,8 +6113,7 @@ msgid "Ignoring PRIVMSG from \r!nc\r%Q\r [%Q@\r!h\r%Q\r]: %Q"
msgstr "Ignorando PRIVMSG de \r!n\r%Q\r [%Q@\r!h\r%Q\r]: %Q"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/sparser/kvi_sp_literal.cpp:861
-msgid ""
-"Spam privmsg from \r!n\r%Q\r [%Q@\r!h\r%Q\r]: %Q (matching spamword \"%s\")"
+msgid "Spam privmsg from \r!n\r%Q\r [%Q@\r!h\r%Q\r]: %Q (matching spamword \"%s\")"
msgstr ""
"PRIVMSG spam de \r!n\r%Q\r [%Q@\r!h\r%Q\r]: %Q (palabra-spam coincidente \"%s"
"\")"
@@ -6218,8 +6137,7 @@ msgstr ""
"favor cambia la configuración"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/sparser/kvi_sp_literal.cpp:1216
-msgid ""
-"Spam notice from \r!n\r%Q\r [%Q@\r!h\r%Q\r]: %Q (matching spamword \"%Q\")"
+msgid "Spam notice from \r!n\r%Q\r [%Q@\r!h\r%Q\r]: %Q (matching spamword \"%Q\")"
msgstr ""
"Noticia spam de \r!n\r%Q\r [%Q@\r!h\r%Q\r]: %Q (palabra-spam coincidente \"%Q"
"\")"
@@ -6329,8 +6247,7 @@ msgid "%Q [%Q@%Q] has set channel mode %s"
msgstr "%Q [%Q@%Q] ha puesto el modo de canal %s"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/sparser/kvi_sparser.cpp:106
-msgid ""
-"[Server parser]: Encountered problems while parsing the following message:"
+msgid "[Server parser]: Encountered problems while parsing the following message:"
msgstr ""
"[Parser de Servidor]: Se encontraron problemas mientras se analizaba el "
"siguiente mensaje:"
@@ -6420,8 +6337,7 @@ msgstr "CTCP ACTION de \r!n\r%Q\r [%Q@\r!h\r%Q\r]: %Q"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/sparser/kvi_sp_ctcp.cpp:1457
msgid "Unable to add file offer for file %Q (File not readable?)"
-msgstr ""
-"No puedo añadir un ofrecimiento de archivo para %Q (Archivo no legible?)"
+msgstr "No puedo añadir un ofrecimiento de archivo para %Q (Archivo no legible?)"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/sparser/kvi_sp_ctcp.cpp:1461
msgid "Added %d sec file offer for file %Q (%Q) to recipient %Q"
@@ -6470,8 +6386,7 @@ msgstr ""
"GET %s)"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/sparser/kvi_sp_ctcp.cpp:1591
-msgid ""
-": No valid local copy of avatar available; flood limit exceeded, ignoring"
+msgid ": No valid local copy of avatar available; flood limit exceeded, ignoring"
msgstr ""
": No hay disponible una copia local válida avatar; límite de saturación "
"excedido: ignorando"
@@ -6482,8 +6397,7 @@ msgstr ": No hay disponible una copia local válida del avatar, ignorando"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/sparser/kvi_sp_ctcp.cpp:1604
msgid ": No such nickname in the user database, ignoring the change"
-msgstr ""
-": No existe tal nick en la base de datos de usuarios, ignorando el cambio"
+msgstr ": No existe tal nick en la base de datos de usuarios, ignorando el cambio"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/sparser/kvi_sp_ctcp.cpp:1642
#, fuzzy
@@ -6500,13 +6414,11 @@ msgstr ""
#: /home/alexey/kvirccvs/kvirc/src/kvirc/sparser/kvi_sp_ctcp.cpp:1681
#, c-format
msgid "Unable to process the above request: Cannot load DCC module (%s)"
-msgstr ""
-"Incapaz de procesar la petición anterior: no pude cargar el módulo DCC (%s)"
+msgstr "Incapaz de procesar la petición anterior: no pude cargar el módulo DCC (%s)"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/sparser/kvi_sp_ctcp.cpp:1687
msgid "Unable to process the above request: DCC module may be broken"
-msgstr ""
-"Incapaz de procesar la petición anterior: el módulo DCC puede estar roto"
+msgstr "Incapaz de procesar la petición anterior: el módulo DCC puede estar roto"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/sparser/kvi_sp_numeric.cpp:112
msgid "Channel operators"
@@ -6875,8 +6787,7 @@ msgstr ""
#: /home/alexey/kvirccvs/kvirc/src/kvirc/sparser/kvi_sp_numeric.cpp:910
msgid "No way to login as '\r!n\r%Q\r' (%d: %Q), trying '%Q'..."
-msgstr ""
-"No hay forma de autentificarse como '\r!n\r%Q\r' (%d: %Q), intentando '%Q'..."
+msgstr "No hay forma de autentificarse como '\r!n\r%Q\r' (%d: %Q), intentando '%Q'..."
#: /home/alexey/kvirccvs/kvirc/src/kvirc/sparser/kvi_sp_numeric.cpp:1052
msgid "%c\r!n\r%Q\r%c is away: %Q"
@@ -6904,8 +6815,7 @@ msgstr "%c\r!n\r%Q\r%c's canales: %Q"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/sparser/kvi_sp_numeric.cpp:1223
msgid "Received a broken RPL_WHOISIDLE, can't evaluate the idle time"
-msgstr ""
-"Recibido un RPL_WHOISIDLE erroneo, no puedo calcular el tiempo de espera"
+msgstr "Recibido un RPL_WHOISIDLE erroneo, no puedo calcular el tiempo de espera"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/sparser/kvi_sp_numeric.cpp:1233
msgid "%c\r!n\r%Q\r%c's idle time: %ud %uh %um %us"
@@ -7177,8 +7087,7 @@ msgstr ""
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_ircconnectiontargetresolver.cpp:479
#, c-format
msgid "The system-wide IPv6 bind address (%s) is not valid"
-msgstr ""
-"La dirección general de sistema de enlace (bind) IPv6 (%s) no es válida"
+msgstr "La dirección general de sistema de enlace (bind) IPv6 (%s) no es válida"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_ircconnectiontargetresolver.cpp:486
#, c-format
@@ -7192,8 +7101,7 @@ msgstr ""
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_ircconnectiontargetresolver.cpp:508
#, c-format
msgid "The system-wide IPv4 bind address (%s) is not valid"
-msgstr ""
-"La dirección general de sistema de enlace (bind) IPv4 (%s) no es válida"
+msgstr "La dirección general de sistema de enlace (bind) IPv4 (%s) no es válida"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_ircconnectiontargetresolver.cpp:515
#, c-format
@@ -7226,8 +7134,7 @@ msgstr "Configurar Usuarios Registrados..."
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_coreactions.cpp:140
msgid "Shows a dialog that allows editing the registered user entries"
-msgstr ""
-"Muestra un diálogo que permite editar las entradas de usuarios registrados"
+msgstr "Muestra un diálogo que permite editar las entradas de usuarios registrados"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_coreactions.cpp:150
msgid "Configure Identity..."
@@ -7438,16 +7345,14 @@ msgstr "Muestra una pequeña ventana con las informaciones de contexto de IRC"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_coreactions.cpp:492
msgid "Acts as a separator for other items: performs no action"
-msgstr ""
-"Actua como un separador para otros elementos: no realiza ninguna acción"
+msgstr "Actua como un separador para otros elementos: no realiza ninguna acción"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_coreactions.cpp:523
msgid "Connect/Disconnect"
msgstr "Conectar/Desconectar"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_coreactions.cpp:524
-msgid ""
-"Allows you to connect to a server or to terminate the current connection"
+msgid "Allows you to connect to a server or to terminate the current connection"
msgstr "Permite conectarse a un servidor o finalizar la conexión actual"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_coreactions.cpp:597
@@ -7496,8 +7401,7 @@ msgstr "Conectar a"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_coreactions.cpp:844
msgid "Shows a popup menu that allows quickly connecting to a server"
-msgstr ""
-"Muestra un menú emergente que permite conectarse rápidamente a un servidor"
+msgstr "Muestra un menú emergente que permite conectarse rápidamente a un servidor"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_coreactions.cpp:889
msgid "User Mode"
@@ -7555,8 +7459,7 @@ msgstr "Muestra un menú emergente con algunas acciones IRC"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_ircconnection.cpp:152
msgid "Failed to set the encoding to %Q: mapping not available."
-msgstr ""
-"Falló la configuración para la codificación a %Q: mapeo no disponible."
+msgstr "Falló la configuración para la codificación a %Q: mapeo no disponible."
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_ircconnection.cpp:161
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_ircconnection.cpp:169
@@ -7578,8 +7481,7 @@ msgid "[LINK WARNING]: Socket message truncated to 512 bytes."
msgstr "[Alerta de enlace]: Mensaje de socket truncado a 512 bytes."
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_ircconnection.cpp:611
-msgid ""
-"The server seems to support the WATCH notify list method, will try to use it"
+msgid "The server seems to support the WATCH notify list method, will try to use it"
msgstr ""
"Este servidor parece soportar el método de lista de notificación WATCH, "
"intentaré usarlo."
@@ -7602,8 +7504,7 @@ msgstr "La dirección local de la máquina es %Q"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_ircconnection.cpp:720
msgid "The server seems to have changed the idea about the local hostname"
-msgstr ""
-"El servidor parece haber cambiado de idea acerca del nombre de máquina local"
+msgstr "El servidor parece haber cambiado de idea acerca del nombre de máquina local"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_ircconnection.cpp:721
msgid ""
@@ -7639,8 +7540,7 @@ msgstr ""
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_ircconnection.cpp:793
msgid "Looking up the local hostname as seen by the IRC server (%Q)"
-msgstr ""
-"Buscando el nombre de máquina local tal y como lo ve el servidor IRC (%Q)"
+msgstr "Buscando el nombre de máquina local tal y como lo ve el servidor IRC (%Q)"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_ircconnection.cpp:814
#, fuzzy
@@ -7691,13 +7591,11 @@ msgstr "Enviando %s como clave"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_ircconnection.cpp:976
msgid "Executing scheduled network specific \"on connect\" commands"
-msgstr ""
-"Ejecutando los comandos específicos de la red programados \"al conectar\""
+msgstr "Ejecutando los comandos específicos de la red programados \"al conectar\""
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_ircconnection.cpp:985
msgid "Executing scheduled server specific \"on connect\" commands"
-msgstr ""
-"Ejecutando los comandos específicos de servidor programados \"al conectar\""
+msgstr "Ejecutando los comandos específicos de servidor programados \"al conectar\""
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_ircconnection.cpp:1029
#, c-format
@@ -7710,13 +7608,11 @@ msgstr "Operaciones de entrada completas, feliz irc!"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_ircconnection.cpp:1051
msgid "Executing scheduled network specific \"on login\" commands"
-msgstr ""
-"Ejecutando los comandos específicos de la red programados \"al entrar\""
+msgstr "Ejecutando los comandos específicos de la red programados \"al entrar\""
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_ircconnection.cpp:1060
msgid "Executing scheduled server specific \"on login\" commands"
-msgstr ""
-"Ejecutando los comandos específicos de servidor programados \"al entrar\""
+msgstr "Ejecutando los comandos específicos de servidor programados \"al entrar\""
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_ircconnection.cpp:1072
msgid "Setting configured user mode"
@@ -8421,8 +8317,7 @@ msgstr ""
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_notifylist.cpp:684
msgid "registration mask changed, or nickname is being used by someone else"
-msgstr ""
-"cambió la máscara de registro o el nick está siendo usado por alguien"
+msgstr "cambió la máscara de registro o el nick está siendo usado por alguien"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_notifylist.cpp:688
msgid ""
@@ -8698,8 +8593,7 @@ msgstr "[%s]: [SSL]: Usando archivo de certificado %s"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_sslmaster.cpp:116
#, c-format
-msgid ""
-"[%s]: [SSL ERROR]: File I/O error while trying to use the certificate file %s"
+msgid "[%s]: [SSL ERROR]: File I/O error while trying to use the certificate file %s"
msgstr ""
"[%s]: [ERROR SSL]: Error de E/S de archivo mientras intentaba utilizar el "
"archivo de certificado %s"
@@ -8717,8 +8611,7 @@ msgstr "[%s]: [SSL]: Usando archivo de clave privada %s"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_sslmaster.cpp:139
#, c-format
-msgid ""
-"[%s]: [SSL ERROR]: File I/O error while trying to use the private key file %s"
+msgid "[%s]: [SSL ERROR]: File I/O error while trying to use the private key file %s"
msgstr ""
"[%s]: [ERROR SSL]: error de E/S en archivo mientras intentaba usar el "
"archivo de clave privada %s"
@@ -8733,8 +8626,7 @@ msgstr "Usando protocolo IRC filtrado: El filtro de enlace es \"%Q\""
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_irclink.cpp:133
msgid "Failed to set up the link filter \"%Q\", will try with plain IRC"
-msgstr ""
-"Falló el inicio del filtro de enlace \"%Q\", se intentará con IRC plano"
+msgstr "Falló el inicio del filtro de enlace \"%Q\", se intentará con IRC plano"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_irclink.cpp:195
msgid "Failed to start the connection: %Q"
@@ -8788,8 +8680,7 @@ msgstr "Enviados los datos de la máquina de destino, esperando confirmación"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_irclink.cpp:378
msgid "Sent auth method request, waiting for acknowledgement"
-msgstr ""
-"Enviado petición de método de autentificación, esperando la confirmación"
+msgstr "Enviado petición de método de autentificación, esperando la confirmación"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_irclink.cpp:381
msgid "Sent username and password, waiting for acknowledgement"
@@ -8797,8 +8688,7 @@ msgstr "Enviados usuario y clave, esperando la confirmación"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_irclink.cpp:384
msgid "Sent connection request, waiting for \"HTTP 200\" acknowledgement"
-msgstr ""
-"Enviada petición de conexión, esperando para la confirmación \"HTTP 200\""
+msgstr "Enviada petición de conexión, esperando para la confirmación \"HTTP 200\""
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_ircsocket.cpp:176
msgid "[SSL]: %Q"
@@ -8903,8 +8793,7 @@ msgstr "Incapaz de determinar el cifrador actual"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_ircsocket.cpp:1736
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_ircsocket.cpp:1756
msgid "Partial socket write: packet broken into smaller pieces."
-msgstr ""
-"Escritura parcial en socket: paquete dividido en trozos más pequeños."
+msgstr "Escritura parcial en socket: paquete dividido en trozos más pequeños."
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_app.cpp:734
msgid "Installation problems ?"
@@ -9000,8 +8889,7 @@ msgstr ""
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_app.cpp:1952
#, c-format
msgid "No idea on how to play file %s (no media type match)"
-msgstr ""
-"No se como reproducir el archivo %s (no hay concordancia en el tipo de medio)"
+msgstr "No se como reproducir el archivo %s (no hay concordancia en el tipo de medio)"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_lagmeter.cpp:155
msgid "Sending out PING based lag probe"
@@ -9096,8 +8984,7 @@ msgstr ""
"del servidor global"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/kernel/kvi_irccontext.cpp:479
-msgid ""
-"No servers available. Check the options dialog or use the /SERVER command"
+msgid "No servers available. Check the options dialog or use the /SERVER command"
msgstr ""
"No hay servidores disponibles. Compruebe el diálogo de opciones o utilice "
"el comando /SERVER"
@@ -9191,8 +9078,7 @@ msgstr ""
"carga"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/module/kvi_modulemanager.cpp:201
-msgid ""
-"This module was compiled for a different KVIrc version and can't be loaded"
+msgid "This module was compiled for a different KVIrc version and can't be loaded"
msgstr ""
"Este módulo fue compilado para una versión diferente de KVIrc y no se "
"cargará"
@@ -9768,8 +9654,7 @@ msgid "Unable to look it up hostname: Unknown host"
msgstr "Incapaz de extraer el nombre de máquina: máquina desconocida"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/ui/kvi_ircview.cpp:4764
-msgid ""
-"Double-click to look up this hostname<br>Right-click to view other options"
+msgid "Double-click to look up this hostname<br>Right-click to view other options"
msgstr ""
"Haga doble click para buscar esta máquina<br>Click derecho para ver otras "
"opciones"
@@ -9784,8 +9669,7 @@ msgstr "Servidor desconocido<br>"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/ui/kvi_ircview.cpp:4790
msgid "Double-click to read the MOTD<br>Right-click to view other options"
-msgstr ""
-"Doble click para leer el MOTD<br>Botón derecho para ver otras opciones"
+msgstr "Doble click para leer el MOTD<br>Botón derecho para ver otras opciones"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/ui/kvi_ircview.cpp:4803
msgid "Double-click to set<br>"
@@ -10240,8 +10124,7 @@ msgstr ""
#: /home/alexey/kvirccvs/kvirc/src/kvirc/ui/kvi_console.cpp:931
msgid "Failed to load avatar with name \"%Q\" and local path \"%Q\""
-msgstr ""
-"Falló la carga del avatar con nombre \"%Q\" y trayectoria local \"%Q\""
+msgstr "Falló la carga del avatar con nombre \"%Q\" y trayectoria local \"%Q\""
#: /home/alexey/kvirccvs/kvirc/src/kvirc/ui/kvi_console.cpp:1091
msgid "channel"
@@ -10468,8 +10351,7 @@ msgid "Crypt: Can't initialize the engine :%s"
msgstr "Cifrado: No puedo inicializar el motor :%s"
#: /home/alexey/kvirccvs/kvirc/src/kvirc/ui/kvi_cryptcontroller.cpp:294
-msgid ""
-"Crypt: You have to enable encryption and/or decryption for the engine to work"
+msgid "Crypt: You have to enable encryption and/or decryption for the engine to work"
msgstr ""
"Cifrado: Tienes que activar el cifrado y/o descifrado para que el motor "
"funcione"
@@ -10726,7 +10608,7 @@ msgstr "Subexpresión inacabada (Los paréntesis no concuerdan)"
#: /home/alexey/kvirccvs/kvirc/src/kvilib/core/kvi_error.cpp:66
msgid "Unexpected character"
-msgstr "Caracter inesperado"
+msgstr "Carácter inesperado"
#: /home/alexey/kvirccvs/kvirc/src/kvilib/core/kvi_error.cpp:68
msgid "No host to resolve"
@@ -11014,8 +10896,7 @@ msgstr "Falta nombre de menú emergente"
#: /home/alexey/kvirccvs/kvirc/src/kvilib/core/kvi_error.cpp:142
msgid "'item', 'popup', 'label' or 'separator' keyword expected"
-msgstr ""
-"se esperaba una palabra clave de entre 'item', 'popup', 'label' o 'separator'"
+msgstr "se esperaba una palabra clave de entre 'item', 'popup', 'label' o 'separator'"
#: /home/alexey/kvirccvs/kvirc/src/kvilib/core/kvi_error.cpp:143
msgid "Self modification not allowed"
@@ -11091,7 +10972,7 @@ msgstr "Error SSL"
#: /home/alexey/kvirccvs/kvirc/src/kvilib/core/kvi_error.cpp:161
msgid "Slash (/) character expected"
-msgstr "Se esperaba un caracter barra (/)"
+msgstr "Se esperaba un carácter barra (/)"
#: /home/alexey/kvirccvs/kvirc/src/kvilib/core/kvi_error.cpp:162
msgid "Unknown string manipulation operation"
@@ -11443,8 +11324,7 @@ msgstr "Sin petición"
#: /home/alexey/kvirccvs/kvirc/src/kvilib/net/kvi_http.cpp:133
msgid "No filename specified for the \"StoreToFile\" processing type"
-msgstr ""
-"No se especificó nombre de archivo para el tipo de procesado \"StoreToFile\""
+msgstr "No se especificó nombre de archivo para el tipo de procesado \"StoreToFile\""
#: /home/alexey/kvirccvs/kvirc/src/kvilib/net/kvi_http.cpp:152
msgid "Invalid URL: Missing hostname"
@@ -12193,3142 +12073,3 @@ msgstr ""
msgid "@THEMEDESCRIPTION@"
msgstr ""
-#, fuzzy
-#~ msgid "My Custom Servers"
-#~ msgstr "Copiar Servidor"
-
-#~ msgid "orphan_servers"
-#~ msgstr "servidores_huérfanos"
-
-#~ msgid "Topic for \r!c\r%Q\r was set by \r!n\r%Q\r!%Q@\r!h\r%Q\r"
-#~ msgstr "El tema para \r!c\r%Q\r fue puesto por \r!n\r%Q\r!%Q@\r!h\r%Q\r"
-
-#~ msgid "\" ...that looks like an error to me..."
-#~ msgstr "\" ...eso me parece un error..."
-
-#~ msgid "Search keywords"
-#~ msgstr "Buscar palabras clave"
-
-#~ msgid "File download terminated"
-#~ msgstr "Terminó la descarga del archivo"
-
-#~ msgid "File download from %1 terminated"
-#~ msgstr "Terminó la descarga del archivo desde %1"
-
-#~ msgid "Choose..."
-#~ msgstr "Escoger..."
-
-#~ msgid "Failed to find one of the wrap path widgets (%s::%s)"
-#~ msgstr ""
-#~ "No se encontró una de las trayectorias de envoltura al widget (%s::%s)"
-
-#~ msgid "Invalid width parameter"
-#~ msgstr "Valor de anchura no válido"
-
-#~ msgid "Invalid height parameter"
-#~ msgstr "Valor de altura no válido"
-
-#~ msgid "The parameters do not define a rectangle"
-#~ msgstr "Los parámetros no definen un rectángulo"
-
-#~ msgid "The parameters do not define a point"
-#~ msgstr "Los parámetros no definen un punto"
-
-#~ msgid "The parameters are do not define a valid size"
-#~ msgstr "Los parámetros no definen un tamaño válido"
-
-#~ msgid "Invalid size parameter (%s)"
-#~ msgstr "parámetro de tamaño no válido (%s)"
-
-#~ msgid "Unknown widget type: %s"
-#~ msgstr "Tipo de widget desconocido: %s"
-
-#~ msgid "Can't find the widget object assuming 0"
-#~ msgstr "No pude encontrar el objeto widget, asumiento 0"
-
-#~ msgid "Invalid object"
-#~ msgstr "Objeto no válido"
-
-#~ msgid "Invalid Parameters"
-#~ msgstr "parámetros no válidos"
-
-#~ msgid "Can't find the widget object to add (%s)"
-#~ msgstr "No pude encontrar el objeto widget para añadir (%s)"
-
-#~ msgid "Invalid row parameter (%s)"
-#~ msgstr "parámetro fila no válido (%s)"
-
-#~ msgid "Invalid column parameter (%s)"
-#~ msgstr "parámetro columna no válido (%s)"
-
-#~ msgid "Unknown frame style"
-#~ msgstr "Estilo de marco desconocido"
-
-#~ msgid "Module command call failed: can't load the module '%Q'"
-#~ msgstr ""
-#~ "Falló la llamada al comando del módulo: no puedo cargar el módulo '%Q'"
-
-#, fuzzy
-#~ msgid ""
-#~ "Failed writing the kvirc home directory path to %Q.\n"
-#~ "You will need to do it manually , otherwise KVirc will restart with\n"
-#~ "the setup!"
-#~ msgstr ""
-#~ "Falló la escritura en el directorio de kvirc local %s.\n"
-#~ "Necesitas configurarlo manualmente, o KVIrc rearrancará con \n"
-#~ "el proceso de configuración!"
-
-#~ msgid "Ident Service"
-#~ msgstr "Servicio de Ident"
-
-#~ msgid "Anti-spam"
-#~ msgstr "Anti-spam"
-
-#, fuzzy
-#~ msgid "Reconnection Options"
-#~ msgstr "conexión"
-
-#~ msgid "CTCP"
-#~ msgstr "CTCP"
-
-#~ msgid "Flood Protection"
-#~ msgstr "Protección de Saturación"
-
-#~ msgid "DCC"
-#~ msgstr "DCC"
-
-#~ msgid "File Transfer"
-#~ msgstr "Transferencias de Archivos"
-
-#~ msgid "Advanced"
-#~ msgstr "Avanzado"
-
-#~ msgid "Chat"
-#~ msgstr "Chat"
-
-#~ msgid "General options"
-#~ msgstr "Opciones generales"
-
-#~ msgid "Alert/Highlight"
-#~ msgstr "Alerta/Resaltado"
-
-#~ msgid "Input"
-#~ msgstr "Entrada"
-
-#~ msgid "Interface"
-#~ msgstr "Interfaz"
-
-#~ msgid "General"
-#~ msgstr "General"
-
-#~ msgid "Transparency"
-#~ msgstr "Transparencia"
-
-#~ msgid "MDI Captions"
-#~ msgstr "Títulos MDI"
-
-#~ msgid "MDI Area"
-#~ msgstr "Area MDI"
-
-#~ msgid "ToolBar Applets"
-#~ msgstr "Applets de Barra de herramientas"
-
-#~ msgid "Output"
-#~ msgstr "Salida"
-
-#~ msgid "Lag"
-#~ msgstr "Retraso"
-
-#~ msgid "Logging"
-#~ msgstr "Registro"
-
-#~ msgid "Media Types"
-#~ msgstr "Tipos de Medios"
-
-#~ msgid "Text"
-#~ msgstr "Texto"
-
-#~ msgid "NickServ"
-#~ msgstr "NickServ"
-
-#~ msgid "Contacts"
-#~ msgstr "Contactos"
-
-#~ msgid "Notifier"
-#~ msgstr "Notificador"
-
-#, fuzzy
-#~ msgid "Output Style"
-#~ msgstr "Salida"
-
-#~ msgid "Proxy Hosts"
-#~ msgstr "Servidores Proxy"
-
-#~ msgid "Query"
-#~ msgstr "Privado"
-
-#~ msgid "Servers"
-#~ msgstr "Servidores"
-
-#~ msgid "Sound"
-#~ msgstr "Sonido"
-
-#~ msgid "Tree taskbar"
-#~ msgstr "Barra de tareas en árbol"
-
-#~ msgid "Classic taskbar"
-#~ msgstr "Barra de tareas clásica"
-
-#~ msgid "Text icons"
-#~ msgstr "Iconos de texto"
-
-#~ msgid "Labels"
-#~ msgstr "Etiquetas"
-
-#~ msgid "Scripting Engine"
-#~ msgstr "Motor de Scripting"
-
-#~ msgid "URL handlers"
-#~ msgstr "URL de manejadores"
-
-#~ msgid "Userlist"
-#~ msgstr "Lista de Usuarios"
-
-#~ msgid "Protection"
-#~ msgstr "Protección"
-
-#, fuzzy
-#~ msgid "Avatar Handling"
-#~ msgstr "Cambio de avatar"
-
-#~ msgid "Invalid timeout (%s)"
-#~ msgstr "Tiempo de expiración (%s) no válido"
-
-#~ msgid "Invalid port specified: the kernel will choose one"
-#~ msgstr "Se especificó un puerto no válido: el nucleo escogerá uno"
-
-#~ msgid "Invalid port (%s)"
-#~ msgstr "Puerto no válido (%s)"
-
-#~ msgid "Non-negative integer length expected as parameter"
-#~ msgstr "Se esperaba una longitud entera no negativa como parámetro"
-
-#~ msgid "Non-negative integer index expected as first parameter"
-#~ msgstr "Se esperaba un índice entero no negativo como primer parámetro"
-
-#~ msgid "Non-negative integer length expected as second parameter"
-#~ msgstr "Se esperaba una longitud entera no negativa como segundo parámetro"
-
-#~ msgid "Invalid x offset parameter (%s)"
-#~ msgstr "parámetro de desplazamiento x no válido (%s)"
-
-#~ msgid "Invalid y offset parameter (%s)"
-#~ msgstr "parámetro de desplazamiento y no válido (%s)"
-
-#~ msgid "Can't find the specified file '%s'."
-#~ msgstr "No puedo encontrar el archivo especificado '%s'."
-
-#~ msgid "Class is undefined"
-#~ msgstr "La clase no está definida"
-
-#~ msgid ""
-#~ "$setPaletteForeground requires either an array as first parameter or "
-#~ "three integers"
-#~ msgstr ""
-#~ "$setPaletteForeground necesita un vector como primer parámetro o tres "
-#~ "enteros"
-
-#~ msgid ""
-#~ "<table width=\"100%\"><tr><td bgcolor=\"#303030\"><center><h1><font color="
-#~ "\"#FFFFFF\">General Preferences</font></h1></center></td></"
-#~ "tr><tr><td><br><br><center><b>These sections contain various settings for "
-#~ "KVIrc</b></center><br><br><p>When you have finished, click \"<b>OK</b>\" "
-#~ "to accept your changes or \"<b>Cancel</b>\" to discard them. Clicking "
-#~ "\"<b>Apply</b>\" will commit your changes without closing the window.</"
-#~ "td></tr><tr><td>Many settings have tooltips that can be shown by holding "
-#~ "the cursor over their label for a few seconds.</p></td></tr></table>"
-#~ msgstr ""
-#~ "<table width=\"100%\"><tr><td bgcolor=\"#303030\"><center><h1><font color="
-#~ "\"#FFFFFF\">Preferencias Generales</font></h1></center></td></"
-#~ "tr><tr><td><br><br><center><b>Estas secciones contienen varias "
-#~ "configuraciones para KVIrc</b></center><br><br><p>Cuando hayas "
-#~ "finalizado, pulsa \"<b>Aceptar</b>\" para aceptar los cambios o "
-#~ "\"<b>Cancelar</b>\" para descartarlos. Pulsando \"<b>Aplicar</b>\" se "
-#~ "grabarán los cambios sin cerrar la ventana.</td></tr><tr><td>Muchas "
-#~ "opciones tienen tooltips que pueden mostrarse manteniendo el cursor sobre "
-#~ "su etiqueta durante unos pocos segundos.</p></td></tr></table>"
-
-#~ msgid ""
-#~ "<table width=\"100%\"><tr><td bgcolor=\"#303030\"><center><h1><font color="
-#~ "\"#FFFFFF\">General Preferences</font></h1></center></td></"
-#~ "tr><tr><td><br><br>Select a category in the list view on the left to view "
-#~ "the related settings. When you have finished, click \"<b>OK</b>\" to "
-#~ "accept your changes or \"<b>Cancel</b>\" to discard them. Clicking "
-#~ "\"<b>Apply</b>\" will commit your changes without closing this window."
-#~ "<br><br></td></tr></table>"
-#~ msgstr ""
-#~ "<table width=\"100%\"><tr><td bgcolor=\"#303030\"><center><h1><font color="
-#~ "\"#FFFFFF\">Preferencias Generales</font></h1></center></td></"
-#~ "tr><tr><td><br><br>Selecciona una categoría en la lista de la izquierda "
-#~ "para ver las opciones relacionadas. Cuando hayas finalizado, pulsa "
-#~ "\"<b>Aceptar</b>\" para aceptar tus cambios o \"<b>Cancelar</b>\" para "
-#~ "descartarlos. Pulsando \"<b>Aplicar</b>\" se grabarán los cambios sin "
-#~ "cerrar esta ventana.<br><br></td></tr></table>"
-
-#~ msgid "Preferences - KVIrc"
-#~ msgstr "Preferencias - KVIrc"
-
-#~ msgid "General Preferences"
-#~ msgstr "Preferencias Generales"
-
-#~ msgid "My Experience level"
-#~ msgstr "Mi nivel de experiencia"
-
-#~ msgid "Close this dialog, accepting all changes."
-#~ msgstr "Cerrar el diálogo, aceptando todos los cambios."
-
-#~ msgid "Commit all changes immediately."
-#~ msgstr "Grabar todos los cambios inmediatamente."
-
-#~ msgid "Close this dialog, discarding all changes."
-#~ msgstr "Cerrar el diálogo, descartando todos los cambios."
-
-#~ msgid "Newbie"
-#~ msgstr "Novato"
-
-#~ msgid "Normal user"
-#~ msgstr "Usuario normal"
-
-#~ msgid "Experienced user"
-#~ msgstr "Usuario experimentado"
-
-#~ msgid ""
-#~ "This section contains irc tools<br><p>like<b> away, lag and logging "
-#~ "system. </b> </p>"
-#~ msgstr ""
-#~ "Esta sección contiene las herramientas irc<br><p>como<b> ausente, "
-#~ "retraso y sistema de registro. </b> </p>"
-
-#~ msgid ""
-#~ "This section contains irc protection tools<br><p>like<b> flood, ignore, "
-#~ "antispam. </b> </p>"
-#~ msgstr ""
-#~ "Esta sección contiene las herramientas de protección irc<br><p>como<b> "
-#~ "saturación, ignorar y antispam. </b> </p>"
-
-#~ msgid "Output verbosity"
-#~ msgstr "Detalle de la salida"
-
-#~ msgid "Mute"
-#~ msgstr "Callado"
-
-#~ msgid "Quiet"
-#~ msgstr "Discreto"
-
-#~ msgid "Normal"
-#~ msgstr "Normal"
-
-#~ msgid "Verbose"
-#~ msgstr "Detallado"
-
-#~ msgid "Paranoic"
-#~ msgstr "Paranoico"
-
-#~ msgid "Show in active window"
-#~ msgstr "Mostrar en la ventana activa"
-
-#~ msgid "External messages"
-#~ msgstr "Mensajes externos"
-
-#~ msgid "External CTCP replies"
-#~ msgstr "Contestaciones CTCP externas"
-
-#~ msgid "Whois replies"
-#~ msgstr "Respuestas Whois"
-
-#~ msgid "ChanServ and NickServ notices"
-#~ msgstr "Noticias de los servidores de Nick y CHAN"
-
-#~ msgid "Invite messages"
-#~ msgstr "Mensajes invitación"
-
-#~ msgid "Server replies"
-#~ msgstr "Contestaciones del servidor"
-
-#~ msgid "Server notices"
-#~ msgstr "Noticias del servidor"
-
-#~ msgid "Broadcast and WALLOPS messages"
-#~ msgstr "Mensajes difusión y WALLOP"
-
-#~ msgid "Show extended server information"
-#~ msgstr "Mostrar informaciones extendidas del servidor"
-
-#~ msgid "Show server pings"
-#~ msgstr "Mostrar pings de servidor"
-
-#~ msgid "Show own parts in the console"
-#~ msgstr "Mostrar las salidas propias en la consola"
-
-#~ msgid "Show compact mode changes"
-#~ msgstr "Mostrar cambios de modo compactos"
-
-#~ msgid "On Channel Join"
-#~ msgstr "En la Entrada al Canal"
-
-#~ msgid "Echo channel topic"
-#~ msgstr "Muestra el tema del canal"
-
-#~ msgid "Show channel sync time"
-#~ msgstr "Mostrar el tiempo de sincronización del canal"
-
-#~ msgid "Font"
-#~ msgstr "Fuentes"
-
-#~ msgid "Foreground color"
-#~ msgstr "Color de primer plano"
-
-#~ msgid "Background color"
-#~ msgstr "Color de fondo"
-
-#~ msgid "Background image"
-#~ msgstr "Imagen de fondo"
-
-#~ msgid "Save Current Theme"
-#~ msgstr "Guardar Tema Actual"
-
-#~ msgid "Theme name:"
-#~ msgstr "Nombre del tema:"
-
-#~ msgid "Author:"
-#~ msgstr "Autor:"
-
-#~ msgid "Use new package format:"
-#~ msgstr "Usar el nuevo formato de paquete:"
-
-#~ msgid "You must choose a theme name!"
-#~ msgstr "Debes escoger un nombre de tema!"
-
-#~ msgid "Theme saved successfully to "
-#~ msgstr "Tema guardado satisfactoriamente en"
-
-#~ msgid "you must select save directory"
-#~ msgstr "debes seleccionar un directorio donde guardar"
-
-#~ msgid "Unable to create theme files directory."
-#~ msgstr "No puedo crear el directorio de archivos para el tema."
-
-#~ msgid "Unable to create theme utils directory."
-#~ msgstr "No puedo crear el directorio de utilidades para el tema."
-
-#~ msgid "Cannot find installer.kvs."
-#~ msgstr "No puedo encontrar el archivo installer.kvs."
-
-#~ msgid "Cannot write installer.kvs."
-#~ msgstr "No puedo escribir el archivo installer.kvs."
-
-#~ msgid "Cannot write install.kvs."
-#~ msgstr "No puedo escribir el archivo install.kvs."
-
-#~ msgid "Cannot open install.kvs for reading."
-#~ msgstr "No puedo abrir el archivo install.kvs para lectura."
-
-#~ msgid "Cannot open install.kvs for writing."
-#~ msgstr "No puedo abrir el archivo install.kvs para escritura."
-
-#~ msgid ""
-#~ "The list below shows the currently installed themes. To apply a theme "
-#~ "select it and click \"Ok\" or \"Apply\". Please note that the message "
-#~ "text colors are applied only to new messages in each window.<br>To "
-#~ "install a new theme, unpack it to:<br><b>"
-#~ msgstr ""
-#~ "La lista inferior muestra los temas instalados actualmente. Para "
-#~ "seleccionar un tema, escógelo y pulsa \"Aceptar\" o \"Aplicar\". Por "
-#~ "favor, observa que los colores del texto de los mensajes se aplica "
-#~ "nicamente a los nuevos mensajes en cada ventana.<br>Para instalar un "
-#~ "nuevo tema, desempaquétalo en:<br><br>"
-
-#~ msgid "Refresh Theme List"
-#~ msgstr "Actualizar Lista de Temas"
-
-#~ msgid "Save Current Theme..."
-#~ msgstr "Guardar Tema Actual..."
-
-#~ msgid "Get More Themes..."
-#~ msgstr "Obtener más Temas..."
-
-#~ msgid "Current Theme"
-#~ msgstr "Tema Actual"
-
-#~ msgid "<p>The active theme settings</p>"
-#~ msgstr "<p>configuración del tema activo</p>"
-
-#~ msgid "<p>Theme: %1</p>"
-#~ msgstr "<p>Tema: %1</p>"
-
-#~ msgid "<p>Version: %1</p>"
-#~ msgstr "<p>Versión: %1</p>"
-
-#~ msgid "<p>Date: %1</p>"
-#~ msgstr "<p>Fecha: %1</p>"
-
-#~ msgid "<p>Author: %1</p>"
-#~ msgstr "<p>Autor: %1</p>"
-
-#~ msgid "On Unexpected Disconnect"
-#~ msgstr "En desconexiones inesperadas"
-
-#~ msgid "Keep channels open"
-#~ msgstr "Mantener los canales abiertos"
-
-#~ msgid ""
-#~ "<center>This option will cause KVIrc to keep channels open after an "
-#~ "unexpected disconnect.</center>"
-#~ msgstr ""
-#~ "<center>Esta opción hará que KVIrc mantenga los canales abiertos "
-#~ "después de una desconexión inesperada.</center>"
-
-#~ msgid "Keep queries open"
-#~ msgstr "Mantener los privados abiertos"
-
-#~ msgid ""
-#~ "<center>This option will cause KVIrc to keep queries open after an "
-#~ "unexpected disconnect.</center>"
-#~ msgstr ""
-#~ "<center>Esta opción hará que KVIrc mantenga los privados abiertos "
-#~ "después de una desconexión inesperada.</center>"
-
-#~ msgid "Rejoin channels after reconnect"
-#~ msgstr "Volver a unirse a canales tras reconectar"
-
-#~ msgid ""
-#~ "<center>This option will cause KVIrc to rejoin channels after a "
-#~ "successful reconnect attempt.</center>"
-#~ msgstr ""
-#~ "<center>Esta opción hará que KVIrc vuelva a entrar en los canales "
-#~ "después de un intento de reconexión con éxito.</center>"
-
-#~ msgid "Reopen queries after reconnect"
-#~ msgstr "Reabrir los privados tras reconectar"
-
-#~ msgid ""
-#~ "<center>This option will cause KVIrc to reopen query windows after a "
-#~ "successful reconnect attempt.</center>"
-#~ msgstr ""
-#~ "<center>Esta opción hará que KVIrc reabra las ventanas con los privados "
-#~ "después de un intento de reconexión con éxito.</center>"
-
-#~ msgid "Automatically reconnect"
-#~ msgstr "Reconectar automáticamente"
-
-#~ msgid ""
-#~ "<center>This option will enable auto-reconnecting after an unexpected "
-#~ "disconnect. An unexpected disconnect is the <b>termination</b> of a "
-#~ "<b>fully connected IRC session</b> that was <b>not requested by the user</"
-#~ "b> by the means of the QUIT message.<p><b>Warning:</b> If you use /RAW to "
-#~ "send a QUIT message to the server, this option will not behave correctly, "
-#~ "since does not detect the outgoing QUIT message and will attempt to "
-#~ "reconnect after the server has closed the connection. For this reason, "
-#~ "always use the /QUIT command to close your connections. This option may "
-#~ "also behave incorrectly with bouncers that support detaching, in this "
-#~ "case a solution could be to prepare an alias that sends the bouncer "
-#~ "\"detach\" command immediately before the \"quit\" command.<br><tt>alias"
-#~ "(bncdetach){ raw bouncer detach; quit; }</tt></p></center>"
-#~ msgstr ""
-#~ "<center>Esta opción habilitará la reconexión automática tras una "
-#~ "desconexión inesperada. Una desconexión inesperada es la "
-#~ "<b>terminación</b> de una <b>sesión completa de IRC</b> que <b>no "
-#~ "fue solicitada por el usuario</b> mediante el mensaje QUIT."
-#~ "<p><b>Atención:</b> Si usas /RAW para enviar un mensaje QUIT al servidor "
-#~ "esta opción no funcionará correctamente, porque no detectará el QUIT "
-#~ "saliente e intentará reconectarse después que el servidor haya cerrado "
-#~ "la conexión. Por esta razón, usa siempre el comando /QUIT para cerrar "
-#~ "tus conexiones. también puede comportarse incorrectamente con "
-#~ "repetidores que soporten desasociación. En tal caso, una solución "
-#~ "podría ser preparar un alias que envíe el comando \"detach\" "
-#~ "inmediatamente antes del comando \"quit\".<br><tt>alias(bcndetach){ raw "
-#~ "bouncer detach; quit; }</tt></p></center>"
-
-#~ msgid "Maximum attempts (0: unlimited):"
-#~ msgstr "Número máximo de intentos (0: ilimitados):"
-
-#~ msgid "Delay between attempts:"
-#~ msgstr "Espera entre intentos:"
-
-#~ msgid " sec"
-#~ msgstr " seg"
-
-#~ msgid ""
-#~ "<center>Minimum value: <b>0 sec</b><br>Maximum value: <b>86400 sec</b></"
-#~ "center>"
-#~ msgstr ""
-#~ "<center>Valor mínimo: <b>0 seg</b><br>Valor máximo: <b>86400 seg</b></"
-#~ "center>"
-
-#~ msgid ""
-#~ "Select your experience level here. <br>\n"
-#~ "<b>Novice</b> will be able to see only basic options in the options "
-#~ "dialog<br>\n"
-#~ "<b>Normal user</b> will be able to configure all basic KVirc options<br>\n"
-#~ "<b>Experienced user</b> will be able to customise everything"
-#~ msgstr ""
-#~ "Selecciona tu nivel de experiencia. <br>\n"
-#~ "<b>Novato</b> solo podría ver las opciones más básicas en el diálogo "
-#~ "de opciones<br>\n"
-#~ "<b>Usuario normal</b> podría ver todas las opciones básicas de "
-#~ "KVIrc<br>\n"
-#~ "<b>Usuario experimentado</b> podría configurarlo todo"
-
-#~ msgid "Your Experience level"
-#~ msgstr "Nivel de experiencia"
-
-#~ msgid "Novice"
-#~ msgstr "Novato"
-
-#~ msgid "No such options page class name %Q"
-#~ msgstr "No existen esas opciones en la página del nombre de clase %Q"
-
-#~ msgid "\"Smart\" nickname colors"
-#~ msgstr "Coloreado \"inteligente\" de nicks"
-
-#~ msgid "Show nicknames in bold"
-#~ msgstr "Mostrar nicks en negrita"
-
-#~ msgid "Show user and host"
-#~ msgstr "Mostrar usuario y máquina"
-
-#~ msgid "Show channel mode prefix"
-#~ msgstr "Mostrar prefijo de modo de canal"
-
-#~ msgid "User-defined prefix and postfix"
-#~ msgstr "Prefijo y sufijo definidos por el usuario"
-
-#~ msgid "[PREFIX]nickname[!user@host][POSTFIX] message"
-#~ msgstr "[PREFIJO]nick[!usuario@maquina][SUFIJO] mensaje"
-
-#~ msgid "Prefix:"
-#~ msgstr "Prefijo:"
-
-#~ msgid "Postfix:"
-#~ msgstr "Sufijo:"
-
-#~ msgid "Don't show colors in user messages"
-#~ msgstr "No mostrar colores en los mensajes de usuario"
-
-#~ msgid "Font:"
-#~ msgstr "Fuentes:"
-
-#~ msgid "Background color:"
-#~ msgstr "Color de fondo:"
-
-#~ msgid "Background image:"
-#~ msgstr "Imagen de fondo:"
-
-#~ msgid "Mark Line:"
-#~ msgstr "Marcar línea:"
-
-#~ msgid "Show message icons"
-#~ msgstr "Mostrar iconos de mensajes"
-
-#~ msgid "Draw some emoticons (smileys) as pictures"
-#~ msgstr "Dibujar algunos emoticonos (smileys) gráficamente"
-
-#~ msgid "Show timestamp"
-#~ msgstr "Mostrar marca de tiempo"
-
-#~ msgid "Use UTC time for timestamp"
-#~ msgstr "Utilizar tiempo UTC en marca de tiempo"
-
-#~ msgid "Use special color for timestamps"
-#~ msgstr "Utilizar color especial para marca de tiempo"
-
-#~ msgid "Timestamp color"
-#~ msgstr "Color para marca de tiempo"
-
-#~ msgid "Enable URL highlighting"
-#~ msgstr "Activar resaltado de URLs"
-
-#~ msgid "Use line wrap margin"
-#~ msgstr "Usar margen de justificación de línea"
-
-#~ msgid "Maximum buffer size:"
-#~ msgstr "Tamaño máximo de buffer:"
-
-#~ msgid " lines"
-#~ msgstr " líneas"
-
-#~ msgid "Link tooltip show delay:"
-#~ msgstr "Retraso hasta mostrar tooltip en los enlaces:"
-
-#~ msgid " msec"
-#~ msgstr " mseg"
-
-#~ msgid "Link tooltip hide delay:"
-#~ msgstr "Retraso hasta esconder tooltip en los enlaces:"
-
-#~ msgid "Track last read text line"
-#~ msgstr "Marcar la última línea de texto leída"
-
-#~ msgid "Nickname alternatives"
-#~ msgstr "Nicks alternativos"
-
-#~ msgid ""
-#~ "<center>Here you can choose up to three nicknames alternative to the "
-#~ "primary one. KVIrc will use the alternatives if the primary nick is "
-#~ "already used by someone else on a particular IRC network.</center>"
-#~ msgstr ""
-#~ "<center>Aquí puedes escoger hasta tres nicks alternativos adicionales al "
-#~ "primario.KVIrc usará los alternativos si el nick primario está siendo "
-#~ "usado por cualquier otro en una red IRC concreta.</center>"
-
-#~ msgid "Alt. Nickname 1:"
-#~ msgstr "Nick alt. 1:"
-
-#~ msgid "Alt. Nickname 2:"
-#~ msgstr "Nick alt. 2:"
-
-#~ msgid "Alt. Nickname 3:"
-#~ msgstr "Nick alt. 3"
-
-#~ msgid ""
-#~ "<center>Your <b>nickname</b> is your primary form of identification on "
-#~ "IRC.<br>Since servers cannot accept multiple users sharing the same "
-#~ "nickname (case insensitive), you can provide alternative nicknames to be "
-#~ "used in casethe server refuses to accept the default one.</center>"
-#~ msgstr ""
-#~ "<center>Tu <b>nick</b> es la principal forma de identificación en el IRC."
-#~ "<br>Como los servidores no pueden aceptar a varios usuarios compartiendo "
-#~ "el mismo nick (sin distinguir maysculas/minsculas), puedes proporcionar "
-#~ "nicks alternativos que serán usados en caso que el servidor rechace el "
-#~ "proporcionado por defecto.</center>"
-
-#~ msgid "Alternatives..."
-#~ msgstr "Alternativos..."
-
-#~ msgid "Username:"
-#~ msgstr "Nombre de usuario:"
-
-#~ msgid ""
-#~ "<center>This is the <b>username</b> that you will use to connect to the "
-#~ "server.<br>In the past, it was used as a form of authentication, but it "
-#~ "normally has no special use now.<br>In addition to your nickname, you are "
-#~ "identified on IRC by your <b>username@hostname</b>.</br>Basically, you "
-#~ "can enter any word you like here. :D</center>"
-#~ msgstr ""
-#~ "<center>Este es el <b>nombre de usuario</b> que usarás para conectar al "
-#~ "servidor.<b>Anteriomente, era usado como una forma de autentificación, "
-#~ "pero ahora no tiene una utilidad especial.<br>Adicionalmente a tu nick, "
-#~ "serás identificado en el IRC por tu <b>usuario@máquina</b>.</"
-#~ "br>Básicamente, puedes poner aquí cualquier palabra que te guste. :D</"
-#~ "center>"
-
-#~ msgid "Real name:"
-#~ msgstr "Nombre real:"
-
-#~ msgid ""
-#~ "<center>This text will appear when someone does a /WHOIS on you.<br>It is "
-#~ "intended to be your real name, but people tend to put random quotes and "
-#~ "phrases here too.</center>"
-#~ msgstr ""
-#~ "<center>Este texto aparecerá cuando alguien te haga un /WHO.<br>Debería "
-#~ "tratarse de tu nombre real, pero la gente tiende a poner cosas sin "
-#~ "sentido, refranes, ocurrencias y citas.</center>"
-
-#~ msgid "Server notices (+s)"
-#~ msgstr "Noticias del servidor (+s)"
-
-#~ msgid "Default Messages"
-#~ msgstr "Mensajes por Defecto"
-
-#~ msgid "Default part message:"
-#~ msgstr "Mensaje de ausencia por defecto:"
-
-#~ msgid ""
-#~ "<center>This is the default part message that will be used when "
-#~ "you<br>leave a channel by closing a channel window.</center>"
-#~ msgstr ""
-#~ "<center>Este es el mensaje de partida por defecto que será usando "
-#~ "cuando<br>abandonas un canal cerrando su ventana de canal.</center>"
-
-#~ msgid "Default quit message:"
-#~ msgstr "Mensaje de salida por defecto:"
-
-#~ msgid ""
-#~ "<center>This is the default quit message that will be used when "
-#~ "you<br>quit your IRC session by closing the console window or "
-#~ "disconnecting by pressing the disconnect button.</center>"
-#~ msgstr ""
-#~ "<center>Este es el mensaje de salida por defecto que será usado "
-#~ "cuando<br>cierras tu sesión IRC cerrando la ventana de consola o "
-#~ "desconectando pulsando el botón de desconexión.</center>"
-
-#~ msgid "Pattern"
-#~ msgstr "Patrón"
-
-#~ msgid "MIME Type"
-#~ msgstr "Tipo MIME"
-
-#~ msgid "MIME type:"
-#~ msgstr "Tipo MIME:"
-
-#~ msgid "File pattern:"
-#~ msgstr "Patrón de archivo:"
-
-#~ msgid "Magic bytes:"
-#~ msgstr "Bytes mágicos:"
-
-#~ msgid "Save path:"
-#~ msgstr "Trayectoria para guardar:"
-
-#~ msgid "Local open command:"
-#~ msgstr "Comando apertura local:"
-
-#~ msgid ""
-#~ "<center>This field contains the command to execute to open a local file."
-#~ "<br><tt>$0</tt> is used in place of the filename</center>"
-#~ msgstr ""
-#~ "<center>Este campo contiene el comando a ejecutar para abrir un archivo "
-#~ "local.<br><tt>$0</tt> será usado en lugar del nombre del archivo</center>"
-
-#~ msgid "Remote open command:"
-#~ msgstr "Comando de apertura remota:"
-
-#~ msgid ""
-#~ "<center>This field contains the command to execute when automatically "
-#~ "opening a received file.<br><tt>$0</tt> is used in place of the filename</"
-#~ "center>"
-#~ msgstr ""
-#~ "<center>Este campo contiene el comando a ejecutar para abrir "
-#~ "automáticamente un archivo recibido.<br><tt>$0</tt> será usado en lugar "
-#~ "del nombre del archivo</center>"
-
-#~ msgid "[Unknown Media Type]"
-#~ msgstr "[Tipo de Medio Desconocido]"
-
-#~ msgid "New Media Type"
-#~ msgstr "Nuevo Tipo de Medio"
-
-#~ msgid "NickServ Authentication Rule"
-#~ msgstr "Regla de Autentificación de Nickserv"
-
-#~ msgid "Registered NickName"
-#~ msgstr "Nick Registrado"
-
-#~ msgid "Put here the nickname that you have registered with NickServ"
-#~ msgstr "Pon aquí el nick que tienes registrado con NickServ"
-
-#~ msgid "NickServ Mask"
-#~ msgstr "Máscara NickServ"
-
-#~ msgid ""
-#~ "This is the mask that NickServ must match to be correctly identified as "
-#~ "the NickServ service. This usually will be something like <b>NickServ!"
-#~ "service@services.dalnet</b>.<br>You can use wildcards for this field, but "
-#~ "generally it is a security flaw. If you're 100% sure that NO user on the "
-#~ "network can use the nickname \"NickServ\", the mask <b>NickServ!*@*</b> "
-#~ "may be safe to use in this field."
-#~ msgstr ""
-#~ "Esta es la máscara que debe concordar con NickServ para ser "
-#~ "correctamente identificado como el servicio NickServ. Habitualmente "
-#~ "será algo como <b>NickServ!service@services.dalnet</b>.<br>Puedes usar "
-#~ "comodines para este campo, pero ello está considerado como un fallo de "
-#~ "seguridad. Si estás 100% seguro que NINGÚN usuario en la red puede usar "
-#~ "el nick \"NickServ\", puede ser seguro usar la máscara <b>NickServ!*@*</"
-#~ "b> en este campo."
-
-#~ msgid "Message Regexp"
-#~ msgstr "Expresión Regular del Mensaje"
-
-#~ msgid ""
-#~ "This is the simple regular expression that the identification request "
-#~ "message from NickServ must match in order to be correctly recognized."
-#~ "<br>The message is usually something like \"To identify yourself please "
-#~ "use /ns IDENTIFY password\" and it is sent when the NickServ wants you to "
-#~ "authenticate yourself. You can use the * and ? wildcards."
-#~ msgstr ""
-#~ "Esta es la expresión regular sencilla que debe concordar con la "
-#~ "solicitud de identificación de NickServ para poder ser reconocido "
-#~ "correctamente.<br>Normalmente, el mensaje es algo como \"Para "
-#~ "identificarte usa /ns IDENTIFY password\" y se envía cuando NickServ "
-#~ "quiere que te identifiques. Puedes usar los comodines * y ?."
-
-#~ msgid "Identify Command"
-#~ msgstr "Comando de Identificación"
-
-#~ msgid ""
-#~ "This is the command that will be executed when NickServ requests "
-#~ "authentication for the nickname described in this rule (if the both "
-#~ "server and NickServ mask are matched). This usually will be something "
-#~ "like <b>msg NickServ identify &lt;yourpassword&gt;</b>.<br>You can use "
-#~ "<b>msg -q</b> if you don't want the password echoed on the screen. Please "
-#~ "note that there is no leading slash in this command."
-#~ msgstr ""
-#~ "Este es el comando que será ejecutado cuando NickServ solicite "
-#~ "autentificación para el nick descrito en esta regla (si ambas máscaras, "
-#~ "la del servidor y la de NickServ, concuerdan). Habitualmente sería algo "
-#~ "como <b>msg NickServ identificación &lt;tuclave&gt;</b>.<br>Puedes usar "
-#~ "<b>msg -q</b> si no quieres que la clave aparezca en pantalla. Por favor, "
-#~ "observa que este comando no comienza con una barra (/)."
-
-#~ msgid "Server mask"
-#~ msgstr "Máscara de Servidores"
-
-#~ msgid ""
-#~ "This is the mask that the current server must match in order for this "
-#~ "rule to apply. It can contain * and ? wildcards.<br>Do NOT use simply \"*"
-#~ "\" here..."
-#~ msgstr ""
-#~ "Esta es la máscara con la que debe coincidir el servidor actual para que "
-#~ "se aplique esta regla. Puede contener comodines * y ?.<br>No utilices "
-#~ "únicamente \"*\" aquí.."
-
-#~ msgid "Hint: Move the mouse cursor over the fields to get help"
-#~ msgstr ""
-#~ "Idea: Mueve el cursor del ratón sobre los campos para obtener ayuda"
-
-#~ msgid "Invalid NickServ Rule"
-#~ msgstr "Regla de NickServ no válida"
-
-#~ msgid "The Nickname field can't be empty!"
-#~ msgstr "El campo del nick no puede estar vacío!"
-
-#~ msgid "The Nickname field can't contain spaces!"
-#~ msgstr "El campo del nick no puede contener espacios!"
-
-#~ msgid "The NickServ mask can't be empty!<br>You must put at least * there."
-#~ msgstr ""
-#~ "La máscara de NickServ no puede estar vacía!<br>Debes poner al menos un "
-#~ "* aquí"
-
-#~ msgid "The Message Regexp can't be empty!<br>You must put at least * there."
-#~ msgstr ""
-#~ "La expresión regular del mensaje no puede estar vacío!<br>Debes poner "
-#~ "al menos un * aquí"
-
-#~ msgid "The Identify Command can't be empty!"
-#~ msgstr "El Comando de Identificación no puede estar vacío!"
-
-#~ msgid "Enable NickServ Identification"
-#~ msgstr "Activar identificación NickServ"
-
-#~ msgid "This check enables the automatic identification with NickServ"
-#~ msgstr "Esta casilla habilita la identificación automática con NickServ"
-
-#~ msgid "Nickname"
-#~ msgstr "Nick"
-
-#~ msgid "NickServ Request Mask"
-#~ msgstr "Solicitud de máscara NickServ"
-
-#~ msgid ""
-#~ "<center>This is a list of NickServ identification rules. KVIrc will use "
-#~ "them to model its automatic interaction with NickServ on all the networks."
-#~ "<br>Please be aware that this feature can cause your NickServ passwords "
-#~ "to be stolen if used improperly. Make sure that you fully understand the "
-#~ "NickServ authentication protocol.<br>In other words, be sure to know what "
-#~ "you're doing.<br>Also note that the password that you provide is stored "
-#~ "as <b>PLAIN TEXT</b>.<br>KVIrc supports also per-network NickServ "
-#~ "authentication rules that can be created in the \"Advanced...\" network "
-#~ "options (accessible from the servers dialog).</center>"
-#~ msgstr ""
-#~ "<center>Esta es la lista de reglas de identificación de NickServ. KVIrc "
-#~ "las usará para su interacción automática con NickServ en todas las "
-#~ "redes.<br>Por favor, ten presente que esta característica puede provocar "
-#~ "que tus claves de NickServ sean robadas si se usa indebidamente. Asegrate "
-#~ "que entiendes bien el protoloco de autentificación NickServ.<br>En otras "
-#~ "palabras, asegrate de que sabes lo que están haciendo.<br>Piensa que la "
-#~ "clave que proporcionas es almacenada en <b>TEXTO PLANO</b>.<br>KVIrc "
-#~ "tambien permite que las reglas de identificacion sean creadas para cada "
-#~ "red desde las opciones \"Avanzadas...\" (accesible desde el diálogo de "
-#~ "servidores).</center>"
-
-#~ msgid "Add Rule"
-#~ msgstr "Añadir Regla"
-
-#~ msgid "Edit Rule"
-#~ msgstr "Editar Regla"
-
-#~ msgid "Delete Rule"
-#~ msgstr "Borrar Regla"
-
-#~ msgid "Selection background color"
-#~ msgstr "Color de fondo de la selección"
-
-#~ msgid "Selection foreground color"
-#~ msgstr "Color de primer plano de la selección"
-
-#~ msgid "Control char color"
-#~ msgstr "Color de los caracteres de control"
-
-#~ msgid "Cursor color"
-#~ msgstr "Color del cursor"
-
-#~ msgid "Warp cursor at the end of line when browsing history"
-#~ msgstr ""
-#~ "Poner el cursor al final de línea cuando se navegue por la historia"
-
-#~ msgid "Disable the input history window and it's log memory."
-#~ msgstr ""
-#~ "Deshabilitar la ventana de historia de entrada y su memoria de registro."
-
-#~ msgid "Nick completion"
-#~ msgstr "Completado de Nick"
-
-#~ msgid "Use bash-like nick completion"
-#~ msgstr "Usar completado de nick al estilo bash"
-
-#~ msgid "Nick completion postfix string"
-#~ msgstr "Cadena postfija para completado de nick"
-
-#~ msgid "Use the completion postfix string for the first word only"
-#~ msgstr ""
-#~ "Usar la cadena postfija en el completado solo para la primera palabra"
-
-#~ msgid "Use proxy"
-#~ msgstr "Usar proxy"
-
-#~ msgid "Proxy"
-#~ msgstr "Proxy"
-
-#~ msgid ""
-#~ "<center>This is the list of available proxy servers.<br>Right-click on "
-#~ "the list to add or remove proxies.</center>"
-#~ msgstr ""
-#~ "<center>Esta es la lista de servidores proxy disponibles.<br>Pulsar con "
-#~ "el botón derecho en la lista para añadir o eliminar proxies.</center>"
-
-#~ msgid "New Proxy"
-#~ msgstr "Nuevo Proxy"
-
-#~ msgid "Remove Proxy"
-#~ msgstr "Eliminar Proxy"
-
-#~ msgid "Configuration"
-#~ msgstr "Configuración"
-
-#~ msgid "Proxy:"
-#~ msgstr "Proxy:"
-
-#~ msgid "Port:"
-#~ msgstr "Puerto:"
-
-#~ msgid "IP address:"
-#~ msgstr "Dirección IP:"
-
-#~ msgid "Password:"
-#~ msgstr "Clave:"
-
-#~ msgid "Protocol:"
-#~ msgstr "Protocolo:"
-
-#~ msgid "Use IPv6 protocol"
-#~ msgstr "Usar protocolo IPv6"
-
-#~ msgid "&New Proxy"
-#~ msgstr "&Nuevo Proxy"
-
-#~ msgid "Re&move Proxy"
-#~ msgstr "Eli&minar Proxy"
-
-#~ msgid "Default text encoding:"
-#~ msgstr "Página de códigos de texto por defecto:"
-
-#~ msgid "Use Language Encoding"
-#~ msgstr "Usar página de códigos del lenguaje"
-
-#~ msgid "Minimize in tray"
-#~ msgstr "Minimizar en la bandeja"
-
-#~ msgid "Confirm quit with active connections"
-#~ msgstr "Confirmar salida con conexiones activas"
-
-#~ msgid "Remember window properties"
-#~ msgstr "Recordar propiedades de ventana"
-
-#~ msgid "Disable splash screen"
-#~ msgstr "Deshabilitar pantalla de presentación"
-
-#~ msgid "Open Dialog Window For"
-#~ msgstr "Abrir diálogo de Ventana para"
-
-#~ msgid "Preferences"
-#~ msgstr "Preferencias"
-
-#~ msgid "Registered Users"
-#~ msgstr "Usuarios Registrados"
-
-#~ msgid "Disable parser warnings"
-#~ msgstr "Deshabilitar los avisos del analizador"
-
-#~ msgid "Disable broken event handlers"
-#~ msgstr "Desactivar manejadores de eventos rotos"
-
-#~ msgid "Kill broken timers"
-#~ msgstr "Matar temporizadores rotos"
-
-#~ msgid "Send unknown commands as /RAW"
-#~ msgstr "Enviar comandos desconocidos como /RAW"
-
-#~ msgid "Automatically unload unused modules"
-#~ msgstr "Descargar automáticamente los módulos no utilizados"
-
-#~ msgid "Ignore module versions (dangerous)"
-#~ msgstr "Ignorar las versiones de los módulos (peligroso)"
-
-#~ msgid "Relay errors and warnings to debug window"
-#~ msgstr "Repetir errores y avisos a la ventana de depuración"
-
-#~ msgid "Create minimized debug window"
-#~ msgstr "Crear minimizada la ventana de depuración"
-
-#~ msgid "Message Type"
-#~ msgstr "Tipo de mensaje"
-
-#~ msgid "Background:"
-#~ msgstr "Color de fondo:"
-
-#~ msgid "Foreground:"
-#~ msgstr "Color de primer plano:"
-
-#~ msgid "Alert level:"
-#~ msgstr "Nivel de alerta:"
-
-#~ msgid "Log this"
-#~ msgstr "Registrar esto"
-
-#~ msgid "Load From..."
-#~ msgstr "Cargar Desde..."
-
-#~ msgid "Save As..."
-#~ msgstr "Guardar Como.."
-
-#~ msgid "Choose a Filename - KVIrc "
-#~ msgstr "Escoja un nombre de archivo - KVIrc"
-
-#~ msgid "Use global application font"
-#~ msgstr "Usar fuente global de la aplicación"
-
-#~ msgid "Hide icons in Popup"
-#~ msgstr "Esconder iconos en menú emergente"
-
-#~ msgid "Global application font:"
-#~ msgstr "Fuente global de la aplicación:"
-
-#~ msgid "Enable fake transparency"
-#~ msgstr "Activar falsa transparencia"
-
-#~ msgid ""
-#~ "<center>This option makes all KVIrc windows look transparent.<br>You must "
-#~ "choose a blending background image to below or check the \"Use KDE "
-#~ "desktop for transparency\" option.</center>"
-#~ msgstr ""
-#~ "<center>Esta opción hará que todas las ventanas de KVIrc se vean "
-#~ "transparentes.<br>Debes escoger una imagen para mezclar con el fondo o "
-#~ "activar la opción \"Usar escritorio de KDE como transparencia\".</center>"
-
-#~ msgid ""
-#~ "<center>This option makes all KVIrc windows look like transparent.<br>You "
-#~ "must choose a blending background image to below.</center>"
-#~ msgstr ""
-#~ "<center>Esta opción hará que todas las ventanas de KVIrc parezcan "
-#~ "transparentes.<br>Debes escoger también una imagen de fondo para mezclar "
-#~ "más abajo.</center>"
-
-#~ msgid "Child window opacity:"
-#~ msgstr "Opacidad de la ventana hija:"
-
-#~ msgid "Parent window opacity:"
-#~ msgstr "Opacidad de la ventana padre:"
-
-#~ msgid "Blend color:"
-#~ msgstr "Color de la mezcla:"
-
-#~ msgid "Use KDE desktop for transparency"
-#~ msgstr "Usar escritorio de KDE como transparencia"
-
-#~ msgid "Keep in sync with KDE background changes"
-#~ msgstr "Mantenerse sincronizado con los cambios de fondo de KDE"
-
-#~ msgid "Transparency blend image:"
-#~ msgstr "Imagen de mezcla transparente:"
-
-#~ msgid "Active Background"
-#~ msgstr "Fondo Activo:"
-
-#~ msgid "Inactive Background"
-#~ msgstr "Fondo Inactivo:"
-
-#~ msgid "Active Text (Primary)"
-#~ msgstr "Texto Activo (Primario)"
-
-#~ msgid "Active Text (Secondary)"
-#~ msgstr "Texto Activo (Secundario)"
-
-#~ msgid "Inactive Text (Primary)"
-#~ msgstr "Texto Inactivo (Primario)"
-
-#~ msgid "Inactive Text (Secondary)"
-#~ msgstr "Texto Inactivo (Secundario)"
-
-#~ msgid "Background Image"
-#~ msgstr "Imagen de Fondo"
-
-#~ msgid "Low-Contrast Foreground"
-#~ msgstr "Primer Plano de Bajo Contraste"
-
-#~ msgid "Mid-Contrast Foreground"
-#~ msgstr "Primer Plano de Contraste Medio"
-
-#~ msgid "Active High-Contrast Foreground (Primary)"
-#~ msgstr "Primer Plano Activo de Alto Contraste (Primario)"
-
-#~ msgid "Active High-Contrast Foreground (Secondary)"
-#~ msgstr "Primer Plano Activo de Alto Contraste (Secundario)"
-
-#~ msgid "Inactive High-Contrast Foreground (Primary)"
-#~ msgstr "Primer Plano Inactivo de Alto Contraste (Primario)"
-
-#~ msgid "Inactive High-Contrast Foreground (Secondary)"
-#~ msgstr "Primer Plano Inactivo de Alto Contraste (Secundario)"
-
-#~ msgid "Default away message:"
-#~ msgstr "Mensaje de ausencia por defecto:"
-
-#~ msgid "User input exits away mode"
-#~ msgstr "La entrada de texto sale del modo ausente"
-
-#~ msgid "Away Nickname"
-#~ msgstr "Nick de ausencia"
-
-#~ msgid "Change nickname on away"
-#~ msgstr "Cambiar el nick al ausentarse"
-
-#~ msgid "Use automatic nickname ([5 letters]AWAY)"
-#~ msgstr "Usar nick de ausencia autogenerado [5 letras]AWAY) "
-
-#~ msgid "Custom nickname:"
-#~ msgstr "Nick personalizado:"
-
-#~ msgid "Enable lag meter"
-#~ msgstr "Activar medidor de retraso"
-
-#~ msgid ""
-#~ "<center>This enables the lag meter engine, which checks at regular "
-#~ "intervals how much lag (latency) the server has.</center>"
-#~ msgstr ""
-#~ "<center>Esto habilita el motor de medición de retrasos, que comprueba a "
-#~ "intervalos regulares cuanto retraso (latencia) tiene el servidor.</center>"
-
-#~ msgid "Lag meter heartbeat:"
-#~ msgstr "Latido del medidor de retraso:"
-
-#~ msgid ""
-#~ "<center>This option allows you to set the lag meter heartbeat interval."
-#~ "<br>The lower the heartbeat interval the higher will be the accuracy of "
-#~ "the lag check but also higher cpu usage and data traffic to the server."
-#~ "<br>Please note that this is NOT the interval between pings sent to the "
-#~ "server: the pings (if any) will be sent really less often. 5000 is a "
-#~ "reasonable value.</center>"
-#~ msgstr ""
-#~ "<center>Esta opción permite escoger el intervalo de latido del medidor "
-#~ "de retraso. <br>Cuanto menor sea el intervalo de latido mayor será la "
-#~ "fiabilidad de la medida, pero también será mayor el uso de la CPU y el "
-#~ "tráfico de datos con el servidor. <br>Por favor, ten en cuenta que este "
-#~ "NO es el intervalo entre pings enviados al servidor: los ping (si los "
-#~ "hay) serán enviados mucho menos frecuentemente. 5000 es un valor "
-#~ "razonable.</center>"
-
-#~ msgid "Trigger event if lag exceeds:"
-#~ msgstr "Disparar evento si el retraso excede de:"
-
-#~ msgid ""
-#~ "<center>This option controls the threshold for the OnLagAlarmTimeUp and "
-#~ "OnLagAlarmTimeDown events. When the lag goes above the threshold "
-#~ "OnLagAlarmTimeUp will be triggered and when the lag falls back below the "
-#~ "threshold then OnLagAlarmTimeDown will be triggered</center>"
-#~ msgstr ""
-#~ "<center>Esta opción controla el umbral para los eventos OnLagAlarmTimeUp "
-#~ "y OnLagAlarmTimeDown. Cuando el retraso excede el umbral se disparará el "
-#~ "evento OnLagAlarmTimeUp y cuando el retraso caiga por debajo del umbral "
-#~ "se disparará OnLagAlarmTimeDown</center>"
-
-#~ msgid "Show lag in IRC context display"
-#~ msgstr "Mostrar retraso en la pantalla de contexto de IRC"
-
-#~ msgid ""
-#~ "<center>This makes the IRC context display applet show the current lag "
-#~ "after the user's nickname (in seconds)</center>"
-#~ msgstr ""
-#~ "<center>Esto hace que el applet de visualización de contexto IRC muestre "
-#~ "el retraso después del nick del usuario (en segundos)</center>"
-
-#~ msgid "Nickname Colors"
-#~ msgstr "Colores del Nick"
-
-#~ msgid "Normal:"
-#~ msgstr "Normal:"
-
-#~ msgid "Selected:"
-#~ msgstr "Seleccionado:"
-
-#~ msgid "Channel owner:"
-#~ msgstr "Propietario del canal:"
-
-#~ msgid "Channel admin:"
-#~ msgstr "Administrador del canal:"
-
-#~ msgid "Op:"
-#~ msgstr "Op:"
-
-#~ msgid "Half-op:"
-#~ msgstr "Semioperador:"
-
-#~ msgid "Voice:"
-#~ msgstr "Voz:"
-
-#~ msgid "User-op:"
-#~ msgstr "Usuarios operadores:"
-
-#~ msgid "Away:"
-#~ msgstr "Ausente:"
-
-#~ msgid "Background Colors"
-#~ msgstr "Colores de Fondo"
-
-#~ msgid "Nickname Grid"
-#~ msgstr "Rejilla de Nicks"
-
-#~ msgid "Draw nickname grid"
-#~ msgstr "Dibujar rejilla de nicks"
-
-#~ msgid "Grid color:"
-#~ msgstr "Color de la rejilla:"
-
-#~ msgid "Grid type:"
-#~ msgstr "Tipo de rejilla:"
-
-#~ msgid "3D Grid"
-#~ msgstr "Rejilla 3D"
-
-#~ msgid "3D Buttons"
-#~ msgstr "Botones 3D"
-
-#~ msgid "Plain Grid"
-#~ msgstr "Rejilla Plana"
-
-#~ msgid "Dotted Grid"
-#~ msgstr "Rejilla Punteada"
-
-#~ msgid "Show user channel icons"
-#~ msgstr "Mostrar iconos de usuarios de canal"
-
-#~ msgid "Show user channel activity indicator"
-#~ msgstr "Mostrar indicador de actividad de usuario en el canal"
-
-#~ msgid "Hide users label"
-#~ msgstr "Esconder etiquetas de usuario"
-
-#~ msgid "Enable user tooltips"
-#~ msgstr "Activar tooltips de usuario"
-
-#~ msgid "Minimize console after successful login"
-#~ msgstr "Minimizar la consola después entrar correctamente"
-
-#~ msgid ""
-#~ "<center>This option will cause KVIrc to minimize the console window after "
-#~ "successfully logging into a server.</center>"
-#~ msgstr ""
-#~ "<center>Esta opción hará que KVIrc minimice la ventana de consola "
-#~ "después de entrar satisfactoriamente en un servidor.</center>"
-
-#~ msgid "On Channel Kick"
-#~ msgstr "En Expulsión del Canal"
-
-#~ msgid "Keep channel open"
-#~ msgstr "Mantener el canal abierto"
-
-#~ msgid "Rejoin channel"
-#~ msgstr "Reentrada al canal"
-
-#~ msgid ""
-#~ "<center>This option will cause KVIrc to attempt to rejoin a channel after "
-#~ "being kicked.</center>"
-#~ msgstr ""
-#~ "<center>Esta opción hará que KVIrc vuelva a entrar en el canal después "
-#~ "de haber sido expulsado.</center>"
-
-#~ msgid "On Channel Part"
-#~ msgstr "A la salida del canal"
-
-#~ msgid ""
-#~ "<center>This option will cause KVIrc to keep the channel window open "
-#~ "after leaving it.</center>"
-#~ msgstr ""
-#~ "<center>Esta opción hará que KVIrc mantenga los canales abiertos "
-#~ "después de abandonarlo.</center>"
-
-#~ msgid "Automatically join channel on invite"
-#~ msgstr "Entrar automáticamente en el canal cuando nos inviten"
-
-#~ msgid ""
-#~ "<center>This option will cause KVIrc to automatically join a channel when "
-#~ "an INVITE message for that channel is received.<br><b>Warning:</b> This "
-#~ "may help spammers harass you. :)</center>"
-#~ msgstr ""
-#~ "<center>Esta opción hará que KVIrc se una automáticamente a un canal "
-#~ "al que haya sido invitado.<br><b>Atención:</b> Esto puede ayudar a los "
-#~ "spammers a fastidiarle. :)</center>"
-
-#~ msgid "Do not update the away list"
-#~ msgstr "No actualizar la lista de ausentes"
-
-#~ msgid ""
-#~ "<center>KVIrc sends out a channel /WHO message every now and then to keep "
-#~ "the channel away list in sync. Use this option to disable this feature "
-#~ "(and to save your IRC bandwidth.</center>"
-#~ msgstr ""
-#~ "<center>KVIrc envía un mensaje /WHO al canal periódicamente para "
-#~ "mantener sincronizada la lista de ausentes. Utiliza esta opción para "
-#~ "deshabilitar esta característica (y para conservar tu ancho de banda de "
-#~ "IRC.</center>"
-
-#~ msgid "Force immediate quit"
-#~ msgstr "Forzar salida inmediata"
-
-#~ msgid ""
-#~ "<center>This option causes KVIrc to close the connection immediately "
-#~ "after sending the QUIT message.<br>When this option is disabled, KVIrc "
-#~ "will wait for the server to close the connection.<br>Note that if you use "
-#~ "this, your QUIT message may be not displayed.</center>"
-#~ msgstr ""
-#~ "<center>Esta opción haráque KVIrc cierre la conexión inmediatamente "
-#~ "después de enviar el mensaje QUIT.<br>Cuando esta opción "
-#~ "está desactivada, KVIrc esperará a que el servidor cierre la conexión."
-#~ "<br>Observe que si utiliza esta opción, su mensaje QUIT puede no ser "
-#~ "visualizado.</center>"
-
-#~ msgid ""
-#~ "<center>This option will cause KVIrc to keep the channel window open "
-#~ "after being kicked.<br>It might be a good idea to also enable the "
-#~ "\"Rejoin channel\" option.</center>"
-#~ msgstr ""
-#~ "<center>Esta opción hará que KVIrc mantenga la ventana de canal abierta "
-#~ "después de haber sido expulsado.<br>Puede ser una buena idea activar "
-#~ "también la opción \"Reentrada al canal\".</center>"
-
-#~ msgid "Do not send /WHO request"
-#~ msgstr "No enviar petición /WHO"
-
-#~ msgid "Do not request ban list"
-#~ msgstr "No pedir lista de prohibidos"
-
-#~ msgid "Do not request ban exception list"
-#~ msgstr "No pedir lista de excepción de prohibición"
-
-#~ msgid "Do not request invite list"
-#~ msgstr "No pedir lista de invitados"
-
-#~ msgid "Certificate"
-#~ msgstr "Certificado"
-
-#~ msgid "Use SSL certificate (PEM format only)"
-#~ msgstr "Usar certificado SSL (solo formato PEM)"
-
-#~ msgid "Certificate location:"
-#~ msgstr "Localización del certificado:"
-
-#~ msgid "Certificate password:"
-#~ msgstr "Clave del certificado:"
-
-#~ msgid "Private Key"
-#~ msgstr "Clave Privada"
-
-#~ msgid "Use SSL private key"
-#~ msgstr "Usar clave privada SSL"
-
-#~ msgid "Private key location:"
-#~ msgstr "Localización de la clave privada:"
-
-#~ msgid "Private key password:"
-#~ msgstr "Clave de la clave privada:"
-
-#~ msgid "This executable has no SSL support."
-#~ msgstr "Este ejecutable de KVIrc no tiene soporte SSL"
-
-#~ msgid "Timeout Values"
-#~ msgstr "Valores de Tiempos de Expiración"
-
-#~ msgid "Connect timeout:"
-#~ msgstr "Tiempo de expiración de conexión:"
-
-#~ msgid "Outgoing data queue flush timeout:"
-#~ msgstr "Tiempo de expiración para volcar la cola de datos salientes"
-
-#~ msgid "Limit outgoing traffic"
-#~ msgstr "Limitar tráfico saliente"
-
-#~ msgid "Limit to 1 message every:"
-#~ msgstr "Limitar a 1 mensaje cada:"
-
-#~ msgid " usec"
-#~ msgstr " microseg"
-
-#~ msgid ""
-#~ "<center>Minimum value: <b>10000 usec</b><br>Maximum value: <b>10000000 "
-#~ "usec</b></center>"
-#~ msgstr ""
-#~ "<center>Valor mínimo: <b>10000 microseg</b><br>Valor máximo: "
-#~ "<b>10000000 microseg</b></center>"
-
-#~ msgid "Network Interfaces"
-#~ msgstr "Interfaces de red"
-
-#~ msgid "Bind IPv4 connections to:"
-#~ msgstr "Unir conexiones IPv4 a:"
-
-#~ msgid "Bind IPv6 connections to:"
-#~ msgstr "Unir conexiones IPv6 a:"
-
-#~ msgid "Open Query For"
-#~ msgstr "Abrir Privado para"
-
-#~ msgid "Private messages"
-#~ msgstr "Mensajes privados"
-
-#~ msgid ""
-#~ "<center>This option enables query window creation when a private message "
-#~ "(PRIVMSG) is received.<br>If you disable this, private messages will be "
-#~ "shown in the active window or a common channel.</center>"
-#~ msgstr ""
-#~ "<center>Esta opción permite la creación de ventanas independientes "
-#~ "cuando se recibe un mensaje privado (PRIVMSG).<br>Si desactivas esto, los "
-#~ "mensajes privados serán mostrados en la ventana activa o en un canal "
-#~ "comn.</center>"
-
-#~ msgid "Private notices"
-#~ msgstr "Noticias privadas"
-
-#~ msgid ""
-#~ "<center>This option enables query window creation when a private notice "
-#~ "(NOTICE) is received.<br>If you disable this, private notices will be "
-#~ "shown in the active window or a common channel.</center>"
-#~ msgstr ""
-#~ "<center>Esta opción permite la creación de ventanas independientes "
-#~ "cuando se recibe una noticia privada (NOTICE).<br>Si desactivas esto, las "
-#~ "noticias privadas serán mostradas en la ventana activa o en un canal "
-#~ "comn.</center>"
-
-#~ msgid "Minimize new queries"
-#~ msgstr "Minimizar nuevos privados"
-
-#~ msgid ""
-#~ "<center>This option causes newly created query windows to be immediately "
-#~ "minimized.<br>Enable this if you don't like queries popping up while "
-#~ "you're typing something in a channel. :D</center>"
-#~ msgstr ""
-#~ "<center>Esta opción hará que las ventanas con privados recien creadas "
-#~ "sean minimizadas inmediatamente.<br>Activa esto si no te gusta que los "
-#~ "privados te interrumpan mientras estás tecleando algo en un canal. :D</"
-#~ "center>"
-
-#~ msgid "Enable target user tracking"
-#~ msgstr "Activar seguimiento de destino de usuario"
-
-#~ msgid ""
-#~ "<center>This option will enable target user tracking.<br>Some actions of "
-#~ "the target user (e.g. joins and parts) will be displayed in the window."
-#~ "<br></center>"
-#~ msgstr ""
-#~ "<center>Esta opción permitirá rastrear usuarios concretos.<br>Algunas "
-#~ "acciones de algunos usuarios (p.e. entradas y salidas) serán mostradas "
-#~ "en la ventana.<br></center>"
-
-#~ msgid "Flash system taskbar on new query message"
-#~ msgstr "Destelleo en la barra de tareas del sistema con los nuevos privados"
-
-#~ msgid ""
-#~ "<center>This option causes the system taskbar entry for KVIrc to flash "
-#~ "when a new query message is received and the KVIrc window is not the "
-#~ "active.</center>"
-#~ msgstr ""
-#~ "<center>Esta opción hará que la entrada de KVIrc en la barra de tareas "
-#~ "del sistema destellee cuando se recibe un nuevo privado y la ventana de "
-#~ "KVIrc no se encuentre seleccionada.</center>"
-
-#~ msgid "Popup notifier on new query message"
-#~ msgstr "Mostrar notificador con los nuevos mensajes privados"
-
-#~ msgid ""
-#~ "<center>This option causes a small notifier window to pop up in the low "
-#~ "right corner of the screen when a new message is received and the KVIrc "
-#~ "window is not active.</center>"
-#~ msgstr ""
-#~ "<center>Esta opción hará que se muestre una pequeña ventana de "
-#~ "notificaciones en la esquina inferior derecha de la pantalla cuando se "
-#~ "reciba un nuevo mensaje y la ventana de KVIrc no esté activa.</center>"
-
-#~ msgid "Show information about query target at the top of the query"
-#~ msgstr ""
-#~ "Mostrar información acerca del destino del privado en la parte superior"
-
-#~ msgid ""
-#~ "<center>This option enables query window information label. It can show "
-#~ "you known information about query target at the top of the window."
-#~ "<br>Uncheck if you think,that it wastes your query space/</center>"
-#~ msgstr ""
-#~ "<center>Esta opción activa la etiqueta de información en la ventana de "
-#~ "privados. Puede mostrarte la información conocida acerca del destino del "
-#~ "privado en la parte superior de la ventana.<br>Desactivala si piensas que "
-#~ "desperdicia espacio de la ventana de privados</center>"
-
-#~ msgid "Enable word highlighting"
-#~ msgstr "Activar resaltado de palabras"
-
-#~ msgid "Words to highlight:"
-#~ msgstr "Palabras a resaltar:"
-
-#~ msgid "Highlight messages containing my nickname"
-#~ msgstr "Resaltar siempre los mensajes que contengan mi nick"
-
-#~ msgid ""
-#~ "<center>If this option is enabled, KVIrc will highlight any user message "
-#~ "containing your current nickname</center>"
-#~ msgstr ""
-#~ "<center>Si se activa esta opción, KVIrc resaltará cualquier mensaje de "
-#~ "usuario que contenga su nick</center>"
-
-#~ msgid "Flash the system taskbar entry on highlighted messages"
-#~ msgstr ""
-#~ "Destelleo en la barra de tareas del sistema con los mensajes resaltados"
-
-#~ msgid ""
-#~ "<center>If this option is enabled, KVIrc will (attempt to) flash the "
-#~ "system taskbar entry when a highlighted message is printed and KVIrc is "
-#~ "not the active window</center>"
-#~ msgstr ""
-#~ "<center>Si se activa esta opción, KVIrc (intentará que la entrada de "
-#~ "la barra de tareas del sistema destellee cuando se muestre un mensaje "
-#~ "resaltado y KVIrc no sea la ventana activa</center>"
-
-#~ msgid "Popup the notifier window on highlighted messages"
-#~ msgstr "Mostrar la ventana de notificación con los mensajes resaltados"
-
-#~ msgid ""
-#~ "<center>If this option is enabled, KVIrc will popup a little notifier "
-#~ "window in the low right corner of your desktop when a highlighted message "
-#~ "is printed and KVIrc is not the active window</center>"
-#~ msgstr ""
-#~ "<center>Si se habilita esta opción, KVIrc mostrará una pequeña ventana "
-#~ "de notificaciones en la esquina inferior derecha del escritorio cuando se "
-#~ "visualice un mensaje resaltado y KVIrc no sea la ventana activa</center>"
-
-#~ msgid "Taskbar Alert"
-#~ msgstr "Barra de Tareas de Alertas"
-
-#~ msgid "Restrict alert"
-#~ msgstr "Restringir alertas"
-
-#~ msgid ""
-#~ "<center>If this option is enabled, KVIrc will alert in the taskbar only "
-#~ "if a normal message is received in a channel.<br>Actions like joins, "
-#~ "parts and mode changes will be ignored.<br> This is useful if you are in "
-#~ "channels with a high rate of traffic and only want to be alerted for "
-#~ "messages that are interesting to you.</center>"
-#~ msgstr ""
-#~ "<center>Si esta opción está activa, KVIrc alertará en la barra de "
-#~ "tareas solo si se recibe un mensaje normal en un canal.<br>Acciones como "
-#~ "entradas, salidas y cambios de modo serán ignorados.<br>Esto es útil si "
-#~ "te encuentras en canales con una gran cantidad de tráfico y solo si "
-#~ "quieres ser alertado de mensajes que te interesan.</center>"
-
-#~ msgid "Alert for highlighted words"
-#~ msgstr "Alertar por palabras resaltadas"
-
-#~ msgid ""
-#~ "<center>If this option is enabled, the taskbar will also alert for "
-#~ "messages which contain a word from the highlighted words list above.</"
-#~ "center>"
-#~ msgstr ""
-#~ "<center>Si se activa esta opción, la barra de tareas también "
-#~ "alertará de mensajes que contengan una palabra presente en la lista de "
-#~ "palabras resaltadas de la lista anterior.</center>"
-
-#~ msgid "Alert for query messages"
-#~ msgstr "Alertar por mensajes privados"
-
-#~ msgid ""
-#~ "<center>If this option is enabled, the taskbar will also alert for "
-#~ "messages which are shown in queries.</center>"
-#~ msgstr ""
-#~ "<center>Si se activa esta opción, la barra de tareas alertará también "
-#~ "de mensajes mostrados en privados.</center>"
-
-#~ msgid "Use custom alert level"
-#~ msgstr "Usar un nivel de alerta personalizado"
-
-#~ msgid ""
-#~ "<center>If this option is enabled, KVIrc will alert in the taskbar only "
-#~ "if the specified alert level is reached.</center>"
-#~ msgstr ""
-#~ "<center>Si se activa esta opción, KVIrc alertará en la barra de tareas "
-#~ "solo si se alcanza el nivel de alerta especificado.</center>"
-
-#~ msgid "Minimum alert level:"
-#~ msgstr "Nivel de alerta mínimo:"
-
-#~ msgid ""
-#~ "<center>This option sets the minimum alert level for the taskbar.</center>"
-#~ msgstr ""
-#~ "<center>Esta opción configura el mínimo nivel de alerta para la barra "
-#~ "de tareas.</center>"
-
-#~ msgid "Automatically Log"
-#~ msgstr "Grabar registro automáticamente"
-
-#~ msgid "Query windows"
-#~ msgstr "Ventanas de privados"
-
-#~ msgid "Channel windows"
-#~ msgstr "Ventanas de canal"
-
-#~ msgid "DCC Chat windows"
-#~ msgstr "Ventanas de transferencias DCC"
-
-#~ msgid "Console windows"
-#~ msgstr "Ventanas de consola"
-
-#~ msgid "Gzip logs"
-#~ msgstr "Comprimir logs con Gzip"
-
-#~ msgid "<b>http://</b> handler command:"
-#~ msgstr "<b>http://</b> comando manejador:"
-
-#~ msgid "<b>https://</b> handler command:"
-#~ msgstr "<b>https://</b> comando manejador:"
-
-#~ msgid "<b>ftp://</b> handler command:"
-#~ msgstr "<b>ftp://</b> comando manejador:"
-
-#~ msgid "<b>mailto:</b> handler command:"
-#~ msgstr "<b>mailto:</b> comando manejador:"
-
-#~ msgid "<b>file://</b> handler command:"
-#~ msgstr "<b>file://</b> comando manejador:"
-
-#~ msgid "Unknown protocol handler command:"
-#~ msgstr "Comando manejador de protocolo desconocido:"
-
-#~ msgid "Enable ident service (bad practice on UNIX!)"
-#~ msgstr "Activar servicio ident (mala práctica en UNIX!)"
-
-#~ msgid "Ident username:"
-#~ msgstr "Nombre de Usuario de Ident:"
-
-#~ msgid "Service port:"
-#~ msgstr "Puerto de servicio:"
-
-#~ msgid "IPv6 Settings"
-#~ msgstr "Opciones IPv6"
-
-#~ msgid "Enable service for IPv6"
-#~ msgstr "Activar servicio IPv6"
-
-#~ msgid "IP stack treats IPv4 as part of IPv6 namespace"
-#~ msgstr ""
-#~ "La pila IP del sistema trata IPv4 como parte del espacio de nombres IPv6"
-
-#~ msgid ""
-#~ "<p><b>Warning:</b><br>This is a <b>non RFC 1413 compliant</b> ident "
-#~ "daemon that implements only a limited subset of the Identification "
-#~ "Protocol specifications. If it is possible, install a real ident daemon.</"
-#~ "p>"
-#~ msgstr ""
-#~ "<p><b>Atención:</b><br>Este es un servicio <b>no compatible RFC 1413</b> "
-#~ "de ident que solo implementa un limitado subconjunto de las "
-#~ "especificaciones Identification Protocol. Si es posible, instala un "
-#~ "servidor ident real.</p>"
-
-#~ msgid ""
-#~ "<p><b>Warning:</b><br>This is a <b>non RFC 1413 compliant</b> ident "
-#~ "daemon that implements only a limited subset of the Identification "
-#~ "Protocol specifications.<br>On UNIX, you may also need root privileges to "
-#~ "bind to the auth port (113).<br>It is <b>highly recommended</b> that a "
-#~ "<b>real</b> system-wide ident daemon be used instead, or none at all if "
-#~ "ident is not required.</p>"
-#~ msgstr ""
-#~ "<p><b>Atención:</b><br>Este es un servicio <b>no compatible RFC 1413</b> "
-#~ "de ident que solo implementa un limitado subconjunto de las "
-#~ "especificaciones Identification Protocol.<br>En UNIX, puedes necesitar "
-#~ "también privilegios de superusuario para asociarse al puerto auth (113)."
-#~ "<br>Es <b>altamente recomendable</b> que un servidor global de ident "
-#~ "<b>real</b> sea usado en su lugar, o ninguno en absoluto si ident no es "
-#~ "necesario.</p>"
-
-#~ msgid "Use flood protection (recommended)"
-#~ msgstr "Utilizar protección de saturación (recomendado)"
-
-#~ msgid ""
-#~ "<center>This option makes KVIrc only respond to a limited number of CTCP "
-#~ "requests within a specified time interval, to prevent \"flooding\" CTCP "
-#~ "messages.</center>"
-#~ msgstr ""
-#~ "<center>Esta opción hará que KVIrc solo responda a un número limitado de "
-#~ "peticiones CTCP dentro de un intervalo especificado de tiempo, para "
-#~ "prevenir el \"flooding\" (saturación) de mensajes CTCP.</center>"
-
-#~ msgid "Allow up to:"
-#~ msgstr "Permitir hasta:"
-
-#~ msgid " requests"
-#~ msgstr " peticiones"
-
-#~ msgid ""
-#~ "<center>Minimum value: <b>0 requests</b><br>Maximum value: <b>10000 "
-#~ "requests</b></center>"
-#~ msgstr ""
-#~ "<center>Valor mínimo: <b>0 peticiones</b><br>Valor máximo: <b>10000 "
-#~ "peticiones</b></center>"
-
-#~ msgid "within:"
-#~ msgstr "cada:"
-
-#~ msgid ""
-#~ "<center>Minimum value: <b>1 sec</b><br>Maximum value: <b>3600 sec</b></"
-#~ "center>"
-#~ msgstr ""
-#~ "<center>Valor mínimo: <b>1 seg</b><br>Valor máximo: <b>3600 seg</b></"
-#~ "center>"
-
-#~ msgid "Ignored Requests"
-#~ msgstr "Ignorar Peticiones"
-
-#~ msgid "PING"
-#~ msgstr "PING"
-
-#~ msgid "FINGER"
-#~ msgstr "FINGER"
-
-#~ msgid "CLIENTINFO"
-#~ msgstr "CLIENTINFO"
-
-#~ msgid "USERINFO"
-#~ msgstr "USERINFO"
-
-#~ msgid "VERSION"
-#~ msgstr "VERSION"
-
-#~ msgid "SOURCE"
-#~ msgstr "SOURCE"
-
-#~ msgid "TIME"
-#~ msgstr "TIME"
-
-#~ msgid "PAGE"
-#~ msgstr "PAGE"
-
-#~ msgid "AVATAR"
-#~ msgstr "AVATAR"
-
-#~ msgid "DCC/TDCC"
-#~ msgstr "DCC/TDCC"
-
-#~ msgid "Use online notify list"
-#~ msgstr "Usar lista de notificaciones de conexión"
-
-#~ msgid "Show notifications in active window"
-#~ msgstr "Mostrar notificaciones en la ventana actual"
-
-#~ msgid "Flash window when users are going online"
-#~ msgstr "Destelleo de la ventana cuando los usuarios vayan estando en línea"
-
-#~ msgid "Popup notifier when users are going online"
-#~ msgstr "Mostrar notificador cuando los usuarios vayan estando en línea"
-
-#~ msgid "Advanced configuration"
-#~ msgstr "Configuración Avanzada"
-
-#~ msgid "Check USERHOST for online users"
-#~ msgstr "Comprobar USERHOST para usuarios conectados"
-
-#~ msgid "Use \"smart\" notify list manager"
-#~ msgstr "Usar gestor \"inteligente\" de lista de notificaciones"
-
-#~ msgid "Use the WATCH method if available"
-#~ msgstr "Usar el método \"WATCH\" si está disponible"
-
-#~ msgid "Check interval (in seconds)"
-#~ msgstr "Intervalo de comprobación (en segundos)"
-
-#~ msgid "ISON delay (in seconds)"
-#~ msgstr "Retraso ISON (en segundos)"
-
-#~ msgid "USERHOST delay (in seconds)"
-#~ msgstr "Retraso USERHOST (en segundos)"
-
-#~ msgid ""
-#~ "<p><b>Note:</b><br>The notify list is managed using the \"Registered Users"
-#~ "\" settings.</p>"
-#~ msgstr ""
-#~ "<p><b>Nota:</b><br>La lista de notificaciones se gestiona usando las "
-#~ "opciones de los \"Usuarios Registrados\".</p>"
-
-#~ msgid "Forcibly and completely disable the notifier"
-#~ msgstr "Desactivar forzada y completamente el notificador"
-
-#~ msgid ""
-#~ "This is an option for the impatient: it allows to forcibly and "
-#~ "permanently disable the notifier window. Please note that if this option "
-#~ "is activated then the notifier will NOT popup even if all the other "
-#~ "options around specify to use it in response to particular events. Also "
-#~ "note that this option will make all the /notifier.* commands fail "
-#~ "silently."
-#~ msgstr ""
-#~ "Esta es una opción para impacientes: permite desactivar forzada y "
-#~ "completamente la ventana de notificaciones. Por favor, observa que si se "
-#~ "activa esta opción el notificador NO se mostrará incluso si todas las "
-#~ "opciones restantes especifican su uso como respuesta a determinados "
-#~ "eventos. Observa también que esta opción hará que todos los comandos /"
-#~ "notifier.* fallen silenciosamente."
-
-#~ msgid "Disable notifier window flashing"
-#~ msgstr "Deshabilitar el parpadeo de la ventana del notificador"
-
-#~ msgid ""
-#~ "This section contains the general client options<br><p>like<b> sound, "
-#~ "mediafiles, URL handler </b> etc... </p>"
-#~ msgstr ""
-#~ "Esta sección contiene las opciones generales del cliente<br><p>como<b> "
-#~ "sonido, archivos multimedia, manejadores de URL </b> etc... </p>"
-
-#~ msgid "Use tree taskbar"
-#~ msgstr "Usar barra de tareas en árbol"
-
-#~ msgid "Sort windows by name"
-#~ msgstr "Ordenar ventanas por nombre"
-
-#~ msgid "Show window icons in taskbar"
-#~ msgstr "Mostrar iconos de ventana en la barra de tareas"
-
-#~ msgid "Show activity meter in taskbar"
-#~ msgstr "Mostrar medición de actividad en la barra de tareas"
-
-#~ msgid ""
-#~ "<center>This option enables the usage of the taskbar activity meter. Each "
-#~ "window entry will have a small indicator of the activity that is going on "
-#~ "in that window. The indicator is a small square that changes colors, dark "
-#~ "colors mean low activity, while bright colors signal high activity. KVIrc "
-#~ "also uses some heuristics to determine whether the activity is somewhat "
-#~ "\"human\" or it is generated by automated entities (such as bots or IRC "
-#~ "servers). \"Human\" activity causes the indicator to be shaded red while "
-#~ "automated activity causes the indicator to be shaded blue.</center>"
-#~ msgstr ""
-#~ "<center>Esta opción activa el uso del medidor de actividad. Cada entrada "
-#~ "en la ventana tendrá un pequeño indicador de actividad. El indicador es "
-#~ "un pequeño rectángulo que cambia de color; negro significa baja "
-#~ "actividad y colores más brillantes indican alta actividad. KVIrc usa "
-#~ "algunas heurísticas para averiguar cuando se trata de actividad \"humana"
-#~ "\" o si ésta es generada por entidades automáticas (como bots o "
-#~ "servidores IRC). La actividad \"humana\" hace que el indicador sea "
-#~ "sombreado en rojo mientas que la actividad automática hace que el "
-#~ "indicador sea sombreado en azul.</center>"
-
-#~ msgid "Show IRC context indicator in taskbar"
-#~ msgstr "Mostrar indicador de contexto de IRC en la barra de tareas"
-
-#~ msgid "Enable window tooltips"
-#~ msgstr "Activar tooltips de ventana"
-
-#~ msgid "Text/Alert Colors"
-#~ msgstr "Colores de Texto/Alertas"
-
-#~ msgid "Alert Level 1:"
-#~ msgstr "Nivel de Alerta 1:"
-
-#~ msgid "Alert Level 2:"
-#~ msgstr "Nivel de Alerta 2:"
-
-#~ msgid "Alert Level 3:"
-#~ msgstr "Nivel de Alerta 3:"
-
-#~ msgid "Alert Level 4:"
-#~ msgstr "Nivel de Alerta 4:"
-
-#~ msgid "Alert Level 5:"
-#~ msgstr "Nivel de Alerta 5:"
-
-#~ msgid "Progress bar color:"
-#~ msgstr "Color de la barra de progreso:"
-
-#~ msgid "Minimum width:"
-#~ msgstr "Anchura mínima:"
-
-#~ msgid "Maximum width:"
-#~ msgstr "Anchura máxima:"
-
-#~ msgid "Minimized:"
-#~ msgstr "Minimizado:"
-
-#~ msgid "Minimum width of buttons:"
-#~ msgstr "Anchura mínima de los botones:"
-
-#~ msgid "Maximum number of rows:"
-#~ msgstr "Máximo número de filas:"
-
-#~ msgid "Enable Ignore For"
-#~ msgstr "Activar Ignorar Para"
-
-#~ msgid "Private/channel messages"
-#~ msgstr "Mensajes privado/canal"
-
-#~ msgid "Private/channel notices"
-#~ msgstr "Notificaciones de privado/canal"
-
-#~ msgid "Use verbose ignore (show messages in console)"
-#~ msgstr "Usar ignore detallado (mostrar mensajes en consola)"
-
-#~ msgid "Enable Anti-spam For"
-#~ msgstr "Activar anti-spam para"
-
-#~ msgid "Silent anti-spam (no warnings)"
-#~ msgstr "Anti-spam silencioso (no avisa)"
-
-#~ msgid "Words considered spam:"
-#~ msgstr "Palabras consideradas spam:"
-
-#~ msgid "Use workaround for firewall"
-#~ msgstr "Usar apaño para cortafuegos"
-
-#~ msgid ""
-#~ "<center>Enable this option if you can't accept incoming connections."
-#~ "<br>KVIrc will try to use different methods to send and receive files."
-#~ "<br>Please note that these methods may NOT work when communicating with a "
-#~ "non-KVIrc client.</center>"
-#~ msgstr ""
-#~ "<center>Activa esta opción si no puedes aceptar conexiones entrantes."
-#~ "<br>KVIrc intentará usar diferentes métodos para enviar y recibir "
-#~ "archivos.<br>Por favor, observa que estos métodos pueden NO funcionar "
-#~ "cuando te comuniques con un cliente que no sea KVIrc.</center>"
-
-#~ msgid "Network Properties"
-#~ msgstr "Propiedades de Red"
-
-#~ msgid "DCC socket timeout:"
-#~ msgstr "Tiempo de expiración de socket DCC (segundos):"
-
-#~ msgid ""
-#~ "<center>This is the amount of time that KVIrc will wait for a response "
-#~ "before assuming that a DCC has failed because the remote client was "
-#~ "unable to connect to our listening socket.</center>"
-#~ msgstr ""
-#~ "<center>Esta es la candidad de tiempo que KVIrc esperará una respuesta "
-#~ "antes de asumir que un DCC ha fallado porque el extremo remoto no ha sido "
-#~ "capaz de conectar a nuestro socket a la escucha.</center>"
-
-#~ msgid "Use user-defined address or network interface"
-#~ msgstr "Utilizar dirección o interfaz de red especificado por el usuario"
-
-#~ msgid ""
-#~ "<center>Enable this option if you are on a multihost machine and want to "
-#~ "force one of the available IP addresses to be used for outgoing DCCs."
-#~ "<br>This is especially useful when you use IPv6 and IPv4 addresses."
-#~ "<br>You can force KVIrc to always choose the IPv4 interface.</center>"
-#~ msgstr ""
-#~ "<center>Activa esta opción si está en una máquina con varias "
-#~ "conexiones de red y quieres forzar que sea una de las direcciones IP "
-#~ "disponibles la que se utilice para los DCCs salientes.<br>Esto es "
-#~ "especialmente útil cuando uses direcciones IPv4 e IPv6.<br>Puedes forzar a "
-#~ "que KVIrc escoja siempre el interfaz IPv4.</center>"
-
-#~ msgid "Listen on address/interface:"
-#~ msgstr "Escuchar en la dirección/interfaz:"
-
-#~ msgid ""
-#~ "<center>This is the IP address or name of the interface to use by default "
-#~ "for outgoing DCC transfers.<br>On UNIX systems that support it, you can "
-#~ "also specify IPv4 interface names (such as <b>ppp0</b>).<br>If you set it "
-#~ "to <b>0.0.0.0</b>, KVIrc will try to use the first available IPv4 "
-#~ "interface</center>"
-#~ msgstr ""
-#~ "<center>Esta es la dirección IP o nombre de la interfaz que se "
-#~ "utilizará por defecto para las transferencias DCC salientes.<br>En los "
-#~ "sistemas UNIX que lo soporten, también pueden utilizarse nombres de "
-#~ "interfaz IPv4 (como <b>ppp0</b>).<br>Si pone el valor de esta opción a "
-#~ "<b>0.0.0.0</b>, KVIrc intentará encontrar la primera interfaz IPv4 "
-#~ "disponible</center>"
-
-#~ msgid "Use user-defined port range"
-#~ msgstr "Usar rango de puertos definidos por el usuario"
-
-#~ msgid ""
-#~ "<center>Enable this option if you want specify a local port range for DCC."
-#~ "</center>"
-#~ msgstr ""
-#~ "<center>Active esta opción si quiere especificar un rango de puertos "
-#~ "locales para el DCC.</center>"
-
-#~ msgid "Lowest port:"
-#~ msgstr "Puerto más bajo:"
-
-#~ msgid "Highest port:"
-#~ msgstr "Puerto más alto:"
-
-#~ msgid "Send a fixed address in requests"
-#~ msgstr "Enviar una dirección fija en las peticiones"
-
-#~ msgid ""
-#~ "<center>Enable this option if you want to always send a fake IP address "
-#~ "in your DCC requests.<br>This might be useful if you're behind a router "
-#~ "with a static address that does network address translation (NAT) and "
-#~ "forwards all or a range of ports.</center>"
-#~ msgstr ""
-#~ "<center>Activa esta opción si quieres enviar siempre una dirección "
-#~ "falsa en tus peticiones DCC.<br>Esto puede ser útil si estás detrás de "
-#~ "un router con una dirección estática que hace conversión de "
-#~ "direcciones de red (NAT) y redirige todos o un rango de puertos.</center>"
-
-#~ msgid "Send address/interface:"
-#~ msgstr "Enviar dirección/interfaz:"
-
-#~ msgid ""
-#~ "<center>This is the fixed address that will be sent with all DCC requests "
-#~ "if you enable the option above.</center>"
-#~ msgstr ""
-#~ "<center>Esta es la dirección fija que se enviará a todas las peticiones "
-#~ "DCC si usted marca la opción.</center>"
-
-#~ msgid "Guess address from IRC server if unroutable"
-#~ msgstr "Imaginar dirección desde el servidor IRC si no es rutable"
-
-#~ msgid ""
-#~ "<center>You can enable this option if you are behind a router that "
-#~ "forwards all or a range of ports.<br>KVIrc will try to guess the IP "
-#~ "address to use for DCC by looking up the local hostname as seen by the "
-#~ "IRC server you're connected to.<br>This method is an exclusive "
-#~ "alternative to the \"fixed address\" above.<br>It might guess the correct "
-#~ "address automatically if certain conditions are met (e.g. the IRC server "
-#~ "does not mask hostnames).</center>"
-#~ msgstr ""
-#~ "<center>Puedes habilitar esta opción si estás detrás de un enrutador "
-#~ "que redirige todos o un rango de puertos.<br>KVIrc intentará adivinar la "
-#~ "dirección IP para usarla para DCC buscando el nombre de máquina local "
-#~ "como lo ve el servidor IRC al que estás conectado.<br>Este método es "
-#~ "exclusivamente una alternativa a la \"dirección fija\" anterior.<br> "
-#~ "Puede adivinar la dirección correcta automáticamente si se cumplen "
-#~ "ciertas condiciones (p.e., el servidor IRC no enmascara los nombres de "
-#~ "máquina).</center>"
-
-#~ msgid "Use \"broken bouncer hack\" to detect address"
-#~ msgstr "Usar el \"truco del repetidor roto\" para detectar la dirección"
-
-#~ msgid ""
-#~ "<center>When you're behind a dialup router and also tunneling through a "
-#~ "psyBNC bouncer, you can use a bug in the bouncer to force KVIrc to bind "
-#~ "the DCC connections to the dialup router's address.<br>It's an ugly hack "
-#~ "- use it only if nothing else works.</center>"
-#~ msgstr ""
-#~ "<center>Cuando estás detrás de un enrutador telefónico y también "
-#~ "tunelas a través de un repetidor psyBNC, puedes utilizar un error en el "
-#~ "repetidor para forzar a KVIrc a asociar las coneciones DCC a la "
-#~ "dirección del repetidor telefónico.<br>Es un truco sucio - salvo si "
-#~ "ninguna otra cosa funciona.</center>"
-
-#~ msgid "Notify failed DCC handshakes to the remote end"
-#~ msgstr "Notificar al otro extremo las negociaciones de DCC fallidas"
-
-#~ msgid ""
-#~ "<center>If you enable this option, when a DCC request from a remote user "
-#~ "can't be satisfied KVIrc will notify him by a CTCP ERRMSG. This is a nice "
-#~ "feature so it is a good idea to leave it on unless for some reason you "
-#~ "have deactivated the antiflood system: in this case turning off this "
-#~ "option might help if you often get attacked by CTCP floods.</center>"
-#~ msgstr ""
-#~ "<center>Si activas esta opción, cuando no pueda satisfacerse una "
-#~ "petición DCC de un usuario remoto, KVIrc se lo notificará mediante un "
-#~ "CTCP ERRMSG. Esta es una característica agradable por eso es buena idea "
-#~ "dejarla activa a menos que por alguna razón hayas desactivado el sistema "
-#~ "antisaturación: en este caso desactivar esta opción puede ayudar si te "
-#~ "ves atacado por saturaciones de CTCP a menudo.</center>"
-
-#~ msgid "Maximum number of DCC sessions"
-#~ msgstr "Máximo número de sesiones DCC"
-
-#~ msgid ""
-#~ "<center>This is the maximum number of concurrent DCC sessions and it "
-#~ "includes all the DCC types (send,chat,recv...). KVIrc will refuse the "
-#~ "requests when this limit is reached.</center>"
-#~ msgstr ""
-#~ "<center>Este es el máximo número de sesiones DCC simultaneas e incluye "
-#~ "todos los tipos de DCC (envío, chat, recepción...). KVIrc "
-#~ "rechazará las peticiones cuando se alcance este límite.</center>"
-
-#~ msgid "Open all minimized"
-#~ msgstr "Abrir todas minimizadas"
-
-#~ msgid "On Incoming File"
-#~ msgstr "En Archivo Entrante"
-
-#~ msgid "Automatically accept"
-#~ msgstr "Aceptar automáticamente"
-
-#~ msgid "Open minimized when auto-accepted"
-#~ msgstr "Abrir minimizada cuando se acepte automáticamente"
-
-#~ msgid "Automatically resume when auto-accepted"
-#~ msgstr "Continuar automáticamente cuando se acepte automáticamente"
-
-#~ msgid "Automatically close on completion"
-#~ msgstr "Cerrar automáticamente al finalizar"
-
-#~ msgid "Notify completion in console"
-#~ msgstr "Notificar finalización en consola"
-
-#~ msgid "Notify completion in notifier"
-#~ msgstr "Notificar finalización en el notificador"
-
-#~ msgid ""
-#~ "<center>The \"send ahead\" DCC method allows data to be sent faster by "
-#~ "breaking some of the rules of the original DCC SEND protocol "
-#~ "specification.<br>Most clients can handle this kind of optimisation so "
-#~ "disable it only if you have problems.</center>"
-#~ msgstr ""
-#~ "<center>El método DCC \"send ahead\" permite enviar datos más "
-#~ "rápidamente saltándose algunas reglas de la especificación original "
-#~ "del protocolo DCC.<br>Muchos clientes pueden manejar este tipo de "
-#~ "optimización, por ello desactívalo únicamente si encuentras problemas.</"
-#~ "center>"
-
-#~ msgid "Guess save path from media type"
-#~ msgstr "Estimar ruta para guardar desde el tipo de medio"
-
-#~ msgid "Maximum number of DCC transfers"
-#~ msgstr "Máximo número de transferencias DCC"
-
-#~ msgid "Download folder:"
-#~ msgstr "Directorio de archivos descargados:"
-
-#~ msgid ""
-#~ "<center>This is the maximum number of concurrent DCC transfers. KVIrc "
-#~ "will refuse the requests when this limit is reached.</center>"
-#~ msgstr ""
-#~ "<center>Este es el máximo número de transferencias DCC simultaneas. KVIrc "
-#~ "rechazará las peticiones cuando se alcance este límite.</center>"
-
-#~ msgid "Bug Compatibility"
-#~ msgstr "Compatibilidad de errores"
-
-#~ msgid "Send ACK for byte 0"
-#~ msgstr "Enviar ACK para el byte 0"
-
-#~ msgid ""
-#~ "<center>This option causes KVIrc to send a zero-byte acknowledge to kick-"
-#~ "start the DCC transfer with some buggy IRC clients.<br>Use it only if "
-#~ "your DCC transfers stall just after establishing a connection without "
-#~ "sending any data.</center>"
-#~ msgstr ""
-#~ "<center>Esta opción hará que KVIrc envíe un reconocimiento de cero "
-#~ "bytes para iniciar rápidamente transferencias DCC con algunos clientes "
-#~ "IRC problemáticos.<br>Usalo en el caso en que las transferencias se "
-#~ "estanquen justo después de establecer una conexión sin enviar datos.</"
-#~ "center>"
-
-#~ msgid "Accept broken RESUME (mIRC file.ext)"
-#~ msgstr "Aceptar RESUME erroneo (mIRC archivo.ext)"
-
-#~ msgid ""
-#~ "<center>This option causes KVIrc to accept RESUME requests with invalid "
-#~ "filenames.<br>Use it if KVIrc fails to accept RESUME requests from other "
-#~ "clients (e.g. some versions of mIRC).</center>"
-#~ msgstr ""
-#~ "<center>Esta opción hará que KVIrc acepte solicitudes RESUME con "
-#~ "nombres de archivo no válidos.<br>Usalo si KVIrc falla al aceptar "
-#~ "solicitudes RESUME desde otros clientes (p.e., algunas versiones de mIRC)."
-#~ "</center>"
-
-#~ msgid "Speed limits"
-#~ msgstr "Límites de velocidad"
-
-#~ msgid "Limit upload bandwidth to"
-#~ msgstr "Limitar caudal de subida a"
-
-#~ msgid "bytes/sec"
-#~ msgstr "bytes/seg"
-
-#~ msgid "Limit download bandwidth to"
-#~ msgstr "Limitar el caudal de bajada a"
-
-#~ msgid "Packet size:"
-#~ msgstr "Tamaño de paquete:"
-
-#~ msgid " bytes"
-#~ msgstr " bytes"
-
-#~ msgid ""
-#~ "<center>This parameter controls the packet size used for DCC SEND."
-#~ "<br>With bigger packets you will be probably send data faster, but you "
-#~ "will also saturate your bandwidth and in some cases cause more disk "
-#~ "activity.<br>Reasonable values are from 512 to 4096 bytes.</center>"
-#~ msgstr ""
-#~ "<center>Este parámetro controla el tamaño de paquete usado para DCC "
-#~ "SEND.<br> Con paquetes mayores probablemente enviarán los datos más "
-#~ "deprisa, pero también podría saturar tu ancho de banda y, en algunos "
-#~ "casos, puede provocar más actividad de disco.<br>Los valores razonables "
-#~ "están entre 512 y 4096 bytes.</center>"
-
-#~ msgid "Force idle step"
-#~ msgstr "Forzar esperas"
-
-#~ msgid ""
-#~ "<center>Enable this option when the dcc file transfers tend to block your "
-#~ "computer by consuming too much CPU time. When this option is enabled the "
-#~ "idle interval below will be forcibly inserted between each sent/received "
-#~ "data packet.</center>"
-#~ msgstr ""
-#~ "<center>Habilita esta opción cuando las transferencias dcc tiendan a "
-#~ "bloquear tu ordenador consumiendo demasiado tiempo de CPU. Cuando se "
-#~ "habilita esta opción el intervalo de espera de abajo será insertado a "
-#~ "la fuerza entre cada paquete de datos enviado/recibido.</center>"
-
-#~ msgid "Idle interval:"
-#~ msgstr "Intervalo de espera:"
-
-#~ msgid ""
-#~ "<center>This parameter controls the average delay between two packets "
-#~ "sent or received.<br>A smaller interval will cause you to send data "
-#~ "faster but will also add load to your CPU, disk and network interface."
-#~ "<br>Reasonable values are from 5 to 50 milliseconds.</center>"
-#~ msgstr ""
-#~ "<center>Este parámetro controla el retraso medio entre dos paquetes "
-#~ "enviados o recibidos.<br>Un intervalo más pequeño hará que envies los "
-#~ "datos más rápidamente pero también añadirá carga a tu CPU, disco e "
-#~ "interfaz de red.<br>Los valores razonables se encuentran entre 5 y 50 "
-#~ "milisegundos.</center>"
-
-#~ msgid "Use fast send (send ahead)"
-#~ msgstr "Utilizar envio rápido (también conocido como send ahead)"
-
-#~ msgid "On Chat Request"
-#~ msgstr "En Solicitud de Chat"
-
-#~ msgid "On Voice Request"
-#~ msgstr "En Solicitud de Voz"
-
-#~ msgid "Force half-duplex mode on sound device"
-#~ msgstr "Forzar modo half-duplex en dispositivo de sonido"
-
-#~ msgid "Volume slider controls PCM, not Master"
-#~ msgstr "El deslizador controla el volumen PCM, no el principal"
-
-#~ msgid "Sound device:"
-#~ msgstr "Dispositivo de sonido:"
-
-#~ msgid "Mixer device:"
-#~ msgstr "Dispositivo mezclador:"
-
-#~ msgid "Pre-buffer size:"
-#~ msgstr "Tamaño pre-buffer:"
-
-#~ msgid "Avatar Download - KVIrc"
-#~ msgstr "Descarga de Avatar - KVIrc"
-
-#~ msgid "<center>Please wait while the avatar is being downloaded</center>"
-#~ msgstr ""
-#~ "<center>Por favor, espera mientras el avatar está siendo descargado</"
-#~ "center>"
-
-#~ msgid "Abort"
-#~ msgstr "Abortar"
-
-#~ msgid "Failed to start the download"
-#~ msgstr "Fallo al comenzar la descarga"
-
-#~ msgid "Download aborted by user"
-#~ msgstr "Descarga interrumpida por el usuario"
-
-#~ msgid "Hide avatars in userlist"
-#~ msgstr "Esconder avatares en la lista de usuarios"
-
-#~ msgid "Use avatar"
-#~ msgstr "Usar avatar"
-
-#~ msgid "Failed to Load Avatar - KVIrc"
-#~ msgstr "Falló la carga del Avatar - KVIrc"
-
-#~ msgid ""
-#~ "Failed to load the avatar image.<br>It may be an unaccessible file or an "
-#~ "unsupported image format."
-#~ msgstr ""
-#~ "Falló la carga de la imagen del avatar.<br>Puede tratarse de un archivo "
-#~ "inaccesible o un formato de imagen no soportado."
-
-#~ msgid "Failed to download the avatar image.<br><b>%Q</b>"
-#~ msgstr "Falló la descarga de la imagen del avatar.<br><b>%Q</b>"
-
-#~ msgid "Avatar Download Failed - KVIrc"
-#~ msgstr "Falló la descarga del Avatar - KVIrc"
-
-#~ msgid "Scaling"
-#~ msgstr "Escalado"
-
-#~ msgid "Scale avatar images (recommended)"
-#~ msgstr "Escalar imágenes de avatar (recomendado)"
-
-#~ msgid ""
-#~ "<center>This option will force KVIrc to scale avatars shown in the "
-#~ "userlist.<br>Avatars will be scaled to fit the constraints set below. "
-#~ "Better keep this option on. :)</center>"
-#~ msgstr ""
-#~ "<center>Esta opción obligará a KVIrc a escalar los avatares mostrados "
-#~ "en la lista de usuarios.<br>Los avatares se escalarán para cumplir las "
-#~ "restricciones seleccionadas abajo. Conviene mantener esta opción "
-#~ "activada. :)</center>"
-
-#~ msgid "Image width:"
-#~ msgstr "Anchura de la imagen:"
-
-#~ msgid "Image height:"
-#~ msgstr "Altura de la imagen:"
-
-#~ msgid "Request CTCP"
-#~ msgstr "Solicitar CTCP"
-
-#~ msgid "Request missing avatars"
-#~ msgstr "Solicitar avatares faltantes"
-
-#~ msgid "Maximum requested file size:"
-#~ msgstr "Tamaño máximo de archivo solicitado:"
-
-#~ msgid ""
-#~ "<center>This option will cause KVIrc to send a DCC GET request when "
-#~ "someone sets an avatar and there is no cached copy available.</center>"
-#~ msgstr ""
-#~ "<center>Esta opción hará que KVIrc envíe una petición DCC GET cuando "
-#~ "alguien configure un avatar y no tengamos una copia almacenada disponible."
-#~ "</center>"
-
-#~ msgid ""
-#~ "<center>This is the maximum size for avatar images that will be "
-#~ "automatically requested.<br>A reasonable value might be 102400 bytes (100 "
-#~ "K).</center>"
-#~ msgstr ""
-#~ "<center>Este es el máximo tamaño para las imágenes de avatar que "
-#~ "serán solicitadas automáticamente.<br>Un valor razonable podría ser "
-#~ "102400 bytes (100 K).</center>"
-
-#~ msgid "Automatically accept incoming avatars"
-#~ msgstr "Aceptar automáticamente avatares entrantes"
-
-#~ msgid ""
-#~ "<center>This option will cause KVIrc to auto-accept DCC SEND requests for "
-#~ "incoming avatars.<br>If you're using the \"Request missing avatars\" "
-#~ "option above, enabling this may by useful.<br>Avatars will be saved in "
-#~ "the local KVIrc directory.</center>"
-#~ msgstr ""
-#~ "<center>Esta opción hará que KVIrc acepte automáticamente las "
-#~ "peticiones DCC SEND de avatares entrantes.<br>Si estás usando la opción "
-#~ "\"Solicitar avatares faltantes\" anterior, puede ser útil activar esta."
-#~ "<br>Los avatares serán guardados en el directorio local de KVIrc.</"
-#~ "center>"
-
-#~ msgid "Remember avatars for registered users"
-#~ msgstr "Recordar avatares para usuarios registrados"
-
-#~ msgid ""
-#~ "<center>Use a user's last known avatar by default (only for users that "
-#~ "are registered).</center>"
-#~ msgstr ""
-#~ "<center>Usar por defecto el ltimo avatar conocido para el usuario (solo "
-#~ "para usuarios que están registrados).</center>"
-
-#~ msgid "Avatar offer timeout:"
-#~ msgstr "Tiempo de expiración de la oferta de avatar:"
-
-#~ msgid ""
-#~ "<center>This is the amount of time to make an avatar available for "
-#~ "transfer when requested.<br>When someone sends a CTCP AVATAR request, "
-#~ "KVIrc will reply with a CTCP AVATAR message containing the name and size "
-#~ "of your avatar image.<br>A time-limited file offer is added for the image "
-#~ "file to the requesting user.</center>"
-#~ msgstr ""
-#~ "<center>Esta es la cantidad de tiempo que un avatar estará disponible "
-#~ "para transferir cuando sea solicitado.<br>Cuando alguien envíe una "
-#~ "petición CTCP AVATAR, KVIrc puede responder con un mensaje CTCP AVATAR "
-#~ "conteniendo el nombre y el tamaño de tu imagen avatar.<br>Se "
-#~ "ofrecerá el archivo de imagen durante tiempo limitado al usuario "
-#~ "solicitante.</center>"
-
-#~ msgid "Ignore requests if no avatar is set"
-#~ msgstr "Ignorar peticiones si no hay un avatar seleccionado"
-
-#~ msgid ""
-#~ "This option will cause KVIrc to ignore channel CTCP AVATAR requests when "
-#~ "you have no avatar set. This is usually a good practice since it helps in "
-#~ "reducing traffic by not sending a reply that would be empty."
-#~ msgstr ""
-#~ "Esta opción hará que KVIrc ignore las solicitudes de canal CTCP AVATAR "
-#~ "cuando no tengas configurado un avatar.<br>Habitualmente, esta es una "
-#~ "buena práctica porque ayuda a reducir el tráfico evitando enviar "
-#~ "réplicas que podrían estar vacías."
-
-#~ msgid "Network Details"
-#~ msgstr "Detalles de la Red"
-
-#~ msgid "<center>Put here a brief description of the network.</center>"
-#~ msgstr "<center>Ponga aquí una breve descripción de la red.</center>"
-
-#~ msgid ""
-#~ "<center>This is the <b>username</b> that KVIrc will use to login to "
-#~ "servers on this network.\n"
-#~ "If this field is left empty (most common case), KVIrc will use the "
-#~ "default username specified in the \"Identity\" options tab.</center>"
-#~ msgstr ""
-#~ "<center>Este es el <b>nombre de usuario</b> que usará KVIrc para "
-#~ "autentificarse en los servidores de esta red.\n"
-#~ "Si este campo se deja vacío (el caso más normal), KVIrc usará el "
-#~ "nombre de usuario por defecto especificado en la pestaña de opciones "
-#~ "\"Identidad\".</center>"
-
-#~ msgid ""
-#~ "<center>You can specify a \"special\" <b>nickname</b> that will be used "
-#~ "to log in to the servers on this network.<br>If this field is left empty "
-#~ "(most common case), the default nickname (specified in the \"Identity\" "
-#~ "settings) will be used.</center>"
-#~ msgstr ""
-#~ "<center>Puedes especificar un <b>nick</b> \"especial\" que será usado "
-#~ "para entrar en los servidores de esta red.<br>Si se deja este campo "
-#~ "vacío (el caso más normal), se usará el nick por defecto (especificado "
-#~ "en la configuración de \"Identidad \".</center>"
-
-#~ msgid ""
-#~ "<center>You can specify a \"special\" <b>real name</b> that will be used "
-#~ "to login with the servers on this network.<br>If you leave this field "
-#~ "empty (most common case), the default \"real name\" (specified in the "
-#~ "\"Identity\" settings) will be used.</center>"
-#~ msgstr ""
-#~ "<center>Puedes especificar un <b>nombre real</b> \"especial\" que "
-#~ "será usado para entrar en los servidores de esta red.<br>Si se deja este "
-#~ "campo vacío (el caso más normal), se usará el \"nombre real\" por "
-#~ "defecto (especificado en la configuración de \"Identidad \").</center>"
-
-#~ msgid "Encoding:"
-#~ msgstr "Codificación:"
-
-#~ msgid ""
-#~ "<center>This box allows you to choose the preferred encoding for the "
-#~ "servers in this network. If you choose \"Use System Encoding\" then the "
-#~ "encoding will be set to the systemwide value that you choose in the "
-#~ "\"Encoding\" page of the options dialog.</center>"
-#~ msgstr ""
-#~ "<center>Esta casilla te permite escoger la codificación preferida para "
-#~ "los servidores de esta red. Si escoges \"Usar Codificación del Sistema\" "
-#~ "entonces la codificación será inicializada con la configuración global "
-#~ "del sistema que escojas en la pestaña \"Codificación\" del diálogo de "
-#~ "opciones.</center>"
-
-#~ msgid "Use System Encoding"
-#~ msgstr "Usar Codificación del Sistema"
-
-#~ msgid "Connect to this network at startup"
-#~ msgstr "Conectar a esta red al inicio"
-
-#~ msgid ""
-#~ "<center>This option will cause KVIrc to automatically connect to this "
-#~ "network at startup</center>"
-#~ msgstr ""
-#~ "<center>Esta opción hará que KVIrc se conecte a esta red al inicio</"
-#~ "center>"
-
-#~ msgid "Channels to join automatically upon connect:"
-#~ msgstr "Canales a unirse automáticamente después de conectar:"
-
-#~ msgid ""
-#~ "<center>Here you can set a list of channels to be joined automatically "
-#~ "after a connection to a server in this network has been established. To "
-#~ "add a channel, type its name in the text input below and click \"<b>Add</"
-#~ "b>\".</center>"
-#~ msgstr ""
-#~ "<center>Aquí puedes poner la lista de canales a los que entrarás "
-#~ "automáticamente después de establecer una conexión con un servidor de "
-#~ "esta red. Para añadir un canal, escribe su nombre en la caja de texto "
-#~ "inferior y pulsa \"<b>Añadir</b>\".</center>"
-
-#~ msgid ""
-#~ "<center>The following commands will be executed after a connection to a "
-#~ "server in this network has been established.<br><b>Important:</b> Enter "
-#~ "commands <b>without</b> a preceding slash (e.g. <tt>quote pass secret</"
-#~ "tt> instead of <tt>/quote pass secret</tt>).<br>KVIrc will first send the "
-#~ "USER command, then eventually PASS and NICK and then execute this command "
-#~ "sequence.</center>"
-#~ msgstr ""
-#~ "<center>Los siguientes comandos serán ejecutados después que una "
-#~ "conexión con un servidor de esta red haya sido establecida."
-#~ "<br><b>Importante:</b> introduce los comandos <b>sin</b> precederlos de "
-#~ "una barra (p.e. <tt>quote pass secret</tt> en lugar de <tt>/quote pass "
-#~ "secret</tt>.<br>KVIrc enviará primero el comando USER, eventualmente "
-#~ "PASS y NICK, y después ejecutará esta secuencia de comandos.</center>"
-
-#~ msgid "On Connect"
-#~ msgstr "En Conexión"
-
-#~ msgid ""
-#~ "<center>The following commands will be executed after a successful login "
-#~ "to a server in this network.<br><b>Important:</b> Enter commands "
-#~ "<b>without</b> a preceding slash (e.g. <tt>quote privatelog</tt> instead "
-#~ "of <tt>/quote privatelog</tt>).<br>This is useful for automatically "
-#~ "opening queries, setting variables, etc.</center>"
-#~ msgstr ""
-#~ "<center>Los siguientes comandos serán ejecutados después que se haya "
-#~ "entrado correctamente a un servidor en esta red.<br><b>Importante:</b> "
-#~ "introduce los comandos <b>sin</b> precederlos de una barra (p.e. "
-#~ "<tt>quote privatelog</tt> en lugar de <tt>/quote privatelog</tt>.<br>Esto "
-#~ "es útil para abrir privados automáticamente, inicializar variables, etc.</"
-#~ "center>"
-
-#~ msgid "On Login"
-#~ msgstr "Al Entrar"
-
-#~ msgid ""
-#~ "<center>This is a list of NickServ identification rules. KVIrc will use "
-#~ "them to model its automatic interaction with NickServ on this network."
-#~ "<br>Please be aware that this feature can cause your NickServ passwords "
-#~ "to be stolen if used improperly. Make sure that you fully understand the "
-#~ "NickServ authentication protocol.<br>In other words, be sure to know what "
-#~ "you're doing.<br>Also note that the password that you provide is stored "
-#~ "as <b>PLAIN TEXT</b>.</center>"
-#~ msgstr ""
-#~ "<center>Esta es la lista de reglas de identificación de NickServ. KVIrc "
-#~ "las usará para su interacción automática con NickServ en esta red."
-#~ "<br>Por favor, ten presente que esta característica puede provocar que "
-#~ "tus claves de NickServ sean robadas si se usa indebidamente. Asegrate que "
-#~ "entiendes bien el protoloco de autentificación NickServ.<br>En otras "
-#~ "palabras, asegrate de que sabes lo que están haciendo.<br>Piensa que la "
-#~ "clave que proporcionas es almacenada en <b>TEXTO PLANO</b>.</center>"
-
-#~ msgid "Server Details"
-#~ msgstr "Detalles del servidor"
-
-#~ msgid ""
-#~ "<center>This is a brief description of this server. This field has no "
-#~ "restrictions but many server lists use it to describe the server's "
-#~ "physical location</center>"
-#~ msgstr ""
-#~ "<center>Esta es una breve descripción del servidor. Este campo no tiene "
-#~ "restricciones pero muchas listas de servidores lo utilizan para describir "
-#~ "la localización física del servidor</center>"
-
-#~ msgid ""
-#~ "<center>This is the <b>username</b> that KVIrc will use to login to this "
-#~ "server.\n"
-#~ "If this field is left empty (most common case), KVIrc will first look if "
-#~ "an username is specified for the network that this server belongs to, and "
-#~ "if that is empty then KVIrc will use the default username specified in "
-#~ "the \"Identity\" options tab.</center>"
-#~ msgstr ""
-#~ "<center>Este es el <b>nombre de usuario</b> que usará KVIrc para "
-#~ "autentificarse en este servidor.\n"
-#~ "Si este campo se deja vacío (el caso más normal), KVIrc mirará primero "
-#~ "si hay un nombre de usuario especificado para la red a la que pertenece "
-#~ "este servidor, y si éste se encuentra vacío KVIrc usará el nombre de "
-#~ "usuario por defecto especificado en la pestaña de opciones \"Identidad\"."
-
-#~ msgid ""
-#~ "<center>If this server requires a password, put it in this field, "
-#~ "otherwise leave it empty.</center>"
-#~ msgstr ""
-#~ "<center>Si este servidor necesita una clave, escríbela en este campo; en "
-#~ "otro caso, déjalo vacío.</center>"
-
-#~ msgid ""
-#~ "<center>You can specify a \"special\" <b>nickname</b> that will be used "
-#~ "to log in to this server.<br>If this field is left empty (most common "
-#~ "case), KVIrc will first look if a nickname is specified for the network "
-#~ "that this server belongs to, and if that is empty then the default "
-#~ "nickname (specified in the \"Identity\" settings) will be used.</center>"
-#~ msgstr ""
-#~ "<center>Puedes especificar un <b>nick</b> \"especial\" que será usado "
-#~ "para entrar en este servidor.<br>Si se deja este campo vacío (el caso "
-#~ "más normal), KVIrc mirará primero si se especificó un nick para la "
-#~ "red a la que pertenece este servidor, y si éste se encuentra vacío se "
-#~ "usará el nick por defecto (especificado en la configuración de "
-#~ "\"Identidad \".</center>"
-
-#~ msgid ""
-#~ "<center>You can specify a \"special\" <b>real name</b> that will be used "
-#~ "to login with this server.<br>If you leave this field empty (most common "
-#~ "case), KVIrc will first look if a real name is specified for the network "
-#~ "that this server belongs to, and if that is empty the default \"real name"
-#~ "\" (specified in the \"Identity\" settings) will be used.</center>"
-#~ msgstr ""
-#~ "<center>Puedes especificar un <b>nombre real</b> \"especial\" que "
-#~ "será usado para entrar en este servidor.<br>Si se deja este campo vacío "
-#~ "(el caso más normal), KVIrc buscará primero si se especificó uno para "
-#~ "la red a la que pertenece este servidor, y si éste está vacío entonces "
-#~ "se usará el \"nombre real\" por defecto (especificado en la "
-#~ "configuración de \"Identidad \".</center>"
-
-#~ msgid "Use default user mode"
-#~ msgstr "Modos de usuario por defecto"
-
-#~ msgid ""
-#~ "<center>If this is enabled, the global initial <b>user mode</b> "
-#~ "(configured from the identity dialog) will be used. If disabled, you can "
-#~ "configure an initial user mode for this server"
-#~ msgstr ""
-#~ "<center>Si se activa, se usará el <b>modo de usuario</b> global inicial "
-#~ "(configurado desde el diálogo Identidad). Si se desactiva, puedes "
-#~ "configurar un modo de usuario inicial para este servidor.</center>"
-
-#~ msgid ""
-#~ "<center>This is the <b>IP address</b> of this server, it is here for "
-#~ "caching purposes.<br>If you leave this field empty, KVIrc will fill it in "
-#~ "the first time it connects to the server. If you enable the \"cache IP "
-#~ "address\" option below, KVIrc will use it as a \"cached result\" and "
-#~ "avoid looking it up again.</center>"
-#~ msgstr ""
-#~ "<center>Esta es la <b>dirección IP</b> de este servidor, y se encuentra "
-#~ "aquí como caché <br>Si dejas este campo vacío, KVIrc lo rellenará la "
-#~ "primera vez que te conectes al servidor. Si activas la opción de abajo "
-#~ "\"Cachear dirección IP\", KVIrc la usará como un \"resultado en caché\" "
-#~ "para evitar volver a buscarlo de nuevo.</center>"
-
-#~ msgid "Cache IP address"
-#~ msgstr "Cachear dirección IP"
-
-#~ msgid ""
-#~ "<center>This check will enable <b>IP address caching</b> for this server:"
-#~ "<br>DNS lookups can be time-consuming and might be blocking on some "
-#~ "platforms; this option will cause KVIrc to look up the server hostname "
-#~ "only once.<br><br> Advanced: you can also use this option to force a "
-#~ "certain server name to resolve to a fixed ip address when either the dns "
-#~ "for that server is temporairly unreachable or you want to avoid the round-"
-#~ "robin lookups.</center>"
-#~ msgstr ""
-#~ "<center>Esta casilla habilitará el <b>caché de dirección IP</b> para "
-#~ "este servidor:<br>las búsquedas DNS consumen tiempo y pueden ser "
-#~ "bloqueantes en algunas plataformas; esta opción hará que KVIrc busque "
-#~ "el nombre del servidor una sola vez.<br><br> Avanzado: también puedes "
-#~ "usar esta opción para forzar que un cierto nombre de servidor sea "
-#~ "resuelto a una IP fija para cuando el servidor de nombres "
-#~ "está temporálmente no disponible o quieras evitar las búsquedas "
-#~ "circulares.</center>"
-
-#~ msgid "Use SSL protocol"
-#~ msgstr "Usar protocolo SSL"
-
-#~ msgid ""
-#~ "<center>This check will cause the connection to use the <b>Secure Socket "
-#~ "Layer</b> encryption support. Obviously, this server must have support "
-#~ "for this, too. :)</center>"
-#~ msgstr ""
-#~ "<center>Esta casilla hará que para esta conexión se utilice el soporte "
-#~ "de cifrado <b>Secure Socket Layer (SSL)</b>. Obviamente, este servidor "
-#~ "deberá soportarlo también. :)</center>"
-
-#~ msgid "Connect to this server at startup"
-#~ msgstr "Conectar a este servidor al inicio"
-
-#~ msgid ""
-#~ "<center>This option will cause KVIrc to connect to the IRC server when it "
-#~ "is started.</center>"
-#~ msgstr ""
-#~ "<center>Esta opción hará que KVIrc se conecte al servidor de IRC cuando "
-#~ "arranque.</center>"
-
-#~ msgid ""
-#~ "<center>This box allows you to choose the preferred encoding for this "
-#~ "sever. If you choose \"Use Network Encoding\" then the encoding will be "
-#~ "inherited from the network that this server belongs to.</center>"
-#~ msgstr ""
-#~ "<center>Esta casilla te permite escoger la codificación preferida para "
-#~ "este servidor. Si escoges \"Usar Codificación de Red\" entonces la "
-#~ "codificación se heredará de la red a la que pertenezca este servidor.</"
-#~ "center>"
-
-#~ msgid "Use Network Encoding"
-#~ msgstr "Usar codificación de red"
-
-#~ msgid "Link filter:"
-#~ msgstr "Filtro de enlaces:"
-
-#~ msgid ""
-#~ "<center>This field specifies the name of a module that exports a link "
-#~ "filter for this type of server.<br>For plain IRC connections, you don't "
-#~ "need any link filters; this is used for incompatible protocols.</center>"
-#~ msgstr ""
-#~ "<center>Este campo especifica el nombre de un módulo que exporta un "
-#~ "filtro de enlace para este tipo de servidor.<br>Para conexiones IRC "
-#~ "normales, no necesitas ningn filtro de enlace; esto se utiliza para "
-#~ "protocolos incompatibles.</center>"
-
-#~ msgid "Id:"
-#~ msgstr "Id:"
-
-#~ msgid ""
-#~ "<center>This field allows you to specify a really unique id for this "
-#~ "server. You will then be able to use /server -x &lt;this_id&gt; to make "
-#~ "the connection. This is especially useful when you have multiple server "
-#~ "entries with the same hostname and port in different networks (bouncers?)"
-#~ "</center>"
-#~ msgstr ""
-#~ "<center>Este campo permite especificar un id único para este servidor. "
-#~ "Sería capaz de usar /server -x &lt;este_id&gt; para realizar la "
-#~ "conexión. Esto es especialmente útil cuando tienes múltiples entradas de "
-#~ "servidor con un único nombre de máquina y puerto en diferentes redes</"
-#~ "center>"
-
-#~ msgid "Proxy server:"
-#~ msgstr "Servidor Proxy:"
-
-#~ msgid ""
-#~ "<center>This is the <b>proxy</b> that KVIrc will use to connect to thos "
-#~ "server.\n"
-#~ "If this field is set in \"Default\" KVirc will use global proxy settings, "
-#~ "if it is set in \"Direct connection\" KVirc will connect to this server "
-#~ "without proxy. You can define new proxy server in global options' \"Proxy "
-#~ "servers\" menu.</center>"
-#~ msgstr ""
-#~ "<center>Este es el <b>proxy</b> que usará KVIrc para conectarse a este "
-#~ "servidor.\n"
-#~ "Si se selecciona \"Por defecto\" KVIrc usara la configuracion de proxy "
-#~ "global, mientras que si se selecciona \"Conexion directa\" KVIrc se "
-#~ "conectará a este servidor sin proxy. Puedes definir un nuevo servidor "
-#~ "proxy en el menú global de opciones \"Servidores proxy\".</center>"
-
-#~ msgid "Direct connection"
-#~ msgstr "Conexión directa"
-
-#~ msgid ""
-#~ "<center>Here you can set a list of channels to be joined automatically "
-#~ "after a connection to this server has been established. To add a channel, "
-#~ "type its name in the text input below and click \"<b>Add</b>\".</center>"
-#~ msgstr ""
-#~ "<center>Aquí puedes poner la lista de canales a los que entrará "
-#~ "automáticamente después de establecer una conexión con este servidor. "
-#~ "Para añadir un canal, escribe su nombre en la caja de texto inferior y "
-#~ "pulsa \"<b>Añadir</b>\".</center>"
-
-#~ msgid ""
-#~ "<center>The following commands will be executed after a connection has "
-#~ "been established.<br><b>Important:</b> Enter commands <b>without</b> a "
-#~ "preceding slash (e.g. <tt>quote pass secret</tt> instead of <tt>/quote "
-#~ "pass secret</tt>).<br>KVIrc will first send the USER command, then "
-#~ "eventually PASS and NICK and then execute this command sequence.<br>This "
-#~ "is particularly useful for IRC bouncers that require login commands.</"
-#~ "center>"
-#~ msgstr ""
-#~ "<center>Los siguientes comandos serán ejecutados después que una "
-#~ "conexión con este servidor haya sido establecida.<br><b>Importante:</b> "
-#~ "introduce los comandos <b>sin</b> precederlos de una barra (p.e. "
-#~ "<tt>quote pass secret</tt> en lugar de <tt>/quote pass secret</tt>."
-#~ "<br>KVIrc enviará primero el comando USER, eventualmente PASS y NICK, y "
-#~ "después ejecutará esta secuencia de comandos.<br>Esto es "
-#~ "particularmente útil para repetidores IRC que necesitan órdenes de "
-#~ "entrada.</center>"
-
-#~ msgid ""
-#~ "<center>The following commands will be executed after a successful login "
-#~ "to this server.<br><b>Important:</b> Enter commands <b>without</b> a "
-#~ "preceding slash (e.g. <tt>quote privatelog</tt> instead of <tt>/quote "
-#~ "privatelog</tt>).<br>This is useful for automatically opening queries, "
-#~ "setting variables, etc.</center>"
-#~ msgstr ""
-#~ "<center>Los siguientes comandos serán ejecutados después que se haya "
-#~ "entrado correctamente a este servidor.<br><b>Importante:</b> introduce "
-#~ "los comandos <b>sin</b> precederlos de una barra (p.e. <tt>quote "
-#~ "privatelog</tt> en lugar de <tt>/quote privatelog</tt>.<br>Esto es útil "
-#~ "para abrir privados automáticamente, inicializar variables, etc.</center>"
-
-#~ msgid "Server"
-#~ msgstr "Servidor"
-
-#~ msgid ""
-#~ "<center>This is the list of available IRC servers.<br>Right-click on the "
-#~ "list to add or remove servers and perform other actions.<br>Double-click "
-#~ "on a item for advanced options.</center>"
-#~ msgstr ""
-#~ "<center>Esta es la lista de servidores IRC disponibles.<br>Doble click en "
-#~ "la lista para añadir o eliminar servidores y realizar otras acciones."
-#~ "<br>Doble click en un elemento para acceder a las opciones avanzadas.</"
-#~ "center>"
-
-#~ msgid "New Network"
-#~ msgstr "Nueva Red"
-
-#~ msgid "New Server"
-#~ msgstr "Nuevo Servidor"
-
-#~ msgid "Remove Network/Server"
-#~ msgstr "Eliminar Red/Servidor"
-
-#~ msgid "Paste Server"
-#~ msgstr "Pegar Servidor"
-
-#~ msgid "Import List"
-#~ msgstr "Importar Lista"
-
-#~ msgid "Server:"
-#~ msgstr "Servidor:"
-
-#~ msgid ""
-#~ "<center>This is the name of the currently selected server or network</"
-#~ "center>"
-#~ msgstr ""
-#~ "<center>Este es el nombre del servidor o de la red actualmente "
-#~ "seleccionada.</center>"
-
-#~ msgid ""
-#~ "<center>This check identifies IPv6 servers.<br>If enabled, KVIrc will "
-#~ "attempt to use the IPv6 protocol (thus your OS <b>must</b> have a working "
-#~ "IPv6 stack and you <b>must</b> have an IPv6 connection).</center>"
-#~ msgstr ""
-#~ "Este indicador identifica servidores IPv6.<br>Si se habilita, KVIrc "
-#~ "intentará usar el protocolo IPv6 (tu S.O. <b>debe</b> tener una pila "
-#~ "IPv6 funcionando y <b>debes</b> tener una conexión IPv6).</center>"
-
-#~ msgid ""
-#~ "<center>This is the default <b>port</b> that this server will be "
-#~ "contacted on.<br>Usually <b>6667</b> is OK.</center>"
-#~ msgstr ""
-#~ "<center>Este es el <b>puerto</b> por defecto en el que este servidor "
-#~ "será contactado.<br>Habitualmente, <b>6667</b> es correcto.</center>"
-
-#~ msgid "<center>Click here to edit advanced options for this entry</center>"
-#~ msgstr ""
-#~ "<center>Pulse aquí para editar las opciones avanzadas de esta entrada</"
-#~ "center>"
-
-#~ msgid "Connect &Now"
-#~ msgstr "Co&nectar Ahora"
-
-#~ msgid ""
-#~ "<center>Hit this button to connect to the currently selected server.</"
-#~ "center>"
-#~ msgstr ""
-#~ "<center>Pulsa este botón para conectarse al servidor actualmente "
-#~ "seleccionado.</center>"
-
-#~ msgid ""
-#~ "<center>This button shows a list of recently used servers. It allows you "
-#~ "to quickly find them in the list.</center>"
-#~ msgstr ""
-#~ "<center>Este botón muestra una lista de los servidores usados "
-#~ "recientemente. Te permite encontrarlos rapidamente en la lista.</center>"
-
-#~ msgid "Show this dialog at startup"
-#~ msgstr "Mostrar este diálogo al inicio"
-
-#~ msgid ""
-#~ "<center>If this option is enabled, the Servers dialog will appear every "
-#~ "time you start KVIrc</center>"
-#~ msgstr ""
-#~ "<center>Si esta opción está activada, el diálogo de servidores "
-#~ "aparecerá cada vez que arranques KVIrc</center>"
-
-#~ msgid "Network:"
-#~ msgstr "Red:"
-
-#~ msgid "No selection"
-#~ msgstr "Sin selección"
-
-#~ msgid "UnknownNet"
-#~ msgstr "Red Desconocida"
-
-#~ msgid "Remove Network"
-#~ msgstr "Eliminar Red"
-
-#~ msgid "&New Server"
-#~ msgstr "&Nuevo Servidor"
-
-#~ msgid "Re&move Server"
-#~ msgstr "Eli&minar Servidor"
-
-#~ msgid "&Copy Server"
-#~ msgstr "&Copiar Servidor"
-
-#~ msgid "&Paste Server"
-#~ msgstr "&Pegar Servidor"
-
-#~ msgid "Clear List"
-#~ msgstr "Limpiar Lista"
-
-#~ msgid ""
-#~ "Oops... something weird happened:<br>Can't find any module capable of "
-#~ "importing servers."
-#~ msgstr ""
-#~ "Ouch... algo malo ha sucedido:<br>No puedo encontrar ningn módulo "
-#~ "capazde importar servidores."
-
-#~ msgid ""
-#~ "Oops... something weird happened:<br>Can't find the module that was "
-#~ "capable of this import action. :("
-#~ msgstr ""
-#~ "Ouch... algo malo ha sucedido:<br>No puedo encontrar el módulo encargado "
-#~ "de la acción de importar. :("
-
-#~ msgid "irc.unknown.net"
-#~ msgstr "irc.desconocido.net"
-
-#~ msgid ""
-#~ "This table contains the text icon associations.<br>KVirc will use them to "
-#~ "display the CTRL+I escape sequences and eventually the emoticons."
-#~ msgstr ""
-#~ "Esta tabla contiene las asociaciones de iconos de texto.<br>KVIrc los "
-#~ "usará para visualizar las secuencias de escape CTRL+I y eventualmente "
-#~ "los emoticonos."
-
-#~ msgid "Sound System"
-#~ msgstr "Sistema de Sonido"
-
-#~ msgid "This allows you to select the sound system to be used with KVIrc."
-#~ msgstr "Esto te permite seleccionar el sistema de sonido que usará KVIrc."
-
-#~ msgid "Auto-detect"
-#~ msgstr "Detectar automáticamente"
-
-#~ msgid "Media Player"
-#~ msgstr "Reproductor de Medios"
-
-#~ msgid ""
-#~ "This allows you to select the preferred media player to be used with the "
-#~ "mediaplayer.* module commands and functions."
-#~ msgstr ""
-#~ "Esto permite seleccionar el reproductor preferido que se usará con los "
-#~ "comandos y funcionas del módulo mediaplayer.*"
-
-#~ msgid "ID3 tags' encoding"
-#~ msgstr "Codificación de las etiquetas ID3"
-
-#~ msgid "This allows you to select encoding of mp3 tags."
-#~ msgstr ""
-#~ "Esto te permite seleccionar la codificación de las etiquetas de los mp3"
-
-#~ msgid "Winamp messages ecoding"
-#~ msgstr "Codificación de los mensajes de Winamp"
-
-#~ msgid "This allows you to select encoding of winamp messages."
-#~ msgstr ""
-#~ "Esto te permite seleccionar el sistema la codificación de los mensajes "
-#~ "de Winamp"
-
-#~ msgid ""
-#~ "<center><b>Settings for CTCP.</b></center><p>The <b>Client-To-Client "
-#~ "Protocol</b> (CTCP) is used to transmit special control messages over an "
-#~ "IRC connection. These messages can request information from clients or "
-#~ "negotiate file transfers.<br><br></p>"
-#~ msgstr ""
-#~ "<center><b>Configuración para CTCP</b></center><p>El <b>Client-To-Client "
-#~ "Protocol</b> (CTCP) se utiliza para transmitir mensajes de control "
-#~ "especiales sobre una conexión IRC. Estos mensajes pueden solicitar "
-#~ "informacion de clientes o negociar transferencias de archivos.<br><br></p>"
-
-#~ msgid "CTCP Replies"
-#~ msgstr "Respuestas CTCP"
-
-#~ msgid "Append to VERSION reply:"
-#~ msgstr "Añadir a la respuesta VERSION:"
-
-#~ msgid ""
-#~ "<center>This text will be appended to the CTCP VERSION reply.<br>For "
-#~ "example, you can place a script name here.</center>"
-#~ msgstr ""
-#~ "<center>Este texto será añadido a la respuesta CTCP VERSION.<br>Por "
-#~ "ejemplo, puedes poner un nombre de script aquí</center>"
-
-#~ msgid "Append to SOURCE reply:"
-#~ msgstr "Añadir a la respuesta SOURCE:"
-
-#~ msgid ""
-#~ "<center>This text will be appended to the CTCP SOURCE reply.<br>For "
-#~ "example, you can place the source URL for a script here.</center>"
-#~ msgstr ""
-#~ "<center>Este texto será añadido a la respuesta CTCP SOURCE.<br>Por "
-#~ "ejemplo, puedes poner la URL de origen de un script aquí</center>"
-
-#~ msgid "USERINFO reply:"
-#~ msgstr "Respuesta USERINFO:"
-
-#~ msgid ""
-#~ "<center>This is the CTCP USERINFO reply.<br>It can contain some "
-#~ "information about yourself.</center>"
-#~ msgstr ""
-#~ "<center> Esta es la respuesta a CTCP USERINFO.<br>Puede contener alguna "
-#~ "información acerca de ti mismo.</center>"
-
-#~ msgid "PAGE reply:"
-#~ msgstr "Respuesta PAGE:"
-
-#~ msgid ""
-#~ "<center>This is the CTCP PAGE reply.<br>It should contain some sort of "
-#~ "acknowledgement for CTCP PAGE messages.</center>"
-#~ msgstr ""
-#~ "<center>Esta es la respuesta a CTCP PAGE.<br>Debería contener algún tipo "
-#~ "de reconocimiento para los mensajes CTCP PAGE.</center>"
-
-#~ msgid "Show the CTCP replies in the active window"
-#~ msgstr "Mostrar respuestas a CTCP en la ventana activa"
-
-#~ msgid "Show dialog for CTCP page requests"
-#~ msgstr "Mostrar diálogo para solicitudes CTCP page"
-
-#~ msgid "%s (module %s)"
-#~ msgstr "%s (módulo %s)"
-
-#~ msgid "Module '%s', Command '%s'"
-#~ msgstr "Módulo '%s', Comando '%s'"
-
-#~ msgid "Can't rebind the command: window with id %s not found"
-#~ msgstr "No pude reasociar el comando: ventana con id '%s' no encontrada"
-
-#~ msgid ""
-#~ "Can't rebind the command: missing window identifier after the -r switch"
-#~ msgstr ""
-#~ "No pude reasociar el comando: perdido el identificador de ventana "
-#~ "después del modificador -r"
-
-#~ msgid "Module '%s', Function '%s'"
-#~ msgstr "Módulo '%s', Función '%s'"
-
-#~ msgid "Identifier evaluated to \"%s\""
-#~ msgstr "Identificador evaluado a \"%s\""
-
-#~ msgid ""
-#~ "The regular expression matched a zero-length substring: this is not valid "
-#~ "in the s/// operator"
-#~ msgstr ""
-#~ "La expresión regular coincidió con una subcadena de longitud cero: esto "
-#~ "no es válido en el operador s///"
-
-#~ msgid "Skipping the substitution"
-#~ msgstr "Saltando la sustitución"
-
-#~ msgid "Left operand of operator %s (%s{%s}) is undefined : assuming 0"
-#~ msgstr ""
-#~ "El operando izquierdo del operador %s (%s{%s}) no está definido : "
-#~ "asumiendo 0"
-
-#~ msgid "Left operand of operator %s (%s[%s]) is undefined : assuming 0"
-#~ msgstr ""
-#~ "El operando izquierdo del operador %s (%s[%s]) no está definido : "
-#~ "asumiendo 0"
-
-#~ msgid "Left operand of operator %s (%s) is undefined : assuming 0"
-#~ msgstr ""
-#~ "El operando izquierdo del operador %s (%s) no está definido : asumiendo 0"
-
-#~ msgid "Variable %s{%s} evaluated to '%s' in operator %s (not a number)"
-#~ msgstr "Variable %s{%s} evaluada como '%s' en operador %s (no es un número)"
-
-#~ msgid "Variable %s[%s] evaluated to '%s' in operator %s (not a number)"
-#~ msgstr "Variable %s[%s] evaluada como '%s' en operador %s (no es un número)"
-
-#~ msgid "Variable %s evaluated to '%s' in operator %s (not a number)"
-#~ msgstr "Variable %s evaluada como '%s' en operador %s (no es un número)"
-
-#~ msgid "Right operand of operator %s evaluated to '%s' (not a number)"
-#~ msgstr ""
-#~ "El operando de la derecha del operador %s evaluado a '%s' (no es un número)"
-
-#~ msgid "operator %c%c"
-#~ msgstr "operador %c%c"
-
-#~ msgid "Encoding"
-#~ msgstr "Codificación"
diff --git a/src/config.h.in b/src/config.h.in
index ebd1e3ba8..0608196e3 100644
--- a/src/config.h.in
+++ b/src/config.h.in
@@ -39,7 +39,7 @@
/* define if you want the IpV6 support */
#undef COMPILE_IPV6_SUPPORT
-/* define if you want to compile the KDE 2.x support */
+/* define if you want to compile the KDE 3.x support */
#undef COMPILE_KDE_SUPPORT
/* define if you want the memory checks */
@@ -88,6 +88,9 @@
/* define if you have libgsm and want the GSM code to be compiled */
#undef COMPILE_USE_GSM
+/* define if you want to compile the Qt 4.x support */
+#undef COMPILE_USE_QT4
+
/* define if you trust your memmove() function */
#undef COMPILE_WITH_SYSTEM_MEMMOVE
@@ -187,31 +190,31 @@
/* Define to the version of this package. */
#undef PACKAGE_VERSION
-/* The size of `int', as computed by sizeof. */
+/* The size of a `int', as computed by sizeof. */
#undef SIZEOF_INT
-/* The size of `long int', as computed by sizeof. */
+/* The size of a `long int', as computed by sizeof. */
#undef SIZEOF_LONG_INT
-/* The size of `long long int', as computed by sizeof. */
+/* The size of a `long long int', as computed by sizeof. */
#undef SIZEOF_LONG_LONG_INT
-/* The size of `short int', as computed by sizeof. */
+/* The size of a `short int', as computed by sizeof. */
#undef SIZEOF_SHORT_INT
-/* The size of `unsigned int', as computed by sizeof. */
+/* The size of a `unsigned int', as computed by sizeof. */
#undef SIZEOF_UNSIGNED_INT
-/* The size of `unsigned long int', as computed by sizeof. */
+/* The size of a `unsigned long int', as computed by sizeof. */
#undef SIZEOF_UNSIGNED_LONG_INT
-/* The size of `unsigned long long int', as computed by sizeof. */
+/* The size of a `unsigned long long int', as computed by sizeof. */
#undef SIZEOF_UNSIGNED_LONG_LONG_INT
-/* The size of `unsigned short int', as computed by sizeof. */
+/* The size of a `unsigned short int', as computed by sizeof. */
#undef SIZEOF_UNSIGNED_SHORT_INT
-/* The size of `void *', as computed by sizeof. */
+/* The size of a `void *', as computed by sizeof. */
#undef SIZEOF_VOID_P
/* Define to 1 if you have the ANSI C header files. */
diff --git a/src/kvilib/build/Makefile.am b/src/kvilib/build/Makefile.am
index 6b2bd7bec..a1daf976e 100644
--- a/src/kvilib/build/Makefile.am
+++ b/src/kvilib/build/Makefile.am
@@ -101,7 +101,9 @@ headers_HEADERS = \
../config/kvi_settings.h \
../config/kvi_sourcesdate.h \
../config/kvi_wincfg.h \
+ ../core/kvi_asciidict.h \
../core/kvi_bswap.h \
+ ../core/kvi_dict.h \
../core/kvi_error.h \
../core/kvi_heapobject.h \
../core/kvi_inttypes.h \
@@ -112,6 +114,7 @@ headers_HEADERS = \
../core/kvi_strasm.h \
../core/kvi_string.h \
../core/kvi_stringarray.h \
+ ../core/kvi_valuelist.h \
../ext/kvi_cmdformatter.h \
../ext/kvi_config.h \
../ext/kvi_crypt.h \
diff --git a/src/kvilib/config/kvi_settings.h b/src/kvilib/config/kvi_settings.h
index 2577c65ba..7f6d10d19 100644
--- a/src/kvilib/config/kvi_settings.h
+++ b/src/kvilib/config/kvi_settings.h
@@ -132,6 +132,8 @@
*/
#define KVI_DEPRECATED
-
+#ifdef COMPILE_USE_QT4
+ #define debug qDebug
+#endif
#endif //_KVI_SETTINGS_H_
diff --git a/src/kvilib/config/kvi_wincfg.h b/src/kvilib/config/kvi_wincfg.h
index 7e6353e55..31d6642b1 100644
--- a/src/kvilib/config/kvi_wincfg.h
+++ b/src/kvilib/config/kvi_wincfg.h
@@ -32,6 +32,9 @@
/* define if you want to compile with new parser */
#define COMPILE_NEW_KVS 1
+/* define if you want to use the Qt 4.x support */
+/* #undef COMPILE_USE_QT4 */
+
/* define if you want to use only the new KVS parser */
#define COMPILE_ONLY_NEW_KVS 1
diff --git a/src/kvilib/core/kvi_asciidict.h b/src/kvilib/core/kvi_asciidict.h
new file mode 100644
index 000000000..9a5f2126f
--- /dev/null
+++ b/src/kvilib/core/kvi_asciidict.h
@@ -0,0 +1,39 @@
+#ifndef _KVI_ASCIIDICT_H_
+#define _KVI_ASCIIDICT_H_
+//=================================================================================================
+//
+// File : kvi_asciidict.h
+// Creation date : Mon Jan 15 2007 04:53 by Szymon Stefanek
+//
+// This file is part of the KVirc irc client distribution
+// Copyright (C) 2007 Szymon Stefanek (pragma at kvirc dot net)
+//
+// This program is FREE software. You can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your opinion) any later version.
+//
+// This program is distributed in the HOPE that it will be USEFUL,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+// See the GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, write to the Free Software Foundation,
+// Inc. ,59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+//=================================================================================================
+
+#include "kvi_settings.h"
+
+#if COMPILE_USE_QT4
+ #include <q3asciidict.h>
+ #define KviAsciiDict Q3AsciiDict
+ #define KviAsciiDictIterator Q3AsciiDictIterator
+#else
+ #include <qasciidict.h>
+ #define KviAsciiDict QAsciiDict
+ #define KviAsciiDictIterator QAsciiDictIterator
+#endif
+
+#endif //_KVI_ASCIIDICT_H_
diff --git a/src/kvilib/core/kvi_dict.h b/src/kvilib/core/kvi_dict.h
new file mode 100644
index 000000000..67fcfba38
--- /dev/null
+++ b/src/kvilib/core/kvi_dict.h
@@ -0,0 +1,39 @@
+#ifndef _KVI_DICT_H_
+#define _KVI_DICT_H_
+//=================================================================================================
+//
+// File : kvi_dict.h
+// Creation date : Mon Jan 15 2007 04:53 by Szymon Stefanek
+//
+// This file is part of the KVirc irc client distribution
+// Copyright (C) 2007 Szymon Stefanek (pragma at kvirc dot net)
+//
+// This program is FREE software. You can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your opinion) any later version.
+//
+// This program is distributed in the HOPE that it will be USEFUL,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+// See the GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, write to the Free Software Foundation,
+// Inc. ,59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+//=================================================================================================
+
+#include "kvi_settings.h"
+
+#if COMPILE_USE_QT4
+ #include <q3dict.h>
+ #define KviDict Q3Dict
+ #define KviDictIterator Q3DictIterator
+#else
+ #include <qdict.h>
+ #define KviDict QDict
+ #define KviDictIterator QDictIterator
+#endif
+
+#endif //_KVI_DICT_H_
diff --git a/src/kvilib/core/kvi_list.h b/src/kvilib/core/kvi_list.h
index cfe4d647a..067fd7988 100644
--- a/src/kvilib/core/kvi_list.h
+++ b/src/kvilib/core/kvi_list.h
@@ -6,7 +6,7 @@
// Creation date : Tue Jul 6 1999 14:52:20 by Szymon Stefanek
//
// This file is part of the KVirc irc client distribution
-// Copyright (C) 1999-2006 Szymon Stefanek (pragma at kvirc dot net)
+// Copyright (C) 1999-2007 Szymon Stefanek (pragma at kvirc dot net)
//
// This program is FREE software. You can redistribute it and/or
// modify it under the terms of the GNU General Public License
@@ -27,16 +27,23 @@
#include "kvi_settings.h"
-#if QT_VERSION >= 300
- #include <qptrlist.h>
- #define KviPtrList QPtrList
- #define KviPtrListBase QPtrList
- #define KviPtrListIterator QPtrListIterator
+#ifdef COMPILE_USE_QT4
+ #include <q3ptrlist.h>
+ #define KviPtrList Q3PtrList
+ #define KviPtrListBase Q3PtrList
+ #define KviPtrListIterator Q3PtrListIterator
#else
- #include <qlist.h>
- #define KviPtrList QList
- #define KviPtrListBase QList
- #define KviPtrListIterator QListIterator
+ #if QT_VERSION >= 300
+ #include <qptrlist.h>
+ #define KviPtrList QPtrList
+ #define KviPtrListBase QPtrList
+ #define KviPtrListIterator QPtrListIterator
+ #else
+ #include <qlist.h>
+ #define KviPtrList QList
+ #define KviPtrListBase QList
+ #define KviPtrListIterator QListIterator
+ #endif
#endif
// BROKEN MSVC LINKER
diff --git a/src/kvilib/core/kvi_qstring.cpp b/src/kvilib/core/kvi_qstring.cpp
index c11861841..9f0463936 100644
--- a/src/kvilib/core/kvi_qstring.cpp
+++ b/src/kvilib/core/kvi_qstring.cpp
@@ -43,6 +43,8 @@
extern unsigned char iso88591_toLower_map[256];
extern unsigned char iso88591_toUpper_map[256];
+#define MY_MIN(a,b) (((a) < (b)) ? (a) : (b))
+
namespace KviQString
{
bool equalCSN(const QString &sz1,const QString &sz2,unsigned int len)
@@ -50,7 +52,7 @@ namespace KviQString
if(len == 0)return true; // assume equal
const QChar * c1 = sz1.unicode();
const QChar * c2 = sz2.unicode();
- unsigned int lmin = QMIN(sz1.length(),sz2.length());
+ unsigned int lmin = MY_MIN(sz1.length(),sz2.length());
if(lmin < len)return false;
const QChar * c1e = c1 + len;
@@ -70,7 +72,7 @@ namespace KviQString
if(len == 0)return true; // assume equal
const QChar * c1 = sz1.unicode();
const QChar * c2 = sz2.unicode();
- unsigned int lmin = QMIN(sz1.length(),sz2.length());
+ unsigned int lmin = MY_MIN(sz1.length(),sz2.length());
if(lmin < len)return false;
const QChar * c1e = c1 + len;
@@ -78,7 +80,11 @@ namespace KviQString
while(c1 < c1e)
{
+#ifdef COMPILE_USE_QT4
+ if(c1->toLower().unicode() != c2->toLower().unicode())return false;
+#else
if(c1->lower().unicode() != c2->lower().unicode())return false;
+#endif
c1++;
c2++;
}
@@ -116,7 +122,11 @@ namespace KviQString
while((c1 < c1e) && (*sz2))
{
+#ifdef COMPILE_USE_QT4
+ if(c1->toLower().unicode() != tolower(*sz2))return false;
+#else
if(c1->lower().unicode() != tolower(*sz2))return false;
+#endif
c1++;
sz2++;
}
@@ -136,7 +146,11 @@ namespace KviQString
while((c1 < c1e) && (sz2->unicode()))
{
+#ifdef COMPILE_USE_QT4
+ if(c1->toLower().unicode() != sz2->toLower().unicode())return false;
+#else
if(c1->lower().unicode() != sz2->lower().unicode())return false;
+#endif
c1++;
sz2++;
}
@@ -174,7 +188,11 @@ namespace KviQString
while(c1 < c1e)
{
+#ifdef COMPILE_USE_QT4
+ if(c1->toLower().unicode() != c2->toLower().unicode())return false;
+#else
if(c1->lower().unicode() != c2->lower().unicode())return false;
+#endif
c1++;
c2++;
}
@@ -192,7 +210,11 @@ namespace KviQString
while(c1 < c1e)
{
if(!sz2->unicode())return false; // sz1 has at least another character
+#ifdef COMPILE_USE_QT4
+ if(c1->toLower().unicode() != sz2->toLower().unicode())return false;
+#else
if(c1->lower().unicode() != sz2->lower().unicode())return false;
+#endif
c1++;
sz2++;
}
@@ -224,7 +246,11 @@ namespace KviQString
while((c1 < c1e) && (*sz2))
{
+#ifdef COMPILE_USE_QT4
+ if(c1->toLower().unicode() != tolower(*sz2))return false;
+#else
if(c1->lower().unicode() != tolower(*sz2))return false;
+#endif
c1++;
sz2++;
}
@@ -283,12 +309,24 @@ namespace KviQString
{
if(c1 >= c1e)
{
+#ifdef COMPILE_USE_QT4
+ if(c2 < c2e)return /* 0 */ - (c2->toLower().unicode());
+#else
if(c2 < c2e)return /* 0 */ - (c2->lower().unicode());
+#endif
return 0;
}
+#ifdef COMPILE_USE_QT4
+ if(c2 >= c2e)return c1->toLower().unicode() /* - 0 */;
+#else
if(c2 >= c2e)return c1->lower().unicode() /* - 0 */;
+#endif
+#ifdef COMPILE_USE_QT4
+ int diff = c1->toLower().unicode() - c2->toLower().unicode();
+#else
int diff = c1->lower().unicode() - c2->lower().unicode();
+#endif
if(diff)return diff;
c1++;
@@ -301,8 +339,8 @@ namespace KviQString
int cmpCIN(const QString &sz1,const QString &sz2,unsigned int len)
{
if(len == 0)return 0; // assume equal
- unsigned int l1 = QMIN(len,sz1.length());
- unsigned int l = QMIN(l1,sz2.length()); // FIXME: THIS IS NOT OK
+ unsigned int l1 = MY_MIN(len,sz1.length());
+ unsigned int l = MY_MIN(l1,sz2.length()); // FIXME: THIS IS NOT OK
const QChar * c1 = sz1.unicode();
const QChar * c2 = sz2.unicode();
@@ -317,7 +355,11 @@ namespace KviQString
int diff = 0;
+#ifdef COMPILE_USE_QT4
+ while((c1 < c1e) && !(diff = (c1->toLower().unicode() - c2->toLower().unicode())))
+#else
while((c1 < c1e) && !(diff = (c1->lower().unicode() - c2->lower().unicode())))
+#endif
{
c1++;
c2++;
@@ -394,13 +436,21 @@ namespace KviQString
void detach(QString &sz)
{
+#ifdef COMPILE_USE_QT4
+ sz.resize(sz.length());
+#else
sz.setLength(sz.length());
+#endif
}
const QChar * nullTerminatedArray(const QString &sz)
{
//sz.setLength(sz.length()); // detach!
+#ifdef COMPILE_USE_QT4
+ return sz.constData();
+#else
return (const QChar *)sz.ucs2(); // MAY BE NULL!
+#endif
}
void appendNumber(QString &s,double dReal)
@@ -488,7 +538,7 @@ namespace KviQString
if(reallen == allocsize)INCREMENT_MEM
//copy up to a '%'
- if(*fmt != '%')
+ if(fmt->unicode() != '%')
{
*p++ = *fmt;
reallen++;
@@ -496,7 +546,7 @@ namespace KviQString
}
++fmt; //skip this '%'
- switch(*fmt)
+ switch(fmt->unicode())
{
case 's': // char * string
{
@@ -643,7 +693,7 @@ namespace KviQString
{
*p++ = '%'; //write it
reallen++;
- if(*fmt)
+ if(fmt->unicode())
{
if(reallen == allocsize)INCREMENT_MEM
*p++ = *fmt;
@@ -703,9 +753,14 @@ namespace KviQString
// s1
//
+#ifdef COMPILE_USE_QT4
+ const QChar * m1 = (const QChar *)szM1.constData();
+ const QChar * m2 = (const QChar *)szM2.constData();
+#else
const QChar * m1 = (const QChar *)szM1.ucs2();
const QChar * m2 = (const QChar *)szM2.ucs2();
-
+#endif
+
if(!(m1 && m2 && (m1->unicode())))return false;
const QChar * savePos1 = 0;
const QChar * savePos2 = m2;
@@ -721,7 +776,11 @@ namespace KviQString
continue; //and return
}
if(!m2->unicode())return false; //m2 finished and we had something to match here!
+#ifdef COMPILE_USE_QT4
+ if(m1->toLower()==m2->toLower())
+#else
if(m1->lower()==m2->lower())
+#endif
{
//chars matched
m1++; //Go ahead in the two strings
@@ -777,7 +836,11 @@ namespace KviQString
bool matchStringCI(const QString &szExp,const QString &szStr,bool bIsRegExp,bool bExact)
{
QString szWildcard;
+#ifdef COMPILE_USE_QT4
+ QChar* ptr=(QChar*)szExp.constData();
+#else
QChar* ptr=(QChar*)szExp.ucs2();
+#endif
if(!ptr) return 0;
while(ptr->unicode())
{
@@ -791,15 +854,27 @@ namespace KviQString
}
ptr++;
}
+#ifdef COMPILE_USE_QT4
+ QRegExp re(szWildcard,Qt::CaseInsensitive,bIsRegExp ? QRegExp::RegExp : QRegExp::Wildcard);
+#else
QRegExp re(szWildcard,false,!bIsRegExp);
+#endif
if(bExact) return re.exactMatch(szStr);
+#ifdef COMPILE_USE_QT4
+ return re.indexIn(szStr) != -1;
+#else
return re.search(szStr) != -1;
+#endif
}
bool matchStringCS(const QString &szExp,const QString &szStr,bool bIsRegExp,bool bExact)
{
QString szWildcard;
+#ifdef COMPILE_USE_QT4
+ QChar* ptr=(QChar*)szExp.constData();
+#else
QChar* ptr=(QChar*)szExp.ucs2();
+#endif
if(!ptr) return 0;
while(ptr->unicode())
{
@@ -813,28 +888,48 @@ namespace KviQString
}
ptr++;
}
+#ifdef COMPILE_USE_QT4
+ QRegExp re(szWildcard,Qt::CaseSensitive,bIsRegExp ? QRegExp::RegExp : QRegExp::Wildcard);
+#else
QRegExp re(szWildcard,true,!bIsRegExp);
+#endif
if(bExact) return re.exactMatch(szStr);
+#ifdef COMPILE_USE_QT4
+ return re.indexIn(szStr) != -1;
+#else
return re.search(szStr) != -1;
+#endif
}
void cutFromFirst(QString &s,const QChar &c,bool bIncluded)
{
+#ifdef COMPILE_USE_QT4
+ int idx = s.indexOf(c);
+#else
int idx = s.find(c);
+#endif
if(idx == -1)return;
s.truncate(bIncluded ? idx : idx + 1);
}
void cutFromLast(QString &s,const QChar &c,bool bIncluded)
{
+#ifdef COMPILE_USE_QT4
+ int idx = s.lastIndexOf(c);
+#else
int idx = s.findRev(c);
+#endif
if(idx == -1)return;
s.truncate(bIncluded ? idx : idx + 1);
}
void cutToFirst(QString &s,const QChar &c,bool bIncluded,bool bClearIfNotFound)
{
+#ifdef COMPILE_USE_QT4
+ int idx = s.indexOf(c);
+#else
int idx = s.find(c);
+#endif
if(idx == -1)
{
if(bClearIfNotFound)s = "";
@@ -845,7 +940,11 @@ namespace KviQString
void cutToLast(QString &s,const QChar &c,bool bIncluded,bool bClearIfNotFound)
{
+#ifdef COMPILE_USE_QT4
+ int idx = s.lastIndexOf(c);
+#else
int idx = s.findRev(c);
+#endif
if(idx == -1)
{
if(bClearIfNotFound)s = "";
@@ -856,21 +955,33 @@ namespace KviQString
void cutFromFirst(QString &s,const QString &c,bool bIncluded)
{
+#ifdef COMPILE_USE_QT4
+ int idx = s.indexOf(c);
+#else
int idx = s.find(c);
+#endif
if(idx == -1)return;
s.truncate(bIncluded ? idx : idx + c.length());
}
void cutFromLast(QString &s,const QString &c,bool bIncluded)
{
+#ifdef COMPILE_USE_QT4
+ int idx = s.lastIndexOf(c);
+#else
int idx = s.findRev(c);
+#endif
if(idx == -1)return;
s.truncate(bIncluded ? idx : idx + c.length());
}
void cutToFirst(QString &s,const QString &c,bool bIncluded,bool bClearIfNotFound)
{
+#ifdef COMPILE_USE_QT4
+ int idx = s.indexOf(c);
+#else
int idx = s.find(c);
+#endif
if(idx == -1)
{
if(bClearIfNotFound)s = "";
@@ -881,7 +992,11 @@ namespace KviQString
void cutToLast(QString &s,const QString &c,bool bIncluded,bool bClearIfNotFound)
{
+#ifdef COMPILE_USE_QT4
+ int idx = s.lastIndexOf(c);
+#else
int idx = s.findRev(c);
+#endif
if(idx == -1)
{
if(bClearIfNotFound)s = "";
@@ -946,7 +1061,7 @@ namespace KviQString
void transliterate(QString &s,const QString &szToFind,const QString &szReplacement)
{
int i=0;
- int il = QMIN(szToFind.length(),szReplacement.length());
+ int il = MY_MIN(szToFind.length(),szReplacement.length());
while(i < il)
{
int k=0;
@@ -964,7 +1079,11 @@ namespace KviQString
void bufferToHex(QString &szRetBuffer,const unsigned char * buffer,unsigned int len)
{
+#ifdef COMPILE_USE_QT4
+ szRetBuffer.resize(len * 2);
+#else
szRetBuffer.setLength(len * 2);
+#endif
unsigned int i=0;
while(i < (len*2))
{
diff --git a/src/kvilib/core/kvi_string.cpp b/src/kvilib/core/kvi_string.cpp
index 576996ff3..4b949de51 100644
--- a/src/kvilib/core/kvi_string.cpp
+++ b/src/kvilib/core/kvi_string.cpp
@@ -193,7 +193,11 @@ 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();
+#ifdef COMPILE_USE_QT4
+ while(l-- && (p1->toLower() == p2->toLower()))p1++,p2++;
+#else
while(l-- && (p1->lower() == p2->lower()))p1++,p2++;
+#endif
if(l==-1)return true;
return false;
}
@@ -742,7 +746,11 @@ int kvi_vsnprintf(char *buffer,int len,const char *fmt,kvi_va_list list)
case 'Q': // QString! (this should almost never happen)
{
QString * s = kvi_va_arg(list,QString *);
- QCString cs = s->utf8();
+#ifdef COMPILE_USE_QT4
+ _QCString cs = s->toUtf8();
+#else
+ _QCString cs = s->utf8();
+#endif
const char * t = cs.data();
if(!t)continue; // nothing to do
//check for space...
@@ -807,7 +815,11 @@ int kvi_irc_vsnprintf(char *buffer,const char *fmt,kvi_va_list list,bool *bTrunc
case 'Q': // QString! (this should almost never happen)
{
QString * s = kvi_va_arg(list,QString *);
- QCString cs = s->utf8();
+#ifdef COMPILE_USE_QT4
+ _QCString cs = s->toUtf8();
+#else
+ _QCString cs = s->utf8();
+#endif
const char * t = cs.data();
if(!t)continue; // nothing to do
while(*t)
@@ -1032,7 +1044,7 @@ KviStr::KviStr(const char *str)
}
}
-KviStr::KviStr(const QCString &str)
+KviStr::KviStr(const _QCString &str)
{
//Deep copy constructor
if(str.data())
@@ -1111,8 +1123,13 @@ KviStr::KviStr(const KviStr &str)
KviStr::KviStr(const QString &str)
{
- QCString sz = str.utf8();
- if(sz.length() > 0){
+#ifdef COMPILE_USE_QT4
+ _QCString sz = str.toUtf8();
+#else
+ _QCString sz = str.utf8();
+#endif
+ if(sz.length() > 0)
+ {
m_len = sz.length();
m_ptr = (char *)kvi_malloc(m_len+1);
kvi_fastmove(m_ptr,sz.data(),m_len+1);
@@ -1189,7 +1206,7 @@ KviStr & KviStr::operator=(const KviStr &str)
return (*this);
}
-KviStr & KviStr::operator=(const QCString &str)
+KviStr & KviStr::operator=(const _QCString &str)
{
m_len = str.length();
m_ptr = (char *)kvi_realloc(m_ptr,m_len+1);
@@ -1485,7 +1502,11 @@ KviStr & KviStr::setStr(const char *str,int len)
KviStr & KviStr::operator=(const QString &str)
{
- QCString sz =str.utf8();
+#ifdef COMPILE_USE_QT4
+ _QCString sz =str.toUtf8();
+#else
+ _QCString sz =str.utf8();
+#endif
if(sz.length() > 0){
m_len = sz.length();
m_ptr = (char *)kvi_realloc(m_ptr,m_len+1);
@@ -1534,7 +1555,11 @@ void KviStr::append(const char *str)
void KviStr::append(const QString &str)
{
- QCString sz=str.utf8();
+#ifdef COMPILE_USE_QT4
+ _QCString sz=str.toUtf8();
+#else
+ _QCString sz=str.utf8();
+#endif
if(sz.length() < 1)return;
m_ptr = (char *)kvi_realloc(m_ptr,m_len+sz.length()+1);
kvi_fastmove((m_ptr+m_len),sz.data(),sz.length()+1);
diff --git a/src/kvilib/core/kvi_string.h b/src/kvilib/core/kvi_string.h
index 519344577..a2ef6581f 100644
--- a/src/kvilib/core/kvi_string.h
+++ b/src/kvilib/core/kvi_string.h
@@ -36,8 +36,17 @@
#include <qglobal.h>
#include <qstring.h>
-#include <qcstring.h>
+#ifdef COMPILE_USE_QT4
+ #include <q3cstring.h> // includes <qbytearray.h>
+ #define _QCString QByteArray
+#else
+ // this is dead in Qt 4.x
+ #include <qcstring.h>
+ #define _QCString QCString
+#endif
+
+#include "kvi_inttypes.h"
#include "kvi_heapobject.h"
#include "kvi_stdarg.h"
@@ -90,8 +99,8 @@ __KVI_EXTERN KVILIB_API int kvi_strcmpCI(const char *str1,const char *str2);
__KVI_EXTERN KVILIB_API int kvi_strcmpCS(const char *str1,const char *str2);
// some wide char stuff
-typedef Q_UINT16 kvi_wchar_t;
-typedef Q_UINT32 kvi_wslen_t;
+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);
@@ -147,7 +156,7 @@ public:
// Safe even if the QString is null.
KviStr(const QString &str);
- KviStr(const QCString &str);
+ KviStr(const _QCString &str);
// Fill sonstructor.
// Creates a string long fillLen characters filled with character c.<br>
@@ -256,7 +265,7 @@ public:
KviStr & operator=(const char *str); // str can be NULL here
KviStr & operator=(char c); // 2 bytes allocated ,m_len = 1
KviStr & operator=(const QString &str);
- KviStr & operator=(const QCString &str);
+ KviStr & operator=(const _QCString &str);
// Append operators
KviStr & operator+=(const KviStr &str) { append(str); return (*this); };
diff --git a/src/kvilib/core/kvi_valuelist.h b/src/kvilib/core/kvi_valuelist.h
new file mode 100644
index 000000000..4aeda319c
--- /dev/null
+++ b/src/kvilib/core/kvi_valuelist.h
@@ -0,0 +1,37 @@
+#ifndef _KVI_VALUELIST_H_
+#define _KVI_VALUELIST_H_
+//=================================================================================================
+//
+// File : kvi_valuelist.h
+// Creation date : Mon Jan 15 2007 04:53 by Szymon Stefanek
+//
+// This file is part of the KVirc irc client distribution
+// Copyright (C) 2007 Szymon Stefanek (pragma at kvirc dot net)
+//
+// This program is FREE software. You can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your opinion) any later version.
+//
+// This program is distributed in the HOPE that it will be USEFUL,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+// See the GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, write to the Free Software Foundation,
+// Inc. ,59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+//=================================================================================================
+
+#include "kvi_settings.h"
+
+#if COMPILE_USE_QT4
+ #include <q3valuelist.h>
+ #define KviValueList Q3ValueList
+#else
+ #include <qvaluelist.h>
+ #define KviValueList QValueList
+#endif
+
+#endif //_KVI_VALUELIST_H_
diff --git a/src/kvilib/ext/kvi_cmdformatter.cpp b/src/kvilib/ext/kvi_cmdformatter.cpp
index 536aa7873..1518433d4 100644
--- a/src/kvilib/ext/kvi_cmdformatter.cpp
+++ b/src/kvilib/ext/kvi_cmdformatter.cpp
@@ -63,7 +63,11 @@ namespace KviCommandFormatter
} else {
// we pretend this line to be empty
QString tmp = *it;
+#ifdef COMPILE_USE_QT4
+ tmp = tmp.trimmed();
+#else
tmp.stripWhiteSpace();
+#endif
if(!tmp.isEmpty())return false;
*it = ""; // set it to empty also in the main buffer
}
@@ -123,7 +127,11 @@ namespace KviCommandFormatter
void unindent(QString &buffer)
{
+#ifdef COMPILE_USE_QT4
+ QStringList list = buffer.split("\n",QString::KeepEmptyParts);
+#else
QStringList list = QStringList::split("\n",buffer,true);
+#endif
while(hasLeadingChars(list,QChar('\t')) || hasLeadingChars(list,QChar(' ')))trimLeading(list);
//buffer = list.join("\n"); join implementation sux :D
// we WANT the last newline
@@ -154,7 +162,11 @@ namespace KviCommandFormatter
void bufferFromBlock(QString &buffer)
{
+#ifdef COMPILE_USE_QT4
+ buffer = buffer.trimmed();
+#else
buffer.stripWhiteSpace();
+#endif
if(buffer.isEmpty())return;
@@ -168,7 +180,11 @@ namespace KviCommandFormatter
unindent(buffer);
- buffer = buffer.stripWhiteSpace();
+#ifdef COMPILE_USE_QT4
+ buffer = buffer.trimmed();
+#else
+ buffer.stripWhiteSpace();
+#endif
}
@@ -187,7 +203,11 @@ namespace KviCommandFormatter
void indent(QString &buffer)
{
+#ifdef COMPILE_USE_QT4
+ QStringList list = buffer.split("\n",QString::KeepEmptyParts);
+#else
QStringList list = QStringList::split("\n",buffer,true);
+#endif
addLeading(list,QChar('\t'));
//buffer = list.join("\n"); join implementation sux :D
// we WANT the last newline
diff --git a/src/kvilib/ext/kvi_config.cpp b/src/kvilib/ext/kvi_config.cpp
index 99728e648..0e40534ba 100644
--- a/src/kvilib/ext/kvi_config.cpp
+++ b/src/kvilib/ext/kvi_config.cpp
@@ -46,7 +46,7 @@ KviConfig::KviConfig(const QString &filename,FileMode f)
m_szGroup = KVI_CONFIG_DEFAULT_GROUP;
m_bPreserveEmptyGroups = false;
m_bReadOnly = (f == KviConfig::Read);
- m_pDict = new QDict<KviConfigGroup>(17,false);
+ m_pDict = new KviDict<KviConfigGroup>(17,false);
m_pDict->setAutoDelete(true);
if(f != KviConfig::Write)load();
}
@@ -58,7 +58,7 @@ KviConfig::KviConfig(const char* filename,FileMode f)
m_szGroup = KVI_CONFIG_DEFAULT_GROUP;
m_bPreserveEmptyGroups = false;
m_bReadOnly = (f == KviConfig::Read);
- m_pDict = new QDict<KviConfigGroup>(17,false);
+ m_pDict = new KviDict<KviConfigGroup>(17,false);
m_pDict->setAutoDelete(true);
if(f != KviConfig::Write)load();
}
@@ -73,7 +73,7 @@ KviConfig::~KviConfig()
void KviConfig::clear()
{
delete m_pDict;
- m_pDict = new QDict<KviConfigGroup>(17,false);
+ m_pDict = new KviDict<KviConfigGroup>(17,false);
m_pDict->setAutoDelete(true);
m_bDirty = false;
m_szGroup = KVI_CONFIG_DEFAULT_GROUP;
@@ -103,13 +103,13 @@ void KviConfig::getContentsString(KviStr &buffer)
buffer.append('\n');
int sections = 0;
int keys = 0;
- QDictIterator<KviStrDict> it(*m_pDict);
+ KviDictIterator<KviStrDict> it(*m_pDict);
while(it.current()){
buffer.append(" Section [");
buffer.append(it.currentKey());
buffer.append("]\n");
int sectionKeys = 0;
- QDictIterator<KviStr> it2(*it.current());
+ KviDictIterator<KviStr> it2(*it.current());
while(it2.current()){
buffer.append(" Key [");
buffer.append(it2.currentKey());
@@ -495,7 +495,7 @@ bool KviConfig::save()
if(!f.open(IO_WriteOnly | IO_Truncate))return false;
if(f.writeBlock("# KVIrc configuration file\n",27) != 27)return false;
- QDictIterator<KviConfigGroup> it(*m_pDict);
+ KviDictIterator<KviConfigGroup> it(*m_pDict);
while (it.current())
{
if((it.current()->count() != 0) || (m_bPreserveEmptyGroups))
@@ -636,9 +636,9 @@ void KviConfig::writeEntry(const QString & szKey,const QStringList &list)
p_group->replace(szKey,p_data);
}
-////////////////////////////////// QValueList<int>
+////////////////////////////////// KviValueList<int>
-QValueList<int> KviConfig::readIntListEntry(const QString & szKey,const QValueList<int> &list)
+KviValueList<int> KviConfig::readIntListEntry(const QString & szKey,const KviValueList<int> &list)
{
KviConfigGroup * p_group = getCurrentGroup();
QString * p_str = p_group->find(szKey);
@@ -648,7 +648,7 @@ QValueList<int> KviConfig::readIntListEntry(const QString & szKey,const QValueLi
return list;
}
QStringList sl = QStringList::split(",",*p_str);
- QValueList<int> ret;
+ KviValueList<int> ret;
//debug("Got option list for group %s and key %s: %s",m_szGroup.latin1(),szKey.latin1(),p_str->latin1());
@@ -663,12 +663,12 @@ QValueList<int> KviConfig::readIntListEntry(const QString & szKey,const QValueLi
}
-void KviConfig::writeEntry(const QString & szKey,const QValueList<int> &list)
+void KviConfig::writeEntry(const QString & szKey,const KviValueList<int> &list)
{
m_bDirty = true;
KviConfigGroup * p_group = getCurrentGroup();
KviStr szData;
- for(QValueList<int>::ConstIterator it = list.begin();it != list.end();++it)
+ for(KviValueList<int>::ConstIterator it = list.begin();it != list.end();++it)
{
if(szData.hasData())szData.append(',');
szData.append(KviStr::Format,"%d",*it);
diff --git a/src/kvilib/ext/kvi_config.h b/src/kvilib/ext/kvi_config.h
index b1e2cb653..0d6721c8b 100644
--- a/src/kvilib/ext/kvi_config.h
+++ b/src/kvilib/ext/kvi_config.h
@@ -28,22 +28,22 @@
#include "kvi_string.h"
#include "kvi_settings.h"
#include "kvi_heapobject.h"
+#include "kvi_dict.h"
+#include "kvi_valuelist.h"
-#include <qdict.h>
#include <qcolor.h>
#include <qfont.h>
#include <qrect.h>
#include <qstringlist.h>
-#include <qvaluelist.h>
#define KVI_CONFIG_DEFAULT_GROUP "KVIrc"
class KviPixmap;
class KviMsgType;
-typedef QDict<QString> KviConfigGroup;
-typedef QDictIterator<QString> KviConfigGroupIterator;
-typedef QDictIterator<KviConfigGroup> KviConfigIterator;
+typedef KviDict<QString> KviConfigGroup;
+typedef KviDictIterator<QString> KviConfigGroupIterator;
+typedef KviDictIterator<KviConfigGroup> KviConfigIterator;
class KVILIB_API KviConfig : public KviHeapObject
{
@@ -54,7 +54,7 @@ public:
KviConfig(const char *filename,FileMode f/* = ReadWrite*/);
~KviConfig();
private:
- QDict<KviConfigGroup> * m_pDict;
+ KviDict<KviConfigGroup> * m_pDict;
QString m_szFileName;
bool m_bDirty;
QString m_szStrBuffer;
@@ -88,7 +88,7 @@ public:
// as default configuration, alter its settings and save it to the
// user local configuration directory
void setSavePath(const QString & savePath){ m_szFileName = savePath; };
- QDict<KviConfigGroup> *dict(){ return m_pDict; };
+ KviDict<KviConfigGroup> *dict(){ return m_pDict; };
void clearDirtyFlag(){ m_bDirty = false; };
void clear();
@@ -124,8 +124,8 @@ public:
void writeEntry(const QString & szKey,const QRect &rct);
QStringList readStringListEntry(const QString & szKey,const QStringList &list);
void writeEntry(const QString & szKey,const QStringList &list);
- QValueList<int> readIntListEntry(const QString & ,const QValueList<int> &list);
- void writeEntry(const QString & szKey,const QValueList<int> &list);
+ KviValueList<int> readIntListEntry(const QString & ,const KviValueList<int> &list);
+ void writeEntry(const QString & szKey,const KviValueList<int> &list);
QString readQStringEntry(const QString & szKey,const QString &szDefault = QString::null)
{ return readEntry(szKey,szDefault); };
//void writeEntry(const QString & szKey,const QString &szValue);
diff --git a/src/kvilib/system/kvi_locale.cpp b/src/kvilib/system/kvi_locale.cpp
index 7b812355f..2c5570412 100644
--- a/src/kvilib/system/kvi_locale.cpp
+++ b/src/kvilib/system/kvi_locale.cpp
@@ -34,7 +34,6 @@
#include "kvi_locale.h"
#include <qglobal.h> //for debug()
-#include <qasciidict.h>
#include <qtextcodec.h>
#include <qdir.h>
@@ -43,13 +42,12 @@
#include "kvi_fileutils.h"
-static KviStr g_szLang;
-static KviTranslator * g_pTranslator = 0;
-KVILIB_API KviMessageCatalogue * g_pMainCatalogue = 0;
-static QAsciiDict<KviMessageCatalogue> * g_pCatalogueDict = 0;
-static QTextCodec * g_pUtf8TextCodec = 0;
-
+KVILIB_API KviMessageCatalogue * g_pMainCatalogue = 0;
+static KviStr g_szLang;
+static KviTranslator * g_pTranslator = 0;
+static KviAsciiDict<KviMessageCatalogue> * g_pCatalogueDict = 0;
+static QTextCodec * g_pUtf8TextCodec = 0;
// Code point 1st byte 2nd byte 3rd byte 4th byte
@@ -193,8 +191,13 @@ public:
virtual int mibEnum () const { return 0; };
virtual QTextDecoder * makeDecoder () const { return m_pRecvCodec->makeDecoder(); };
virtual QTextEncoder * makeEncoder () const { return m_pSendCodec->makeEncoder(); };
- QCString fromUnicode ( const QString & uc ) const { return m_pSendCodec->fromUnicode(uc); };
- virtual QCString fromUnicode ( const QString & uc, int & lenInOut ) const { return m_pSendCodec->fromUnicode(uc,lenInOut); };
+#ifdef COMPILE_USE_QT4
+ QByteArray fromUnicode (const QString & uc) const { return m_pSendCodec->fromUnicode(uc); };
+ virtual QByteArray fromUnicode (const QString & uc,int & lenInOut) const { return m_pSendCodec->fromUnicode(uc,lenInOut); };
+#else
+ QCString fromUnicode (const QString & uc) const { return m_pSendCodec->fromUnicode(uc); };
+ virtual QCString fromUnicode (const QString & uc,int & lenInOut) const { return m_pSendCodec->fromUnicode(uc,lenInOut); };
+#endif
QString toUnicode(const char * chars) const
{
if(may_be_utf8((const unsigned char *)chars))return g_pUtf8TextCodec->toUnicode(chars);
@@ -215,6 +218,7 @@ public:
if(may_be_utf8((const unsigned char *)(a.data()),a.size()))return g_pUtf8TextCodec->toUnicode(a);
return m_pRecvCodec->toUnicode(a);
};
+#ifndef COMPILE_USE_QT4
QString toUnicode(const QCString & a,int len) const
{
if(may_be_utf8((const unsigned char *)(a.data()),len))return g_pUtf8TextCodec->toUnicode(a,len);
@@ -225,6 +229,7 @@ public:
if(may_be_utf8((const unsigned char *)(a.data())))return g_pUtf8TextCodec->toUnicode(a);
return m_pRecvCodec->toUnicode(a);
};
+#endif
virtual bool canEncode(QChar ch) const { return m_pSendCodec->canEncode(ch); };
virtual bool canEncode(const QString &s) const { return m_pSendCodec->canEncode(s); };
virtual int heuristicContentMatch(const char * chars,int len) const
@@ -236,7 +241,7 @@ public:
virtual int heuristicNameMatch(const char * hint) const { return 0; };
};
-static QAsciiDict<KviSmartTextCodec> * g_pSmartCodecDict = 0;
+static KviAsciiDict<KviSmartTextCodec> * g_pSmartCodecDict = 0;
@@ -342,7 +347,7 @@ KviMessageCatalogue::KviMessageCatalogue()
//m_uEncoding = 0;
m_pTextCodec = QTextCodec::codecForLocale();
- m_pMessages = new QAsciiDict<KviTranslationEntry>(1123,true,false); // dictSize, case sensitive , don't copy keys
+ m_pMessages = new KviAsciiDict<KviTranslationEntry>(1123,true,false); // dictSize, case sensitive , don't copy keys
m_pMessages->setAutoDelete(true);
}
@@ -596,92 +601,92 @@ namespace KviLocale
{ "CP874" , 0 , 0 , "CP874" },
// smart codecs that send in the local charset
- { "ISO-8859-1 (UTF-8)" , 1 , 0 , "I: 8-bit Unicode / Western Latin-1, O: Western Latin-1" },
- { "ISO-8859-2 (UTF-8)" , 1 , 0 , "I: 8-bit Unicode / Central European 1, O: Central European 1" },
- { "ISO-8859-3 (UTF-8)" , 1 , 0 , "I: 8-bit Unicode / Central European 2, O: Central European 2" },
- { "ISO-8859-4 (UTF-8)" , 1 , 0 , "I: 8-bit Unicode / Baltic, Standard, O: Baltic, Standard" },
- { "ISO-8859-5 (UTF-8)" , 1 , 0 , "I: 8-bit Unicode / Cyrillic, ISO, O: Cyrillic, ISO" },
- { "ISO-8859-6 (UTF-8)" , 1 , 0 , "I: 8-bit Unicode / Arabic, Standard, O: Arabic, Standard" },
- { "ISO-8859-7 (UTF-8)" , 1 , 0 , "I: 8-bit Unicode / Greek, O: Greek" },
- { "ISO-8859-8 (UTF-8)" , 1 , 0 , "I: 8-bit Unicode / Hebrew, visually ordered, O: Hebrew, visually ordered" },
- { "ISO-8859-8-i (UTF-8)" , 1 , 0 , "I: 8-bit Unicode / Hebrew, logically ordered, O: Hebrew, logically ordered" },
- { "ISO-8859-9 (UTF-8)" , 1 , 0 , "I: 8-bit Unicode / Turkish, Latin-5, O: Turkish, Latin-5" },
- { "ISO-8859-15 (UTF-8)" , 1 , 0 , "I: 8-bit Unicode / Western, Latin-1 + Euro, O: Western, Latin-1 + Euro" },
- { "KOI8-R (UTF-8)" , 1 , 0 , "I: 8-bit Unicode / Cyrillic, KOI, O: Cyrillic, KOI" },
- { "KOI8-U (UTF-8)" , 1 , 0 , "I: 8-bit Unicode / Ukrainian, O: Ukrainian" },
- { "CP-1250 (UTF-8)" , 1 , 0 , "I: 8-bit Unicode / Central European 3, O: Central European 3" },
- { "CP-1251 (UTF-8)" , 1 , 0 , "I: 8-bit Unicode / Cyrillic, Windows, O: Cyrillic, Windows" },
- { "CP-1252 (UTF-8)" , 1 , 0 , "I: 8-bit Unicode / Western, CP, O: Western, CP" },
- { "CP-1253 (UTF-8)" , 1 , 0 , "I: 8-bit Unicode / Greek, CP, O: Greek, CP" },
- { "CP-1256 (UTF-8)" , 1 , 0 , "I: 8-bit Unicode / Arabic, CP, O: Arabic, CP" },
- { "CP-1257 (UTF-8)" , 1 , 0 , "I: 8-bit Unicode / Baltic, CP, O: Baltic, CP" },
- { "CP-1255 (UTF-8)" , 1 , 0 , "I: 8-bit Unicode / Hebrew, CP, O: Hebrew, CP" },
- { "CP-1254 (UTF-8)" , 1 , 0 , "I: 8-bit Unicode / Turkish, CP, O: Turkish, CP" },
- { "TIS-620 (UTF-8)" , 1 , 0 , "I: 8-bit Unicode / Thai, O: Thai" },
+ { "ISO-8859-1 [UTF-8]" , 1 , 0 , "I: 8-bit Unicode / Western Latin-1, O: Western Latin-1" },
+ { "ISO-8859-2 [UTF-8]" , 1 , 0 , "I: 8-bit Unicode / Central European 1, O: Central European 1" },
+ { "ISO-8859-3 [UTF-8]" , 1 , 0 , "I: 8-bit Unicode / Central European 2, O: Central European 2" },
+ { "ISO-8859-4 [UTF-8]" , 1 , 0 , "I: 8-bit Unicode / Baltic, Standard, O: Baltic, Standard" },
+ { "ISO-8859-5 [UTF-8]" , 1 , 0 , "I: 8-bit Unicode / Cyrillic, ISO, O: Cyrillic, ISO" },
+ { "ISO-8859-6 [UTF-8]" , 1 , 0 , "I: 8-bit Unicode / Arabic, Standard, O: Arabic, Standard" },
+ { "ISO-8859-7 [UTF-8]" , 1 , 0 , "I: 8-bit Unicode / Greek, O: Greek" },
+ { "ISO-8859-8 [UTF-8]" , 1 , 0 , "I: 8-bit Unicode / Hebrew, visually ordered, O: Hebrew, visually ordered" },
+ { "ISO-8859-8-i [UTF-8]" , 1 , 0 , "I: 8-bit Unicode / Hebrew, logically ordered, O: Hebrew, logically ordered" },
+ { "ISO-8859-9 [UTF-8]" , 1 , 0 , "I: 8-bit Unicode / Turkish, Latin-5, O: Turkish, Latin-5" },
+ { "ISO-8859-15 [UTF-8]" , 1 , 0 , "I: 8-bit Unicode / Western, Latin-1 + Euro, O: Western, Latin-1 + Euro" },
+ { "KOI8-R [UTF-8]" , 1 , 0 , "I: 8-bit Unicode / Cyrillic, KOI, O: Cyrillic, KOI" },
+ { "KOI8-U [UTF-8]" , 1 , 0 , "I: 8-bit Unicode / Ukrainian, O: Ukrainian" },
+ { "CP-1250 [UTF-8]" , 1 , 0 , "I: 8-bit Unicode / Central European 3, O: Central European 3" },
+ { "CP-1251 [UTF-8]" , 1 , 0 , "I: 8-bit Unicode / Cyrillic, Windows, O: Cyrillic, Windows" },
+ { "CP-1252 [UTF-8]" , 1 , 0 , "I: 8-bit Unicode / Western, CP, O: Western, CP" },
+ { "CP-1253 [UTF-8]" , 1 , 0 , "I: 8-bit Unicode / Greek, CP, O: Greek, CP" },
+ { "CP-1256 [UTF-8]" , 1 , 0 , "I: 8-bit Unicode / Arabic, CP, O: Arabic, CP" },
+ { "CP-1257 [UTF-8]" , 1 , 0 , "I: 8-bit Unicode / Baltic, CP, O: Baltic, CP" },
+ { "CP-1255 [UTF-8]" , 1 , 0 , "I: 8-bit Unicode / Hebrew, CP, O: Hebrew, CP" },
+ { "CP-1254 [UTF-8]" , 1 , 0 , "I: 8-bit Unicode / Turkish, CP, O: Turkish, CP" },
+ { "TIS-620 [UTF-8]" , 1 , 0 , "I: 8-bit Unicode / Thai, O: Thai" },
#ifndef QT_NO_BIG_CODECS
- { "Big5 (UTF-8)" , 1 , 0 , "I: 8-bit Unicode / Chinese Traditional, O: Chinese Traditional" },
- { "Big5-HKSCS (UTF-8)" , 1 , 0 , "I: 8-bit Unicode / Chinese Traditional, Hong Kong, O: Chinese Traditional, Hong Kong" },
- { "GB18030 (UTF-8)" , 1 , 0 , "I: 8-bit Unicode / Chinese Simplified, O: Chinese Simplified" },
- { "JIS7 (UTF-8)" , 1 , 0 , "I: 8-bit Unicode / Japanese (JIS7), O: Japanese " },
- { "Shift-JIS (UTF-8)" , 1 , 0 , "I: 8-bit Unicode / Japanese (Shift-JIS), O: Japanese (Shift-JIS)" },
- { "EUC-JP (UTF-8)" , 1 , 0 , "I: 8-bit Unicode / Japanese (EUC-JP), O: Japanese (EUC-JP)" },
- { "EUC-KR (UTF-8)" , 1 , 0 , "I: 8-bit Unicode / Korean, O: Korean" },
- { "TSCII (UTF-8)" , 1 , 0 , "I: 8-bit Unicode / Tamil, O: Tamil" },
+ { "Big5 [UTF-8]" , 1 , 0 , "I: 8-bit Unicode / Chinese Traditional, O: Chinese Traditional" },
+ { "Big5-HKSCS [UTF-8]" , 1 , 0 , "I: 8-bit Unicode / Chinese Traditional, Hong Kong, O: Chinese Traditional, Hong Kong" },
+ { "GB18030 [UTF-8]" , 1 , 0 , "I: 8-bit Unicode / Chinese Simplified, O: Chinese Simplified" },
+ { "JIS7 [UTF-8]" , 1 , 0 , "I: 8-bit Unicode / Japanese (JIS7), O: Japanese " },
+ { "Shift-JIS [UTF-8]" , 1 , 0 , "I: 8-bit Unicode / Japanese (Shift-JIS), O: Japanese (Shift-JIS)" },
+ { "EUC-JP [UTF-8]" , 1 , 0 , "I: 8-bit Unicode / Japanese (EUC-JP), O: Japanese (EUC-JP)" },
+ { "EUC-KR [UTF-8]" , 1 , 0 , "I: 8-bit Unicode / Korean, O: Korean" },
+ { "TSCII [UTF-8]" , 1 , 0 , "I: 8-bit Unicode / Tamil, O: Tamil" },
#endif
- { "ISO-8859-10 (UTF-8)" , 1 , 0 , "I: 8-bit Unicode / ISO-8859-10, O: ISO-8859-10" },
- { "ISO-8859-13 (UTF-8)" , 1 , 0 , "I: 8-bit Unicode / ISO-8859-13, O: ISO-8859-13" },
- { "ISO-8859-14 (UTF-8)" , 1 , 0 , "I: 8-bit Unicode / ISO-8859-14, O: ISO-8859-14" },
- { "IBM-850 (UTF-8)" , 1 , 0 , "I: 8-bit Unicode / IBM-850, O: IBM-850" },
- { "IBM-866 (UTF-8)" , 1 , 0 , "I: 8-bit Unicode / IBM-866, O: IBM-866" },
- { "CP874 (UTF-8)" , 1 , 0 , "I: 8-bit Unicode / CP874, O: CP874" },
+ { "ISO-8859-10 [UTF-8]" , 1 , 0 , "I: 8-bit Unicode / ISO-8859-10, O: ISO-8859-10" },
+ { "ISO-8859-13 [UTF-8]" , 1 , 0 , "I: 8-bit Unicode / ISO-8859-13, O: ISO-8859-13" },
+ { "ISO-8859-14 [UTF-8]" , 1 , 0 , "I: 8-bit Unicode / ISO-8859-14, O: ISO-8859-14" },
+ { "IBM-850 [UTF-8]" , 1 , 0 , "I: 8-bit Unicode / IBM-850, O: IBM-850" },
+ { "IBM-866 [UTF-8]" , 1 , 0 , "I: 8-bit Unicode / IBM-866, O: IBM-866" },
+ { "CP874 [UTF-8]" , 1 , 0 , "I: 8-bit Unicode / CP874, O: CP874" },
// smart codecs that send in utf8
- { "UTF-8 (ISO-8859-1)" , 1 , 1 , "I: 8-bit Unicode / Western Latin-1, O: 8-bit Unicode" },
- { "UTF-8 (ISO-8859-2)" , 1 , 1 , "I: 8-bit Unicode / Central European 1, O: 8-bit Unicode" },
- { "UTF-8 (ISO-8859-3)" , 1 , 1 , "I: 8-bit Unicode / Central European 2, O: 8-bit Unicode" },
- { "UTF-8 (ISO-8859-4)" , 1 , 1 , "I: 8-bit Unicode / Baltic, Standard, O: 8-bit Unicode" },
+ { "UTF-8 [ISO-8859-1]" , 1 , 1 , "I: 8-bit Unicode / Western Latin-1, O: 8-bit Unicode" },
+ { "UTF-8 [ISO-8859-2]" , 1 , 1 , "I: 8-bit Unicode / Central European 1, O: 8-bit Unicode" },
+ { "UTF-8 [ISO-8859-3]" , 1 , 1 , "I: 8-bit Unicode / Central European 2, O: 8-bit Unicode" },
+ { "UTF-8 [ISO-8859-4]" , 1 , 1 , "I: 8-bit Unicode / Baltic, Standard, O: 8-bit Unicode" },
- { "UTF-8 (ISO-8859-5)" , 1 , 1 , "I: 8-bit Unicode / Cyrillic, ISO, O: 8-bit Unicode" },
- { "UTF-8 (ISO-8859-6)" , 1 , 1 , "I: 8-bit Unicode / Arabic, Standard, O: 8-bit Unicode" },
- { "UTF-8 (ISO-8859-7)" , 1 , 1 , "I: 8-bit Unicode / Greek, O: 8-bit Unicode" },
- { "UTF-8 (ISO-8859-8)" , 1 , 1 , "I: 8-bit Unicode / Hebrew, visually ordered, O: 8-bit Unicode" },
+ { "UTF-8 [ISO-8859-5]" , 1 , 1 , "I: 8-bit Unicode / Cyrillic, ISO, O: 8-bit Unicode" },
+ { "UTF-8 [ISO-8859-6]" , 1 , 1 , "I: 8-bit Unicode / Arabic, Standard, O: 8-bit Unicode" },
+ { "UTF-8 [ISO-8859-7]" , 1 , 1 , "I: 8-bit Unicode / Greek, O: 8-bit Unicode" },
+ { "UTF-8 [ISO-8859-8]" , 1 , 1 , "I: 8-bit Unicode / Hebrew, visually ordered, O: 8-bit Unicode" },
- { "UTF-8 (ISO-8859-8-i)" , 1 , 1 , "I: 8-bit Unicode / Hebrew, logically ordered, O: 8-bit Unicode" },
- { "UTF-8 (ISO-8859-9)" , 1 , 1 , "I: 8-bit Unicode / Turkish, Latin-5, O: 8-bit Unicode" },
- { "UTF-8 (ISO-8859-15)" , 1 , 1 , "I: 8-bit Unicode / Western, Latin-1 + Euro, O: 8-bit Unicode" },
- { "UTF-8 (KOI8-R)" , 1 , 1 , "I: 8-bit Unicode / Cyrillic, KOI, O: 8-bit Unicode" },
+ { "UTF-8 [ISO-8859-8-i]" , 1 , 1 , "I: 8-bit Unicode / Hebrew, logically ordered, O: 8-bit Unicode" },
+ { "UTF-8 [ISO-8859-9]" , 1 , 1 , "I: 8-bit Unicode / Turkish, Latin-5, O: 8-bit Unicode" },
+ { "UTF-8 [ISO-8859-15]" , 1 , 1 , "I: 8-bit Unicode / Western, Latin-1 + Euro, O: 8-bit Unicode" },
+ { "UTF-8 [KOI8-R]" , 1 , 1 , "I: 8-bit Unicode / Cyrillic, KOI, O: 8-bit Unicode" },
- { "UTF-8 (KOI8-U)" , 1 , 1 , "I: 8-bit Unicode / Ukrainian, O: 8-bit Unicode" },
- { "UTF-8 (CP-1250)" , 1 , 1 , "I: 8-bit Unicode / Central European 3, O: 8-bit Unicode" },
- { "UTF-8 (CP-1251)" , 1 , 1 , "I: 8-bit Unicode / Cyrillic, Windows, O: 8-bit Unicode" },
- { "UTF-8 (CP-1252)" , 1 , 1 , "I: 8-bit Unicode / Western, CP, O: 8-bit Unicode" },
+ { "UTF-8 [KOI8-U]" , 1 , 1 , "I: 8-bit Unicode / Ukrainian, O: 8-bit Unicode" },
+ { "UTF-8 [CP-1250]" , 1 , 1 , "I: 8-bit Unicode / Central European 3, O: 8-bit Unicode" },
+ { "UTF-8 [CP-1251]" , 1 , 1 , "I: 8-bit Unicode / Cyrillic, Windows, O: 8-bit Unicode" },
+ { "UTF-8 [CP-1252]" , 1 , 1 , "I: 8-bit Unicode / Western, CP, O: 8-bit Unicode" },
- { "UTF-8 (CP-1253)" , 1 , 1 , "I: 8-bit Unicode / Greek, CP, O: 8-bit Unicode" },
- { "UTF-8 (CP-1256)" , 1 , 1 , "I: 8-bit Unicode / Arabic, CP, O: 8-bit Unicode" },
- { "UTF-8 (CP-1257)" , 1 , 1 , "I: 8-bit Unicode / Baltic, CP, O: 8-bit Unicode" },
- { "UTF-8 (CP-1255)" , 1 , 1 , "I: 8-bit Unicode / Hebrew, CP, O: 8-bit Unicode" },
+ { "UTF-8 [CP-1253]" , 1 , 1 , "I: 8-bit Unicode / Greek, CP, O: 8-bit Unicode" },
+ { "UTF-8 [CP-1256]" , 1 , 1 , "I: 8-bit Unicode / Arabic, CP, O: 8-bit Unicode" },
+ { "UTF-8 [CP-1257]" , 1 , 1 , "I: 8-bit Unicode / Baltic, CP, O: 8-bit Unicode" },
+ { "UTF-8 [CP-1255]" , 1 , 1 , "I: 8-bit Unicode / Hebrew, CP, O: 8-bit Unicode" },
- { "UTF-8 (CP-1254)" , 1 , 1 , "I: 8-bit Unicode / Turkish, CP, O: 8-bit Unicode" },
- { "UTF-8 (TIS-620)" , 1 , 1 , "I: 8-bit Unicode / Thai, O: 8-bit Unicode" },
+ { "UTF-8 [CP-1254]" , 1 , 1 , "I: 8-bit Unicode / Turkish, CP, O: 8-bit Unicode" },
+ { "UTF-8 [TIS-620]" , 1 , 1 , "I: 8-bit Unicode / Thai, O: 8-bit Unicode" },
#ifndef QT_NO_BIG_CODECS
- { "UTF-8 (Big5)" , 1 , 1 , "I: 8-bit Unicode / Chinese Traditional, O: 8-bit Unicode" },
- { "UTF-8 (Big5-HKSCS)" , 1 , 1 , "I: 8-bit Unicode / Chinese Traditional, Hong Kong, O: 8-bit Unicode" },
+ { "UTF-8 [Big5]" , 1 , 1 , "I: 8-bit Unicode / Chinese Traditional, O: 8-bit Unicode" },
+ { "UTF-8 [Big5-HKSCS]" , 1 , 1 , "I: 8-bit Unicode / Chinese Traditional, Hong Kong, O: 8-bit Unicode" },
- { "UTF-8 (GB18030)" , 1 , 1 , "I: 8-bit Unicode / Chinese Simplified, O: 8-bit Unicode" },
- { "UTF-8 (JIS7)" , 1 , 1 , "I: 8-bit Unicode / Japanese (JIS7), O: 8-bit Unicode" },
- { "UTF-8 (Shift-JIS)" , 1 , 1 , "I: 8-bit Unicode / Japanese (Shift-JIS), O: Japanese (Shift-JIS)" },
- { "UTF-8 (EUC-JP)" , 1 , 1 , "I: 8-bit Unicode / Japanese (EUC-JP), O: Japanese (EUC-JP)" },
+ { "UTF-8 [GB18030]" , 1 , 1 , "I: 8-bit Unicode / Chinese Simplified, O: 8-bit Unicode" },
+ { "UTF-8 [JIS7]" , 1 , 1 , "I: 8-bit Unicode / Japanese (JIS7), O: 8-bit Unicode" },
+ { "UTF-8 [Shift-JIS]" , 1 , 1 , "I: 8-bit Unicode / Japanese (Shift-JIS), O: Japanese (Shift-JIS)" },
+ { "UTF-8 [EUC-JP]" , 1 , 1 , "I: 8-bit Unicode / Japanese (EUC-JP), O: Japanese (EUC-JP)" },
- { "UTF-8 (EUC-KR)" , 1 , 1 , "I: 8-bit Unicode / Korean, O: 8-bit Unicode" },
- { "UTF-8 (TSCII)" , 1 , 1 , "I: 8-bit Unicode / Tamil, O: 8-bit Unicode" },
+ { "UTF-8 [EUC-KR]" , 1 , 1 , "I: 8-bit Unicode / Korean, O: 8-bit Unicode" },
+ { "UTF-8 [TSCII]" , 1 , 1 , "I: 8-bit Unicode / Tamil, O: 8-bit Unicode" },
#endif
- { "UTF-8 (ISO-8859-10)" , 1 , 1 , "I: 8-bit Unicode / ISO-8859-10, O: 8-bit Unicode" },
- { "UTF-8 (ISO-8859-13)" , 1 , 1 , "I: 8-bit Unicode / ISO-8859-13, O: 8-bit Unicode" },
+ { "UTF-8 [ISO-8859-10]" , 1 , 1 , "I: 8-bit Unicode / ISO-8859-10, O: 8-bit Unicode" },
+ { "UTF-8 [ISO-8859-13]" , 1 , 1 , "I: 8-bit Unicode / ISO-8859-13, O: 8-bit Unicode" },
- { "UTF-8 (ISO-8859-14)" , 1 , 1 , "I: 8-bit Unicode / ISO-8859-14, O: 8-bit Unicode" },
- { "UTF-8 (IBM-850)" , 1 , 1 , "I: 8-bit Unicode / IBM-850, O: 8-bit Unicode" },
- { "UTF-8 (IBM-866)" , 1 , 1 , "I: 8-bit Unicode / IBM-866, O: 8-bit Unicode" },
- { "UTF-8 (CP874)" , 1 , 1 , "I: 8-bit Unicode / CP874, O: 8-bit Unicode" },
+ { "UTF-8 [ISO-8859-14]" , 1 , 1 , "I: 8-bit Unicode / ISO-8859-14, O: 8-bit Unicode" },
+ { "UTF-8 [IBM-850]" , 1 , 1 , "I: 8-bit Unicode / IBM-850, O: 8-bit Unicode" },
+ { "UTF-8 [IBM-866]" , 1 , 1 , "I: 8-bit Unicode / IBM-866, O: 8-bit Unicode" },
+ { "UTF-8 [CP874]" , 1 , 1 , "I: 8-bit Unicode / CP874, O: 8-bit Unicode" },
{ 0 , 0 , 0 , 0 }
};
@@ -695,21 +700,22 @@ namespace KviLocale
QTextCodec * codecForName(const char * szName)
{
KviStr szTmp = szName;
- int idx = szTmp.findFirstIdx('(');
+ int idx = szTmp.findFirstIdx('[');
if(idx != -1)
{
- // composite codec: either UTF-8 (child codec) or child codec (UTF-8)
+ // composite codec: either UTF-8 [child codec] or child codec [UTF-8]
KviSmartTextCodec * c = g_pSmartCodecDict->find(szName);
if(c)return c;
- szTmp.replaceAll("UTF-8 (","");
- szTmp.replaceAll(")","");
- if(kvi_strEqualCIN("UTF-8 (",szName,7))
+ if(kvi_strEqualCIN("UTF-8 [",szName,7))
{
+ szTmp.replaceAll("UTF-8 [","");
+ szTmp.replaceAll("]","");
// smart codec that sends UTF-8
c = new KviSmartTextCodec(szName,szTmp.ptr(),true);
} else {
+ szTmp.cutFromFirst(' ');
// smart codec that sends child encoding
c = new KviSmartTextCodec(szName,szTmp.ptr(),false);
}
@@ -832,11 +838,11 @@ namespace KviLocale
// the main catalogue is supposed to be kvirc_<language>.mo
g_pMainCatalogue = new KviMessageCatalogue();
// the catalogue dict
- g_pCatalogueDict = new QAsciiDict<KviMessageCatalogue>;
+ g_pCatalogueDict = new KviAsciiDict<KviMessageCatalogue>;
g_pCatalogueDict->setAutoDelete(true);
// the smart codec dict
- g_pSmartCodecDict = new QAsciiDict<KviSmartTextCodec>;
+ g_pSmartCodecDict = new KviAsciiDict<KviSmartTextCodec>;
// the Qt docs explicitly state that we shouldn't delete
// the codecs by ourselves...
g_pSmartCodecDict->setAutoDelete(false);
@@ -930,7 +936,11 @@ namespace KviLocale
};
KviTranslator::KviTranslator(QObject * par,const char * nam)
+#ifdef COMPILE_USE_QT4
+: QTranslator(par)
+#else
: QTranslator(par,nam)
+#endif
{
}
@@ -938,17 +948,27 @@ KviTranslator::~KviTranslator()
{
}
+#ifdef COMPILE_USE_QT4
+QString KviTranslator::translate(const char *context,const char * message,const char * comment) const
+{
+ // we ignore contexts and comments for qt translations
+ return g_pMainCatalogue->translateToQString(message);
+}
+#endif
+
QString KviTranslator::find(const char *context,const char * message) const
{
// we ignore contexts for qt translations
return g_pMainCatalogue->translateToQString(message);
}
+#ifndef COMPILE_USE_QT4
QTranslatorMessage KviTranslator::findMessage(const char * context,const char * sourceText,const char * comment) const
{
// we ignore contexts for qt translations
return QTranslatorMessage(context,sourceText,comment,g_pMainCatalogue->translateToQString(sourceText));
}
+#endif
#if 0
diff --git a/src/kvilib/system/kvi_locale.h b/src/kvilib/system/kvi_locale.h
index 2cce46799..a138fd6d8 100644
--- a/src/kvilib/system/kvi_locale.h
+++ b/src/kvilib/system/kvi_locale.h
@@ -29,6 +29,7 @@
#include "kvi_settings.h"
#include "kvi_qstring.h"
#include "kvi_string.h"
+#include "kvi_asciidict.h"
#include <qapplication.h>
@@ -93,8 +94,8 @@ public:
KviMessageCatalogue();
~KviMessageCatalogue();
protected:
- QAsciiDict<KviTranslationEntry> * m_pMessages;
- QTextCodec * m_pTextCodec;
+ KviAsciiDict<KviTranslationEntry> * m_pMessages;
+ QTextCodec * m_pTextCodec;
public:
bool load(const QString& name);
const char * translate(const char * text);
@@ -129,8 +130,15 @@ class KVILIB_API KviTranslator : public QTranslator
KviTranslator(QObject * parent,const char * name);
~KviTranslator();
public:
+#ifdef COMPILE_USE_QT4
+ virtual QString translate(const char * context,const char * message,const char * comment) const;
+#endif
+ // Deprecated in qt 4.x
virtual QString find(const char * context,const char * message) const;
+#ifndef COMPILE_USE_QT4
+ // Dead in qt 4.x
virtual QTranslatorMessage findMessage(const char * context,const char * sourceText,const char * comment = 0) const;
+#endif
};
diff --git a/src/kvirc/kernel/kvi_app.h b/src/kvirc/kernel/kvi_app.h
index de6bbe961..5931bbe7c 100644
--- a/src/kvirc/kernel/kvi_app.h
+++ b/src/kvirc/kernel/kvi_app.h
@@ -185,7 +185,7 @@ public:
void getGlobalKvircDirectory(KviStr &szData,KvircSubdir dir,const QString &appendFile = QString::null);
void getLocalKvircDirectory(KviStr &szData,KvircSubdir dir,const QString &appendFile = QString::null,bool bCreateIfNeeded = true);
void getLocalKvircDirectory(QString &szData,KvircSubdir dir,const QString &appendFile = QString::null,bool bCreateIfNeeded = true);
- void getTmpFileName(KviStr &szBuffer,const char * pattern = 0);
+ void getTmpFileName(QString &szBuffer,const QString &szEndingFileName = QString::null);
bool trashFile(const char *filename);
void getChannelDumpLogFileName(KviStr &str);
diff --git a/src/kvirc/kernel/kvi_app_fs.cpp b/src/kvirc/kernel/kvi_app_fs.cpp
index 1c24cb2ab..7e56bf1d7 100644
--- a/src/kvirc/kernel/kvi_app_fs.cpp
+++ b/src/kvirc/kernel/kvi_app_fs.cpp
@@ -190,19 +190,21 @@ void KviApp::getLocalKvircDirectory(KviStr &szData,KvircSubdir dir,const QString
szData=szBuffer;
}
-void KviApp::getTmpFileName(KviStr &szBuffer,const char * pattern)
+void KviApp::getTmpFileName(QString &szBuffer,const QString &szEndingFileName)
{
- KviStr tmp;
+ QString tmp;
getLocalKvircDirectory(tmp,Tmp);
- tmp.ensureLastCharIs(KVI_PATH_SEPARATOR_CHAR);
+ KviQString::ensureLastCharIs(tmp,KVI_PATH_SEPARATOR_CHAR);
struct timeval tmv;
kvi_gettimeofday(&tmv,0);
+ QString szFileName = szEndingFileName.isNull() ? QString("file.tmp") : szEndingFileName;
do {
- szBuffer.append(KviStr::Format,"kvirc_%d_%s",tmv.tv_usec,pattern ? pattern : "file.tmp");
+ szBuffer = tmp;
+ KviQString::appendFormatted(szBuffer,"kvirc_%d_%Q",tmv.tv_usec,&szFileName);
tmv.tv_usec++;
- } while(KviFileUtils::fileExists(szBuffer.ptr()));
+ } while(KviFileUtils::fileExists(szBuffer));
}
//====================== trashFile ====================//
diff --git a/src/kvirc/kernel/kvi_coreactionnames.h b/src/kvirc/kernel/kvi_coreactionnames.h
index 18080825a..50539a46c 100644
--- a/src/kvirc/kernel/kvi_coreactionnames.h
+++ b/src/kvirc/kernel/kvi_coreactionnames.h
@@ -64,5 +64,6 @@
#define KVI_COREACTION_MANAGEADDONS (KVI_COREACTION_NAME_PREFIX "manageaddons")
#define KVI_COREACTION_THEMEOPTIONS (KVI_COREACTION_NAME_PREFIX "themeoptions")
#define KVI_COREACTION_MANAGETHEMES (KVI_COREACTION_NAME_PREFIX "managethemes")
+#define KVI_COREACTION_SCREENSHOT (KVI_COREACTION_NAME_PREFIX "screenshot")
#endif //!_KVI_COREACTIONNAMES_H_
diff --git a/src/kvirc/kernel/kvi_coreactions.cpp b/src/kvirc/kernel/kvi_coreactions.cpp
index dc9fc7c58..9b385be45 100644
--- a/src/kvirc/kernel/kvi_coreactions.cpp
+++ b/src/kvirc/kernel/kvi_coreactions.cpp
@@ -366,6 +366,17 @@ void register_core_actions(KviActionManager * m)
0,
QString::null);
+ 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",
+ KVI_SMALLICON_SCREENSHOT,
+ 0,
+ QString::null);
+
SLOT_ACTION(
KVI_COREACTION_CASCADEWINDOWS,
diff --git a/src/kvirc/kernel/kvi_iconmanager.cpp b/src/kvirc/kernel/kvi_iconmanager.cpp
index 610bdde74..4bef15837 100644
--- a/src/kvirc/kernel/kvi_iconmanager.cpp
+++ b/src/kvirc/kernel/kvi_iconmanager.cpp
@@ -341,7 +341,8 @@ static const char * g_szIconNames[KVI_NUM_SMALL_ICONS]=
"themeoptions", // 287
"bug", // 288
"refresh", //289
- "theme" // 290
+ "theme", // 290
+ "screenshot" // 291
};
KviIconWidget::KviIconWidget()
diff --git a/src/kvirc/kernel/kvi_iconmanager.h b/src/kvirc/kernel/kvi_iconmanager.h
index 2c7ab1219..dadc3c2ea 100644
--- a/src/kvirc/kernel/kvi_iconmanager.h
+++ b/src/kvirc/kernel/kvi_iconmanager.h
@@ -329,8 +329,9 @@
#define KVI_SMALLICON_BUG 288
#define KVI_SMALLICON_REFRESH 289
#define KVI_SMALLICON_THEME 290
+#define KVI_SMALLICON_SCREENSHOT 291
-#define KVI_NUM_SMALL_ICONS 291
+#define KVI_NUM_SMALL_ICONS 292
#define KVI_BIGICON_DISCONNECTED "kvi_bigicon_disconnected.png"
@@ -356,6 +357,7 @@
#define KVI_BIGICON_REMOVE "kvi_bigicon_remove.png"
#define KVI_BIGICON_WWW "kvi_bigicon_www.png"
#define KVI_BIGICON_PACK "kvi_bigicon_pack.png"
+#define KVI_BIGICON_SCREENSHOT "kvi_bigicon_screenshot.png"
#define KVI_SMALLICONS_SUBDIRECTORY "coresmall"
#define KVI_SMALLICONS_PREFIX "kcs_"
diff --git a/src/kvirc/kernel/kvi_theme.cpp b/src/kvirc/kernel/kvi_theme.cpp
index fee548535..1e3221b20 100644
--- a/src/kvirc/kernel/kvi_theme.cpp
+++ b/src/kvirc/kernel/kvi_theme.cpp
@@ -30,6 +30,11 @@
#include "kvi_miscutils.h"
#include "kvi_sourcesdate.h"
+#include <qimage.h>
+
+#define KVI_THEME_SMALL_SCREENSHOT_NAME "screenshot_small.png"
+#define KVI_THEME_MEDIUM_SCREENSHOT_NAME "screenshot_medium.png"
+#define KVI_THEME_LARGE_SCREENSHOT_NAME "screenshot.png"
KviThemeInfo::KviThemeInfo()
: KviHeapObject()
@@ -130,3 +135,159 @@ bool KviThemeInfo::loadFromDirectory(const QString &szThemeDirectory,bool bIgnor
return KviFileUtils::fileExists(szD);
}
+QString KviThemeInfo::smallScreenshotPath()
+{
+ QString ret;
+ if(!m_szAbsoluteDirectory.isEmpty())
+ {
+ ret = m_szAbsoluteDirectory;
+ KviQString::ensureLastCharIs(ret,KVI_PATH_SEPARATOR_CHAR);
+ ret.append(KVI_THEME_SMALL_SCREENSHOT_NAME);
+ }
+ return ret;
+}
+
+const QPixmap & KviThemeInfo::smallScreenshot()
+{
+ if(!m_pixScreenshotSmall.isNull())return m_pixScreenshotSmall;
+
+ if(!m_szAbsoluteDirectory.isEmpty())
+ {
+ QString szFileName = m_szAbsoluteDirectory;
+ KviQString::ensureLastCharIs(szFileName,KVI_PATH_SEPARATOR_CHAR);
+ szFileName.append(KVI_THEME_SMALL_SCREENSHOT_NAME);
+ QPixmap pix(szFileName);
+ if(!pix.isNull())
+ {
+ m_pixScreenshotSmall = pix;
+ return m_pixScreenshotSmall;
+ }
+ // try to scale it from the large one (and save it by the way)
+ pix = mediumScreenshot();
+ if(pix.isNull())return m_pixScreenshotSmall;
+
+ if(pix.width() > 300 || pix.height() > 225)
+ {
+ QImage sbri = pix.convertToImage();
+ pix.convertFromImage(sbri.smoothScale(300,225,QImage::ScaleMin));
+ }
+
+ pix.save(szFileName,"PNG");
+
+ m_pixScreenshotSmall = pix;
+ return m_pixScreenshotSmall;
+ }
+
+ return m_pixScreenshotSmall;
+}
+
+const QPixmap & KviThemeInfo::mediumScreenshot()
+{
+ if(!m_pixScreenshotMedium.isNull())return m_pixScreenshotMedium;
+
+ if(!m_szAbsoluteDirectory.isEmpty())
+ {
+ QString szFileName = m_szAbsoluteDirectory;
+ KviQString::ensureLastCharIs(szFileName,KVI_PATH_SEPARATOR_CHAR);
+ szFileName.append(KVI_THEME_MEDIUM_SCREENSHOT_NAME);
+ QPixmap pix(szFileName);
+ if(!pix.isNull())
+ {
+ m_pixScreenshotMedium = pix;
+ return m_pixScreenshotMedium;
+ }
+ // try to scale it from the large one (and save it by the way)
+ pix = largeScreenshot();
+ if(pix.isNull())return m_pixScreenshotMedium;
+
+ if(pix.width() > 600 || pix.height() > 450)
+ {
+ QImage sbri = pix.convertToImage();
+ pix.convertFromImage(sbri.smoothScale(600,450,QImage::ScaleMin));
+ }
+
+ pix.save(szFileName,"PNG");
+
+ m_pixScreenshotMedium = pix;
+ return m_pixScreenshotMedium;
+ }
+
+ return m_pixScreenshotMedium;
+}
+
+const QPixmap & KviThemeInfo::largeScreenshot()
+{
+ if(!m_pixScreenshotLarge.isNull())return m_pixScreenshotLarge;
+
+ if(!m_szAbsoluteDirectory.isEmpty())
+ {
+ QString szFileName = m_szAbsoluteDirectory;
+ KviQString::ensureLastCharIs(szFileName,KVI_PATH_SEPARATOR_CHAR);
+ szFileName.append(KVI_THEME_LARGE_SCREENSHOT_NAME);
+ QPixmap pix(szFileName);
+ if(pix.isNull())return m_pixScreenshotLarge;
+ m_pixScreenshotLarge = pix;
+ }
+ return m_pixScreenshotLarge;
+}
+
+
+namespace KviTheme
+{
+ bool saveScreenshots(KviThemeInfo &options,const QString &szOriginalScreenshotPath)
+ {
+ QImage pix(szOriginalScreenshotPath);
+ if(pix.isNull())
+ {
+ options.setLastError(__tr2qs("Failed to load the specified screenshot image"));
+ return false;
+ }
+
+ QPixmap out;
+
+ QString szScreenshotFileName = options.absoluteDirectory();
+ if(szScreenshotFileName.isEmpty())
+ {
+ options.setLastError(__tr2qs("Invalid option"));
+ return false;
+ }
+
+ KviQString::ensureLastCharIs(szScreenshotFileName,KVI_PATH_SEPARATOR_CHAR);
+ szScreenshotFileName.append(KVI_THEME_LARGE_SCREENSHOT_NAME);
+ if(!pix.save(szScreenshotFileName,"PNG"))
+ {
+ options.setLastError(__tr2qs("Failed to save the screenshot image"));
+ return false;
+ }
+
+ if(pix.width() > 600 || pix.height() > 450)
+ out.convertFromImage(pix.smoothScale(600,450,QImage::ScaleMin));
+ else
+ out.convertFromImage(pix);
+
+ szScreenshotFileName = options.absoluteDirectory();
+ KviQString::ensureLastCharIs(szScreenshotFileName,KVI_PATH_SEPARATOR_CHAR);
+ szScreenshotFileName.append(KVI_THEME_MEDIUM_SCREENSHOT_NAME);
+ if(!out.save(szScreenshotFileName,"PNG"))
+ {
+ options.setLastError(__tr2qs("Failed to save the screenshot image"));
+ return false;
+ }
+
+ if(pix.width() > 300 || pix.height() > 225)
+ out.convertFromImage(pix.smoothScale(300,225,QImage::ScaleMin));
+ else
+ out.convertFromImage(pix);
+
+ szScreenshotFileName = options.absoluteDirectory();
+ KviQString::ensureLastCharIs(szScreenshotFileName,KVI_PATH_SEPARATOR_CHAR);
+ szScreenshotFileName.append(KVI_THEME_SMALL_SCREENSHOT_NAME);
+ if(!out.save(szScreenshotFileName,"PNG"))
+ {
+ options.setLastError(__tr2qs("Failed to save the screenshot image"));
+ return false;
+ }
+
+ return true;
+ }
+};
diff --git a/src/kvirc/kernel/kvi_theme.h b/src/kvirc/kernel/kvi_theme.h
index 35f36e421..c4acfbdbf 100644
--- a/src/kvirc/kernel/kvi_theme.h
+++ b/src/kvirc/kernel/kvi_theme.h
@@ -31,6 +31,8 @@
#include "kvi_fileextensions.h"
+#include <qpixmap.h>
+
#define KVI_THEMEINFO_FILE_NAME "themeinfo." KVI_FILEEXTENSION_CONFIG
#define KVI_THEMEDATA_FILE_NAME "themedata." KVI_FILEEXTENSION_CONFIG
#define KVI_THEMEINFO_CONFIG_GROUP "ThemeInfo"
@@ -57,6 +59,10 @@ protected:
QString m_szThemeEngineVersion; // the theme engine version that saved this theme
QString m_szLastError; // reported when some function fails
+
+ QPixmap m_pixScreenshotLarge;
+ QPixmap m_pixScreenshotMedium;
+ QPixmap m_pixScreenshotSmall;
public:
// load a specified themeinfo file
bool load(const QString &szThemeFileName);
@@ -88,6 +94,14 @@ public:
// This function will fail if the directory contains a valid themeinfo
// file but no themedata file unless bIgnoreThemeData is set to true
bool loadFromDirectory(const QString &szThemeDirectory,bool bIgnoreThemeData = false);
+
+ // Attempt to load the theme screenshot from THEMEDIR/screenshot_*.png
+ // These functions will work only if the absoluteDirectory() of the theme
+ // has been set, otherwise the returned pixmaps will be null.
+ const QPixmap & smallScreenshot();
+ const QPixmap & mediumScreenshot();
+ const QPixmap & largeScreenshot();
+ QString smallScreenshotPath();
};
namespace KviTheme
@@ -107,6 +121,9 @@ namespace KviTheme
// but this feature is actually unused.
// Note that for convenience this function is implemented in kvi_options.cpp
bool KVIRC_API save(KviThemeInfo &options);
+ // Save the theme screenshots in the given EXISTING directory and given
+ // an existing screenshot on disk.
+ bool KVIRC_API saveScreenshots(KviThemeInfo &options,const QString &szOriginalScreenshotPath);
};
diff --git a/src/kvirc/kvs/kvi_kvs_coresimplecommands_mr.cpp b/src/kvirc/kvs/kvi_kvs_coresimplecommands_mr.cpp
index 26f29e8e2..7a35fd43e 100644
--- a/src/kvirc/kvs/kvi_kvs_coresimplecommands_mr.cpp
+++ b/src/kvirc/kvs/kvi_kvs_coresimplecommands_mr.cpp
@@ -591,8 +591,6 @@ namespace KviKvsCoreSimpleCommands
if(KviFileUtils::directoryExists(szFileName))
{
- // FIXME: Throw away KviStr!!!
- //KviStr szTmp;
QString szTmp;
KVSCSC_pContext->enterBlockingSection();
diff --git a/src/kvirc/ui/kvi_menubar.cpp b/src/kvirc/ui/kvi_menubar.cpp
index 4d3311601..5e3891679 100644
--- a/src/kvirc/ui/kvi_menubar.cpp
+++ b/src/kvirc/ui/kvi_menubar.cpp
@@ -266,35 +266,37 @@ void KviMenuBar::newConnectionToServer(int id)
void KviMenuBar::setupToolsPopup()
{
- QPopupMenu * m = (QPopupMenu *)sender();
- if(!m)return;
+ QPopupMenu * m = (QPopupMenu *)sender();
+ if(!m)return;
- m->clear();
+ m->clear();
- KviModuleExtensionDescriptorList * l = g_pModuleExtensionManager->getExtensionList("tool");
- if(l)
- {
- for(KviModuleExtensionDescriptor * d = l->first();d;d = l->next())
- {
- int id;
- if(d->icon())id = m->insertItem(*(d->icon()),d->visibleName());
- else id = m->insertItem(d->visibleName());
- //m->setItemChecked(id,(m_pFrm->moduleExtensionToolBar(d->id())));
- m->setItemParameter(id,d->id());
- }
- }
- m->insertSeparator();
- ACTION_POPUP_ITEM(KVI_COREACTION_SOCKETSPY,m)
- ACTION_POPUP_ITEM(KVI_COREACTION_NETWORKLINKS,m)
- ACTION_POPUP_ITEM(KVI_COREACTION_CHANNELLIST,m)
- m->insertSeparator();
+ KviModuleExtensionDescriptorList * l = g_pModuleExtensionManager->getExtensionList("tool");
+ if(l)
+ {
+ for(KviModuleExtensionDescriptor * d = l->first();d;d = l->next())
+ {
+ int id;
+ if(d->icon())id = m->insertItem(*(d->icon()),d->visibleName());
+ else id = m->insertItem(d->visibleName());
+ //m->setItemChecked(id,(m_pFrm->moduleExtensionToolBar(d->id())));
+ m->setItemParameter(id,d->id());
+ }
+ }
+ m->insertSeparator();
+ ACTION_POPUP_ITEM(KVI_COREACTION_SOCKETSPY,m)
+ ACTION_POPUP_ITEM(KVI_COREACTION_NETWORKLINKS,m)
+ ACTION_POPUP_ITEM(KVI_COREACTION_CHANNELLIST,m)
+ m->insertSeparator();
+
+ ACTION_POPUP_ITEM(KVI_COREACTION_SCREENSHOT,m)
- // moved the old tools here
- m->insertItem(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_ICONMANAGER)),__tr2qs("Show &Icon Table"),g_pIconManager,SLOT(showIconWidget()));
+ // moved the old tools here
+ m->insertItem(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_ICONMANAGER)),__tr2qs("Show &Icon Table"),g_pIconManager,SLOT(showIconWidget()));
#ifdef COMPILE_KDE_SUPPORT
- int id;
- id = m->insertItem(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_TERMINAL)),__tr2qs("Open &Terminal"),m_pFrm,SLOT(executeInternalCommand(int)));
- m->setItemParameter(id,KVI_INTERNALCOMMAND_TERM_OPEN);
+ int id;
+ id = m->insertItem(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_TERMINAL)),__tr2qs("Open &Terminal"),m_pFrm,SLOT(executeInternalCommand(int)));
+ m->setItemParameter(id,KVI_INTERNALCOMMAND_TERM_OPEN);
#endif
diff --git a/src/kvirc/ui/kvi_window.cpp b/src/kvirc/ui/kvi_window.cpp
index 108cb755f..41cf97fac 100644
--- a/src/kvirc/ui/kvi_window.cpp
+++ b/src/kvirc/ui/kvi_window.cpp
@@ -827,7 +827,7 @@ void KviWindow::systemTextEncodingPopupSmartActivated(int id)
if(!g_pMdiWindowSystemTextEncodingPopupSmart)
return;
QString tmp = g_pMdiWindowSystemTextEncodingPopupSmart->text(id);
- KviQString::cutFromFirst(tmp,' ');
+ KviQString::cutFromFirst(tmp," (");
setTextEncoding(tmp);
}
@@ -836,7 +836,7 @@ void KviWindow::systemTextEncodingPopupSmartUtf8Activated(int id)
if(!g_pMdiWindowSystemTextEncodingPopupSmartUtf8)
return;
QString tmp = g_pMdiWindowSystemTextEncodingPopupSmartUtf8->text(id);
- KviQString::cutFromFirst(tmp,' ');
+ KviQString::cutFromFirst(tmp," (");
setTextEncoding(tmp);
}
@@ -845,7 +845,7 @@ void KviWindow::systemTextEncodingPopupStandardActivated(int id)
if(!g_pMdiWindowSystemTextEncodingPopupStandard)
return;
QString tmp = g_pMdiWindowSystemTextEncodingPopupStandard->text(id);
- KviQString::cutFromFirst(tmp,' ');
+ KviQString::cutFromFirst(tmp," (");
setTextEncoding(tmp);
}
diff --git a/src/modules/mircimport/libkvimircimport.cpp b/src/modules/mircimport/libkvimircimport.cpp
index 32f48cf98..cfca847f5 100644
--- a/src/modules/mircimport/libkvimircimport.cpp
+++ b/src/modules/mircimport/libkvimircimport.cpp
@@ -218,7 +218,9 @@ void KviRemoteMircServerImportWizard::start()
connect(m_pRequest,SIGNAL(terminated(bool)),this,SLOT(getListTerminated(bool)));
connect(m_pRequest,SIGNAL(status(const char *)),this,SLOT(getListMessage(const char *)));
- g_pApp->getTmpFileName(m_szTmpFileName,"servers.ini");
+ QString szTmp;
+ g_pApp->getTmpFileName(szTmp,"servers.ini");
+ m_szTmpFileName = szTmp;
if(!m_pRequest->get(KviUrl(url.ptr()),KviHttpRequest::StoreToFile,m_szTmpFileName.ptr()))
{
delete m_pRequest;
diff --git a/src/modules/str/libkvistr.cpp b/src/modules/str/libkvistr.cpp
index 035541475..14126657d 100644
--- a/src/modules/str/libkvistr.cpp
+++ b/src/modules/str/libkvistr.cpp
@@ -1640,7 +1640,7 @@ static bool str_kvs_fnc_join(KviKvsModuleFunctionCall * c)
@title:
$str.grep
@short:
- Emulates the GNU Regular ExPression engine
+ Emulates the GNU Regular Expression Parser
@syntax:
<array> $str.grep(<match:string>,<strings:array>[,<flags:string>])
@description:
diff --git a/src/modules/theme/libkvitheme.cpp b/src/modules/theme/libkvitheme.cpp
index 12c7786ca..6c2c570e1 100644
--- a/src/modules/theme/libkvitheme.cpp
+++ b/src/modules/theme/libkvitheme.cpp
@@ -34,6 +34,8 @@
#include "kvi_mirccntrl.h"
#include "kvi_config.h"
#include "kvi_sourcesdate.h"
+#include "kvi_fileutils.h"
+#include "kvi_filedialog.h"
#include "managementdialog.h"
#include "themefunctions.h"
@@ -74,6 +76,56 @@ static bool theme_kvs_cmd_install(KviKvsModuleCommandCall * c)
}
/*
+ @doc: theme.screenshot
+ @type:
+ command
+ @title:
+ theme.screenshot
+ @short:
+ Makes a screenshot of the KVIrc window
+ @syntax:
+ theme.screenshot [file_name_path:string]
+ @description:
+ Makes a screenshot of the KVIrc main window
+ and saves it in the specified file. If [file_name_path]
+ is not specified then a save file dialog is shown.
+*/
+
+static bool theme_kvs_cmd_screenshot(KviKvsModuleCommandCall * c)
+{
+ QString szFileName;
+
+ KVSM_PARAMETERS_BEGIN(c)
+ KVSM_PARAMETER("file_name_path",KVS_PT_STRING,KVS_PF_OPTIONAL,szFileName)
+ KVSM_PARAMETERS_END(c)
+
+
+ KviFileUtils::adjustFilePath(szFileName);
+
+ QString szTmp;
+ c->enterBlockingSection();
+
+ bool bResult = KviFileDialog::askForSaveFileName(szTmp,__tr2qs_ctx("Choose a file to save the screenshot to","theme"),szFileName,"*.png");
+
+ if(!c->leaveBlockingSection())return false; // need to stop immediately
+ if(!bResult)return true;
+
+ szFileName = szTmp;
+
+ if(szFileName.isEmpty())return true; // done
+ KviFileUtils::adjustFilePath(szFileName);
+
+ QString szError;
+ if(!KviThemeFunctions::makeKVIrcScreenshot(szFileName))
+ {
+ c->error(__tr2qs_ctx("Error making screenshot","theme")); // FIXME: a nicer error ?
+ return false;
+ }
+
+ return true;
+}
+
+/*
@doc: theme.dialog
@type:
command
@@ -97,6 +149,7 @@ static bool theme_module_init(KviModule *m)
{
KVSM_REGISTER_SIMPLE_COMMAND(m,"dialog",theme_kvs_cmd_dialog);
KVSM_REGISTER_SIMPLE_COMMAND(m,"install",theme_kvs_cmd_install);
+ KVSM_REGISTER_SIMPLE_COMMAND(m,"screenshot",theme_kvs_cmd_screenshot);
QString szBuf;
m->getDefaultConfigFileName(szBuf);
diff --git a/src/modules/theme/managementdialog.cpp b/src/modules/theme/managementdialog.cpp
index 3f96ab13b..c066da522 100644
--- a/src/modules/theme/managementdialog.cpp
+++ b/src/modules/theme/managementdialog.cpp
@@ -69,6 +69,7 @@
#include "kvi_packagefile.h"
#include "kvi_fileextensions.h"
#include "kvi_filedialog.h"
+#include "kvi_dynamictooltip.h"
#include <stdlib.h> // rand & srand
@@ -116,7 +117,7 @@ KviThemeListBoxItem::~KviThemeListBoxItem()
delete m_pText;
}
-void KviThemeListBoxItem::paint ( QPainter * p )
+void KviThemeListBoxItem::paint(QPainter * p)
{
QListBoxText::paint(p);
p->drawPixmap(LVI_BORDER,LVI_BORDER, *(g_pIconManager->getBigIcon(QString(KVI_BIGICON_THEME))) );
@@ -126,7 +127,7 @@ void KviThemeListBoxItem::paint ( QPainter * p )
m_pText->draw(p,afterIcon,LVI_BORDER,QRect(afterIcon,LVI_BORDER,www,p->window().height() - (LVI_BORDER * 2)),listBox()->viewport()->colorGroup());
}
-int KviThemeListBoxItem::height ( const QListBox * lb ) const
+int KviThemeListBoxItem::height(const QListBox * lb) const
{
int iHeight = m_pText->height() + (2 * LVI_BORDER);
if(iHeight < (LVI_ICON_SIZE + (2 * LVI_BORDER)))iHeight = LVI_ICON_SIZE + (2 * LVI_BORDER);
@@ -205,6 +206,8 @@ KviThemeManagementDialog::KviThemeManagementDialog(QWidget * parent)
connect(m_pListBox,SIGNAL(selectionChanged()),this,SLOT(enableDisableButtons()));
g->addMultiCellWidget(m_pListBox,1,1,0,1);
+ KviDynamicToolTip * tip = new KviDynamicToolTip(m_pListBox);
+ connect(tip,SIGNAL(tipRequest(KviDynamicToolTip *,const QPoint &)),this,SLOT(tipRequest(KviDynamicToolTip *,const QPoint &)));
QPushButton * b = new QPushButton(__tr2qs("Close"),this);
connect(b,SIGNAL(clicked()),this,SLOT(closeClicked()));
@@ -238,6 +241,29 @@ void KviThemeManagementDialog::closeClicked()
m_pInstance = 0;
}
+void KviThemeManagementDialog::tipRequest(KviDynamicToolTip *pTip,const QPoint &pnt)
+{
+ KviThemeListBoxItem * it = (KviThemeListBoxItem *)(m_pListBox->itemAt(pnt));
+ if(!it)return;
+ KviThemeInfo * pThemeInfo = it->themeInfo();
+
+ QString szThemeDescription;
+ KviThemeFunctions::getThemeHtmlDescription(
+ szThemeDescription,
+ pThemeInfo->name(),
+ pThemeInfo->version(),
+ pThemeInfo->description(),
+ pThemeInfo->subdirectory(),
+ pThemeInfo->application(),
+ pThemeInfo->author(),
+ pThemeInfo->date(),
+ pThemeInfo->themeEngineVersion(),
+ pThemeInfo->mediumScreenshot(),
+ 0
+ );
+
+ pTip->tip(m_pListBox->itemRect(it),szThemeDescription);
+}
void KviThemeManagementDialog::display()
{
diff --git a/src/modules/theme/managementdialog.h b/src/modules/theme/managementdialog.h
index a734d557e..12762a9f9 100644
--- a/src/modules/theme/managementdialog.h
+++ b/src/modules/theme/managementdialog.h
@@ -44,6 +44,9 @@ class QLabel;
class QCheckBox;
class QMultiLineEdit;
+class KviDynamicToolTip;
+class KviStyledToolButton;
+
class KviThemeListBoxItem : public QListBoxText
{
@@ -61,8 +64,6 @@ protected:
};
-class KviStyledToolButton;
-
class KviThemeManagementDialog : public QDialog
{
Q_OBJECT
@@ -94,6 +95,7 @@ protected slots:
void applyCurrentTheme();
void enableDisableButtons();
void contextMenuRequested(QListBoxItem * item, const QPoint & pos);
+ void tipRequest(KviDynamicToolTip *pTip,const QPoint &pnt);
};
#endif //!_MANAGEMENTDIALOG_H_
diff --git a/src/modules/theme/packthemedialog.cpp b/src/modules/theme/packthemedialog.cpp
index 73352abbd..0efeb8bf5 100644
--- a/src/modules/theme/packthemedialog.cpp
+++ b/src/modules/theme/packthemedialog.cpp
@@ -39,6 +39,7 @@
#include <qmultilineedit.h>
#include <qbuffer.h>
#include <qlabel.h>
+#include <qregexp.h>
#include "kvi_options.h"
@@ -69,11 +70,17 @@ KviPackThemeDialog::KviPackThemeDialog(QWidget * pParent,KviPtrList<KviThemeInfo
QString szPackageAuthor;
QString szPackageDescription;
QString szPackageVersion;
+
+ m_szPackagePath = QDir::homeDirPath();
+ KviQString::ensureLastCharIs(m_szPackagePath,QChar(KVI_PATH_SEPARATOR_CHAR));
+
+ bool bPackagePathSet = false;
+
if(m_pThemeInfoList->count() > 1)
{
szPackageName = "MyThemes";
szPackageAuthor = __tr2qs_ctx("Your name here","theme");
- szPackageVersion = "1.0";
+ szPackageVersion = "1.0.0";
szPackageDescription = __tr2qs_ctx("Put a package description here...","theme");
} else {
if(m_pThemeInfoList->count() > 0)
@@ -83,9 +90,28 @@ KviPackThemeDialog::KviPackThemeDialog(QWidget * pParent,KviPtrList<KviThemeInfo
szPackageAuthor = pThemeInfo->author();
szPackageDescription = pThemeInfo->description();
szPackageVersion = pThemeInfo->version();
+
+ m_szPackagePath += pThemeInfo->subdirectory();
+ if(m_szPackagePath.find(QRegExp("[0-9]\\.[0-9]")) == -1)
+ {
+ m_szPackagePath += "-";
+ m_szPackagePath += szPackageVersion;
+ }
+ m_szPackagePath += ".";
+ m_szPackagePath += KVI_FILEEXTENSION_THEMEPACKAGE;
+
+ bPackagePathSet = true;
}
}
+ if(!bPackagePathSet)
+ {
+ m_szPackagePath += szPackageName;
+ m_szPackagePath += "-";
+ m_szPackagePath += szPackageVersion;
+ m_szPackagePath += ".";
+ m_szPackagePath += KVI_FILEEXTENSION_THEMEPACKAGE;
+ }
setCaption(__tr2qs_ctx("Export Theme - KVIrc","theme"));
setMinimumSize(400,350);
@@ -126,10 +152,20 @@ KviPackThemeDialog::KviPackThemeDialog(QWidget * pParent,KviPtrList<KviThemeInfo
QString szThemesDescription = "<html><body bgcolor=\"#ffffff\">";
int iIdx = 0;
+ QPixmap pixScreenshot;
+ QString szScreenshotPath;
+
for(pThemeInfo = m_pThemeInfoList->first();pThemeInfo;pThemeInfo = m_pThemeInfoList->next())
{
QString szThemeDescription;
+ if(pixScreenshot.isNull())
+ {
+ pixScreenshot = pThemeInfo->smallScreenshot();
+ if(!pixScreenshot.isNull())
+ szScreenshotPath = pThemeInfo->smallScreenshotPath();
+ }
+
KviThemeFunctions::getThemeHtmlDescription(
szThemeDescription,
pThemeInfo->name(),
@@ -139,7 +175,9 @@ KviPackThemeDialog::KviPackThemeDialog(QWidget * pParent,KviPtrList<KviThemeInfo
pThemeInfo->application(),
pThemeInfo->author(),
pThemeInfo->date(),
- pThemeInfo->themeEngineVersion()
+ pThemeInfo->themeEngineVersion(),
+ pThemeInfo->smallScreenshot(),
+ iIdx
);
if(iIdx > 0)
@@ -193,7 +231,7 @@ KviPackThemeDialog::KviPackThemeDialog(QWidget * pParent,KviPtrList<KviThemeInfo
pLabel->setText(__tr2qs_ctx("Description:","theme"));
pLayout->addWidget(pLabel,3,0);
- m_pPackageDescriptionEdit = new QMultiLineEdit(pPage);
+ m_pPackageDescriptionEdit = new QTextEdit(pPage);
m_pPackageDescriptionEdit->setText(szPackageDescription);
pLayout->addWidget(m_pPackageDescriptionEdit,3,1);
@@ -254,15 +292,6 @@ KviPackThemeDialog::KviPackThemeDialog(QWidget * pParent,KviPtrList<KviThemeInfo
pLabel->setTextFormat(Qt::RichText);
pLayout->addWidget(pLabel,0,0);
- m_szPackagePath = QDir::homeDirPath();
- KviQString::ensureLastCharIs(m_szPackagePath,QChar(KVI_PATH_SEPARATOR_CHAR));
-
- m_szPackagePath += szPackageName;
- m_szPackagePath += "-";
- m_szPackagePath += szPackageVersion;
- m_szPackagePath += ".";
- m_szPackagePath += KVI_FILEEXTENSION_THEMEPACKAGE;
-
szFilter = "*.";
szFilter += KVI_FILEEXTENSION_THEMEPACKAGE;
m_pPathSelector = new KviFileSelector(pPage,"",&m_szPackagePath,true,KviFileSelector::ChooseSaveFileName,szFilter);
@@ -281,6 +310,11 @@ KviPackThemeDialog::KviPackThemeDialog(QWidget * pParent,KviPtrList<KviThemeInfo
setNextEnabled(pPage,false);
setFinishEnabled(pPage,true);
+ if(!szScreenshotPath.isEmpty())
+ {
+ m_pImageSelector->setSelection(szScreenshotPath);
+ imageSelectionChanged(szScreenshotPath);
+ }
}
KviPackThemeDialog::~KviPackThemeDialog()
@@ -389,6 +423,18 @@ bool KviPackThemeDialog::packTheme()
f.addInfoField(szTmp,pInfo->application());
KviQString::sprintf(szTmp,"Theme%dThemeEngineVersion",iIdx);
f.addInfoField(szTmp,pInfo->themeEngineVersion());
+ QPixmap pixScreenshot = pInfo->smallScreenshot();
+ if(!pixScreenshot.isNull())
+ {
+ KviQString::sprintf(szTmp,"Theme%dScreenshot",iIdx);
+ QByteArray * pba = new QByteArray();
+ QBuffer bufferz(*pba);
+ bufferz.open(IO_WriteOnly);
+ pixScreenshot.save(&bufferz,"PNG");
+ bufferz.close();
+ f.addInfoField(szTmp,pba);
+ }
+
if(!f.addDirectory(pInfo->absoluteDirectory(),pInfo->subdirectory()))
{
szTmp = __tr2qs_ctx("Packaging failed","theme");
diff --git a/src/modules/theme/packthemedialog.h b/src/modules/theme/packthemedialog.h
index 1316369bc..b3916dab6 100644
--- a/src/modules/theme/packthemedialog.h
+++ b/src/modules/theme/packthemedialog.h
@@ -32,6 +32,7 @@
#include <qwizard.h>
class QLineEdit;
+class QTextEdit;
class QLabel;
class QMultiLineEdit;
class KviFileSelector;
@@ -51,14 +52,14 @@ protected:
QLabel * m_pImageLabel;
KviPtrList<KviThemeInfo> * m_pThemeInfoList;
QLineEdit * m_pPackageNameEdit;
- QMultiLineEdit * m_pPackageDescriptionEdit;
+ QTextEdit * m_pPackageDescriptionEdit;
QLineEdit * m_pPackageVersionEdit;
QLineEdit * m_pPackagerNameEdit;
QWidget * m_pImageSelectionPage;
protected:
virtual void accept();
-protected slots:
bool packTheme();
+protected slots:
void imageSelectionChanged(const QString &szImagePath);
};
diff --git a/src/modules/theme/savethemedialog.cpp b/src/modules/theme/savethemedialog.cpp
index 7a7a200c3..6e187fdb7 100644
--- a/src/modules/theme/savethemedialog.cpp
+++ b/src/modules/theme/savethemedialog.cpp
@@ -23,6 +23,7 @@
//=============================================================================
#include "savethemedialog.h"
+#include "themefunctions.h"
#include <qlayout.h>
#include <qpushbutton.h>
@@ -53,87 +54,194 @@
#include "kvi_filedialog.h"
#include "kvi_msgbox.h"
#include "kvi_selectors.h"
+#include "kvi_miscutils.h"
#include "kvi_sourcesdate.h"
-KviSaveThemeDialog::KviSaveThemeDialog(QWidget * par)
-: QDialog(par)
+
+KviSaveThemeDialog::KviSaveThemeDialog(QWidget * pParent)
+: QWizard(pParent)
{
- setCaption(__tr2qs_ctx("Save Current Theme","theme"));
+ setCaption(__tr2qs_ctx("Save Current Theme - KVIrc","theme"));
+ setMinimumSize(400,350);
+
+ // welcome page ==================================================================================
+ QWidget * pPage = new QWidget(this);
+ QGridLayout * pLayout = new QGridLayout(pPage,2,1,4,4);
+
+ QLabel * pLabel = new QLabel(pPage);
+ QString szText = "<p>";
+ szText += __tr2qs_ctx("This procedure allows you to save the current theme settings to a single directory. It is useful if you want to apply other themes or play with the theme settings and later come back to this theme with a single click. It will also allow you to manually modify the theme settings and later export them to a distributable package.","theme");
+ szText += "</p><p>";
+ szText += __tr2qs_ctx("You will be asked to provide a theme name, a description and, if you want, a screenshot.","theme");
+ szText += "</p><p>";
+ szText += __tr2qs_ctx("Hit the \"Next\" button to begin.","theme");
+ szText += "<p>";
+
+ pLabel->setText(szText);
+ pLayout->addWidget(pLabel,0,0);
+ pLayout->setRowStretch(1,1);
+
+ addPage(pPage,__tr2qs_ctx("Welcome","theme"));
+ setBackEnabled(pPage,false);
+ setNextEnabled(pPage,true);
+ setHelpEnabled(pPage,false);
+ setFinishEnabled(pPage,false);
- QGridLayout * g = new QGridLayout(this,8,2,4,4);
+ // packager informations ================================================================================
- QLabel * l;
+ pPage = new QWidget(this);
+ pLayout = new QGridLayout(pPage,5,2,4,4);
- l = new QLabel(__tr2qs_ctx("Theme name:","theme"),this);
- g->addWidget(l,0,0);
+ pLabel = new QLabel(pPage);
+ pLabel->setText(__tr2qs_ctx("Here you need to provide informations about you (the author) and a short description of the theme you're creating.","theme"));
+ pLabel->setTextFormat(Qt::RichText);
+ pLayout->addMultiCellWidget(pLabel,0,0,0,1);
+
+ pLabel = new QLabel(pPage);
+ pLabel->setText(__tr2qs_ctx("Theme Name:","theme"));
+ pLayout->addWidget(pLabel,1,0);
+
+ m_pThemeNameEdit = new QLineEdit(pPage);
+ //m_pThemeNameEdit->setText(szThemeName);
+ pLayout->addWidget(m_pThemeNameEdit,1,1);
- m_pThemeNameEdit = new QLineEdit(this);
- g->addMultiCellWidget(m_pThemeNameEdit,0,0,1,2);
- connect(m_pThemeNameEdit,SIGNAL(textChanged(const QString &)),this,SLOT(themeNameChanged(const QString &)));
+ pLabel = new QLabel(pPage);
+ pLabel->setText(__tr2qs_ctx("Version:","theme"));
+ pLayout->addWidget(pLabel,2,0);
+
+ m_pThemeVersionEdit = new QLineEdit(pPage);
+ //m_pThemeVersionEdit->setText(szThemeVersion);
+ pLayout->addWidget(m_pThemeVersionEdit,2,1);
+
+ pLabel = new QLabel(pPage);
+ pLabel->setText(__tr2qs_ctx("Description:","theme"));
+ pLayout->addWidget(pLabel,3,0);
+
+ m_pThemeDescriptionEdit = new QTextEdit(pPage);
+ //m_pThemeDescriptionEdit->setText(szThemeDescription);
+ pLayout->addWidget(m_pThemeDescriptionEdit,3,1);
+ pLabel = new QLabel(pPage);
+ pLabel->setText(__tr2qs_ctx("Theme Author:","theme"));
+ pLayout->addWidget(pLabel,4,0);
+
+ m_pAuthorNameEdit = new QLineEdit(pPage);
+ //m_pAuthorNameEdit->setText(szThemeAuthor);
+ pLayout->addWidget(m_pAuthorNameEdit,4,1);
- l = new QLabel(__tr2qs_ctx("Version:","theme"),this);
- g->addWidget(l,1,0);
- m_pVersionEdit = new QLineEdit(this);
- g->addMultiCellWidget(m_pVersionEdit,1,1,1,2);
+ pLayout->setRowStretch(3,1);
+ pLayout->setColStretch(1,1);
+ addPage(pPage,__tr2qs_ctx("Theme Informations","theme"));
+ setBackEnabled(pPage,true);
+ setHelpEnabled(pPage,false);
+ setNextEnabled(pPage,true);
+ setFinishEnabled(pPage,false);
- l = new QLabel(__tr2qs_ctx("Author:","theme"),this);
- g->addWidget(l,2,0);
+ // screenshot/logo/icon ================================================================================
- m_pAuthorEdit = new QLineEdit(this);
- g->addMultiCellWidget(m_pAuthorEdit,2,2,1,2);
+ pPage = new QWidget(this);
+ pLayout = new QGridLayout(pPage,4,1,4,4);
- l = new QLabel(__tr2qs_ctx("Description:","theme"),this);
- g->addWidget(l,3,0);
+ pLabel = new QLabel(pPage);
+ pLabel->setText(__tr2qs_ctx("Here you can either choose a screenshot image from disk or make one now. The screenshot will be displayed in the tooltips of the theme management dialog and will be also visible in the package installation dialog if you will export the theme to a distributable package.","theme"));
+ pLabel->setTextFormat(Qt::RichText);
+ pLayout->addWidget(pLabel,0,0);
+
+ m_pImageLabel = new QLabel(pPage);
+ m_pImageLabel->setFrameStyle(QFrame::Sunken | QFrame::Panel);
+ m_pImageLabel->setMinimumSize(300,225);
+ m_pImageLabel->setAlignment(Qt::AlignCenter | Qt::AlignVCenter);
+ pLayout->addWidget(m_pImageLabel,1,0);
- m_pDescriptionEdit = new QTextEdit(this);
- g->addMultiCellWidget(m_pDescriptionEdit,3,4,1,2);
+ QString szFilter = "*.png *.jpg *.xpm";
+ m_pImageSelector = new KviFileSelector(pPage,"",&m_szScreenshotPath,true,0,szFilter);
+ connect(m_pImageSelector,SIGNAL(selectionChanged(const QString &)),this,SLOT(imageSelectionChanged(const QString &)));
+ pLayout->addWidget(m_pImageSelector,2,0);
- QHBox * h = new QHBox(this);
- h->setSpacing(7);
- g->addWidget(h,7,2);
- m_pOkButton = new QPushButton(__tr2qs_ctx("OK","theme"),h);
- m_pOkButton->setEnabled(false);
- connect(m_pOkButton,SIGNAL(clicked()),this,SLOT(saveTheme()));
- m_pOkButton->setIconSet(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_ACCEPT)));
+ QPushButton * pButton = new QPushButton(pPage);
+ pButton->setText(__tr2qs_ctx("Make Screenshot Now","theme"));
+ connect(pButton,SIGNAL(clicked()),this,SLOT(makeScreenshot()));
+ pLayout->addWidget(pButton,3,0);
- QPushButton * pb = new QPushButton(__tr2qs_ctx("Cancel","theme"),h);
- connect(pb,SIGNAL(clicked()),this,SLOT(reject()));
- pb->setIconSet(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_DISCARD)));
+ pLayout->setRowStretch(1,1);
+ m_pImageSelectionPage = pPage;
+ addPage(pPage,__tr2qs_ctx("Screenshot","theme"));
+ setBackEnabled(pPage,true);
+ setHelpEnabled(pPage,false);
+ setNextEnabled(pPage,true);
+ setFinishEnabled(pPage,true);
}
KviSaveThemeDialog::~KviSaveThemeDialog()
{
+}
+
+void KviSaveThemeDialog::imageSelectionChanged(const QString &szImagePath)
+{
+ QImage pix(szImagePath);
+ if(!pix.isNull())
+ {
+ QPixmap out;
+ if(pix.width() > 300 || pix.height() > 225)
+ out.convertFromImage(pix.smoothScale(300,225,QImage::ScaleMin));
+ else
+ out.convertFromImage(pix);
+ m_pImageLabel->setPixmap(out);
+ return;
+ }
+ QMessageBox::critical(this,__tr2qs_ctx("Save Current Theme - KVIrc","theme"),__tr2qs_ctx("Failed to load the selected image","theme"),
+ QMessageBox::Ok,QMessageBox::NoButton,QMessageBox::NoButton);
+
+ m_pImageSelector->setSelection("");
+ m_pImageLabel->setPixmap(QPixmap());
}
-void KviSaveThemeDialog::themeNameChanged(const QString &txt)
+
+void KviSaveThemeDialog::accept()
{
- m_pOkButton->setEnabled(!txt.isEmpty());
+ if(!saveTheme())return;
+ QWizard::accept();
}
-void KviSaveThemeDialog::saveTheme()
+void KviSaveThemeDialog::makeScreenshot()
{
+ QString szFileName;
+ g_pApp->getTmpFileName(szFileName,"screenshot.png");
+ if(!KviThemeFunctions::makeKVIrcScreenshot(szFileName))
+ {
+ QMessageBox::critical(this,__tr2qs_ctx("Acquire Screenshot - KVIrc","theme"),__tr2qs_ctx("Failed to make screenshot","theme"),
+ QMessageBox::Ok,QMessageBox::NoButton,QMessageBox::NoButton);
+ return;
+ }
+ m_pImageSelector->setSelection(szFileName);
+ imageSelectionChanged(szFileName);
+}
+
+bool KviSaveThemeDialog::saveTheme()
+{
+ m_pImageSelector->commit();
+
KviThemeInfo sto;
sto.setName(m_pThemeNameEdit->text());
if(sto.name().isEmpty())
{
- QMessageBox::critical(this,__tr2qs_ctx("Save Theme - KVIrc","theme"),__tr2qs_ctx("You must choose a theme name!","theme"),QMessageBox::Ok,
+ QMessageBox::critical(this,__tr2qs_ctx("Save Current Theme - KVIrc","theme"),__tr2qs_ctx("You must choose a theme name!","theme"),QMessageBox::Ok,
QMessageBox::NoButton,QMessageBox::NoButton);
- return;
+ return false;
}
- sto.setAuthor(m_pAuthorEdit->text());
- sto.setDescription(m_pDescriptionEdit->text());
+ sto.setAuthor(m_pAuthorNameEdit->text());
+ sto.setDescription(m_pThemeDescriptionEdit->text());
sto.setDate(QDateTime::currentDateTime().toString());
- sto.setVersion(m_pVersionEdit->text());
+ sto.setVersion(m_pThemeVersionEdit->text());
sto.setApplication("KVIrc " KVI_VERSION "." KVI_SOURCES_DATE);
-
+
if(sto.version().isEmpty())sto.setVersion("1.0.0");
QString szSubdir = sto.name() + QString("-") + sto.version();
@@ -144,23 +252,34 @@ void KviSaveThemeDialog::saveTheme()
g_pApp->getLocalKvircDirectory(szAbsDir,KviApp::Themes,sto.subdirectory(),true);
if(!KviFileUtils::makeDir(szAbsDir))
{
- QMessageBox::critical(this,__tr2qs_ctx("Save Theme - KVIrc","theme"),__tr2qs_ctx("Unable to create theme directory.","theme"),
+ QMessageBox::critical(this,__tr2qs_ctx("Save Current Theme - KVIrc","theme"),__tr2qs_ctx("Unable to create theme directory.","theme"),
QMessageBox::Ok,QMessageBox::NoButton,QMessageBox::NoButton);
- return;
+ return false;
}
-
+
sto.setAbsoluteDirectory(szAbsDir);
-
+
if(!KviTheme::save(sto))
{
QString szMsg2;
QString szErr = sto.lastError();
KviQString::sprintf(szMsg2,__tr2qs_ctx("Unable to save theme: %Q","theme"),&szErr);
- QMessageBox::critical(this,__tr2qs_ctx("Save Theme - KVIrc","theme"),szMsg2,
+ QMessageBox::critical(this,__tr2qs_ctx("Save Current Theme - KVIrc","theme"),szMsg2,
QMessageBox::Ok,QMessageBox::NoButton,QMessageBox::NoButton);
- return;
+ return false;
+ }
+ // write down the screenshot, if needed
+
+ if(!m_szScreenshotPath.isEmpty())
+ {
+ if(!KviTheme::saveScreenshots(sto,m_szScreenshotPath))
+ {
+ QMessageBox::critical(this,__tr2qs_ctx("Save Current Theme - KVIrc","theme"),__tr2qs_ctx("Failed to load the selected screenshot image: please fix it","theme"),
+ QMessageBox::Ok,QMessageBox::NoButton,QMessageBox::NoButton);
+ showPage(m_pImageSelectionPage);
+ return false;
+ }
}
- // write down the images
QString szMsg = __tr2qs_ctx("Theme saved successfully to ","theme");
szMsg += sto.absoluteDirectory();
@@ -168,6 +287,6 @@ void KviSaveThemeDialog::saveTheme()
QMessageBox::information(this,__tr2qs_ctx("Save Theme - KVIrc","theme"),szMsg,QMessageBox::Ok,
QMessageBox::NoButton,QMessageBox::NoButton);
- accept();
+ return true;
}
diff --git a/src/modules/theme/savethemedialog.h b/src/modules/theme/savethemedialog.h
index af9dd2186..5e780f750 100644
--- a/src/modules/theme/savethemedialog.h
+++ b/src/modules/theme/savethemedialog.h
@@ -26,10 +26,11 @@
#include "kvi_settings.h"
#include "kvi_list.h"
+#include "kvi_theme.h"
#include <qdialog.h>
+#include <qwizard.h>
-#include "kvi_theme.h"
class QLineEdit;
class QTextEdit;
@@ -40,21 +41,29 @@ class QMultiLineEdit;
class KviFileSelector;
-class KviSaveThemeDialog : public QDialog
+class KviSaveThemeDialog : public QWizard
{
Q_OBJECT
public:
- KviSaveThemeDialog(QWidget *par);
+ KviSaveThemeDialog(QWidget * pParent);
virtual ~KviSaveThemeDialog();
protected:
- QLineEdit * m_pAuthorEdit;
- QLineEdit * m_pThemeNameEdit;
- QLineEdit * m_pVersionEdit;
- QTextEdit * m_pDescriptionEdit;
+ QString m_szScreenshotPath;
+ KviFileSelector * m_pImageSelector;
+ QLabel * m_pImageLabel;
+ QLineEdit * m_pThemeNameEdit;
+ QTextEdit * m_pThemeDescriptionEdit;
+ QLineEdit * m_pThemeVersionEdit;
+ QLineEdit * m_pAuthorNameEdit;
+ QWidget * m_pImageSelectionPage;
QPushButton * m_pOkButton;
+protected:
+ virtual void accept();
+ bool saveTheme();
protected slots:
- void saveTheme();
- void themeNameChanged(const QString &txt);
+ void makeScreenshot();
+ void imageSelectionChanged(const QString &szImagePath);
+ //void themeNameChanged(const QString &txt);
};
diff --git a/src/modules/theme/themefunctions.cpp b/src/modules/theme/themefunctions.cpp
index d6fef4dc6..86b786f0e 100644
--- a/src/modules/theme/themefunctions.cpp
+++ b/src/modules/theme/themefunctions.cpp
@@ -33,6 +33,7 @@
#include "kvi_miscutils.h"
#include "kvi_sourcesdate.h"
#include "kvi_theme.h"
+#include "kvi_frame.h"
#include <qmime.h>
@@ -156,6 +157,11 @@ namespace KviThemeFunctions
r.getStringInfoField(szTmp,szThemeAuthor);
KviQString::sprintf(szTmp,"Theme%dThemeEngineVersion",iIdx);
r.getStringInfoField(szTmp,szThemeThemeEngineVersion);
+ KviQString::sprintf(szTmp,"Theme%dScreenshot",iIdx);
+ QPixmap pixScreenshot;
+ pByteArray = r.binaryInfoFields()->find(szTmp);
+ if(pByteArray)
+ pixScreenshot.loadFromData(*pByteArray,0,0);
if(szThemeName.isEmpty() || szThemeVersion.isEmpty() || szThemeSubdirectory.isEmpty() || szThemeThemeEngineVersion.isEmpty())
bValid = false;
@@ -173,9 +179,14 @@ namespace KviThemeFunctions
szThemeApplication,
szThemeAuthor,
szThemeDate,
- szThemeThemeEngineVersion
+ szThemeThemeEngineVersion,
+ pixScreenshot,
+ iIdx
);
+ if(iIdx > 0)
+ szDetails += "<hr>";
+
szDetails += szDetailsBuffer;
if(!bValid)
@@ -186,16 +197,12 @@ namespace KviThemeFunctions
iValidThemeCount--;
}
- if(iIdx > 0)
- szDetails += "<hr>";
-
iIdx++;
}
- szDetails += "<p><center><a href=\"theme_dialog_main\">";
+ szDetails += "<br><p><center><a href=\"theme_dialog_main\">";
szDetails += __tr2qs_ctx("Go Back to Package Data","theme");
szDetails += "</a></center></p>";
-
szDetails += "</body></html>";
if(iValidThemeCount < iThemeCount)
@@ -244,7 +251,8 @@ namespace KviThemeFunctions
&szPackageDate,
&szCreatedOn,
&szPackageApplication,
- &szWarnings
+ &szWarnings,
+ &szShowDetails
);
@@ -295,7 +303,9 @@ namespace KviThemeFunctions
const QString &szThemeApplication,
const QString &szThemeAuthor,
const QString &szThemeDate,
- const QString &szThemeThemeEngineVersion
+ const QString &szThemeThemeEngineVersion,
+ const QPixmap &pixScreenshot,
+ int iUniqueIndexInDocument
)
{
QString szAuthor = __tr2qs_ctx("Author","theme");
@@ -304,27 +314,40 @@ namespace KviThemeFunctions
QString szThemeEngineVersion = __tr2qs_ctx("Theme Engine Version","theme");
QString szSubdirectory = __tr2qs_ctx("Subdirectory","theme");
+ QString szScreenshot;
+ if(!pixScreenshot.isNull())
+ {
+ KviQString::sprintf(szScreenshot,"<p><center><img src=\"theme_shot%d\"></center></p>",iUniqueIndexInDocument);
+ QString szTmp;
+ KviQString::sprintf(szTmp,"theme_shot%d",iUniqueIndexInDocument);
+ QMimeSourceFactory::defaultFactory()->setPixmap(szTmp,pixScreenshot);
+ } else {
+ szScreenshot = "";
+ }
+
KviQString::sprintf(
szBuffer,
- "<p>" \
+ "<p><center>" \
"<h2>%Q %Q</h2>" \
- "</p>" \
- "<p>" \
+ "</center></p>" \
+ "%Q" \
+ "<p><center>" \
"<i>%Q</i>" \
- "</p>" \
- "<p>" \
+ "</center></p>" \
+ "<p><center>" \
"%Q: <b>%Q</b><br>" \
"%Q: <b>%Q</b><br>" \
- "</p>" \
- "<p>" \
+ "</center></p>" \
+ "<p><center>" \
"<font color=\"#808080\">" \
"%Q: %Q<br>" \
"%Q: %Q<br>" \
"%Q: %Q<br>" \
"</font>" \
- "</p>",
+ "</center></p>",
&szThemeName,
&szThemeVersion,
+ &szScreenshot,
&szThemeDescription,
&szAuthor,
&szThemeAuthor,
@@ -339,6 +362,30 @@ namespace KviThemeFunctions
);
}
+ bool makeKVIrcScreenshot(const QString &szSavePngFilePath,bool bMaximizeFrame)
+ {
+ if(bMaximizeFrame)
+ {
+ if(g_pFrame->isMaximized())
+ bMaximizeFrame = false;
+ }
+
+ if(bMaximizeFrame)
+ g_pFrame->showMaximized();
+
+ QPixmap pix = QPixmap::grabWidget(g_pFrame);
+ bool bResult = true;
+
+ if(pix.isNull())
+ bResult = false;
+ else {
+ if(!pix.save(szSavePngFilePath,"PNG",100))
+ bResult = false;
+ }
+ if(bMaximizeFrame)
+ g_pFrame->showNormal();
+ return bResult;
+ }
};
diff --git a/src/modules/theme/themefunctions.h b/src/modules/theme/themefunctions.h
index b628df4fb..d3b058865 100644
--- a/src/modules/theme/themefunctions.h
+++ b/src/modules/theme/themefunctions.h
@@ -28,6 +28,7 @@
#include "kvi_qstring.h"
#include <qwidget.h>
+#include <qpixmap.h>
namespace KviThemeFunctions
{
@@ -41,8 +42,11 @@ namespace KviThemeFunctions
const QString &szThemeApplication,
const QString &szThemeAuthor,
const QString &szThemeDate,
- const QString &szThemeThemeEngineVersion
+ const QString &szThemeThemeEngineVersion,
+ const QPixmap &pixScreenshot,
+ int iUniqueIndexInDocument = 0
);
+ bool makeKVIrcScreenshot(const QString &szSavePngFilePath,bool bMaximizeFrame = false);
};