Status bar work.
This commit is contained in:
parent
a0638e9708
commit
3303167fcf
@ -14,6 +14,7 @@
|
||||
#include <QVBoxLayout>
|
||||
#include <QSplitter>
|
||||
#include <QToolBar>
|
||||
#include <QDebug>
|
||||
#include <QApplication>
|
||||
#include <QLineEdit>
|
||||
#include <QAction>
|
||||
@ -22,6 +23,8 @@
|
||||
#include <QWidgetAction>
|
||||
#include <QThread>
|
||||
#include <QReadWriteLock>
|
||||
#include <QProgressBar>
|
||||
#include <QStatusBar>
|
||||
|
||||
|
||||
FeedMessageViewer::FeedMessageViewer(QWidget *parent)
|
||||
@ -114,15 +117,17 @@ void FeedMessageViewer::updateAllFeeds() {
|
||||
}
|
||||
}
|
||||
|
||||
void FeedMessageViewer::onFeedUpdatesStarted() {
|
||||
|
||||
}
|
||||
|
||||
void FeedMessageViewer::onFeedUpdatesProgress(FeedsModelFeed *feed,
|
||||
int current,
|
||||
int total) {
|
||||
// Some feed got updated.
|
||||
// TODO: Don't update counts of all feeds here,
|
||||
// it is enough to update counts of update feed.
|
||||
// So use indexForItem method from the model.
|
||||
//m_feedsView->updateCountsOfAllFeeds(true);
|
||||
m_feedsView->updateCountsOfParticularFeed(feed, true);
|
||||
|
||||
|
||||
}
|
||||
|
||||
void FeedMessageViewer::onFeedUpdatesFinished() {
|
||||
@ -131,23 +136,27 @@ void FeedMessageViewer::onFeedUpdatesFinished() {
|
||||
}
|
||||
|
||||
void FeedMessageViewer::createConnections() {
|
||||
// General connections.
|
||||
// Message changers.
|
||||
connect(m_messagesView, SIGNAL(currentMessagesRemoved()),
|
||||
m_messagesBrowser, SLOT(clear()));
|
||||
connect(m_messagesView, SIGNAL(currentMessagesChanged(QList<Message>)),
|
||||
m_messagesBrowser, SLOT(navigateToMessages(QList<Message>)));
|
||||
connect(m_messagesView, SIGNAL(openMessagesInNewspaperView(QList<Message>)),
|
||||
FormMain::getInstance()->m_ui->m_tabWidget,
|
||||
SLOT(addBrowserWithMessages(QList<Message>)));
|
||||
connect(m_messagesView, SIGNAL(openLinkNewTab(QString)),
|
||||
FormMain::getInstance()->m_ui->m_tabWidget,
|
||||
SLOT(addLinkedBrowser(QString)));
|
||||
|
||||
// Feed changers.
|
||||
connect(m_feedsView, SIGNAL(feedsSelected(QList<int>)),
|
||||
m_messagesView, SLOT(loadFeeds(QList<int>)));
|
||||
connect(m_messagesView, SIGNAL(feedCountsChanged()),
|
||||
m_feedsView, SLOT(updateCountsOfSelectedFeeds()));
|
||||
connect(m_feedsView, SIGNAL(feedsNeedToBeReloaded(int)),
|
||||
m_messagesView, SLOT(reloadSelections(int)));
|
||||
|
||||
// Message openers.
|
||||
connect(m_messagesView, SIGNAL(openMessagesInNewspaperView(QList<Message>)),
|
||||
FormMain::getInstance()->m_ui->m_tabWidget,
|
||||
SLOT(addBrowserWithMessages(QList<Message>)));
|
||||
connect(m_messagesView, SIGNAL(openLinkNewTab(QString)),
|
||||
FormMain::getInstance()->m_ui->m_tabWidget,
|
||||
SLOT(addLinkedBrowser(QString)));
|
||||
connect(m_feedsView, SIGNAL(newspaperModeRequested(QList<Message>)),
|
||||
FormMain::getInstance()->m_ui->m_tabWidget,
|
||||
SLOT(addBrowserWithMessages(QList<Message>)));
|
||||
|
@ -12,6 +12,7 @@ class MessagesView;
|
||||
class FeedDownloader;
|
||||
class QToolBar;
|
||||
class QSplitter;
|
||||
class QProgressBar;
|
||||
class FeedsModelFeed;
|
||||
|
||||
class FeedMessageViewer : public TabContent {
|
||||
@ -41,6 +42,7 @@ class FeedMessageViewer : public TabContent {
|
||||
|
||||
protected slots:
|
||||
// Reacts on feed updates.
|
||||
void onFeedUpdatesStarted();
|
||||
void onFeedUpdatesProgress(FeedsModelFeed *feed, int current, int total);
|
||||
void onFeedUpdatesFinished();
|
||||
|
||||
|
@ -29,7 +29,8 @@ FormMain::FormMain(QWidget *parent) : QMainWindow(parent), m_ui(new Ui::FormMain
|
||||
// Initialize singleton.
|
||||
s_instance = this;
|
||||
|
||||
setStatusBar(new StatusBar(this));
|
||||
m_statusBar = new StatusBar(this);
|
||||
setStatusBar(m_statusBar);
|
||||
|
||||
// Prepare main window and tabs.
|
||||
prepareMenus();
|
||||
@ -96,6 +97,10 @@ QList<QAction*> FormMain::getActions() {
|
||||
return actions;
|
||||
}
|
||||
|
||||
StatusBar *FormMain::statusBar() {
|
||||
return m_statusBar;
|
||||
}
|
||||
|
||||
void FormMain::prepareMenus() {
|
||||
// Setup menu for tray icon.
|
||||
if (SystemTrayIcon::isSystemTrayAvailable()) {
|
||||
@ -266,6 +271,10 @@ void FormMain::saveSize() {
|
||||
}
|
||||
|
||||
void FormMain::createConnections() {
|
||||
// Status bar connections.
|
||||
connect(m_statusBar->fullscreenSwitcher(), SIGNAL(clicked()),
|
||||
m_ui->m_actionFullscreen, SLOT(trigger()));
|
||||
|
||||
// Core connections.
|
||||
connect(qApp, SIGNAL(commitDataRequest(QSessionManager&)),
|
||||
this, SLOT(onCommitData(QSessionManager&)));
|
||||
|
@ -7,6 +7,8 @@
|
||||
#include <QUrl>
|
||||
|
||||
|
||||
class StatusBar;
|
||||
|
||||
class FormMain : public QMainWindow {
|
||||
Q_OBJECT
|
||||
|
||||
@ -30,6 +32,9 @@ class FormMain : public QMainWindow {
|
||||
// NOTE: This is used for setting dynamic shortcuts for given actions.
|
||||
QList<QAction*> getActions();
|
||||
|
||||
// Access to statusbar.
|
||||
StatusBar *statusBar();
|
||||
|
||||
// Singleton accessor.
|
||||
static FormMain *getInstance();
|
||||
|
||||
@ -84,6 +89,7 @@ class FormMain : public QMainWindow {
|
||||
private:
|
||||
Ui::FormMain *m_ui;
|
||||
QMenu *m_trayMenu;
|
||||
StatusBar *m_statusBar;
|
||||
|
||||
static FormMain *s_instance;
|
||||
};
|
||||
|
@ -125,7 +125,6 @@
|
||||
<addaction name="m_menuTools"/>
|
||||
<addaction name="m_menuHelp"/>
|
||||
</widget>
|
||||
<widget class="StatusBar" name="m_statusBar"/>
|
||||
<action name="m_actionImport">
|
||||
<property name="text">
|
||||
<string>&Import</string>
|
||||
@ -409,11 +408,6 @@
|
||||
<header>tabwidget.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>StatusBar</class>
|
||||
<extends>QStatusBar</extends>
|
||||
<header>statusbar.h</header>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources/>
|
||||
<connections/>
|
||||
|
@ -175,7 +175,6 @@ void MessagesView::mousePressEvent(QMouseEvent *event) {
|
||||
}
|
||||
|
||||
case Qt::MiddleButton: {
|
||||
// TODO: nefunguje?
|
||||
// Open selected messages in new tab on mouse middle button click.
|
||||
openSelectedSourceMessagesInternally();
|
||||
break;
|
||||
@ -363,7 +362,7 @@ void MessagesView::reselectIndexes(const QModelIndexList &indexes) {
|
||||
}
|
||||
|
||||
void MessagesView::adjustColumns() {
|
||||
if (header()->count() == 10 && !m_columnsAdjusted) {
|
||||
if (header()->count() > 0 && !m_columnsAdjusted) {
|
||||
m_columnsAdjusted = true;
|
||||
|
||||
#if QT_VERSION >= 0x050000
|
||||
|
@ -22,6 +22,7 @@ class MessagesView : public QTreeView {
|
||||
MessagesProxyModel *model();
|
||||
MessagesModel *sourceModel();
|
||||
|
||||
// Creates needed connections.
|
||||
void createConnections();
|
||||
|
||||
public slots:
|
||||
|
@ -1,9 +1,38 @@
|
||||
#include "gui/statusbar.h"
|
||||
|
||||
#include "gui/iconthemefactory.h"
|
||||
|
||||
#include <QToolButton>
|
||||
#include <QLabel>
|
||||
#include <QProgressBar>
|
||||
|
||||
|
||||
StatusBar::StatusBar(QWidget *parent) : QStatusBar(parent) {
|
||||
setSizeGripEnabled(false);
|
||||
setContentsMargins(3, 1, 3, 1);
|
||||
|
||||
// Initializations of widgets for status bar.
|
||||
m_fullscreenSwitcher = new QToolButton(this);
|
||||
m_fullscreenSwitcher->setIcon(IconThemeFactory::getInstance()->fromTheme("view-fullscreen"));
|
||||
m_fullscreenSwitcher->setToolTip(tr("Switch application between fulscreen/normal states right from this status bar icon."));
|
||||
|
||||
m_progressBar = new QProgressBar(this);
|
||||
m_progressBar->setFixedWidth(100);
|
||||
|
||||
m_progressLabel = new QLabel(this);
|
||||
m_progressLabel->setText("aaa");
|
||||
|
||||
// Add widgets.
|
||||
addPermanentWidget(m_fullscreenSwitcher);
|
||||
addWidget(m_progressBar, 0);
|
||||
addWidget(m_progressLabel, 1);
|
||||
}
|
||||
|
||||
StatusBar::~StatusBar() {
|
||||
qDebug("Destroying StatusBar instance.");
|
||||
}
|
||||
|
||||
QToolButton *StatusBar::fullscreenSwitcher() const
|
||||
{
|
||||
return m_fullscreenSwitcher;
|
||||
}
|
||||
|
@ -4,6 +4,10 @@
|
||||
#include <QStatusBar>
|
||||
|
||||
|
||||
class QProgressBar;
|
||||
class QToolButton;
|
||||
class QLabel;
|
||||
|
||||
class StatusBar : public QStatusBar {
|
||||
Q_OBJECT
|
||||
|
||||
@ -12,9 +16,12 @@ class StatusBar : public QStatusBar {
|
||||
explicit StatusBar(QWidget *parent = 0);
|
||||
virtual ~StatusBar();
|
||||
|
||||
signals:
|
||||
QToolButton *fullscreenSwitcher() const;
|
||||
|
||||
public slots:
|
||||
private:
|
||||
QProgressBar *m_progressBar;
|
||||
QLabel *m_progressLabel;
|
||||
QToolButton *m_fullscreenSwitcher;
|
||||
|
||||
};
|
||||
|
||||
|
@ -64,6 +64,7 @@ class TabWidget : public QTabWidget {
|
||||
// Fixes indexes of tab contents.
|
||||
void fixContentsIndexes(int starting_index, int ending_index);
|
||||
|
||||
// Called when number of tab pages changes.
|
||||
void checkTabBarVisibility();
|
||||
|
||||
// Changes icon/text of the tab.
|
||||
|
Loading…
x
Reference in New Issue
Block a user