aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGravatar Alexey Uzhva2007-04-10 11:42:26 +0000
committerGravatar Alexey Uzhva2007-04-10 11:42:26 +0000
commit8a05642d842820e59986d451ec179c57d35757e7 (patch)
tree60919775203f9a365df1ee27bcd085ce6a7830e8 /src
parentupdated hungarian translations (diff)
downloadKVIrc-8a05642d842820e59986d451ec179c57d35757e7.tar.gz
KVIrc-8a05642d842820e59986d451ec179c57d35757e7.tar.bz2
KVIrc-8a05642d842820e59986d451ec179c57d35757e7.zip
Configurable avatar scaling on load; Human-redable file sized on dcc transfers
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@473 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src')
-rw-r--r--src/kvilib/core/kvi_qstring.cpp25
-rw-r--r--src/kvilib/core/kvi_qstring.h1
-rw-r--r--src/kvirc/kernel/kvi_iconmanager.cpp7
-rw-r--r--src/kvirc/kernel/kvi_iconmanager.h2
-rw-r--r--src/kvirc/kernel/kvi_options.cpp7
-rw-r--r--src/kvirc/kernel/kvi_options.h7
-rw-r--r--src/modules/dcc/broker.cpp12
-rw-r--r--src/modules/dcc/send.cpp6
-rw-r--r--src/modules/filetransferwindow/filetransferwindow.cpp2
-rw-r--r--src/modules/http/httpfiletransfer.cpp5
-rw-r--r--src/modules/options/optw_avatar.cpp19
-rw-r--r--src/modules/options/optw_identity.cpp2
-rw-r--r--src/win32registrar/win32registrar.h2
-rw-r--r--src/win32registrar/win32registrar_i.c2
14 files changed, 72 insertions, 27 deletions
diff --git a/src/kvilib/core/kvi_qstring.cpp b/src/kvilib/core/kvi_qstring.cpp
index bd8ade4f6..48ce8bfa8 100644
--- a/src/kvilib/core/kvi_qstring.cpp
+++ b/src/kvilib/core/kvi_qstring.cpp
@@ -34,6 +34,7 @@
#include "kvi_qstring.h"
#include "kvi_string.h"
#include "kvi_malloc.h"
+#include "kvi_locale.h"
#include <ctype.h> // for tolower()
#include <stdio.h> // for sprintf()
@@ -160,6 +161,30 @@ namespace KviQString
return (c1 == c1e);
}
+ QString makeSizeReadable(size_t bytes)
+ {
+ double size = bytes;
+ if(size<900)
+ return QString(__tr2qs("%1 bytes")).arg(size,0,'f',3);
+
+ size/=1024;
+ if(size<900)
+ return QString(__tr2qs("%1 KB")).arg(size,0,'f',3);
+
+ size/=1024;
+ if(size<900)
+ return QString(__tr2qs("%1 MB")).arg(size,0,'f',3);
+
+ //Pirated DVD?;)
+ size/=1024;
+ if(size<900)
+ return QString(__tr2qs("%1 GB")).arg(size,0,'f',3);
+
+ //Uhm.. We are downloading a whole internet:)))
+ size/=1024;
+ return QString(__tr2qs("%1 TB")).arg(size,0,'f',3);
+ }
+
bool equalCS(const QString &sz1,const QString &sz2)
{
if(sz1.length() != sz2.length())return false;
diff --git a/src/kvilib/core/kvi_qstring.h b/src/kvilib/core/kvi_qstring.h
index 564dea215..a821fa294 100644
--- a/src/kvilib/core/kvi_qstring.h
+++ b/src/kvilib/core/kvi_qstring.h
@@ -40,6 +40,7 @@
namespace KviQString
{
+ extern KVILIB_API QString makeSizeReadable(size_t size);
extern KVILIB_API bool equalCS(const QString &sz1,const QString &sz2);
extern KVILIB_API bool equalCI(const QString &sz1,const QString &sz2);
extern KVILIB_API bool equalCS(const QString &sz1,const char * sz2);
diff --git a/src/kvirc/kernel/kvi_iconmanager.cpp b/src/kvirc/kernel/kvi_iconmanager.cpp
index 685f88f95..18ba42df1 100644
--- a/src/kvirc/kernel/kvi_iconmanager.cpp
+++ b/src/kvirc/kernel/kvi_iconmanager.cpp
@@ -34,6 +34,7 @@
#include "kvi_defaults.h"
#include "kvi_locale.h"
#include "kvi_fileutils.h"
+#include "kvi_options.h"
#include <qlayout.h>
#include <qlabel.h>
@@ -783,7 +784,7 @@ void KviIconManager::urlToCachedFileName(QString &szFName)
szFName.replace("___",".");
}
-KviAvatar * KviIconManager::getAvatar(const QString &szLocalPath,const QString &szName,bool bScaleIfReallyTooBig)
+KviAvatar * KviIconManager::getAvatar(const QString &szLocalPath,const QString &szName)
{
QString szP,szN;
@@ -810,7 +811,9 @@ KviAvatar * KviIconManager::getAvatar(const QString &szLocalPath,const QString &
}
// avatars bigger than 1024x768 just sux: they can't be seen on tooltips anyway
- KviCachedPixmap * p = bScaleIfReallyTooBig ? getPixmapWithCacheScaleOnLoad(szP,1024,768) : getPixmapWithCache(szP);
+ KviCachedPixmap * p = KVI_OPTION_BOOL(KviOption_boolScaleAvatarsOnLoad) ? getPixmapWithCacheScaleOnLoad(szP,
+ KVI_OPTION_UINT(KviOption_uintScaleAvatarsOnLoadWidth)
+ ,KVI_OPTION_UINT(KviOption_uintScaleAvatarsOnLoadHeight)) : getPixmapWithCache(szP);
if(!p)return 0;
return new KviAvatar(p->path(),szN,new QPixmap(*(p->pixmap())));
diff --git a/src/kvirc/kernel/kvi_iconmanager.h b/src/kvirc/kernel/kvi_iconmanager.h
index 88c865fa6..80ca7b2d5 100644
--- a/src/kvirc/kernel/kvi_iconmanager.h
+++ b/src/kvirc/kernel/kvi_iconmanager.h
@@ -477,7 +477,7 @@ public:
// if szLocalPath is empty then szName can be the identification
// string for the avatar
// if szName is empty then it is found from szLocalPath
- KviAvatar * getAvatar(const QString &szLocalPath,const QString &szName,bool bScaleIfReallyTooBig = true);
+ KviAvatar * getAvatar(const QString &szLocalPath,const QString &szName);
void urlToCachedFileName(KviStr &szFName);
void urlToCachedFileName(QString &szFName);
diff --git a/src/kvirc/kernel/kvi_options.cpp b/src/kvirc/kernel/kvi_options.cpp
index 01cbd7b36..7bbb898b6 100644
--- a/src/kvirc/kernel/kvi_options.cpp
+++ b/src/kvirc/kernel/kvi_options.cpp
@@ -303,7 +303,8 @@ KviBoolOption g_boolOptionsTable[KVI_NUM_BOOL_OPTIONS]=
BOOL_OPTION("DrawGenderIcons",true,KviOption_sectFlagFrame | KviOption_resetUpdateGui | KviOption_groupTheme),
BOOL_OPTION("PrependGenderInfoToRealname",true,KviOption_sectFlagConnection),
BOOL_OPTION("UseIdentServiceOnlyOnConnect",true,KviOption_sectFlagConnection | KviOption_resetRestartIdentd),
- BOOL_OPTION("UseSystemUrlHandlers",true,KviOption_sectFlagUrl)
+ BOOL_OPTION("UseSystemUrlHandlers",true,KviOption_sectFlagUrl),
+ BOOL_OPTION("ScaleAvatarsOnLoad",true,KviOption_sectFlagAvatar)
};
@@ -615,7 +616,9 @@ KviUIntOption g_uintOptionsTable[KVI_NUM_UINT_OPTIONS]=
UINT_OPTION("AutoFlushLogs",30,KviOption_sectFlagFrame ),
UINT_OPTION("MinTrayLowLevelMessage",1,KviOption_sectFlagFrame ),
UINT_OPTION("MinTrayHighLevelMessage",4,KviOption_sectFlagFrame ),
- UINT_OPTION("IdentdOutputMode",KviIdentdOutputMode::Quiet,KviOption_sectFlagConnection )
+ UINT_OPTION("IdentdOutputMode",KviIdentdOutputMode::Quiet,KviOption_sectFlagConnection ),
+ UINT_OPTION("ScaleAvatarsOnLoadHeight",600,KviOption_sectFlagAvatar ),
+ UINT_OPTION("ScaleAvatarsOnLoadWidth",800,KviOption_sectFlagAvatar )
};
#define FONT_OPTION(_name,_face,_size,_flags) \
diff --git a/src/kvirc/kernel/kvi_options.h b/src/kvirc/kernel/kvi_options.h
index bf1d98b3c..fa8a12264 100644
--- a/src/kvirc/kernel/kvi_options.h
+++ b/src/kvirc/kernel/kvi_options.h
@@ -310,8 +310,9 @@ DECLARE_OPTION_STRUCT(KviStringListOption,QStringList)
#define KviOption_boolPrependGenderInfoToRealname 216
#define KviOption_boolUseIdentServiceOnlyOnConnect 217 /* connection::ident */
#define KviOption_boolUseSystemUrlHandlers 218 /* Windoze only*/
+#define KviOption_boolScaleAvatarsOnLoad 219
-#define KVI_NUM_BOOL_OPTIONS 219
+#define KVI_NUM_BOOL_OPTIONS 220
@@ -551,8 +552,10 @@ DECLARE_OPTION_STRUCT(KviStringListOption,QStringList)
#define KviOption_uintMinTrayLowLevelMessage 58
#define KviOption_uintMinTrayHighLevelMessage 59
#define KviOption_uintIdentdOutputMode 60
+#define KviOption_uintScaleAvatarsOnLoadHeight 61
+#define KviOption_uintScaleAvatarsOnLoadWidth 62
-#define KVI_NUM_UINT_OPTIONS 61
+#define KVI_NUM_UINT_OPTIONS 63
namespace KviIdentdOutputMode {
enum Mode {
diff --git a/src/modules/dcc/broker.cpp b/src/modules/dcc/broker.cpp
index 66962fd38..52c0abf33 100644
--- a/src/modules/dcc/broker.cpp
+++ b/src/modules/dcc/broker.cpp
@@ -502,11 +502,11 @@ void KviDccBroker::recvFileManage(KviDccDescriptor * dcc)
"<b>%1 [%2@%3]</b> " \
"wants to send you the file " \
"'<b>%4</b>', " \
- "<b>%5</b> bytes large.<br>" \
+ "<b>%5</b> large.<br>" \
"The connection target will be host <b>%6</b> on port <b>%7</b><br>" \
,"dcc" \
).arg(dcc->szNick).arg(dcc->szUser).arg(dcc->szHost).arg(
- dcc->szFileName).arg(dcc->szFileSize).arg(
+ dcc->szFileName).arg(KviQString::makeSizeReadable(dcc->szFileSize.toInt())).arg(
dcc->szIp).arg(dcc->szPort);
} else {
@@ -515,11 +515,11 @@ void KviDccBroker::recvFileManage(KviDccDescriptor * dcc)
"<b>%1 [%2@%3]</b> "
"wants to send you the file " \
"'<b>%4</b>', " \
- "<b>%5</b> bytes large.<br>" \
+ "<b>%5</b> large.<br>" \
"You will be the passive side of the connection.<br>" \
,"dcc" \
).arg(dcc->szNick).arg(dcc->szUser).arg(dcc->szHost).arg(
- dcc->szFileName).arg(dcc->szFileSize);
+ dcc->szFileName).arg(KviQString::makeSizeReadable(dcc->szFileSize.toInt()));
}
if(dcc->bIsIncomingAvatar)
@@ -663,13 +663,13 @@ void KviDccBroker::renameOverwriteResume(KviDccBox *box,KviDccDescriptor * dcc)
{
tmp = __tr2qs_ctx( \
"The file '<b>%1</b>' already exists" \
- "and is <b>%2</b> bytes large.<br>" \
+ "and is <b>%2</b> large.<br>" \
"Do you wish to<br>" \
"<b>overwrite</b> the existing file,<br> " \
"<b>auto-rename</b> the new file, or<br>" \
"<b>resume</b> an incomplete download?" \
,"dcc" \
- ).arg(dcc->szLocalFileName).arg(fi.size());
+ ).arg(dcc->szLocalFileName).arg(KviQString::makeSizeReadable(fi.size()));
} else {
bDisableResume = true;
// the file on disk is larger or equal to the remote one
diff --git a/src/modules/dcc/send.cpp b/src/modules/dcc/send.cpp
index fe28e6020..ba4f79f49 100644
--- a/src/modules/dcc/send.cpp
+++ b/src/modules/dcc/send.cpp
@@ -1231,18 +1231,18 @@ void KviDccFileTransfer::displayPaint(QPainter * p,int column,int width,int heig
if(iW2 > 0)p->fillRect(5 + iL2,5,iW2,10,bIsTerminated ? QColor(150,130,110) : QColor(220,170,100));
p->fillRect(5,5,iL2,10,bIsTerminated ? QColor(140,110,110) : QColor(200,100,100));
- txt = QString(__tr2qs_ctx("%1 of %2 bytes (%3%)","dcc")).arg(iAckedBytes).arg(m_uTotalFileSize).arg(dPerc2,0,'f',2);
+ txt = QString(__tr2qs_ctx("%1 of %2 (%3%)","dcc")).arg(KviQString::makeSizeReadable(iAckedBytes)).arg(KviQString::makeSizeReadable(m_uTotalFileSize)).arg(dPerc2,0,'f',2);
} else {
// we are receiving a file or not sending acks
double dPerc = (double)(((double)uTransferred) * 100.0) / (double)m_uTotalFileSize;
int iL = (int) ((((double)iW) * dPerc) / 100.0);
p->fillRect(5,5,iL,10,bIsTerminated ? QColor(140,110,110) : QColor(200,100,100));
- txt = QString(__tr2qs_ctx("%1 of %2 bytes (%3%)","dcc")).arg(uTransferred).arg(m_uTotalFileSize).arg(dPerc,0,'f',2);
+ txt = QString(__tr2qs_ctx("%1 of %2 (%3%)","dcc")).arg(KviQString::makeSizeReadable(uTransferred)).arg(KviQString::makeSizeReadable(m_uTotalFileSize)).arg(dPerc,0,'f',2);
}
} else {
- txt = QString(__tr2qs_ctx("%1 bytes","dcc")).arg(uTransferred);
+ txt = QString(__tr2qs_ctx("%1","dcc")).arg(KviQString::makeSizeReadable(uTransferred));
}
p->setPen(Qt::black);
diff --git a/src/modules/filetransferwindow/filetransferwindow.cpp b/src/modules/filetransferwindow/filetransferwindow.cpp
index dcce331b5..c607efcb8 100644
--- a/src/modules/filetransferwindow/filetransferwindow.cpp
+++ b/src/modules/filetransferwindow/filetransferwindow.cpp
@@ -313,7 +313,7 @@ void KviFileTransferWindow::rightButtonPressed(KviTalListViewItem *it,const QPoi
if(fi.exists())
{
tmp += "<nobr>";
- tmp += __tr2qs_ctx("Size: %1 bytes","filetransferwindow").arg(fi.size());
+ tmp += __tr2qs_ctx("Size: %1","filetransferwindow").arg(KviQString::makeSizeReadable(fi.size()));
tmp += "</nobr><br>";
}
diff --git a/src/modules/http/httpfiletransfer.cpp b/src/modules/http/httpfiletransfer.cpp
index c83022832..18ccb5b7d 100644
--- a/src/modules/http/httpfiletransfer.cpp
+++ b/src/modules/http/httpfiletransfer.cpp
@@ -211,9 +211,10 @@ void KviHttpFileTransfer::displayPaint(QPainter * p,int column,int width,int hei
//iR = iW - iL;
p->fillRect(5,5,iL,10,bIsTerminated ? QColor(140,110,110) : QColor(200,100,100));
- txt = QString(__tr2qs_ctx("%1 of %2 bytes (%3 %)","http")).arg(uRecvd).arg(uTotal).arg(dPerc,0,'f',2);
+ txt = QString(__tr2qs_ctx("%1 of %2 (%3 %)","http")).arg(KviQString::makeSizeReadable(uRecvd))
+ .arg(KviQString::makeSizeReadable(uTotal)).arg(dPerc,0,'f',2);
} else {
- txt = QString(__tr2qs_ctx("%1 bytes","http")).arg(m_pHttpRequest->receivedSize());
+ txt = KviQString::makeSizeReadable(m_pHttpRequest->receivedSize());
}
p->setPen(Qt::black);
diff --git a/src/modules/options/optw_avatar.cpp b/src/modules/options/optw_avatar.cpp
index 287cba617..5e9ae129e 100644
--- a/src/modules/options/optw_avatar.cpp
+++ b/src/modules/options/optw_avatar.cpp
@@ -33,12 +33,12 @@
KviAvatarAdvancedOptionsWidget::KviAvatarAdvancedOptionsWidget(QWidget * parent)
: KviOptionsWidget(parent,"avatar_advanced_options_widget")
{
- createLayout(3,1);
+ createLayout(4,1);
// AVATAR
// 1st Box
- KviTalGroupBox *g = addGroupBox(0,0,0,0,1,Qt::Horizontal,__tr2qs_ctx("Scaling","options"));
- KviBoolSelector *b = addBoolSelector(g,__tr2qs_ctx("Scale avatar images (recommended)","options"),KviOption_boolScaleAvatars);
+ KviTalGroupBox *g = addGroupBox(0,0,0,0,1,Qt::Horizontal,__tr2qs_ctx("Scaling in userlist","options"));
+ KviBoolSelector *b = addBoolSelector(g,__tr2qs_ctx("Scale avatar images in userlist (recommended)","options"),KviOption_boolScaleAvatars);
#ifdef COMPILE_INFO_TIPS
KviTalToolTip::add(b,__tr2qs_ctx("<center>This option will force KVIrc to scale avatars" \
" shown in the userlist.<br>" \
@@ -52,8 +52,17 @@ KviAvatarAdvancedOptionsWidget::KviAvatarAdvancedOptionsWidget(QWidget * parent)
u = addUIntSelector(g,__tr2qs_ctx("Image height:","options"),KviOption_uintAvatarScaleHeight,0,512,80,KVI_OPTION_BOOL(KviOption_boolScaleAvatars));
connect(b,SIGNAL(toggled(bool)),u,SLOT(setEnabled(bool)));
+ //2nd
+ g = addGroupBox(0,1,0,1,1,Qt::Horizontal,__tr2qs_ctx("Scaling on load (and it user tooltips)","options"));
+ b = addBoolSelector(g,__tr2qs_ctx("Scale avatar images on image load","options"),KviOption_boolScaleAvatarsOnLoad);
+
+ u = addUIntSelector(g,__tr2qs_ctx("Image width:","options"),KviOption_uintScaleAvatarsOnLoadWidth,0,1280,80,KVI_OPTION_BOOL(KviOption_boolScaleAvatarsOnLoad));
+ connect(b,SIGNAL(toggled(bool)),u,SLOT(setEnabled(bool)));
+ u = addUIntSelector(g,__tr2qs_ctx("Image height:","options"),KviOption_uintScaleAvatarsOnLoadHeight,0,1280,80,KVI_OPTION_BOOL(KviOption_boolScaleAvatarsOnLoad));
+ connect(b,SIGNAL(toggled(bool)),u,SLOT(setEnabled(bool)));
+
// 2st Box
- KviTalGroupBox *gs = addGroupBox(0,1,0,1,1,Qt::Horizontal,__tr2qs_ctx("Request CTCP","options"));
+ KviTalGroupBox *gs = addGroupBox(0,2,0,2,1,Qt::Horizontal,__tr2qs_ctx("Request CTCP","options"));
KviBoolSelector * bs = addBoolSelector(g,__tr2qs_ctx("Request missing avatars","options"),KviOption_boolRequestMissingAvatars);
KviUIntSelector * us = addUIntSelector(g,__tr2qs_ctx("Maximum requested file size:","options"),KviOption_uintMaximumRequestedAvatarSize,0,1048576,102400,KVI_OPTION_BOOL(KviOption_boolRequestMissingAvatars));
@@ -111,7 +120,7 @@ KviAvatarAdvancedOptionsWidget::KviAvatarAdvancedOptionsWidget(QWidget * parent)
"it helps in reducing traffic by not sending a reply that would be empty.","options"));
#endif
- addRowSpacer(0,2,0,2);
+ addRowSpacer(0,3,0,3);
}
KviAvatarAdvancedOptionsWidget::~KviAvatarAdvancedOptionsWidget()
diff --git a/src/modules/options/optw_identity.cpp b/src/modules/options/optw_identity.cpp
index e5e9be91f..27186e455 100644
--- a/src/modules/options/optw_identity.cpp
+++ b/src/modules/options/optw_identity.cpp
@@ -582,7 +582,7 @@ void KviIdentityAvatarOptionsWidget::chooseAvatar()
{
// this is an url
// first check if we have it in the cache
- KviAvatar * a = g_pIconManager->getAvatar(QString::null,szCurrent,false);
+ KviAvatar * a = g_pIconManager->getAvatar(QString::null,szCurrent);
if(!a)
{
// no cache... try downloading
diff --git a/src/win32registrar/win32registrar.h b/src/win32registrar/win32registrar.h
index b5e9837aa..0d8c439c0 100644
--- a/src/win32registrar/win32registrar.h
+++ b/src/win32registrar/win32registrar.h
@@ -4,7 +4,7 @@
/* File created by MIDL compiler version 6.00.0366 */
-/* at Sat Apr 07 18:54:09 2007
+/* at Tue Apr 10 15:35:38 2007
*/
/* Compiler settings for .\win32registrar.idl:
Oicf, W1, Zp8, env=Win32 (32b run)
diff --git a/src/win32registrar/win32registrar_i.c b/src/win32registrar/win32registrar_i.c
index 14e048f9e..becba022a 100644
--- a/src/win32registrar/win32registrar_i.c
+++ b/src/win32registrar/win32registrar_i.c
@@ -6,7 +6,7 @@
/* File created by MIDL compiler version 6.00.0366 */
-/* at Sat Apr 07 18:54:09 2007
+/* at Tue Apr 10 15:35:38 2007
*/
/* Compiler settings for .\win32registrar.idl:
Oicf, W1, Zp8, env=Win32 (32b run)