Source Code (Use browser search to find items of interest.)

Class Index

ark'AddDlg (./kdeutils/ark/adddlg.h:38)

class AddDlg : public KDialogBase 
{
  Q_OBJECT
public:
  AddDlg(ArchType _archtype, const QString & _sourceDir, 
	 ArkSettings *_settings, QWidget *parent=0, const char *name=0);

  ~AddDlg() { delete m_fileList;}
  QStringList *getFiles() { return m_fileList; }
public slots:
  void accept();
private: // methods
  void setupFirstTab();
  void setupSecondTab();

private: // data
  QString m_sourceDir;  
  KDirOperator *m_dirList;
  ArchType m_archtype;
  ArkSettings *m_settings;
  QStringList *m_fileList;
  // advanced options

  // zip:
  QCheckBox *m_cbRecurse, *m_cbJunkDirNames, *m_cbForceMS, *m_cbConvertLF2CRLF;

  // tar
  QCheckBox *m_cbReplaceOnlyNewer;

  // lha
  QCheckBox *m_cbMakeGeneric;
};


ark'AddDlg::AddDlg() (./kdeutils/ark/adddlg.cc:46)

AddDlg::AddDlg(ArchType _archtype, const QString & _sourceDir,
	       ArkSettings *_settings,
	       QWidget *parent, const char *name)
  : KDialogBase(KDialogBase::Tabbed, i18n("Add"),
		KDialogBase::Ok | KDialogBase::Cancel,
		KDialogBase::Ok, parent, name), m_sourceDir(_sourceDir),
    m_archtype(_archtype), m_settings(_settings), m_fileList(0)
{
  // this has some sizing problems
  setupFirstTab();
  setupSecondTab();
  showButtonOK(true);
  showButtonCancel(true);
}


ark'AddDlg::setupFirstTab() (./kdeutils/ark/adddlg.cc:61)

void AddDlg::setupFirstTab()
{
  kdDebug(1601) << "+AddDlg::setupFirstTab" << endl;

  QFrame *frame = addPage(i18n("Add"));

  m_dirList = new KDirOperator(m_sourceDir, frame, "dirlist");
  KCombiView *pCombiView = new KCombiView(m_dirList, "fileview");
  KFileIconView *pFileView = new KFileIconView(pCombiView, "fileview2");
  pCombiView->setRight(pFileView);
  pFileView->setSelectionMode( KFile::Multi ); 
  m_dirList->setView(pCombiView);

  QVBoxLayout *vlay = new QVBoxLayout(frame, 0, spacingHint());
  vlay->addWidget(m_dirList);  
}


ark'AddDlg::setupSecondTab() (./kdeutils/ark/adddlg.cc:78)

void AddDlg::setupSecondTab()
{
  QHBox *secondpage = addHBoxPage(i18n("Advanced"), i18n("Test"));

  switch(m_archtype)
    {
    case ZIP_FORMAT:
      {
	kdDebug(1601) << "AddDlg::setupSecondTab - zip format" << endl;
	
	QButtonGroup *bg = new QButtonGroup( 1, QGroupBox::Horizontal,
					     "ZIP Options", secondpage );
	m_cbRecurse = new QCheckBox(i18n("Recurse into directories"), bg);
	if (m_settings->getZipAddRecurseDirs())
	  m_cbRecurse->setChecked(true);

	// NO - I want three radio buttons here.

	m_cbJunkDirNames = new QCheckBox(i18n("Junk directory names"), bg);
	if (m_settings->getZipAddJunkDirs())
	  m_cbJunkDirNames->setChecked(true);
	m_cbForceMS = new QCheckBox(i18n("Force MS-style (8+3) filenames"),
				    bg);
	if (m_settings->getZipAddMSDOS())
	  m_cbForceMS->setChecked(true);
	m_cbConvertLF2CRLF = new QCheckBox(i18n("Convert LF to CRLF"), bg);
	if (m_settings->getZipAddConvertLF())
	  m_cbConvertLF2CRLF->setChecked(true);
      }
      break;
    case TAR_FORMAT:
      {
	QButtonGroup *bg = new QButtonGroup( 1, QGroupBox::Horizontal,
					     "TAR Options", secondpage );
	m_cbJunkDirNames = new QCheckBox(i18n("Junk directory names"), bg);
	if (!m_settings->getaddPath())
	  m_cbJunkDirNames->setChecked(true);
	m_cbReplaceOnlyNewer = new QCheckBox(i18n("Replace newer files only"),
					     bg);
	if (m_settings->getReplaceOnlyNew())
	  m_cbReplaceOnlyNewer->setChecked(true);
      }
      break;
    case AA_FORMAT:
      break;
    case LHA_FORMAT:
      {
	QButtonGroup *bg = new QButtonGroup( 1, QGroupBox::Horizontal,
					     "LHA Options", secondpage );
	m_cbMakeGeneric =  new QCheckBox(i18n("Keep entries generic"), bg);
	if (m_settings->getLhaGeneric())
	  m_cbMakeGeneric->setChecked(true);
      }
      break;
    case RAR_FORMAT:
      break;
    case ZOO_FORMAT:
    case UNKNOWN_FORMAT:
      break;
    default:
      // shouldn't ever get here!
      break;
    }
 
}


ark'AddDlg::accept() (./kdeutils/ark/adddlg.cc:144)

void AddDlg::accept()
{
  kdDebug(1601) << "+AddDlg::accept" << endl;

  // Put the settings data into the settings object

  switch(m_archtype)
    {
    case ZIP_FORMAT:
      m_settings->setZipAddRecurseDirs(m_cbRecurse->isChecked());
      m_settings->setZipAddJunkDirs(m_cbJunkDirNames->isChecked());
      m_settings->setZipAddMSDOS(m_cbForceMS->isChecked());
      m_settings->setZipAddConvertLF(m_cbConvertLF2CRLF->isChecked());
      break;
    case TAR_FORMAT:
      m_settings->setReplaceOnlyNew(m_cbReplaceOnlyNewer->isChecked());
      m_settings->setaddPath(!m_cbJunkDirNames->isChecked());
      break;
    case AA_FORMAT:
      break;
    case LHA_FORMAT:
      m_settings->setLhaGeneric(m_cbMakeGeneric->isChecked());
      break;
    case RAR_FORMAT:
    case ZOO_FORMAT:
    case UNKNOWN_FORMAT:
      break;
    default:
      break;
    }

  const KFileView *pView = m_dirList->view();
  KFileViewItemList *pList =
    const_cast<KFileViewItemList *>(pView->selectedItems());

  kdDebug(1601) << "There are " << pList->count() << " items in my KFileViewItemList." << endl;

  m_fileList = new QStringList;

  KFileViewItem *pItem;
  for ( pItem=pList->first(); pItem != 0; pItem=pList->next() )
    {
      kdDebug(1601) << (const char *)pItem->url() << endl;
      m_fileList->append(pItem->url());
    }

  KDialogBase::accept();
  kdDebug(1601) << "-AddDlg::accept" << endl;
}