diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/CMakeLists.txt | 41 | ||||
| -rw-r--r-- | src/dolphincontextmenu.cpp | 9 | ||||
| -rw-r--r-- | src/dolphincontextmenu.h | 5 | ||||
| -rw-r--r-- | src/dolphinmainwindow.cpp | 1 | ||||
| -rw-r--r-- | src/dolphinpart.desktop | 3 | ||||
| -rw-r--r-- | src/dolphintabpage.h | 2 | ||||
| -rw-r--r-- | src/kitemviews/kitemlistview.h | 21 | ||||
| -rwxr-xr-x | src/org.kde.dolphin.desktop | 1 | ||||
| -rw-r--r-- | src/settings/kcm/kcmdolphingeneral.desktop | 2 | ||||
| -rw-r--r-- | src/settings/kcm/kcmdolphinnavigation.desktop | 2 | ||||
| -rw-r--r-- | src/settings/kcm/kcmdolphinservices.desktop | 2 | ||||
| -rw-r--r-- | src/settings/kcm/kcmdolphinviewmodes.desktop | 1 | ||||
| -rw-r--r-- | src/tests/CMakeLists.txt | 156 | ||||
| -rw-r--r-- | src/tests/dolphinmainwindowtest.cpp | 69 | ||||
| -rw-r--r-- | src/tests/kfileitemmodeltest.cpp | 3 | ||||
| -rw-r--r-- | src/tests/kitemlistselectionmanagertest.cpp | 37 |
16 files changed, 169 insertions, 186 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ce4cec80c..bc6f75d62 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -193,7 +193,7 @@ install(FILES dolphinpart.desktop DESTINATION ${KDE_INSTALL_KSERVICES5DIR}) ########################################## -set(dolphin_SRCS +set(dolphinstatic_SRCS dolphindockwidget.cpp dolphinmainwindow.cpp dolphinviewcontainer.cpp @@ -248,11 +248,10 @@ set(dolphin_SRCS statusbar/statusbarspaceinfo.cpp views/zoomlevelinfo.cpp dolphindebug.cpp - dbusinterface.cpp global.cpp ) -kconfig_add_kcfg_files(dolphin_SRCS GENERATE_MOC +kconfig_add_kcfg_files(dolphinstatic_SRCS GENERATE_MOC panels/folders/dolphin_folderspanelsettings.kcfgc panels/information/dolphin_informationpanelsettings.kcfgc panels/places/dolphin_placespanelsettings.kcfgc @@ -265,36 +264,44 @@ kconfig_add_kcfg_files(dolphin_SRCS GENERATE_MOC ) if(NOT WIN32) - set(dolphin_SRCS ${dolphin_SRCS} panels/terminal/terminalpanel.cpp) + set(dolphinstatic_SRCS ${dolphinstatic_SRCS} panels/terminal/terminalpanel.cpp) endif() -# Sets the icon on Windows and OSX -file(GLOB ICONS_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/icons/*system-file-manager.png") -ecm_add_app_icon(dolphin_SRCS ICONS ${ICONS_SRCS}) - -kf5_add_kdeinit_executable(dolphin ${dolphin_SRCS}) +add_library(dolphinstatic STATIC ${dolphinstatic_SRCS}) -target_include_directories(kdeinit_dolphin PRIVATE ${PHONON_INCLUDES}) - -target_link_libraries(kdeinit_dolphin +target_include_directories(dolphinstatic PRIVATE ${PHONON_INCLUDES}) +target_link_libraries(dolphinstatic dolphinprivate - KF5::Parts KF5::KCMUtils - KF5::Solid - KF5::CoreAddons KF5::DBusAddons - KF5::Bookmarks KF5::Notifications Phonon::phonon4qt5 ) if (KF5Activities_FOUND) target_link_libraries( - kdeinit_dolphin + dolphinstatic KF5::Activities ) endif() +set(dolphin_SRCS + dbusinterface.cpp + main.cpp +) + +# Sets the icon on Windows and OSX +file(GLOB ICONS_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/icons/*system-file-manager.png") +ecm_add_app_icon(dolphin_SRCS ICONS ${ICONS_SRCS}) + +kf5_add_kdeinit_executable(dolphin ${dolphin_SRCS}) + + +target_link_libraries(kdeinit_dolphin + dolphinstatic + dolphinprivate +) + include(DbusInterfaceMacros) generate_and_install_dbus_interface( diff --git a/src/dolphincontextmenu.cpp b/src/dolphincontextmenu.cpp index 890494ff8..05082df86 100644 --- a/src/dolphincontextmenu.cpp +++ b/src/dolphincontextmenu.cpp @@ -283,7 +283,7 @@ void DolphinContextMenu::openItemContextMenu() fileItemActions.setItemListProperties(selectedItemsProps); addServiceActions(fileItemActions); - addFileItemPluginActions(fileItemActions); + fileItemActions.addPluginActionsTo(this); addVersionControlPluginActions(); @@ -355,7 +355,7 @@ void DolphinContextMenu::openViewportContextMenu() fileItemActions.setItemListProperties(baseUrlProperties); addServiceActions(fileItemActions); - addFileItemPluginActions(fileItemActions); + fileItemActions.addPluginActionsTo(this); addVersionControlPluginActions(); @@ -484,11 +484,6 @@ void DolphinContextMenu::addServiceActions(KFileItemActions& fileItemActions) fileItemActions.addServiceActionsTo(this); } -void DolphinContextMenu::addFileItemPluginActions(KFileItemActions& fileItemActions) -{ - fileItemActions.addPluginActionsTo(this); -} - void DolphinContextMenu::addVersionControlPluginActions() { const DolphinView* view = m_mainWindow->activeViewContainer()->view(); diff --git a/src/dolphincontextmenu.h b/src/dolphincontextmenu.h index f67300dc1..ea68244e1 100644 --- a/src/dolphincontextmenu.h +++ b/src/dolphincontextmenu.h @@ -124,11 +124,6 @@ private: void addServiceActions(KFileItemActions& fileItemActions); /** - * Adds actions that are provided by a KFileItemActionPlugin. - */ - void addFileItemPluginActions(KFileItemActions& fileItemActions); - - /** * Adds actions that are provided by a KVersionControlPlugin. */ void addVersionControlPluginActions(); diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index 4b01272b7..3d6f8489d 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -124,6 +124,7 @@ DolphinMainWindow::DolphinMainWindow() : setAcceptDrops(true); m_tabWidget = new DolphinTabWidget(this); + m_tabWidget->setObjectName("tabWidget"); connect(m_tabWidget, &DolphinTabWidget::activeViewChanged, this, &DolphinMainWindow::activeViewChanged); connect(m_tabWidget, &DolphinTabWidget::tabCountChanged, diff --git a/src/dolphinpart.desktop b/src/dolphinpart.desktop index da0a659d3..a0d7a96b2 100644 --- a/src/dolphinpart.desktop +++ b/src/dolphinpart.desktop @@ -71,6 +71,7 @@ Name[et]=Ikoonid Name[fi]=Kuvakkeet Name[fr]=Icônes Name[gl]=Iconas +Name[he]=סמלים Name[hu]=Ikonok Name[ia]=Icones Name[id]=Ikon @@ -118,6 +119,7 @@ Name[et]=Kompaktne Name[fi]=Tiivis Name[fr]=Concis Name[gl]=Compacta +Name[he]=קומפקטי Name[hu]=Kompakt Name[ia]=Compacte Name[id]=Sederhana @@ -165,6 +167,7 @@ Name[et]=Üksikasjad Name[fi]=Yksityiskohdat Name[fr]=Détails Name[gl]=Detalles +Name[he]=פרטים Name[hu]=Részletek Name[ia]=Detalios Name[id]=Detail diff --git a/src/dolphintabpage.h b/src/dolphintabpage.h index 45c540775..b8772602d 100644 --- a/src/dolphintabpage.h +++ b/src/dolphintabpage.h @@ -127,7 +127,7 @@ public: * @deprecated The first tab state version has no version number, we keep * this method to restore old states (<= Dolphin 4.14.x). */ - void restoreStateV1(const QByteArray& state); + Q_DECL_DEPRECATED void restoreStateV1(const QByteArray& state); /** * Set whether the tab page is active diff --git a/src/kitemviews/kitemlistview.h b/src/kitemviews/kitemlistview.h index c93297c47..ed1199877 100644 --- a/src/kitemviews/kitemlistview.h +++ b/src/kitemviews/kitemlistview.h @@ -197,12 +197,13 @@ public: int lastVisibleIndex() const; /** - * @return Calculates the required size for all items in the model. - * It might be larger than KItemListView::itemSize(). - * In this case the layout grid will be stretched to assure an - * unclipped item. - * NOTE: the logical height (width) is actually the - * width (height) if the scroll orientation is Qt::Vertical! + * Calculates the required size for all items in the model. + * It might be larger than KItemListView::itemSize(). + * In this case the layout grid will be stretched to assure an + * unclipped item. + * + * @note the logical height (width) is actually the + * width (height) if the scroll orientation is Qt::Vertical! */ void calculateItemSizeHints(QVector<qreal>& logicalHeightHints, qreal& logicalWidthHint) const; @@ -824,13 +825,13 @@ public: KItemListWidgetCreator(); virtual ~KItemListWidgetCreator(); - virtual KItemListWidget* create(KItemListView* view); + virtual KItemListWidget* create(KItemListView* view) Q_DECL_OVERRIDE; - virtual void calculateItemSizeHints(QVector<qreal>& logicalHeightHints, qreal& logicalWidthHint, const KItemListView* view) const; + virtual void calculateItemSizeHints(QVector<qreal>& logicalHeightHints, qreal& logicalWidthHint, const KItemListView* view) const Q_DECL_OVERRIDE; virtual qreal preferredRoleColumnWidth(const QByteArray& role, int index, - const KItemListView* view) const; + const KItemListView* view) const Q_DECL_OVERRIDE; private: KItemListWidgetInformant* m_informant; }; @@ -893,7 +894,7 @@ class KItemListGroupHeaderCreator : public KItemListGroupHeaderCreatorBase { public: virtual ~KItemListGroupHeaderCreator(); - virtual KItemListGroupHeader* create(KItemListView* view); + virtual KItemListGroupHeader* create(KItemListView* view) Q_DECL_OVERRIDE; }; template <class T> diff --git a/src/org.kde.dolphin.desktop b/src/org.kde.dolphin.desktop index 63b72d966..f187cef58 100755 --- a/src/org.kde.dolphin.desktop +++ b/src/org.kde.dolphin.desktop @@ -62,6 +62,7 @@ GenericName[et]=Failihaldur GenericName[fi]=Tiedostonhallinta GenericName[fr]=Gestionnaire de fichiers GenericName[gl]=Xestor de ficheiros +GenericName[he]=מנהל קבצים GenericName[hu]=Fájlkezelő GenericName[ia]=Gerente de file GenericName[id]=Manajer Berkas diff --git a/src/settings/kcm/kcmdolphingeneral.desktop b/src/settings/kcm/kcmdolphingeneral.desktop index 556231e44..eb9809bb8 100644 --- a/src/settings/kcm/kcmdolphingeneral.desktop +++ b/src/settings/kcm/kcmdolphingeneral.desktop @@ -108,6 +108,7 @@ Name[et]=Üldine Name[fi]=Yleiset Name[fr]=Général Name[gl]=Xerais +Name[he]=כללי Name[hu]=Általános Name[ia]=General Name[id]=Umum @@ -191,6 +192,7 @@ X-KDE-Keywords[et]=failihaldur X-KDE-Keywords[fi]=tiedostonhallinta X-KDE-Keywords[fr]=gestionnaire de fichiers X-KDE-Keywords[gl]=xestor de ficheiros +X-KDE-Keywords[he]=מנהל קבצים X-KDE-Keywords[hu]=fájlkezelő X-KDE-Keywords[ia]=gerente de file X-KDE-Keywords[id]=manajer berkas diff --git a/src/settings/kcm/kcmdolphinnavigation.desktop b/src/settings/kcm/kcmdolphinnavigation.desktop index 9280624d6..238f5d266 100644 --- a/src/settings/kcm/kcmdolphinnavigation.desktop +++ b/src/settings/kcm/kcmdolphinnavigation.desktop @@ -107,6 +107,7 @@ Name[et]=Liikumine Name[fi]=Selaus Name[fr]=Navigation Name[gl]=Navegación +Name[he]=ניווט Name[hu]=Navigálás Name[ia]=Navigation Name[id]=Navigasi @@ -192,6 +193,7 @@ X-KDE-Keywords[et]=failihaldur X-KDE-Keywords[fi]=tiedostonhallinta X-KDE-Keywords[fr]=gestionnaire de fichiers X-KDE-Keywords[gl]=xestor de ficheiros +X-KDE-Keywords[he]=מנהל קבצים X-KDE-Keywords[hu]=fájlkezelő X-KDE-Keywords[ia]=gerente de file X-KDE-Keywords[id]=manajer berkas diff --git a/src/settings/kcm/kcmdolphinservices.desktop b/src/settings/kcm/kcmdolphinservices.desktop index 42e0538fa..0b41019a8 100644 --- a/src/settings/kcm/kcmdolphinservices.desktop +++ b/src/settings/kcm/kcmdolphinservices.desktop @@ -66,6 +66,7 @@ Name[et]=Teenused Name[fi]=Palvelut Name[fr]=Services Name[gl]=Servizos +Name[he]=שירותים Name[hu]=Szolgáltatások Name[ia]=Servicios Name[id]=Layanan @@ -149,6 +150,7 @@ X-KDE-Keywords[et]=failihaldur X-KDE-Keywords[fi]=tiedostonhallinta X-KDE-Keywords[fr]=gestionnaire de fichiers X-KDE-Keywords[gl]=xestor de ficheiros +X-KDE-Keywords[he]=מנהל קבצים X-KDE-Keywords[hu]=fájlkezelő X-KDE-Keywords[ia]=gerente de file X-KDE-Keywords[id]=manajer berkas diff --git a/src/settings/kcm/kcmdolphinviewmodes.desktop b/src/settings/kcm/kcmdolphinviewmodes.desktop index 0be2656a0..41062deff 100644 --- a/src/settings/kcm/kcmdolphinviewmodes.desktop +++ b/src/settings/kcm/kcmdolphinviewmodes.desktop @@ -191,6 +191,7 @@ X-KDE-Keywords[et]=failihaldur X-KDE-Keywords[fi]=tiedostonhallinta X-KDE-Keywords[fr]=gestionnaire de fichiers X-KDE-Keywords[gl]=xestor de ficheiros +X-KDE-Keywords[he]=מנהל קבצים X-KDE-Keywords[hu]=fájlkezelő X-KDE-Keywords[ia]=gerente de file X-KDE-Keywords[id]=manajer berkas diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt index c7159bf1b..1c2335cbf 100644 --- a/src/tests/CMakeLists.txt +++ b/src/tests/CMakeLists.txt @@ -1,155 +1,59 @@ set( EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR} ) find_package(Qt5Test CONFIG REQUIRED) -include(ECMMarkAsTest) - -# needed on windows to correctly use the files from dolphinprivate -add_definitions(-DDOLPHIN_EXPORT=) +include(ECMAddTests) # KItemSetTest -set(kitemsettest_SRCS - kitemsettest.cpp -) - -add_executable(kitemsettest ${kitemsettest_SRCS}) -add_test(kitemsettest kitemsettest) -ecm_mark_as_test(kitemsettest) -target_link_libraries(kitemsettest dolphinprivate Qt5::Test) +ecm_add_test(kitemsettest.cpp LINK_LIBRARIES dolphinprivate Qt5::Test) # KItemRangeTest -set(kitemrangetest_SRCS - kitemrangetest.cpp -) - -add_executable(kitemrangetest ${kitemrangetest_SRCS}) -add_test(kitemrangetest kitemrangetest) -ecm_mark_as_test(kitemrangetest) -target_link_libraries(kitemrangetest dolphinprivate Qt5::Test) +ecm_add_test(kitemrangetest.cpp LINK_LIBRARIES dolphinprivate Qt5::Test) # KItemListSelectionManagerTest -set(kitemlistselectionmanagertest_SRCS - kitemlistselectionmanagertest.cpp -) - -add_executable(kitemlistselectionmanagertest ${kitemlistselectionmanagertest_SRCS}) -add_test(kitemlistselectionmanagertest kitemlistselectionmanagertest) -ecm_mark_as_test(kitemlistselectionmanagertest) -target_link_libraries(kitemlistselectionmanagertest dolphinprivate Qt5::Test) +ecm_add_test(kitemlistselectionmanagertest.cpp LINK_LIBRARIES dolphinprivate Qt5::Test) # KItemListControllerTest -set(kitemlistcontrollertest_SRCS - kitemlistcontrollertest.cpp - testdir.cpp - ../dolphindebug.cpp -) - -kconfig_add_kcfg_files(kitemlistcontrollertest_SRCS GENERATE_MOC - ../settings/dolphin_generalsettings.kcfgc -) - -add_executable(kitemlistcontrollertest ${kitemlistcontrollertest_SRCS}) -add_test(kitemlistcontrollertest kitemlistcontrollertest) -ecm_mark_as_test(kitemlistcontrollertest) -target_link_libraries(kitemlistcontrollertest dolphinprivate Qt5::Test) +ecm_add_test(kitemlistcontrollertest.cpp testdir.cpp +TEST_NAME kitemlistcontrollertest +LINK_LIBRARIES dolphinprivate Qt5::Test) # KFileItemListViewTest -set(kfileitemlistviewtest_SRCS - kfileitemlistviewtest.cpp - testdir.cpp - ../dolphindebug.cpp -) - -kconfig_add_kcfg_files(kfileitemlistviewtest_SRCS GENERATE_MOC - ../settings/dolphin_generalsettings.kcfgc -) - -add_executable(kfileitemlistviewtest ${kfileitemlistviewtest_SRCS}) -add_test(kfileitemlistviewtest kfileitemlistviewtest) -ecm_mark_as_test(kfileitemlistviewtest) -target_link_libraries(kfileitemlistviewtest dolphinprivate Qt5::Test) +ecm_add_test(kfileitemlistviewtest.cpp testdir.cpp +TEST_NAME kfileitemlistviewtest +LINK_LIBRARIES dolphinprivate Qt5::Test) # KFileItemModelTest -set(kfileitemmodeltest_SRCS - kfileitemmodeltest.cpp - testdir.cpp - ../dolphindebug.cpp -) - -kconfig_add_kcfg_files(kfileitemmodeltest_SRCS GENERATE_MOC - ../settings/dolphin_generalsettings.kcfgc -) - -add_executable(kfileitemmodeltest ${kfileitemmodeltest_SRCS}) -add_test(kfileitemmodeltest kfileitemmodeltest) -ecm_mark_as_test(kfileitemmodeltest) -target_link_libraries(kfileitemmodeltest dolphinprivate Qt5::Test) +ecm_add_test(kfileitemmodeltest.cpp testdir.cpp +TEST_NAME kfileitemmodeltest +LINK_LIBRARIES dolphinprivate dolphinstatic Qt5::Test) # KFileItemModelBenchmark -set(kfileitemmodelbenchmark_SRCS - kfileitemmodelbenchmark.cpp - testdir.cpp - ../dolphindebug.cpp -) - -kconfig_add_kcfg_files(kfileitemmodelbenchmark_SRCS GENERATE_MOC - ../settings/dolphin_generalsettings.kcfgc -) - -add_executable(kfileitemmodelbenchmark ${kfileitemmodelbenchmark_SRCS}) -ecm_mark_as_test(kfileitemmodelbenchmark) -target_link_libraries(kfileitemmodelbenchmark dolphinprivate Qt5::Test) +ecm_add_test(kfileitemmodelbenchmark.cpp testdir.cpp +TEST_NAME kfileitemmodelbenchmark +LINK_LIBRARIES dolphinprivate Qt5::Test) # KItemListKeyboardSearchManagerTest -set(kitemlistkeyboardsearchmanagertest_SRCS - kitemlistkeyboardsearchmanagertest.cpp -) - -add_executable(kitemlistkeyboardsearchmanagertest ${kitemlistkeyboardsearchmanagertest_SRCS}) -add_test(kitemlistkeyboardsearchmanagertest kitemlistkeyboardsearchmanagertest) -ecm_mark_as_test(kitemlistkeyboardsearchmanagertest) -target_link_libraries(kitemlistkeyboardsearchmanagertest dolphinprivate Qt5::Test) +ecm_add_test(kitemlistkeyboardsearchmanagertest.cpp LINK_LIBRARIES dolphinprivate Qt5::Test) # DolphinSearchBox if (KF5Baloo_FOUND) - set(dolphinsearchboxtest_SRCS - dolphinsearchboxtest.cpp - ../search/dolphinfacetswidget.cpp - ../search/dolphinsearchbox.cpp - ) - kconfig_add_kcfg_files(dolphinsearchboxtest_SRCS - ../search/dolphin_searchsettings.kcfgc - ) - - add_executable(dolphinsearchboxtest ${dolphinsearchboxtest_SRCS}) - add_test(dolphinsearchboxtest dolphinsearchboxtest) - ecm_mark_as_test(dolphinsearchboxtest) - target_link_libraries(dolphinsearchboxtest dolphinprivate Qt5::Test) + ecm_add_test(dolphinsearchboxtest.cpp + TEST_NAME dolphinsearchboxtest + LINK_LIBRARIES dolphinprivate dolphinstatic Qt5::Test) endif() # KStandardItemModelTest -set(kstandarditemmodeltest_SRCS - kstandarditemmodeltest.cpp - ../dolphindebug.cpp -) - -add_executable(kstandarditemmodeltest ${kstandarditemmodeltest_SRCS}) -add_test(kstandarditemmodeltest kstandarditemmodeltest) -ecm_mark_as_test(kstandarditemmodeltest) -target_link_libraries(kstandarditemmodeltest dolphinprivate Qt5::Test) +ecm_add_test(kstandarditemmodeltest.cpp +TEST_NAME kstandarditemmodeltest +LINK_LIBRARIES dolphinprivate dolphinstatic Qt5::Test) # ViewPropertiesTest -set(viewpropertiestest_SRCS - viewpropertiestest.cpp - testdir.cpp - ../dolphindebug.cpp -) -kconfig_add_kcfg_files(viewpropertiestest_SRCS GENERATE_MOC - ../settings/dolphin_generalsettings.kcfgc - ../settings/dolphin_directoryviewpropertysettings.kcfgc -) +ecm_add_test(viewpropertiestest.cpp testdir.cpp +TEST_NAME viewpropertiestest +LINK_LIBRARIES dolphinprivate dolphinstatic Qt5::Test) -add_executable(viewpropertiestest ${viewpropertiestest_SRCS}) -add_test(viewpropertiestest viewpropertiestest) -ecm_mark_as_test(viewpropertiestest) -target_link_libraries(viewpropertiestest dolphinprivate Qt5::Test) +# DolphinMainWindowTest +ecm_add_test(dolphinmainwindowtest.cpp +TEST_NAME dolphinmainwindowtest +LINK_LIBRARIES dolphinprivate dolphinstatic Qt5::Test) diff --git a/src/tests/dolphinmainwindowtest.cpp b/src/tests/dolphinmainwindowtest.cpp new file mode 100644 index 000000000..be86c5016 --- /dev/null +++ b/src/tests/dolphinmainwindowtest.cpp @@ -0,0 +1,69 @@ +/*************************************************************************** + * Copyright (C) 2017 by Elvis Angelaccio <[email protected]> * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * + ***************************************************************************/ + +#include "dolphinmainwindow.h" +#include "dolphintabpage.h" +#include "dolphintabwidget.h" +#include "dolphinviewcontainer.h" + +#include <QTest> + +class DolphinMainWindowTest : public QObject +{ + Q_OBJECT + +private slots: + void init(); + void testClosingTabsWithSearchBoxVisible(); + +private: + QScopedPointer<DolphinMainWindow> m_mainWindow; +}; + +void DolphinMainWindowTest::init() +{ + m_mainWindow.reset(new DolphinMainWindow()); +} + +// See https://bugs.kde.org/show_bug.cgi?id=379135 +void DolphinMainWindowTest::testClosingTabsWithSearchBoxVisible() +{ + m_mainWindow->openDirectories({ QUrl::fromLocalFile(QDir::homePath()) }, false); + m_mainWindow->show(); + // Without this call the searchbox doesn't get FocusIn events. + QTest::qWaitForWindowExposed(m_mainWindow.data()); + QVERIFY(m_mainWindow->isVisible()); + + auto tabWidget = m_mainWindow->findChild<DolphinTabWidget*>("tabWidget"); + QVERIFY(tabWidget); + + // Show search box on first tab. + tabWidget->currentTabPage()->activeViewContainer()->setSearchModeEnabled(true); + + tabWidget->openNewActivatedTab(QUrl::fromLocalFile(QDir::homePath())); + QCOMPARE(tabWidget->count(), 2); + + // Triggers the crash in bug #379135. + tabWidget->closeTab(); + QCOMPARE(tabWidget->count(), 1); +} + +QTEST_MAIN(DolphinMainWindowTest) + +#include "dolphinmainwindowtest.moc" diff --git a/src/tests/kfileitemmodeltest.cpp b/src/tests/kfileitemmodeltest.cpp index 59ff63069..b8e089530 100644 --- a/src/tests/kfileitemmodeltest.cpp +++ b/src/tests/kfileitemmodeltest.cpp @@ -135,10 +135,11 @@ void KFileItemModelTest::cleanup() void KFileItemModelTest::testDefaultRoles() { const QSet<QByteArray> roles = m_model->roles(); - QCOMPARE(roles.count(), 3); + QCOMPARE(roles.count(), 4); QVERIFY(roles.contains("text")); QVERIFY(roles.contains("isDir")); QVERIFY(roles.contains("isLink")); + QVERIFY(roles.contains("isHidden")); } void KFileItemModelTest::testDefaultSortRole() diff --git a/src/tests/kitemlistselectionmanagertest.cpp b/src/tests/kitemlistselectionmanagertest.cpp index 18a79bd3f..48e8dce04 100644 --- a/src/tests/kitemlistselectionmanagertest.cpp +++ b/src/tests/kitemlistselectionmanagertest.cpp @@ -335,27 +335,26 @@ Q_DECLARE_METATYPE(QList<int>) * * The test is data-driven and takes the following arguments: * - * \param initialSelection The selection at the beginning. - * \param anchor This item will be the anchor item. - * \param current This item will be the current item. - * \param expectedSelection Expected selection after anchor and current are set. - * \param changeType Type of the change that is done then: - * - NoChange - * - InsertItems -> data.at(0) provides the KItemRangeList. \sa KItemListSelectionManager::itemsInserted() - * - RemoveItems -> data.at(0) provides the KItemRangeList. \sa KItemListSelectionManager::itemsRemoved() - * - MoveItems -> data.at(0) provides the KItemRange containing the original indices, - * data.at(1) provides the list containing the new indices - * \sa KItemListSelectionManager::itemsMoved(), KItemModelBase::itemsMoved() - * - EndAnchoredSelection - * - SetSelected -> data.at(0) provides the index where the selection process starts, - * data.at(1) provides the number of indices to be selected, - * data.at(2) provides the selection mode. - * \sa KItemListSelectionManager::setSelected() - * \param data A list of QVariants which will be cast to the arguments needed for the chosen ChangeType (see above). - * \param finalSelection The expected final selection. + * param initialSelection The selection at the beginning. + * param anchor This item will be the anchor item. + * param current This item will be the current item. + * param expectedSelection Expected selection after anchor and current are set. + * param changeType Type of the change that is done then: + * - NoChange + * - InsertItems -> data.at(0) provides the KItemRangeList. \sa KItemListSelectionManager::itemsInserted() + * - RemoveItems -> data.at(0) provides the KItemRangeList. \sa KItemListSelectionManager::itemsRemoved() + * - MoveItems -> data.at(0) provides the KItemRange containing the original indices, + * data.at(1) provides the list containing the new indices + * \sa KItemListSelectionManager::itemsMoved(), KItemModelBase::itemsMoved() + * - EndAnchoredSelection + * - SetSelected -> data.at(0) provides the index where the selection process starts, + * data.at(1) provides the number of indices to be selected, + * data.at(2) provides the selection mode. + * \sa KItemListSelectionManager::setSelected() + * param data A list of QVariants which will be cast to the arguments needed for the chosen ChangeType (see above). + * param finalSelection The expected final selection. * */ - void KItemListSelectionManagerTest::testChangeSelection_data() { QTest::addColumn<KItemSet>("initialSelection"); |
