[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdepim/akregator/src
From: Frank Osterfeld <frank.osterfeld () kdemail ! net>
Date: 2009-12-05 20:12:01
Message-ID: 1260043921.296936.13037.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 1059107 by osterfeld:
merge from 4.3 branch
------------------------------------------------------------------------
r1005313 | osterfeld | 2009-07-31 21:19:26 +0200 (Fri, 31 Jul 2009) | 6 lines
- Move zoom action into tabwidget and send zoom in/out signals to all tabs. I didn't \
find out how to tell a readonly part to zoom, so I casted it to khtmlpart (if the \
part is khtml). Could be extended for other types.
- Tabs load/save zoom factor
- Add zoom in/out entries in popup menu for tabs.
- Remove dead code (scroll up/down)
Patch by Alexander Elbs plus some minor changes from me
------------------------------------------------------------------------
M +14 -11 actionmanagerimpl.cpp
M +7 -21 articleviewer.cpp
M +2 -4 articleviewer.h
M +72 -2 browserframe.cpp
M +6 -0 browserframe.h
M +4 -0 mainwidget.cpp
M +15 -0 tabwidget.cpp
M +4 -0 tabwidget.h
--- trunk/KDE/kdepim/akregator/src/actionmanagerimpl.cpp #1059106:1059107
@@ -419,17 +419,8 @@
action = KStandardAction::copy(articleViewer, SLOT(slotCopy()), coll);
coll->addAction("viewer_copy", action);
- action = coll->addAction("inc_font_sizes");
- action->setIcon(KIcon("zoom-in"));
- action->setText(i18n("&Increase Font Sizes"));
- connect(action, SIGNAL(triggered(bool)), articleViewer, SLOT(slotZoomIn()));
- action->setShortcut( QKeySequence::ZoomIn );
-
- action = coll->addAction("dec_font_sizes");
- action->setIcon(KIcon("zoom-out"));
- action->setText(i18n("&Decrease Font Sizes"));
- connect(action, SIGNAL(triggered(bool)), articleViewer, SLOT(slotZoomOut()));
- action->setShortcut( QKeySequence::ZoomOut );
+ connect(d->tabWidget, SIGNAL(signalZoomInFrame(int)), d->articleViewer, \
SLOT(slotZoomIn(int))); + connect(d->tabWidget, SIGNAL(signalZoomOutFrame(int)), \
d->articleViewer, SLOT(slotZoomOut(int))); }
void ActionManagerImpl::initArticleListView(ArticleListView* articleList)
@@ -545,6 +536,18 @@
action->setText(i18n("&Close Tab"));
connect(action, SIGNAL(triggered(bool)), d->tabWidget, SLOT(slotCloseTab()));
action->setShortcuts(KStandardShortcut::close());
+
+ action = coll->addAction("inc_font_sizes");
+ action->setIcon(KIcon("zoom-in"));
+ action->setText(i18n("&Increase Font Sizes"));
+ connect(action, SIGNAL(triggered(bool)), d->tabWidget, SLOT(slotFrameZoomIn()));
+ action->setShortcut( QKeySequence::ZoomIn );
+
+ action = coll->addAction("dec_font_sizes");
+ action->setIcon(KIcon("zoom-out"));
+ action->setText(i18n("&Decrease Font Sizes"));
+ connect(action, SIGNAL(triggered(bool)), d->tabWidget, \
SLOT(slotFrameZoomOut())); + action->setShortcut( QKeySequence::ZoomOut );
}
void ActionManagerImpl::initFrameManager(FrameManager* frameManager)
--- trunk/KDE/kdepim/akregator/src/articleviewer.cpp #1059106:1059107
@@ -137,16 +137,6 @@
action->setText(i18n("&Save Link As..."));
connect(action, SIGNAL(triggered(bool) ), SLOT(slotSaveLinkAs()));
- action = m_part->actionCollection()->addAction("articleviewer_scroll_up");
- action->setText(i18n("&Scroll Up"));
- connect(action, SIGNAL(triggered(bool)), SLOT(slotScrollUp()));
- action->setShortcuts(KShortcut( "Up" ));
-
- action = m_part->actionCollection()->addAction("articleviewer_scroll_down");
- action->setText(i18n("&Scroll Down"));
- connect(action, SIGNAL(triggered(bool)), SLOT(slotScrollDown()));
- action->setShortcuts(KShortcut( "Down" ));
-
updateCss();
connect(this, SIGNAL(selectionChanged()), this, SLOT(slotSelectionChanged()));
@@ -337,18 +327,11 @@
emit completed();
}
-void ArticleViewer::slotScrollUp()
+void ArticleViewer::slotZoomIn(int id)
{
- m_part->view()->scrollBy(0,-10);
-}
+ if (id != 0)
+ return;
-void ArticleViewer::slotScrollDown()
-{
- m_part->view()->scrollBy(0,10);
-}
-
-void ArticleViewer::slotZoomIn()
-{
int zf = m_part->fontScaleFactor();
if (zf < 100)
{
@@ -362,8 +345,11 @@
}
}
-void ArticleViewer::slotZoomOut()
+void ArticleViewer::slotZoomOut(int id)
{
+ if (id != 0)
+ return;
+
int zf = m_part->fontScaleFactor();
if (zf <= 100)
{
--- trunk/KDE/kdepim/akregator/src/articleviewer.h #1059106:1059107
@@ -80,10 +80,8 @@
public slots:
- void slotScrollUp();
- void slotScrollDown();
- void slotZoomIn();
- void slotZoomOut();
+ void slotZoomIn(int);
+ void slotZoomOut(int);
void slotSetZoomFactor(int percent);
void slotPrint();
--- trunk/KDE/kdepim/akregator/src/browserframe.cpp #1059106:1059107
@@ -47,6 +47,7 @@
#include <kxmlguiclient.h>
#include <kparts/browserextension.h>
#include <kparts/part.h>
+#include <khtml_part.h>
#include <cassert>
@@ -131,6 +132,65 @@
emit signalOpenUrlRequest( req );
}
+bool BrowserFrame::hasZoom() const
+{
+ return qobject_cast<KHTMLPart *>( d->part ) != 0;
+}
+
+void BrowserFrame::slotZoomIn(int zoomid)
+{
+ if ( zoomid != id() )
+ return;
+
+ if ( !d->part )
+ return;
+
+ if ( KHTMLPart * const khtml_part = qobject_cast<KHTMLPart *>( d->part ) ) {
+ int zf = khtml_part->fontScaleFactor();
+ if (zf < 100) {
+ zf = zf - (zf % 20) + 20;
+ khtml_part->setFontScaleFactor(zf);
+ } else {
+ zf = zf - (zf % 50) + 50;
+ khtml_part->setFontScaleFactor(zf < 300 ? zf : 300);
+ }
+ }
+}
+
+void BrowserFrame::slotZoomOut(int zoomid)
+{
+ if ( zoomid != id() )
+ return;
+
+ if ( !d->part )
+ return;
+
+ if ( KHTMLPart * const khtml_part = qobject_cast<KHTMLPart *>( d->part ) ) {
+ int zf = khtml_part->fontScaleFactor();
+ if (zf <= 100) {
+ zf = zf - (zf % 20) - 20;
+ khtml_part->setFontScaleFactor(zf > 20 ? zf : 20);
+ } else {
+ zf = zf - (zf % 50) - 50;
+ khtml_part->setFontScaleFactor(zf);
+ }
+ }
+}
+
+int BrowserFrame::getZoomFactor() const
+{
+ if ( KHTMLPart * const khtml_part = qobject_cast<KHTMLPart *>( d->part ) )
+ return khtml_part->fontScaleFactor();
+
+ return -1;
+}
+
+void BrowserFrame::setZoomFactor( int zf )
+{
+ if (KHTMLPart* const khtml_part = qobject_cast<KHTMLPart *>( d->part ) )
+ khtml_part->setFontScaleFactor( zf );
+}
+
namespace {
enum SeparatorOption {
@@ -198,6 +258,13 @@
addActionsToMenu( popup, actionGroups.value( "editactions" ), NoSeparator );
}
+ if (hasZoom())
+ {
+ addSeparatorIfNotFirst();
+ popup->addAction( ActionManager::getInstance()->action("inc_font_sizes") );
+ popup->addAction( ActionManager::getInstance()->action("dec_font_sizes") );
+ }
+
addSeparatorIfNotFirst();
addActionsToMenu( popup, actionGroups.value( "part" ), NoSeparator );
@@ -367,19 +434,22 @@
void BrowserFrame::loadConfig( const KConfigGroup& config, const QString& prefix)
{
- QString url = config.readEntry( QString::fromLatin1( "url" ).prepend( prefix ), \
QString() );
- QString mimetype = config.readEntry( QString::fromLatin1( "mimetype" ).prepend( \
prefix ), QString() ); + const QString url = config.readEntry( \
QString::fromLatin1( "url" ).prepend( prefix ), QString() ); + const QString \
mimetype = config.readEntry( QString::fromLatin1( "mimetype" ).prepend( prefix ), \
QString() ); + const int zf = config.readEntry( QString::fromLatin1( "zoom" \
).prepend( prefix ), 100 ); OpenUrlRequest req(url);
KParts::OpenUrlArguments args;
args.setMimeType(mimetype);
req.setArgs(args);
openUrl(req);
+ setZoomFactor( zf );
}
void BrowserFrame::saveConfig( KConfigGroup& config, const QString& prefix)
{
config.writeEntry( QString::fromLatin1( "url" ).prepend( prefix ), url().url() \
);
config.writeEntry( QString::fromLatin1( "mimetype" ).prepend( prefix ), \
d->mimetype ); + config.writeEntry( QString::fromLatin1( "zoom" ).prepend( prefix \
), getZoomFactor() ); }
#include "browserframe.moc"
--- trunk/KDE/kdepim/akregator/src/browserframe.h #1059106:1059107
@@ -68,6 +68,10 @@
void loadConfig( const KConfigGroup& config, const QString& prefix);
void saveConfig( KConfigGroup& config, const QString& prefix);
+
+ bool hasZoom() const;
+ int getZoomFactor() const;
+ void setZoomFactor(int);
public slots:
void slotHistoryForward();
@@ -80,6 +84,8 @@
void slotPaletteOrFontChanged();
void slotOpenLinkInBrowser();
void slotOpenLinkInNewTab();
+ void slotZoomIn(int);
+ void slotZoomOut(int);
private slots:
--- trunk/KDE/kdepim/akregator/src/mainwidget.cpp #1059106:1059107
@@ -343,6 +343,8 @@
BrowserFrame* frame = new BrowserFrame(m_tabWidget);
connect( m_part, SIGNAL(signalSettingsChanged()), frame, \
SLOT(slotPaletteOrFontChanged())); + connect( m_tabWidget, \
SIGNAL(signalZoomInFrame(int)), frame, SLOT(slotZoomIn(int))); + connect( \
m_tabWidget, SIGNAL(signalZoomOutFrame(int)), frame, SLOT(slotZoomOut(int)));
Kernel::self()->frameManager()->slotAddFrame(frame);
@@ -1114,6 +1116,8 @@
frame->loadConfig( config, framePrefix + QLatin1Char( '_' ) );
connect( m_part, SIGNAL(signalSettingsChanged()), frame, \
SLOT(slotPaletteOrFontChanged())); + connect( m_tabWidget, \
SIGNAL(signalZoomInFrame(int)), frame, SLOT(slotZoomIn(int))); + connect( \
m_tabWidget, SIGNAL(signalZoomOutFrame(int)), frame, SLOT(slotZoomOut(int)));
Kernel::self()->frameManager()->slotAddFrame(frame);
--- trunk/KDE/kdepim/akregator/src/tabwidget.cpp #1059106:1059107
@@ -179,6 +179,21 @@
return w ? frames.value(w) : 0;
}
+void TabWidget::slotFrameZoomIn()
+{
+ if ( !d->currentFrame() )
+ return;
+ emit signalZoomInFrame( d->currentFrame()->id() );
+}
+
+void TabWidget::slotFrameZoomOut()
+{
+ if ( !d->currentFrame() )
+ return;
+ emit signalZoomOutFrame( d->currentFrame()->id() );
+}
+
+
void TabWidget::slotTabChanged(int index)
{
--- trunk/KDE/kdepim/akregator/src/tabwidget.h #1059106:1059107
@@ -54,11 +54,15 @@
void slotAddFrame(Akregator::Frame* f);
void slotRemoveFrame(int frameId);
void slotSelectFrame(int frameId);
+ void slotFrameZoomIn();
+ void slotFrameZoomOut();
Q_SIGNALS:
void signalCurrentFrameChanged(int);
void signalRemoveFrameRequest(int);
void signalOpenUrlRequest(Akregator::OpenUrlRequest&);
+ void signalZoomInFrame(int);
+ void signalZoomOutFrame(int);
private:
/*reimpl*/ void tabInserted( int );
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic