示例#1
0
/*!
    Creates a new QWorldmapDialog with parent \a parent.
*/
QWorldmapDialog::QWorldmapDialog(QWidget* parent)
:   QDialog(parent),
    realResult(0),
    mMap(0),
    mZone(),
    reallyDone(0)
{
    qLog(Time) << __PRETTY_FUNCTION__;


    setWindowTitle( tr( "Select Time Zone" ) );
    QVBoxLayout *bl = new QVBoxLayout(this);
    mMap = new QWorldmap(this);

    bl->addWidget( mMap );
    bl->setSpacing(0);
    bl->setMargin(0);

    connect(mMap, SIGNAL(newZone(QTimeZone)),
            this, SLOT(selected(QTimeZone)));

    connect(mMap, SIGNAL(selectZoneCanceled()),
            this, SLOT(cancelled()));

    if( Qtopia::mousePreferred()) {
        mMap->setFocus();
        QSoftMenuBar::setLabel(this, Qt::Key_Back, QSoftMenuBar::Select);
    } else {
        QSoftMenuBar::setLabel(this, Qt::Key_Back, QSoftMenuBar::Cancel);
    }
}
示例#2
0
WorldTime::WorldTime( QWidget *parent,
                      Qt::WFlags fl )
    : QWidget( parent, fl )
{
#ifdef Q_WS_QWS
    setWindowTitle(tr("World Time"));
#endif
    while (listCities.count())
    {
        delete listCities.takeLast();
    }
    while (listTimes.count())
    {
        delete listTimes.takeLast();
    }

    float dpi = QApplication::desktop()->screen()->logicalDpiY();
    QFont font = QApplication::font();
//     qWarning()<<"DPI:"<<dpi;

    if(dpi < 100) {
        mMode = Minimal;
        setFont(font);
        maxVisibleZones = 3;
    } else if(dpi < 200) {
        mMode = Medium;
        font.setPointSize(font.pointSize() - 1);
        setFont(font);
        maxVisibleZones = 5;
    } else {
        mMode = Tall;
        maxVisibleZones = 4;
    }

    isEditMode = false;

    int columns/*,rows*/;
    columns = 3;/*rows = 3;*/


    // Don't need a select softkey for touchscreen phones as it does nothing
    if ( Qtopia::mousePreferred() )
        QSoftMenuBar::setLabel( this, Qt::Key_Select, QSoftMenuBar::NoLabel );

    // first, work out current number of columns?
    gl = new QGridLayout(this);
    frmMap = new QWorldmap(this);
    QSizePolicy sp = frmMap->sizePolicy();

    if ( qApp->desktop()->width() < qApp->desktop()->height() ) {
        sp.setHeightForWidth(true);
    }

    frmMap->setSizePolicy(sp);
    gl->addWidget(frmMap, 0, 0, 0, columns, Qt::Alignment(Qt::AlignTop));

    for(int i=0; i < maxVisibleZones + 1; i++) {
        gl->setRowStretch(i, 1);
    }

    gl->setColumnStretch(1,4);
    int goodWidth = qApp->desktop()->width() / 2 + 5;

    for (int i = 0; i < maxVisibleZones; i++) {

        listCities.append(new QPushButton(this));
        listCities.at(i)->setFixedWidth(goodWidth );
        if(mMode == Medium)  listCities.at(i)->setMaximumHeight(20);

        listCities.at(i)->setCheckable(true);

        connect(listCities.at(i), SIGNAL(clicked()),
                this, SLOT(slotSetZone()));

        listTimes.append(new CityInfo(this));

        gl->addWidget( listCities.at(i), i + 3, 0 );
        gl->addWidget( listTimes.at(i), i + 3, 1, Qt::Alignment(Qt::AlignVCenter) | Qt::AlignHCenter);
    }


    QMenu *contextMenu = QSoftMenuBar::menuFor(this);

    QAction *a = new QAction(QIcon(":icon/edit"),
                             tr("Select City"), this);
    connect(a, SIGNAL(triggered()), this, SLOT(beginNewTz()));
    contextMenu->addAction(a);
    contextMenu->addSeparator();

    gl->setSpacing(4);
    gl->setMargin(4);

    readInTimes();
    changed = false;
    QObject::connect( qApp, SIGNAL(clockChanged(bool)),
                      this, SLOT(showTime()));

    // now start the timer so we can update the time quickly every second
    timerEvent( 0 );

    frmMap->setContinuousSelect(true);

    connect( frmMap, SIGNAL(newZone(QTimeZone) ),
             this, SLOT( slotNewTz(QTimeZone)));

    if( Qtopia::mousePreferred()) {
        connect( frmMap, SIGNAL(buttonSelected()),
                 this, SLOT(selected()));
    }
    connect( frmMap, SIGNAL(selectZoneCanceled()),
             this, SLOT(slotNewTzCancelled()));

    frmMap->setFocus();
    QTimer::singleShot(0,this,SLOT(slotNewTzCancelled()));
}