Skip to content

Commit

Permalink
changes according to review
Browse files Browse the repository at this point in the history
  • Loading branch information
sgourdas committed May 18, 2024
1 parent 4b7fd3a commit fbb70f0
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 25 deletions.
17 changes: 11 additions & 6 deletions src/mainwindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ MainWindow::MainWindow(QWidget *parent) :
mp_ui->mainToolBar, &TopWidget::updateBackForwardButtons);
connect(mp_ui->tabBar, &TabBar::tabDisplayed,
this, [=](TabType tabType) {
tabChanged(tabType == TabType::LibraryTab);
tabChanged(tabType);
});

connect(mp_ui->tabBar, &TabBar::currentTitleChanged,
Expand Down Expand Up @@ -110,19 +110,24 @@ bool MainWindow::eventFilter(QObject* /*object*/, QEvent* event)
const int tabRegion = getTabBar()->height() + getTopWidget()->height() + 30;
int clickY = portutils::getY(*mouseEvent);
// We don't have to check for visibilty as calling hide() on a hidden widget, or show() on a non-hidden widget is a no-op
if (clickY == 0) { showTabAndTop(); }
else if(clickY >= tabRegion) { hideTabAndTop(); }
if (clickY == 0) {
showTabAndTop();
} else if(clickY >= tabRegion) {
hideTabAndTop();
}
}
return false;
}

void MainWindow::tabChanged(bool libraryDisplayed)
void MainWindow::tabChanged(TabType tabType)
{
QAction *readingList = KiwixApp::instance()->getAction(KiwixApp::ToggleReadingListAction);
if(libraryDisplayed) {
if (tabType == TabType::SettingsTab) {
mp_ui->sideBar->hide();
} else if(tabType == TabType::LibraryTab) {
libraryPageDisplayed();
} else if (readingList->isChecked()) {
mp_ui->sideBar->setCurrentWidget(mp_ui->readinglistbar);
readingListToggled(true);
} else {
mp_ui->sideBar->hide();
}
Expand Down
2 changes: 1 addition & 1 deletion src/mainwindow.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ class MainWindow : public QMainWindow

private slots:
void toggleFullScreen();
void tabChanged(bool libraryDisplayed);
void tabChanged(TabBar::TabType);
void readingListToggled(bool state);
void libraryPageDisplayed();
void hideTabAndTop();
Expand Down
27 changes: 11 additions & 16 deletions src/readinglistbar.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,9 @@ ReadingListBar::ReadingListBar(QWidget *parent) :
connect(KiwixApp::instance()->getLibrary(), &Library::bookmarksChanged,
this, &ReadingListBar::setupList);
connect(ui->listWidget, &QListWidget::itemClicked,
this, [this](QListWidgetItem* item) {
onItemClicked(item, QGuiApplication::mouseButtons());
});
this, &ReadingListBar::onItemClicked);
connect(ui->listWidget, &QListWidget::itemDoubleClicked,
this, [this](QListWidgetItem* item) {
onItemDoubleClicked(item, QGuiApplication::mouseButtons());
});
this, &ReadingListBar::onItemDoubleClicked);
connect(ui->listWidget, &QListWidget::itemPressed,
this, [this](QListWidgetItem* item) {
onItemPressed(item, QGuiApplication::mouseButtons());
Expand Down Expand Up @@ -74,19 +70,17 @@ void ReadingListBar::setupList()
}
}

void ReadingListBar::onItemClicked(QListWidgetItem* item, Qt::MouseButtons) // Receives single clicks
void ReadingListBar::onItemClicked(QListWidgetItem* item) // Receives single clicks
{
QDateTime thisClickTime = QDateTime::currentDateTime();
int doubleClickInterval = QApplication::doubleClickInterval();
QTimer::singleShot(doubleClickInterval, [=]() { // Give time for a double click be handled
const qint64 timePassed = lastDoubleClickTime.msecsTo(thisClickTime);
if (timePassed > doubleClickInterval) {
clickKind = 1;
QTimer::singleShot(QApplication::doubleClickInterval(), [=]() { // Give time for a double click be handled
if (clickKind == 1) {
openUrl(item, false);
}
});
}

void ReadingListBar::onItemDoubleClicked(QListWidgetItem* item, Qt::MouseButtons) // Receives double clicks
void ReadingListBar::onItemDoubleClicked(QListWidgetItem* item) // Receives double clicks
{
lastDoubleClickTime = QDateTime::currentDateTime();
openUrl(item, true);
Expand All @@ -100,10 +94,11 @@ void ReadingListBar::onItemPressed(QListWidgetItem* item, Qt::MouseButtons butto
}

void ReadingListBar::onItemActivated(QListWidgetItem* item, Qt::MouseButtons buttons) // Receives double click and activation key
{
if (buttons & ~Qt::LeftButton) {
openUrl(item, true);
{
if (buttons & Qt::LeftButton) {
return;
}
openUrl(item, true);
}

void ReadingListBar::openUrl(QListWidgetItem* item, bool newTab)
Expand Down
5 changes: 3 additions & 2 deletions src/readinglistbar.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,14 @@ class ReadingListBar : public QWidget

public slots:
void setupList();
void onItemClicked(QListWidgetItem* item, Qt::MouseButtons buttons);
void onItemDoubleClicked(QListWidgetItem *item, Qt::MouseButtons buttons);
void onItemClicked(QListWidgetItem* item);
void onItemDoubleClicked(QListWidgetItem *item);
void onItemPressed(QListWidgetItem* item, Qt::MouseButtons buttons);
void onItemActivated(QListWidgetItem *item, Qt::MouseButtons buttons);
private:
Ui::readinglistbar *ui;
QDateTime lastDoubleClickTime = QDateTime(QDate(1970, 1, 1), QTime(0, 0, 0));
int clickKind;
void openUrl(QListWidgetItem* item, bool newTab);
};

Expand Down

0 comments on commit fbb70f0

Please sign in to comment.