summaryrefslogtreecommitdiff
path: root/noncore/multimedia/camera/mainwindow.cpp
Side-by-side diff
Diffstat (limited to 'noncore/multimedia/camera/mainwindow.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/camera/mainwindow.cpp36
1 files changed, 34 insertions, 2 deletions
diff --git a/noncore/multimedia/camera/mainwindow.cpp b/noncore/multimedia/camera/mainwindow.cpp
index 7080e63..34ebe9e 100644
--- a/noncore/multimedia/camera/mainwindow.cpp
+++ b/noncore/multimedia/camera/mainwindow.cpp
@@ -19,9 +19,12 @@
#include <qvbox.h>
#include <qcombobox.h>
+#include <qcursor.h>
#include <qdatastream.h>
-#include <qpushbutton.h>
#include <qlabel.h>
+#include <qpopupmenu.h>
+#include <qpushbutton.h>
+#include <qmessagebox.h>
#include <qdirectpainter_qws.h>
#include <qpe/resource.h>
#include <qpe/qcopenvelope_qws.h>
@@ -34,6 +37,21 @@
CameraMainWindow::CameraMainWindow( QWidget * parent, const char * name, WFlags f )
:QMainWindow( parent, name, f )
{
+ if ( !ZCameraIO::instance()->isOpen() )
+ {
+ QVBox* v = new QVBox( this );
+ v->setMargin( 10 );
+ QLabel* l1 = new QLabel( v );
+ l1->setPixmap( Resource::loadPixmap( "camera/error" ) );
+ QLabel* l2 = new QLabel( v );
+ l2->setText( "<b>Sorry. could not detect your camera :-(</b><p>"
+ "* Is the sharpzdc_cs module loaded ?<br>"
+ "* Is /dev/sharpzdc read/writable ?<p>" );
+ connect( new QPushButton( "Exit", v ), SIGNAL( clicked() ), this, SLOT( close() ) );
+ setCentralWidget( v );
+ return;
+ }
+
_rotation = 270; //TODO: grab these from the actual settings
preview = new PreviewWidget( this, "camera preview widget" );
@@ -46,6 +64,7 @@ CameraMainWindow::CameraMainWindow( QWidget * parent, const char * name, WFlags
connect( _sysChannel, SIGNAL( received( const QCString&, const QByteArray& ) ),
this, SLOT( systemMessage( const QCString&, const QByteArray& ) ) );
+ connect( preview, SIGNAL( contextMenuRequested() ), this, SLOT( showContextMenu() ) );
};
@@ -67,7 +86,9 @@ void CameraMainWindow::systemMessage( const QCString& msg, const QByteArray& dat
{
case 270: preview->resize( QSize( 240, 288 ) ); break;
case 180: preview->resize( QSize( 320, 208 ) ); break;
- default: assert( 0 ); // not yet handled
+ default: QMessageBox::warning( this, "opie-camera",
+ "This rotation is not supported.\n"
+ "Supported are 180° and 270°" );
}
}
}
@@ -87,3 +108,14 @@ void CameraMainWindow::changeZoom( int zoom )
ZCameraIO::instance()->setCaptureFrame( 240, 160, z );
}
+
+void CameraMainWindow::showContextMenu()
+{
+ QPopupMenu m( this );
+ m.insertItem( "Item 1" );
+ m.insertItem( "Item 1" );
+ m.insertItem( "Item 1" );
+ m.insertItem( "Item 1" );
+ m.exec( QCursor::pos() );
+}
+