Ejemplo n.º 1
0
//updates existing employee record
void update(int updateID) {
//determines if a record exists or has been located
	bool infoFound = false;
	FILE* outFile;

	outFile = fopen("f.dat", "r+b");
	employeeRecord emp;
//iterates though the file
	while ((fread(&emp, sizeof(employeeRecord), 1, outFile)) == 1){
//sees if the id matches one in the database		
		if (emp.eID == updateID) {//was u_eID
//sets pointer
			fseek(outFile, (updateID-1) * sizeof(employeeRecord), SEEK_SET); //was u_eID
//calls function to get user input
			getInfo();
//saves updated info
			saveInfo(emp.eID, outFile);
//closes file
			fclose(outFile);
//since the record was found, set to true			
			infoFound = true;
			break;
		}
	}
	//displays message depending on whether or not information has been found
	// (infoFound) ? (printf("\nChanges saved\n")) : (printf("\nNo records found for that employee.\n"));
	if (infoFound == true) {
		printf("\nChanges saved\n");
	}
	else {
		printf("\nNo records found for that employee.\n");
	}
}
Ejemplo n.º 2
0
shared_ptr<Book> BooksDBUtil::getBook(const std::string &filePath, bool checkFile) {
	const std::string physicalFilePath = ZLFile(filePath).physicalFilePath();

	ZLFile file(physicalFilePath);
	if (checkFile && !file.exists()) {
		return 0;
	}

	if (!checkFile || checkInfo(file)) {
		shared_ptr<Book> book = loadFromDB(filePath);
		if (!book.isNull() && isBookFull(*book)) {
			return book;
		}
	} else {
		if (physicalFilePath != filePath) {
			resetZipInfo(file);
		}
		saveInfo(file);
	}

	shared_ptr<Book> book = Book::loadFromFile(filePath);
	if (book.isNull()) {
		return 0;
	}
	BooksDB::Instance().saveBook(book);
	return book;
}
Ejemplo n.º 3
0
//prompts user to confirm information and writes it to a file
void create() {
	int choice;
	printf("****Press 1 to confirm information.**** \n");
	printf("****Press 2 to return to menu without saving.****\n");
//gets users' confirmation
	while(1) {
		scanf("%d", &choice);
		if (choice == 1) {
//opens or creates file if it doesn't exist
		FILE*outFile;
		outFile = fopen("f.dat", "a+b");
//find out size of file
		fseek(outFile, 0L, SEEK_END);
		int fileSize = ftell(outFile);
//resets pointer after the size is figured out
		fseek(outFile, 0, SEEK_SET);

		int count;
		if (fileSize == -1) {
			count = 0;
		}
		else {
			count = fileSize / sizeof(employeeRecord);
		}
		saveInfo(count+1, outFile);
		break;
	}
//returns user to main menu if they choose not to save
		else if (choice == 2) {
			break;
		}
	}//maybe don't need
	return;
	//} maybe need
}
Ejemplo n.º 4
0
bool BooksDBUtil::getBooks(std::map<std::string, shared_ptr<Book> > &booksmap, bool checkFile) {
	BookList books;
	if (!BooksDB::Instance().loadBooks(books)) {
		return false;
	}
	for (BookList::iterator it = books.begin(); it != books.end(); ++it) {
		Book &book = **it;
		const std::string &filePath = book.filePath();
		const std::string physicalFilePath = ZLFile(filePath).physicalFilePath();
		ZLFile file(physicalFilePath);
		if (!checkFile || file.exists()) {
			if (!checkFile || checkInfo(file)) {
				if (isBookFull(book)) {
					booksmap.insert(std::make_pair(filePath, *it));
					continue;
				}
			} else {
				if (physicalFilePath != filePath) {
					resetZipInfo(file);
				}
				saveInfo(file);
			}
			shared_ptr<Book> bookptr = Book::loadFromFile(filePath);
			if (!bookptr.isNull()) {
				BooksDB::Instance().saveBook(bookptr);
				booksmap.insert(std::make_pair(filePath, bookptr));
			}
		}
	}
	return true;
}
Ejemplo n.º 5
0
void Box::saveRecorded(){
	ofstream recorded_file;
	recorded_file.open("Info\\Recorded.txt");
	for (int i = 0; i < recordList.size(); i++)
	{
		recorded_file << recordList[i].getName() << endl;
	}
	saveInfo();
}
Ejemplo n.º 6
0
PlaylistPtr PlaylistManager::addPlaylist(const PlaylistMeta &listinfo)
{
    Q_D(PlaylistManager);
    PlaylistMeta saveInfo(listinfo);
    saveInfo.sortID = d->sortUUIDs.length();
    d->sortUUIDs << saveInfo.uuid;
    insertPlaylist(listinfo.uuid, PlaylistPtr(new Playlist(saveInfo)));
    MediaDatabase::addPlaylist(saveInfo);
    return d->playlists.value(listinfo.uuid);
}
Ejemplo n.º 7
0
void UserInfo::saveInfo()
{
    ICQUser *u = pClient->getUser(m_nUin, m_nUin == 0);
    if (u == NULL) return;
    if (m_nUin == 0) m_nUin = u->Uin();
    inSave = true;
    emit saveInfo(u);
    inSave = false;
    ICQEvent e(EVENT_INFO_CHANGED, m_nUin);
    processEvent(&e);
}
Ejemplo n.º 8
0
UserInfo::UserInfo(QWidget *parent, unsigned long uin, int page)
        : UserInfoBase(parent)
{
    inSave = false;

    m_nUin = uin;
    ICQUser *u = pClient->getUser(m_nUin);
    if (uin && (u == NULL)) return;

    lstBars->clear();
    lstBars->header()->hide();
    lstBars->setSorting(1);
    connect(lstBars, SIGNAL(selectionChanged()), this, SLOT(selectionChanged()));

    itemMain = new QListViewItem(lstBars, i18n("User info"), QString::number(SETUP_DETAILS));
    itemMain->setOpen(true);

    addWidget(new MainInfo(tabBars, true), SETUP_MAININFO, i18n("Main info"), "main");
    if (u && (u->Type == USER_TYPE_ICQ)){
        addWidget(new HomeInfo(tabBars, true), SETUP_HOMEINFO, i18n("Home info"), "home");
        addWidget(new WorkInfo(tabBars, true), SETUP_WORKINFO, i18n("Work info"), "work");
        addWidget(new MoreInfo(tabBars, true), SETUP_MOREINFO, i18n("More info"), "more");
        addWidget(new AboutInfo(tabBars, true), SETUP_ABOUT, i18n("About info"), "info");
        addWidget(new InterestsInfo(tabBars, true), SETUP_INTERESTS, i18n("Interests"), "interest");
        addWidget(new PastInfo(tabBars, true), SETUP_PAST, i18n("Group/Past"), "past");
    }
    addWidget(new PhoneBookDlg(tabBars, true), SETUP_PHONE, i18n("Phone book"), "phone");

    if (u && (u->Type == USER_TYPE_ICQ)){
        itemMain = new QListViewItem(lstBars, i18n("Preferences"), QString::number(SETUP_PREFERENCES));
        itemMain->setOpen(true);
        addWidget(new AlertDialog(tabBars, true), SETUP_ALERT, i18n("Alert"), "alert");
        addWidget(new AcceptDialog(tabBars, true), SETUP_ACCEPT, i18n("Accept file"), "file");
        addWidget(new SoundSetup(tabBars, true), SETUP_SOUND, i18n("Sound"), "sound");
        addWidget(new MsgDialog(tabBars, ICQ_STATUS_AWAY, true), SETUP_AR_AWAY,
                  Client::getStatusText(ICQ_STATUS_AWAY), Client::getStatusIcon(ICQ_STATUS_AWAY));
        addWidget(new MsgDialog(tabBars, ICQ_STATUS_NA, true), SETUP_AR_NA,
                  Client::getStatusText(ICQ_STATUS_NA), Client::getStatusIcon(ICQ_STATUS_NA));
        addWidget(new MsgDialog(tabBars, ICQ_STATUS_OCCUPIED, true), SETUP_AR_OCCUPIED,
                  Client::getStatusText(ICQ_STATUS_OCCUPIED), Client::getStatusIcon(ICQ_STATUS_OCCUPIED));
        addWidget(new MsgDialog(tabBars, ICQ_STATUS_DND, true), SETUP_AR_DND,
                  Client::getStatusText(ICQ_STATUS_DND), Client::getStatusIcon(ICQ_STATUS_DND));
        addWidget(new MsgDialog(tabBars, ICQ_STATUS_FREEFORCHAT, true), SETUP_AR_FREEFORCHAT,
                  Client::getStatusText(ICQ_STATUS_FREEFORCHAT), Client::getStatusIcon(ICQ_STATUS_FREEFORCHAT));
    }
    tabBars->raiseWidget(page ? page : SETUP_MAININFO);

    connect(pClient, SIGNAL(event(ICQEvent*)), this, SLOT(processEvent(ICQEvent*)));
    connect(btnSave, SIGNAL(clicked()), this, SLOT(saveInfo()));
    connect(btnUpdate, SIGNAL(clicked()), this, SLOT(update()));

    loadInfo();
}
Ejemplo n.º 9
0
void UserInfo::saveInfo()
{
    if (m_nUin){
        ICQUser *u = pClient->getUser(m_nUin);
        if (u){
            inSave = true;
            emit saveInfo(u);
            inSave = false;
            ICQEvent e(EVENT_INFO_CHANGED, m_nUin);
            processEvent(&e);
            if (u->bIsTemp)
                pClient->getUser(m_nUin, true);
        }
    }else{
        ICQGroup *g = NULL;
        if (m_nGrpId)
            g = pClient->getGroup(m_nGrpId);
        inSave = true;
        emit saveInfo(g);
        inSave = false;
    }
    close();
}
Ejemplo n.º 10
0
 void sm::BoostPropertyTree::save(const boost::filesystem::path& fileName) const {
   switch(getFileFormatAndThrowIfUnknown(fileName)){
     case XML:
       saveXml(fileName);
       break;
     case INI:
       saveIni(fileName);
       break;
     case JSON:
       saveJson(fileName);
       break;
     case INFO:
       saveInfo(fileName);
       break;
   }
 }
Ejemplo n.º 11
0
void Box::saveChannels(){

	for (int i = 0; i < channels.size(); i++)
	{
		channels[i].orderPrograms();
	}

	ofstream channels_file;
	channels_file.open("Info\\Channels.txt");

	for (int i = 0; i < channels.size(); i++)
	{
		vector<Program> program_list;
		program_list = channels[i].getPrograms();

		channels_file << channels[i].getName() << endl;
		channels_file << program_list.size() << endl;

		for (int k = 0; k < program_list.size(); k++)
		{
			channels_file << '\"' << program_list[k].getName() << '\"';
			channels_file << " " << program_list[k].getDuration();
			channels_file << " " << '\"' << program_list[k].getType() << '\"';

			if (program_list[k].getState())
			{
				channels_file << " " << 1;
			}
			else
			{
				channels_file << " " << 0;
			}

			channels_file << " " << '\"' << program_list[k].getDate().getDay() << '\"';
			channels_file << " " << program_list[k].getDate().getHour();
			channels_file << " " << program_list[k].getDate().getMinutes() << endl;
		}
	}
	channels_file.close();


	saveInfo();
}
Ejemplo n.º 12
0
void createInfo(char way[3])
{
	goodsInfoLink *head,*q, *p;
	char code[20];
	int choice=1;
	printf("请输入\n编号、品名、生产厂家、保质期(0000/00/00)、进价、售价、进货量、销售量.(以#结束)\n");
	head = (goodsInfoLink *)malloc(sizeof(goodsInfoLink));
	p = head;
	scanf("%s", code);
	while (1)
	{
		if (strcmp(code, "#") == 0)
			break;
		else
		{
			q = (goodsInfoLink *)malloc(sizeof(goodsInfoLink));
			strcpy(q->number, code);
			scanf("%s%s%s%f%f%d%d",
				q->name,q->manuFacturer,q->expirationData,&q->bid,&q->price,&q->inAmount,&q->outAmount);
			q->residue = (q->inAmount) - (q->outAmount);    //剩余数	
			q->sell = (q->price)*(q->outAmount);			//销售额
			q->scrap = 0;
			p->money = (p->sell) - (p->bid)*(p->outAmount);
			p->next = q;
			p = q;
		}
		scanf("%s", code);
	}
	q->next = NULL;
	printf("信息输入结束\n");
	getchar();
	printf("是否保存信息?(1、保存 2、不保存)\n");
	scanf("%d", &choice);
	if (choice == 1)
		saveInfo(head,way);
	else
		printf("信息没有被保存\n");
}
Ejemplo n.º 13
0
static INT_PTR CALLBACK infoDialogProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	switch (uMsg) {
	case WM_INITDIALOG:
#ifdef PLAYING_INFO
		CheckDlgButton(hDlg, IDC_PLAYING, playing_info ? BST_CHECKED : BST_UNCHECKED);
#endif
		SendDlgItemMessage(hDlg, IDC_AUTHOR, EM_LIMITTEXT, ASAPInfo_MAX_TEXT_LENGTH, 0);
		SendDlgItemMessage(hDlg, IDC_NAME, EM_LIMITTEXT, ASAPInfo_MAX_TEXT_LENGTH, 0);
		SendDlgItemMessage(hDlg, IDC_DATE, EM_LIMITTEXT, ASAPInfo_MAX_TEXT_LENGTH, 0);
		SendDlgItemMessage(hDlg, IDC_TIME, EM_LIMITTEXT, ASAPWriter_MAX_DURATION_LENGTH, 0);
		return TRUE;
	case WM_COMMAND:
		switch (wParam) {
#ifdef PLAYING_INFO
		case MAKEWPARAM(IDC_PLAYING, BN_CLICKED):
			playing_info = (IsDlgButtonChecked(hDlg, IDC_PLAYING) == BST_CHECKED);
			if (playing_info && playing_filename[0] != '\0')
				updateInfoDialog(playing_filename, playing_song);
			onUpdatePlayingInfo();
			return TRUE;
#endif
		case MAKEWPARAM(IDC_AUTHOR, EN_CHANGE):
			updateInfoString(hDlg, IDC_AUTHOR, INVALID_FIELD_AUTHOR, ASAPInfo_SetAuthor);
			return TRUE;
		case MAKEWPARAM(IDC_NAME, EN_CHANGE):
			updateInfoString(hDlg, IDC_NAME, INVALID_FIELD_NAME, ASAPInfo_SetTitle);
			return TRUE;
		case MAKEWPARAM(IDC_DATE, EN_CHANGE):
			updateInfoString(hDlg, IDC_DATE, INVALID_FIELD_DATE, ASAPInfo_SetDate);
			return TRUE;
		case MAKEWPARAM(IDC_PICKDATE, BN_CLICKED):
			toggleCalendar(hDlg);
			return TRUE;
		case MAKEWPARAM(IDC_TIME, EN_CHANGE):
			{
				char str[ASAPWriter_MAX_DURATION_LENGTH + 1];
				int duration;
				SendDlgItemMessage(hDlg, IDC_TIME, WM_GETTEXT, ASAPWriter_MAX_DURATION_LENGTH + 1, (LPARAM) str);
				duration = ASAPInfo_ParseDuration(str);
				ASAPInfo_SetDuration(edited_info, edited_song, duration);
				EnableWindow(GetDlgItem(infoDialog, IDC_LOOP), str[0] != '\0');
				updateSaveButtons(INVALID_FIELD_TIME | INVALID_FIELD_TIME_SHOW, duration >=0 || str[0] == '\0');
			}
			return TRUE;
		case MAKEWPARAM(IDC_TIME, EN_KILLFOCUS):
			if ((invalid_fields & INVALID_FIELD_TIME_SHOW) != 0) {
				invalid_fields &= ~INVALID_FIELD_TIME_SHOW;
				showEditTip(IDC_TIME, _T("Invalid format"), _T("Please type MM:SS.mmm"));
			}
			return TRUE;
		case MAKEWPARAM(IDC_LOOP, BN_CLICKED):
			ASAPInfo_SetLoop(edited_info, edited_song, IsDlgButtonChecked(hDlg, IDC_LOOP) == BST_CHECKED);
			updateSaveButtons(0, TRUE);
			return TRUE;
		case MAKEWPARAM(IDC_SONGNO, CBN_SELCHANGE):
			setEditedSong(SendDlgItemMessage(hDlg, IDC_SONGNO, CB_GETCURSEL, 0, 0));
			updateSaveButtons(INVALID_FIELD_TIME | INVALID_FIELD_TIME_SHOW, TRUE);
			return TRUE;
		case MAKEWPARAM(IDC_SAVE, BN_CLICKED):
			saveInfo();
			return TRUE;
		case MAKEWPARAM(IDC_SAVEAS, BN_CLICKED):
			saveInfoAs();
			return TRUE;
		case MAKEWPARAM(IDCANCEL, BN_CLICKED):
			if (invalid_fields == 0 && infoChanged()) {
				switch (MessageBox(hDlg, _T("Save changes?"), _T("ASAP"), MB_YESNOCANCEL | MB_ICONQUESTION)) {
				case IDYES:
					if (!saveInfoAs())
						return TRUE;
					break;
				case IDCANCEL:
					return TRUE;
				default:
					break;
				}
			}
			closeInfoDialog();
			return TRUE;
		}
		break;
	case WM_NOTIFY: {
			LPNMSELCHANGE psc = (LPNMSELCHANGE) lParam;
			if (psc->nmhdr.hwndFrom == monthcal && psc->nmhdr.code == MCN_SELECT) {
				_TCHAR str[32];
				ShowWindow(monthcal, SW_HIDE);
				_stprintf(str, _T("%02d/%02d/%d"), psc->stSelStart.wDay, psc->stSelStart.wMonth, psc->stSelStart.wYear);
				SetDlgItemText(hDlg, IDC_DATE, str);
				ASAPInfo_SetDate(edited_info, str);
				updateSaveButtons(INVALID_FIELD_DATE, TRUE);
			}
		}
		break;
	case WM_DESTROY:
		if (monthcal != NULL) {
			DestroyWindow(monthcal);
			monthcal = NULL;
		}
		return 0;
	default:
		break;
	}
	return FALSE;
}
int main(void)
{
	system("mode con lines=25 cols=80");	//콘솔 창 크기 초기화

	UserInfo *userInfo = NULL;
	FILE *readFile = NULL;
	FILE *writeFile = NULL;
	int input = 1, menu = 1, choice;
	int *ptr = &menu;
	char *menu_num[MENU_NUM];

	puts("\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t        =  시작하는 중  = \n\n\n\n\n\n\n\n\n\n\n");

	userInfo = setUserInfo(userInfo, readFile);	//구조체 배열에 파일 데이터 저장
	if (userInfo == (UserInfo*)-1) return 0;	//오류 났을 경우 바로 종료

	startSound();	//로딩 완료 효과음

	printMainSub(menu, menu_num);	//메인 메뉴 구성

	while(1) {
		printMain(menu, menu_num);	//메인 화면 출력
		
		input = getch();	//입력
		
		if (input == ARROW_BUFFER)	//방향키는 입력 시 아스키확장 값이 먼저 들어온 후 값이 들어옴
			input = getch();	//그래서 이 경우 버퍼를 한번 비우도록 하였음

		switch (input)
		{
		case UP_ARROW_KEY:	//상 방향키
			if (menu > 1) menu--;
			moveSound();
			break;
		case DOWN_ARROW_KEY:	//하 방향키
			if (menu < 6) menu++;
			moveSound();
			break;
		case ENTER_KEY:		//enter키
			inSound();
			switch (menu)
			{
			case 1:	//출력
				printList(userInfo);
				break;
			case 2:	//등록
				addUser(userInfo);
				break;
			case 3:	//삭제
				searchMain(userInfo, _DELETE, "삭제", "Delete");
				break;
			case 4:	//수정
				searchMain(userInfo, MODIFY, "수정", "Modify");
				break;
			case 5:	//검색
				searchMain(userInfo, SEARCH, "검색", "Search");
				break;
			case 6:	//저장
				saveInfo(userInfo, writeFile);
				break;

			} //switch(menu) out
			break;
		case ESC_KEY:		//esc키
			inSound();
			choice = closeProgram();

			if (choice == SAVE)
				choice = saveInfo(userInfo, writeFile);

			if (choice == SAVE || choice == EXIT){
				printClose();

				free(userInfo);

				closeSound();
				printClose_sub();
				return 0;
			}
			else break;
		default:
			warningMessage(input - '0', 6, ptr);
			break;
		} //switch(input) out
	}

	free(userInfo);
	return 0;
}
Ejemplo n.º 15
0
void headerInput(Pila *p){
	Header *info = inputHeaderInfo();
	saveInfo(info);
	insertar_pila(p, info);
}
Ejemplo n.º 16
0
UserInfo::UserInfo(unsigned long uin, unsigned short grpId, int page)
        : UserInfoBase(NULL, "userinfo", WType_TopLevel | WStyle_Dialog| WDestructiveClose)
{
    SET_WNDPROC("userinfo")

    inSave = false;
    setButtonsPict(this);

    m_nUin   = uin;
    m_nGrpId = grpId;

    ICQUser *u = NULL;
    if (uin){
        u = pClient->getUser(uin);
        if (u == NULL) return;
    }
    ICQGroup *g = NULL;
    if (grpId){
        g = pClient->getGroup(grpId);
        if (g == NULL) return;
    }

    lstBars->clear();
    lstBars->header()->hide();
    lstBars->setSorting(1);
    connect(lstBars, SIGNAL(selectionChanged()), this, SLOT(selectionChanged()));

    itemMain = new QListViewItem(lstBars, i18n("User info"), QString::number(SETUP_DETAILS));
    itemMain->setOpen(true);

    if (u){
        addWidget(p_MainInfo, SETUP_MAININFO, i18n("Main info"), "main");
        if (u->Type == USER_TYPE_ICQ){
            addWidget(p_HomeInfo, SETUP_HOMEINFO, i18n("Home info"), "home");
            addWidget(p_WorkInfo, SETUP_WORKINFO, i18n("Work info"), "work");
            addWidget(p_MoreInfo, SETUP_MOREINFO, i18n("More info"), "more");
            addWidget(p_AboutInfo, SETUP_ABOUT, i18n("About info"), "info");
            addWidget(p_InterestsInfo, SETUP_INTERESTS, i18n("Interests"), "interest");
            addWidget(p_PastInfo, SETUP_PAST, i18n("Group/Past"), "past");
        }
        addWidget(p_PhoneBookDlg, SETUP_PHONE, i18n("Phone book"), "phone");
    }

    if ((uin == 0) || (u->Type == USER_TYPE_ICQ)){
        itemMain = new QListViewItem(lstBars, i18n("Preferences"), QString::number(SETUP_PREFERENCES));
        itemMain->setOpen(true);
        addWidget(p_AlertDialog, SETUP_ALERT, i18n("Alert"), "alert");
        addWidget(p_AcceptDialog, SETUP_ACCEPT, i18n("Accept"), "message");
        addWidget(p_SoundSetup, SETUP_SOUND, i18n("Sound"), "sound");
    }
    if (g || (u && (u->Type == USER_TYPE_ICQ))){
        itemMain = new QListViewItem(lstBars, i18n("Auto reply"), QString::number(SETUP_AUTOREPLY));
        itemMain->setOpen(true);
        addWidget(p_MsgDialog, SETUP_AR_AWAY,
                  SIMClient::getStatusText(ICQ_STATUS_AWAY), SIMClient::getStatusIcon(ICQ_STATUS_AWAY),
                  ICQ_STATUS_AWAY);
        addWidget(p_MsgDialog, SETUP_AR_NA,
                  SIMClient::getStatusText(ICQ_STATUS_NA), SIMClient::getStatusIcon(ICQ_STATUS_NA),
                  ICQ_STATUS_NA);
        addWidget(p_MsgDialog, SETUP_AR_OCCUPIED,
                  SIMClient::getStatusText(ICQ_STATUS_OCCUPIED), SIMClient::getStatusIcon(ICQ_STATUS_OCCUPIED),
                  ICQ_STATUS_OCCUPIED);
        addWidget(p_MsgDialog, SETUP_AR_DND,
                  SIMClient::getStatusText(ICQ_STATUS_DND), SIMClient::getStatusIcon(ICQ_STATUS_DND),
                  ICQ_STATUS_DND);
        addWidget(p_MsgDialog, SETUP_AR_FREEFORCHAT,
                  SIMClient::getStatusText(ICQ_STATUS_FREEFORCHAT), SIMClient::getStatusIcon(ICQ_STATUS_FREEFORCHAT),
                  ICQ_STATUS_FREEFORCHAT);
    }
    raiseWidget(page ? page : (u ? SETUP_MAININFO : SETUP_ALERT));

    connect(pClient, SIGNAL(event(ICQEvent*)), this, SLOT(processEvent(ICQEvent*)));
    connect(btnSave, SIGNAL(clicked()), this, SLOT(saveInfo()));
    connect(btnClose, SIGNAL(clicked()), this, SLOT(close()));
    if (u && (u->Type == USER_TYPE_ICQ)){
        connect(btnUpdate, SIGNAL(clicked()), this, SLOT(update()));
    }else{
        btnUpdate->hide();
    }
    loadInfo();
    setTitle();
    setIcon();
}
Ejemplo n.º 17
0
void fnSaveStateAndRebuildList(HWND hwnd, struct ClcData *dat)
{
	NMCLISTCONTROL nm;
	int i, j;
	ClcGroup *group;
	ClcContact *contact;

	cli.pfnHideInfoTip(hwnd, dat);
	KillTimer(hwnd, TIMERID_INFOTIP);
	KillTimer(hwnd, TIMERID_RENAME);
	cli.pfnEndRename(hwnd, dat, 1);

	OBJLIST<SavedContactState_t> saveContact(10, NumericKeySortT);
	OBJLIST<SavedGroupState_t> saveGroup(100, NumericKeySortT);
	OBJLIST<SavedInfoState_t> saveInfo(10, NumericKeySortT);

	dat->needsResort = 1;
	group = &dat->list;
	group->scanIndex = 0;
	for (;;) {
		if (group->scanIndex == group->cl.count) {
			group = group->parent;
			if (group == NULL)
				break;
		}
		else if (group->cl.items[group->scanIndex]->type == CLCIT_GROUP) {
			group = group->cl.items[group->scanIndex]->group;
			group->scanIndex = 0;

			SavedGroupState_t* p = new SavedGroupState_t;
			p->groupId = group->groupId;
			p->expanded = group->expanded;
			saveGroup.insert(p);
			continue;
		}
		else if (group->cl.items[group->scanIndex]->type == CLCIT_CONTACT) {
			SavedContactState_t* p = new SavedContactState_t;
			p->hContact = group->cl.items[group->scanIndex]->hContact;
			memcpy(p->iExtraImage, group->cl.items[group->scanIndex]->iExtraImage, sizeof(p->iExtraImage));
			p->checked = group->cl.items[group->scanIndex]->flags & CONTACTF_CHECKED;
			saveContact.insert(p);
		}
		else if (group->cl.items[group->scanIndex]->type == CLCIT_INFO) {
			SavedInfoState_t* p = new SavedInfoState_t;
			p->parentId = (group->parent == NULL) ? -1 : group->groupId;
			p->contact = *group->cl.items[group->scanIndex];
			saveInfo.insert(p);
		}
		group->scanIndex++;
	}

	cli.pfnFreeGroup(&dat->list);
	cli.pfnRebuildEntireList(hwnd, dat);

	group = &dat->list;
	group->scanIndex = 0;
	for (;;) {
		if (group->scanIndex == group->cl.count) {
			group = group->parent;
			if (group == NULL)
				break;
		}
		else if (group->cl.items[group->scanIndex]->type == CLCIT_GROUP) {
			group = group->cl.items[group->scanIndex]->group;
			group->scanIndex = 0;

			SavedGroupState_t tmp, *p;
			tmp.groupId = group->groupId;
			if ((p = saveGroup.find(&tmp)) != NULL)
				group->expanded = p->expanded;
			continue;
		}
		else if (group->cl.items[group->scanIndex]->type == CLCIT_CONTACT) {
			SavedContactState_t tmp, *p;
			tmp.hContact = group->cl.items[group->scanIndex]->hContact;
			if ((p = saveContact.find(&tmp)) != NULL) {
				memcpy(group->cl.items[group->scanIndex]->iExtraImage, p->iExtraImage, sizeof(p->iExtraImage));
				if (p->checked)
					group->cl.items[group->scanIndex]->flags |= CONTACTF_CHECKED;
			}
		}

		group->scanIndex++;
	}

	for (i=0; i < saveInfo.getCount(); i++) {
		if (saveInfo[i].parentId == -1)
			group = &dat->list;
		else {
			if (!cli.pfnFindItem(hwnd, dat, saveInfo[i].parentId | HCONTACT_ISGROUP, &contact, NULL, NULL))
				continue;
			group = contact->group;
		}
		j = cli.pfnAddInfoItemToGroup(group, saveInfo[i].contact.flags, _T(""));
		*group->cl.items[j] = saveInfo[i].contact;
	}

	cli.pfnRecalculateGroupCheckboxes(hwnd, dat);

	cli.pfnRecalcScrollBar(hwnd, dat);
	nm.hdr.code = CLN_LISTREBUILT;
	nm.hdr.hwndFrom = hwnd;
	nm.hdr.idFrom = GetDlgCtrlID(hwnd);
	SendMessage(GetParent(hwnd), WM_NOTIFY, 0, (LPARAM) & nm);
}
Ejemplo n.º 18
0
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    MyInfo = new info(this);

    // ------------------------- Всякая красота ----------------------------

    QSettings settings ("Other/config.ini", QSettings::IniFormat);
    settings.beginGroup("Settings");
    this->setWindowTitle("FormUdod - " + settings.value("windowtitle", "Запись в объединения").toString());
    settings.endGroup();

    this->setWindowIcon(QIcon(":/icons/Icons/udod"));

    help = new QDialog(this);
    help->setWindowTitle(tr("Помощь"));
    help->setWindowFlags(Qt::Window | Qt::WindowSystemMenuHint | Qt::WindowCloseButtonHint);
    QTextEdit* textEdit = new QTextEdit;
    textEdit->setReadOnly(true);
    textEdit->setHtml(tr("Данная программа представляет собой клиент для работы с базой данных. Перед началом работы убедитесь, что соединение с базой установлено — "
                         "в нижней части окна программы должна появиться соответствующая надпись. <b>Если соединение отсутствует, обратитесь к системному администратору.</b><br /><br />"
                         "Если соединение установлено, заполните анкету. <b>Обратите внимание, что поля, помеченные символом *, обязательны для заполнения!</b> "
                         "Если одно или несколько обязательных полей не заполнено, то при попытке сохранения программа выдаст соответствующее сообщения, а данные сохранены не будут.<br /><br />"
                         "Для сохранения введённых данных нажмите <img src=:/icons/Icons/save.png/ height=20> <b>Сохранить</b> на панели инструментов и подтвердите действие, нажав <b>Да</b> во всплывающем окне, "
                         "либо нажмите <b>Нет</b> для его отмены.<br /><br />"
                         "Для очистки всех полей нажмите <img src=:/icons/Icons/clear.png/ height=20> <b>Очистить форму</b>. Обратите внимание, что при этом все введённые данные будут потеряны!<br /><br />"
                         "Для получения информации о программе и лицензии нажмите <img src=:/icons/Icons/info.png/ height=20> <b>О программе</b>.<br /><br />"
                         "<b>Изменение настроек программы может осуществляться только системным администратором.</b>"));
    QVBoxLayout* layout = new QVBoxLayout;
    QDialogButtonBox* button = new QDialogButtonBox(QDialogButtonBox::Ok);
    connect(button, SIGNAL(accepted()), help, SLOT(close()));
    layout->addWidget(textEdit);
    layout->addWidget(button);
    help->setLayout(layout);

    // --------------------------- Main ToolBar ----------------------------

    // Иконки: http://www.flaticon.com/packs/web-application-ui/4

    ui->mainToolBar->addAction(QIcon(":/icons/Icons/save.png"), tr("Сохранить"), this, SLOT(saveInfo()));
    ui->mainToolBar->addAction(QIcon(":/icons/Icons/clear.png"), tr("Очистить форму"), this, SLOT(clearForm()));
    ui->mainToolBar->addSeparator();
    ui->mainToolBar->addAction(QIcon(":/icons/Icons/help.png"), tr("Помощь"), help, SLOT(show()));
    ui->mainToolBar->addAction(QIcon(":/icons/Icons/info.png"), tr("О программе"), MyInfo, SLOT(show()));

    names = new QRegularExpression("^[А-ЯЁ]{1}[а-яё]*(-[А-ЯЁ]{1}[а-яё]*)?$");
    words = new QRegularExpression();

    // Получение инфы обобъединениях

    QFile file ("Other/association.txt"); // Указываем название файла
    if(file.open(QIODevice::ReadOnly)) // Открываем файл для чтения
    {
        // Если файл успешно открыт
        QTextStream stream(&file); // Создаём поток текстового ввода/вывода
        if(stream.status() == QTextStream::Ok)
        {
            // Если поток создан успешно
            QStringList qsl; // Создаём список строк
            while (!stream.atEnd())
            {
                // Считываем поочерёдно все строки, форматируя их
                QString str = stream.readLine().simplified().replace(QRegularExpression("-{2,}"), "-");
                // Если строка не пустая и не комментарий
                if (!str.isEmpty() && str.at(0) != '#')
                    qsl.append(str); // Заносим её в список
            }
            qsl.sort(); // Сортируем список
            qsl.prepend("- Не выбрано -"); // Добавляем 0й элемент
            ui->ass1->addItems(qsl); // Устанавливаем текст для ComboBox
            ui->ass2->addItems(qsl);
            ui->ass3->addItems(qsl);
        }
        file.close(); // Закрываем файл
    }

    // ----------------------------- DataBase ------------------------------

    myDB = QSqlDatabase::addDatabase("QMYSQL");    // Указываем СУБД
    settings.beginGroup("Database");
    myDB.setHostName(settings.value("hostname", "localhost").toString());
    myDB.setDatabaseName(settings.value("dbname", "kcttTempDB").toString());
    myDB.setPort(settings.value("port").toInt());
    myDB.setUserName(settings.value("username").toString());
    myDB.setPassword(settings.value("password").toString());
    settings.endGroup();

    QString status;
    if (myDB.open() && !myDB.isOpenError() && myDB.isValid())                            // Открываем соединение
        status = tr("Соединение с базой установлено.");
    else
        status = tr("Ошибка соединения с основной базой: ") + myDB.lastError().text();

    ui->lblStatus->setText(status);
}
Ejemplo n.º 19
0
void selectScene::onSelectButton()
{
	saveInfo();
	SCENEMANAGER->changeScene("starwars");
}