Source Code (Use browser search to find items of interest.)

Class Index

kdm'HostView (./kdebase/kdm/DXdmcp.h:28)

class HostView : public QListView {
Q_OBJECT
public:
  HostView( CXdmcp *cxdmcp, QWidget *parent = 0, const char *name = 0, WFlags f = 0);

public slots:
  void pingHosts();
	void accept();
	void willing();	
	void cancel();	

	/* Add host to list.
	 */
	void slotAddHost(CXdmcp::HostName *name);

	/* No more hosts to display.
	 */
  void slotDeleteAllHosts();

  /* Remove host from list.
	 */
  void slotDeleteHost(char *name);

	/* Change hosts name in list.
	 */
  void slotChangeHost(char *oldname, CXdmcp::HostName *newname);

	/* Add hostname to ping.
	 * "BROADCAST" is special.
	 */
  void slotRegisterHostname (const char *name);

private:
	CXdmcp *comXdmcp;	
	int namecol, statcol;
};



kdm'HostView::HostView() (./kdebase/kdm/DXdmcp.cpp:28)

HostView::HostView( CXdmcp *cxdmcp, QWidget *parent, const char *name, WFlags)
		: QListView( parent, name)
{
	comXdmcp = cxdmcp;
  	
	namecol = addColumn(i18n("Hostname"));
	statcol = addColumn(i18n("Status"));	

	connect( comXdmcp, SIGNAL( addHost(CXdmcp::HostName *)), this, SLOT( slotAddHost(CXdmcp::HostName *)));
	connect( comXdmcp, SIGNAL( changeHost(char *, CXdmcp::HostName *)),	this, SLOT(slotChangeHost(char *, CXdmcp::HostName *)));
	connect( comXdmcp, SIGNAL( deleteHost(char *)), this, SLOT( slotDeleteHost(char *)));
	connect( comXdmcp, SIGNAL( deleteAllHosts()), this, SLOT( slotDeleteAllHosts()));
	connect( this, SIGNAL(doubleClicked(QListViewItem *)), this, SLOT(accept()));

//	setItemMargin(1);
};

/*
  typedef struct _hostName {
    struct _hostName	*next;
    char		*fullname;
    int			willing;
    ARRAY8		hostname, status;
    CARD16		connectionType;
    ARRAY8		hostaddr;
  } HostName;
*/


kdm'HostView::slotAddHost() (./kdebase/kdm/DXdmcp.cpp:56)

void HostView::slotAddHost(CXdmcp::HostName *name)
{
	char *nstr = new char[name->hostname.length+1];
	strncpy(nstr, (char *)name->hostname.data, (size_t)name->hostname.length);
	nstr[name->hostname.length] = 0;

	char *sstr = new char[name->status.length+1];
	strncpy(sstr, (char *)name->status.data, (size_t)name->status.length);
	sstr[name->status.length] = 0;

	QListViewItem *item = new QListViewItem((QListView *)this, QString(nstr),	QString(sstr));
	insertItem(item);

	delete [] nstr;
	delete [] sstr;
}


kdm'HostView::slotDeleteAllHosts() (./kdebase/kdm/DXdmcp.cpp:73)

void HostView::slotDeleteAllHosts()
{
	clear();
}


kdm'HostView::slotDeleteHost() (./kdebase/kdm/DXdmcp.cpp:78)

void HostView::slotDeleteHost(char *name)
{
	QListViewItemIterator it( this );

	for ( ; it.current(); ++it ) {
		if(it.current()->text(namecol) == name) {
			removeItem(it.current());
			break;
		}
	}
}


kdm'HostView::slotChangeHost() (./kdebase/kdm/DXdmcp.cpp:90)

void HostView::slotChangeHost(char *oldname, CXdmcp::HostName *name)
{
	if(!oldname)
		return;

	char *nstr = new char[name->hostname.length+1];
	strncpy(nstr, (char *)name->hostname.data, (size_t)name->hostname.length);
	nstr[name->hostname.length] = 0;

	char *sstr = new char[name->status.length+1];
	strncpy(sstr, (char *)name->status.data, (size_t)name->status.length);
	sstr[name->status.length] = 0;

	QListViewItemIterator it( this );
	for ( ; it.current(); ++it )
	{
		if(it.current()->text(namecol).latin1() == oldname) {
			it.current()->setText(namecol, nstr);
			it.current()->setText(statcol, sstr);
			break;		
		}
	}

	delete [] nstr;
	delete [] sstr;
}


kdm'HostView::pingHosts() (./kdebase/kdm/DXdmcp.cpp:117)

void HostView::pingHosts()
{
	comXdmcp->emptyHostnames ();
	comXdmcp->pingHosts();
}


kdm'HostView::accept() (./kdebase/kdm/DXdmcp.cpp:123)

void HostView::accept()
{
	QListViewItem *item = currentItem();
	if(item != 0) {
		comXdmcp->chooseHost(item->text(namecol).latin1());
		delete comXdmcp;
		exit (OBEYSESS_DISPLAY);
	}
}

void

kdm'HostView::willing() (./kdebase/kdm/DXdmcp.cpp:134)

HostView::willing ()
{
	// highlight all willing hosts
	// necessary?? needed??
}

void

kdm'HostView::cancel() (./kdebase/kdm/DXdmcp.cpp:141)

HostView::cancel ()
{
    exit (OBEYSESS_DISPLAY);
}


kdm'HostView::slotRegisterHostname() (./kdebase/kdm/DXdmcp.cpp:146)

void HostView::slotRegisterHostname(const char *name)
{
	comXdmcp->registerHostname (name);
	comXdmcp->pingHosts();
}