Use the new "built-into" property to treat builtin directory views separately

from special-purpose ones (Cervisia, fsview). This fixes the famous bug that
Konqueror saves "cervisia" as the default view-mode for directories.

This property also helps cleaning up the "which instance for bug reporting"
code. However the KGlobal::_activeInstance approach is quite broken, it
only works with a single mainwindow... I'll need to react on "report bug"
action being activated (how? KHelpMenu doesn't make this easy)...

svn path=/trunk/kdebase/konqueror/; revision=238447
This commit is contained in:
David Faure 2003-07-21 22:52:51 +00:00
parent 6c1b48ca20
commit cb031744b9
10 changed files with 73 additions and 33 deletions

View file

@ -6,11 +6,12 @@ Name=Icon View
Name[af]=Ikoon Besigtig
Name[az]=Timsal Görünüşü
Name[be]=У выглядзе піктаграмаў
Name[bg]=В вид на икона
Name[bg]=Преглед с икони
Name[br]=Gwel arlun
Name[bs]=Ikone
Name[ca]=Vista d'icones
Name[cs]=Pohled s ikonami
Name[cy]=Golwg Eicon
Name[da]=Ikonvisning
Name[de]=Symbol-Ansicht
Name[el]=Προβολή Εικονιδίων
@ -29,8 +30,10 @@ Name[is]=Táknmyndasýn
Name[it]=Vista a icone
Name[ja]=
Name[ko]=
Name[lo]=
Name[lt]=Rodyti piktogramas
Name[lv]=Ikonu Skatījums
Name[mn]=Тэмдэгээр харах
Name[mt]=Ikoni
Name[nb]=Ikonvisning
Name[nl]=Pictogramweergave
@ -46,11 +49,12 @@ Name[sl]=Ikoniziran pogled
Name[sr]=Prikaz sa ikonicama
Name[sv]=Ikonvy
Name[ta]=ÌÚõÀ¼ì ¸¡ðº¢
Name[th]=
Name[th]=
Name[tr]=Simge Görünümü
Name[uk]=Вигляд піктограмами
Name[ven]=Mbonalelo ya aikhono
Name[vi]=Xem icon
Name[wa]=Vey en imådjetes
Name[xh]=Imboniselo Yophawu lomfanekiso
Name[zh_CN]=
Name[zh_TW]=
@ -63,5 +67,6 @@ X-KDE-BrowserView-HideFromMenus=true
X-KDE-BrowserView-Args=IconView
X-KDE-BrowserView-ModeProperty=viewMode
X-KDE-BrowserView-ModePropertyValue=IconView
X-KDE-BrowserView-Built-Into=konqueror
Icon=view_icon
InitialPreference=10

View file

@ -5,11 +5,12 @@ Exec=blahfoo
Name=MultiColumn View
Name[af]=Multi-kolom Besigtig
Name[az]=Çoxlu Sütun Görünüşü
Name[bg]=В няколко колони
Name[bg]=Преглед в няколко колони
Name[br]=Gwel liesbann
Name[bs]=Višekolonski pogled
Name[ca]=Vista multicolumna
Name[cs]=Vícesloupcový pohled
Name[cy]=Golwg Aml-golofn
Name[da]=Multisøjlevisning
Name[de]=Mehrspaltige Ansicht
Name[el]=Προβολή Πολλών Στηλών
@ -18,7 +19,7 @@ Name[es]=Vista multicolumna
Name[et]=Vaade mitme tulbana
Name[fa]=منظر چند ستونی
Name[fi]=Monipalstanäkymä
Name[fr]=Multi-colonnes
Name[fr]=Multicolonnes
Name[gl]=Vista en Múltiples Columnas
Name[he]=תצוגת טורים
Name[hr]=Pogled s više stupaca
@ -28,8 +29,10 @@ Name[is]=Dálkskipt sýn
Name[it]=Vista a colonne multiple
Name[ja]=
Name[ko]=
Name[lo]=
Name[lt]=Rodyti keliais stulpeliais
Name[lv]=Daudzkolonu Skatījums
Name[mn]=Олон баганаар харах
Name[mt]=Kolonni
Name[nb]=Flerkolonnevisning
Name[nl]=Multikolomweergave
@ -45,7 +48,7 @@ Name[sl]=Večstolpčni pogled
Name[sr]=Prikaz sa više kolona
Name[sv]=Flerkolumnsvy
Name[ta]=Àø¿¢Ãü ¸¡ðº¢
Name[th]=
Name[th]=
Name[tr]=Çoklu Sütun Görünümü
Name[uk]=Вигляд стовпчиками
Name[ven]=Mbonalelo ya kholomu dzo fhambananho
@ -62,5 +65,6 @@ X-KDE-BrowserView-HideFromMenus=true
X-KDE-BrowserView-Args=MultiColumnView
X-KDE-BrowserView-ModeProperty=viewMode
X-KDE-BrowserView-ModePropertyValue=MultiColumnView
X-KDE-BrowserView-Built-Into=konqueror
Icon=view_multicolumn
InitialPreference=9

View file

@ -1468,8 +1468,10 @@ void KonqMainWindow::slotViewModeToggle( bool toggle )
m_currentView->openURL( locURL, locationBarURL, nameFilter );
}
// Now save this setting, either locally or globally
if ( m_bSaveViewPropertiesLocally )
// Now save this setting, either locally or globally (for directories only)
// (We don't have views with viewmodes other than for dirs currently;
// once we do, we might want to implement per-mimetype global-saving)
if ( m_bSaveViewPropertiesLocally && m_currentView->supportsServiceType( "inode/directory" ) )
{
KURL u ( m_currentView->url() );
u.addPath(".directory");
@ -1482,12 +1484,16 @@ void KonqMainWindow::slotViewModeToggle( bool toggle )
}
} else
{
KConfig *config = KGlobal::config();
KConfigGroupSaver cgs( config, "MainView Settings" );
config->writeEntry( "ViewMode", modeName );
config->sync();
m_sViewModeForDirectory = modeName;
kdDebug(1202) << "m_sViewModeForDirectory=" << m_sViewModeForDirectory << endl;
// We save the global view mode only if the view is a built-in view
if ( m_currentView->isBuiltinView() )
{
KConfig *config = KGlobal::config();
KConfigGroupSaver cgs( config, "MainView Settings" );
config->writeEntry( "ViewMode", modeName );
config->sync();
m_sViewModeForDirectory = modeName;
//kdDebug(1202) << "m_sViewModeForDirectory=" << m_sViewModeForDirectory << endl;
}
}
}
@ -1929,10 +1935,7 @@ void KonqMainWindow::slotPartActivated( KParts::Part *part )
updateToolBarActions();
// Set active instance - but take care of builtin views
// TODO: a real mechanism for detecting builtin views (X-KDE-BrowserView-Builtin back ?)
if ( part->instance() && part->instance()->aboutData() &&
( !strcmp( part->instance()->aboutData()->appName(), "konqiconview") ||
!strcmp( part->instance()->aboutData()->appName(), "konqlistview") ) )
if ( m_currentView->isBuiltinView() || !part->instance() /*never!*/)
KGlobal::_activeInstance = KGlobal::instance();
else
KGlobal::_activeInstance = part->instance();

View file

@ -94,7 +94,8 @@ KonqView::KonqView( KonqViewFactory &viewFactory,
m_bPopupMenuEnabled = true;
m_browserIface = new KonqBrowserInterface( this, "browseriface" );
m_bBackRightClick = m_pMainWindow->isBackRightClickEnabled();
m_bFollowActive=false;
m_bFollowActive = false;
m_bBuiltinView = false;
switchView( viewFactory );
}
@ -222,7 +223,7 @@ void KonqView::switchView( KonqViewFactory &viewFactory )
// Set the statusbar in the BE asap to avoid a KMainWindow statusbar being created.
KParts::StatusBarExtension* sbext = statusBarExtension();
if ( sbext )
sbext->setStatusBar( frame()->statusbar() );
sbext->setStatusBar( frame()->statusbar() );
// Activate the new part
if ( oldPart )
@ -234,14 +235,17 @@ void KonqView::switchView( KonqViewFactory &viewFactory )
connectPart();
QVariant prop;
QVariant prop;
prop = m_service->property( "X-KDE-BrowserView-FollowActive");
if (prop.isValid() && prop.toBool())
{
kdDebug(1202) << "KonqView::switchView X-KDE-BroswerView-FollowActive -> setFollowActive" <<endl;
setFollowActive(true);
}
prop = m_service->property( "X-KDE-BrowserView-FollowActive");
if (prop.isValid() && prop.toBool())
{
//kdDebug(1202) << "KonqView::switchView X-KDE-BrowserView-FollowActive -> setFollowActive" <<endl;
setFollowActive(true);
}
prop = m_service->property( "X-KDE-BrowserView-Built-Into" );
m_bBuiltinView = (prop.isValid() && prop.toString() == "konqueror");
if ( !m_pMainWindow->viewManager()->isLoadingProfile() )
{
@ -261,7 +265,7 @@ void KonqView::switchView( KonqViewFactory &viewFactory )
}
else
{
setHierarchicalView( false );
setHierarchicalView( false );
}
// Honour "linked view"
@ -1197,7 +1201,7 @@ bool KonqView::prepareReload( KParts::URLArgs& args )
}
// Re-set referrer
args.metaData()["referrer"] = m_pageReferrer;
return true;
}

View file

@ -242,13 +242,16 @@ public:
bool isToggleView() const { return m_bToggleView; }
// True if it always follows the active view
void setFollowActive(bool b) {m_bFollowActive=b;}
bool isFollowActive() {return m_bFollowActive; }
void setFollowActive(bool b) { m_bFollowActive = b; }
bool isFollowActive() { return m_bFollowActive; }
// True if locked to current view mode
// Toggle views and passive views are locked to their view mode.
bool isLockedViewMode() const { return m_bToggleView || m_bPassiveMode; }
// True if "builtin" (see X-KDE-BrowserView-Built-Into)
bool isBuiltinView() const { return m_bBuiltinView; }
void setService( const KService::Ptr &s ) { m_service = s; }
KService::Ptr service() { return m_service; }
@ -415,6 +418,7 @@ protected:
uint m_bPopupMenuEnabled:1;
uint m_bFollowActive:1;
uint m_bPendingRedirection:1;
uint m_bBuiltinView:1;
KTrader::OfferList m_partServiceOffers;
KTrader::OfferList m_appServiceOffers;
KService::Ptr m_service;

View file

@ -9,6 +9,7 @@ Name[bg]=Подробен преглед
Name[bs]=Pogled detaljne liste
Name[ca]=Vista de llista detallada
Name[cs]=Detailní pohled
Name[cy]=Golwg Rhestr Fanwl
Name[da]=Detaljeret listevisning
Name[de]=Detaillierte Verzeichnis-Ansicht
Name[el]=Προβολή Λεπτομερούς Λίστας
@ -27,8 +28,10 @@ Name[is]=Ýtarleg sýn, listi
Name[it]=Vista a lista dettagliata
Name[ja]=
Name[ko]=
Name[lo]=
Name[lt]=Rodyti detalų sąrašą
Name[lv]=Saraksta Detalizēts Skatījums
Name[mn]=Нарийвчилсан жагсаалтаар харах
Name[mt]=Uri Lista Dettaljata
Name[nb]=Detaljert listevisning
Name[nl]=Gedetailleerde weergave
@ -44,11 +47,12 @@ Name[sl]=Pogled podrobnega seznama
Name[sr]=Detaljni prikaz (lista)
Name[sv]=Detaljerad listvy
Name[ta]=Å¢Ã¢Å¡É ÀðÊÂü ¸¡ðº¢
Name[th]=
Name[th]=
Name[tr]=Ayrıntılı Liste Görünümü
Name[uk]=Детальний вигляд списком
Name[ven]=Mbonalelo ya mutevhe wo bviselwaho khagala
Name[vi]=Xem danh sách đy đ
Name[wa]=Vey en ene sipepieuse djivêye
Name[xh]=Imboniselo Yoluhlu Oluneenkcukacha
Name[zh_CN]=
Name[zh_TW]=
@ -58,5 +62,6 @@ ServiceTypes=KParts/ReadOnlyPart,Browser/View
X-KDE-Library=konq_listview
X-KDE-BrowserView-Args=DetailedList
X-KDE-BrowserView-HideFromMenus=true
X-KDE-BrowserView-Built-Into=konqueror
Icon=view_detailed
InitialPreference=7

View file

@ -8,6 +8,7 @@ Name[bg]=Преглед на Списък Информация
Name[bs]=Pogled info liste
Name[ca]=Vista de llista informativa
Name[cs]=Pohled s informačním seznamem
Name[cy]=Golwg Rhestr Gwybodaeth
Name[da]=Info-listevisning
Name[de]=Infolisten-Ansicht
Name[el]=Προβολή λίστας πληροφοριών
@ -22,7 +23,9 @@ Name[he]=תצוגת רשימה
Name[hu]=informatív nézet
Name[it]=Vista informazioni
Name[ja]=Info
Name[lo]=
Name[lt]=Rodyti info sąrašą
Name[mn]=Мэд. жагсаалтаар харах
Name[mt]=Lista info.
Name[nb]=Infolistevisning
Name[nl]=Infolijstweergave
@ -34,11 +37,14 @@ Name[pt_BR]=Visão de Lista de Informações
Name[ru]=В виде списка с описанием
Name[sk]=Zoznam s informáciami
Name[sl]=Pogled seznama z informacijami
Name[sr]=Pogled info liste
Name[sv]=Info-listvy
Name[ta]=¾¸Åø ÀðÊÂø ¸¡ðº¢
Name[th]=
Name[tr]=Bilgi Listesi Görünümü
Name[uk]=Вигляд з інформацією про зміст
Name[ven]=Mbonalelo ya mutevhe wa mafhungo
Name[wa]=Vey les informåcions en ene djivêye
Name[xh]=Imboniselo Yoluhlu Lolwazi
Name[zh_CN]=
Name[zh_TW]=
@ -48,5 +54,6 @@ ServiceTypes=KParts/ReadOnlyPart,Browser/View
X-KDE-Library=konq_listview
X-KDE-BrowserView-Args=InfoListView
X-KDE-BrowserView-HideFromMenus=true
X-KDE-BrowserView-Built-Into=konqueror
Icon=view_detailed
InitialPreference=7

View file

@ -5,11 +5,12 @@ Exec=blahfoo
Name=Text View
Name[af]=Teks Besigtig
Name[az]=Mətn Görünüşü
Name[bg]=В текстов виде
Name[bg]=Текстов вид
Name[br]=Gwel skrid
Name[bs]=Tekstualni pogled
Name[ca]=Vista de text
Name[cs]=Textový pohled
Name[cy]=Golwg Testun
Name[da]=Tekstvisning
Name[de]=Text-Ansicht
Name[el]=Προβολή Κειμένου
@ -29,8 +30,10 @@ Name[is]=Textasýn
Name[it]=Vista testuale
Name[ja]=
Name[ko]=
Name[lo]=
Name[lt]=Rodyti tekstą
Name[lv]=Teksta Skatījums
Name[mn]=Текстээр харах
Name[mt]=Uri Kliem biss
Name[nb]=Tekstvisning
Name[nl]=Tekstweergave
@ -46,11 +49,12 @@ Name[sl]=Besedilni pogled
Name[sr]=Tekstualni prikaz
Name[sv]=Textvy
Name[ta]=¯¨Ãì ¸¡ðº¢
Name[th]=
Name[th]=
Name[tr]=Metin Görünümü
Name[uk]=Текстовий вигляд
Name[ven]=Mbonalelo ya Manwalwa
Name[vi]=Xem text
Name[wa]=Vey e môde tecse
Name[xh]=Imboniselo Yombhalo
Name[zh_CN]=
Name[zh_TW]=
@ -60,5 +64,6 @@ ServiceTypes=Browser/View
X-KDE-Library=konq_listview
X-KDE-BrowserView-Args=TextView
X-KDE-BrowserView-HideFromMenus=true
X-KDE-BrowserView-Built-Into=konqueror
Icon=view_text
InitialPreference=6

View file

@ -11,6 +11,7 @@ Name[br]=Gwel gwezenn
Name[bs]=Pogled stabla
Name[ca]=Vista d'arbre
Name[cs]=Stromový pohled
Name[cy]=Golwg Coeden
Name[da]=Trævisning
Name[de]=Baum-Ansicht
Name[el]=Προβολή Δέντρου
@ -64,5 +65,6 @@ X-KDE-Library=konq_listview
X-KDE-BrowserView-Args=MixedTree
X-KDE-BrowserView-HideFromMenus=true
X-KDE-BrowserView-HierarchicalView=true
X-KDE-BrowserView-Built-Into=konqueror
Icon=view_tree
InitialPreference=8

View file

@ -65,3 +65,4 @@ X-KDE-BrowserView-ToggableView-Orientation=vertical
X-KDE-BrowserView-HierarchicalView=true
X-KDE-BrowserView-FollowActive=true
X-KDE-BrowserView-LinkedView=false
X-KDE-BrowserView-Built-Into=konqueror