[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdesdk/kompare/komparenavtreepart
From:       Andi Fischer <andi.fischer () hispeed ! ch>
Date:       2008-04-30 21:03:43
Message-ID: 1209589423.958318.15199.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 802844 by fischer:

Selecting file icon by extension.

 M  +83 -5     komparenavtreepart.cpp  
 M  +3 -0      komparenavtreepart.h  


--- trunk/KDE/kdesdk/kompare/komparenavtreepart/komparenavtreepart.cpp #802843:802844
@@ -403,7 +403,7 @@
 {
 	Q3PtrDictIterator<KChangeLVI> it( m_diffToChangeItemDict );
 
-	kDebug() << "m_diffToChangeItemDict.count() = " << m_diffToChangeItemDict.count() << endl;
+	kDebug(8105) << "m_diffToChangeItemDict.count() = " << m_diffToChangeItemDict.count() << endl;
 
 	for ( ; it.current(); ++it )
 	{
@@ -495,13 +495,91 @@
 {
 	m_model = model;
 
-	setText( 0, model->sourceFile() );
-	setText( 1, model->destinationFile() );
-	setPixmap( 0, SmallIcon( "txt" ) );
-	setPixmap( 1, SmallIcon( "txt" ) );
+	QString src = model->sourceFile();
+	QString dst = model->destinationFile();
+
+	setText( 0, src );
+	setText( 1, dst );
+	setPixmap( 0, SmallIcon( getIcon( src ) ) );
+	setPixmap( 1, SmallIcon( getIcon( dst ) ) );
 	setSelectable( true );
 }
 
+bool KFileLVI::hasExtension(const QString& extensions, const QString& fileName)
+{
+    QStringList extList = extensions.split(' ');
+	foreach (QString ext, extList) {
+		if ( fileName.endsWith(ext, Qt::CaseInsensitive) ) {
+			return true;
+		}
+	}
+	return false;
+}
+
+const QString KFileLVI::getIcon(const QString& fileName)
+{
+	// C++, C
+	if ( hasExtension( ".h .hpp", fileName ) ) {
+		return "text-x-c++hdr";
+	}
+	if ( hasExtension( ".cpp", fileName ) ) {
+		return "text-x-c++src";
+	}
+	if ( hasExtension( ".c", fileName ) ) {
+		return "text-x-csrc";
+	}
+	// Python
+	if ( hasExtension( ".py .pyw", fileName ) ) {
+		return "text-x-python";
+	}
+	// C#
+	if ( hasExtension( ".cs", fileName ) ) {
+		return "text-x-csharp";
+	}
+	// Objective-C
+	if ( hasExtension( ".m", fileName ) ) {
+		return "text-x-objcsrc";
+	}
+	// Java
+	if ( hasExtension( ".java", fileName ) ) {
+		return "text-x-java";
+	}
+	// Script
+	if ( hasExtension( ".sh", fileName ) ) {
+		return "text-x-script";
+	}
+	// Makefile
+	if ( hasExtension( ".cmake Makefile", fileName ) ) {
+		return "text-x-makefile";
+	}
+	// Ada
+	if ( hasExtension( ".ada .ads .adb", fileName ) ) {
+		return "text-x-adasrc";
+	}
+	// Pascal
+	if ( hasExtension( ".pas", fileName ) ) {
+		return "text-x-pascal";
+	}
+	// Patch
+	if ( hasExtension( ".diff", fileName ) ) {
+		return "text-x-patch";
+	}
+	// Tcl
+	if ( hasExtension( ".tcl", fileName ) ) {
+		return "text-x-tcl";
+	}
+	// Text
+	if ( hasExtension( ".txt", fileName ) ) {
+		return "text-plain";
+	}
+	// Xml
+	if ( hasExtension( ".xml", fileName ) ) {
+		return "text-xml";
+	}
+	// unknown or no file extension
+	return "text-plain";
+}
+
 void KFileLVI::fillChangesList( K3ListView* changesList, Q3PtrDict<KChangeLVI>* diffToChangeItemDict )
 {
 	changesList->clear();
--- trunk/KDE/kdesdk/kompare/komparenavtreepart/komparenavtreepart.h #802843:802844
@@ -149,6 +149,9 @@
 	Diff2::DiffModel* model() { return m_model; };
 	void fillChangesList( K3ListView* changesList, Q3PtrDict<KChangeLVI>* diffToChangeItemDict );
 private:
+	bool hasExtension(const QString& extensions, const QString& fileName);
+	const QString getIcon(const QString& fileName);
+private:
 	Diff2::DiffModel* m_model;
 };
 
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic