void
MainWindow::addTrackerToList(Backend *newTracker, bool sync)
{
    qDebug() << "Adding tracker to list";
    if (pDetectorProgress != NULL)
    {
        pDetectorProgress->reset();
        pDetectorProgress->hide();
    }

    connect(this, SIGNAL(reloadFromDatabase()),
            newTracker->displayWidget(), SLOT(reloadFromDatabase()));
    connect(this, SIGNAL(setShowOptions(bool,bool,bool,bool)),
            newTracker->displayWidget(), SLOT(setShowOptions(bool,bool,bool,bool)));
    connect(newTracker->displayWidget(), SIGNAL(bugChanged()),
            this, SLOT(toggleButtons()));
    int newIndex = ui->trackerTab->insertTab(0, newTracker->displayWidget(), newTracker->name());
    pSearchTab->addTracker(newTracker);
    filterTable();

    QString iconPath = QDesktopServices::storageLocation(QDesktopServices::DataLocation);
    iconPath.append(QDir::separator()).append("entomologist");
    iconPath.append(QDir::separator()).append(QString("%1.png").arg(newTracker->name()));
    ui->trackerTab->setTabIcon(newIndex, QIcon(iconPath));
    ui->trackerTab->setCurrentIndex(newIndex);
    mBackendMap[newTracker->id()] = newTracker;
    mBackendList.append(newTracker);
    if(!QFile::exists(iconPath))
        fetchIcon(newTracker->url(), iconPath, newTracker->username(), newTracker->password());
    if (sync)
        syncTracker(newTracker);
}
void
MainWindow::changelogTriggered()
{
    ChangelogWindow *newWindow = new ChangelogWindow(this);
    newWindow->loadChangelog();
    newWindow->exec();
    delete newWindow;
    filterTable();
}
Beispiel #3
0
void FrmSampling::initModels()
{
    if (tRefSampTec!=0) delete tRefSampTec;

    tRefSampTec = new QSqlRelationalTableModel;
    tRefSampTec->setTable(tr("Ref_Sampling_Technique"));
    tRefSampTec->setRelation(5, QSqlRelation(tr("Ref_Strategy"), tr("ID"), tr("Name")));

    //filter n/a records
    filterTable(tRefSampTec->relationModel(5));

    tRefSampTec->setEditStrategy(QSqlTableModel::OnManualSubmit);
    tRefSampTec->sort(0,Qt::AscendingOrder);
    tRefSampTec->select();

    if (tSampLevels!=0) delete tSampLevels;

    tSampLevels=new QSqlRelationalTableModel();
    tSampLevels->setTable(QSqlDatabase().driver()->escapeIdentifier(tr("Sampled_Levels"),
        QSqlDriver::TableName));
    tSampLevels->setRelation(1, QSqlRelation(tr("Ref_Levels"), tr("ID"), tr("Name")));
    tSampLevels->setRelation(4, QSqlRelation(tr("Ref_Strategy"), tr("ID"), tr("Name")));

    //filter n/a records
    filterTable(tSampLevels->relationModel(1));
    filterTable(tSampLevels->relationModel(4));

    tSampLevels->setEditStrategy(QSqlTableModel::OnManualSubmit);
    tSampLevels->sort(0,Qt::AscendingOrder);
    tSampLevels->select();

    tSampLevels->setHeaderData(1,Qt::Horizontal, tr("Level"));
    tSampLevels->setHeaderData(2,Qt::Horizontal, tr("Sample size"));
    tSampLevels->setHeaderData(3,Qt::Horizontal, tr("Population size"));
    tSampLevels->setHeaderData(4,Qt::Horizontal, tr("Strategy"));
    tSampLevels->setHeaderData(5,Qt::Horizontal, tr("Description"));
    tSampLevels->setHeaderData(6,Qt::Horizontal, tr("Comments"));

    tRefLevels = new QSqlTableModel;
    tRefLevels->setTable("Ref_Levels");
    tRefLevels->setEditStrategy(QSqlTableModel::OnManualSubmit);
    tRefLevels->sort(0,Qt::AscendingOrder);
    tRefLevels->select();
}
// Whenever the user ticks boxes in the Show menu, this fires
void
MainWindow::showActionTriggered()
{
    // Save the new state
    QSettings settings("Entomologist");
    settings.setValue("show-my-bugs", ui->actionMy_Bugs->isChecked());
    settings.setValue("show-my-reports", ui->actionMy_Reports->isChecked());
    settings.setValue("show-my-ccs", ui->actionMy_CCs->isChecked());
    settings.setValue("show-my-monitored", ui->actionMonitored_Components->isChecked());
    filterTable();
}
Beispiel #5
0
void FrmFrame::initModels()
{
    //Frame
    tRefFrame=new QSqlRelationalTableModel();
    tRefFrame->setTable(QSqlDatabase().driver()->escapeIdentifier(tr("FR_Frame"),
        QSqlDriver::TableName));
    tRefFrame->setRelation(0, QSqlRelation(tr("FR_Frame"), tr("ID"), tr("Name")));
    tRefFrame->sort(0,Qt::AscendingOrder);
    tRefFrame->select();
    filterTable(tRefFrame->relationModel(0));

    //Frame_Time (Physical frame + time frame!)
    tFrameTime=new QSqlTableModel();
    tFrameTime->setTable(QSqlDatabase().driver()->escapeIdentifier(tr("FR_Time"),
        QSqlDriver::TableName));
    tFrameTime->setEditStrategy(QSqlTableModel::OnManualSubmit);
    tFrameTime->sort(0,Qt::AscendingOrder);
    tFrameTime->select();
}
// This slot is connected to a signal in each Backend object,
// so we know when we're done syncing and can let the user
// interact with the application again
void
MainWindow::bugsUpdated()
{
    mSyncRequests--;
    qDebug() << "bugsUpdated: mSyncRequests is now: " << mSyncRequests;

    if (mSyncRequests == 0)
    {
        if (mSyncPosition == mBackendList.size())
        {
            filterTable();
            mUploading = false;
            stopAnimation();
            notifyUser();
            emit reloadFromDatabase();
        }
        else
        {
            syncNextTracker();
        }
    }
}