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

List:       kde-commits
Subject:    branches/kdevelop/3.4/src
From:       Andreas Pakulat <apaku () gmx ! de>
Date:       2006-12-19 19:51:58
Message-ID: 1166557918.577572.16263.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 614986 by apaku:

Fix running designer


 M  +38 -5     partcontroller.cpp  


--- branches/kdevelop/3.4/src/partcontroller.cpp #614985:614986
@@ -388,6 +388,7 @@
 	// we don't trust KDE with designer files, let's handle it ourselves
 	if ( !m_openNextAsText && MimeType->is( "application/x-designer" ) )
 	{
+		QString DefaultDesignerSetting = config->readEntry( "DesignerSetting", \
"ExternalDesigner" );  QDomDocument* dom = API::getInstance()->projectDom();
 		if ( dom != 0 )
 		{
@@ -396,7 +397,6 @@
 			// The global option specifies a fallback if the project
 			// has no setting or no project is open. However for Qt4
 			// projects we want to use ExternalDesigner in any case.
-			QString DefaultDesignerSetting = config->readEntry( "DesignerSetting", \
"ExternalDesigner" );  
 			if ( DomUtil::readIntEntry( *dom, "/kdevcppsupport/qt/version", 3 ) == 4 )
 				DefaultDesignerSetting = "ExternalDesigner";
@@ -432,14 +432,47 @@
 			}
 			else
 			{
-				QString QtDir = DomUtil::readEntry(*dom, "/kdevcppsupport/qt/root");
-				if ( QtDir != QString::null )
-					designerDesktopName = QtDir+"/bin/";
-				designerDesktopName += "designer";
+				designerDesktopName = DomUtil::readEntry(*dom, "/kdevcppsupport/qt/designer");;
 			}
 	
 			KRun::run( designerDesktopName, url );
 			return;
+		}else
+		{
+			if ( DefaultDesignerSetting == "EmbeddedKDevDesigner" )
+			{
+				if ( KParts::ReadOnlyPart *designerPart = qtDesignerPart() )
+				{
+					addHistoryEntry();
+					activatePart(designerPart);
+					designerPart->openURL(url);
+					return;
+				}
+				else if ( KParts::Factory * KDevDesignerFactory = static_cast<KParts::Factory*>( \
KLibLoader::self()->factory( QFile::encodeName( "libkdevdesignerpart" ) ) ) ) +				{
+					KParts::ReadWritePart * kdevpart = static_cast<KParts::ReadWritePart*>( \
KDevDesignerFactory->createPart( TopLevel::getInstance()->main(), 0, 0, 0, \
"KParts::ReadWritePart"  ) ); +					kdevpart->openURL( url );
+					addHistoryEntry();
+					integratePart( kdevpart, url );
+					m_openRecentAction->addURL( url );
+					m_openRecentAction->saveEntries( kapp->config(), "RecentFiles" );
+					return;
+				}
+			}
+	
+			QString designerDesktopName;
+	
+			if ( DefaultDesignerSetting == "ExternalKDevDesigner" )
+			{
+				designerDesktopName = "kdevdesigner";
+			}
+			else
+			{
+				designerDesktopName = "designer";
+			}
+	
+			KRun::run( designerDesktopName, url );
+			return;
 		}
 	}
 


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

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