summaryrefslogtreecommitdiff
path: root/noncore/graphics/opie-eye/gui
authoralwin <alwin>2004-11-12 15:57:59 (UTC)
committer alwin <alwin>2004-11-12 15:57:59 (UTC)
commite1ed329d0b8be10ac6e019d37b82afcf21990691 (patch) (side-by-side diff)
tree0c84e2c4fd062487932de9add39a083da194cca0 /noncore/graphics/opie-eye/gui
parentde558d6f0bc31f58ffaa894a0236f0d9cb5d73e0 (diff)
downloadopie-e1ed329d0b8be10ac6e019d37b82afcf21990691.zip
opie-e1ed329d0b8be10ac6e019d37b82afcf21990691.tar.gz
opie-e1ed329d0b8be10ac6e019d37b82afcf21990691.tar.bz2
- fixed a bug in docview-lister: different files may have same docview
name. So mapping filenames to docname isn't usefull. - when opie-eye is started from doctab closing the imagewindow closes the application - when a doc-link is changed while opie-eye is running it get the changes, too.
Diffstat (limited to 'noncore/graphics/opie-eye/gui') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/graphics/opie-eye/gui/iconview.cpp64
-rw-r--r--noncore/graphics/opie-eye/gui/iconview.h4
-rw-r--r--noncore/graphics/opie-eye/gui/imageview.cpp15
-rw-r--r--noncore/graphics/opie-eye/gui/imageview.h2
-rw-r--r--noncore/graphics/opie-eye/gui/mainwindow.cpp47
-rw-r--r--noncore/graphics/opie-eye/gui/mainwindow.h3
6 files changed, 98 insertions, 37 deletions
diff --git a/noncore/graphics/opie-eye/gui/iconview.cpp b/noncore/graphics/opie-eye/gui/iconview.cpp
index 948477c..138e661 100644
--- a/noncore/graphics/opie-eye/gui/iconview.cpp
+++ b/noncore/graphics/opie-eye/gui/iconview.cpp
@@ -196,6 +196,7 @@ PIconView::PIconView( QWidget* wid, Opie::Core::OConfig* cfg )
m_iconsize = 32;
m_internalReset = false;
m_customWidget = 0;
+ m_setDocCalled = false;
m_hbox = new QHBox( this );
QLabel* lbl = new QLabel( m_hbox );
@@ -212,10 +213,7 @@ PIconView::PIconView( QWidget* wid, Opie::Core::OConfig* cfg )
m_view->setArrangement( QIconView::LeftToRight );
m_mode = m_cfg->readNumEntry("ListViewMode", 1);
- QString lastView = m_cfg->readEntry("LastView","");
-
if (m_mode < 1 || m_mode>3) m_mode = 1;
-
m_view->setItemTextPos( QIconView::Right );
if (m_mode >1) {
m_view->setResizeMode(QIconView::Adjust);
@@ -227,24 +225,13 @@ PIconView::PIconView( QWidget* wid, Opie::Core::OConfig* cfg )
if (m_iconsize>64)m_iconsize = 64;
calculateGrid();
-
initKeys();
-
loadViews();
- int cc=0;
- for (; cc<m_views->count();++cc) {
- if (m_views->text(cc)==lastView) {
- break;
- }
- }
- if (cc<m_views->count()) {
- m_views->setCurrentItem(cc);
- slotViewChanged(cc);
- } else {
- slotViewChanged(m_views->currentItem());
- }
- connect( m_views, SIGNAL(activated(int)),
- this, SLOT(slotViewChanged(int)) );
+}
+
+void PIconView::setDoccalled(bool how)
+{
+ m_setDocCalled = how;
}
/*
@@ -441,6 +428,30 @@ void PIconView::resetView() {
m_internalReset = false;
}
+void PIconView::polish()
+{
+ odebug << "===\n"
+ << "PIconView::polish()\n"
+ << "====" << oendl;
+ QVBox::polish();
+
+ QString lastView = m_cfg->readEntry("LastView","");
+ int cc=0;
+ for (; cc<m_views->count();++cc) {
+ if (m_views->text(cc)==lastView) {
+ break;
+ }
+ }
+ if (cc<m_views->count()) {
+ m_views->setCurrentItem(cc);
+ slotViewChanged(cc);
+ } else {
+ slotViewChanged(m_views->currentItem());
+ }
+ connect( m_views, SIGNAL(activated(int)),
+ this, SLOT(slotViewChanged(int)) );
+}
+
/*
*swicth view reloadDir and connect signals
*/
@@ -529,15 +540,20 @@ void PIconView::addFiles( const QStringList& lst) {
if (!m_path.isEmpty()) {
pre = m_path+"/";
}
+ QString s = "";
+ int pos;
for (it=lst.begin(); it!= lst.end(); ++it ) {
- m_pix = PPixmapCache::self()->cachedImage( pre+(*it), m_iconsize, m_iconsize );
- _iv = new IconViewItem( m_view, pre+(*it), (*it),m_iconsize );
+ s = (*it);
+ pos = s.find(char(0));
+ m_pix = PPixmapCache::self()->cachedImage( pre+(*it), m_iconsize, m_iconsize );
+ if (pos>-1) {
+ _iv = new IconViewItem( m_view, s.mid(pos+1), s.left(pos),m_iconsize );
+ } else {
+ _iv = new IconViewItem( m_view, pre+(*it), (*it),m_iconsize );
+ }
if (m_mode==3) {
_iv->setTextOnly(true);
_iv->setPixmap(QPixmap());
-
-
-
} else {
if (m_pix) _iv->setPixmap(*m_pix);
}
diff --git a/noncore/graphics/opie-eye/gui/iconview.h b/noncore/graphics/opie-eye/gui/iconview.h
index 78dda58..6e08fd8 100644
--- a/noncore/graphics/opie-eye/gui/iconview.h
+++ b/noncore/graphics/opie-eye/gui/iconview.h
@@ -35,6 +35,8 @@ public:
void resetView();
Opie::Core::OKeyConfigManager* manager();
+ void setDoccalled(bool);
+
signals:
void sig_showInfo( const QString& );
void sig_display(const QString&);
@@ -45,6 +47,7 @@ public slots:
virtual void slotShowPrev();
virtual void slotShowLast();
virtual bool slotShowFirst();
+ virtual void polish();
protected:
void resizeEvent( QResizeEvent* );
@@ -56,6 +59,7 @@ private:
QString prevFileName(bool &isDir)const;
void loadViews();
void calculateGrid(QResizeEvent*e = 0);
+ bool m_setDocCalled:1;
private slots:
void slotDirUp();
diff --git a/noncore/graphics/opie-eye/gui/imageview.cpp b/noncore/graphics/opie-eye/gui/imageview.cpp
index ebdfc60..ac6474c 100644
--- a/noncore/graphics/opie-eye/gui/imageview.cpp
+++ b/noncore/graphics/opie-eye/gui/imageview.cpp
@@ -27,6 +27,7 @@ ImageView::ImageView(Opie::Core::OConfig *cfg, QWidget* parent, const char* name
m_gDisplayType = 0;
m_gPrevNext = 0;
m_hGroup = 0;
+ closeIfHide = false;
}
void ImageView::setMenuActions(QActionGroup*hGroup,QActionGroup*nextprevGroup, QActionGroup*disptypeGroup)
@@ -152,7 +153,19 @@ void ImageView::keyReleaseEvent(QKeyEvent * e)
if (!e || e->state()!=0) {
return;
}
- if (e->key()==Qt::Key_Escape && fullScreen()) emit hideMe();
+ if (e->key()==Qt::Key_Escape) {
+ if (fullScreen()) {
+ emit hideMe();
+ }
+ if (closeIfHide) {
+ QTimer::singleShot(0, qApp, SLOT(closeAllWindows()));
+ }
+ }
+}
+
+void ImageView::setCloseIfHide(bool how)
+{
+ closeIfHide = how;
}
void ImageView::slotShowImageInfo()
diff --git a/noncore/graphics/opie-eye/gui/imageview.h b/noncore/graphics/opie-eye/gui/imageview.h
index 2408211..f1067bb 100644
--- a/noncore/graphics/opie-eye/gui/imageview.h
+++ b/noncore/graphics/opie-eye/gui/imageview.h
@@ -39,6 +39,7 @@ public:
virtual void enableFullscreen();
void stopSlide();
void setMenuActions(QActionGroup*hGroup,QActionGroup*nextprevGroup, QActionGroup*disptypeGroup);
+ void setCloseIfHide(bool);
signals:
void dispImageInfo(const QString&);
@@ -61,6 +62,7 @@ protected:
int m_slideValue;
virtual void focusInEvent ( QFocusEvent * );
QActionGroup *m_gDisplayType,*m_gPrevNext,*m_hGroup;
+ bool closeIfHide:1;
public slots:
virtual void hide();
diff --git a/noncore/graphics/opie-eye/gui/mainwindow.cpp b/noncore/graphics/opie-eye/gui/mainwindow.cpp
index f443ccb..295f93f 100644
--- a/noncore/graphics/opie-eye/gui/mainwindow.cpp
+++ b/noncore/graphics/opie-eye/gui/mainwindow.cpp
@@ -46,6 +46,8 @@ PMainWindow::PMainWindow(QWidget* wid, const char* name, WFlags style)
m_cfg = new Opie::Core::OConfig("opie-eye");
m_cfg->setGroup("main" );
readConfig();
+ m_setDocCalled = false;
+ m_polishDone = false;
m_storage = new StorageInfo();
connect(m_storage, SIGNAL(disksChanged() ),
@@ -419,11 +421,13 @@ void PMainWindow::closeEvent( QCloseEvent* ev ) {
* return from view
* or properly quit
*/
- if ( m_stack->visibleWidget() == m_info ||
- m_stack->visibleWidget() == m_disp ) {
- ev->ignore();
- raiseIconView();
- return;
+ if (!m_setDocCalled) {
+ if ( m_stack->visibleWidget() == m_info ||
+ m_stack->visibleWidget() == m_disp ) {
+ ev->ignore();
+ raiseIconView();
+ return;
+ }
}
if (m_disp && m_disp->fullScreen()) {
/* otherwise opie-eye crashes in bigscreen mode! */
@@ -436,16 +440,16 @@ void PMainWindow::closeEvent( QCloseEvent* ev ) {
void PMainWindow::setDocument( const QString& showImg )
{
- bool first_start = m_disp==0;
-
QString file = showImg;
DocLnk lnk(showImg);
if (lnk.isValid() )
file = lnk.file();
slotDisplay( file );
- if (first_start && m_aFullScreen->isOn()) {
+#if 0
+ if (!m_polishDone) {
QTimer::singleShot(0,this,SLOT(check_view_fullscreen()));
}
+#endif
}
void PMainWindow::check_view_fullscreen()
@@ -689,17 +693,13 @@ void PMainWindow::listviewselected(QAction*which)
{
if (!which || which->isOn()==false) return;
int val = 1;
-// QString name;
if (which==m_aDirName) {
val = 3;
-// name = "opie-eye/opie-eye-textview";
} else if (which==m_aDirShort) {
val = 2;
-// name = "opie-eye/opie-eye-thumbonly";
} else if (which==m_aDirLong) {
val = 1;
-// name = "opie-eye/opie-eye-thumb";
}
emit changeListMode(val);
}
@@ -708,3 +708,26 @@ void PMainWindow::readConfig()
{
autoSave =m_cfg->readBoolEntry("savestatus",true);
}
+
+void PMainWindow::polish()
+{
+ if (m_disp) {
+ odebug << "======================\n"
+ << "Called via setdocument\n"
+ << "======================" << oendl;
+ m_setDocCalled = true;
+ m_view->setDoccalled(true);
+ m_disp->setCloseIfHide(true);
+ } else {
+ m_setDocCalled = false;
+ m_view->setDoccalled(false);
+ }
+ m_polishDone = true;
+ QMainWindow::polish();
+ if (m_setDocCalled) {
+ if (m_aFullScreen->isOn()) {
+ QTimer::singleShot(0,this,SLOT(check_view_fullscreen()));
+ } else if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) {
+ }
+ }
+}
diff --git a/noncore/graphics/opie-eye/gui/mainwindow.h b/noncore/graphics/opie-eye/gui/mainwindow.h
index 465e352..2f54090 100644
--- a/noncore/graphics/opie-eye/gui/mainwindow.h
+++ b/noncore/graphics/opie-eye/gui/mainwindow.h
@@ -58,6 +58,7 @@ public slots:
void setDocument( const QString& );
virtual void slotToggleFullScreen();
virtual void slotFullScreenToggled(bool);
+ virtual void polish();
protected slots:
void raiseIconView();
@@ -80,6 +81,8 @@ private:
imageinfo *m_info;
ImageView *m_disp;
bool autoSave;
+ bool m_setDocCalled:1;
+ bool m_polishDone:1;
QToolButton*fsButton;
QToolBar *toolBar;
QPopupMenu *fileMenu,*dispMenu,*fsMenu,*listviewMenu,*settingsMenu;