[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