コード例 #1
0
QVariant DashboardWindowContainer::itemChange(GraphicsItemChange change, const QVariant& value)
{
	if (change == ItemVisibleHasChanged) {

		bool val = value.toBool();
		if (!val) {

			m_anim.stop();
			m_anim.clear();

			if (!m_pendingDeleteItems.empty()) {

				m_deleteAnim.stop();
				m_deleteAnim.clear();

				DashboardWindow* w;
				Q_FOREACH(w, m_pendingDeleteItems) {
					m_items.removeOne(w);
					Q_EMIT signalWindowsRemoved(w);
					++m_itemsDeleted;
					if (w->removed()) {
						// Window has already been "removed". Just delete it
						delete w;
						continue;
					}
					m_deletedItems.insert(w);
				}
コード例 #2
0
void DashboardWindowContainer::mousePressEvent(QGraphicsSceneMouseEvent* event)
{
	m_anim.stop();
	m_anim.clear();

	m_trackingMouseDirection = true;
	m_vertLockedMovement = true;
	m_seenFlick = false;
	m_dashboardManualDrag = false;

	event->accept();

	m_draggedWindow.clear();

	DashboardWindow* w;
	Q_FOREACH(w, m_items) {
		if (m_pendingDeleteItems.contains(w))
			continue;		
		QRectF r = w->boundingRect();
		r.moveCenter(w->pos());
		if (r.contains(event->pos())) {
			m_draggedWindow = w;
			// check if this is a grouped notification window
			if(w->isManualDragWindow()) {
				if(w->x() == (m_isMenu ? w->boundingRect().width()/2 : 0)) { // check if the window is at its 'resting' position
					int winX = event->pos().x() + (m_isMenu ? 0 : w->boundingRect().width()/2);
					int winY = event->pos().y() - w->pos().y() + w->boundingRect().height()/2;
					if(winX > sDashboardBadgeWidth) {
						m_dashboardManualDrag = true;

						// send the mouse down to the web app side
						Event ev;
						ev.type = Event::PenDown;
						ev.setMainFinger(true);
						ev.x = winX;
						ev.y = winY;
						ev.clickCount = 1;
						ev.modifiers = Event::modifiersFromQt(event->modifiers());
						ev.time = Time::curSysTimeMs();

						w->inputEvent(&ev);
					}
				}
			}
			break;
		}
	}

	// Don't drag a pending delete item
	if (DashboardWindow* w = m_draggedWindow.data()) {
		if (m_pendingDeleteItems.contains(w))
			m_draggedWindow.clear();		
	}
}
コード例 #3
0
ファイル: mainwindow.cpp プロジェクト: Jayteare/TMOTTBG
void MainWindow::on_pushButton_login_clicked()
{
    QString username;
    QString password;
    QSqlQuery qry;
    int counter;

    //PROC - Assign input data to QStrings
    username = ui->usernameInputBox->text();
    password = ui->passwordInputBox->text();
    counter = 0;

    if(!database.isOpen())
    {
        qDebug()<< "Failed to open the database!";
    }
    else
    {
        if(qry.exec("SELECT username, password, admin FROM users WHERE username = '******' and password = MD5('" + password + "')"))
        {
            if(qry.next())
            {
                ui->label_status->setText("Username and password is correct.");

                if(qry.value(2).toBool() == true)
                {
                    // Switch to dashboard
                    DashBoardAdminWindow *dashboardWindow;
                    dashboardWindow = new DashBoardAdminWindow();
                    dashboardWindow->show();
                    qDebug() << "Logged in as Admin";
                }
                else
                {
                    // Switch to dashboard
                    DashboardWindow *dashboardWindow;
                    dashboardWindow = new DashboardWindow();
                    dashboardWindow->show();
                    qDebug() << "Logged in as User";
                }

            }
            else
            {
                ui->label_status->setText("Username and password is not correct.");
            }
        }
    }
}
コード例 #4
0
void DashboardWindow::on_actionOpen_triggered() {
    DashboardWindow *dashboard = DashboardWindow::makeDashboard();
    if (dashboard != nullptr)
        dashboard->show();

}