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

List:       kde-commits
Subject:    KDE/kdebase/workspace/klipper
From:       Dmitry Suzdalev <dimsuz () gmail ! com>
Date:       2009-04-01 9:33:17
Message-ID: 1238578397.623322.3161.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 947725 by dimsuz:

Treat all clipdata that starts with "http[s]://" as a "text/html" mimetype


 M  +13 -0     urlgrabber.cpp  


--- trunk/KDE/kdebase/workspace/klipper/urlgrabber.cpp #947724:947725
@@ -118,6 +118,18 @@
     // let's see if we found some reasonable mimetype.
     // If we do we'll populate menu with actions for apps
     // that can handle that mimetype
+
+    // first: if clipboard contents starts with http, let's assume it's "text/html".
+    // That is even if we've url like "http://www.kde.org/somescript.pl", we'll
+    // still treat that as html page, because determining a mimetype using kio
+    // might take a long time, and i want this function to be quick!
+    if ( ( clipData.startsWith( "http://" ) || clipData.startsWith( "https://"))
+         && mimetype->name() != "text/html" )
+    {
+        // use a fake path to create a mimetype that corresponds to "text/html"
+        mimetype = KMimeType::findByPath( "/tmp/klipper.html", 0, true /*fast mode*/ );
+    }
+
     if ( mimetype->name() != "application/octet-stream" ) {
         ClipAction* action = new ClipAction( QString(), mimetype->comment() );
         KService::List lst = KMimeTypeTrader::self()->query( mimetype->name(), "Application" );
@@ -128,6 +140,7 @@
             m_myMatches.append( action );
     }
 
+    // now look for matches in custom user actions
     foreach (ClipAction* action, m_myActions) {
         if ( action->matches( clipData ) )
             m_myMatches.append( action );
[prev in list] [next in list] [prev in thread] [next in thread] 

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