Пример #1
0
    void RunnerGUI::addTestResult(const char *name, Tester *test)
    {
        QStringList scopes = QStringList::split("::", name);
        QString suite = scopes[0];

        // find the suite item
        Q3ListViewItem *item = 0L;
        for ( uint i = 0; i < scopes.count(); ++i )
            item = getItem(scopes[i], item);

        if ( test->inherits("KUnitTest::SlotTester") )
        {
            SlotTester *sltest = static_cast<SlotTester*>(test);
            TestResultsListIteratorType it(sltest->resultsList());
            Q3ListViewItem *slotItem = 0L;
            for ( ; it.current(); ++it)
            {
                slotItem = getItem(it.currentKey(), item);
                setSummary(slotItem, it.current());
            }
        }
        else
            setSummary(item, test->results());

        fillResultsLabel();
        m_testerWidget->progressBar()->setProgress(m_testerWidget->progressBar()->progress() + 1);
    }
Пример #2
0
void tst_storage::tst_alldayUtc()
{
  // test event saved with UTC time
  auto event = KCalCore::Event::Ptr(new KCalCore::Event);
  QDate startDate(2013, 12, 1);
  event->setDtStart(KDateTime(startDate, QTime(), KDateTime::UTC));
  event->setAllDay(true);
  event->setSummary("test event utc");

  QCOMPARE(event->allDay(), true);

  m_calendar->addEvent(event, NotebookId);
  m_storage->save();
  QString uid = event->uid();
  reloadDb();

  auto fetchedEvent = m_calendar->event(uid);
  QVERIFY(fetchedEvent.data());
  QVERIFY(fetchedEvent->dtStart().isUtc());

  KDateTime localStart = fetchedEvent->dtStart().toLocalZone();
  QVERIFY(localStart.time() == QTime(2, 0));

  KDateTime localEnd = fetchedEvent->dtEnd().toLocalZone();
  QVERIFY(localEnd.time() == QTime(2, 0));

  QCOMPARE(localEnd.date(), localStart.date().addDays(1));
}
Пример #3
0
    void RunnerGUI::setSummary(Q3ListViewItem *item, TestResults *res)
    {
        if ( item == 0L ) return;

        bool ok;

        int val = item->text(g_finishedColumn).toInt(&ok); if (!ok) val = 0;
        item->setText(g_finishedColumn, QString::number(val + res->testsFinished()));

        val = item->text(g_skippedColumn).toInt(&ok); if (!ok) val = 0;
        item->setText(g_skippedColumn, QString::number(val + res->skipped()));

        val = item->text(g_passedColumn).toInt(&ok); if (!ok) val = 0;
        item->setText(g_passedColumn, QString::number(val + res->passed()));

        val = item->text(g_failedColumn).toInt(&ok); if (!ok) val = 0;
        item->setText(g_failedColumn, QString::number(val + res->errors()));

        val = item->text(g_xfailedColumn).toInt(&ok); if (!ok) val = 0;
        item->setText(g_xfailedColumn, QString::number(val + res->xfails()));

        val = item->text(g_xpassedColumn).toInt(&ok); if (!ok) val = 0;
        item->setText(g_xpassedColumn, QString::number(val + res->xpasses()));

        bool passed = (item->text(g_failedColumn).toInt(&ok) + item->text(g_xfailedColumn).toInt(&ok)) == 0;
        item->setPixmap(g_nameColumn, passed ? SmallIcon("dialog-ok") : SmallIcon("dialog-cancel") );

        setSummary(item->parent(), res);
    }
Пример #4
0
void
DiarySidebar::setRide(RideItem *ride)
{
    _ride = ride;

    multiCalendar->setRide(ride);
    setSummary();
}
Пример #5
0
void
DiarySidebar::refresh()
{
    if (!isHidden()) {
        multiCalendar->refresh();
        setSummary();
        repaint();
    }
}
Пример #6
0
void ResultViewPic::doSetTotalCount( int c )
{
  Q_UNUSED( c );

  calculatePieces();

  mCurrentPic.fill();
  mPicLabel->setPixmap( mCurrentPic );

  setSummary();
}
Пример #7
0
void tst_storage::tst_allday()
{
  auto event = KCalCore::Event::Ptr(new KCalCore::Event);

  QFETCH(QDate, startDate);
  QFETCH(int, days);

  event->setDtStart(KDateTime(startDate, QTime(), KDateTime::ClockTime));
  event->setAllDay(true);
  if (days) {
    event->setDtEnd(KDateTime(startDate.addDays(days), QTime(), KDateTime::ClockTime));
  }
  event->setSummary("test event");

  QCOMPARE(event->allDay(), true);
  QCOMPARE(event->dtStart().date(), startDate);

  if (days) {
    QCOMPARE(event->dateEnd(), startDate.addDays(days));
    QCOMPARE(event->hasEndDate(), true);
    QVERIFY(event->dateEnd() > event->dtStart().date());
  } else {
    QCOMPARE(event->dateEnd(), startDate);
    QCOMPARE(event->hasEndDate(), false);
  }

  m_calendar->addEvent(event, NotebookId);
  m_storage->save();
  QString uid = event->uid();
  reloadDb();

  auto fetchedEvent = m_calendar->event(uid);
  QVERIFY(fetchedEvent.data());
  QCOMPARE(fetchedEvent->allDay(), true);
  QCOMPARE(fetchedEvent->dtStart().date(), startDate);
  QTime time = fetchedEvent->dtStart().time();
  QVERIFY(time == QTime() || time == QTime(0, 0));

  QTime localTime = fetchedEvent->dtStart().toLocalZone().time();
  QVERIFY(localTime == QTime() || localTime == QTime(0, 0));

  if (days) {
    QCOMPARE(fetchedEvent->dateEnd(), startDate.addDays(days));
    QCOMPARE(fetchedEvent->hasEndDate(), true);
    QVERIFY(event->dateEnd() > event->dtStart().date());
  } else {
    QCOMPARE(fetchedEvent->dateEnd(), startDate);
    QCOMPARE(fetchedEvent->hasEndDate(), false);
  }
}
Пример #8
0
ResultViewPic::ResultViewPic( QWidget *parent )
  : ResultView( parent )
{
  QBoxLayout *topLayout = new QVBoxLayout( this );
  
  mSummaryLabel = new QLabel( this  );
  topLayout->addWidget( mSummaryLabel );
  mSummaryLabel->setAlignment( AlignCenter );

  mPicLabel = new QLabel( this  );
  topLayout->addWidget( mPicLabel, 1 );
  mPicLabel->setAlignment( AlignCenter );

  setSummary();
}
Пример #9
0
void
DiarySidebar::configChanged()
{
    // GCColor stylesheet is too generic, we ONLY want to style the container
    // and NOT its children. This is why stylesheets on widgets is a stoopid idea
    QColor bgColor = GColor(CPLOTBACKGROUND);
    QColor fgColor = GCColor::invertColor(bgColor);
    summaryWidget->setStyleSheet(QString("QWidget#summaryWidget { color: %1; background: %2; }")
                                .arg(fgColor.name()).arg(bgColor.name())); // clear any shit left behind from parents (Larkin ?)

    // now apply
    multiCalendar->refresh();

    // and summary .. forgetting what we already prepared
    from = to = QDate();
    setSummary();
}
Пример #10
0
void ResultViewPic::doSetCurrentCount( int c )
{
  Q_UNUSED( c );

  if ( c > 0 ) {
    int select = KRandom::number( mPieces.count() );
    Q_ASSERT( select < int( mPieces.count() ) );

    QRect piece = mPieces[ select ];
    QValueList<QRect>::Iterator it = mPieces.at( select );
    mPieces.erase( it );

    showPiece( piece );
  }

  if ( c == totalCount() ) {
    for( unsigned int i = 0; i < mPieces.count(); ++i ) {
      showPiece( mPieces[ i ] );
    }
  }

  setSummary();
}
Пример #11
0
void ResultViewPic::doSetWrongCount( int c )
{
  Q_UNUSED( c );

  setSummary();
}
Пример #12
0
LTMSidebar::LTMSidebar(MainWindow *parent, const QDir &home) : QWidget(parent), home(home), main(parent), active(false)
{
    QVBoxLayout *mainLayout = new QVBoxLayout(this);
    mainLayout->setContentsMargins(0,0,0,0);
    mainLayout->setSpacing(0);
    setContentsMargins(0,0,0,0);

    seasonsWidget = new GcSplitterItem(tr("Date Ranges"), iconFromPNG(":images/sidebar/calendar.png"), this);
    QAction *moreSeasonAct = new QAction(iconFromPNG(":images/sidebar/extra.png"), tr("Menu"), this);
    seasonsWidget->addAction(moreSeasonAct);
    connect(moreSeasonAct, SIGNAL(triggered(void)), this, SLOT(dateRangePopup(void)));

    dateRangeTree = new SeasonTreeView;
    //allDateRanges = new QTreeWidgetItem(dateRangeTree, ROOT_TYPE);
    allDateRanges=dateRangeTree->invisibleRootItem();
    // Drop for Seasons
    allDateRanges->setFlags(Qt::ItemIsEnabled | Qt::ItemIsDropEnabled);
    allDateRanges->setText(0, tr("Date Ranges"));
    dateRangeTree->setFrameStyle(QFrame::NoFrame);
    dateRangeTree->setColumnCount(1);
    dateRangeTree->setSelectionMode(QAbstractItemView::SingleSelection);
    dateRangeTree->header()->hide();
    dateRangeTree->setIndentation(5);
    dateRangeTree->expandItem(allDateRanges);
    dateRangeTree->setContextMenuPolicy(Qt::CustomContextMenu);
#ifdef Q_OS_MAC
    dateRangeTree->setAttribute(Qt::WA_MacShowFocusRect, 0);
#endif
    seasonsWidget->addWidget(dateRangeTree);


    eventsWidget = new GcSplitterItem(tr("Events"), iconFromPNG(":images/sidebar/bookmark.png"), this);
    QAction *moreEventAct = new QAction(iconFromPNG(":images/sidebar/extra.png"), tr("Menu"), this);
    eventsWidget->addAction(moreEventAct);
    connect(moreEventAct, SIGNAL(triggered(void)), this, SLOT(eventPopup(void)));


    eventTree = new QTreeWidget;
    eventTree->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
    //allEvents = new QTreeWidgetItem(eventTree, ROOT_TYPE);
    allEvents = eventTree->invisibleRootItem();
    allEvents->setText(0, tr("Events"));
    eventTree->setFrameStyle(QFrame::NoFrame);
    eventTree->setColumnCount(2);
    eventTree->setSelectionMode(QAbstractItemView::SingleSelection);
    eventTree->header()->hide();
    eventTree->setIndentation(5);
    eventTree->expandItem(allEvents);
    eventTree->setContextMenuPolicy(Qt::CustomContextMenu);
    eventTree->horizontalScrollBar()->setDisabled(true);
    eventTree->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
#ifdef Q_OS_MAC
    eventTree->setAttribute(Qt::WA_MacShowFocusRect, 0);
#endif
    eventsWidget->addWidget(eventTree);

    seasons = parent->seasons;
    resetSeasons(); // reset the season list

    configChanged(); // will reset the metric tree

    splitter = new GcSplitter(Qt::Vertical);
    splitter->addWidget(seasonsWidget);
    splitter->addWidget(eventsWidget);

    GcSplitterItem *summaryWidget = new GcSplitterItem(tr("Summary"), iconFromPNG(":images/sidebar/dashboard.png"), this);

    summary = new QWebView(this);
    summary->setContentsMargins(0,0,0,0);
    summary->page()->view()->setContentsMargins(0,0,0,0);
    summary->page()->mainFrame()->setScrollBarPolicy(Qt::Vertical, Qt::ScrollBarAlwaysOff);
    summary->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
    summary->setAcceptDrops(false);

    summaryWidget->addWidget(summary);

    QFont defaultFont; // mainwindow sets up the defaults.. we need to apply
    summary->settings()->setFontSize(QWebSettings::DefaultFontSize, defaultFont.pointSize());
    summary->settings()->setFontFamily(QWebSettings::StandardFont, defaultFont.family());
    splitter->addWidget(summaryWidget);

    mainLayout->addWidget(splitter);

    splitter->prepare(main->cyclist, "LTM");

    // our date ranges
    connect(dateRangeTree,SIGNAL(itemSelectionChanged()), this, SLOT(dateRangeTreeWidgetSelectionChanged()));
    connect(dateRangeTree,SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(dateRangePopup(const QPoint &)));
    connect(dateRangeTree,SIGNAL(itemChanged(QTreeWidgetItem *,int)), this, SLOT(dateRangeChanged(QTreeWidgetItem*, int)));
    connect(dateRangeTree,SIGNAL(itemMoved(QTreeWidgetItem *,int, int)), this, SLOT(dateRangeMoved(QTreeWidgetItem*, int, int)));
    connect(eventTree,SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(eventPopup(const QPoint &)));
    // GC signal
    connect(main, SIGNAL(configChanged()), this, SLOT(configChanged()));
    connect(seasons, SIGNAL(seasonsChanged()), this, SLOT(resetSeasons()));

    connect(this, SIGNAL(dateRangeChanged(DateRange)), this, SLOT(setSummary(DateRange)));

    // let everyone know what date range we are starting with
    dateRangeTreeWidgetSelectionChanged();

}
QTableSummaryWidgetItem::QTableSummaryWidgetItem(Summary *value) : QTableWidgetItem ()
{
    setSummary(value);
}