[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    branches/work/kviewshell-0.7/ligature/shell
From:       Stefan Kebekus <kebekus () kde ! org>
Date:       2006-11-15 14:26:02
Message-ID: 1163600762.831810.17697.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 605131 by kebekus:

guess good view mode when opening files for the first time


 M  +3 -2      dataModel.h  
 M  +3 -0      ligature.kcfg  
 M  +26 -14    ligaturepart.cpp  
 M  +1 -1      ligaturepart.h  
 M  +1 -0      ligaturepart.rc  


--- branches/work/kviewshell-0.7/ligature/shell/dataModel.h #605130:605131
@@ -87,8 +87,6 @@
   double resolution() const { return resolutionInDPI; }
   void setResolution(double resolution);
 
-  void setViewMode(int viewmode);
-
   /** @brief delete pages from the document
 
     This method should be called whenever pages have been removed from
@@ -202,6 +200,9 @@
   */
   QColor paperColor() const;
 
+public slots:
+  void setViewMode(int viewmode);
+
 signals:
   void currentPageNumberChanged();
 
--- branches/work/kviewshell-0.7/ligature/shell/ligature.kcfg #605130:605131
@@ -23,6 +23,9 @@
   <entry key="UseDocumentSpecifiedSize" type="Bool">
     <default>true</default>
   </entry>
+  <entry key="GuessViewMode" type="Bool">
+    <default>true</default>
+  </entry>
   <entry key="ViewMode" type="Enum">
    <default>Continuous</default>
    <choices>
--- branches/work/kviewshell-0.7/ligature/shell/ligaturepart.cpp #605130:605131
@@ -262,7 +262,7 @@
   viewModeAction = new KSelectAction (i18n("View Mode"), 0, 0, 0, \
actionCollection(), "viewmode");  viewModeAction->setItems(viewModes);
   viewModeAction->setCurrentItem(dataModel->preferences()->viewMode());
-  connect(viewModeAction, SIGNAL(activated (int)), this, \
SLOT(slotSetViewMode(int))); +  connect(viewModeAction, SIGNAL(activated (int)), \
dataModel, SLOT(setViewMode(int)));  
   QStringList items = userRequestedPaperSize.pageSizeNames();
   items.prepend(i18n("Custom Size..."));
@@ -279,6 +279,8 @@
 
   useDocumentSpecifiedSize = new KToggleAction(i18n("&Use Document Specified Paper \
                Size"), 0, this, SLOT(slotShowSidebar()),
                                                actionCollection(), \
"view_use_document_specified_size"); +  guessViewMode = new \
KToggleAction(i18n("&Guess View Mode When Opening A New File"), 0, this, \
SLOT(slotShowSidebar()), +                                               \
actionCollection(), "view_guess_viewmode");  
   zoomInAct = KStdAction::zoomIn (this, SLOT(zoomIn()), actionCollection());
   zoomOutAct = KStdAction::zoomOut(this, SLOT(zoomOut()), actionCollection());
@@ -941,8 +943,6 @@
     readSettings();
   }
 
-  // Set the multipage to the current viewmode.
-  slotSetViewMode(dataModel->preferences()->viewMode());
 
   // Load the URL
   dataModel->deselectText();
@@ -952,9 +952,21 @@
   emit setStatusBarText(i18n("Loading file %1").arg(m_file));
 
   bool r = multiPage->openURL(m_file, m_url);
-  if (r)
+  if (r) {
     dataModel->setCurrentPageNumber(Anchor(1));
 
+    if (guessViewMode->isChecked()) {
+      // Guess suitable view mode
+      if ((multiPage->getRenderer()->totalPages() < 3) ||
+          (multiPage->getRenderer()->sizeOfPage(1).isPortrait() != true))
+        dataModel->setViewMode(KVSPrefs::EnumViewMode::Continuous);
+      else
+        dataModel->setViewMode(KVSPrefs::EnumViewMode::ContinuousFacing);
+    } else
+      // Set the multipage to the current viewmode.
+      dataModel->setViewMode(dataModel->preferences()->viewMode());
+  }
+  
   // Clear Statusbar
   emit setStatusBarText(QString::null);
 
@@ -1456,9 +1468,14 @@
 
   // Check if document specified paper sizes should be shown. We do
   // not need to take any action here, because this method is called
-  // only in the constructor of the LigaturePart when no document is loaded.
+  // only in the constructor of the LigaturePart when no document is
+  // loaded.
   useDocumentSpecifiedSize->setChecked(dataModel->preferences()->useDocumentSpecifiedSize());
  
+  // Check if ligature should guess a good viewmode when opening a new
+  // document
+  guessViewMode->setChecked(dataModel->preferences()->guessViewMode());
+
   if (!multiPage.isNull())
     multiPage->readSettings();
 }
@@ -1487,6 +1504,7 @@
   dataModel->preferences()->setPaperFormat(userRequestedPaperSize.serialize());
   dataModel->preferences()->setScrollbars(scrollbarHandling->isChecked());
   dataModel->preferences()->setUseDocumentSpecifiedSize(useDocumentSpecifiedSize->isChecked());
 +  dataModel->preferences()->setGuessViewMode(guessViewMode->isChecked());
 
   if (fitPageAct->isChecked())
     dataModel->preferences()->setFitToPage(KVSPrefs::EnumFitToPage::FitToPage);
@@ -1564,7 +1582,7 @@
   renderModeChanged();
   if (multiPage)
     multiPage->preferencesChanged();
-  slotSetViewMode(dataModel->preferences()->viewMode());
+  dataModel->setViewMode(dataModel->preferences()->viewMode());
 }
 
 void LigaturePart::partActivateEvent( KParts::PartActivateEvent *ev )
@@ -1640,12 +1658,6 @@
 }
 
 
-void LigaturePart::slotSetViewMode(int mode)
-{
-  dataModel->setViewMode(mode);
-}
-
-
 void LigaturePart::slotNextViewMode()
 {
   int viewmode = dataModel->preferences()->viewMode();
@@ -1666,7 +1678,7 @@
       newmode = KVSPrefs::EnumViewMode::SinglePage;
       break;
   }
-  slotSetViewMode(newmode);
+  dataModel->setViewMode(newmode);
 }
 
 
@@ -1690,7 +1702,7 @@
       newmode = KVSPrefs::EnumViewMode::ContinuousFacing;
       break;
   }
-  slotSetViewMode(newmode);
+  dataModel->setViewMode(newmode);
 }
 
 
--- branches/work/kviewshell-0.7/ligature/shell/ligaturepart.h #605130:605131
@@ -178,7 +178,6 @@
   void slotEnableRectSelectionTool();
   void slotEnableRulerTool();
 
-  void slotSetViewMode(int mode);
   void slotNextViewMode();
   void slotPreviousViewMode();
 
@@ -243,6 +242,7 @@
 
   KToggleAction* watchAct;
   KToggleAction* useDocumentSpecifiedSize;
+  KToggleAction* guessViewMode;
   KToggleAction* fitPageAct;
   KToggleAction* fitHeightAct;
   KToggleAction* fitWidthAct;
--- branches/work/kviewshell-0.7/ligature/shell/ligaturepart.rc #605130:605131
@@ -28,6 +28,7 @@
  </Menu>
  <Menu name="view"><text>&amp;View</text>
   <Action name="viewmode"/>
+  <Action name="view_guess_viewmode"/>
   <Merge/>
   <Separator/>
   <Action name="view_media"/>


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic