📄 gotopage.cpp
字号:
#include "gotopage.h"#include "general/slider.h"#include "general/style.h"#include <qapplication.h>#include <qpainter.h>#include <qbitmap.h>#include <qgfx_qws.h>#include <qlayout.h>#include <archos/atr.h>#include <archos/screen.h>using namespace archos;GotoPage::GotoPage(int numPages, int page, int cancelSetZoom, QWidget *parent, const char *name) : QWidget( parent, name, QWidget::WStyle_Customize | QWidget::WStyle_NoBorder | WRepaintNoErase | QWidget::WStyle_StaysOnTop) , m_numPages(numPages) , m_page(page){ int dw = qt_screen->width(); int dh = qt_screen->height(); int x1 = 10; int x2 = dw - 20; QString path = AStyle::iconpath + Screen::prefix(); m_slider = new Slider(x2 - x1, this); QVBoxLayout *v1 = new QVBoxLayout(this); v1->setMargin(5); v1->addWidget(m_slider); m_slider->setFocus(); int optionalHeight = 0; if ( cancelSetZoom ) { QFont font = qApp->font(); if (Screen::mode() == wqvga || Screen::mode() == qvga) { font.setPointSize(16); } else if ( Screen::mode() == wvga ) { font.setPointSize(22); } else { // tv font.setPointSize(18); } setFont(font); } move(x1, dh / 2 - m_slider->sizeHint().height() / 2); setGeometry(x1, dh / 2 - m_slider->sizeHint().height() / 2, x2, m_slider->sizeHint().height() + optionalHeight + 10 ); connect(m_slider, SIGNAL(valueChanged(int)), this, SLOT(updateValue(int)));}GotoPage::~GotoPage(){ delete m_slider;}void GotoPage::gotoPageProxy(int x){ emit gotoPage(x - 1);}void GotoPage::setValues(int num, int current){ m_numPages = num; m_page = current; m_slider->setValues(m_page, m_numPages);}void GotoPage::paintEvent(QPaintEvent *){ QPainter p(this); AStyle::get()->drawPanel(&p, rect());}void GotoPage::aborted(void){ hide(); emit closed();}void GotoPage::acked(void){ m_page = m_slider->getValue() - 1; emit gotoPage(m_page); emit closed(); hide();}void GotoPage::keyReleaseEvent(QKeyEvent *e){ switch(e->key()) { case Key_Return: acked(); break; case Key_F2: aborted(); break; default: break; }}void GotoPage::showEvent(QShowEvent*){ updateMask();}void GotoPage::updateMask(){ QBitmap mask(size()); { QPainter p(&mask); AStyle::get()->drawPanel(&p, rect()); } setMask(mask); }void GotoPage::inc(){ if (m_page + 1 <= m_numPages) { m_page++; } update();}bool GotoPage::eventFilter(QObject *target, QEvent *event){ if ( event->type() == QEvent::KeyPress || event->type() == QEvent::KeyRelease ) { QKeyEvent *ke = (QKeyEvent*)event; if ( ke->key() == Key_Left || ke->key() == Key_Right ) { return QApplication::sendEvent(m_slider, event); } } return QWidget::eventFilter(target, event);}void GotoPage::dec(){ if (m_page - 1 > 0) { m_page--; } update();}int GotoPage::selectedPage(){ return m_page;}void GotoPage::updateValue(int v){ m_page = v;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -