diff options
Diffstat (limited to 'kcoloredit/loadpalettedlg.cpp')
-rw-r--r-- | kcoloredit/loadpalettedlg.cpp | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/kcoloredit/loadpalettedlg.cpp b/kcoloredit/loadpalettedlg.cpp new file mode 100644 index 00000000..b426a874 --- /dev/null +++ b/kcoloredit/loadpalettedlg.cpp @@ -0,0 +1,111 @@ +/*************************************************************************** + loadpalettedlg.cpp - description + ------------------- + begin : Sat Jul 8 2000 + copyright : (C) 2000 by Artur Rataj + email : [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. * + * * + ***************************************************************************/ + +#include <string.h> + +#include <qlayout.h> +#include <qlabel.h> +#include <qstring.h> +#include <qstringlist.h> +#include <qpushbutton.h> +#include <klocale.h> +#include <kstandarddirs.h> +#include <kpalette.h> +#include <kfiledialog.h> + +#include "main.h" +#include "palette.h" +#include "loadpalettedlg.h" + +LoadPaletteDlg::LoadPaletteDlg(QWidget *parent, const char *name) + : KDialogBase(parent, name, true, i18n( "Load Palette" ), + Ok|Cancel, Ok, true) { + fileName = ""; + QWidget *mainWidget = new QWidget( this ); + setMainWidget( mainWidget ); + QVBoxLayout* topLayout = new QVBoxLayout(mainWidget, 0, spacingHint()); + QLabel* label = new QLabel(i18n( "Select a palette:" ), mainWidget); + topLayout->addWidget(label); + paletteBox = new QComboBox(false, mainWidget); + browseFileNameInserted = false; + QStringList palettesList = Palette::kdePalettes(); + for(QStringList::Iterator palette = palettesList.begin(); + palette != palettesList.end(); ++palette) { + bool prepend = (*palette).contains( "colors/Custom_Colors" ); + QString fileName = locate("config", (*palette)); + if(prepend) { + palettesFileNames.prepend(fileName); + setFileName(&fileName); + } else { + palettesFileNames.append(fileName); + if(palette == palettesList.begin()) + setFileName(&fileName); + } + QString paletteName = (*palette).mid(palettesDir.length() + 1); + if(paletteName == "Custom_Colors") + paletteName = i18n("Custom Colors"); + else if(paletteName == "Recent_Colors") + paletteName = i18n("Recent Colors"); + if(prepend) + paletteBox->insertItem(paletteName, 0); + else + paletteBox->insertItem(paletteName); + } + connect(paletteBox, SIGNAL( activated(int) ), SLOT( setFileName(int) )); + topLayout->addWidget(paletteBox); + QHBoxLayout* browseLayout = new QHBoxLayout( mainWidget ); + QPushButton* browseButton = new QPushButton(i18n( "Browse..." ), + mainWidget); + connect(browseButton, SIGNAL( clicked() ), SLOT( browseFileNames() )); + browseLayout->addWidget(browseButton); + browseLayout->addStretch(10); + topLayout->addLayout(browseLayout); + topLayout->addStretch(10); + resize(300, 155); +} +LoadPaletteDlg::~LoadPaletteDlg() { +} + +void LoadPaletteDlg::setFileName(QString* fileName) { + this->fileName = *fileName; +} + +void LoadPaletteDlg::setFileName(int index) { + setFileName(&palettesFileNames[index]); +} + +void LoadPaletteDlg::browseFileNames() { + QString fileToOpen = KFileDialog::getOpenFileName(lastOpenPaletteFileDir, + i18n("*|All Files"), this, i18n("Open File")); + if(!fileToOpen.isEmpty()) { + fileName = fileToOpen; + if(browseFileNameInserted) { + paletteBox->removeItem(0); + palettesFileNames.remove(palettesFileNames.begin()); + } + paletteBox->insertItem(fileName, 0); + paletteBox->setCurrentItem(0); + palettesFileNames.prepend(fileName); + browseFileNameInserted = true; + lastOpenPaletteFileDir = fileName; + } +} + +QString LoadPaletteDlg::getFileName() { + return fileName; +} +#include "loadpalettedlg.moc" |