mirror of
https://invent.kde.org/system/dolphin
synced 2024-09-20 00:41:23 +00:00
Fix problem with the filemanagement profile creating the sidebar -inside- the tabwidget
instead of outside (you could see the difference when doing "add tab" :). This is because I removed some harmful magic from the kde3 code some time ago (I'm pretty sure it created surprises in profiles with splitters and no tabs, only the current view would be converted to a tab container...). We now never "convert to a tab container", we create the tab container correctly in the first place. svn path=/trunk/KDE/kdebase/apps/; revision=741954
This commit is contained in:
parent
e44bc4ed12
commit
fe47757662
|
@ -1,7 +1,4 @@
|
|||
[Profile]
|
||||
Container0_Children=View1,View2
|
||||
Container0_Orientation=Horizontal
|
||||
Container0_SplitterSizes=30,100
|
||||
Name=File Management
|
||||
Name[af]=Lêer Bestuurder
|
||||
Name[ar]=إدارة الملفات
|
||||
|
@ -24,13 +21,13 @@ Name[fr]=Gestion de fichiers
|
|||
Name[fy]=Triembehear
|
||||
Name[ga]=Bainisteoireacht Chomhad
|
||||
Name[gl]=Xestión de Ficheiros
|
||||
Name[he]=ניהול קבצים
|
||||
Name[he]=× ×™×”×•×œ קבצי×<EFBFBD>
|
||||
Name[hr]=Upravitelj datotekama
|
||||
Name[hu]=Fájlkezelő
|
||||
Name[is]=Skráastjóri
|
||||
Name[it]=Gestione file
|
||||
Name[ja]=ファイルマネージメント
|
||||
Name[ka]=ფაილთა მართვა
|
||||
Name[ka]=ფáƒ<EFBFBD>ილთáƒ<EFBFBD> მáƒ<EFBFBD>რთვáƒ<EFBFBD>
|
||||
Name[kk]=Файдарды басқару
|
||||
Name[km]=ការគ្រប់គ្រងឯកសារ
|
||||
Name[ko]=파일 관리자
|
||||
|
@ -69,13 +66,17 @@ Name[zh_CN]=文件管理
|
|||
Name[zh_TW]=檔案管理
|
||||
XMLUIFile=konq-filemanagement.rc
|
||||
RootItem=Container0
|
||||
Container0_Children=View1,Tabs1
|
||||
Container0_Orientation=Horizontal
|
||||
Container0_SplitterSizes=30,100
|
||||
Tabs1_Children=ViewT0
|
||||
View1_LinkedView=true
|
||||
View1_PassiveMode=true
|
||||
View1_ServiceName=konq_sidebartng
|
||||
View1_ServiceType=Browser/View
|
||||
View1_ToggleView=true
|
||||
View2_LinkedView=true
|
||||
View2_PassiveMode=false
|
||||
View2_ServiceName=dolphinpart
|
||||
View2_ServiceType=inode/directory
|
||||
View2_URL=$HOME
|
||||
ViewT0_LinkedView=true
|
||||
ViewT0_PassiveMode=false
|
||||
ViewT0_ServiceName=dolphinpart
|
||||
ViewT0_ServiceType=inode/directory
|
||||
ViewT0_URL[$e]=$HOME
|
||||
|
|
|
@ -905,7 +905,7 @@ void KonqViewManager::loadViewProfileFromGroup( const KConfigGroup &profileGroup
|
|||
// from profile loading (e.g. in switchView)
|
||||
m_bLoadingProfile = true;
|
||||
|
||||
loadItem( profileGroup, tabContainer(), rootItem, defaultURL, openUrl && forcedURL.isEmpty() );
|
||||
loadItem( profileGroup, m_pMainWindow, rootItem, defaultURL, openUrl && forcedURL.isEmpty() );
|
||||
|
||||
m_bLoadingProfile = false;
|
||||
|
||||
|
@ -1255,6 +1255,10 @@ void KonqViewManager::loadItem( const KConfigGroup &cfg, KonqFrameContainerBase
|
|||
//kDebug(1202) << "KonqViewManager::loadItem Item is a Tabs";
|
||||
|
||||
int index = cfg.readEntry( QString::fromLatin1( "activeChildIndex" ).prepend(prefix), 0 );
|
||||
if ( !m_tabContainer ) {
|
||||
createTabContainer(parent->asQWidget(), parent);
|
||||
parent->insertChildFrame( m_tabContainer );
|
||||
}
|
||||
|
||||
QStringList childList = cfg.readEntry( QString::fromLatin1( "Children" ).prepend( prefix ),QStringList() );
|
||||
for ( QStringList::Iterator it = childList.begin(); it != childList.end(); ++it )
|
||||
|
@ -1531,15 +1535,20 @@ void KonqViewManager::printFullHierarchy( KonqFrameContainerBase * container )
|
|||
KonqFrameTabs * KonqViewManager::tabContainer()
|
||||
{
|
||||
if ( !m_tabContainer ) {
|
||||
m_tabContainer = new KonqFrameTabs( m_pMainWindow /*as widget*/, m_pMainWindow /*as container*/, this );
|
||||
|
||||
connect( m_tabContainer, SIGNAL(ctrlTabPressed()), m_pMainWindow, SLOT(slotCtrlTabPressed()) );
|
||||
applyConfiguration();
|
||||
createTabContainer(m_pMainWindow /*as widget*/, m_pMainWindow /*as container*/);
|
||||
m_pMainWindow->insertChildFrame( m_tabContainer );
|
||||
}
|
||||
return m_tabContainer;
|
||||
}
|
||||
|
||||
void KonqViewManager::createTabContainer(QWidget* parent, KonqFrameContainerBase* parentContainer)
|
||||
{
|
||||
//kDebug(1202) << "createTabContainer" << parent << parentContainer;
|
||||
m_tabContainer = new KonqFrameTabs( parent, parentContainer, this );
|
||||
connect( m_tabContainer, SIGNAL(ctrlTabPressed()), m_pMainWindow, SLOT(slotCtrlTabPressed()) );
|
||||
applyConfiguration();
|
||||
}
|
||||
|
||||
void KonqViewManager::applyConfiguration()
|
||||
{
|
||||
tabContainer()->setAlwaysTabbedMode( KonqSettings::alwaysTabbedMode() );
|
||||
|
|
|
@ -322,8 +322,10 @@ private:
|
|||
void loadItem( const KConfigGroup &cfg, KonqFrameContainerBase *parent,
|
||||
const QString &name, const KUrl & defaultURL, bool openUrl, bool openAfterCurrentPage = false, int pos = -1 );
|
||||
|
||||
// Disabled - we do it ourselves
|
||||
virtual void setActiveComponent(const KComponentData &) {}
|
||||
void createTabContainer(QWidget* parent, KonqFrameContainerBase* parentContainer);
|
||||
|
||||
// Disabled - we do it ourselves
|
||||
virtual void setActiveComponent(const KComponentData &) {}
|
||||
|
||||
signals:
|
||||
void aboutToRemoveTab( KonqFrameBase* tab );
|
||||
|
|
|
@ -101,10 +101,10 @@ void ViewMgrTest::initTestCase()
|
|||
void ViewMgrTest::testCreateFirstView()
|
||||
{
|
||||
KonqMainWindow mainWindow;
|
||||
KonqViewManager* viewMgr = mainWindow.viewManager();
|
||||
KonqView* view = viewMgr->createFirstView( "KonqAboutPage", "konq_aboutpage" );
|
||||
KonqViewManager* viewManager = mainWindow.viewManager();
|
||||
KonqView* view = viewManager->createFirstView( "KonqAboutPage", "konq_aboutpage" );
|
||||
QVERIFY( view );
|
||||
QVERIFY( viewMgr->tabContainer() );
|
||||
QVERIFY( viewManager->tabContainer() );
|
||||
|
||||
// Use DebugFrameVisitor to find out the structure of the frame hierarchy
|
||||
QCOMPARE( DebugFrameVisitor::inspect(&mainWindow), QString("MT[F].") ); // mainWindow, one tab, one frame
|
||||
|
@ -114,7 +114,7 @@ void ViewMgrTest::testCreateFirstView()
|
|||
QCOMPARE( partWidget->topLevelWidget(), &mainWindow );
|
||||
QWidget* frame = view->frame()->asQWidget();
|
||||
QCOMPARE( partWidget->parentWidget(), frame );
|
||||
QWidget* tabWidget = viewMgr->tabContainer()->asQWidget();
|
||||
QWidget* tabWidget = viewManager->tabContainer()->asQWidget();
|
||||
QCOMPARE( frame->parentWidget()->parentWidget(), tabWidget );
|
||||
|
||||
// Check frame geometry, to check that all layouts are there
|
||||
|
@ -138,10 +138,10 @@ void ViewMgrTest::testCreateFirstView()
|
|||
void ViewMgrTest::testRemoveFirstView()
|
||||
{
|
||||
KonqMainWindow mainWindow;
|
||||
KonqViewManager* viewMgr = mainWindow.viewManager();
|
||||
KonqView* view = viewMgr->createFirstView( "KonqAboutPage", "konq_aboutpage" );
|
||||
KonqViewManager* viewManager = mainWindow.viewManager();
|
||||
KonqView* view = viewManager->createFirstView( "KonqAboutPage", "konq_aboutpage" );
|
||||
QCOMPARE( DebugFrameVisitor::inspect(&mainWindow), QString("MT[F].") ); // mainWindow, tab widget, one frame
|
||||
viewMgr->removeView( view );
|
||||
viewManager->removeView( view );
|
||||
QCOMPARE( DebugFrameVisitor::inspect(&mainWindow), QString("MT[F].") ); // removing not allowed
|
||||
// real test for removeView is part of testSplitView
|
||||
}
|
||||
|
@ -149,11 +149,11 @@ void ViewMgrTest::testRemoveFirstView()
|
|||
void ViewMgrTest::testSplitView()
|
||||
{
|
||||
KonqMainWindow mainWindow;
|
||||
KonqViewManager* viewMgr = mainWindow.viewManager();
|
||||
KonqView* view = viewMgr->createFirstView( "KonqAboutPage", "konq_aboutpage" );
|
||||
KonqViewManager* viewManager = mainWindow.viewManager();
|
||||
KonqView* view = viewManager->createFirstView( "KonqAboutPage", "konq_aboutpage" );
|
||||
|
||||
QCOMPARE( DebugFrameVisitor::inspect(&mainWindow), QString("MT[F].") ); // mainWindow, tab widget, one frame
|
||||
KonqView* view2 = viewMgr->splitView( view, Qt::Horizontal );
|
||||
KonqView* view2 = viewManager->splitView( view, Qt::Horizontal );
|
||||
QVERIFY( view2 );
|
||||
QCOMPARE( DebugFrameVisitor::inspect(&mainWindow), QString("MT[C(FF)].") ); // mainWindow, tab widget, one splitter, two frames
|
||||
|
||||
|
@ -206,27 +206,27 @@ void ViewMgrTest::testSplitView()
|
|||
|
||||
|
||||
// Split again
|
||||
KonqView* view3 = viewMgr->splitView( view, Qt::Horizontal );
|
||||
KonqView* view3 = viewManager->splitView( view, Qt::Horizontal );
|
||||
QVERIFY( view3 );
|
||||
QCOMPARE( DebugFrameVisitor::inspect(&mainWindow), QString("MT[C(C(FF)F)].") );
|
||||
|
||||
// Now test removing the first view
|
||||
viewMgr->removeView( view );
|
||||
viewManager->removeView( view );
|
||||
QCOMPARE( DebugFrameVisitor::inspect(&mainWindow), QString("MT[C(FF)].") ); // mainWindow, tab widget, one splitter, two frames
|
||||
|
||||
// Now test removing the last view
|
||||
viewMgr->removeView( view3 );
|
||||
viewManager->removeView( view3 );
|
||||
QCOMPARE( DebugFrameVisitor::inspect(&mainWindow), QString("MT[F].") ); // mainWindow, tab widget, one frame
|
||||
}
|
||||
|
||||
void ViewMgrTest::testSplitMainContainer()
|
||||
{
|
||||
KonqMainWindow mainWindow;
|
||||
KonqViewManager* viewMgr = mainWindow.viewManager();
|
||||
KonqView* view = viewMgr->createFirstView( "KonqAboutPage", "konq_aboutpage" );
|
||||
KonqViewManager* viewManager = mainWindow.viewManager();
|
||||
KonqView* view = viewManager->createFirstView( "KonqAboutPage", "konq_aboutpage" );
|
||||
QCOMPARE( DebugFrameVisitor::inspect(&mainWindow), QString("MT[F].") ); // mainWindow, tab widget, one frame
|
||||
KonqFrameContainerBase* tabContainer = view->frame()->parentContainer();
|
||||
KonqView* view2 = viewMgr->splitMainContainer( view, Qt::Horizontal, "KonqAboutPage", "konq_aboutpage", true );
|
||||
KonqView* view2 = viewManager->splitMainContainer( view, Qt::Horizontal, "KonqAboutPage", "konq_aboutpage", true );
|
||||
QVERIFY( view2 );
|
||||
QCOMPARE( DebugFrameVisitor::inspect(&mainWindow), QString("MC(FT[F]).") ); // mainWindow, splitter, frame, tab widget, one frame
|
||||
|
||||
|
@ -256,17 +256,17 @@ void ViewMgrTest::testSplitMainContainer()
|
|||
QCOMPARE(container->widget(1), tabContainer->asQWidget());
|
||||
|
||||
// Now test removing the view we added last
|
||||
viewMgr->removeView( view2 );
|
||||
viewManager->removeView( view2 );
|
||||
QCOMPARE( DebugFrameVisitor::inspect(&mainWindow), QString("MT[F].") ); // mainWindow, tab widget, one frame
|
||||
}
|
||||
|
||||
void ViewMgrTest::testAddTab()
|
||||
{
|
||||
KonqMainWindow mainWindow;
|
||||
KonqViewManager* viewMgr = mainWindow.viewManager();
|
||||
KonqView* view = viewMgr->createFirstView( "KonqAboutPage", "konq_aboutpage" );
|
||||
KonqViewManager* viewManager = mainWindow.viewManager();
|
||||
KonqView* view = viewManager->createFirstView( "KonqAboutPage", "konq_aboutpage" );
|
||||
QVERIFY( view );
|
||||
KonqView* viewTab2 = viewMgr->addTab("text/html");
|
||||
KonqView* viewTab2 = viewManager->addTab("text/html");
|
||||
QVERIFY( viewTab2 );
|
||||
QCOMPARE( DebugFrameVisitor::inspect(&mainWindow), QString("MT[FF].") ); // mainWindow, tab widget, two tabs
|
||||
|
||||
|
@ -275,9 +275,9 @@ void ViewMgrTest::testAddTab()
|
|||
void ViewMgrTest::testDuplicateTab()
|
||||
{
|
||||
KonqMainWindow mainWindow;
|
||||
KonqViewManager* viewMgr = mainWindow.viewManager();
|
||||
KonqView* view = viewMgr->createFirstView( "KonqAboutPage", "konq_aboutpage" );
|
||||
viewMgr->duplicateTab(view->frame()); // should return a KonqFrameBase?
|
||||
KonqViewManager* viewManager = mainWindow.viewManager();
|
||||
KonqView* view = viewManager->createFirstView( "KonqAboutPage", "konq_aboutpage" );
|
||||
viewManager->duplicateTab(view->frame()); // should return a KonqFrameBase?
|
||||
|
||||
QCOMPARE( DebugFrameVisitor::inspect(&mainWindow), QString("MT[FF].") ); // mainWindow, tab widget, two tabs
|
||||
// TODO check serviceType and serviceName of the new view
|
||||
|
@ -286,9 +286,9 @@ void ViewMgrTest::testDuplicateTab()
|
|||
void ViewMgrTest::testDuplicateSplittedTab()
|
||||
{
|
||||
KonqMainWindow mainWindow;
|
||||
KonqViewManager* viewMgr = mainWindow.viewManager();
|
||||
KonqView* view = viewMgr->createFirstView( "KonqAboutPage", "konq_aboutpage" );
|
||||
KonqView* view2 = viewMgr->splitView( view, Qt::Vertical );
|
||||
KonqViewManager* viewManager = mainWindow.viewManager();
|
||||
KonqView* view = viewManager->createFirstView( "KonqAboutPage", "konq_aboutpage" );
|
||||
KonqView* view2 = viewManager->splitView( view, Qt::Vertical );
|
||||
QVERIFY( view2 );
|
||||
QCOMPARE( DebugFrameVisitor::inspect(&mainWindow), QString("MT[C(FF)].") ); // mainWindow, tab widget, one splitter, two frames
|
||||
|
||||
|
@ -296,17 +296,24 @@ void ViewMgrTest::testDuplicateSplittedTab()
|
|||
QVERIFY( container );
|
||||
QVERIFY( container->parentContainer()->frameType() == "Tabs" ); // TODO enum instead
|
||||
|
||||
viewMgr->duplicateTab(container); // TODO shouldn't it return a KonqFrameBase?
|
||||
viewManager->duplicateTab(container); // TODO shouldn't it return a KonqFrameBase?
|
||||
QCOMPARE( DebugFrameVisitor::inspect(&mainWindow), QString("MT[C(FF)C(FF)].") ); // mainWindow, tab widget, two tabs
|
||||
|
||||
viewMgr->removeTab(container);
|
||||
viewManager->removeTab(container);
|
||||
QCOMPARE( DebugFrameVisitor::inspect(&mainWindow), QString("MT[C(FF)].") ); // mainWindow, tab widget, one tab
|
||||
}
|
||||
|
||||
void ViewMgrTest::testLoadProfile()
|
||||
{
|
||||
// TODO
|
||||
// TODO check view->locationBarUrl() and mainWindow.locationBarUrl() too
|
||||
KonqMainWindow mainWindow;
|
||||
KonqViewManager* viewManager = mainWindow.viewManager();
|
||||
const QString profile = KStandardDirs::locate("data", "konqueror/profiles/filemanagement");
|
||||
QVERIFY(!profile.isEmpty());
|
||||
QString path = QDir::homePath();
|
||||
viewManager->loadViewProfileFromFile(profile, "filemanagement", KUrl(path));
|
||||
// TODO QCOMPARE(view->locationBarUrl(), path);
|
||||
QCOMPARE( DebugFrameVisitor::inspect(&mainWindow), QString("MC(FT[F]).") ); // mainWindow, splitter, frame, tab widget, one frame
|
||||
QCOMPARE(mainWindow.locationBarURL(), path);
|
||||
}
|
||||
|
||||
#include "konqviewmgrtest.moc"
|
||||
|
|
Loading…
Reference in a new issue