[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>&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