/*
	 this works
*/

// adds remote files listed by the rsync server
void qsAddListItem2(char *perms, char *size, char *modtime, char *name) {
	QStringList *args = new QStringList();
	QCustomEvent *ce = new QCustomEvent(EVENT_ADD_REMOTE);
	args->append(perms);
	args->append(size);
	args->append(modtime);
	args->append(name);
	ce->setData(args);
	QApplication::sendEvent(statusDlgPtr, ce);
}
void (*qsAddListItem)(char *, char *, char *, char *) = &qsAddListItem2;

/*
	 this doesn't work...
	 well, it works, but down the line nothing gets added into the qlistview.
*/

// tell transfer dialog the currently transferring file changed
void qsSetCurrentFile2(char *name) {
	//QCustomEvent *ce = new QCustomEvent(EVENT_SET_CURRENT);
	QStringList *args = new QStringList();
	QCustomEvent *ce = new QCustomEvent(EVENT_ADD_REMOTE);
	args->append("4");
	args->append("5");
	args->append("6 7");
	args->append("7");
	//ce->setData(name);
	ce->setData(args);
	QApplication::sendEvent(statusDlgPtr, ce);
}
void (*qsSetCurrentFile)(char *) = &qsSetCurrentFile2;

/////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////

/*
	 handles the above events.
*/

void DlgStatus::customEvent(QCustomEvent *e) {
	QStringList *args;
	QString filename;
	switch (e->type()) {
		case EVENT_ADD_REMOTE:
			args = (QStringList *)e->data();
			addListItem((*args)[0], (*args)[1], (*args)[2], (*args)[3]);
			break;
		case EVENT_SET_CURRENT:
			filename = (char *)e->data();
			addTransferItem(filename);
			//setCurrFile(filename);
			break;
		default:
			cerr << "ERROR: bad customEvent \"" << e->type() << "\" in " << __FILE__ << ":" << __LINE__ << ".  You should never see this!" << endl;
			break;
	}
}

/*
	 used for EVENT_ADD_REMOTE
	 works perfectly
*/

void DlgStatus::addListItem(const char *perms, const char *size, const char *modtime, const char *name) {
	if (strcmp(".", name)) {
		QString timeDate = modtime;
		new QListViewItem(rightList, name, size, timeDate.section(' ', 1, 1), timeDate.section(' ', 0, 0), perms);
	}
	else
		cout << "Not adding \".\"." << endl;
}

/*
	 used for EVENT_SET_CURRENT
	 only the couts seem to work
*/

void DlgStatus::addTransferItem(QString name) {
	cout << "adding item" << endl;
	new QListViewItem(transferList, "something", "5", "6", "5", "3");
	transferList->insertItem(new QListViewItem(transferList, "blah", "2", "3", "4", "5"));
	cout << "added item" << endl;
}

