~adamreichold/qpdfview/trunk

« back to all changes in this revision

Viewing changes to sources/mainwindow.cpp

  • Committer: Adam Reichold
  • Date: 2021-04-23 08:00:48 UTC
  • Revision ID: adam.reichold@t-online.de-20210423080048-92romgoewhpy3pg2
Add context menu item to append selected text to bookmark comment.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/*
2
2
 
3
 
Copyright 2014-2015, 2018 S. Razi Alavizadeh
 
3
Copyright 2014-2015, 2018, 2021 S. Razi Alavizadeh
4
4
Copyright 2020 Johan Björklund
5
5
Copyright 2018 Marshall Banana
6
6
Copyright 2021 Vitaly Cheptsov
7
 
Copyright 2012-2018 Adam Reichold
 
7
Copyright 2012-2018, 2021 Adam Reichold
8
8
Copyright 2018 Pavel Sanda
9
9
Copyright 2014 Dorian Scholz
10
10
Copyright 2018 Martin Spacek
1075
1075
    }
1076
1076
}
1077
1077
 
 
1078
void MainWindow::on_currentTab_appendTextToBookmarkComment(int page, const QString& text)
 
1079
{
 
1080
    addBookmark(page, text);
 
1081
}
 
1082
 
1078
1083
void MainWindow::on_currentTab_renderFlagsChanged(qpdfview::RenderFlags renderFlags)
1079
1084
{
1080
1085
    Q_UNUSED(renderFlags);
2025
2030
 
2026
2031
void MainWindow::on_addBookmark_triggered()
2027
2032
{
2028
 
    const QString& currentPageLabel = s_settings->mainWindow().usePageLabel() || currentTab()->hasFrontMatter()
2029
 
            ? currentTab()->pageLabelFromNumber(currentTab()->currentPage())
2030
 
            : currentTab()->defaultPageLabelFromNumber(currentTab()->currentPage());
2031
 
 
2032
 
    BookmarkItem bookmark(currentTab()->currentPage(), tr("Jump to page %1").arg(currentPageLabel));
2033
 
 
2034
 
    BookmarkModel* model = bookmarkModelForCurrentTab(false);
2035
 
 
2036
 
    if(model != 0)
2037
 
    {
2038
 
        model->findBookmark(bookmark);
2039
 
    }
2040
 
 
2041
 
    QScopedPointer< BookmarkDialog > dialog(new BookmarkDialog(bookmark, this));
2042
 
 
2043
 
    if(dialog->exec() == QDialog::Accepted)
2044
 
    {
2045
 
        if(model == 0)
2046
 
        {
2047
 
            model = bookmarkModelForCurrentTab(true);
2048
 
 
2049
 
            m_bookmarksView->setModel(model);
2050
 
        }
2051
 
 
2052
 
        model->addBookmark(bookmark);
2053
 
 
2054
 
        m_bookmarksMenuIsDirty = true;
2055
 
        scheduleSaveBookmarks();
2056
 
    }
 
2033
    addBookmark(currentTab()->currentPage());
2057
2034
}
2058
2035
 
2059
2036
void MainWindow::on_removeBookmark_triggered()
2796
2773
    connect(tab, SIGNAL(linkClicked(int)), SLOT(on_currentTab_linkClicked(int)));
2797
2774
    connect(tab, SIGNAL(linkClicked(bool,QString,int)), SLOT(on_currentTab_linkClicked(bool,QString,int)));
2798
2775
 
 
2776
    connect(tab, SIGNAL(appendTextToBookmarkComment(int,QString)), SLOT(on_currentTab_appendTextToBookmarkComment(int,QString)));
 
2777
 
2799
2778
    connect(tab, SIGNAL(renderFlagsChanged(qpdfview::RenderFlags)), SLOT(on_currentTab_renderFlagsChanged(qpdfview::RenderFlags)));
2800
2779
 
2801
2780
    connect(tab, SIGNAL(invertColorsChanged(bool)), SLOT(on_currentTab_invertColorsChanged(bool)));
2962
2941
    m_currentPageSpinBox->setSuffix(suffix);
2963
2942
}
2964
2943
 
 
2944
void MainWindow::addBookmark(int page, const QString& appendToComment)
 
2945
{
 
2946
    const QString& currentPageLabel = s_settings->mainWindow().usePageLabel() || currentTab()->hasFrontMatter()
 
2947
            ? currentTab()->pageLabelFromNumber(page)
 
2948
            : currentTab()->defaultPageLabelFromNumber(page);
 
2949
 
 
2950
    BookmarkItem bookmark(page, tr("Jump to page %1").arg(currentPageLabel));
 
2951
 
 
2952
    BookmarkModel* model = bookmarkModelForCurrentTab(false);
 
2953
 
 
2954
    if(model != 0)
 
2955
    {
 
2956
        model->findBookmark(bookmark);
 
2957
    }
 
2958
 
 
2959
    if(!appendToComment.isEmpty())
 
2960
    {
 
2961
        bookmark.appendToComment(appendToComment);
 
2962
    }
 
2963
 
 
2964
    QScopedPointer< BookmarkDialog > dialog(new BookmarkDialog(bookmark, this));
 
2965
 
 
2966
    if(dialog->exec() == QDialog::Accepted)
 
2967
    {
 
2968
        if(model == 0)
 
2969
        {
 
2970
            model = bookmarkModelForCurrentTab(true);
 
2971
 
 
2972
            m_bookmarksView->setModel(model);
 
2973
        }
 
2974
 
 
2975
        model->addBookmark(bookmark);
 
2976
 
 
2977
        m_bookmarksMenuIsDirty = true;
 
2978
        scheduleSaveBookmarks();
 
2979
    }
 
2980
}
 
2981
 
2965
2982
BookmarkModel* MainWindow::bookmarkModelForCurrentTab(bool create)
2966
2983
{
2967
2984
    return BookmarkModel::fromPath(currentTab()->fileInfo().absoluteFilePath(), create);