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

List:       kde-commits
Subject:    KDE/kdegraphics/ligature/shell
From:       Stefan Kebekus <kebekus () kde ! org>
Date:       2006-11-15 14:25:55
Message-ID: 1163600755.438039.17538.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 605130 by kebekus:

guess good view mode when opening files for the first time


 M  +6 -3      dataModel.h  
 M  +3 -0      ligature.kcfg  
 M  +29 -17    ligaturepart.cpp  
 M  +1 -1      ligaturepart.h  
 M  +1 -0      ligaturepart.rc  


--- trunk/KDE/kdegraphics/ligature/shell/dataModel.h #605129:605130
@@ -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
@@ -201,7 +199,12 @@
   with the real background color of the opended file.
   */
   QColor paperColor() const;
-  
+
+
+public slots:
+  void setViewMode(int viewmode);
+
+
 signals:
   void currentPageNumberChanged();
 
--- trunk/KDE/kdegraphics/ligature/shell/ligature.kcfg #605129:605130
@@ -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>
--- trunk/KDE/kdegraphics/ligature/shell/ligaturepart.cpp #605129:605130
@@ -251,12 +251,10 @@
   viewModes.append(i18n("Continuous - Facing"));
   viewModes.append(i18n("Overview"));
   viewModeAction = new KSelectAction (i18n("View Mode"), actionCollection(), \
                "viewmode");
-
   viewModeAction->setItems(viewModes);
   viewModeAction->setCurrentItem(dataModel->preferences()->viewMode());
+  connect(viewModeAction, SIGNAL(triggered(int)), dataModel, \
SLOT(slotSetViewMode(int)));  
-  connect(viewModeAction, SIGNAL(triggered(int)), this, SLOT(slotSetViewMode(int)));
-
   QStringList items = userRequestedPaperSize.pageSizeNames();
   items.prepend(i18n("Custom Size..."));
   media = new KSelectAction (i18n("Preferred Paper &Size"), actionCollection(), \
"view_media"); @@ -271,6 +269,9 @@
   connect(orientation, SIGNAL(activated (int)), &userRequestedPaperSize, \
SLOT(setOrientation(int)));  
   useDocumentSpecifiedSize = new KToggleAction(i18n("&Use Document Specified Paper \
Size"), 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"); +
   //FIXME: this has to be the wrong slot.
   connect(useDocumentSpecifiedSize, SIGNAL(triggered()), this, \
SLOT(slotShowSidebar()));  
@@ -1008,8 +1009,6 @@
     readSettings();
   }
 
-  // Set the multipage to the current viewmode.
-  slotSetViewMode(dataModel->preferences()->viewMode());
 
   // Load the URL
   dataModel->deselectText();
@@ -1019,9 +1018,22 @@
   emit setStatusBarText(i18n("Loading file %1", 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);
 
@@ -1539,9 +1551,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();
 }
@@ -1570,6 +1587,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);
@@ -1647,7 +1665,7 @@
   renderModeChanged();
   if (multiPage)
     multiPage->preferencesChanged();
-  slotSetViewMode(dataModel->preferences()->viewMode());
+  dataModel->setViewMode(dataModel->preferences()->viewMode());
 }
 
 void LigaturePart::partActivateEvent( KParts::PartActivateEvent *ev )
@@ -1723,12 +1741,6 @@
 }
 
 
-void LigaturePart::slotSetViewMode(int mode)
-{
-  dataModel->setViewMode(mode);
-}
-
-
 void LigaturePart::slotNextViewMode()
 {
   int viewmode = dataModel->preferences()->viewMode();
@@ -1749,7 +1761,7 @@
       newmode = KVSPrefs::EnumViewMode::SinglePage;
       break;
   }
-  slotSetViewMode(newmode);
+  dataModel->setViewMode(newmode);
 }
 
 
@@ -1773,7 +1785,7 @@
       newmode = KVSPrefs::EnumViewMode::ContinuousFacing;
       break;
   }
-  slotSetViewMode(newmode);
+  dataModel->setViewMode(newmode);
 }
 
 
--- trunk/KDE/kdegraphics/ligature/shell/ligaturepart.h #605129:605130
@@ -173,7 +173,6 @@
   void slotEnableRectSelectionTool();
   void slotEnableRulerTool();
 
-  void slotSetViewMode(int mode);
   void slotNextViewMode();
   void slotPreviousViewMode();
 
@@ -238,6 +237,7 @@
 
   KToggleAction* watchAct;
   KToggleAction* useDocumentSpecifiedSize;
+  KToggleAction* guessViewMode;
   KToggleAction* fitPageAct;
   KToggleAction* fitHeightAct;
   KToggleAction* fitWidthAct;
--- trunk/KDE/kdegraphics/ligature/shell/ligaturepart.rc #605129:605130
@@ -26,6 +26,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