[rkward-cvs] SF.net SVN: rkward: [788] trunk/rkward/rkward

tfry at users.sourceforge.net tfry at users.sourceforge.net
Sun Oct 1 23:00:32 UTC 2006


Revision: 788
          http://svn.sourceforge.net/rkward/?rev=788&view=rev
Author:   tfry
Date:     2006-10-01 16:00:23 -0700 (Sun, 01 Oct 2006)

Log Message:
-----------
More uses of RCommand::GetStructuredData

Modified Paths:
--------------
    trunk/rkward/rkward/dialogs/rkloadlibsdialog.cpp
    trunk/rkward/rkward/rbackend/rpackages/rkward/R/internal.R

Modified: trunk/rkward/rkward/dialogs/rkloadlibsdialog.cpp
===================================================================
--- trunk/rkward/rkward/dialogs/rkloadlibsdialog.cpp	2006-10-01 22:35:28 UTC (rev 787)
+++ trunk/rkward/rkward/dialogs/rkloadlibsdialog.cpp	2006-10-01 23:00:23 UTC (rev 788)
@@ -259,7 +259,7 @@
 	
 	setEnabled (false);
 	
-	RKGlobals::rInterface ()->issueCommand (".rk.get.installed.packages ()", RCommand::App | RCommand::Sync | RCommand::GetStringVector, QString::null, this, GET_INSTALLED_PACKAGES, dialog->chain);
+	RKGlobals::rInterface ()->issueCommand (".rk.get.installed.packages ()", RCommand::App | RCommand::Sync | RCommand::GetStructuredData, QString::null, this, GET_INSTALLED_PACKAGES, dialog->chain);
 	RKGlobals::rInterface ()->issueCommand (".packages ()", RCommand::App | RCommand::Sync | RCommand::GetStringVector, QString::null, this, GET_LOADED_PACKAGES, dialog->chain);
 	
 	connect (dialog, SIGNAL (okClicked ()), this, SLOT (ok ()));
@@ -275,11 +275,17 @@
 void LoadUnloadWidget::rCommandDone (RCommand *command) {
 	RK_TRACE (DIALOGS);
 	if (command->getFlags () == GET_INSTALLED_PACKAGES) {
-		RK_ASSERT (command->getDataType () == RData::StringVector);
-		RK_ASSERT ((command->getDataLength () % 4) == 0);
-		int count = (command->getDataLength () / 4);
-		for (int i=0; i < count; ++i) {
-			new QListViewItem (installed_view, command->getStringVector ()[i], command->getStringVector ()[count + i], command->getStringVector ()[2*count + i], command->getStringVector ()[3* count + i]);
+		RK_ASSERT (command->getDataLength () == 4);
+
+		RData *package = command->getStructureVector ()[0];
+		RData *title = command->getStructureVector ()[1];
+		RData *version = command->getStructureVector ()[2];
+		RData *libpath = command->getStructureVector ()[3];
+
+		unsigned int count = package->getDataLength ();
+		RK_ASSERT (count == title->getDataLength () == version->getDataLength () == libpath->getDataLength ()); 
+		for (unsigned int i=0; i < count; ++i) {
+			new QListViewItem (installed_view, package->getStringVector ()[i], title->getStringVector ()[i], version->getStringVector ()[i], libpath->getStringVector ()[i]);
 		}
 	} else if (command->getFlags () == GET_LOADED_PACKAGES) {
 		RK_ASSERT (command->getDataType () == RData::StringVector);
@@ -464,11 +470,18 @@
 		if (!command->failed ()) {
 			delete placeholder;
 			placeholder = 0;
-			RK_ASSERT (command->getDataType () == RData::StringVector);
-			RK_ASSERT ((command->getDataLength () % 4) == 1);
-			unsigned int count = (command->getDataLength () / 4);
+
+			RK_ASSERT (command->getDataLength () == 5);
+			RData *package = command->getStructureVector ()[0];
+			RData *libpath = command->getStructureVector ()[1];
+			RData *installed = command->getStructureVector ()[2];
+			RData *reposver = command->getStructureVector ()[3];
+			RData *reposstring = command->getStructureVector ()[4];
+
+			unsigned int count = package->getDataLength ();
+			RK_ASSERT (count == libpath->getDataLength () == installed->getDataLength () == reposver->getDataLength ());
 			for (unsigned int i=0; i < count; ++i) {
-				new QListViewItem (updateable_view, command->getStringVector ()[i], command->getStringVector ()[count + i], command->getStringVector ()[2*count + i], command->getStringVector ()[3*count + i]);
+				new QListViewItem (updateable_view, package->getStringVector ()[i], libpath->getStringVector ()[i], installed->getStringVector ()[i], reposver->getStringVector ()[i]);
 			}
 
 			updateable_view->setEnabled (true);
@@ -480,8 +493,9 @@
 				placeholder = new QListViewItem (updateable_view, i18n ("[No updates available]"));
 			}
 
+			RK_ASSERT (reposstring->getDataLength () == 1);
 			// this is after the repository was chosen. Update the repository string.
-			parent->repos_string = command->getStringVector ()[4 * count];
+			parent->repos_string = reposstring->getStringVector ()[0];
 		} else {
 			get_list_button->setEnabled (true);
 		}
@@ -523,13 +537,12 @@
 
 	get_list_button->setEnabled (false);
 
-	RCommand *command = new RCommand ("c (.rk.get.old.packages (), rk.make.repos.string ())", RCommand::App | RCommand::GetStringVector, QString::null, this, FIND_OLD_PACKAGES_COMMAND);
+	RCommand *command = new RCommand (".rk.get.old.packages ()", RCommand::App | RCommand::GetStructuredData, QString::null, this, FIND_OLD_PACKAGES_COMMAND);
 
 	RKProgressControl *control = new RKProgressControl (this, i18n ("Please stand by while determining, which package have an update available online."), i18n ("Fetching list"), RKProgressControl::CancellableProgress | RKProgressControl::AutoCancelCommands);
 	control->addRCommand (command, true);
 	RKGlobals::rInterface ()->issueCommand (command, parent->chain);
 	control->doModal (true);
-	RKGlobals::rInterface ()->issueCommand ("rm (rk.temp.old)", RCommand::App, QString::null, 0, 0, parent->chain);
 }
 
 void UpdatePackagesWidget::ok () {

Modified: trunk/rkward/rkward/rbackend/rpackages/rkward/R/internal.R
===================================================================
--- trunk/rkward/rkward/rbackend/rpackages/rkward/R/internal.R	2006-10-01 22:35:28 UTC (rev 787)
+++ trunk/rkward/rkward/rbackend/rpackages/rkward/R/internal.R	2006-10-01 23:00:23 UTC (rev 788)
@@ -97,7 +97,7 @@
 	x <- as.data.frame (installed.packages ())
 	try (titles <- as.data.frame (library ()$results)$Title)
 	if (length (titles) != dim (x)[1]) titles <- rep ("", dim (x)[1])
-	return (c (as.vector (x$Package), as.vector (titles), as.vector (x$Version), as.vector (x$LibPath)))
+	return (list (as.character (x$Package), as.character (titles), as.character (x$Version), as.character (x$LibPath)))
 }
 
 # Here we concatenate everything (same as above) to get search results easily
@@ -127,7 +127,7 @@
 
 ".rk.get.old.packages" <- function () {
 	x <- old.packages (available=.rk.cached.available.packages ())
-	return (as.vector (c (x[,"Package"], x[,"LibPath"], x[,"Installed"], x[,"ReposVer"])))
+	return (list (as.character (x[,"Package"]), as.character (x[,"LibPath"]), as.character (x[,"Installed"]), as.character (x[,"ReposVer"]), rk.make.repos.string ()))
 }
 
 ".rk.get.available.packages" <- function () {


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the rkward-tracker mailing list