Exemple #1
0
void main()
{
	struct student * head,* stu;
	int search_num,del_num;
	printf("input records:\n");
    head=CreateLink();
    PrintLink(head);
	printf("\nplease input a number for search:\n");
    scanf("%d",&search_num);
    struct student * p=SearchId(head,search_num);
    printf("\nplease input a inserted num:\n");
	stu=(struct student *)malloc(LEN);
	scanf("%d,%s,%f",&stu->num,&stu->name,&stu->score);
	while(stu->num!=0)
	{
		head=InsertNote(head,stu);
		PrintLink(head);
		printf("input the inserted record:");
		stu=(struct student *)malloc(LEN);
	    scanf("%d,%s,%f",&stu->num,&stu->name,&stu->score);
	}
    printf("\ninput the deleted number:");
	scanf("%d",&del_num);
	while(del_num!=0)
	{
		head=DeleteNote(head,del_num);
		PrintLink(head);
		printf("\ninput the deleted number:");
		scanf("%d",&del_num);
	}
    DeleteLink(head);
}
Exemple #2
0
void EnvReadInsert(FILE_NUM fnum, int offset, OBJECT env)
{ int pos; OBJECT x, loser;
  debug3(DET, DD, "EnvReadInsert(%s, %d, env %d)",
    FileName(fnum), offset, (int) env);

  /* to limit the cache size, remove least recently used entry if full */
  if( cache_count >= MAX_CACHE )
  {
    Child(loser, Down(env_cache));
    DeleteLink(Up(loser));
    DisposeChild(Up(loser));
    cache_count--;
  }

  /* insert the new entry */
  hash2(pos, fnum, offset);
  if( tab[pos] == nilobj )  New(tab[pos], ACAT);
  New(x, ACAT);
  env_fnum(x) = fnum;
  env_offset(x) = offset;
  env_read(x) = TRUE;
  Link(tab[pos], x);
  Link(env_cache, x);
  Link(x, env);
  cache_count++;

  debug1(DET, DD, "EnvReadInsert returning (cache_count = %d)", cache_count);
} /* end EnvReadInsert */
Exemple #3
0
void LAYER::Unlink( void )
{
	//if( flags.bRoute )
	{
		if( route_end_layer.layer )
		{
			flags.bEnded = FALSE;
			DeleteLink( &route_end_layer.layer->linked, this );
			route_end_layer.layer = NULL;
		}
		else if( route_start_layer.layer )
		{
			DeleteLink( &route_start_layer.layer->linked, this );
			route_start_layer.layer = NULL;
		}
	}

}
void
XDLink::StopDebugger()
{
	Send("detach");

	DeleteLink();
	CancelAllCommands();

	InitFlags();
}
Exemple #5
0
OBJECT DetachEnv(OBJECT x)
{ OBJECT env;
  debug1(DCE, DD, "DetachEnv( %s )", EchoObject(x));
  assert( type(x) == CLOSURE, "DetachEnv: type(x) != CLOSURE!" );
  assert( LastDown(x) != x, "DetachEnv: LastDown(x) == x!" );
  Child(env, LastDown(x));
  DeleteLink(LastDown(x));
  assert( type(env) == ENV, "DetachEnv: type(env) != ENV!" );
  debug1(DCE, DD, "DetachEnv resturning %s", EchoObject(env));
  return env;
} /* end DetachEnv */
Exemple #6
0
void main()
{
    struct student *head,stud,*p;
    printf("Input the students' records:\n");
    head=CreatLink();
    PrintLink(head);
    printf("\nInput the inserted record:");
    scanf("%ld,%f,%s",&stud.num,&stud.score,stud.name);
    head=InsertNode(head,&stud);
    PrintLink(head);
    p=SearchID(head);
    if(p!=NULL)
    {
        printf("\nThe student's record:%ld,%.1f,%s\n",p->num,p->score,p->name);
    }
    DeleteNode(head);
    PrintLink(head);
    DeleteLink(head);
}
Exemple #7
0
int main()
{
	ListLink head,temp = NULL;
	int inum;
	head = CreateLink();
	PrintLink(head);

	temp = (ListLink)malloc(LEN);
	printf("student's num:");
	scanf("%d",&temp->num);
	printf("student's name:");
	scanf("%s",temp->name);
	printf("student's score:");
	scanf("%lf",&temp->score);
	
	head = InsertNode(head,temp,numMin);
	PrintLink(head);

	printf("the inum of student to search:");
	scanf("%d",&inum);
	temp = Searchid(inum,head);
	
	if(temp)
		printf("temp num:%d\tname:%s\tscore:%.2lf\n",temp->num,temp->name,temp->score);

	printf("Please input the num of student to delete:");
	scanf("%d",&inum);
	head = DeleteNode(head,inum);
	PrintLink(head);

	head = SortScore(head);
	PrintLink(head);

	head = Sortid(head);
	PrintLink(head);

	head = DeleteLink(head);

	return 0;
}
Exemple #8
0
 VOID CreateRASEntry(HINSTANCE hinst) 
 {
     DWORD           cb;
     RASENTRY        RasEntry;
 
     TCHAR name[256];
     LoadString(hinst, IDS_DEFAULT_NAME, name, 256);
 
     // This will create the default entries if the key does not exist. 
     RasEntry.dwSize = sizeof(RASENTRY);
     cb = sizeof(RASENTRY);
     RasGetEntryProperties (NULL, TEXT(""), &RasEntry, &cb, NULL, NULL);
 
     // Now set up the entry the way we want it (like "`115200 Default")
     LoadString(hinst, SOCKET_FRIENDLY_NAME, RasEntry.szDeviceName, RAS_MaxDeviceName + 1);
 
     // And finally, write the new entry out
     if ( RasSetEntryProperties (NULL, name,
                                 &RasEntry, sizeof(RasEntry), NULL, 0) ) 
     {
         DEBUGMSG (1, (TEXT("Error %d from RasSetEntryProperties\r\n"),
                       GetLastError()));
     } 
     else 
     {
         HKEY hKey;
         DWORD dwDisp;
         DEBUGMSG (1, (TEXT("RasEntry '%s' Created\r\n"), name));
         if (ERROR_SUCCESS==RegCreateKeyEx(HKEY_CURRENT_USER, RK_CONTROLPANEL_COMM, 0, NULL, REG_OPTION_NON_VOLATILE,
                KEY_ALL_ACCESS, NULL, &hKey, &dwDisp))
         {
            RegSetValueEx(hKey, RV_CNCT, 0, REG_SZ, (LPBYTE)name, sizeof(TCHAR)*(1+lstrlen(name)));
            RegCloseKey(hKey);
         }
     }
 
     // Now, delete the link file.
     DeleteLink(hinst);
}
Exemple #9
0
void CPROC ClientClosed( PCLIENT pc )
{
   printf( "lost client %p\n", pc );
   DeleteLink( &clients, pc );
}
Exemple #10
0
BOOL TUninstDlg::UnInstall(void)
{
// 現在、起動中の ipmsg を終了
	int		st = TerminateIPMsg();

	if (st == 1) return FALSE;
	if (st == 2) {
		if (!IsWinVista() || TIsUserAnAdmin() || !TIsEnableUAC()) {
			MessageBox(GetLoadStr(IDS_CANTTERMINATE), UNINSTALL_STR);
			return FALSE;
		}
		if (MessageBox(GetLoadStr(IDS_REQUIREADMIN_TERM), "",
						MB_OKCANCEL|MB_ICONINFORMATION) != IDOK) return FALSE;
		return	RunAsAdmin(hWnd);
	}

	if (!runasWnd && MessageBox(GetLoadStr(IDS_START), UNINSTALL_STR,
						MB_OKCANCEL|MB_ICONINFORMATION) != IDOK) return	FALSE;

// 公開鍵削除
	if (IsDlgButtonChecked(DELPUBKEY_CHECK)) {
		BOOL	need_admin = FALSE;
		char	contName[MAX_PATH_U8], userName[MAX_PATH_U8];
		DWORD	size = sizeof(userName);
		::GetUserName(userName, &size);

		::wsprintf(contName, "ipmsg.rsa2048.%s", userName);
		if (!DeleteKeySet(MS_ENHANCED_PROV, contName, CRYPT_MACHINE_KEYSET) ||
			!DeleteKeySet(MS_ENHANCED_PROV, contName, 0)) need_admin = TRUE;

		::wsprintf(contName, "ipmsg.rsa1024.%s", userName);
		if (!DeleteKeySet(MS_ENHANCED_PROV, contName, CRYPT_MACHINE_KEYSET) ||
			!DeleteKeySet(MS_ENHANCED_PROV, contName, 0)) need_admin = TRUE;

		::wsprintf(contName, "ipmsg.rsa512.%s", userName);
		if (!DeleteKeySet(MS_DEF_PROV, contName, CRYPT_MACHINE_KEYSET) ||
			!DeleteKeySet(MS_DEF_PROV, contName, 0)) need_admin = TRUE;

		if (need_admin) {
			if (IsWinVista() && !TIsUserAnAdmin() && TIsEnableUAC()) {
				if (MessageBox(GetLoadStr(IDS_REQUIREADMIN_PUBKEY), "",
					MB_OKCANCEL|MB_ICONINFORMATION) != IDOK) return FALSE;
				return	RunAsAdmin(hWnd);
			}
		}
	}

// スタートアップ&デスクトップから削除
	TRegistry	reg(HKEY_CURRENT_USER);
	if (reg.OpenKey(REGSTR_SHELLFOLDERS)) {
		char	buf[MAX_PATH_U8];
		char	*regStr[]	= { REGSTR_STARTUP, REGSTR_PROGRAMS, REGSTR_DESKTOP, NULL };

		for (int i=0; regStr[i]; i++) {
			if (reg.GetStr(regStr[i], buf, sizeof(buf))) {
				if (i == 0) RemoveSameLink(buf);
				::wsprintf(buf + strlen(buf), "\\%s", IPMSG_SHORTCUT_NAME);
				DeleteLink(buf);
			}
		}
		reg.CloseKey();
	}

// レジストリからユーザー設定情報を削除
	if (reg.ChangeApp(HSTOOLS_STR))
		reg.DeleteChildTree(GetLoadStr(IDS_REGIPMSG));

// レジストリからアプリケーション情報を削除
	char	setupDir[MAX_PATH_U8];		// セットアップディレクトリ情報を保存
	GetDlgItemTextU8(RESETUP_EDIT, setupDir, sizeof(setupDir));

	reg.ChangeTopKey(HKEY_LOCAL_MACHINE);
	if (reg.OpenKey(REGSTR_PATH_APPPATHS)) {
		if (reg.OpenKey(IPMSG_EXENAME)) {
			reg.GetStr(REGSTR_PATH, setupDir, sizeof(setupDir));
			reg.CloseKey();
		}
		reg.DeleteKey(IPMSG_EXENAME);
		reg.CloseKey();
	}

// レジストリからアンインストール情報を削除
	if (reg.OpenKey(REGSTR_PATH_UNINSTALL)) {
		reg.DeleteKey(IPMSG_NAME);
		reg.CloseKey();
	}

// 終了メッセージ
	MessageBox(GetLoadStr(IDS_UNINSTCOMPLETE));

// インストールディレクトリを開く
	if (GetDriveTypeEx(setupDir) != DRIVE_REMOTE)
		ShellExecuteU8(NULL, NULL, setupDir, 0, 0, SW_SHOW);

	::PostQuitMessage(0);
	return	TRUE;
}
JSimpleProcess::~JSimpleProcess()
{
    DeleteLink();
}
Exemple #12
0
BOOL TInstDlg::Install(void)
{
	char	buf[MAX_PATH_U8], setupDir[MAX_PATH_U8], setupPath[MAX_PATH_U8];
	char	installPath[MAX_PATH_U8];
	BOOL	extract_only = IsDlgButtonChecked(EXTRACT_CHECK);

// 現在、起動中の ipmsg を終了
	int		st = extract_only ? 0 : TerminateIPMsg();
	if (st == 1) return	FALSE;

// インストールパス設定
	GetDlgItemTextU8(FILE_EDIT, setupDir, sizeof(setupDir));

	if (IsWinVista() && !::IsUserAnAdmin() && TIsEnableUAC()
			&& TIsVirtualizedDirW(U8toWs(setupDir))) {
		if (MessageBox(GetLoadStr(IDS_REQUIREADMIN), INSTALL_STR,
				MB_OKCANCEL|MB_ICONINFORMATION) != IDOK) return	FALSE;
		return	RunAsAdmin(hWnd, TRUE);
	}

	CreateDirectoryU8(setupDir, NULL);
	DWORD	attr = GetFileAttributesU8(setupDir);
	if (attr == 0xffffffff || (attr & FILE_ATTRIBUTE_DIRECTORY) == 0)
		return	MessageBox(GetLoadStr(IDS_NOTCREATEDIR), INSTALL_STR), FALSE;
	MakePath(setupPath, setupDir, IPMSG_EXENAME);

	if (st == 2) {
		MessageBox(GetLoadStr(IDS_CANTTERMINATE), INSTALL_STR);
		return	FALSE;
	}
	if (!runasImm &&
		MessageBox(GetLoadStr(IDS_START), INSTALL_STR, MB_OKCANCEL|MB_ICONINFORMATION) != IDOK) {
		return	FALSE;
	}
	runasImm = FALSE;

// ファイル生成
	for (int i=0; SetupFiles[i]; i++) {
		MakePath(installPath, setupDir, SetupFiles[i]);
		CreateStatus cs = CreateFileBySelf(installPath, SetupFiles[i]);
		if (cs == CS_BROKEN) {
			MessageBox(GetLoadStr(IDS_BROKENARCHIVE), INSTALL_STR);
			return	FALSE;
		}
		else if (cs == CS_ACCESS) {
			const char *msg = Fmt("%s\r\n%s", GetLoadStrU8(IDS_NOTCREATEFILE), installPath);
			MessageBoxU8(msg, INSTALL_STR);
			return	FALSE;
		}
	}

// 展開のみ
	if (extract_only) {
		ShellExecuteW(NULL, NULL, U8toWs(setupDir), 0, 0, SW_SHOW);
		return TRUE;
	}

// スタートアップ&デスクトップに登録
	TRegistry	reg(HKEY_CURRENT_USER);
	if (reg.OpenKey(REGSTR_SHELLFOLDERS)) {
		char	*regStr[] = { REGSTR_STARTUP, REGSTR_PROGRAMS, REGSTR_DESKTOP, NULL };
		BOOL	resId[]   = { STARTUP_CHECK,  PROGRAM_CHECK,   DESKTOP_CHECK,  NULL };

		for (int i=0; regStr[i]; i++) {
			if (reg.GetStr(regStr[i], buf, sizeof(buf))) {
				if (i != 0 || !RemoveSameLink(buf, buf))
					::wsprintf(buf + strlen(buf), "\\%s", IPMSG_SHORTCUT_NAME);
				if (IsDlgButtonChecked(resId[i]))
					SymLink(setupPath, buf);
				else
					DeleteLink(buf);
			}
		}
		reg.CloseKey();
	}

// レジストリにアプリケーション情報を登録
	reg.ChangeTopKey(HKEY_LOCAL_MACHINE);
	if (reg.OpenKey(REGSTR_PATH_APPPATHS)) {
		if (reg.CreateKey(IPMSG_EXENAME)) {
			reg.SetStr(NULL, setupPath);
			reg.SetStr(REGSTR_PATH, setupDir);
			reg.CloseKey();
		}
		reg.CloseKey();
	}

// レジストリにアンインストール情報を登録
	if (reg.OpenKey(REGSTR_PATH_UNINSTALL)) {
		if (reg.CreateKey(IPMSG_NAME)) {
			MakePath(buf, setupDir, SETUP_EXENAME);
			strcat(buf, " /r");
			reg.SetStr(REGSTR_VAL_UNINSTALLER_DISPLAYNAME, IPMSG_FULLNAME);
			reg.SetStr(REGSTR_VAL_UNINSTALLER_COMMANDLINE, buf);
			reg.CloseKey();
		}
		reg.CloseKey();
	}

// コピーしたアプリケーションを起動
	const char *msg = GetLoadStr(IDS_SETUPCOMPLETE);
	int			flg = MB_OKCANCEL|MB_ICONINFORMATION;

//	if (IsWinVista() && ::IsUserAnAdmin() && TIsEnableUAC()) {
//		msg = Fmt("%s%s", msg, GetLoadStr(IDS_COMPLETE_UACADD));
//		flg |= MB_DEFBUTTON2;
//	}
	TLaunchDlg	dlg(msg, this);
	if (dlg.Exec() == IDOK) {
		if (runasWnd) {
			Wstr	wbuf(setupDir);
			if (::SendDlgItemMessageW(runasWnd, FILE_EDIT, WM_SETTEXT, 0, (LPARAM)wbuf.Buf())) {
				::PostMessage(runasWnd, WM_IPMSG_QUIT, 1, 0);
				runasWnd = NULL;
			}
		}
		else {
			AppKick();
		}
	}
	else {
		HWND	hHelp = ShowHelpU8(0, setupDir, GetLoadStrU8(IDS_IPMSGHELP), "#history");
		if (hHelp) {
			Show(SW_HIDE);
			while (::IsWindow(hHelp)) {
				this->Sleep(100);
			}
		}
	}

	if (runasWnd) {
		::PostMessage(runasWnd, WM_IPMSG_QUIT, 0, 0);
		runasWnd = NULL;
	}

//	ShellExecuteU8(NULL, NULL, setupDir, 0, 0, SW_SHOW);
	::PostQuitMessage(0);
	return	TRUE;
}
Exemple #13
0
OBJECT ClosureExpand(OBJECT x, OBJECT env, BOOLEAN crs_wanted,
OBJECT *crs, OBJECT *res_env)
{ OBJECT link, y, res, prnt_env, par, prnt;
  debug3(DCE, D, "[ ClosureExpand( %s, %s, %s, crs, res_env )",
    EchoObject(x), EchoObject(env), bool(crs_wanted));
  assert( type(x) == CLOSURE, "ClosureExpand given non-CLOSURE!");
  assert( predefined(actual(x)) == FALSE, "ClosureExpand given predefined!" );

  /* add tag to x if needed but not provided;  add cross-reference to crs  */
  if( has_tag(actual(x)) )  CrossAddTag(x);
  if( crs_wanted && has_tag(actual(x)) )
  { OBJECT tmp = CopyObject(x, no_fpos);  AttachEnv(env, tmp);
    y = CrossMake(actual(x), tmp, CROSS_TARG);
    New(tmp, CROSS_TARG);  actual(tmp) = y;  Link(tmp, y);
    if( *crs == nilobj )  New(*crs, CR_LIST);   Link(*crs, tmp);
  }

  /* case x is a parameter */
  res = *res_env = nilobj;
  if( is_par(type(actual(x))) )
  { prnt = SearchEnv(env, enclosing(actual(x)));
    if( prnt != nilobj )
    {
      prnt_env = GetEnv(prnt);
      for( link = Down(prnt);  link != prnt;  link = NextDown(link) )
      { Child(par, link);
        if( type(par) == PAR && actual(par) == actual(x) )
        { assert( Down(par) != par, "ExpandCLosure: Down(par)!");
	  Child(res, Down(par));
	  if( dirty(enclosing(actual(par))) || is_enclose(actual(par)) )
	  { debug2(DCE, DD, "copy %s %s", SymName(actual(par)), EchoObject(res));
	    res = CopyObject(res, no_fpos);
	  }
	  else
	  {
	    debug2(DCE, DD, "link %s %s",
	      FullSymName(actual(par), AsciiToFull(".")), EchoObject(res));
	    DeleteLink(Down(par));
	    y = MakeWord(WORD, STR_NOCROSS, &fpos(res));
	    Link(par, y);
	  }
	  ReplaceNode(res, x);
	  if( type(actual(x)) == RPAR && has_body(enclosing(actual(x))) )
	  { debug0(DCR, DDD, "  calling SetEnv from ClosureExpand (a)");
	    *res_env = SetEnv(prnt, nilobj);  DisposeObject(x);
	  }
	  else if( type(actual(x)) == NPAR && imports_encl(actual(x)) )
	  { debug0(DCR, DDD, "  calling SetEnv from ClosureExpand (x)");
	    AttachEnv(env, x);
	    *res_env = SetEnv(x, nilobj);
	  }
	  else
	  { AttachEnv(env, x);
	    debug0(DCR, DDD, "  calling SetEnv from ClosureExpand (b)");
	    *res_env = SetEnv(x, prnt_env);
	  }
	  break;
        }
      }
    }
    else
    {
      /* fail only if there is no default value available */
      if( sym_body(actual(x)) == nilobj )
      {
        debug3(DCE, D, "failing ClosureExpand( %s, crs, %s, %s, res_env )",
	  EchoObject(x), bool(crs_wanted), EchoObject(env));
        Error(9, 2, "no value for parameter %s of symbol %s:", WARN, &fpos(x),
	  SymName(actual(x)), SymName(enclosing(actual(x))));
        Error(9, 1, "symbol with import list misused", FATAL, &fpos(x));
      }
    }
  }

  /* case x is a user-defined symbol or default parameter */
  if( res == nilobj )
  { if( sym_body(actual(x)) == nilobj )
      res = MakeWord(WORD, STR_NOCROSS, &fpos(x));
    else
      res = CopyObject(sym_body(actual(x)), &fpos(x));
    ReplaceNode(res, x);  AttachEnv(env, x);
    debug0(DCR, DDD, "  calling SetEnv from ClosureExpand (c)");
    *res_env = SetEnv(x, nilobj);
  }

  assert( *res_env!=nilobj && type(*res_env)==ENV, "ClosureExpand: *res_env!");
  debug0(DCE, D, "] ClosureExpand returning, res =");
  ifdebug(DCE, D, DebugObject(res));
  debug1(DCE, D, "  environment = %s", EchoObject(*res_env));
  return res;
} /* end ClosureExpand */
Exemple #14
0
/*
 * Initialize the GUI interface for the plugin - this is only called once when the plugin is 
 * added to the plugin registry in the QGIS application.
 */
void QRap::initGui()
{
	mToolBarPointer = 0;
	printf("QRap::initGui\n");
	mPoints.clear();
	mMouseType = CLEAN;
	// Create the action for tool
  	cout << "VOOR DataBase Connect" << endl;
  	openDatabaseConnection();
  	cout << "Na DataBase Connect" << endl;


	cout << "Voor new Actions" << endl;
	mQActionPointer = new QAction(QIcon(":/qrap/Data.png"),tr("Q-Rap Database Interface"), this);
	mSiteAction = new QAction(QIcon(":/qrap/Site.png"),tr("Q-Rap: Place a Site"), this);
    	mSelectSiteAction = new QAction(QIcon(":/qrap/SiteSelect.png"),tr("Q-Rap: Select a Site"), this);
    	mDeleteSiteAction = new QAction(QIcon(":/qrap/SiteDelete.png"),tr("Q-Rap: Delete a Site"), this);
	mLinkAction = new QAction(QIcon(":/qrap/Link.png"),tr("Q-Rap: Link Analysis"), this);
	mSelectLinkAction = new QAction(QIcon(":/qrap/LinkSelect.png"),tr("Q-Rap: Select a Link"), this);
	mDeleteLinkAction = new QAction(QIcon(":/qrap/LinkDelete.png"),tr("Q-Rap: Delete a Link"), this);
	mMultiLinkAction = new QAction(QIcon(":/qrap/MultiLink.png"),tr("Q-Rap: Establish all Links possible in set of Sites"), this);
	mRadioAction = new QAction(QIcon(":/qrap/Coverage.png"),tr("Q-Rap: Perform a Prediction"), this);
	mMeasAnalysisAction = new QAction(QIcon(":/qrap/Measurements.png"),tr("Q-Rap: Compare measurements with predictions"), this);
    	mSpectralAction = new QAction(QIcon(":/qrap/Spectral.png"),tr("Q-Rap: Perform Spectral Interference Analysis"), this);
    	mPreferencesAction = new QAction(QIcon(":/qrap/Preferences.png"),tr("Q-Rap Preferences"), this);
	mOptimisationAction = new QAction(QIcon(":/qrap/Optimisation.png"),tr("Q-Rap: Optimise link structure in selected area"), this);
//    	mImportExportAction = new QAction(QIcon(":/qrap/ImportExport.png"),tr("Import Export"),this);
//    	mHelpAction = new QAction(QIcon(":/qrap/Help.png"),tr("Q-Rap Help"), this);

     	cout << "Na new Actions" << endl;
  
	// Connect the action to the run
  	connect(mQActionPointer, SIGNAL(activated()), this, SLOT(run()));
  	connect(mSiteAction, SIGNAL(activated()), this, SLOT(PlaceSite()));
  	connect(mSelectSiteAction, SIGNAL(activated()), this, SLOT(SelectSite()));
  	connect(mDeleteSiteAction, SIGNAL(activated()), this, SLOT(DeleteSite()));
  	connect(mLinkAction, SIGNAL(activated()), this, SLOT(CreateLinkAnalysis()));
  	connect(mDeleteLinkAction, SIGNAL(activated()), this, SLOT(DeleteLink()));
	connect(mMultiLinkAction, SIGNAL(activated()), this, SLOT(MultiLink()));
  	connect(mSelectLinkAction, SIGNAL(activated()), this, SLOT(SelectLink()));
  	connect(mRadioAction, SIGNAL(activated()), this, SLOT(Prediction()));
	connect(mMeasAnalysisAction, SIGNAL(activated()), this, SLOT(Measurements()));
  	connect(mSpectralAction, SIGNAL(activated()), this, SLOT(SpectralAnalysis()));
  	connect(mPreferencesAction, SIGNAL(activated()), this, SLOT(Preferences()));
	connect(mOptimisationAction, SIGNAL(activated()), this, SLOT(Optimise()));
//  	connect(mImportExportAction,SIGNAL(activated()), this, SLOT(ImportExport()));
//  	connect(mHelpAction,SIGNAL(activated()), this, SLOT(Help()));
  	cout << "Na Connect" << endl;

  	// Add the toolbar to the main window
  	mToolBarPointer = mQGisIface->addToolBar(tr("Q-Rap")); 
  	mToolBarPointer->setIconSize(QSize(24,24));
  	mToolBarPointer->setObjectName("Q-Rap");
  	// Add the icon to the toolbar

  	mToolBarPointer->addAction(mSiteAction);
  	mToolBarPointer->addAction(mSelectSiteAction);
  	mToolBarPointer->addAction(mDeleteSiteAction);
  	mToolBarPointer->addAction(mLinkAction);
  	mToolBarPointer->addAction(mSelectLinkAction);
  	mToolBarPointer->addAction(mDeleteLinkAction);
  	mToolBarPointer->addAction(mRadioAction);
	mToolBarPointer->addAction(mMultiLinkAction);
	mToolBarPointer->addAction(mMeasAnalysisAction);
  	mToolBarPointer->addAction(mSpectralAction);
        mToolBarPointer->addAction(mOptimisationAction);
  	mToolBarPointer->addAction(mPreferencesAction);
  	mToolBarPointer->addAction(mQActionPointer);
//  	mToolBarPointer->addAction(mImportExportAction);
//  	mToolBarPointer->addAction(mHelpAction); 

	mLoaded = true; 
 
//  	openDatabaseConnection();
//  	cout << "Na DataBase Connect" << endl;

//  	mQGisIface->addToolBarIcon( mQActionPointer );
//  	mQGisIface->addPluginToMenu( tr( "Q-Rap Database" ), mQActionPointer );

  	Mouse = new MouseEvents(mQGisIface->mapCanvas());
  	cout << "Na Mouse" << endl;
  	connect(Mouse, SIGNAL(RightPoint(QgsPoint&)), this, SLOT(ReceivedRightPoint(QgsPoint&)));
  	connect(Mouse, SIGNAL(LeftPoint(QgsPoint&)), this, SLOT(ReceivedLeftPoint(QgsPoint&)));
}