[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: extragear/multimedia/k3b/src/projects
From: Sebastian Trueg <sebastian () trueg ! de>
Date: 2006-09-06 11:54:24
Message-ID: 1157543664.594665.29431.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 581425 by trueg:
K3b now uses libiconv to check the encoding of filenames added to a data project.
Still missing is a dialog which allows the user to fix the encoding.
M +2 -1 Makefile.am
M +9 -26 k3bdataurladdingdialog.cpp
A k3bencodingconverter.cpp [License: GPL (v2+)]
A k3bencodingconverter.h [License: GPL (v2+)]
--- trunk/extragear/multimedia/k3b/src/projects/Makefile.am #581424:581425
@@ -81,4 +81,5 @@
k3bdataurladdingdialog.cpp \
k3bdatasessionimportdialog.cpp \
k3baudiodatasourceeditwidget.cpp \
- k3baudiotrackaddingdialog.cpp
\ No newline at end of file
+ k3baudiotrackaddingdialog.cpp \
+ k3bencodingconverter.cpp
\ No newline at end of file
--- trunk/extragear/multimedia/k3b/src/projects/k3bdataurladdingdialog.cpp #581424:581425
@@ -16,6 +16,7 @@
#include <k3bglobals.h>
#include "k3bdataurladdingdialog.h"
+#include "k3bencodingconverter.h"
#include <qtimer.h>
#include <qlabel.h>
@@ -42,12 +43,7 @@
#include <unistd.h>
-#ifdef HAVE_ICONV_H
-#include <langinfo.h>
-#include <iconv.h>
-#endif
-
K3bDataUrlAddingDialog::K3bDataUrlAddingDialog( QWidget* parent, const char* name )
: KDialogBase( Plain,
i18n("Please be patient..."),
@@ -64,6 +60,8 @@
m_bCanceled(false),
m_urlCounter(0)
{
+ m_encodingConverter = new K3bEncodingConverter();
+
QWidget* page = plainPage();
QGridLayout* grid = new QGridLayout( page );
grid->setSpacing( spacingHint() );
@@ -84,6 +82,7 @@
K3bDataUrlAddingDialog::~K3bDataUrlAddingDialog()
{
+ delete m_encodingConverter;
}
@@ -207,28 +206,12 @@
m_notFoundFiles.append( url.path() );
}
- else {
-#ifdef HAVE_ICONV_H
- //
- // Check the filename encoding
- //
- // FIXME: do not reopen the iconv struct each time
- char* codec = nl_langinfo( CODESET );
- kdDebug() << "(K3bDataUrlAddingDialog) using locale codec: " << codec << endl;
- iconv_t ic = ::iconv_open( "UCS-2BE", codec );
- QCString locallyEncoded = QFile::encodeName( url.path() );
- QCString utf8Encoded( locallyEncoded.length()*2 );
- char* in = locallyEncoded.data();
- char* out = utf8Encoded.data();
- size_t inSize = locallyEncoded.length();
- size_t outSize = utf8Encoded.size();
- if( (size_t)-1 == ::iconv( ic, &in, &inSize, &out, &outSize ) ) {
- m_invalidFilenameEncodingFiles.append( url.path() );
- valid = false;
- }
- ::iconv_close( ic );
-#endif
+ else if( !m_encodingConverter->encodedLocally( QFile::encodeName( url.path() ) ) ) {
+ valid = false;
+ m_invalidFilenameEncodingFiles.append( url.path() );
+ }
+ else {
isSymLink = S_ISLNK(statBuf.st_mode);
isFile = S_ISREG(statBuf.st_mode);
isDir = S_ISDIR(statBuf.st_mode);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic