[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