TaskCheckBox::TaskCheckBox(SideBarTask* sidebar, int row, QWidget *parent) : QWidget(parent), ui(new Ui::taskWidget), sidebar(sidebar) { this->row = row; ui->setupUi(this); setStyleSheet(TaskCheckBox::defaultCSS); removeTaskBtn = new QPushButton("X"); checkbox = new QCheckBox(); taskName = new QLabel; termDate = new TermDate; priority = new Priority; ui->taskLayout->addWidget(checkbox,1); ui->taskLayout->addWidget(priority, 0, Qt::AlignLeft); ui->taskLayout->addWidget(taskName,10); ui->taskLayout->addWidget(new QLabel("")); ui->taskLayout->addWidget(termDate, 0, Qt::AlignLeft); ui->taskLayout->addWidget(removeTaskBtn, 0, Qt::AlignLeft); QSqlRelationalTableModel* model = Task::getInstance()->getModel(); mapper = new QDataWidgetMapper(this); mapper->setSubmitPolicy(QDataWidgetMapper::ManualSubmit); mapper->setModel(model); mapper->addMapping(taskName, model->fieldIndex("name"), "text"); mapper->addMapping(termDate, model->fieldIndex("termDate")); mapper->addMapping(checkbox, model->fieldIndex("isFinished")); mapper->addMapping(priority, model->fieldIndex("priority")); // priority->setText(QString::number(row)); // DEBUG mapper->setCurrentIndex(row); connect(checkbox, SIGNAL(stateChanged(int)), mapper, SLOT(submit())); connect(this,SIGNAL(editTask(int)), sidebar, SLOT(loadTask(int))); connect(removeTaskBtn, SIGNAL(clicked()), this, SLOT(onRemoveTaskClicked())); }
void CarsEdit::FillTable() { QString str_oper = "SELECT hm_cars.id, hm_cars.name, hm_cars.speed, hm_fuel.name, hm_fuel.id FROM hm_cars INNER JOIN hm_fuel ON hm_cars.fuel_id = hm_fuel.id;"; QSqlQueryModel * model_Oper = new QSqlQueryModel(0); model_Oper->setQuery(str_oper); model_Oper->setHeaderData(1, Qt::Horizontal, QObject::trUtf8("Название автомобиля")); model_Oper->setHeaderData(2, Qt::Horizontal, QObject::trUtf8("Максимальная скорость")); model_Oper->setHeaderData(3, Qt::Horizontal, QObject::trUtf8("Тип топлива")); ui->tableView->setModel(model_Oper); ui->tableView->hideColumn(0); ui->tableView->hideColumn(4); QSqlRelationalTableModel *comboModel = new QSqlRelationalTableModel(0); comboModel->setTable("hm_fuel"); int comboIndex = comboModel->fieldIndex("id"); comboModel->setRelation(comboIndex, QSqlRelation("hm_fuel", "id", "name")); comboModel->select(); QSqlTableModel *comboRelModel = comboModel->relationModel(comboIndex); ui->comboBox->setModel(comboRelModel); ui->comboBox->setModelColumn(comboRelModel->fieldIndex("name")); }
/* ** public: */ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , m_timer(new QBasicTimer) , m_dataProvider(new DataProvider(this)) , m_dialogSettings(0) // Guarded by QPointer , m_dialogAbout(0) // Guarded by QPointer { qDebug() << Q_FUNC_INFO; /* m_dataModel = new QStandardItemModel(this); m_dataModel->setColumnCount(5); */ setupUi(this); /* QStringList labels; labels << tr("Show name") << tr("Episode name") << tr("Season #") << tr("Episode #") << tr("Date"); m_dataModel->setHorizontalHeaderLabels(labels); // showsTableView->setModel(m_dataModel); showsTableView->setModel(DbInterface::instance().readEpisodes()); showsTableView->verticalHeader()->hide(); showsTableView->horizontalHeader()->setResizeMode(QHeaderView::Interactive); showsTableView->horizontalHeader()->setStretchLastSection(true); showsTableView->horizontalHeader()->setCascadingSectionResizes(true); showsTableView->horizontalHeader()->setHighlightSections(true); showsTableView->horizontalHeader()->setMovable(true); srand(QTime::currentTime().toString("hhmmsszzz").toUInt()); // Fill with random stuff for (int i=0; i<30; ++i) { m_dataModel->setItem(i, 0, new QStandardItem(QString("show_%1").arg(i))); m_dataModel->setItem(i, 1, new QStandardItem(QString("episode_%1").arg(i))); m_dataModel->setItem(i, 2, new QStandardItem(QString("%1").arg(rand()%10+1))); m_dataModel->setItem(i, 3, new QStandardItem(QString("%1").arg(rand()%24+1))); QDate rndDate = QDate::currentDate().addDays(i); m_dataModel->setItem(i, 4, new QStandardItem(rndDate.toString("yyyy/MM/dd"))); } */ setWindowTitle(QString("nextShows - v%1").arg(NEXTSHOWS_VERSION)); statusBar()->showMessage(tr("nextShows started"), 1000*3); // TEMPORARY CODE FOR TESTING //////////////////////////////////////////// QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE", "NS_View"); db.setDatabaseName("ns.db"); db.open(); QSqlRelationalTableModel *model = new QSqlRelationalTableModel(this, db); model->setTable("T_Episodes"); model->setRelation(model->fieldIndex("shows_id"), QSqlRelation("T_Shows", "idT_Shows", "ShowName")); model->setSort(model->fieldIndex("Date"), Qt::AscendingOrder); model->select(); QStringList hideFields; hideFields << "idT_Episodes" << "ProdNumber" << "EpisodeCount" << "EpisodeUrl" << "isSpecial"; foreach (QString field, hideFields) { model->removeColumn(model->fieldIndex(field)); }
SideBarTask::SideBarTask(QWidget *parent) : QWidget(parent), ui(new Ui::sideBarTask) { ui->setupUi(this); layout = new QVBoxLayout(); // task course courseDropDown = new QComboBox(); // task type taskType = new TriStateButton("Type: ", "TE","Devoir", "Labo"); // Task name taskName = new QLineEdit(); taskName->setPlaceholderText("Titre de la tache"); // Task description description = new QTextEdit(); description->setPlaceholderText("Description"); description->setSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::MinimumExpanding); description->setMinimumHeight(20); description->setMaximumHeight(100); // task priority priority = new TriStateButton("Priorité: ", "Basse", "Moyenne", "Haute"); // task term termDate = new QDateTimeEdit; termDate->setCalendarPopup(true); hasTerm = new QCheckBox("Echéance"); hasTerm->setChecked(false); connect(hasTerm, SIGNAL(clicked(bool)), termDate, SLOT(setEnabled(bool)) ); termDate->setEnabled(false); // Task Submit btnSubmit = new QPushButton(); btnSubmit->setText("Sauver"); btnSubmit->setDefault(false); btnSubmit->setAutoDefault(true); QSqlRelationalTableModel *model = Task::getInstance()->getModel(); courseIndex = Task::getInstance()->getCourseIndex(); //SQLRelation set dropdown to search course name in DB relModel = model->relationModel(courseIndex); courseDropDown->setModel(relModel); courseDropDown->setModelColumn(relModel->fieldIndex("name")); mapper = new QDataWidgetMapper(this); mapper->setModel(model); mapper->setSubmitPolicy(QDataWidgetMapper::ManualSubmit); mapper->setItemDelegate(new QSqlRelationalDelegate(this)); // Mapping mapper->addMapping(taskName, model->fieldIndex("name")); mapper->addMapping(description, model->fieldIndex("description")); mapper->addMapping(courseDropDown, courseIndex); mapper->addMapping(priority, model->fieldIndex("priority")); mapper->addMapping(taskType, model->fieldIndex("typeId")); mapper->addMapping(termDate, model->fieldIndex("termDate")); // Ajout des widgets au layout layout->addWidget(courseDropDown); layout->addWidget(taskType); layout->addSpacing(10); layout->addWidget(taskName); layout->addWidget(description); layout->addSpacing(10); layout->addWidget(hasTerm); layout->addWidget(termDate); layout->addSpacing(10); layout->addWidget(priority); layout->addWidget(btnSubmit, QDialogButtonBox::AcceptRole); layout->addStretch(); connect(btnSubmit, SIGNAL(clicked()), this , SLOT(submitTask())); mapper->toFirst(); this->setLayout(layout); }