示例#1
0
void KeyhoteeMainWindow::openContactGui( int contact_id )
{
    if( contact_id == -1 ) // TODO: define -1 as AddressBookID
    {
        showContacts();
        return;
    }
    else
    {
        auto contact_gui = createContactGuiIfNecessary( contact_id );
        showContactGui( *contact_gui );
    }
}
示例#2
0
void KeyhoteeMainWindow::onSidebarSelectionChanged()
{
   QList<QTreeWidgetItem*> selected_items = ui->side_bar->selectedItems();
   if( selected_items.size() )
   {
      if( selected_items[0]->type() == ContactItem )
      {
          auto con_id = selected_items[0]->data(0, ContactIdRole ).toInt();
          openContactGui(con_id);
      }
      else if( selected_items[0]->type() == IdentityItem )
      {
          selectIdentityItem( selected_items[0] );
      }
      else if( selected_items[0] == _contacts_root )
      {
          showContacts();
      }
      else if( selected_items[0] == _mailboxes_root )
      {
      }
      /*
      else if( selected_items[0] == _identities_root )
      {
      }
      */
      else if( selected_items[0] == _inbox_root )
      {
          ui->widget_stack->setCurrentWidget( ui->inbox_page );
      }
      else if( selected_items[0] == _drafts_root )
      {
          ui->widget_stack->setCurrentWidget( ui->draft_box_page );
      }
      else if( selected_items[0] == _sent_root )
      {
          ui->widget_stack->setCurrentWidget( ui->sent_box_page );
      }
   }
}
示例#3
0
文件: main.c 项目: lucasclarim/gen04
int main (int argc, char *argv[]){
	char logname[50];
	if(argc == 1){
		strcpy(logname,"log.txt");
	}else{
		strcpy(logname,argv[1]);
	}
	logfile = fopen(logname,"w");
	
	// Criação do socket servidor (codigo utilizado do exemplo fornecido pelo professor)
    server_socket = socket(AF_INET , SOCK_STREAM , 0);
    if (server_socket == -1){
        printf("Impossivel Criar Servidor. Fim de Execucao.");
        exit(0);
    }
	
    //Prepare the sockaddr_in structure
    server.sin_family = AF_INET;
    server.sin_addr.s_addr = INADDR_ANY;
    server.sin_port = htons(12350); // Porta de operaçao do sistema escolhida aleatoriamente

    //Bind
    if( bind(server_socket,(struct sockaddr *)&server , sizeof(server)) < 0){
        //print the error message
        perror("Bind failed. Error");
        exit(0);
    }
    //Fim da criação do socket
	
    //Thread para esperar alguma conexão (servirá para mensagens e para ping)
    pthread_t connectionReceiver;    
    if( pthread_create(&connectionReceiver , NULL ,  fconnectionReceiver , (void*)(intptr_t)server_socket) < 0){
		perror("Erro na criaçao da tread");
    }
	
	int i;
	
	// Inicializar lista de contatos vazia
	for(i=0;i<MAX_CONTACTS;i++){lista[i].validade = 0;}
	
	
	/* Menu - exibição fixa que sempre mostra todos contatos do usuário, se existem mensagens e as opções disponíveis
	Para verificar se houve alteração nos status da tela o usuário pode usar a opção atualizar
	*/
	int loop = 1;
	int select;
	int selectid;
	char message[MAX_MSG_LENGHT];
	while(loop == 1){
		fflush(stdin);
		showContacts();
		printf("\n(1) Adicionar Contato\n(2) Excluir Contato\n(3) Enviar Mensagem\n(4) Enviar Mensagem em Grupo\n(5) Ler Caixa de Entrada (%d novas)\n(6) Atualizar\n(7) Sair         Selecione uma opcao: ",n_messages);
		scanf("%d",&select);
		switch(select){
			case 1:
				addContact();
				break;
			case 2:
				printf("Digite a ID do contato para deletar ou -1 para cancelar: ");
				fflush(stdin);
				scanf("%d",&selectid);
				if(selectid == -1){ break;}
				lista[selectid].validade = 0;
				close(lista[selectid].socket);
				break;
			case 3:
				printf("Digite a ID do contato para envio ou -1 para cancelar: ");
				fflush(stdin);
				scanf("%d",&selectid);
				if(selectid == -1){ break;}
				printf("Digite a mensagem: ");
				fflush(stdin);
				getchar();
				fgets(message,4096,stdin);
				sendMessage(selectid,message);
				break;
			case 4:
				sendGroupMessage();
				break;
			case 5:
				readInbox();
				break;
			case 6:
				// Atualizar apenas exibe novamente o menu atualizando a lista
				break;
			case 7:
				loop = 0;
				break;
			default:
				printf("Opção Invalida.");
				break;
		}
		
	}
	// Encerra Instancias
	fclose(logfile);
	close(server_socket);
	for(i=0;i<MAX_CONTACTS;i++){close(lista[i].socket);}
    exit(0);
}