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