Example #1
0
AdminMainWidget::AdminMainWidget(LinQedInAdmin* ad,QWidget* parent):QFrame(parent),admin(ad){
    setAttribute(Qt::WA_DeleteOnClose);
    setStyleSheet(GUIStyle::generalStyle());
    mainVerticalLayout=new QVBoxLayout;

    logo=new QLabel;
    GUIStyle::initLogo(logo);
    mainVerticalLayout->addWidget(logo,0,Qt::AlignRight);

    loggedAsAdmin=new QLabel(tr("Modalità amministratore"));
    loggedAsAdmin->setStyleSheet(GUIStyle::headerStyle());
    mainVerticalLayout->addWidget(loggedAsAdmin,0,Qt::AlignCenter);
    mainVerticalLayout->addSpacing(15);

    searchLayout=new QHBoxLayout;
    initUsernameSearch();
    users=new QListWidget;
    users->setHidden(true);
    users->setEditTriggers(users->NoEditTriggers);
    users->setSelectionMode(QAbstractItemView::NoSelection);
    users->setMinimumWidth(450);
    users->setMinimumHeight(430);
    users->setStyleSheet("QListWidget{"+GUIStyle::borderStyle()+"padding:20px;padding-top:5px;}");
    searchLayout->addWidget(users,5,Qt::AlignHCenter | Qt::AlignTop);
    initNameSurnameSearch();
    mainVerticalLayout->addLayout(searchLayout);

    noUsers=new QLabel(tr("Nessun utente nel DB"));
    noUsers->setStyleSheet(GUIStyle::errorLabelStyle());
    mainVerticalLayout->addWidget(noUsers,0,Qt::AlignCenter);

    buttonsLayout=new QHBoxLayout;
    save=new QPushButton(tr("Salva modifiche al DB"));
    save->setCursor(QCursor(Qt::PointingHandCursor));
    save->setMaximumWidth(buttonsMaxWidth);
    connect(save,SIGNAL(clicked()),this,SLOT(saveDB()));
    buttonsLayout->addWidget(save,0,Qt::AlignCenter);
    add=new QPushButton(tr("Aggiungi un nuovo utente"));
    add->setCursor(QCursor(Qt::PointingHandCursor));
    add->setMaximumWidth(buttonsMaxWidth);
    connect(add,SIGNAL(clicked()),this,SLOT(addUserRequest()));
    buttonsLayout->addWidget(add,0,Qt::AlignCenter);
    logout=new QPushButton(tr("Logout"));
    logout->setCursor(QCursor(Qt::PointingHandCursor));
    connect(logout,SIGNAL(clicked()),this,SLOT(logoutRequest()));
    logout->setMaximumWidth(buttonsMaxWidth);
    buttonsLayout->addWidget(logout,0,Qt::AlignCenter);
    mainVerticalLayout->addLayout(buttonsLayout);

    populateList(admin->allUsers());
    setLayout(mainVerticalLayout);

    QShortcut *save=new QShortcut(QKeySequence("Ctrl+S"),this);
    connect(save,SIGNAL(activated()),this,SLOT(saveDB()));
}//AdminMainWidget
Example #2
0
doubanFM::doubanFM(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::doubanFM)
{
    qDebug() << Q_FUNC_INFO;
    ui->setupUi(this);


    currentSongIndex = 0;
    pauseState = false;

    _channelListWidget = new channelList(this);
    _channelListWidget->setchannelId(currentChannelId);
    _channelListWidget->move(-_channelListWidget->getInvisibleWidth(),this->geometry().y());

    _pauseMaskWidget = new pauseMaskWidget(this);
    _pauseMaskWidget->move(250,0);
    _pauseMaskWidget->setVisible(false);


    _loginwidget = new doubanLogin(this);
    _loginwidget->move(this->geometry().x(),-_loginwidget->geometry().height());

    _mediaObject = new Phonon::MediaObject(this);
    _audioOutput = new Phonon::AudioOutput(this);
    Phonon::createPath(_mediaObject,_audioOutput);
    ui->seekSlider->setMediaObject(_mediaObject);


    albumImageManager = new QNetworkAccessManager(this);
    _mydouban = new Douban(this);

    readSettings();
    qDebug() << "read setting" << _mydouban->hasLogin();
    if(_mydouban->hasLogin())
    {
        ui->userLoginButton->setToolTip(tr("click to logout"));
        ui->userLabel->setText(_mydouban->getDoubanUser().name);
    }
    else
    {
        ui->userLoginButton->setToolTip(tr("click to login"));
        ui->userLabel->setText(tr("Logout"));
    }

    nextShortCut = new QxtGlobalShortcut(QKeySequence("Alt+s"),this);
    pauseShortCut = new QxtGlobalShortcut(QKeySequence("Alt+p"),this);
    rateShortCut = new QxtGlobalShortcut(QKeySequence("Alt+r"),this);
    trashShortCut = new QxtGlobalShortcut(QKeySequence("Alt+t"),this);

    connect(nextShortCut,SIGNAL(activated()),this,SLOT(onSkipButtonClicked()));
    connect(pauseShortCut,SIGNAL(activated()),this,SLOT(onPauseButtonClicked()));
    connect(rateShortCut,SIGNAL(activated()),this,SLOT(onRateButtonClicked()));
    connect(trashShortCut,SIGNAL(activated()),this,SLOT(onTrashButtonClicked()));


    //connect the mainwidget signals and the slots
    connect(ui->volumeSlider,SIGNAL(valueChanged(int)),this,SLOT(onVolumneChange(int)));
    connect(ui->pauseButton,SIGNAL(clicked()),this,SLOT(onPauseButtonClicked()));
    connect(ui->userLoginButton,SIGNAL(clicked()),this,SLOT(onLoginButtonClicked()));
    connect(_mediaObject,SIGNAL(tick(qint64)),this,SLOT(playTick(qint64)));
    connect(albumImageManager,SIGNAL(finished(QNetworkReply*)),this,SLOT(receiveAlbumImage(QNetworkReply*)));
    connect(this,SIGNAL(albumImageRequest(QString)),this,SLOT(onAlbumImage(QString)));
    connect(ui->rateSongButton,SIGNAL(clicked()),this,SLOT(onRateButtonClicked()));
    connect(ui->nextSongButton,SIGNAL(clicked()),this,SLOT(onSkipButtonClicked()));
    connect(ui->byeSongButton,SIGNAL(clicked()),this,SLOT(onTrashButtonClicked()));
    connect(_mediaObject,SIGNAL(currentSourceChanged(Phonon::MediaSource)),this,SLOT(sourceChanged(Phonon::MediaSource)));
    connect(_mediaObject,SIGNAL(stateChanged(Phonon::State,Phonon::State)),this,SLOT(stateChanged(Phonon::State,Phonon::State)));

//    connect the mainwidget signals and the slots of other widget
    connect(this,SIGNAL(sendlogoutRequest()),_mydouban,SLOT(logoutRequest()));
    connect(this,SIGNAL(sendSongListRequest(qint32,quint32,double)),_mydouban,SLOT(newSongListRequest(qint32,quint32,double)));
    connect(this,SIGNAL(sendSkipSongRequest(qint32,quint32,double)),_mydouban,SLOT(skipSongRequest(qint32,quint32,double)));
    connect(this,SIGNAL(sendRateSongRequest(qint32,quint32,double,bool)),_mydouban,SLOT(rateSongRequest(qint32,quint32,double,bool)));
    connect(this,SIGNAL(sendEndSongRequest(qint32,quint32,double)),_mydouban,SLOT(endSongRequest(qint32,quint32,double)));
    connect(this,SIGNAL(sendByeSongRequest(qint32,quint32,double)),_mydouban,SLOT(byeSongRequest(qint32,quint32,double)));

//  connect the signals of other widget and the mainwidget slot
    connect(_mydouban,SIGNAL(loginSucceed(DoubanUser)),this,SLOT(loginSucceed(DoubanUser)));
    connect(_mydouban,SIGNAL(sendSongList(QList<DoubanFMSong>)),this,SLOT(receiveSongList(QList<DoubanFMSong>)));
    connect(_mydouban,SIGNAL(sendRateSong(bool)),this,SLOT(receiveRateSong(bool)));
    connect(_mydouban,SIGNAL(sendSkipSong(bool)),this,SLOT(receiveSkipSong(bool)));
    connect(_mydouban,SIGNAL(sendByeSong(bool)),this,SLOT(receiveByeSong(bool)));
    connect(_mydouban,SIGNAL(sendEndSong(bool)),this,SLOT(receiveEndSong(bool)));
    connect(_mydouban,SIGNAL(sendChannelList(QList<DoubanChannel>,bool)),this,SLOT(receiveChannelList(QList<DoubanChannel>,bool)));
    connect(_mydouban,SIGNAL(sendLogoutSucceed(bool)),this,SLOT(logoutSucceed(bool)));
    connect(_pauseMaskWidget,SIGNAL(mousePressed()),this,SLOT(pauseMaskWidgetPressed()));
    connect(_channelListWidget,SIGNAL(channelChanged(qint32)),this,SLOT(receiveChannelChange(qint32)));


    //connect the other widget signal and slots
    connect(_mydouban,SIGNAL(captchaImageLoad(QPixmap)),_loginwidget,SLOT(onCaptchaImageLoad(QPixmap)));
    connect(_mydouban,SIGNAL(loginFailed(QString)),_loginwidget,SLOT(onLoginFailed(QString)));
    connect(_mydouban,SIGNAL(sendChannelList(QList<DoubanChannel>,bool)),_channelListWidget,SLOT(onReceiveChannelList(QList<DoubanChannel>,bool)));
    connect(_loginwidget,SIGNAL(loginRequest(QString,QString,QString)),_mydouban,SLOT(loginRequest(QString,QString,QString)));

    _mydouban->channelListRequest();
}
Example #3
0
int clientConnection(int* cli_sock)
{

	int r_size;
	int control;
	char* firstCommand;
	int firstComm,secondComm;

	char* user = malloc(MAX_USERNAME_LENGTH);
	char* password = malloc(MAX_PASSWORD_LENGTH);

	firstCommand=malloc(ANSWER_LENGTH);	

	//Client should login

	/*do {
		if ((r_size = read(cli_sock, user, MAX_USERNAME_LENGTH)) == -1){
			perror("Read error");
		}

		if ((r_size = read(cli_sock, password, MAX_PASSWORD_LENGTH)) == -1){
			perror("Read error");
		}


		/*if ((control = write(cli_sock, buff, r_size)) == -1){
			perror("Write error");
		}

	}while (r_size > 0);

	if(checkUserLogin(user,password)==1)
		puts("User Logged");
	else
		puts("Bad Login");*/

	
	//Si mette in attesa del comando da parte del client

	do{
		puts("Waiting for client first command");
		read(cli_sock, firstCommand, CLIENT_COMMAND_LENGTH);
		
		#ifdef DEBUG
		puts("Comando preso in input:");
		puts(firstCommand);
		#endif

	} while (getClientFirstCommand(firstCommand)==-1);


	
	if(firstComm=='0')
	{
		//Client Registration
		if(registrationRequest(cli_sock)==-1)
			puts("Registrazione al servizio fallita");
		else
			puts("Registrazione al servizio avvenuta con successo");

		
	}
	else if(firstComm=='1')
	{
		//Client login

		if(loginRequest(cli_sock)==-1)
			puts("Login al servizio falita");
		else
			puts("Login al servizio avvenuta con successo");
	}

	
	do{
		puts("Waiting for client second command");
		read(cli_sock, secondComm, CLIENT_COMMAND_LENGTH);
		
		#ifdef DEBUG
		puts("Comando preso in input:");
		puts(secondComm);
		#endif

	} while (getClientSecondCommand(secondComm)==-1);

	if(secondComm=='2')
	{
		//Client Logout
		if(logoutRequest(cli_sock)==-1)
			puts("Logout al servizio fallito");
		else
			puts("Logout al servizio avvenuta con successo");
		
		//Terminates thread

		pthread_exit(-1);

		
	}
	else if(secondComm=='3')
	{
		//Client status 'available'

		if(availableRequest(cli_sock)==-1)
			puts("Aggiornamento di statocdisponibile fallito");
		else
			puts("Aggiornamento di stato disponibile avvenuto con successo");
	}
	else if(secondComm=='4')
	{
		//Client status 'busy'

		if(busyRequest(cli_sock)==-1)
			puts("Aggiornamento di statocdisponibile fallito");
		else
			puts("Aggiornamento di stato occupato avvenuto con successo");
	}
	else if(secondComm=='5')
	{
		//Retrieve available user list

		if(retrieveListRequest(cli_sock)==-1)
			puts("Richiesta lista utenti disponibili al servizio fallita");
		else
			puts("Richeiesta lista utenti disponibili al servizio avvenuta con successo");
	}
	
	
	

	pthread_exit(1);
	
}