File indexing completed on 2024-04-28 05:11:03
0001 /* 0002 This file is part of Akregator. 0003 0004 SPDX-FileCopyrightText: 2004 Sashmit Bhaduri <smt@vfemail.net> 0005 0006 SPDX-License-Identifier: GPL-2.0-or-later WITH Qt-Commercial-exception-1.0 0007 */ 0008 0009 #pragma once 0010 0011 #include <QTabWidget> 0012 0013 #include <memory> 0014 0015 class QString; 0016 0017 namespace Akregator 0018 { 0019 class Frame; 0020 class OpenUrlRequest; 0021 class TabWidgetPrivate; 0022 0023 class TabWidget : public QTabWidget 0024 { 0025 Q_OBJECT 0026 0027 public: 0028 explicit TabWidget(QWidget *parent = nullptr); 0029 ~TabWidget() override; 0030 0031 public Q_SLOTS: 0032 void slotWebPageMutedOrAudibleChanged(Akregator::Frame *frame, bool isAudioMuted, bool wasRecentlyAudible); 0033 void slotCopy(); 0034 void slotZoomChanged(qreal value); 0035 0036 void slotSetTitle(Akregator::Frame *frame, const QString &title); 0037 void slotSetIcon(Akregator::Frame *frame, const QIcon &icon); 0038 void slotSettingsChanged(); 0039 void slotNextTab(); 0040 void slotPreviousTab(); 0041 void slotRemoveCurrentFrame(); 0042 void slotAddFrame(Akregator::Frame *f); 0043 void slotRemoveFrame(int frameId); 0044 void slotSelectFrame(int frameId); 0045 void slotReloadAllTabs(); 0046 void slotActivateTab(); 0047 void slotDetachTab(int index); 0048 void slotCopyLinkAddress(); 0049 void slotCloseTab(); 0050 void slotPrint(); 0051 void slotPrintPreview(); 0052 void slotFindTextInHtml(); 0053 void slotTextToSpeech(); 0054 void slotSaveLinkAs(); 0055 void slotCopyImageLocation(); 0056 void slotSaveImageOnDisk(); 0057 void slotUnMute(); 0058 void slotMute(); 0059 Q_SIGNALS: 0060 void signalCurrentFrameChanged(int); 0061 void signalRemoveFrameRequest(int); 0062 void signalOpenUrlRequest(Akregator::OpenUrlRequest &); 0063 void signalZoomChangedInFrame(int currentFrame, qreal value); 0064 void signalPrintInFrame(int currentFrame); 0065 void signalCopyInFrame(int currentFrame); 0066 void signalPrintPreviewInFrame(int currentFrame); 0067 void signalTextToSpeechInFrame(int currentFrame); 0068 void signalFindTextInFrame(int currentFrame); 0069 void signalSaveLinkAsInFrame(int currentFrame); 0070 void signalCopyLinkAsInFrame(int currentFrame); 0071 void signalCopyImageLocation(int currentFrame); 0072 void signalSaveImageOnDisk(int currentFrame); 0073 void signalMute(int currentFrame, bool); 0074 0075 private: 0076 void tabInserted(int) override; 0077 void tabRemoved(int) override; 0078 0079 private Q_SLOTS: 0080 void slotCloseRequest(int index); 0081 void slotTabChanged(int index); 0082 void slotCloseAllTab(); 0083 void slotTabContextMenuRequest(const QPoint &pos); 0084 void slotCloseAllTabExcept(int index); 0085 0086 private: 0087 void closeAllTabExcept(int index = -1); 0088 0089 private: 0090 std::unique_ptr<TabWidgetPrivate> const d; 0091 }; 0092 } // namespace Akregator